Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by frantik »

The $X8 colors ($08, $18, $28) all seem to have this issue where on some screens they appear as shades of "brown" but on other displays will have a greenish hue to it, more like an "olive" color. I've noticed the green color is most pronounced on emulators which claim to be the most accurate, and I also notice it when using an original console with an LCD tv... but on my two CRT tvs, $08 is way closer to brown than olive! The weirdest is using FCEUX, normally the color is very brown, but enabling NTSC emulation, the olive color becomes apparent.

If my CRT tvs didn't show brown I would assume that olive was the correct color, but the hardware reference is showing brown. The only thing I can think of is the TVs I have are from the mis 2000s, maybe they changed something compared to the 80s CRTs?

Image
Brown vs Olive
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by tokumaru »

Mandatory disclaimer about the NES palette: color generation in the PPU is somewhat hacky, (the signal doesn't follow the NTSC standard to the letter) a lot of factors affect how the colors look in the end, so there's no official representation of it in RGB.
NewRisingSun
Posts: 1510
Joined: Thu May 19, 2005 11:30 am

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by NewRisingSun »

In NTSC terms, the generated waveform has a phase of 180 degrees relative to the reference subcarrier, or equal to the phase of the color burst. 180 degrees is a very greenish yellow, or "olive"; true yellow would be at 167 degrees. But because it appears brown on many CRTs, game developers often use color $08 as a shade of brown. Other games use color $08 as a shade of green, including Terra Cresta, Super Contra and Monster Party.

Generally speaking, when it comes to the NES palette, you must choose between colors looking "theoretically accurate" according to some mathematical model of the PPU encoding and NTSC decoding process, and looking plausible with the choices of any particular game, whose developers may have used idiosyncratic TV settings with idiosyncratic NTSC decoding properties.
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by frantik »

NewRisingSun wrote: Sun Aug 16, 2020 9:18 am Generally speaking, when it comes to the NES palette, you must choose between colors looking "theoretically accurate" according to some mathematical model of the PPU encoding and NTSC decoding process, and looking plausible with the choices of any particular game, whose developers may have used idiosyncratic TV settings with idiosyncratic NTSC decoding properties.
Well in this case I'm the "developer" .. I really don't like the olive, and do like the brown. It looks great on my CRT, but not as good on any "accurate" emulator, and most people will play through emulation so they won't see it how I intend it to look. It's interesting to learn why olive is the supposed correct color.. but then why do CRTs represent it as brown? Which is how the older emulators who just visually set their colors also tend to look.. though apparently if some developers did use it as green then apparently the discrepancy existed back then too

I've kind of accepted that you have to give up some control over the colors but it still bugs me, at least now I know "technically" it should be olive. Still weird how CRTs don't display it that way.. maybe it's some kind of color correction to make human skin tones look better or something like that
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by dougeff »

maybe it's some kind of color correction
Turn on the Red Color Emphasis bit, and the x8 colors look more yellow-brown. However, all the light colors and gray tones will look too red.
nesdoug.com -- blog/tutorial on programming for the NES
NewRisingSun
Posts: 1510
Joined: Thu May 19, 2005 11:30 am

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by NewRisingSun »

As a developer, you will have no choice but try your game on different displays and hardware platforms, and pick combinations that look okay on all of them. As a general rule of thumb, picking color combinations within the same phase (e.g. $08, $18, $28) is less likely to yield unexpected results than color combinations with different phases. As an example of what not to do, SMB3 uses $36 as a highlight for $27, which looks like two nice browns on the RP2C03 (Playchoice/Vs) palette, but like a silly combination of brown and pink on most NTSC/PAL palettes. Avoid combining colors of different phases within the same luminance level, such as picking $08 as a darker shade of $07, which is what some games do. That will almost always look wrong on at least one piece of hardware/emulator, and is particularly sensitive to the saturation setting on any TV.

For your concrete question on what to choose for brown, almost all games use the $x7 series for brown, and the $x8 series for yellow. So stick to $x7 for all browns, and you will be okay with almost all palettes and displays, and avoid any cross-phase combinations for highlights/lowlights. One exception that tends to be safe is using $26 as a copper-like highlight for $17.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by tepples »

Many TVs indeed perform a degree of hue warping on flesh and sky tones.
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by frantik »

NewRisingSun wrote: Sun Aug 16, 2020 10:24 am So stick to $x7 for all browns, and you will be okay with almost all palettes and displays
I didn't try it on a CRT but on some emulators $07 is way more red than brown. I prefer brown/olive to red/brown if i have to pick one. It's for a background color so it takes up a lot of the screen
tepples wrote: Sun Aug 16, 2020 11:16 am Many TVs indeed perform a degree of hue warping on flesh and sky tones.
probably why $22, Mario's sky color is commonly shown as purple on modern LCDs and emulators while it looks blue on a CRT

It's weird in 2020 trying to decide if you want to target CRTs or LCD/emulator. LCD/Emulator is how most people today will play it, but the "hardcore purists" will play on a CRT. In the end both brown and olive look fine in the application I'm using it for, but it's intended to be brown
User avatar
Dwedit
Posts: 4921
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by Dwedit »

Want brown? Use the previous color instead ($07), that's brown according to Nintendulator's palette. Nintendulator does a great job with the YIQ color model to generate the palette.
nintendulator_pal_new2b.png
nintendulator_pal_new2b.png (1.11 KiB) Viewed 9180 times
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by frantik »

That palette shows $22, Mario sky color as purple.. that palette shows the basic LCD/modern emulator palette well, but doesn't reflect what my CRT looks like. In my case, $07 is too red. $08 looks perfect on my CRTs.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by lidnariq »

As far as I know, all the current YUV emulators don't take into account the NES's phase distortion on brighter colors - brighter colors rotate about 5° in hue per row ... so our current simulators are a little off anyway. (Maybe NewRisingSun has added this to his Nintendulator fork?)

... in fact, you've already complained about this exact color pair :D viewtopic.php?t=17579
User avatar
Quietust
Posts: 1918
Joined: Sun Sep 19, 2004 10:59 pm
Contact:

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by Quietust »

Dwedit wrote: Sun Aug 16, 2020 1:02 pm Want brown? Use the previous color instead ($07), that's brown according to Nintendulator's palette. Nintendulator does a great job with the YIQ color model to generate the palette.
All I'm using is the NTSC video logic described on the wiki, though it's just used to generate a palette rather than to render an NTSC signal. Furthermore, some of the numbers there seem to be slightly different from what I've got (white being 1.962 versus 1.960, and the YIQ coefficients being off by a few fractions of a percent).
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by zzo38 »

While you should of course try to select the correct numbers (according to the NTSC specification and the TV sets), if your game is designed for use with specific colours, you may include a palette file with the game, which the user may optionally install if they want to use, and are using a compatible emulator.

This way, it can work good either way.
(Free Hero Mesh - FOSS puzzle game engine)
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by frantik »

lidnariq wrote: Sun Aug 16, 2020 2:02 pm... in fact, you've already complained about this exact color pair :D viewtopic.php?t=17579
:shock: lmao.. still working on the same project and still annoyed with the olive! I've avoided all other uses of the $x2 and $x8 ranges though
turboxray
Posts: 348
Joined: Thu Oct 31, 2019 12:56 am

Re: Is $08 "brown" or "olive" ? Why does it vary so much from screen to screen?

Post by turboxray »

frantik wrote: Sun Aug 16, 2020 11:29 am It's weird in 2020 trying to decide if you want to target CRTs or LCD/emulator. LCD/Emulator is how most people today will play it, but the "hardcore purists" will play on a CRT. In the end both brown and olive look fine in the application I'm using it for, but it's intended to be brown
And you're gonna have issues from CRT to CRT (not just red-push or not, but how people have settings adjusted). And there's still the same issue on LCD to LCD. Depending on the color, it could have issues there as well (PC-Engine 9bit color palette has a few problem colors like this, even on LCDs).
Post Reply