Difference between revisions of "Palette"

From Sega Retro

m (Text replace - 'Gameboy Advance' to 'Game Boy Advance')
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
A '''palette''' is selection of colours which is used in an image. Rather than defining a colour for each individual [[pixel]] (such as in 24-bit colour images), palettes are used to link pixels to colour data by way of an index reference. Graphics in [[Sega Genesis|Mega Drive]], [[Master System]], [[Game Gear]] and [[GameBoy Advance]] games all use palettes.
+
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==
 +
{{mainArticle|Sega Mega Drive/Palettes and CRAM}}
  
==Mega Drive Palette==
+
==Master System 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:[[Image:Mega Drive Palette.png|right]]
+
Consists of 16 colors, each represented by eight [[bit]]s (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:[[File:Master System Palette.png|right]]
*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 colours, each represented by eight [[Bit|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:[[Image:Master System Palette.png|right]]
 
 
*00 = 0
 
*00 = 0
 
*01 = 85
 
*01 = 85
Line 29: Line 12:
 
As such, the highest palette value is '''00111111''', which is '''3F''' when converted to a byte.
 
As such, the highest palette value is '''00111111''', which is '''3F''' when converted to a byte.
  
==Game Gear Palette==
+
==Game Gear palette==
Consists of 16 colours, each represented by two bytes (four [[Nybble|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:[[Image:Game Gear Palette.png|right]]
+
Consists of 16 colors, each represented by two bytes (four [[nybble]]s) 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:[[File:Game Gear Palette.png|right]]
 
*0/1 = 0
 
*0/1 = 0
 
*2/3 = 36
 
*2/3 = 36
Line 40: Line 23:
 
*E/F = 255
 
*E/F = 255
  
==Game Boy Advance Palette==
+
==Game Boy Advance palette==
With 256 colour indices for 4 backgrounds and 256 colour indices for sprites, the [[Game Boy Advance]] uses the BGR555 format (15 bit colors). One colour 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 colours.
+
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.
  
[[Category:Hacking Information]]
+
[[Category:Technical information]]

Latest revision as of 18:32, 12 June 2018

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.

Mega Drive palette

Main article: Sega Mega Drive/Palettes and CRAM.

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.