I keep swapping between original and unsatv6, leaning towards unsatv6 as the most accurate, and FCEU as the least.
Perhaps there is another way. The NES PPU generates rectangles at the NTSC colorburst frequency. The time offset of the rectangle determines the hue. There are exactly 12 possible offsets. Given that the PPU gets it's system clock from the timing Xtal (NTSC freq * 6), there are 12 possible offsets for rectangle waveforms depending whether the timing is scyned with the rising or falling edge of the Xtal. The vpp (voltage peak-to-peak) determines the saturation, which is zero for the grayscale colors. The maximum voltage (or is it average) determines the luminosity. Generally each of the 12 color hues have 4 independent shades, making 48 colors and 8 grayscales (though the grayscales have overlap). Then you have several sets of pallets based on the emphasis bits.
Previous attempts at deriving an accurate color pallet involve running the NES composite through a video capture device, taking a screenshot with large areas of the screen filled in, and sampling a color after the video hardware has already processed the input.
A better option would be to derive the individual hue, saturation and luminosity readings from each of the 56 color palettes (and emphasis bits) by examining the composite signal using a logic probe rather than a PC capture card. Has anyone ever attempted to do this? It is clear that CRTs, PC capture cards, and HDTVs all process the NTSC signals in different ways creating different colors. Why else is a CRT got blue skys in Super Mario when an LCD has purple? And the daytime world bricks are more reddish or brownish?
I think an accurate color palette would need to examine the actual signal levels coming out of the PPU before it has been processed by the ADC in an NTSC capture or display device.
-------------------------
~From the Nintendo/Atari addict formerly known as StarDust4Ever...
Edited: 11/25/2017
at 01:18 AM
by Kosmic StarDust