The sPPU is actually two sPPU units. They have access to vram in 8bit data bus. The setup is interleaved, so to appear as single layout. It's not until you get into mode 7 that you start to see the interleave vram layout (even bytes are tile pixels, odd bytes are tilemap entries). Each sPPU is responsible for specific features. Though I guess it doesn't matter, really. It functions as a single unit to the coder.SNES Video spec Picture Processor Unit: 16-Bit
Video RAM: 128 KB
64 KB of VRAM for screen maps (for 'background' layers) and tile sets (for backgrounds and objects);
64 KB for sprite layers, 512 + 32 bytes of 'OAM' (Object Attribute Memory) for objects; 512 bytes of 'CGRAM' for palette data.
Palette: 256 entries; 15-Bit color depth (RGB555) for a total of 32,768 colors.
Maximum colors per layer per scanline: 256.
Maximum colors on-screen: 4096 without alpha and 32,768 (using color arithmetic for transparency effects).
Maximum colors per sprite : 128
Resolution: between 256x224 and 512x448. Most games used 256x224, 320x224, 512x224 pixels since higher resoulutions caused slowdown, flicker, and/or had increased limitations on layers and colors (due to memory bandwidth constraints);
the higher resolutions were used for less processor-intensive games, in-game menus, text, and high resolution images.
Maximum onscreen objects (sprites): 128 (32 per line, up to 34 8x8 tiles per line).
Maximum number of sprite pixels on one scanline: 256. The renderer was designed such that it would drop the frontmost sprites instead of the rearmost sprites if a scanline exceeded the limit, allowing for creative clipping effects.
The 64k of vram is for both sprites and BG layers (and tilemap layers too). But there are more strict in limitation where sprites and BG tiles are place AND used in vram. So you can't just access sprite or tile cells outside of sPPU imposed range. Unlike the TG16 or Genesis, where they can setup all 64k of vram to pretty much however they want, relatively speaking. It's not usually much problem though, if at all, but it's something to consider for the few designs outside the normal.
Max colors per 'hardware' sprite is 15 (one color is transparent). Looks like he meant 'for sprites' instead of 'per sprite'. I say hardware sprite because you can and do have software metasprites (multiple hardware sprites making up a single object, thus increasing the color counter per 'object'). But either way, what's written is wrong. 15 * 8 = 120 colors. Unique colors. But assumes every palette has a unique and non redundant color in any of those 8 subpalettes. Though, if someone really wanted to be a jerk and make screen shots just for color counts, the SNES 32k color master palette could easily allow for it. But it would be completely useless IMO. I.e. just an artificial measure.
Typical tile modes (BG layers) are like the TG16 and Genesis; 15 colors each. With the exception of two modes. Mode 7 that uses 255 colors per tile, but only one 256 color palette. And another mode that's 256 color pixel too. But it's an direct RGB pixel mode with a hack in bits per tile setup. Works like this: each pixel in the tile is RGB 3:3:2. That's 256 colors right there, but the tile map entry holds the additional bits to extend it to 3+1:3+1:2+1. That famed 2048 color mode. Can't tell you what games used it, but it's a legal and well documented mode.
The SNES also has a special color window overlay. This window has a few math mode settings. You can change the color of this window on a per scanline basis with HDMA tables. This is a pretty common effect on the SNES. The shapes you can make with the window are simple in design (SMW used it to make the scaling "key hole" alternate exits in stages). IIRC, Contra super bomb uses this effect. HDMA is used to make it rainbow-y down the screen. That definitely boosts color counts.
320x224, not sure where that came from. The high res modes (horizontal res) only applies to the BG layer. The sprites are output in normal low res on top of the BG layer. And since the sPPU are doing double time to output the BG layer at higher res, you loose other functionality of the video features. IMO, rather useless mode other than for text windows (which in almost all cases is what it's used for).
As for your typical SNES game; regular tile modes of 15 colors and 8 subpalettes. Same for sprites. A theoretical color count of (15*8)+(15*8)+1 = 241 colors. You won't quite reach that because of redundant colors, but with the SNES huge master palette - you'll get there more often than with the Genesis/TG16 master palette size. You're looking at 80-120 color range for SNES games. This is because they aren't trying to specifically make EACH screen shot a color count fest. The actual color usage is usually much wider that what you see onscreen, because games are usually richly dynamic in nature. Add in some color window overlay effects, and the count goes up.
I feel like a broken record for keep saying this but.. 50-60 colors on the SNES is not the same as 50-60 colors on the Genesis. It's all about the subpalettes people. I guess the general public will just never understand. Simple 'color counts' are what matter to them, even if completely incorrect.
Anyway, I hope that helps answer some of the OP questions.

Reply With Quote


