This thread should be for hardware-oriented folks (hoping for byuu, nocash, and lidnariq at a minimum). I apologise for the length of this post in advance.
I want to establish something up front: I tend to take articles written by Kotaku with a grain of salt. So while that article outlines mostly the business side of things, and seem plausible, what I feel is overlooked is a more important technical "fact" that I'd like to discuss here. In that article, the following is stated:
The SNES CD-ROM peripheral was intended to be connected to the console via the SNES expansion port. There may have been a related cartridge that could come with something (fine/great, and yes I'm aware that pin 2 on the cart connector is connected to pin 24 on the expansion port), but regardless...
I am not concerned with the audio capability (ex. Redbook, CDXA, etc.), as it's doable since the SNES expansion port has 3 pins for audio "overlay/mixing" (mono, left, and right).
What I take issue with is that the SNES does not really seem capable of full-motion 30fps video as described.
I want to review the facts and specs as I understand them. Some of what I know comes from people who I PERSONALLY know who worked in the industry doing commercial SNES games at the time (1993 onward; and I can name names/companies if validity is needed) told me specifically that the SNES CD-ROM peripheral failed because, and I quote, "the SNES was never designed for full-motion video playback" (they didn't specify framerate, but let's assume 30fps to be fair), and I've always believed these people (read: no reason to believe they'd lie).
Thus, I ask hardware folks to please correct me if I'm wrong in the below (I certainly could be). I'm basing this mostly on the official block diagram from Nintendo (I won't post pictures of it, you all know where to find this) and some other sources:
PPU1 / 5C77 is what handles PPU RAM access and essentially handles all the "tile-based" math/logic. It has access to:
- CPU data bus (CD0-7)
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- Two dedicated busses for PPU RAM:
-- VRAM Bus Control (VAA0-13, VAB0-13, VA14) + /VRD + /VAWR + /VBWR
-- VRAM Data Bus (VDA0-VDA7 and VDB0-VDB7)
PPU2 / 5C78 is mainly the "video output" IC. It has access to:
- CPU data bus (CD0-7)
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- Capability to reset PPU1
- Several dedicated busses for PPU RAM:
- Access to VRAM Data Bus (VDA0-VDA7 and VDB0-VDB7)
- Mainly outputs to video output circuitry (RGB, S-Video/composite, etc.). (Probably what's responsible for handling things like brightness control via $2100, colour add/sub screen, etc.)
One thing worth noting that does confuse me:
This pinout for PPU2 / 5C78 depicts pins 69-76 as EXT0-EX7 for "External Video Input" from the VRAM Data Bus, stating "High Byte; it is unclear why this is wired up to VRAM in the SNES". This doc gives thanks to nocash too. And yes, I know/recognise jwdonal, as he's a great forum member here responsible for his FPGA-based SNES that is pretty dang cool.
nocash's document states 69-76 SRAM EXT0-EXT7 (sram data upper 8bit) (shortcut with VDB0-VDB7). I'm a bit confused as to why that says "SRAM" and not "VRAM"; PPU1 does have some which say "SRAM" others which say "VRAM". This may be me simply misunderstanding what's being depicted (remember, I'm not a hardware guy).
SNES expansion connector (here's Anomie's version) show the following relevant pins:
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- CPU data bus (CD0-7) -- Anomie's doc says "Data bus D0-D"; Nintendo's block diagram confirms it's the CPU data bus
- DOTCK -- for the PPU dot clock (~5.3MHz but with some oddity during HBlank)
So I could see the CPU data bus being used for MMIO register-related purposes. Makes sense. And DOTCK being used for some PPU synchronisation. Also makes sense. But I don't see how having access to the main B-bus would be able to, say, provide full-motion 30fps video considering that the data would have to be tile-based and still work within the existing limits of the SNES's clock speeds, etc...
I will ask a question while here: I've never quite understood mode 7's EXTBG, and nocash's document states "... the 8bit external input is simply shortcut with one half of the PPUs 16bit data bus. ... However, in BG Mode 7, it's receiving the same 8bit value as the current BG1 pixel - but, unlike BG1, with bit7 treated as priority bit (and only lower 7bit used as BG2 pixel color)." Could this be used for some kind of video playback source? I'm thinking not given the description, but I don't quite understand it.
As for the disc format... well, Nintendo implied it would be its own proprietary format "N-Disk". This may be different from the prototype/dev unit which just used standard CDs -- we'll never know. I'm trying to do the math of how much data this thing could pump out, but that math just turns up raw bytes, not including other kinds of overhead.
So... would the SNES CD be capable of doing full-motion (let's say 256x224 (NTSC) to keep it simple, or 512x448 if you want to get fancy) video any more than, say, a standard cartridge could? The B-bus access is 8-bit. I just don't see how it'd be possible.
Same goes for if the expansion unit could handle MPEG-1 itself through something like Video CDs. Worst-case scenario that would be 1150kbit/s (352x240 @ 30fps) + 224kbit/s (audio) = 1374kbit/s =~ 172kBytes/sec. Hence why when I read the Kotaku article, I took issue with the technical statements made there, because to me, it doesn't seem feasible.
It seems more like the SNES CD was intended to be truly an expansion add-on to offer, say, Redbook-like or CDXA-like audio capabilities (think: PCE/TG16 CD / Super CD), along with large graphical expansion capabilities given capacities of CDs (more than carts) at the time.
Thoughts/comments?
And thanks for taking the time to read this.
I want to establish something up front: I tend to take articles written by Kotaku with a grain of salt. So while that article outlines mostly the business side of things, and seem plausible, what I feel is overlooked is a more important technical "fact" that I'd like to discuss here. In that article, the following is stated:
Quote:
...
Developers could use that massive storage space for lengthy video sequences, high-quality audio tracks, or anything they could imagine.
...
The new add-on would also enhance the computing abilities of the Super NES, adding eight megabits of RAM and the ability to display full-screen video.
...
Developers could use that massive storage space for lengthy video sequences, high-quality audio tracks, or anything they could imagine.
...
The new add-on would also enhance the computing abilities of the Super NES, adding eight megabits of RAM and the ability to display full-screen video.
...
The SNES CD-ROM peripheral was intended to be connected to the console via the SNES expansion port. There may have been a related cartridge that could come with something (fine/great, and yes I'm aware that pin 2 on the cart connector is connected to pin 24 on the expansion port), but regardless...
I am not concerned with the audio capability (ex. Redbook, CDXA, etc.), as it's doable since the SNES expansion port has 3 pins for audio "overlay/mixing" (mono, left, and right).
What I take issue with is that the SNES does not really seem capable of full-motion 30fps video as described.
I want to review the facts and specs as I understand them. Some of what I know comes from people who I PERSONALLY know who worked in the industry doing commercial SNES games at the time (1993 onward; and I can name names/companies if validity is needed) told me specifically that the SNES CD-ROM peripheral failed because, and I quote, "the SNES was never designed for full-motion video playback" (they didn't specify framerate, but let's assume 30fps to be fair), and I've always believed these people (read: no reason to believe they'd lie).
Thus, I ask hardware folks to please correct me if I'm wrong in the below (I certainly could be). I'm basing this mostly on the official block diagram from Nintendo (I won't post pictures of it, you all know where to find this) and some other sources:
PPU1 / 5C77 is what handles PPU RAM access and essentially handles all the "tile-based" math/logic. It has access to:
- CPU data bus (CD0-7)
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- Two dedicated busses for PPU RAM:
-- VRAM Bus Control (VAA0-13, VAB0-13, VA14) + /VRD + /VAWR + /VBWR
-- VRAM Data Bus (VDA0-VDA7 and VDB0-VDB7)
PPU2 / 5C78 is mainly the "video output" IC. It has access to:
- CPU data bus (CD0-7)
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- Capability to reset PPU1
- Several dedicated busses for PPU RAM:
- Access to VRAM Data Bus (VDA0-VDA7 and VDB0-VDB7)
- Mainly outputs to video output circuitry (RGB, S-Video/composite, etc.). (Probably what's responsible for handling things like brightness control via $2100, colour add/sub screen, etc.)
One thing worth noting that does confuse me:
This pinout for PPU2 / 5C78 depicts pins 69-76 as EXT0-EX7 for "External Video Input" from the VRAM Data Bus, stating "High Byte; it is unclear why this is wired up to VRAM in the SNES". This doc gives thanks to nocash too. And yes, I know/recognise jwdonal, as he's a great forum member here responsible for his FPGA-based SNES that is pretty dang cool.
nocash's document states 69-76 SRAM EXT0-EXT7 (sram data upper 8bit) (shortcut with VDB0-VDB7). I'm a bit confused as to why that says "SRAM" and not "VRAM"; PPU1 does have some which say "SRAM" others which say "VRAM". This may be me simply misunderstanding what's being depicted (remember, I'm not a hardware guy).
SNES expansion connector (here's Anomie's version) show the following relevant pins:
- Main B-bus (addressing PA0-7, control /PARD + /PAWR)
- CPU data bus (CD0-7) -- Anomie's doc says "Data bus D0-D"; Nintendo's block diagram confirms it's the CPU data bus
- DOTCK -- for the PPU dot clock (~5.3MHz but with some oddity during HBlank)
So I could see the CPU data bus being used for MMIO register-related purposes. Makes sense. And DOTCK being used for some PPU synchronisation. Also makes sense. But I don't see how having access to the main B-bus would be able to, say, provide full-motion 30fps video considering that the data would have to be tile-based and still work within the existing limits of the SNES's clock speeds, etc...
I will ask a question while here: I've never quite understood mode 7's EXTBG, and nocash's document states "... the 8bit external input is simply shortcut with one half of the PPUs 16bit data bus. ... However, in BG Mode 7, it's receiving the same 8bit value as the current BG1 pixel - but, unlike BG1, with bit7 treated as priority bit (and only lower 7bit used as BG2 pixel color)." Could this be used for some kind of video playback source? I'm thinking not given the description, but I don't quite understand it.
As for the disc format... well, Nintendo implied it would be its own proprietary format "N-Disk". This may be different from the prototype/dev unit which just used standard CDs -- we'll never know. I'm trying to do the math of how much data this thing could pump out, but that math just turns up raw bytes, not including other kinds of overhead.
So... would the SNES CD be capable of doing full-motion (let's say 256x224 (NTSC) to keep it simple, or 512x448 if you want to get fancy) video any more than, say, a standard cartridge could? The B-bus access is 8-bit. I just don't see how it'd be possible.
Same goes for if the expansion unit could handle MPEG-1 itself through something like Video CDs. Worst-case scenario that would be 1150kbit/s (352x240 @ 30fps) + 224kbit/s (audio) = 1374kbit/s =~ 172kBytes/sec. Hence why when I read the Kotaku article, I took issue with the technical statements made there, because to me, it doesn't seem feasible.
It seems more like the SNES CD was intended to be truly an expansion add-on to offer, say, Redbook-like or CDXA-like audio capabilities (think: PCE/TG16 CD / Super CD), along with large graphical expansion capabilities given capacities of CDs (more than carts) at the time.
Thoughts/comments?
And thanks for taking the time to read this.