This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

The NES Palette

The NES Palette
by on (#44770)
This must've been brought up countless times before, but doing a search on this forum brings up a lot of stuff that has nothing to do with what I'm looking for, so forgive me if the answer's buried somewhere and I just missed it.

In designing some graphics for one of the numerous projects I've started and likely won't finish, I've run into the fact that the palette that I think looks correct tends to produce results that are straight-up *ugly* on palettes that other people use and agree on. So I'd really like a palette that is as accurate as can be, and that most everyone can agree on. Not just "this palette is accurate", but "this palette is accurate, and I'm using it right now".

I use a palette that has saturated colors, probably moreso saturated than others would prefer, but given my recent experiences with bringing my NES to my dorm with me, I really would have to agree that the saturated colors are what looks the most "accurate" to me.

However, numerous other palettes I've come across that others recommend to me are far too dark, too unsaturated, have strange imbalances with the saturation of certain channels, some hues are off, etc, etc. I understand that NTSC TVs will produce differing images from TV to TV, but I never thought the difference would be *that* big, such that the colors would look just straight-up incorrect to me.


TLDR:
Please help me find an NES palette that is as accurate as can be and that everyone can agree on.

Thanks a bunch

by on (#44772)
There is no such thing as "an NES palette that is as accurate as can be and that everyone can agree on."
Use the palette or emulator simulated tv settings that look most correct to you personally.

by on (#44776)
The problem is that I'm designing graphics, and more often than not, the colors I choose look like crap and lack contrast (sometimes) in other palettes I've seen others use.

by on (#44777)
Drag wrote:
The problem is that I'm designing graphics, and more often than not, the colors I choose look like crap and lack contrast (sometimes) in other palettes I've seen others use.

Do they look like crap on a real NES hooked to a TV? That's all that should matter. Personally, I trust what Nestopia outputs through the NTSC filter, and use that when drawing stuff.

by on (#44778)
Palette differences in emulators are insignificant compared to how the video output from the system looks.
See the pictures here for example:
http://www.disgruntleddesigner.com/chrisc/gotRGB/screenshots.html

As for palettes, I've heard that NTSC also stands for Never The Same Color.

by on (#44780)
Yeah, it's tough to really get something "perfect". I have personally considered using my NES palette testing program and trying to eyeball the colors and make my own palette sometime. There are colors that seem significantly different on my TV then they do in palettes I've seen.

Some examples:
$15 - looks much more red on TV as opposed to a purplish red
$26 - most palettes have this as a peach, my TV has it as an orange
$28 - Looks like a greener yellow on TV, but still a definite yellow
Any color ending with 9 - Has less yellow in it on TV than most emu palettes show

These are the ones I remember, but I do recall other colors looking very similar... $2D and $3D show up on my TV fine, but I've heard on some displays they end up as being black.

by on (#44786)
there's a dark brown color on FCEUD that looks dark green on other emulators.. it makes my castle levels look like sewer levels on super mario unlimited.. i'm wondering how they will look on the real nes..

here's two screen shots.. one from nestopia and one from fceud.. it seems $08 is the worst offender but a lot of the hues have a green tinge

by on (#44799)
Sivak wrote:
Some examples:
$15 - looks much more red on TV as opposed to a purplish red
$26 - most palettes have this as a peach, my TV has it as an orange

Then take your $26 to another town and sell it there for five times the Bells :-)

Quote:
$28 - Looks like a greener yellow on TV, but still a definite yellow

Have you tried twisting the tint knob in Nestopia's NTSC filter to make it match your TV, or vice versa?

Quote:
These are the ones I remember, but I do recall other colors looking very similar... $2D and $3D show up on my TV fine, but I've heard on some displays they end up as being black.

They end up black on PlayChoice, Famicom Titler, and some Sharp TV that has a built-in Famicom slot. All these use RGB PPUs, whose output acts more like emulator output than like the typical NES output.

frantik wrote:
here's two screen shots.. one from nestopia and one from fceud

They're both 256x240, so I don't think the Nestopia one is from the NTSC filter.

by on (#44801)
Quote:
, I've heard that NTSC also stands for Never The Same Color
Which is bull.

The most important reason NES colors differ from TV to TV more than modern consoles or broadcast pictures is that the NES creates illegal colors with negative RGB values. The NTSC standard says nothing about how to treat illegal signals. You'll have the same problem with any PAL TV.

Quote:
http://www.disgruntleddesigner.com/chrisc/gotRGB/screenshots.html
The TV-screen photographed pictures are silly because his TV obviously uses a different (more blueish) white point than his camera expects.

For designing NES graphics, I suggest not wasting too much time caring about the look of any particular color, but about making color combinations look good instead. It doesn't really matter if 0x25 looks more reddish-purple or purplish-red, but it does matter how it looks as a highlight of 0x16.

For maximum compatibility, I suggest only using color combinations within a hue, i.e. 0x07 for shadows, 0x17 for darker areas, 0x27 for lighter areas, and 0x37 for highlights. Problematic combinations to avoid, that are nonetheless found in many games:
0x27+0x36 (SMB3): 0x36 only looks brownish on a monitor with a green-blue white point, which modern monitors don't use. Otherwise, 0x36 will look pinkish.
0x07+0x18 (Duck Tales 2, Ghosts 'n' Goblins): 0x07 only looks brown if the TV handles negative RGB values by reducing saturation. Most TVs clip instead, yielding almost red.

by on (#44802)
NewRisingSun wrote:
Quote:
, I've heard that NTSC also stands for Never The Same Color
Which is bull.

{blah blah}


I'm quite certain Memblers was making a joke -- NTSC standing for Never The Same Colour has been around for years... and actually, isn't bull. ;)

by on (#44823)
Quote:
They're both 256x240, so I don't think the Nestopia one is from the NTSC filter.


i double checked nestopia was in ntsc and it still exports 256x240. i had the video settings on auto palette with the consumer preset chosen in the advanced color settings

i've seen similar greens on virtuanes. also, the standard smb blue sky looks a lot more purple on most tvs that it does on most emulators

what we need is for someone to make a rom which will display all the colors on the screen at once, then someone take a pic with a very good camera. You then color correct it based on the white and black values, and you should get a decent approximation of all the colors, or at least they will all be correct relative to each other

by on (#44828)
frantik wrote:
Quote:
They're both 256x240, so I don't think the Nestopia one is from the NTSC filter.

i double checked nestopia was in ntsc and it still exports 256x240.

Did you set NTSC emulation as opposed to PAL, or did you set Options > Video > Display > Filter to NTSC? I was talking about the latter.

Quote:
what we need is for someone to make a rom which will display all the colors on the screen at once, then someone take a pic with a very good camera.

There is Palette test by loopy. But taking a picture of a TV has a few problems:
  • Your camera might not be calibrated. You'll want to manually white-balance against a solid-white screen, either in camera or in an image editor.
  • Your TV might not be calibrated. The black level ("brightness"), white level ("contrast"), saturation ("color"), and hue offset ("tint") might not be factory settings. If you're eyeballing things, you'll want to display your PC's signal and the NES's signal on a single monitor that can handle both composite and VGA signals, such as an HDTV. I have a Vizio 32" TV whose "picture in picture" has a mode to display a composite or S-Video signal on the left and a component or VGA signal on the right, or vice versa.
  • No palette alone can simulate the effect of crosstalk between luma and chroma signals. Play Dr. Mario on an NES and see the diagonal stripes on the title screen. Then play Super Mario Bros. WORLD 1-2 and see how much more jagged the dark blue bricks appear on an NES compared to a PlayChoice or an emulator. Then see how much richer the Blaster Master backgrounds look on an NES because of the fake colors created by the edges of fine details.

by on (#44829)
NewRisingSun wrote:
Quote:
, I've heard that NTSC also stands for Never The Same Color
Which is bull.

The most important reason NES colors differ from TV to TV more than modern consoles or broadcast pictures is that the NES creates illegal colors with negative RGB values. The NTSC standard says nothing about how to treat illegal signals. You'll have the same problem with any PAL TV.


Now you have to explain how NTSC operates in RGB colour space (instead of YIQ), and what exactly are "illegal colours".

by on (#44831)
6502freak wrote:
NewRisingSun wrote:
the NES creates illegal colors with negative RGB values. The NTSC standard says nothing about how to treat illegal signals.

Now you have to explain how NTSC operates in RGB colour space (instead of YIQ), and what exactly are "illegal colours".

NTSC specifies a matrix for converting the YIQ components to RGB for display. As I understand NewRisingSun's post, an "illegal color" is a combination of Y, I, and Q that decodes to an RGB signal with one or more negative components.

by on (#44833)
tepples wrote:
frantik wrote:
Quote:
They're both 256x240, so I don't think the Nestopia one is from the NTSC filter.

i double checked nestopia was in ntsc and it still exports 256x240.

Did you set NTSC emulation as opposed to PAL, or did you set Options > Video > Display > Filter to NTSC? I was talking about the latter.


i tried that but the screen shots came out messed up. the green tint is still there however

Quote:
No palette alone can simulate the effect of crosstalk between luma and chroma signals.


having something which is known to be pretty accurate woudl be a good start for loopy's ntsc filters. maybe nestopia is already pretty accurate though.. i dunno

by on (#44841)
frantik wrote:
i tried [Nestopia's NTSC filter] but the screen shots came out messed up.

That's not messed up; it's just shrunk vertically by a factor of 2. (Try View > Screen Size > 1X to blow it up to normal size.) The jagged edges with a 3-pixel pattern between the blue pipe and the olive background are supposed to be there because the NES doesn't generate luma and chroma separately.

Quote:
maybe nestopia is already pretty accurate though.. i dunno

This weekend, I could try to get Nestopia running on my cousin's laptop and then run Loopy's test rom on NES and Nestopia side-by-side on my TV so that I can verify for myself just how accurate it is.

by on (#44842)
Quote:
That's not messed up; it's just shrunk vertically by a factor of 2.


for it to be a proper screen shot there should be scan lines :)

would be interested to know how accurate you find nestopia.. i guess i could do some side by sides with the carts i have too, though obviously not whole palettes

by on (#44844)
When using Nestopia, my palette settings are:
R-Y: 120; Gain 0.700
G-Y: 260; Gain 0.500
B-Y: 0; Gain 0.800
No yellow boost.
That seems to net me the colors that look the most "accurate" to my eye, when I compare it with my NES, and I've been using this as a reference for designing graphics, that and the palette Chris Covell came up with when he plugged his nes into a tv tuner card, but I've been told that both look awful, even though I don't think so. :P

by on (#44847)
koitsu wrote:
I'm quite certain Memblers was making a joke -- NTSC standing for Never The Same Colour has been around for years
Precisely --- it's a joke so stale it's got mold all over it.
tepples wrote:
NTSC specifies a matrix for converting the YIQ components to RGB for display. As I understand NewRisingSun's post, an "illegal color" is a combination of Y, I, and Q that decodes to an RGB signal with one or more negative components.
That's entirely correct. And how a TV handles those affects how the 0x colors look.
Drag wrote:
but I've been told that both look awful, even though I don't think so
The problem will all these, as you pointed out yourself, is that they're oversatured, and when that happens, browns look like reds instead of browns.

I think you'll be most successful at finding a palette that people can agree on by trying to properly calibrate your monitor to the sRGB standard, which is the standard for the web, using your monitor's front panel controls.
Otherwise, what you see on your monitor might not be what somebody else sees on their monitor, even with the same NES palette (or NTSC R-Y and so on settings). In particular, setting up a color temperature (a.k.a. "white point") that is too blue is probably the reason why you don't find oversaturated colors looking oversaturated on your monitor. :)

by on (#44848)
i just tried out a few carts and nestopia's default settings with the NTSC filter applied does not always give accurate colors.. the most noticable is $22 having way too much red (looks purplish) on nestopia

Drag's settings were pretty good though i thought everything was a bit too white and washed out

by on (#44851)
Someone-tris had "dumped" a NES palette and it's currently in use by a certain emulator. ;) So, what's up?

by on (#44855)
About the never the same colour thing. It was because older tv's often lost sync with the colour carrier. (or something like that) Newer tv's are alot better at this but can stil sometimes lose the signal (in theory) But its definitly true. (pal fixes this by rotating the colour carrier 180 degrees every frame (or was it line?) )

by on (#44893)
not every frame, but every line ;) PAL stands for Phase Aternating Line

by on (#46004)
just got a power pak.. nestopia's palette is way off. there was no green at all in those brown colors.. fceud seems like it's pretty accurate, though not perfect.

by on (#46007)
frantik wrote:
just got a power pak.. nestopia's palette is way off. there was no green at all in those brown colors

With or without the NTSC filter?

I've noticed that I need different hue settings to make Nestopia with the NTSC filter match my NES on the same monitor when viewing $0x colors vs. $2x colors. Should I post the details later?

by on (#46008)
tepples wrote:
frantik wrote:
just got a power pak.. nestopia's palette is way off. there was no green at all in those brown colors

With or without the NTSC filter?


the default ntsc filter settings don't really change the hues on my system.. i mean sure they add noise and whatnot but the basic colors stay the same.

I didn't do any extensive testing, just played thru my hack a bit. FCEUD's colors are pretty good, but they're a little too "complimentary" in the sense that the colors on fceud actually look better than the colors on the nes. on my tv, the darker colors, especially browns and greens have a lot more black in them than on fceud

by on (#46028)
The hues of the $x2 and $x8 colors are a bit unreliable. Some TVs render $x2 colors closer to cyan than violet, and $x8 colors closer to orange than green. Other TVs render $x2 colors closer to violet than cyan, and $x8 colors closer to green than orange. The canonical NTSC color encoder is the latter, but someone here said TVs that comply with canonical encoder are uncommon.