Palletes and palletes addresses:

*Submitted by Weird Person on May 21 2005.*
*Corrected by Sonic Hachelle-Bee.*

The pallete format:

Here are my notes about how palletes work on Sega Genesis, and where are the palletes in the Sonic 2 ROM.

First, what is a pallete? A pallete for the Genesis means 64 colors or 4 lines of 16 colors each. Each color is represented by a word in the ROM file. It's easy to understand it, look at the following word in bits:

0000 BBB0 GGG0 RRR0

The "B" means the blue intense.
The "G" means the green intense.
The "R" means the red intense.

What that means? For example, if you want the lighter red, you will have to have no blue intense, and no green intense, but you will need the red intense. So, the word will have to be the following:

000E

With this word, you get the lighter red possible.

If the color value is high, the color will be lighter. If the color value is low, the color will be darker.

For example, if you want a purple color, you will need to mix some blue with red. Look:

0E0E

The color above is the lighter purple.

While editing colors with your favourite hex editor, you don't need really to convert your color values in bits first. You can edit directly the hex value, but only even values are accepted from 0 to E. Another thing: the first nybble is usually 0. You can write anything else for this nybble, this won't change anything at all.

The pallete addresses:

There is an offset index for most pallets in the game. It's located at $2782.

For each pallet, you have 4 bytes for the absolute address in the ROM, 2 bytes for the address in RAM (where to load the pallet) and 2 bytes for the number of colors to load in this RAM address.

Now, see the offsets for each pallet, and for what each pallet is used for: