A more accurate NES palette?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
A more accurate NES palette?
by on (#159792)
I was drawing out some NES art when I started noticing some discrepencies between the palette I was using and the colors being used in various NES images I was sampling.

For example, comparing this image:
Image

to this one:
Image

The one on the top has the 0 row much darker and the 3 row much lighter, compared to the one one the bottom.
On a good monitor, the difference is negligible. But on many monitors the difference is much more stark. On one of my screens the 0 row is barely visible.
I'm having a hard time defining my colors because one palette might be to extreme and another might show too little difference. The exact shade of green I'm looking for could be 1A or 2A; the differences are so strong that I can't even tell which color I would want to use.

This has led me to wonder what exact color palette I should use to best emulate an NES display.

Now, I do understand that the NES didn't actually operate in RGB colorspace, so there's not quite going to be a single exact answer. Hell, as I understand it the hardware directly created an analog signal, so even the hardware itself wasn't *quite* exact.

But even so, people use a lot of emulators. Even Nintendo uses emulators. So, there ought to be some kind of standard available. What is typically the most common? What is typically most accepted? What have people found to look the best on monitors today? What most faithfully emulates the look the had on the old CRT screens?
Something along those lines ought to produce an answer as to what palette I ought to use.
Re: A more accurate NES palette?
by on (#159811)
Everyone's (especially CRT) television is configured differently, with different gammas, different brightness, saturation, and sometimes wrong hues adjustments.

Just use Drag's generator and pick some values that look good to you, and stop worrying about it—there's nothing you can do to control it otherwise.

That said, the link from bowdenweb.com is conspicuously wrong: color $1D is identical to colors $xE and $xF. Whether that color should be displayed as #000000 black is a separate question.
Re: A more accurate NES palette?
by on (#159814)
lidnariq wrote:
Just use Drag's generator and pick some values that look good to you, and stop worrying about it—there's nothing you can do to control it otherwise.


That's a handy little tool. Does is have any documentation? I'm not quite sure what the values I'm tweaking are doing; it would be nice to read some formal explanation.

Also, at the very least I would like to know what kind of palette most emulators are using.
Re: A more accurate NES palette?
by on (#159816)
CIE graph:
Plots the X/Y locations in the CIE XYZ colorspace for all 48 non-greys that the NES can produce.

Clipping style:
The NES produces a bunch of colors that are "Out of gamut", corresponding to colors that can't be represented in YIQ or RGB (because they correspond to out-of-range values, e.g. negative green, blue more than 100%, Q more than 0.525, &c). I believe there was no standard specifying what is the correct thing to do in such a situation, so different televisions vary in what happens.

Tuning:
Hue, Saturation, Brightness, Contrast, and Gamma are hopefully terms you've already comfortable with?

Range:
NTSC "properly" encodes its color signal using quadrature amplitude modulation in a manner that can be broken down into I (in-phase) and Q (quadrature). I and Q differ both in the permissible amplitudes of each direction and the bandwidth alloted. In practice, this is a selective saturation control on the two NTSC color axes.

PAL (and every other more modern standard) just use YUV≈YPrPb.

View:
Should be obvious?

Colorimetry:
There have been several different versions of the RGB phosphors used on the CRTs over the years, and several different standards as to how to correctly convert things accordingly.

Custom:
If you choose "custom colorimetry", you can specify the location of these Standard illuminants in the CIE XYZ colorspace. Phosphors are different from LEDs are different from LCDs with CCFL backlights.

Quote:
Also, at the very least I would like to know what kind of palette most emulators are using.
Emulators have been mostly moving away from baked-in RGB palettes and switching to calculating HSL on-the-fly. The official NES emulators on the Gamecube and Wii seem to have a baked-in set of YCbCr values, but I don't think we've extracted them.
Re: A more accurate NES palette?
by on (#159822)
Over the years, I've used several NES palettes. I used to try and find a balance of accuracy and beauty, but I've given up on the former. From what I understand, the conversation from YPbPr to RGB color just really doesn't work. So instead, I found a palette that just looked nice on computer monitors and I've been using that since.

Image

This was generated using bisqwit's NTSC palette generator with the saturation set to 2.0 and everything else left alone. It's a great palette because there's a lot of contrast, it's very vibrant and the red is actually red (not some weird tint of orange or magenta). The only downsides are that the greens don't have a lot of contrast and the yellow is a little dirty. I've found the orange to work as a nice substitute, though.

Here and here are some examples of it in action.
Re: A more accurate NES palette?
by on (#159844)
The second palette on the top post appears to be the Nesticle palette, which is awful. Especially how the dark blue color is pure bright blue.
Re: A more accurate NES palette?
by on (#159859)
I avidly stick by NEStopia's palette, but I take others into consideration when I develop.
Re: A more accurate NES palette?
by on (#160537)
I apologize in advance for the long-winded rambling; it is early, and I've had not much sleep.

EDIT (2015/12/25): The palette in this post is now outdated. Please look for the newer post I've made in this thread, which contains a much better palette. :) The image shall remain attached for historical reasons.

M_Tee wrote:
I avidly stick by NEStopia's palette, but I take others into consideration when I develop.

I used to; NEStopia's YUV palette is really good. :)

HOWEVER: to me, despite how good it is, some of the colors just didn't look right. So I busted out my NES, hooked it up to my old ATi TV Wonder Value Edition capture card, did some wizardry*, and came up with this:

Attachment:
File comment: Just what it says on the tin — or, in this case, in the file name. 'Cause it's within probably 10% or better of what my NES outputs. :)
Kizul's_90-percent-accurate_NES_palette.png
Kizul's_90-percent-accurate_NES_palette.png [ 2.95 KiB | Viewed 13563 times ]
To explain why the blacks all probably look a bit odd: $0D is 'pure black', and $1D should actually be the same color as $xE and $xF (which I've made a super-dark charcoal black, just to separate them from $0D) — but since Bee 52 uses $0D as its 'main' black and uses $1D as an extra shade of gray (due to $0D brightening $1D, $xE, and $xF), I've made $1D a charcoal gray to reflect this, since no emulator I know of actually emulates this one weird brightness trick. Emulators hate it! Aside from NEStopia, anyway, but for that you have to have the colors be darker and set NEStopia's brightness to 0.30, which washes out all of the blacks — to, incidentally, the exact shade of charcoal gray that $1D is set to in my palette…

It's probably not perfect (and I learned the hard way that there's no such thing as a 'perfect' NES palette :(), but this palette is the first one I've found that I didn't feel like I needed to tweak the vibrance/hue/lightness of a specific color.

<disclaimer>In my opinion,</disclaimer> though, it is the most-accurate NES palette that exists. At the very least, it looks a lot better (again, in my opinion) than what's made by most NTSC palette generator things that various people have linked. (I can say with utmost confidence, however, that it looks much better than the emulator METROID Prime's GameCube game disc uses for emulating the original NES METROID game. :mrgreen: For some reason, that particular palette looks terrible on my old CRT television. Not that I play the NES version of the original METROID anyway; I prefer the FDS version for various reasons. :))

Anyway, I figured I'd share my palette in this thread here rather than making a new thread exclusively for it (since this palette is the product of my numerous attempts at trying to make a more-accurate NTSC NES palette). :mrgreen: If anyone wants to use this palette with their emulator of choice, I included it in the attached Zip file for convenience. :) The attached 8-bit PNG (above) also has the palette embedded, if anyone wants to use it for drawing NES-style graphics. :P

*Said wizardry consisted of me recording two-second-long uncompressed video clips of a single individual color of the NES palette — the whole screen was filled with a single color via Adventure Island II's debug mode, which allowed me to mess around with the palettes' colors — except that on my capture card, $0D, $1D, $xE, and $xF all look identical (particularly when the entire screen is filled with just that color), so I only recorded $0D and didn't bother with the other blacks, a total of 55 short clips.

Then I used VirtualDub to edit them (cropping and resizing them to be much smaller, running them through a huge stack of filters to smooth out noise), and then saved screenshots of a single frame from each clip and used the RGB values from the resulting frame for each cell in the palette, brightened it up slightly (because all of the colors were darker than they should've been), et voilà! The palette attached was born.
Re: A more accurate NES palette?
by on (#160571)
Still like the Nintendulator palette, nice and colorful.
Re: A more accurate NES palette?
by on (#160585)
The most important thing is that colors in the same "row" don't vary wildly in brightness or saturation. Otherwise, later games that use shading like Ninja Gaiden 2 and 3, the later Mega Man's and the Final Fantasy's are going to look terrible. Examples of palettes that fail this test are Nesticle palette and the RGB PPU used in the Playchoice 10 etc. (Indeed I suspect the the palettes in Nesticle and other early emulators were based on box and magazine screenshots, which tended to be taken from RGB hardware)

Look at the monsters on the poster that came with Final Fantasy (which were clearly screenshotted from an RGB unit) The intended shading on monsters like the Giant and Ogre is completely lost.
Re: A more accurate NES palette?
by on (#160587)
Is it just me, or does color $12 ... and color $27... look vastly different in the different palettes here.
and maybe $03.


I'm still waiting for someone to produce palettes for all the other 'color emphasis' states.
Re: A more accurate NES palette?
by on (#160588)
Here, I made one with Rainwarrior's palette tool and Nintendulator and Photoshop.
Re: A more accurate NES palette?
by on (#160591)
dougeff wrote:
Here, I made one with Rainwarrior's palette tool and Nintendulator and Photoshop.

Hm, odd — I'd've thought that the emphasis would be somewhat 'uniform' across the various combinations, but it isn't. ò.O (Id est: on color $00 with the red emphasized, the RGB values are 108,64,59; I'd expect blue, then, to be 59,64,108; and green to be 59,108,64 — but they're not.)

Of course, I was actually expecting (again, using $00 as an example) that whichever color was to be 'emphasized' would stay the same as it was without color emphasis, and then the other color(s) would be reduced by 25% or so. In other words, for $00 with red emphasis, the red value would stay the same (101), and green and blue each would be reduced to 76; for 'yellow' emphasis (red + green), the RGB value would be 101,101,76. Having all the color emphasis bits enabled would change it to 76,76,76.

This is interesting, though mayhap I have very little knowledge of how color emphasis/de-emphasis works. :)
Re: A more accurate NES palette?
by on (#160594)
Re: not uniform.

I have no idea if Nintendulator implements the color emphasis the same as an actual NES. Maybe an NES would be more uniform.

Hmm, color $16 with emphasis 001 makes a good red...and color $36 with emphasis 011 makes a good yellow. And I really like the dark gray of $2d with all bits set. Maybe I should learn to use color emphasis more.

And, apparently (looking at Rainwarriors Palette Tool) you can change $2001 (color emphasis) mid-frame with no problems. So it's possible to use the standard color for one part of the screen, and a color emphasis on a lower part of the screen...doubling your color options.
Re: A more accurate NES palette?
by on (#160596)
The NTSC or PAL composite signal has twelve phases, one for each rising and falling edge of the master clock that ticks six times for each cycle of the color subcarrier. Each color ($1-$C) alternates between high voltage level for six phases and a low voltage level for six phases. The TV decodes the difference between the high phase of the signal and the high phase of the "color burst" reference to the left of the picture, which has the same phase as color $08, into a hue value on the UV plane.

What red emphasis actually does on composite PPUs is darken the parts of the signal in the phases when $x6 would produce a low signal value. Likewise for green emphasis and $xA or blue emphasis and $x2. These phases are evenly spaced on the UV plane but not in RGB space.

Image
Illustration by Denelson83 of the graticule on an vectorscope for tuning NTSC color reception. The plot is in UV space and marked with the phases for pure red, green, and blue. Notice, for example, how much closer red (R) is to magenta (MG) than to yellow (YL).
Re: A more accurate NES palette?
by on (#160599)
Since tepples linked to wikipedia:File:Vectorscope graticule , here's my version which superimposes that image, wikipedia:File:YIQ IQ plane , and the NTSC NES color phases.
Re: A more accurate NES palette?
by on (#160602)
tepples wrote:
These phases are evenly spaced on the UV plane but not in RGB space...
Notice, for example, how much closer red (R) is to magenta (MG) than to yellow (YL).


I'll interpret that to mean "NES doesn't do color emphasis uniformly". But it still doesn't answer my original question... does Nintendulator (or other popular emulators) implement color emphasis accurately?
Re: A more accurate NES palette?
by on (#160612)
dougeff wrote:
I'll interpret that to mean "NES doesn't do color emphasis uniformly".

It's exactly the opposite of this. The NES does colour emphasis uniformly in the YUV colour space.

What's not uniform is how people convert YUV to RGB. Every way of doing it is compromised in some way.
Re: A more accurate NES palette?
by on (#160652)
dougeff wrote:
... does Nintendulator (or other popular emulators) implement color emphasis accurately?
I'm quite curious as well; I was under the impression (possibly due to NEStopia) that Color Emphasis only affects $x0-$xD* — not $xE or $xF:
Attachment:
File comment: Screenshot of rainwarrior's palette.nes taken with NEStopia — with a bunch of contrast and brightness piled on top of it afterward.
NEStopia_palette_013.png
NEStopia_palette_013.png [ 1.86 KiB | Viewed 9619 times ]
But in Nintendulator, you can clearly see that it affects the entire 64-color range of the NES palette:
Attachment:
File comment: Second verse, same as the first. Except using Nintendulator instead.
NintendulatorSS_palette_001.png
NintendulatorSS_palette_001.png [ 2 KiB | Viewed 9619 times ]
This really makes me wish I had a Power Pak or EverDrive N8 so I could see just what the behavior is on my own old CRT television and a real NES. ò.O (And, for lulz, my Yobo FC Console as well. :mrgreen:)

Interestingly, I applied the exact same Brightness and Contrast boosts to both images, but the colors ended up looking different in each one. I'm leaning toward saying Nintendulator's more accurate here with the C.E. calculation, given that the colors (after the Brightness/Contrast boost) look pretty much the same in the Emphasized and non-Emphasized portions — unlike NEStopia's…



*I can see why each emulator does it: NEStopia's reason for not bothering with C.E. on $xE/$xF is probably something like, "It's just more black; no need to affect it." But Nintendulator probably uses C.E. on $xE/$xF because the author figured that C.E. should affect the entire video signal — not just a portion of it. ¯\(º_O)/¯
Re: A more accurate NES palette?
by on (#160655)
Link me the test ROM and I'll try it on my PowerPak tonight.
Re: A more accurate NES palette?
by on (#160656)
tepples wrote:
Link me the test ROM and I'll try it on my PowerPak tonight.

It's right here in his own thread. :)

Also, while I was searching for that thread, I stumbled upon this thread where someone did pretty much the exact same thing I did — and got a palette that looks nearly identical to what I posted in this thread. :D
Re: A more accurate NES palette?
by on (#160669)
Just another data point, so I can cite something in the wiki article: Here's a photo of the demo running on a Magnavox TV whose brightness was cranked way up, with blue tint turned on. You can clearly see the contrast between 1D and the black background.

Attachment:
1d_emph_0f_not.jpg
1d_emph_0f_not.jpg [ 106.49 KiB | Viewed 9583 times ]

With mono mode ($2001 bit 0, S in the demo) turned on, xE and xF are affected by both mono and tint. But with mono off, xE and xF are not tinted.

Now I realize that I did the right thing by using $1D black in the IRE test in my port of the 240p test suite.
Re: A more accurate NES palette?
by on (#160670)
Wait, so if we want a black that's affected by the emphasis bits we have to use $1D? That's new!
Re: A more accurate NES palette?
by on (#161249)
Welp — because I can't ever leave anything be, I decided to hook my NES up to my ATi TV Wonder Value Edition capture card again, this time with specific settings (that I'll post if anyone's curious).

After some wizardry, and then some minor modifications to parts of the output (and, in the case of four colors — $24, $0C, $1C, and $2C — hue replacements with colors from my previous palette (posted earlier in this thread)), this was the result:
Attachment:
File comment: Objectively, the filename is true. But whether it is definitively THE palette for NES emulators is entirely subjective.

NOTE: retroactively edited to improve the black levels for $0D and $xE/$xF. My tuner card is terrible at detecting the proper BLACK levels, I guess. :[

Kizul's_Definitive_NES_Palette.png
Kizul's_Definitive_NES_Palette.png [ 2.93 KiB | Viewed 9372 times ]

This is it, guys. This is my "swan's song". I firmly believe that this is the definitive RGB-format palette that NES emulators should use.

(Obviously, I won't force anyone to use it, though. :p Again, that this is the definitive RGB-format palette that NES emulators should use is completely subjective.)

And yes, I know that $xE and $xF are a charcoal black an 'off-black' instead of pure black: they (along with $1D) are supposed to be; trust me: after a few minutes of playing, in most games, you don't even notice that it's not pure black. :) (It might be a little more noticeable in NEStopia with the NTSC filter on — but even then, you get used to it after a while.)

As an aside: while I was working on the webpage I originally made for ranting about how NES emulators don't really emulate certain palette quirks 'correctly', I noticed that the screenshot I'd made in FCEUX (the left-most one here) was larger than the other two that I'd made in NEStopia and then compressed.

I ended up accidentally discovering that FCEUX stores the entire NES palette — both regular and Color Emphasized! — quite tidily in the screenshots it takes.

Attachment:
File comment: FCEUX's palette, taken directly from a PNG screenshot of The Immortal that was taken with FCEUX.
fceuxpal.png
fceuxpal.png [ 1.17 KiB | Viewed 9469 times ]

I wonder why there's a blot of blue at $23? It seems… out-of-place. It looks almost identical to $11, too! :p

Anyway, I think this'll be it from me on the 'more accurate NES palette' front. :) I won't be making another NES palette for a long, long time — unless I get the urge to (just for lulz) 'rip' the palette from my Yobo FC Console to see how my two palettes compare! :mrgreen:
Re: A more accurate NES palette?
by on (#161250)
Quote:
Charcoal Black...in most games, you don't even notice that it's not pure black


I disagree. I much prefer 0,0,0 for all blacks. I think is gives better contrast. Your numbers might be "accurate", but I just like black blacks.
Re: A more accurate NES palette?
by on (#161251)
dougeff wrote:
Quote:
Charcoal Black...in most games, you don't even notice that it's not pure black


I disagree. I much prefer 0,0,0 for all blacks. I think is gives better contrast. Your numbers might be "accurate", but I just like black blacks.

Fair enough. :p The entire point of this thread, though, was/is to acquire — either via searching, or via creating — a more accurate palette for NES graphics. :) There's nothing stopping you from zeroing all of the blacks out, though. :mrgreen:

(The Immortal looks terrible with pure-black $xE/$xF (and, on the title screen, $1D) blacks, though, even with a brightness boost.)
Re: A more accurate NES palette?
by on (#161270)
On my television, the presence of "too black" $0D causes the other blacks to raise slightly in brightness, but if it is not present onscreen, they are normalized to proper black.

A single palette doesn't really adequately describe all behaviours, and an RGB palette has big problems because of its limited gamut of available colours.

There's no "definitive" palette. There's maybe good methodologies and bad ones, but even with good practices it's ultimately a matter of choice about what compromises you want to make to fit a square peg into a round hole.
Re: A more accurate NES palette?
by on (#161284)
Kizul Emeraldfire wrote:
… I decided to hook my NES up to my ATi TV Wonder Value Edition capture card again, this time with specific settings (that I'll post if anyone's curious).



(and, in the case of four colors — $24, $0C, $1C, and $2C — hue replacements with colors from my previous palette


May I ask why you felt that $24 and the $xC range needed hue adjustments, and how do they compare to prior to the replacements?

Quote:
Attachment:
Kizul's_Definitive_NES_Palette.png

This is it, guys. This is my "swan's song". …


I never thought someone would post a palette that I prefer to NEStopia's, but I really dig what you've done there, Kizul.

The main fault with NEStopia's palette, as far as I can tell, is the strong value jump between $x0 entries and $x1. The darks are just too dark. The other fault that nearly all NES palettes have is that they're just too saturated. If I were to adjust the settings on my TV to produce colors that saturated, then actual live-action television would be unwatchable.

Quote:
I ended up accidentally discovering that FCEUX stores the entire NES palette — both regular and Color Emphasized! — quite tidily in the screenshots it takes.

Attachment:
fceuxpal.png

I wonder why there's a blot of blue at $23? It seems… out-of-place.


As for the blue at 23, that was an admitted mistake by FCEUX's developer and corrected with version 2.2.0.

FCEUX 2.2.0 Release wrote:
Fixed wrong default palette entry


FCEUX is up to version 2.2.2 now, so it may be time to update your copy.
Re: A more accurate NES palette?
by on (#161291)
Brace yourselves! I'm probably going into too much detail, but here we go anyway! :D
M_Tee wrote:
May I ask why you felt that $24 and the $xC range needed hue adjustments, and how do they compare to prior to the replacements?
Well, this is what the palette looked like before I did any tweaking to it*:
Attachment:
File comment: Just what it says. It's still good, but… certain colors just don't look "juuuust right". (Particularly $24.)
Kizul's_Definitive_NES_Palette_(UnTweaked).png
Kizul's_Definitive_NES_Palette_(UnTweaked).png [ 2.93 KiB | Viewed 9372 times ]
You can also download its respective emulator palette from here, in the event you wanted to try it out. (Would've attached it, but I can attach only three files, so… this and the screenshots below won out in the priority war.)

Simply put: $24 looked out of place; it looked to me like it was too close in hue to the $x5 column, and it also looked too vibrant — both too bright, and too saturated. I use certain games for testing palettes, especially Solstice, which works great to show off why I changed $24:
Attachment:
File comment: Example screenshot from Solstice, using the Definitive UnTweaked palette.
Solstice - The Quest for the Staff of Demnos (USA)_001.png
Solstice - The Quest for the Staff of Demnos (USA)_001.png [ 3.06 KiB | Viewed 9372 times ]
Attachment:
File comment: Example screenshot from Solstice, using the default Definitive palette (with the changed $24 color — among others).
Solstice - The Quest for the Staff of Demnos (USA)_002.png
Solstice - The Quest for the Staff of Demnos (USA)_002.png [ 3.06 KiB | Viewed 9372 times ]
As you can see, in the top screenshot (with the UnTweaked palette), $24 appears to be too close to the 'warm' side of the spectrum, and thus looks out-of-place compared to $14 and $34.

The hue I tweaked $24 to (bottom screenshot) looks more like an intermediate shade between the 'light' and 'dark' purples used in that room.

As far as $xC goes: I liked when it was slightly bluer like in the other palette that I posted much earlier in this thread. In the case of $24 and the $xC colors, I copied the un-tweaked color, changed its Hue to match the one I wanted, then tweaked its Value until it looked about the same (luminosity-wise) as the original, un-tweaked color.

Aside from the hue-replacement I did on the four colors mentioned above, I also did some minor tweaks to the tint on ten other colors: using NEStopia's Hue control, I tinted the palette to -0.6º to make it a little warmer; from that, I copied $06 and $16, $07 and $17, $08 and $18, and $x9 over the un-tweaked colors.

It made the reds and browns look more like what I see on my actual TV, made the dark yellows look ever-so-slightly less green (helping to separate them from the actual greens), and… I just like the slightly-yellower/warmer $x9. Green's my favorite color — and I have a soft spot for that particular set of greens in particular. :mrgreen:

Those are the only tweaks I did to make my 'Definitive' palette from this base, however. :)
M_Tee wrote:
I never thought someone would post a palette that I prefer to NEStopia's, but I really dig what you've done there, Kizul.

The main fault with NEStopia's palette, as far as I can tell, is the strong value jump between $x0 entries and $x1. The darks are just too dark. The other fault that nearly all NES palettes have is that they're just too saturated. If I were to adjust the settings on my TV to produce colors that saturated, then actual live-action television would be unwatchable.
Hurray! :mrgreen: I'm happy you like it.

In regard to the saturation levels: my tuner card uses a Bt8x8 tuner (I don't remember the exact one), and aside from using DScaler's Gamma Boost filter (and a few noise-reduction filters — also in DScaler — whose settings I cranked to maximum), I used as close to the default picture settings as possible.

If I recall correctly: in the Bt8x8 advanced settings, I turned on the 'Full Luma Range' setting, and also the Automatic Gain Crush (AGC) for both Odd and Even scanlines; if not for those being on… yeah, the colors would've looked hideously garrish and over-saturated. (And I also turned off Odd/Even Luma Peak, to help reduce noise.)

M_Tee wrote:
As for the blue at 23, that was an admitted mistake by FCEUX's developer and corrected with version 2.2.0.

FCEUX 2.2.0 Release wrote:
Fixed wrong default palette entry


FCEUX is up to version 2.2.2 now, so it may be time to update your copy.
Ahhhh, I see. Hm. I have no idea what version I used to make my original screenshot, but I'll certainly update it! :D

Hopefully this post wasn't too rambly; I mean — I can make sense of it, but that doesn't necessarily mean much most of the time. :roll: (I at least apologize for the novel that it turned out to be. XD)

*EDIT: What dougeff said here kept nagging at me:
dougeff wrote:
Quote:
I much prefer 0,0,0 for all blacks. I think is gives better contrast.
He's technically correct. (The best kind of correct.)

I was showing off my palette to my sister just a little while ago tonight, comparing it with a game that she was familiar with (Bucky O'Hare) in both an emulator and in the actual NES on our TV.

And I noticed something: the blacks on the TV were a lot darker than the blacks in the emulator. So: I have retroactively revised the palette files in this and my previous post, and also the palette image in this and my previous post to reflect the improved black levels. :|

Also, I'm curious, dougeff: is my palette with newly-revamped black levels better/more acceptable? :)

$0D is now pure black (0,0,0), and $xE/$xF are now 20,20,20 instead of 35,35,35 — which really was much too bright — so as to keep 'compatability' with The Immortal. $1D, however, still is 35,35,35, because any darker and it doesn't show up correctly in Bee 52. I checked the brightness level for $1D in Bee 52 against my TV, too, in the first dark level that uses a mostly-black screen. (You can easily warp to the level I used via going through either door and entering the farthest flower from the hive in Level 1.)
Re: A more accurate NES palette?
by on (#161293)
rainwarrior wrote:
On my television, the presence of "too black" $0D causes the other blacks to raise slightly in brightness, but if it is not present onscreen, they are normalized to proper black.
Yeah, that's what happens on mine, too. But sadly, emulators don't emulate this effect. :( Of course, the amount of $0D in relation to the other blacks on the screen also seems to change how bright it and the other blacks look, too. ¯\(º_O)/¯

rainwarrior wrote:
A single palette doesn't really adequately describe all behaviours, and an RGB palette has big problems because of its limited gamut of available colours.

There's no "definitive" palette. There's maybe good methodologies and bad ones, but even with good practices it's ultimately a matter of choice about what compromises you want to make to fit a square peg into a round hole.

Mm… I agree. But hey, at least my palette looks far and away better than most (if not all) NES-on-a-chip consoles' palettes! :mrgreen:

Yeah, maybe it's not 'perfect'. There's no such thing as a perfect RGB-format NES palette, alas. But at least all of the colors look like maybe they go together pretty well and contrast well against each other. (A bit better than many other NES emulator palettes out there do, at least.) And the brightness levels along each successive row is fairly consistent, and the hues in each column are cleanly separated. There are some palettes out there where the $0x colors are nearly black, the $3x colors are nearly white, and vibrance of the $1x and $2x fluctuates wildly (with some colors being either far too saturated, the wrong hue, or both).

I still need to see how my palettes would look on my actual TV — just to see how close they really are to the actual hardware from which they were 'ripped'. :p But I digress.
Re: A more accurate NES palette?
by on (#161306)
Quote:
now 20,20,20 instead of 35,35,35


Much better. Thanks.
Re: A more accurate NES palette?
by on (#161307)
Kizul Emeraldfire wrote:
But at least all of the colors look like maybe they go together pretty well and contrast well against each other. (A bit better than many other NES emulator palettes out there do, at least.) And the brightness levels along each successive row is fairly consistent, and the hues in each column are cleanly separated.

Palette generators should be able to produce even brightness and colour spacing, but once you're past that baseline and begin tweaking it by hand, at some level what you're doing is reverse-calibrating your personal combination of monitor + eyeballs. (This is perfectly okay to do, just there's a point where what you're doing doesn't even apply to other peoples' setup.)
Re: A more accurate NES palette?
by on (#161310)
dougeff wrote:
Quote:
now 20,20,20 instead of 35,35,35


Much better. Thanks.
You're welcome! :)
rainwarrior wrote:
Kizul Emeraldfire wrote:
But at least all of the colors look like maybe they go together pretty well and contrast well against each other. (A bit better than many other NES emulator palettes out there do, at least.) And the brightness levels along each successive row is fairly consistent, and the hues in each column are cleanly separated.

Palette generators should be able to produce even brightness and colour spacing, but once you're past that baseline and begin tweaking it by hand, at some level what you're doing is reverse-calibrating your personal combination of monitor + eyeballs. (This is perfectly okay to do, just there's a point where what you're doing doesn't even apply to other peoples' setup.)
True. (And I agree on that last bit.) But I'm weird; I just don't trust the palette generators. xD The colors in my most recent post (excluding $0D, anyway…) came directly from the Control Deck that I own. Thus: I do trust those colors.

I dunno. ¯\(º_O)/¯ Like I said, I'm weird. (Plus, most — if not all — generators don't do the blacks correctly at all: tweaking the brightness in the generator does zilch to the blacks from what I remember, when it should definitely do at least something. (Though it's been a while since I last messed with a web-based palette generator.))
Re: A more accurate NES palette?
by on (#161311)
All this talk of palettes, and I was playing around with palettes today. I tried to make a decent Grayscale one, here's the results...
Re: A more accurate NES palette?
by on (#161312)
And I made a Sepia Tone one, that I like a bit better...
Re: A more accurate NES palette?
by on (#161313)
Here's the palettes, if anyone cares to try them out...
Re: A more accurate NES palette?
by on (#161350)
I really like your sepia-tone palette, dougeff! :mrgreen: It just needs some jumpy, old-timey film effects and piano music, and it'd be perfect. :)

I could sure do with some good straight, fully-desaturated grayscale graphics right about now, though. @_@ I foolishly stayed up all night messing about with making a screenshot gallery to show off my palette's colors in a few games… and then I added a few more games, and a few more, until I had screenshots from seventeen different games, all using my palette.

(That actually wasn't what I stayed up so late doing, though.)

Then a friend of mine suggested that I have some screenshots from other emulators and such to show off what the games look like in other emulators — for comparison. :D

And like a fool, I listened to him. |:

Seventeen games, displayed with eight different NES master palettes (including mine), with each set of screenshots on their own page! My eyes are so tired of colors that if they could, they'd scream. x_x

Of course, if I'd been able to get NESten to work on my laptop without encountering a Runtime Error, I'd have that one on there as well. Also LoopyNES and FWNES, but those're DOS-only, alas; they'll have to wait. (And if I weren't so tired, I'd right now be working on adding the 3DS and Wii/Wii U Virtual Console NES palettes that I heard someone ripped…)
Re: A more accurate NES palette?
by on (#161354)
Kizul Emeraldfire wrote:
Of course, if I'd been able to get NESten to work on my laptop without encountering a Runtime Error, I'd have that one on there as well.

Do you have to disable DEP/ASLR? Windows apps that use JIT and were produced before the introduction of those features might need DEP turned off.I remember NESten being an experiment in JIT recompiling 6502 code.

Quote:
Also LoopyNES and FWNES, but those're DOS-only

Do they work in DOSBox?
Re: A more accurate NES palette?
by on (#161359)
According to Wikipedia, .cx extension means Christmas Island, a small island West of Australia, population 2072 people. 60% of their economy from the mining of guano.

To clarify, Kizul's link above has a .cx web extension, which I found interesting.
Re: A more accurate NES palette?
by on (#161373)
tepples wrote:
<Tips for running super-old programs on modern Windows systems>

That's actually pretty fascinating. o.o I didn't think about the DEP messing things up.

But: ultimately, it doesn't matter, because I have an old machine laying around that I can use to run the old emulators; it has Windows 98 SE installed on it. :p I just hadn't wanted to bother with it at the time because I was very sleepy. XD

I appreciate the tips, however! :) I'll keep those in mind if I ever need 'em again.

…Also, in regard to DOSBox: I don't like DOSBox. Me and it… We don't get along. <_< That's actually a big part of the reason why I still have a Windows 98 machine. :mrgreen:

…Though on the other hand, I might have to use DOSBox for loopynes in order to get a screenshot of it. I can't remember if it has a screenshot-saving function. ò.o It's been a good nearly-a-decade since I last used it. >.> We shall find out, though! :D

dougeff wrote:
According to Wikipedia, .cx extension means Christmas Island, a small island West of Australia, population 2072 people. 60% of their economy from the mining of guano.

To clarify, Kizul's link above has a .cx web extension, which I found interesting.

Yeah; my webspace exists on a server owned by my friend. :) I didn't know that about the .cx domain, though. o.O Interesting! :D
Re: A more accurate NES palette?
by on (#161392)
There was another infamous site on the .cx top-level domain that was very not safe for work. But let's not talk about that; just admire the facial hair of Spock's evil twin.
Re: A more accurate NES palette?
by on (#161398)
Just 1 little complaint, now that I've tested the Kizul Palette on a few games...

Maniac Mansion opening sequence (for some reason) is using $1d for black sometimes, and sometimes $3e, and sometimes $0d (around the words "Maniac Mansion" in the title screen). It just looks totally wrong with the Kizul Palette...
Re: A more accurate NES palette?
by on (#161403)
dougeff wrote:
Just 1 little complaint, now that I've tested the Kizul Palette on a few games...

Maniac Mansion opening sequence (for some reason) is using $1d for black sometimes, and sometimes $3e, and sometimes $0d (around the words "Maniac Mansion" in the title screen). It just looks totally wrong with the Kizul Palette...

Hm. Maniac Mansion is one game I've actually never played, so I didn't know about this. ò.O

I guess I could make one for Bee 52, and then change my main 'Definitive' one to have a $1D that's the same color as $xE/$xF.

Thank you for letting me know! :mrgreen: I'll roll that change out between twelve and eighteen hours from now*, probably. :)

And in screenshot gallery-related news, I was able to get NESten, FWNES, and loopynes all working on my Windows 98 PC, and so now they have pages up on the screenshot gallery as of a few minutes ago. (Sadly FWNES, loopynes, BioNES, and FCEUX all look nearly identical to each other. xD)

Unfortunately, I did end up having to use DOSBox to get a screenshot of loopynes running rainwarrior's palette.nes, because while I managed to get it to run — I was correct that it didn't seem to have a screenshot-saving option. :|

Ah well! :D Now all I have left to add are just the Nintendo VC palettes, the Nestopia YUV "Consumer" palette, and maybe the palette of "REW", an interesting emulator that played Game Boy, Game Boy Color, and NES games. And possibly JNES in there somewhere.

*EDIT: aaaaaaand that's done now. I decided instead to make a separate palette for Maniac Mansion; it was simpler to create a single palette that would work better for (primarily) one single game. :|

I may look around my local used-games shops and see if I can get my hands on a copy of Maniac Mansion and rent it to see how it looks on my Control Deck; I'm curious how the blacks look on the real hardware. ò.O

Meanwhile, I may also end up rooting through almost the entire NES ROM set to see how games use which blacks and where; just in the few I was testing of the games I already own, I noticed that Dragon Warrior uses $0D for the mouths of Red Slimes, and $0E for the dragon silhouette on the title screen (as well as monster shadows). Meanwhile, Dragon Warrior III (and most other NES games, it would seem) uses just $0F for black, whilst Dragon Warrior IV uses $0F for black — except during battles, where it uses $3F. (Lunar Pool also uses $3F for its main black, but the glowing Cue Ball flashes to $0E when it turns black.)

This is maddening. :| But hey, at least some of us can agree: my palette looks a dang sight better than many other palettes out there! :D (Maybe not all of them, but a lot of them… In my opinion, at least…) It would seem that about the only major problems my palette has lie in (some of) the blacks! :mrgreen:

EDIT 2: And, of course, because accidentally creating dead links all the time isn't enough, I ended up accidentally getting the two palettes switched around, so the special Maniac Mansion palette was still broken (technically). :| I just fixed it, though. >.>

EDIT 3: after much deliberation (and going through nearly the entire library of NTSC-U NES ROMs), I've decided to instead have a special palette for Bee 52, and rename the one that I'd made for Maniac Mansion so that the Maniac Mansion-specific palette is now the 'default' palette (and I've retroactively uploaded the Zip file into my older post). Apologies for the headaches, everyone. This will be my final edit, both to this post, and to this palette. :p
Re: A more accurate NES palette?
by on (#161549)
Something that has always seemed weird to me for as long as I've used NES emulators - was the sky in SMB1 and Zelda 2 really this purple?

Attachment:
File comment: Purple sky in Super Mario Bros. 1-1, Kizul's definitive palette
smb1title.png
smb1title.png [ 2.91 KiB | Viewed 8626 times ]


Attachment:
File comment: Purple sky in Zelda 2 town, Kizul's definitive palette
zelda2ruto.png
zelda2ruto.png [ 2.65 KiB | Viewed 8626 times ]


I no longer have a real NES console or a CRT TV, so I can't check for myself. Assuming that this palette matches the behavior of correctly calibrated 1980s TVs, it strikes me as very strange that Nintendo chose such a purple hue ($22, I think) when $21 or $31 would look much better.
Re: A more accurate NES palette?
by on (#161554)
LightStruk wrote:
was the sky in SMB1 and Zelda 2 really this purple?

Yes.

There is of course variation between televisions (and don't forget that "tint" knob) but also perception of colour is somewhat relative as well as being driven by other external factors (e.g. like how you know it's "sky"). I don't think humans really have much ability to remember absolute colours with any kind of precision.

There's no way you could remember the exact hue of the SMB sky without having thought a lot about it and made direct comparisons with other potentials, etc., which is what you might be doing now that you're looking at palette possibilities. You need a framework of reference to be able to recall colours that way.
Re: A more accurate NES palette?
by on (#161559)
On SMB's title screen, I find it easier to compare the sky color against the white text. On my TV, the sky is an extremely vibrant blue-cyan color, and the white text contrasts against the sky very well.

In most emulator palettes however, the white text blends into a washed-out (and often purply) whitish sky color.
Re: A more accurate NES palette?
by on (#161560)
LightStruk wrote:
Something that has always seemed weird to me for as long as I've used NES emulators - was the sky in SMB1 and Zelda 2 really this purple?

Short answer: yes, it was. :p I'd say, "I can confirm this on my own TV," but TVs can differ greatly even between identical models from the same brand, and some people have their TV's tints set differently as well, sooo…

LightStruk wrote:
I no longer have a real NES console or a CRT TV, so I can't check for myself. Assuming that this palette matches the behavior of correctly calibrated 1980s TVs, it strikes me as very strange that Nintendo chose such a purple hue ($22, I think) when $21 or $31 would look much better.

Well, they actually did use $21 for the main overworld battle scenes (that weren't dark — they didn't use it for graveyard battles, for example); I think they only used $22 for towns and Palaces and such.

As far as the $x1, $x2, $x3, and $x4 columns of colors are concerned: most emulators (such as FCE Ultra and its derivatives) seem to do those columns of colors as "Sky Blue", "'Pure' Blue", "Blue-Violet", "Purple" — respectively — whereas in the Nintendo Wii Virtual Console palette and my own, $x2's actually an "Indigo" color.

Oddly, the 3DS VC palette seems to go more toward "FCE Ultra" in terms of the entire palette's hues. ò.o (The Wii VC palette looks an awful lot like the one I got, though — just a lot dimmer.)

$x8 is another one that looks vastly different depending on the emulator; its canon color, however, is apparently much closer to ye olden MS Paint's dark yellow color (going greener as it gets darker) than to a nice orangey-ish 'gold' color. So sayeth the Wii VC palette and my own NES and TV tuner card, at least. ¯\(º_O)/¯
Re: A more accurate NES palette?
by on (#161631)
Kizul Emeraldfire wrote:
I'd say, "I can confirm this on my own TV," but TVs can differ greatly even between identical models from the same brand, and some people have their TV's tints set differently as well, sooo…
Sure, these are analog systems we're talking about, so that's why I'm wondering about calibration. But that led me to another thought: PAL TVs don't have tint knobs! Would it make more sense to trust a PAL NES to get the "intended" colors? NTSC is jokingly called "Not The Same Color" for a reason.

Then, I remembered that PAL's colorspace and NTSC's colorspace are not identical. In addition, as lidnariq put it:
lidnariq wrote:
The PAL NES's colorspace is rotated by 15° relative to the NTSC NES, and so provides a comparatively nice red (+75°), yellow (+15°), blue (-165°) and cyan (-105°), at the cost of less satisfying purple and green.
This post from HardwareMan has a capture of a palette test ROM running on a PAL NES, and $22 is much bluer. (And it sure is nice to see a real yellow...)
Attachment:
File comment: HardwareMan's PAL palette screenshot
7195342.png
7195342.png [ 372.23 KiB | Viewed 8858 times ]
Anyway, aren't all of our modern NTSC CRT televisions and capture cards defaulting to the 1987 NTSC standard (SMPTE C) instead of the 1953 standard? The RGB primaries and white point both changed with the 1987 standard!

Super Mario Bros. and Zelda 2 both predate the 1987 standard. Japan used NTSC, just like North America. When the designers were making them, they would be using TVs designed and built before the 1987 standard. Maybe the sky is only violet if it's displayed on a TV from 1987 or later?

So, I started tinkering with Drag's palette generator, and lo and behold, switching it from SMPTE C (1987) to FCC (1953) makes $22... just a little bit bluer... maybe blue enough that it almost makes sense that Nintendo would use it for a clear blue sky.
Attachment:
File comment: Palette from Drag's generator, using SMPTE 1987 colorimetry, otherwise default
SMPTE_1987.png
SMPTE_1987.png [ 8.59 KiB | Viewed 8858 times ]
Attachment:
File comment: Palette from Drag's generator, using FCC 1953 colorimetry, otherwise default
NTSC_1953.png
NTSC_1953.png [ 8.72 KiB | Viewed 8858 times ]
The 1953 palette has a really nice red in $16 and a beautiful orange in $27 as well, but I digress.

In RGB, the 1987 color $22 is (95,106,255) and the 1953 color $22 is (85,113,255). Kizul, your $22 is (144,139,255), which is way more violet than either of these palettes.
Re: A more accurate NES palette?
by on (#161635)
LightStruk wrote:
<snip>
In RGB, the 1987 color $22 is (95,106,255) and the 1953 color $22 is (85,113,255). Kizul, your $22 is (144,139,255), which is way more violet than either of these palettes.

Hm — that's actually fascinating; I knew about the PAL-is-rotated-from-NTSC thing, but I hadn't realized that they'd changed the NTSC color standards. o.O

In regard to my palette's colors: it's possible that the colors are ever so slightly off; as I mentioned in an earlier post, I was taking screenshots of a somewhat-noisy (even with noise-reduction filters) Composite video signal from my NES.

This is the unedited screenshot of DScaler that I took (with Gamma, Temporal Comb, Temporal Noise, Gradual Noise, and Adaptive Noise filters active (and at maximum settings, in the case of the Noise filters), among other settings):
Attachment:
File comment: Unedited screenshot of Adventure Island II showing a screenful of $22 color, displayed in DScaler. Also, for bonus points: on the right side (in MS Paint), you can see the exact same color with the Gamma filter turned OFF! :D
2-2.png
2-2.png [ 361.14 KiB | Viewed 8848 times ]


I took those screenshots, cropped 'em to a 660×660-pixel square in Photoshop (PS 7, specifically), and applied a maximum-strength Gaussian Blur filter to it to smooth out and eliminate the majority of the noise. Unfortunately, the Gaussian Blur filter caused slight color loss as well in some screenshots: I discovered that the more times you blur with it at maximum strength, the closer it goes to #808080 gray. :|

So… I dunno. Maybe my NES is just slightly oddball; maybe it doesn't adhere 100% to the NTSC color standards of 1950s or 1980s U.S.A./Japan. >.> I think the colors fluctuate between various NES Control Decks anyway, given what I saw at Awesome Games Done Quick once. (The output in the middle looks like a normal NES using Composite; the output on the left looks like something from a NES-on-a-Chip (or maybe an RGB-modded NES); but the output on the right looks way, way too dark. Or like the Wii's NES Virtual Console. It's also a little blurrier than the others, so possibly it's using RF instead of Composite? I dunno. ¯\(º_O)/¯)

If I knew someone (who lived in the same town as me) who owned an oscilloscope or something, I might be able to get the palette even more accurate — maybe. But I'm not really willing to go to quite that much bother to improve this palette; in my opinion, it's already as close to 'perfect' as one can get. :p …At least, for an NTSC palette.
Re: A more accurate NES palette?
by on (#161686)
Kizul Emeraldfire wrote:
But I'm not really willing to go to quite that much bother to improve this palette; in my opinion, it's already as close to 'perfect' as one can get. :p …At least, for an NTSC palette.
Nor should you. If there's anything these palette threads have taught me, it's that there are so many things that affect color reproduction and color perception that there's no way to be certain. Since the NES produces colors out-of-gamut, there's no standard for how a TV should interpret the signal anyway. The developers of these classic games almost certainly tolerated the variation in colors between the TVs in their offices, so there can't be a precise answer about what colors were intended.

Even in the all-digital realm, color reproduction can be imperfect. I'm typing this post on my old Thinkpad instead of my desktop, and I have a feeling that its LCD has less accurate colors. Why? Because I'm looking at the various screenshots of $22 in this thread, and now they all look blue! So, when people talk about whether a palette looks right on their computer monitors, their monitors (and whether they have a color management profile installed) plays as big a role in the result as the palette does!
Re: A more accurate NES palette?
by on (#161708)
One of my sister's friends gave us an XBox 360 today. Guess where I went on its Internet Explorer browser first? :mrgreen:

(It was my screenshots gallery.) I must say, I'm not certain whether it's the XBox 360's Composite Out or the colors in my palette, but — most of the hues looked a bit off, and the colors all looked massively over-saturated.

$x3 and $x4 looked like they'd been tint-shifted 50% to 75% toward $x4 and $x5 (respectively); $x9 looked a bit less limey than it does on the actual console, and $28 (and partially $18; possibly also $38) looked too orangey. $xC was too bright, and too cyan; it needed more blue. (I was doing a back-and-forth comparison between the XBox 360's screen and the colors on the actual NES itself; they're both hooked up to the TV simultaneously.)

But, as far as $x3 and $x4 are concerned, at least: the NEStopia YUV (15º Canonical) master palette's colors were much closer to the actual thing. :D $x9 was still too far to the 'blue' side of the spectrum, though; it needed more yellow. (The NEStopia YUV (Alternate) palette, on the other hand, looked more like a NES-on-a-Chip console: it had too much yellow, due to the 'Yellow Boost' being turned on.) $xC looked about the same as in my palette.

Granted, I've not hooked an actual PC up to the TV yet to look at my Definitive NES master palette on that screen 'side-by-side' with the NES's output — so I don't know if it really is the XBox 360 screwing up all of the colors — but at the moment I'm not inclined to try and 'perfect' my NES master palette for (my) CRT television(s). :p I'd made it for computers anyway, and it looks good enough on them — at least, to me. So it serves the purpose it was intended for. :mrgreen:

I'll be doing up my screenshots in about a week or so using the Wii Virtual Console palette that someone 'dumped', just to see how it looks on my TV via the XBox 360's palette; this has got me really curious now. :D

LightStruk wrote:
Kizul Emeraldfire wrote:
But I'm not really willing to go to quite that much bother to improve this palette; in my opinion, it's already as close to 'perfect' as one can get. :p …At least, for an NTSC palette.
Nor should you. If there's anything these palette threads have taught me, it's that there are so many things that affect color reproduction and color perception that there's no way to be certain. Since the NES produces colors out-of-gamut, there's no standard for how a TV should interpret the signal anyway.
Indeed; though if I wanted to get it '99.999999999%'-accurate, I could just hook my PC (with an emulator) up to the TV with the NES, then — using Adventure Island II's debug mode as I have so many times in the past — fill the screen with each color in sequence and try to match the colors on my PC whilst flipping between my NES and PC. :p I've a good eye for color… usually.

LightStruk wrote:
Even in the all-digital realm, color reproduction can be imperfect. I'm typing this post on my old Thinkpad instead of my desktop, and I have a feeling that its LCD has less accurate colors. Why? Because I'm looking at the various screenshots of $22 in this thread, and now they all look blue! So, when people talk about whether a palette looks right on their computer monitors, their monitors (and whether they have a color management profile installed) plays as big a role in the result as the palette does!
If I'm right, I don't actually have any color management profiles installed on my PC, nor on my laptop (at least, besides the 'default' ones). But, the colors on my laptop's LCD screen do seem more muted/dull in some ways compared to my PC's two CRT monitors; on the other hand, I can see color separation far more easily on my laptop's screen — probably due to the pixels being much clearer — than on my PC's CRTs, so… :mrgreen:

But yeah, I know what you mean. I still think that the colors look 'better', somehow, on my PC than on my laptop. But even despite the differences in screens, both my PC and laptop display $x2 as indigo, rather than 'pure blue' like in the PAL (and FCEUX) palettes. ò.O I dunno. ¯\(º_O)/¯ It's all subjective; it's all in what you think looks good. I'm just very passionate with my opinion (and also unfortunately have a tendency to try and make my opinion objective instead). xD

(Seriously, though, I do apologize if I come off as exceedingly arrogant and/or pedantic a lot of the time. >.> I'm trying to lessen that a bit these days, but it's difficult. D:)
Re: A more accurate NES palette?
by on (#161709)
The XBox 360 had a notoriously counter-intuitive way of dealing with gamma curves. A lot of games did it wrong and had strange contrast/saturation issues. I wouldn't be surprised if its web browser failed at this too.
Re: A more accurate NES palette?
by on (#161752)
rainwarrior wrote:
The XBox 360 had a notoriously counter-intuitive way of dealing with gamma curves. A lot of games did it wrong and had strange contrast/saturation issues. I wouldn't be surprised if its web browser failed at this too.
Good heavens, you weren't kidding! D: Just for the heck of it, I decided to open up the HD SMPTE color bars SVG image from Wikipedia on the XBox 360's browser, and… Wow are some of the colors way off.

75% Red looks like it should be 100% Red, and the actual 100% Red looks like hot pink; 75% Blue, 75% Yellow, and 75% Cyan are identical in intensity to their 100%-brightness counterparts — and instead of looking like $xC (to use the NES master palette's indices as an example) like they should, the Cyan parts look like the NES palette's $xB!

Interestingly, when the screensaver kicks in (thus dimming the screen), all of the color bars except one look they way they should (with Cyan being its proper $xC-type hue instead of $xB, and visible differences of intensity between the 75% and 100% bars) — excepting the fact that they've been dimmed way further than they should be — with the 75% Magenta/Purple bar now being hot pink instead!

What the heck, Microsoft? D: You should know better!

(And yes, this TV is calibrated correctly — via the same image displayed on a PC I use exclusively for TV-out. This makes me really, really want a Wii or Wii U to see if the same image looks better on one of those.)

At least now I know it's not my palette, though! :D
Re: A more accurate NES palette?
by on (#236347)
<.< …
>.> …

…Apologies for a three-and-a-quarter-years-dead necrobump here, but after a year or two of messing around with tweaking the NES palette I made (and being generally dissatisfied with it, because as good as it was… it just never looked quite right), I finally got around to making a completely new one:

Attachment:
File comment: Kizul's Definitive NTSC NES Palette, final (with canonical off-blacks for the $1D/$xE/$xF indices).
palette.png
palette.png [ 1007 Bytes | Viewed 4962 times ]


I've got a couple of different powered (not passive! :D) video switcher things, so I was able to hook up my NES and my PC to the same TV and flip back and forth between the two inputs with ease. I've actually been using my CRT TV as a secondary monitor ever since my biggest CRT monitor's color kinda died, and boy howdy the colors displayed by this TV look glorious.

In order to make this new palette, I'd started off the same way as before: hooking my NES up to my capture card to record small video clips of a screenful of a single color — courtesy of Adventure Island II's debug functions — then deinterlace the clips (saving them as uncompressed video), loading them up in VLC to take screenshots, then loading the screenshots into Photoshop to crop them a little (just trimming the edges off to make sure only the color I wanted was showing) and use the "Average" Blur filter on them to eliminate any noise and leave it filled with a single color only.

It looked much better this time, due to my using a new capture card that has S-Video input (and an old RadioShack video switcher that does a fantastic job of converting Composite to S-Video), thereby providing me with a cleaner signal… But, for obvious reasons, it still didn't look quite right.

So, instead, I used the screenshots as a base: I set my PC's analog video output mode to YCbCr444 (I normally use Limited Range RGB), opened the screenshots in Photoshop, hid all of the toolbars in the main Photoshop window, and zoomed in until the screen was filled with the color I needed.

Then, I unfocused my eyes to make the screen really blurry, flipped between displaying the NES and displaying my PC, and tweaked the color that my PC was outputting until it matched, as closely as possible, the output of the NES itself.

Some of the darkest colors and brightest colors were rather difficult to get right; my PC's "pure black" is brighter than the NES's $1D/$xE/$xF blacks for some reason, and the brightest colors always seemed slightly "off" no matter what I did. I matched them as closely as I could, though.

Flipping my TV between my PC running a game in an emulator and my NES running the same game at the same place, this palette seems functionally identical to the NES — both to my eyes and to my camera(s), especially if my PC is outputting in YCbCr444 instead of RGB (Limited Range) — so I'd say that this is the closest I'll ever be able to get to making a proper "dump" of my NES's master palette. :)

If anyone wants to compare how this palette looks to other palettes, I have my screenshots gallery up and running here (and have for the past two or three years, heh):
http://procyon.com/~kizul/nes_files/screenshot_gallery/

If you want to use this palette, you can download it from the attachment below.

tl;dr: new very-accurate colors; I think they're faboo. Please try them out!
Re: A more accurate NES palette?
by on (#236764)
Uhg, FINALLY after three and a half years someone answers my question!

Ha ha seriously though, wow, I forgot I ever asked this. Man I'm gonna have to go through and re-read a lot of this...
Re: A more accurate NES palette?
by on (#236765)
Marscaleb wrote:
Uhg, FINALLY after three and a half years someone answers my question!

Ha ha seriously though, wow, I forgot I ever asked this. Man I'm gonna have to go through and re-read a lot of this...

Hopefully I was part of the group that helped answer your question. :mrgreen: (If I was, I'm happy to've helped!)

Meanwhile: I decided to throw my latest palette onto my soft-modded Wii and I emulated a few NES games (namely Adventure Island II and Legendary Wings, both of which I do own), and my latest variant is super-close to matching my actual NES; its colors appear to be just a little bit darker/dimmer than the actual hardware, but after playing for a while I don't even notice anymore because the relative brightness of the colors is still spot-on. :D

I just wish that I could get $0D to be negative black instead of just "pure black": it just doesn't look dark enough on my TV in emulators. On actual hardware, it's like my TV's just completely skips over dots colored with $0D (they're literally pure black, with not a hint of light), but in RetroArch on my Wii there's still just a bit of light being shone on those dots.

Ah well. I'm not going to bother tweaking it any more (yeah, yeah, I've said that before — but I mean it this time!) — except maybe making $20 and $30 just a bit brighter of an off-white, but that's very low on my list of priorities right now. That's the only tweak I'd make to it; if I made literally any other tweaks, it would no longer look "right". :)

Oh — and for Dougeff (who may not care anymore, given how long it's been since his last post in this thread): I have good news about Maniac Mansion: it looks great now that I've stopped being quite as dumb with the blacks! :D
Re: A more accurate NES palette?
by on (#236766)
Kizul Emeraldfire wrote:
Hopefully I was part of the group that helped answer your question. :mrgreen: (If I was, I'm happy to've helped!)


(Well yeah, that's the joke: no one could provide a good palette for three plus years until your post just now. ;) )

Looking at all these palettes again is making me want to tweak them. Perhaps it is just this old laptop I'm using since I'm not at home now, but most of these make the darks look way too dark, and brights way too bright. They barely show any color at all, making them seem pointless to use over pure black/white.
But it just just be this laptop's screen; I seem to recall it just being the bottom row of brights that was way too bright when I was last looking at it. Seriously, what games ever even used those colors?

Kizul; that palette does look pretty good; when I get home I want to try it out with some of my art and see if it makes a difference.
Re: A more accurate NES palette?
by on (#236767)
Unfortunately, there's no correct answer to this question. Even if one person is able to make a palette that looks 100% faithful to what they're getting on their setup, chances are it still looks completely different from what other people are getting on their own setups. This is also true of other consoles that use RGB internally (SNES, Genesis, Master System, etc.), but people aren't as bothered because the palettes are already in RGB to begin with, even though the final output varies radically depending on the TV.
Re: A more accurate NES palette?
by on (#236769)
Marscaleb wrote:
Kizul Emeraldfire wrote:
Hopefully I was part of the group that helped answer your question. :mrgreen: (If I was, I'm happy to've helped!)


(Well yeah, that's the joke: no one could provide a good palette for three plus years until your post just now. ;) )

Looking at all these palettes again is making me want to tweak them. Perhaps it is just this old laptop I'm using since I'm not at home now, but most of these make the darks look way too dark, and brights way too bright. They barely show any color at all, making them seem pointless to use over pure black/white.
But it just just be this laptop's screen; I seem to recall it just being the bottom row of brights that was way too bright when I was last looking at it. Seriously, what games ever even used those colors?

Kizul; that palette does look pretty good; when I get home I want to try it out with some of my art and see if it makes a difference.

(Ahh, I see! XD Okay. :mrgreen:)

I know what you mean about the darks being too dark and brights being too bright; looking back at the screenshot of Maniac Mansion that Dougeff posted using one of my previous palettes… well, to make a long story short: the reason why the blacks look so terrible in the screenshot that uses my palette is because on my laptop's screen, it looked just fine! It was a nice off-black.

But I've come to find out that my computers' screens (excluding my CRT TV, which I'm using as a secondary monitor for my PC) are just really dim, so of course what looked simply "off-black" on my screen would be "dark gray" pretty much everywhere else. XP

As far as the bright colors go: a lot of games use them; Super Mario Bros. 3 used $3C for sky colors in several Action Scene Panels — and $31 is used as the sky color in some levels of Adventure Island II; Legendary Wings flashes between $20/$30 and $38 when you enter a "LUCKY!" area; $37 is used as a skin tone for pretty much every human and elf NPC in the original Dragon Warrior trilogy (they use $20/$30 in Dragon Warrior IV), and Dragon Warrior III also uses $37 for the color of sand and the bright color of mountains/towers on the overworld map during the brightest "Day" time; Solstice: Quest for the Staff of Demnos uses triad combinations of pretty much every single color on the palette from $x0 to $xC (either a $0x,$1x,$2x trio of shades from a color, or a $1x,$2x,$3x trio) in its myriad rooms…

It really depends, but they're used everywhere. :)

I hope my palette works well for you! :D

tokumaru wrote:
Unfortunately, there's no correct answer to this question. Even if one person is able to make a palette that looks 100% faithful to what they're getting on their setup, chances are it still looks completely different from what other people are getting on their own setups. This is also true of other consoles that use RGB internally (SNES, Genesis, Master System, etc.), but people aren't as bothered because the palettes are already in RGB to begin with, even though the final output varies radically depending on the TV.

This is true; as I said before, I eyeballed the color and brightness until what my PC sent through my CRT TV appeared to match what the NES was showing on that same TV — but I still couldn't get that 100% perfect because of 1.) differing brightnesses of black (my PC's "black point", so to speak, was brighter than the NES's); and 2.) the NES was putting out a 240p image, whereas my PC was putting out a 480i image, so the brightness I was matching also included the darkness of the scanlines that didn't appear to exist in my PC's output.

It's not perfect, but it's as close as I could match with what I currently have, and to me it looks almost indistinguishable from the actual hardware I own (especially when I turn on blargg's NTSC Composite filter in RetroArch (or use the NTSC filter in NEStopia)), which is significantly better than any of my previous attempts. :mrgreen:

In my previous attempts… inevitably, the levels always looked wrong; a particular green would be too bright, or a blue; this color would be just slightly the wrong hue, or would look washed-out, or this and that color side-by-side would have a weird contrast instead of blending together and having the only way you could really tell them apart be the Composite artefacting at the edges of the colors (e.g. $19+$1A, which The Adventures of Tom Sawyer uses on the River boss and Injun Joe's dinosaur at the end of the Cave — which sadly my palette still doesn't quite perfectly match, but oh well — I got it to be very close)… It was immensely frustrating, to say the least.

…But I'm rambling; I've deprived myself of sleep and should stop typing before this post gets any longer. XD This is just a subject about which I'm very passionate and I love talking about it — though that was probably made clear in any/all of my other posts in this thread. :roll:

I'm happy if others get some good use out of my palette(s)! :mrgreen:
Re: A more accurate NES palette?
by on (#236770)
tokumaru wrote:
This is also true of other consoles that use RGB internally (SNES, Genesis, Master System, etc.), but people aren't as bothered because the palettes are already in RGB to begin with, even though the final output varies radically depending on the TV.

That and 240p Test Suite exists for most of these consoles, so anyone who cares about matching the colors that the console is producing can tune the TV's color decoder. Heck, even handhelds are starting to get ports of 240p so that players can compare TV adapters to what the internal screen is producing.
Re: A more accurate NES palette?
by on (#236771)
I used my capture devices to create a couple of full palette dumps, which I posted in my palette test ROM thread:
https://forums.nesdev.com/viewtopic.php?p=233739#p233739
Re: A more accurate NES palette?
by on (#241867)
Kizul Emeraldfire wrote:
I just wish that I could get $0D to be negative black instead of just "pure black": it just doesn't look dark enough on my TV in emulators. On actual hardware, it's like my TV's just completely skips over dots colored with $0D (they're literally pure black, with not a hint of light), but in RetroArch on my Wii there's still just a bit of light being shone on those dots.



Unfortunately I fell into the trap of trying to "reinvent the wheel" thanks to poor Googling search terms, only to find after I did some PVM tests that all the correct black level information is on the NTSC Video page for NES DEV Wiki.

At any rate, not sure if you've noticed, but even 0D is affected by emphasis bits. I had to crank the brightness way up on my PVM to show that 0D was indeed being hue-shifted with emphasis, and indeed it gets even darker with all three bits active. So not only do you have 0D being "blacker than black", but with emphasis bits active, it becomes "Vantablack". With all that being the case, properly centered brightness and contrast calibration on a PVM doesn't reveal any of these entries to have anything but a flat black color. For Bee 52, you have to turn the brightness up beyond centered in order to see the tree trunks and grass highlights on nighttime stages. So to conclude, there's actually nothing wrong with NTSC palettes making all those black entries simply 0-0-0 because that's how they appear on a properly calibrated and center-dialed CRT monitor.