Talk:PPU palettes: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (Moved my complaint in its own section)
 
(11 intermediate revisions by 7 users not shown)
Line 48: Line 48:
One version of the canonical, standard NES palette should appear at the top of the page. Other palettes used by RGB, playchoice or whathever are annecdotical and should only appear below. They should most certainly *not* appear first.
One version of the canonical, standard NES palette should appear at the top of the page. Other palettes used by RGB, playchoice or whathever are annecdotical and should only appear below. They should most certainly *not* appear first.
[[User:Bregalad|Bregalad]] ([[User talk:Bregalad|talk]]) 14:29, 6 January 2016 (MST)
[[User:Bregalad|Bregalad]] ([[User talk:Bregalad|talk]]) 14:29, 6 January 2016 (MST)
== Move the palette chart to the top ==
I don't know about you guys, but most of the time I visit this page is because I want to see a chart which maps NES colors to their corresponding numbers. Strangely, the only chart on the page for this is found at the very bottom! The charts that come before it are for the 2C03, 2C04, 2C05 PPUs, not the 2C02 PPU which is what most people would expect.
Suggested change: Move [http://wiki.nesdev.org/w/index.php/File:Savtool-swatches.png savtool's NES palette] to the top of the page, above any mention of the 2C03.
[[User:Pubby|Pubby]] ([[User talk:Pubby|talk]]) 11:20, 11 May 2016 (MDT)
:Good point. Done. --[[User:Tepples|Tepples]] ([[User talk:Tepples|talk]]) 13:10, 11 May 2016 (MDT)
== "classic EGA palette" ==
"These NES colors approximate colors in the classic Windows or EGA palette, though the NES doesn't really have a good yellow"
Is this sentence supposed to refer to the chromas prior to or those following it? [[User:Myask|Myask]] ([[User talk:Myask|talk]]) 21:01, 10 January 2017 (MST)
:The values before the statement you quoted aren't specific colors. They're values like $x2 and $x4 which represent entire "columns" of colors. For example, $x2 = $02, $12, $22, and $32. $x4 = $04, $14, $24, and $34. Also, the statement you quoted ends with a colon, indicating it refers to the values that follow it. --[[User:Bavi H|Bavi H]] ([[User talk:Bavi H|talk]]) 19:08, 11 January 2017 (MST)
:It refers to those that follow. I added a section break between the chroma list and the EGA list to clarify. --[[User:Tepples|Tepples]] ([[User talk:Tepples|talk]]) 12:36, 13 January 2017 (MST)
== Background Palette Hack Intentionality? ==
I've looked over the palette logic in Visual 2C02, and I don't see any signs that the "background palette hack" was intentional - whenever the VRAM address is within $3F00-$3FFF, the Palette RAM's address input is connected to A0-A4 so that writes to $2007 will go into the appropriate memory cells, but there's no logic to ''disable'' the palette's output signals so they still end up driving the luma/chroma generators during the visible portion of the frame. To me, that looks very much like it's a side effect of how rendering works. --[[User:Quietust|Quietust]] ([[User talk:Quietust|talk]]) 18:14, 2 July 2022 (UTC)
== RC2C03B possible bad dump? ==
There seems to be only one known instance of this, and there are suspicions that it is is simply a bad dump. Moved here to talk page waiting for someone to improve the evidence for it. Has another of these ever been found? Is the original still accessible? - [[User:Rainwarrior|Rainwarrior]] ([[User talk:Rainwarrior|talk]]) 23:09, 7 April 2023 (UTC)
=== RC2C03B ===
For no particularly discernible reason, the palette for this specific PPU varies in six colors:
333,014,006,326,403,503,510,420,320,100,031,040,022,000,000,000
555,016,027,407,507,704,700,630,430,140,040,053,044,000,000,000
777,357,447,637,707,717,740,750,660,340,070,276,077,000,000,000
777,547,657,757,747,755,764,772,773,552,473,276,467,000,000,000
{|class="wikitable"
|-
|style="border:0px;background-color:#6d6d6d;width:32px;height:32px;color:#fff;text-align:center"|00
|style="border:0px;background-color:#002491;width:32px;height:32px;color:#fff;text-align:center"|01
|style="border:0px;background-color:#0000da;width:32px;height:32px;color:#fff;text-align:center"|02
|style="border:0px;background-color:#6d48da;width:32px;height:32px;color:#fff;text-align:center"|03
|style="border:0px;background-color:#91006d;width:32px;height:32px;color:#fff;text-align:center"|04
|style="border:0px;background-color:#b6006d;width:32px;height:32px;color:#fff;text-align:center"|05
|style="border:0px;background-color:#b62400;width:32px;height:32px;color:#fff;text-align:center"|06
|style="border:0px;background-color:#914800;width:32px;height:32px;color:#fff;text-align:center"|07
|style="border:0px;background-color:#6d4800;width:32px;height:32px;color:#fff;text-align:center"|08
|style="border:0px;background-color:#240000;width:32px;height:32px;color:#fff;border:1px solid #fff;text-align:center"|09
|style="border:0px;background-color:#006d24;width:32px;height:32px;color:#fff;text-align:center"|0A
|style="border:0px;background-color:#009100;width:32px;height:32px;color:#fff;text-align:center"|0B
|style="border:0px;background-color:#004848;width:32px;height:32px;color:#fff;text-align:center"|0C
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|0D
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|0E
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|0F
|-
|style="border:0px;background-color:#b6b6b6;width:32px;height:32px;color:#fff;text-align:center"|10
|style="border:0px;background-color:#0024da;width:32px;height:32px;color:#fff;border:1px solid #fff;text-align:center"|11
|style="border:0px;background-color:#0048ff;width:32px;height:32px;color:#fff;text-align:center"|12
|style="border:0px;background-color:#9100ff;width:32px;height:32px;color:#fff;text-align:center"|13
|style="border:0px;background-color:#b600ff;width:32px;height:32px;color:#fff;text-align:center"|14
|style="border:0px;background-color:#ff0091;width:32px;height:32px;color:#fff;text-align:center"|15
|style="border:0px;background-color:#ff0000;width:32px;height:32px;color:#fff;text-align:center"|16
|style="border:0px;background-color:#da6d00;width:32px;height:32px;color:#fff;text-align:center"|17
|style="border:0px;background-color:#916d00;width:32px;height:32px;color:#fff;text-align:center"|18
|style="border:0px;background-color:#249100;width:32px;height:32px;color:#fff;text-align:center"|19
|style="border:0px;background-color:#009100;width:32px;height:32px;color:#fff;text-align:center"|1A
|style="border:0px;background-color:#00b66d;width:32px;height:32px;color:#fff;text-align:center"|1B
|style="border:0px;background-color:#009191;width:32px;height:32px;color:#fff;text-align:center"|1C
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|1D
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|1E
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|1F
|-
|style="border:0px;background-color:#ffffff;width:32px;height:32px;color:#000;text-align:center"|20
|style="border:0px;background-color:#6db6ff;width:32px;height:32px;color:#000;text-align:center"|21
|style="border:0px;background-color:#9191ff;width:32px;height:32px;color:#000;text-align:center"|22
|style="border:0px;background-color:#da6dff;width:32px;height:32px;color:#000;text-align:center"|23
|style="border:0px;background-color:#ff00ff;width:32px;height:32px;color:#000;text-align:center"|24
|style="border:0px;background-color:#ff24ff;width:32px;height:32px;color:#000;border:1px solid #000;text-align:center"|25
|style="border:0px;background-color:#ff9100;width:32px;height:32px;color:#000;text-align:center"|26
|style="border:0px;background-color:#ffb600;width:32px;height:32px;color:#000;text-align:center"|27
|style="border:0px;background-color:#dada00;width:32px;height:32px;color:#000;text-align:center"|28
|style="border:0px;background-color:#6d9100;width:32px;height:32px;color:#000;border:1px solid #000;text-align:center"|29
|style="border:0px;background-color:#00ff00;width:32px;height:32px;color:#000;text-align:center"|2A
|style="border:0px;background-color:#48ffda;width:32px;height:32px;color:#000;text-align:center"|2B
|style="border:0px;background-color:#00ffff;width:32px;height:32px;color:#000;text-align:center"|2C
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|2D
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|2E
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|2F
|-
|style="border:0px;background-color:#ffffff;width:32px;height:32px;color:#000;text-align:center"|30
|style="border:0px;background-color:#b691ff;width:32px;height:32px;color:#000;border:1px solid #000;text-align:center"|31
|style="border:0px;background-color:#dab6ff;width:32px;height:32px;color:#000;text-align:center"|32
|style="border:0px;background-color:#ffb6ff;width:32px;height:32px;color:#000;text-align:center"|33
|style="border:0px;background-color:#ff91ff;width:32px;height:32px;color:#000;text-align:center"|34
|style="border:0px;background-color:#ffb6b6;width:32px;height:32px;color:#000;text-align:center"|35
|style="border:0px;background-color:#ffda91;width:32px;height:32px;color:#000;text-align:center"|36
|style="border:0px;background-color:#ffff48;width:32px;height:32px;color:#000;text-align:center"|37
|style="border:0px;background-color:#ffff6d;width:32px;height:32px;color:#000;text-align:center"|38
|style="border:0px;background-color:#b6b648;width:32px;height:32px;color:#000;border:1px solid #000;text-align:center"|39
|style="border:0px;background-color:#91ff6d;width:32px;height:32px;color:#000;text-align:center"|3A
|style="border:0px;background-color:#48ffda;width:32px;height:32px;color:#000;text-align:center"|3B
|style="border:0px;background-color:#91daff;width:32px;height:32px;color:#000;text-align:center"|3C
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|3D
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|3E
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|3F
|}
The pattern compared to the normal 2C03 is that where color bits 0-1 are 01 (i.e. palette entries $01/$11/$21/$31, $05/$15/$25/$35, and $09/$19/$29/$39), green is ANDed with 5 (bit 1 is 0). No games are known to be designed for this palette. Given the pattern, it was probably a mistake in the mask.
Later anecdotes imply the specific PPU used to generate the above dump might have been damaged. [https://forums.nesdev.org/viewtopic.php?p=283412#p283412]

Latest revision as of 23:09, 7 April 2023

It says that the background palette hack can be used to display the unused palette data. Can the EXT pins also do this? --Zzo38 (talk) 22:30, 1 July 2013 (MDT)

Yes, I think so. While rendering background pixels, the palette index that gets looked up is simply 0<exp_in3><exp_in2><exp_in1><exp_in0>. -Ulfalizer (talk) 03:58, 2 July 2013 (MDT)
Interestingly, it looks like the background palette hack wouldn't work for output to the EXT pins though (bit 6 of $2000 set). The logic that causes the VRAM address to be used for the palette index while the background palette hack is active comes after the logic that outputs the index to the EXT pins. -Ulfalizer (talk) 04:15, 2 July 2013 (MDT)
Thank you for information. I suppose if you are using the master/slave, you can connect the EXT pins in reverse (EXT0 to EXT3, EXT1 to EXT2, EXT2 to EXT1, EXT3 to EXT0) so that this can be used to make extra colors. --Zzo38 (talk) 23:05, 2 July 2013 (MDT)

Source of palette

Where did the palette added by Lidnariq in this edit come from? --Tepples (talk) 18:56, 25 December 2013 (MST)

Screenshot from Nestopia running blargg's full_colors and nes_ntsc. Feel free to bikeshed. —Lidnariq (talk) 20:00, 25 December 2013 (MST)

Parsing the palette

The palette values from this table are read from left to right, then up -> down. Is this ok?

00 01 02 03 ... 0F
10 11 12 13 ... 1F
20 ...
(unsigned comment by Zepper)

Almost. They appear to go from $00 to $0D, then the next line from $10 to $1D, etc. --Tepples (talk) 06:42, 28 December 2013 (MST)

Browser compatibility of Drag's palette generator

It appears that Firefox 29 implements built-in validation for <input type="number"> such that said elements are expected by default to contain integers. This affects the default hue and saturation settings, causing the boxes to be given glowing red borders and explanatory tooltips, and preventing the values from being changed to other reasonable non-integers. The default settings still work (in that they produce the same palette as in older versions of Firefox) as long as they are not changed.

Relevant documentation can be found on various Mozilla websites (not bothering to link any of it here due to lack of login). --150.135.211.242 22:30, 18 May 2014 (MDT)

Maybe send this information to Drag? I don't think it does much good here. - Rainwarrior (talk) 11:00, 20 May 2014 (MDT)
How does Drag prefer to be contacted? I am not active on the forums (and therefore don't qualify for an account on the wiki either). The homepage of the domain on which the generator is hosted mentions that Drag has a Twitter account, but I'm not a registered Twitter user either (and I don't feel like registering just for this one issue).
I don't see how posting here is useless given that some other user could make a fixed version. For example, Tepples has some webspace which could theoretically be used for this. --150.135.211.242 14:46, 20 May 2014 (MDT)
You used to need a reputation on the BBS or IRC to qualify for a wiki account. You don't anymore; that ended 20 months ago with the transition away from Parodius. Feel free to register and jump right into the talk pages, and so long as your posts there show clue, you'll get autoconfirmed in no time. --Tepples (talk) 19:35, 20 May 2014 (MDT)
I'll take this into account if I decide to poke at my palette generator again. :P Thanks for letting me know about it though. --Drag (talk) 17:27, 26 May 2014 (MDT)
The number fields should now be fixed, I hope. I just needed to add a "step" property to the input field to specify that I expect decimals to 0.001 precision. --Drag (talk) 01:09, 28 May 2014 (MDT)

One more problem with the validation: Press the "Get current preset" button with everything else left at defaults. The Wx value of 0.3127 gets flagged as invalid because it has one more decimal place than the current validation allows. It's probably a good idea to allow four decimal places in all the custom colorimetry settings, based on the conventions I've seen. (I suppose I'm fine downloading a copy to run locally if you don't want to bother)

(Aside: My main reason not for registering at this point is lack of HTTPS support. Even if I were to ignore that, I'm a little confused why some accounts have needed to be confirmed manually recently.) --150.135.211.242 14:32, 21 April 2015 (MDT)

Palette color format?

What's the color format used in the palette entries? Example: 755,637,700,447... ??? How do I "decode" the 755 value in RGB? --Zepper (talk) 13:24, 29 October 2014 (MDT)

Those are RGB333 values, so 637 means 6/7 red (0xDB), 3/7 green (0x6D), and 7/7 blue (0xFF). --Quietust (talk) 20:36, 29 October 2014 (MDT)
The .PAL format should consist of the same color formatting as the Classic VGA Palette format so if you know how to program back then, you already know this. --Hamtaro126 (talk) 05:55, 31 October 2014 (MDT)

Why does this page show strange, nonstandard palettes first ?

Platte display

One version of the canonical, standard NES palette should appear at the top of the page. Other palettes used by RGB, playchoice or whathever are annecdotical and should only appear below. They should most certainly *not* appear first. Bregalad (talk) 14:29, 6 January 2016 (MST)

Move the palette chart to the top

I don't know about you guys, but most of the time I visit this page is because I want to see a chart which maps NES colors to their corresponding numbers. Strangely, the only chart on the page for this is found at the very bottom! The charts that come before it are for the 2C03, 2C04, 2C05 PPUs, not the 2C02 PPU which is what most people would expect.

Suggested change: Move savtool's NES palette to the top of the page, above any mention of the 2C03.

Pubby (talk) 11:20, 11 May 2016 (MDT)

Good point. Done. --Tepples (talk) 13:10, 11 May 2016 (MDT)

"classic EGA palette"

"These NES colors approximate colors in the classic Windows or EGA palette, though the NES doesn't really have a good yellow" Is this sentence supposed to refer to the chromas prior to or those following it? Myask (talk) 21:01, 10 January 2017 (MST)

The values before the statement you quoted aren't specific colors. They're values like $x2 and $x4 which represent entire "columns" of colors. For example, $x2 = $02, $12, $22, and $32. $x4 = $04, $14, $24, and $34. Also, the statement you quoted ends with a colon, indicating it refers to the values that follow it. --Bavi H (talk) 19:08, 11 January 2017 (MST)
It refers to those that follow. I added a section break between the chroma list and the EGA list to clarify. --Tepples (talk) 12:36, 13 January 2017 (MST)

Background Palette Hack Intentionality?

I've looked over the palette logic in Visual 2C02, and I don't see any signs that the "background palette hack" was intentional - whenever the VRAM address is within $3F00-$3FFF, the Palette RAM's address input is connected to A0-A4 so that writes to $2007 will go into the appropriate memory cells, but there's no logic to disable the palette's output signals so they still end up driving the luma/chroma generators during the visible portion of the frame. To me, that looks very much like it's a side effect of how rendering works. --Quietust (talk) 18:14, 2 July 2022 (UTC)

RC2C03B possible bad dump?

There seems to be only one known instance of this, and there are suspicions that it is is simply a bad dump. Moved here to talk page waiting for someone to improve the evidence for it. Has another of these ever been found? Is the original still accessible? - Rainwarrior (talk) 23:09, 7 April 2023 (UTC)

RC2C03B

For no particularly discernible reason, the palette for this specific PPU varies in six colors:

333,014,006,326,403,503,510,420,320,100,031,040,022,000,000,000
555,016,027,407,507,704,700,630,430,140,040,053,044,000,000,000
777,357,447,637,707,717,740,750,660,340,070,276,077,000,000,000
777,547,657,757,747,755,764,772,773,552,473,276,467,000,000,000
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

The pattern compared to the normal 2C03 is that where color bits 0-1 are 01 (i.e. palette entries $01/$11/$21/$31, $05/$15/$25/$35, and $09/$19/$29/$39), green is ANDed with 5 (bit 1 is 0). No games are known to be designed for this palette. Given the pattern, it was probably a mistake in the mask.

Later anecdotes imply the specific PPU used to generate the above dump might have been damaged. [1]