This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Palette quirks on different emulators...

Palette quirks on different emulators...
by on (#36767)
Ok. I basically have this situation: When I want to go to a special screen, I wanted to have this flashing effect play and to do that I write values to the very first value of the palette ($3F00).

I have it so PPU is turned off (All zeroes written to $2001). When turned back on, #%00011010 is written to $2001. It's turned off to let the BG and such load and I want it to stay off until the flashing is done and the little sound effect finishes, but the problem is that while off, it seems to ONLY want to write a red color to the PPU which makes no sense!

On FCE Ultra, it works fine. On NEStopia apparently PPU rendering needs to be turned ON for it to work... And this has it so the flash occurs, but the text is visible while it's going and I don't want that.

I know for a fact that I've done this palette trick in the past and that it worked fine. People had talked about this for the time I did the white flash for the tile changing.

So, why is NEStopia being evil for unexplained reasons?

by on (#36769)
$3F00 is the background color if the PPU is on.

If the PPU is off... it gets a bit more complicated. If the PPU Address is pointing to the palette ($3Fxx or any mirror of that), then the color the PPU address is pointing to is rendered. If the PPU address is outside that range, then $3F00 is rendered.

What's probably happening with you, is you're leaving the PPU Address at $3F01 or something (it'd be incremented to that after the write to $3F00). So the PPU is drawing the color at $3F01 (which I guess is red?).

To correct this, just move the PPU Addr outside the palette range after you update the palette. Like write double 0s to $2006

by on (#36770)
The problem was indeed resolved after this. I did my one palette write, wrote 0 to $2006 twice then that was that...