A more accurate NES palette?
Moderator: Moderators
Re: A more accurate NES palette?
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?
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?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).
nesdoug.com -- blog/tutorial on programming for the NES
- rainwarrior
- Posts: 8756
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: A more accurate NES palette?
It's exactly the opposite of this. The NES does colour emphasis uniformly in the YUV colour space.dougeff wrote:I'll interpret that to mean "NES doesn't do color emphasis uniformly".
What's not uniform is how people convert YUV to RGB. Every way of doing it is compromised in some way.
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
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: But in Nintendulator, you can clearly see that it affects the entire 64-color range of the NES palette: 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. )dougeff wrote:... does Nintendulator (or other popular emulators) implement color emphasis accurately?
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?
Link me the test ROM and I'll try it on my PowerPak tonight.
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
It's right here in his own thread.tepples wrote:Link me the test ROM and I'll try it on my PowerPak tonight.
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.
Re: A more accurate NES palette?
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.
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.
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?
Wait, so if we want a black that's affected by the emphasis bits we have to use $1D? That's new!
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
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: 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 area 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.
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!
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: 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
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.
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!
- Attachments
-
- Kizuls_Definitive_NES_Palette.zip
- My above palette file for emulators, retroactively edited to include a couple of game-specific ones — and properly-off-black $1D in the main palette.
- (2.2 KiB) Downloaded 783 times
Last edited by Kizul Emeraldfire on Thu Dec 31, 2015 1:26 pm, edited 3 times in total.
Re: A more accurate NES palette?
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.Charcoal Black...in most games, you don't even notice that it's not pure black
nesdoug.com -- blog/tutorial on programming for the NES
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
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.dougeff wrote: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.Charcoal Black...in most games, you don't even notice that it's not pure black
(The Immortal looks terrible with pure-black $xE/$xF (and, on the title screen, $1D) blacks, though, even with a brightness boost.)
- rainwarrior
- Posts: 8756
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: A more accurate NES palette?
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.
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?
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 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
I never thought someone would post a palette that I prefer to NEStopia's, but I really dig what you've done there, Kizul.This is it, guys. This is my "swan's song". …
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.
As for the blue at 23, that was an admitted mistake by FCEUX's developer and corrected with version 2.2.0.I ended up accidentally discovering that FCEUX stores the entire NES palette — both regular and Color Emphasized! — quite tidily in the screenshots it takes.
I wonder why there's a blot of blue at $23? It seems… out-of-place.
FCEUX is up to version 2.2.2 now, so it may be time to update your copy.FCEUX 2.2.0 Release wrote:Fixed wrong default palette entry
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
Brace yourselves! I'm probably going into too much detail, but here we go anyway!
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: 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.
Those are the only tweaks I did to make my 'Definitive' palette from this base, however.
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.)
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. (I at least apologize for the novel that it turned out to be. XD)
*EDIT: What dougeff said here kept nagging at me:
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.)
Well, this is what the palette looked like before I did any tweaking to it*: 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.)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?
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: 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.
Those are the only tweaks I did to make my 'Definitive' palette from this base, however.
Hurray! I'm happy you like it.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.
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.)
Ahhhh, I see. Hm. I have no idea what version I used to make my original screenshot, but I'll certainly update it!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 is up to version 2.2.2 now, so it may be time to update your copy.FCEUX 2.2.0 Release wrote:Fixed wrong default palette entry
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. (I at least apologize for the novel that it turned out to be. XD)
*EDIT: What dougeff said here kept nagging at me:
He's technically correct. (The best kind of correct.)dougeff wrote:I much prefer 0,0,0 for all blacks. I think is gives better contrast.
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.)
Last edited by Kizul Emeraldfire on Sat Dec 26, 2015 1:58 am, edited 5 times in total.
-
- Posts: 44
- Joined: Wed Feb 23, 2005 3:46 pm
Re: A more accurate NES palette?
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: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.
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!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.
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.