Palette

From Sega Retro

A palette is selection of colors which is used in an image. Rather than defining a color for each individual pixel (such as in 24-bit color images), palettes are used to link pixels to color data by way of an index reference. Graphics in Sega Mega Drive, Master System, Game Gear and Game Boy Advance games all use palettes.

According to the Oxford English Dictionary, "palette" didn't appear until the 19th century. "Pallet" is the original, correct spelling. However, both are correct today, and "palette" is more commonly used.

Mega Drive Palette

The Mega Drive VDP supports four palettes of 16 colors each, with each color being selected from a total of 512 colors; using the Shadow/Highlight capabilities of the VDP, the total raises to 1536. Each palette is 32 bytes, with each color occupying two bytes. These two bytes are in the format 0B GR, where B = blue; G = green; and R = red. The B, G and R can be any of the following values:

Mega Drive Palette.png
  • 0 (0000)
  • 2 (0010)
  • 4 (0100)
  • 6 (0110)
  • 8 (1000)
  • A (1010)
  • C (1100)
  • E (1110)

To obtain equivalent values out of 256, the procedure is as follows:

- when in normal mode, use the values above in each nybble (e.g. 2 -> 0010 0010 -> $22 -> 34)
- when in shadow mode, divide the values above by two, and use them in each nybble (e.g. 2 -> 0001 0001 -> $11 -> 17)
- when in highlight mode, divide the values above by two, add 0111, and use them in each nybble (e.g. 2 -> 1000 1000 -> $88 -> 136)

The MD tile format stores two pixels in each byte. For example, if a tile byte is 0x4F, then the first pixel is color 4, and the second pixel is color 15. Note that color 0 in each palette is usually transparent, though color 0 of palette 0 is typically used for the border color.

Master System Palette

Consists of 16 colors, each represented by eight bits (a single byte) in the format 00BBGGRR, where BB = blue; GG = green; and RR = red. The BB, GG and RR can be any of the following values:

Master System Palette.png
  • 00 = 0
  • 01 = 85
  • 10 = 170
  • 11 = 255

As such, the highest palette value is 00111111, which is 3F when converted to a byte.

Game Gear Palette

Consists of 16 colors, each represented by two bytes (four nybbles) in the format GR 0B, where G = green; R = red and B = blue. The G, R and B can be any of the following values:

Game Gear Palette.png
  • 0/1 = 0
  • 2/3 = 36
  • 4/5 = 72
  • 6/7 = 109
  • 8/9 = 145
  • A/B = 182
  • C/D = 218
  • E/F = 255

Game Boy Advance Palette

With 256 color indices for 4 backgrounds and 256 color indices for sprites, the Game Boy Advance uses the BGR555 format (15 bit colors). One color index contains two bytes (5 bits per component): 0BBBBBGGGGGRRRRR. The Game Boy Advance also has support for RGB mode where one pixel on the screen is represented by the RGB value and not by an index, so you can use images with up to 32768 colors.