Page 2 of 5

Re: A more accurate NES palette?

Posted: Sun Dec 13, 2015 3:10 pm
by lidnariq
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?

Posted: Sun Dec 13, 2015 3:45 pm
by dougeff
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?

Posted: Sun Dec 13, 2015 5:25 pm
by rainwarrior
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?

Posted: Mon Dec 14, 2015 4:55 am
by Kizul Emeraldfire
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:
Screenshot of rainwarrior's palette.nes taken with NEStopia — with a bunch of contrast and brightness piled on top of it afterward.
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 (1.86 KiB) Viewed 18488 times
But in Nintendulator, you can clearly see that it affects the entire 64-color range of the NES palette:
Second verse, same as the first. Except using Nintendulator instead.
Second verse, same as the first. Except using Nintendulator instead.
NintendulatorSS_palette_001.png (2 KiB) Viewed 18488 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?

Posted: Mon Dec 14, 2015 7:46 am
by tepples
Link me the test ROM and I'll try it on my PowerPak tonight.

Re: A more accurate NES palette?

Posted: Mon Dec 14, 2015 8:00 am
by Kizul Emeraldfire
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?

Posted: Mon Dec 14, 2015 1:13 pm
by tepples
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.
1d_emph_0f_not.jpg
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?

Posted: Mon Dec 14, 2015 1:17 pm
by tokumaru
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?

Posted: Thu Dec 24, 2015 11:56 pm
by Kizul Emeraldfire
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:
Objectively, the filename is true. But whether it is definitively THE palette for NES emulators is entirely subjective.<br /><br />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. :[
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 (2.93 KiB) Viewed 18241 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.
FCEUX's palette, taken directly from a PNG screenshot of The Immortal that was taken with FCEUX.
FCEUX's palette, taken directly from a PNG screenshot of The Immortal that was taken with FCEUX.
fceuxpal.png (1.17 KiB) Viewed 18338 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?

Posted: Fri Dec 25, 2015 12:25 am
by dougeff
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?

Posted: Fri Dec 25, 2015 12:46 am
by Kizul Emeraldfire
dougeff wrote:
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?

Posted: Fri Dec 25, 2015 11:16 am
by rainwarrior
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?

Posted: Fri Dec 25, 2015 6:29 pm
by M_Tee
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?
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.
I ended up accidentally discovering that FCEUX stores the entire NES palette — both regular and Color Emphasized! — quite tidily in the screenshots it takes.
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?

Posted: Fri Dec 25, 2015 10:18 pm
by Kizul Emeraldfire
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*:
Just what it says. It's still good, but… certain colors just don't look &quot;juuuust right&quot;. (Particularly $24.)
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 (2.93 KiB) Viewed 18241 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:
Example screenshot from Solstice, using the Definitive UnTweaked palette.
Example screenshot from Solstice, using the Definitive UnTweaked palette.
Solstice - The Quest for the Staff of Demnos (USA)_001.png (3.06 KiB) Viewed 18241 times
Example screenshot from Solstice, using the default Definitive palette (with the changed $24 color — among others).
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 (3.06 KiB) Viewed 18241 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:
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?

Posted: Fri Dec 25, 2015 10:38 pm
by Kizul Emeraldfire
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.