It is currently Mon Sep 16, 2019 1:36 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Fri Aug 16, 2019 10:15 pm 
Offline
User avatar

Joined: Fri Aug 26, 2011 3:20 am
Posts: 47
So after hearing of other palette makers deciding to increase entry 1D (and its mirrors) to a grey shade due to 0D being darker, I decided to use a test ROM on an umodded front-loader NTSC NES hooked into a 20M2U PVM with the brightness turned all the way up. I ended up discovering some things I never knew before, and apparently are not accurately reflected in online documentation as far as I could google for an hour. Here's what I found:

0E, 1E, 2E, 3E, 0F, 1F, 2F, 3F are all the same exact shade on the PVM even when brightness is cranked all the way up. There's no difference. They also do not respond to emphasis bit settings. This is known behavior.

1D with emphasis bits turned off is identical in shade to the E and F entries. Turning different emphasis bits on and off will actually change the hue of 1D. Turning on all emphasis bits turns 1D into the same shade as the default 0D. This last part I have not seen documented clearly anywhere.

0D by default is darker then 1D by default. 0D also responds to emphasis bits, where the hue is changed just like with 1D, only at a darker scale. Turning on all emphasis bits for 0D makes it an even darker black! Here again, I've not seen this documented.

I apologize ahead of time if I missed a page that explains all this as I have, but the pages and threads I've read about these black entries all seem to have missing information, wrong information, or conflicting information.


Top
 Profile  
 
PostPosted: Fri Aug 16, 2019 10:39 pm 
Offline
User avatar

Joined: Fri Aug 26, 2011 3:20 am
Posts: 47
Ah dammit, I found the related info that does match my findings in the NTSC video section (rather than the palette section):

https://wiki.nesdev.com/w/index.php/NTSC_video


Top
 Profile  
 
PostPosted: Fri Aug 16, 2019 10:40 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7582
Location: Canada
Everything you've stated is documented here, but not necessarily in the terms you've expressed: Wiki:NTSC video

$0D being darker when under emphasis it never calls out that specific colour but it's stated that the $D column is included in emphasis effects. I don't think there's really a need to say something special about that one particular entry? It works the same as the others in this respect.

1D + emphasis = 0D is not said anywhere, but how accurately is this measured? There are specific measurements given for the base voltages and an explicit formula given for emphasis attenuation, but what I'd gather from applying those is that they should be fairly close but not really the same?


Top
 Profile  
 
PostPosted: Fri Aug 16, 2019 11:24 pm 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 4211
Just checking the wiki: It says that 0D = -0.117, and 1D with all emphasis on would be -0.0912. Pretty close, but 0D should be slightly darker.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
PostPosted: Sun Aug 18, 2019 6:02 pm 
Offline
User avatar

Joined: Fri Aug 26, 2011 3:20 am
Posts: 47
Dwedit wrote:
Just checking the wiki: It says that 0D = -0.117, and 1D with all emphasis on would be -0.0912. Pretty close, but 0D should be slightly darker.


Yeah the difference there is a small enough margin that my eyes couldn't pick up the difference on my PVM. I'm thinking about hooking my own NES up to my Rygol scope using 75-ohm termination and measuring the amplitude specific to my NES. If just to satisfy my OCD anyway.


Top
 Profile  
 
PostPosted: Tue Aug 20, 2019 5:15 am 
Offline
User avatar

Joined: Mon Mar 13, 2017 5:21 pm
Posts: 67
Thanks for this. I was going to make a post asking if all the black entries are different or the same. Now I don't have to.


Top
 Profile  
 
PostPosted: Sun Sep 01, 2019 12:53 am 
Offline
User avatar

Joined: Fri Jan 24, 2014 9:05 am
Posts: 193
Location: Hungary
I too have been ignorant of this information until now, but one question remains for me about 1D. It's nice to have it affected by the emphasis bits, but is it "safe" on TVs when not all three bits are set at once?


Top
 Profile  
 
PostPosted: Wed Sep 04, 2019 3:52 am 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 1187
Location: Hokkaido, Japan
I'm not sure if $1D is unsafe with the emphasis bits set or not since it's so close to $0D when set? It should be safe when the bits are clear though. According to the wiki it's identically black to the $xE and $xF columns when emphasis isn't set. The only difference is that it's affected by the emphasis bits while the $xE/$xF columns aren't.

To be super safe you can just ignore the whole $xD column to avoid fading into $0D (in case a fading routine is used that just subtracts $10 from the palette entry). It only really has two useful colours, the two greys $2D and $3D, which aren't too much different from the two "safe" greys $00 and $10 anyway. $2D and $3D are black on RGB PPUs (2C03 and 2C05) so there are compatibility reasons to not use them as well.


Top
 Profile  
 
PostPosted: Fri Sep 06, 2019 6:09 am 
Offline
User avatar

Joined: Mon Mar 13, 2017 5:21 pm
Posts: 67
I like using the $XD column because it gives me more options in terms of shades of gray I can use. in my fade-out routine, I do it in 8 steps, alternating between setting all the color emphasis bits to slightly darken the screen, then dropping to the next palette row darker, and any value that becomes negative I set to $0F. I added a few instructions to also check if anything drops to $1D or $0D and reset those to $0F as well. I figure the chance of anybody ever playing my game on an RGB PPU is so slim, I'm not really concerned about it. out of curiosity, is there any way (in code) to determine what PPU it's running on?


Top
 Profile  
 
PostPosted: Fri Sep 06, 2019 6:25 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 975
I have hypothesized that one could detect the RP2C03 PPU by the lack of skipped pixel in the pre-render scanline. I have not made, or seen somebody else make, a proof of concept however. One could take the respective part from blargg's PPU tests, which includes a detection of the skipped pixel, as a starting point.


Top
 Profile  
 
PostPosted: Fri Sep 06, 2019 9:44 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8557
Location: Seattle
Forever ago, thefox wrote a demo that detected that the RGB PPU allowed 1/6 of one more instruction cycle to execute per vsync. When I asked them to repost it, they declined on the grounds of it being too fragile.

... although I can't find where I asked anymore.


Top
 Profile  
 
PostPosted: Fri Sep 06, 2019 9:46 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21591
Location: NE Indiana, USA (NTSC)
I would have written such a test except that I lack a device with an RGB PPU on which to run it.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Fri Sep 06, 2019 12:06 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8557
Location: Seattle
I assume we could cajole memblers or lupin3rd to run a test on their Vs. Systems.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Bregalad and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group