Difference between revisions of "Atari 7800 Color Documentation"

From 8BitDev.org - Atari 7800 Development Wiki
Jump to: navigation, search
Line 1: Line 1:
 
==Technical Overview==
 
==Technical Overview==
[[File:YIQ-warm-ideal.png|thumb|Atari 7800 "ideal" color values, overlaid on Y=0.5 IQ colorspace.]]
+
[[File:YIQ-warm-ideal.png|thumb|Atari 7800 "ideal" hue values, overlaid on Y=0.5 IQ colorspace.]]
 
The the color system in the 7800 is designed to efficiently generate color signals that are PAL or NTSC ready, with very little silicon and support circuitry. To better understand 7800 colors, it helps to have an understanding of NTSC and PAL color encoding.
 
The the color system in the 7800 is designed to efficiently generate color signals that are PAL or NTSC ready, with very little silicon and support circuitry. To better understand 7800 colors, it helps to have an understanding of NTSC and PAL color encoding.
  
 
Both NTSC and PAL TV standards have a short [https://en.wikipedia.org/wiki/NTSC#Color_encoding colorburst] signal near the beginning of each scanline. The colorburst serves 2 purposes. Its presence signals to the TV that the scanline will contain color information, but it also serves as a phase reference. If the same frequency is later detected by the TV during the display of a pixel, the TV will determine the frequency's phase relative to the original colorburst, and use the result as an index to a hue in the YIQ colorspace(NTSC) or YUV colorspace(PAL).
 
Both NTSC and PAL TV standards have a short [https://en.wikipedia.org/wiki/NTSC#Color_encoding colorburst] signal near the beginning of each scanline. The colorburst serves 2 purposes. Its presence signals to the TV that the scanline will contain color information, but it also serves as a phase reference. If the same frequency is later detected by the TV during the display of a pixel, the TV will determine the frequency's phase relative to the original colorburst, and use the result as an index to a hue in the YIQ colorspace(NTSC) or YUV colorspace(PAL).
  
To drive this system, 7800 color registers are split into 2 nibbles. The top nibble determine the amount of phase-shift, and the bottom nibble determines the luminance or brightness of the pixel. Its also worth noting here that the 7800 color system uses a uniform level of saturation for all of its colors.
+
To drive this system, 7800 color registers are split into 2 nibbles. The top nibble determine the amount of phase-shift (or hue value), and the bottom nibble determines the voltage level (or luminance) of the pixel.  
 +
 
 +
The 7800 color system uses a uniform level of saturation for all of its color values, except for color values from $00 to $0F, which are displayed without any saturation. This allows for the display of black, shades of grey, and white.
  
 
==Consistency Issues==
 
==Consistency Issues==
[[File:YIQ-7800-warmup.gif|thumb|Atari 7800 color values shifting as the console warms up, overlaid on Y=0.5 IQ colorspace.]]
+
[[File:YIQ-7800-warmup.gif|thumb|Atari 7800 hue values shifting as the console warms up, overlaid on Y=0.5 IQ colorspace.]]
As the 7800 warms up, the distance between the various hues in the palette stretches out.
+
There are a number of factors that result in inconsistency between the palettes of 7800 consoles:
 
 
The NTSC and PAL standards aren't known for their consistency from TV to TV, and that tends to be exasperated by TV display preference settings and different TV display technologies.
 
  
 +
*Each 7800 console has a tunable inductor inside, which is used to modify the colorburst frequency. On any given console this inductor may be adjusted a number of different ways, with at least 2 historic standards in play - one with hues ~25.7 degrees apart, and another with hues ~26.7 degrees apart.
 +
*As a 7800 console warms up, so do the components that produce the colorburst frequency, and the distance between the various hues in the palette stretch out. When cold, the console's hue values have ~24.7 degrees of separation, and as the console warms up, up to ~27.7 degrees of separation can be seen between the hues. This effect is more pronounced with higher hue values; the $Ex hue can shift from being green to yellow, and $Fx will shift from being yellow to
 +
*The NTSC and PAL standards don't consistently display the same colors from TV to TV, and almost all TVs allow the viewer to tune colors to their liking.
  
 
==Palettes==
 
==Palettes==

Revision as of 04:58, 17 November 2015

Technical Overview

Atari 7800 "ideal" hue values, overlaid on Y=0.5 IQ colorspace.

The the color system in the 7800 is designed to efficiently generate color signals that are PAL or NTSC ready, with very little silicon and support circuitry. To better understand 7800 colors, it helps to have an understanding of NTSC and PAL color encoding.

Both NTSC and PAL TV standards have a short colorburst signal near the beginning of each scanline. The colorburst serves 2 purposes. Its presence signals to the TV that the scanline will contain color information, but it also serves as a phase reference. If the same frequency is later detected by the TV during the display of a pixel, the TV will determine the frequency's phase relative to the original colorburst, and use the result as an index to a hue in the YIQ colorspace(NTSC) or YUV colorspace(PAL).

To drive this system, 7800 color registers are split into 2 nibbles. The top nibble determine the amount of phase-shift (or hue value), and the bottom nibble determines the voltage level (or luminance) of the pixel.

The 7800 color system uses a uniform level of saturation for all of its color values, except for color values from $00 to $0F, which are displayed without any saturation. This allows for the display of black, shades of grey, and white.

Consistency Issues

Atari 7800 hue values shifting as the console warms up, overlaid on Y=0.5 IQ colorspace.

There are a number of factors that result in inconsistency between the palettes of 7800 consoles:

  • Each 7800 console has a tunable inductor inside, which is used to modify the colorburst frequency. On any given console this inductor may be adjusted a number of different ways, with at least 2 historic standards in play - one with hues ~25.7 degrees apart, and another with hues ~26.7 degrees apart.
  • As a 7800 console warms up, so do the components that produce the colorburst frequency, and the distance between the various hues in the palette stretch out. When cold, the console's hue values have ~24.7 degrees of separation, and as the console warms up, up to ~27.7 degrees of separation can be seen between the hues. This effect is more pronounced with higher hue values; the $Ex hue can shift from being green to yellow, and $Fx will shift from being yellow to
  • The NTSC and PAL standards don't consistently display the same colors from TV to TV, and almost all TVs allow the viewer to tune colors to their liking.

Palettes