Small question about palettes.

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Small question about palettes.
by on (#118551)
So I know that there is not a single NES palette, since it depends on the TV and all that, but I reckon at least the relative contrast and value between the colours should be consistent.

Kasumi linked me this and this is what I have been using for my mockup in the other thread.
http://bisqwit.iki.fi/utils/nespalette.php

This here looks widely different.
http://www.thealmightyguru.com/Games/Hacking/Wiki/index.php?title=NES_Palette

The thing is that the one I am using atm basically has 6 luma values: black, white, and the 4 rows (with the greys being offset). But still 6 lumas. Which makes it pointless to put 2 colours of the same row (disregarding black and the greys) in the same subpalette because they look mostly the same when close together.

This is not the case in the one on the guru site, it looks a lot more all over the place in terms of contrast within the rows (which actually is helpful for pixelling in some cases).

I would just really like to know which one is the most reliable in terms of contrast and value consistency.

Thanks.
Re: Small question about palettes.
by on (#118560)
At one point I took screenshots of blargg's nes_ntsc filter and used it to assemble an NTSC palette. It looks like this:
Attachment:
nes-new.png
nes-new.png [ 296 Bytes | Viewed 3350 times ]
some variation in luma, but mostly less saturated than the one on theguru. Of course, I did this without a color managed display.
Also, Drag manually made one that he matched by eye, and posted here viewtopic.php?p=104823#p104823.

The two biggest problems seem to be that some of the colors are out of gamut, so will depend on the exact decoding path of the corresponding display, and that a number of the colors are highly gamma dependent.
Re: Small question about palettes.
by on (#118561)
I dunno if you understood what I meant.

Here are the 3 palettes Joel's, the one you made using blargg's thing, and the one from the guru site.
On the right to them is the luminosity of the respective palettes.

Image

You can see the top one is almost uniformly 6 lumas, the blargg one is very close, and the guru one is all over the joint. That is what I meant.

If you look at the colours in row 4 of the top palette it is very hard to tell them apart if they are next to each other. It is the same in the other rows, but not quite as bad. In the guru palette you can tell stuff apart as they are very different luma, and as such that has a HUGE implication on how you could use the colours doing art for the NES.

With the guru one you could make some background where 2 of the row 4 colours touch and it would look fine. With the other 2 palettes this does not really work very well and as such would be a waste of a sub palette. Since I do not have a NES here I can't run that program that displays all colours at once.

Nestopia seems to also be very close to the one I use (Joel's) and it pretty much looks like it if you set it to 15° canonical. So my assumption is that the guru palette is totally out of wack and not really representative of what stuff would look like on a real NES.
Re: Small question about palettes.
by on (#118562)
Some palettes were made by people examining colors in particular games and eyeballing it on their PC monitor in comparison. So no consistency as you see. Looking at luminance is an interesting way to show the wild variation.

At this point bisqwit probably has the most-researched one. I know he's done his own NTSC implementation (at really high resolution) and lots of work on it.

There are two causes of colors differing in practice on various monitors: variations in how they process color (particularly warping around skin tones), and isolated pixels of color interacting with nearby ones to produce significantly different colors. The latter occurs on every monitor and the main reason you can't get a palette to perform as well as a video simulator.
Re: Small question about palettes.
by on (#118563)
Here's a picture of blargg's full palette demo running on my NTSC toploader:
Attachment:
full-palette.jpg
full-palette.jpg [ 235.65 KiB | Viewed 3332 times ]

This picture obviously sucks for getting individual colors, but at least you can observe how they look relative to the others. The luma is indeed much more consistent than in the guru palette. And the lighter colors do indeed blend a lot. Hope this helps.
Re: Small question about palettes.
by on (#118565)
I understood what you meant, but was averse to giving you a simple "yes" or "no". But yes, theguru's palette is almost assuredly wrong.

I briefly took blargg's full_palette demo and put it on a flashcart on my NES on my TV. Then I took my digicam, put it in monochrome mode, and looked at the luminance. (Canon cameras are known for pushing saturation a lot, so I decided to ignore that) Furthermore, my TV (Sylvania 6420FF) has a "game mode" that can be toggled: turning it on dramatically decreases the contrast and increases the average brightness (so the $0x colors are brighter and the $3x colors are dimmer). "Game mode" also seemed to rotate hue by a small amount.

Regardless of the setting of "game mode", my digital camera indicates a gentle luma sway as a function of hue angle; the greenish colors are darker than the purplish colors. (Could this be the camera's fault? Certainly. Confirmation bias notwithstanding, it feels true to me when I look at the TV.) By how much? With "game mode" enabled, color $1A feels about the same brightness as color $04; the camera agrees. With "game mode" disabled, the effect is much less strong.
Re: Small question about palettes.
by on (#118566)
Yeah that helps. And indeed, I think this confirms that the one by bisqwit is the closest, probably as close as it gets. And I assume it is a baseline. Like all knobs on middle setting. Similar to how the C64 Pepto palette is a bit dark (which I like in that case) because it is made from medium default monitor settings.

So the guru one is for sure off, and not a good palette for crossdev.