Colors

There are various ways to interpet the colors available in Pole Position.

The final output of the video hardware is realized with a 12-bit digital-to-analog resistor network. Because of this, Pole Position might generously be called a 4096-color game.

The wikipedia article states that 3840 colors are available. Not sure what the rationale is.

One step back from the video output are the color ROMs that form a 256 x 12-bit lookup table. Somewhat more accurately, therefore, Pole Position might be called a 256-color game.

256-Color Palette

Each color channel of red, green and blue has a 4-resistor network. Bits 3:0 have values 220, 470, 1000, and 2200 ohms respectively. Applying the color ROM data to this resistor network reveals:

Pole Position Color Palette

Where rows are indexed by most significant nibble, and columns indexed by least significant.

Black During Blanking

It's obvious that whenever the MSB of the color ROM index is set, the output is black. This bit is driven by the composite blanking signal.

Screen Split

Bit 6 of the color ROM index is the 128V signal, which is set high for scan line 128 and above, ie. the lower half of the output screen. This means that color rows 0..3 apply to the upper half of the screen, and color rows 4..7 apply to the lower half.

By inspection, however, it's obvious that the color palettes match between rows 1/5, 2/6, and 3/7. So the only difference between the upper and lower half of the screen is the palette selected when index bits[5:4]=00b.

Pallete Row Meanings

The signal names for color ROM index bits 4 and 5 help reveal their purpose. Bit 5 is low when the character ROM output nibble is all-ones, high otherwise. Bit 5 is low when the motion nibble is all-ones, high otherwise.

Not only do these signals select the row of the color ROM table, they also determine the source for selecting the table column (index LSN). This leads to the color ROM's effective row being selected as follows:

Bit 5 Bit 4 Active Condition
0 0 Picture (tile) palette
0 1 Motion (sprite) palette
1 x Character (alpha) palette

We notice that color table rows 2 and 3 are identical (as are rows 6 and 7), which is consistent with these observations.

Summary

Pole Position will produce video pixels for:

  • (rows 8-15) black when the composite blanking period is active, else
  • (rows 2/3/6/7) character (alpha) data when its instantaneous 4-bit color index is not 15, else
  • (rows 1/5) motion (sprite) data when its instantaneous 4-bit color index is not 15, else
  • (row 0) upper picture (tile) data when the video scan line is < 128, else
  • (row 4) lower picture (tile) data when the video scan line is >= 128.

Of the 256-entry ROM that produces colors according to these selections, there are 42 distinct values produced (including black). Pole Position would therefore be correctly called a 42-color game.

social