There has been recent discussion and development over at Nesdev of an
algorithm for immediate backwards replay at any point, without using much more processing than for normal forwards emulation.
In my very experimental NES emulator I made it so if you hit the reverse key, video and audio slow down to a crawl, then smoothly speed up in reverse, similar to the opening scene in
The Matrix. Then as it plays backwards, at any point you can pick up playing (or hit the reverse key and replay back to the point where you reversed). It's quite cool.
I'm posting this so that any programmers who want to open-source emulators might add this feature, and so that anyone interested can request this in their favorite emulator.
I've refined the core algorithm and written a
commented C implementation, with callbacks to the emulator, so it shouldn't be hard to integrate (it's only a hundred or so lines long). I'll also provide any assistance with understanding or implementing it.
I posted an mp3 from my emulator (I don't have any easy way to make a video, sorry) to the nesdev thread mentioned above and I'd appreciate someone mirroring it and posting the URL here.