This corresponds with the expected power up time it takes as referenced with the wiki (assuming vbl flag starts off.) It also matches what I see in youtube videos of the game.
The other 10% of the time (mostly after resets but can persist for a shot time through power cycles) I get this arrangement:
My assumption was that this was the result of the VBL flag being on at reset, but upon trying to recreate this in emulator, I am unable to. In fact, with VBL flag on at reset, the game starts writing to registers before they should be available.
Code: Select all
809A: A9 90 LDA #$90 A:00 X:00 Y:01 SP:FF P:26 nvTbdIZc Cy:28049
809C: 8D 00 20 STA $2000 A:90 X:00 Y:01 SP:FF P:A4 NvTbdIzc Cy:28051
It seems like this should result in a hang, but I've never seen a hang on console.
I've tried to reproduce the unusual housing arrangement in emulator by varying powerup timing over a fairly wide window but cannot reproduce it. I've tried using Mesen's randomize cpu/ppu alignment setting as well but it always gives the usual arrangement.
So right now I'm pretty stumped, it should hang with VBL on as far as I can tell but it never does, and console gives a house arrangement that I cannot reproduce.
Seems like a pretty big coincidence to me, like somehow the console is filtering out the times when VBL started on and somehow resulting in the unusual arrangement by some process instead.
I should note that I also tried powering up Donkey Kong numerous times in accordance with this thread: viewtopic.php?f=3&t=19792 and never saw any zeroes.
If I just let all ppu writes proceed as normal, I get a different arrangement altogether, so that's not it either.
If anyone can offer any insight into any of this please do, this is very perplexing.