Guide

Neo Geo palettes, and why you only get fifteen colours

The Neo Geo holds 256 palettes of 16 colours in its own palette RAM, separate from video memory — two banks of them, one usable at a time. Every sprite points at one palette. Index 0 is not a colour, it is transparency, so what you actually draw with is fifteen.

The short version

Fifteen colours is the real number

It sounds like a rounding error and it is not. Losing entry 0 removes the slot most people instinctively use for the darkest tone — the outline. A sprite that reads as “sixteen colours” on your canvas arrives on hardware with its outline colour eaten, or with two shades collapsed into one, depending on how the quantiser resolved it.

The fix is not technical, it is procedural: decide which fifteen you are spending before you shade, and treat index 0 as the hole your background shows through. Pixel artists who have worked on other 4bpp hardware usually have the habit already; the trap is assuming the transparent index is in the same place. It moves from machine to machine.

One palette, many sprites — and what that buys you

Because the colours live in their own RAM rather than in the tiles, you can repoint or rewrite a palette at any moment without redrawing anything. That is the mechanism behind most of the effects the console is remembered for: water that ripples by cycling a handful of entries, a sky that shifts from afternoon to dusk, a character that flashes white on impact, a fade to black that costs nothing per sprite.

It also means palettes are a budget of their own. Two hundred and fifty-six sounds generous until a stage has a parallax skyline, a foreground, four enemy types and a HUD — each wanting its own ramp. Palette planning is level design work, not an export setting.

Keeping a slot for the HUD

This one is not a convention, it is the hardware: fix tiles can only use the first sixteen palettes. Everything drawn on the fix layer — the score, the timer, the health bar, every character of text — is competing for those sixteen slots with nothing else. Sprites may use any of the 256; the HUD may not.

So reserve deliberately. Neo Studio holds back four slots (12–15) for the HUD and project palettes skip them, so a readout never loses its colours because a stage filled the table. Whatever tool you use, decide early which of the low sixteen belong to the interface.

Seeing the constraint while you draw

The failure mode worth avoiding is discovering the palette at compile time. Neo Studio’s sprite editor works in native Neo Geo palettes, so the canvas is already the hardware’s view: fifteen colours, pen 0 transparent, no surprise quantisation between the drawing and the ROM. Art imported from Aseprite — or generated — goes through the same path.

Enter the beta The sprite format →