9

The SNES color gamut is 15-bit RGB. On the face of it, that makes sense for a 16-bit machine.

But.

The color generators on some earlier machines like the Atari 2600, Commodore 64, NES, were not defined in terms of RGB at all. Why not? As I understand it, because these machines were designed on the assumption that most of the time, they would be connecting to a TV, by RF, or at best composite. If that's going to be your output, then you are better off generating colors directly in terms of chroma/luma. It doesn't matter that it will be ultimately converted to RGB within the TV; using RGB in your color generator, just means having to convert away from it for output, an extra step that takes extra hardware, and some degree of signal degradation.

But then it seems the same should be true of the SNES. It was a living-room game console. Typical output device was not an RGB monitor, but an NTSC TV set.

So why did it generate colors as RGB, instead of chroma/luma like earlier machines?

2
  • 2
    No actually information about the design process, so this is just an assumption, but the SNES had RGB outputs, so would have need YUV->RGB conversion circuitry anyway, so nothing is saved by choosing YUV, and programmers generally prefer working with RGB graphics hardware...
    – occipita
    Commented Jun 18 at 14:36
  • 4
    Pure speculation: the target market was a lot bigger in the 1990s than in the 1980s, as the era of global trade dawned. So tying your hardware to NTSC, hacking together something for PAL, and super-hacking something for SECAM isn't necessarily a smart route forwards — especially with the newly-open market of Russia being SECAM. French NESs all contain a composite-to-RGB decoder, all Apple II Europlus machines have an NTSC decoder in front of a PAL encoder, etc, etc, etc.
    – Tommy
    Commented Jun 18 at 14:45

1 Answer 1

15

The SNES has 256 color palette with 15-bit RGB entries.

It makes sense as the video chip can in hardware blend colors from different layer in RGB colorspace, something which isn't as easy in YUV, and mixing directly in the domain of YC which is what the C64 generates gets too complex.

Also for us humans/programmers the additive RGB colorspace is quite intuitive as it was already in use in computers such as the Amiga with a table of 32 12-bit RGB colors and the VGA of PCs with a table of 256 18-bit RGB colors.

Also the assumption of the SNES being typically connected to NTSC TV instead of RGB monitor is not a very good assumption. In Europe the TVs had RGB input, first appeared in late 1970s and became mandatory in many countries during 1980s. So basically most TVs in the European market had RGB input by the time SNES was released, offering much better picture than composite. In any case, the only input in addition of the aerial was the Scart connector so the composite used it anyway. Some TVs offered two Scarts, one full feature one with RGB input for satellite boxes, gaming consoles and home computers, while a second Scart only supported composite and thus was enough for VCRs.

So SNES had native RGB processing and output like a real computer system of that era anyway and needed to just have that converted as composite output for most basic usage for all customer markets around the world.

2
  • 3
    "in hardware blend colors from different layer in RGB colorspace, something which isn't as easy in YUV" - why wouldn't it be? They're linear transformations of each other so the math would be exactly the same.
    – benrg
    Commented Jun 18 at 19:22
  • 5
    @benrg Technically you are correct - I was think more like two YCbCr video streams that may be in 4:2:2 chroma subsampled form. Anyway, digital format would be in YCbCr which uses offset binary, so either the YUV would need to be in signed integer form or the offset binary would require removing the offset before mixing and adding it in for final output. Also if you are a human you likely can define a color like red, yellow or green in RGB format easily, but even with years of working with YCbCr video, I still can't define colors I want without converting RGB to YCbCr, so not intuitive.
    – Justme
    Commented Jun 18 at 20:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .