One 128KB snapshot per frame allows 10 seconds of rewind with 64MB (128KB * 50 frames * 10 seconds) of memory for the rewind feature. A more efficient method saves only the previous RAM values that are changed between 2 frames, allowing much longer rewinds (even if the CPC is equipped with 4MB RAM expansion) while using less memory, as shown by the GBA emulator [https://youtu.be/Sfc_1NKbiKg SkyEmu].
For step-back debugging, going back to the previous instruction is easily implemented. The emulator has just needs to store the time when the previous instruction was executed so that he can go back to that instruction. In the same way, emulators can provide access to the previous HBL, IRQ, VBL, etc.
<br>