- Notifications
You must be signed in to change notification settings - Fork 33
Description
Apparently there is a weird bug on register DD00 (and possibly others): upon loading this image and launching, I can see a value in DD00, but it does not match with emulator behaviour.
What it's showing you in RetroDebugger at $dd00 is not what was written there last time, it's what was written the time before that.
Easy to demonstrate in BASIC. If you have the CIA view open it'll show #$97. POKE 56576, 148 will change the VIC bank and show a garbled screen as screen RAM now elsewhere. $DD00 will still show #$97. Blind type POKE 56576,151 and we've restored the default bank. $DD00 will now show #$94 which is what it should have done when we POKEd 151 in there. You can chain a sequence of these together and $dd00 will always lag 1 value behind what is actually stored there.
See this reddit thread.
I also tried with monitor console: if I write a vlaue to DD00, emulator properly sees and manages it, but I cannot see the new value in various panels.
Weird thing is that the screen map address, stored in MSB of DD00, is properly calculated by retrodebugger and shown in "VIC control" and "All bitmaps control" panels.
So apparently what I see in the panels is kind of a "previous shadow" of real contents of memory,