Gekkio/mooneye-gb

Incorrect registers in acceptance/boot_regs-dmg0 ?

jverkoey opened this issue · 1 comments

I'm running an emulator against the acceptance/boot_regs-dmg0 rom and was a bit surprised to see that the flag register for DMG is expected to be 00 on boot.

Looking at the DMG bootrom, it appears that, at minimum, z should be enabled by the end of the bootstrap because otherwise the bootstrap sequence is expected to lock up. The pandocs appear to back this up at https://github.com/gbdev/pandocs/blob/develop/content/Power_Up_Sequence.md.

I realize all of these ROMs are tested on hardware, so I'm perplexed as to how the assertions came to be as they are. Is it possible pandocs + the bootstrap are wrong?

Alternatively, is it possible I'm misunderstanding when these registers are expected to be evaluated? E.g. I'm assuming that the registers are snapshotted after the bootstrap sequence, at which point the assumption above of the z flag being set should hold true assuming the bootstrap for DMG is correct.

Ah, I see now that dmg0 is an earlier revision of the DMG hardware and that there is another boot_regs-dmgABC rom with the expected results :)