Changes

Emulators

1,260 bytes added, 23:02, 16 December 2023
*[[Willy|Willy MIDI]] is emulated only by ACE for Haiku
*[https://github.com/lambdamikel/Speak-SID Speak&SID], [https://github.com/lambdamikel/LambdaSpeak3 LambdaSpeak], [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amsdap-amstrad-msx-adapter-connecting-any-msx-io-hardware-to-the-cpc/ Amsdap (SE-One, Moonsound, etc...)] are not supported by emulators
 
= Rewind feature =
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 we use SNR recordings, we can make adding the rewind function easier. Here's how it works:
 
The emulator records a new SNR every second, saving these recordings 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 the same time, the emulator goes to the previous SNR, using it to get frames from the second before, and so on.
 
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.
 
Users can stop rewinding whenever they want. They just have to press a rewind button to play the game backward at 1x speed. Hold the button, and time goes backward; release it, and time goes forward again.
 
To avoid confusion, the image would get a sepia filter when rewinding, showing that time is moving backward.
= Emulator accuracy checking tools =
13,173
edits