Unfortunately, current CPC emulators don't have a rewind feature like in games such as "Prince of Persia: Sands of Time" or "Braid" for PCs.
But if SNR recordings are implemented, emulators could easily add the rewind function. Here's how it works: The emulator records a new SNR every second, saving these recordings A very simple approach is to make an SNA for the past minute (60 SNRs total). When the user wants to rewind, the emulator uses the latest SNR in the background, and records each frame. It then plays these frames backward. At and limit the same time, the emulator goes RAM snapshot to the previous SNR128KB, using it to get which is ok for 99% of CPC software. 128KB * 50 frames from * 60 seconds = 384MB needed for the second before, and so onrewind functionality.
Users can stop rewinding whenever they want. They just have to press and hold a rewind button to play the game backward at 1x speed. When released, time goes forward again.
For debugging, this method lets you do things like go back to the previous instruction (if the time information is kept) and in the same way access the previous HBL, IRQ, VBL, etc.
Importantly, this doesn't use a lot of CPU or RAM. It just means creating a save state every second and keeping a log of all inputs.
Another simpler approach is to make an SNR for each frame and limit the RAM snapshot to 128KB, which is ok for 99% of CPC software. 128KB * 50 frames * 60 seconds = 384MB needed for the rewind functionality.
= Emulator accuracy checking tools =