clownmdemu-frontend
clownmdemu-frontend copied to clipboard
VDP debuggers are one frame ahead of the actual game
An example, from Sonic Classic Heroes (note that this was taken from the demo mode, as the game crashes upon reaching the main menu):
Note that the shield graphics in the sprite viewers do not match what's on-screen. Also, the timer is a frame ahead.
While I first noticed this with the sprite debuggers, the VRAM, CRAM, Plane A, Plane B, and Window Plane debuggers have this problem too. I have no idea if non-VDP debuggers are affected.
I imagine this has to do with the screen being drawn before Vertical Interrupt but the debuggers only being updated after Vertical Interrupt. In hindsight, perhaps the debuggers (and the frontend in general) should update after the final scan-line is drawn instead.
Whatever works (and doesn't compromise playability nor accuracy).