Not to long ago I adopted a method created by Maister into the genplus emulator that allows for real time rewinding (think Prince of Persia or Braid). The method is somewhat like video compression P-Frames where you store the diff of the last frame. Emulators like FCEU use state saving to disk to pull this off which is very expensive. The individual state frames are often large ranging anywhere from 75Kb to 300Kb. This method of storing the diffs in memory allows us to provide almost 30 seconds of rewind (varies depending on the game). You can do the math to get a rough estimate how much space 30 seconds at 60fps worth of frames would take in its raw form. The only real performance hit is the serialization and unserialization of the state itself, this proves fairly negligible. This is really just a for fun feature it is however neat none the less.
This also marks the release of GENPlusDroid (for free). If you have any problems please visit the forums. Download from the market, leave a comment.
https://market.android.com/details?id=ca.halsafar.genesisdroid
Scan the QR Code for quick access:
Halsafar
That is an awesome feature, will other emulators be getting it as well?
I will submit my minor changes required to the core emulation libraries for both FCEU and GENPlus to see if they want to pick up on it. Otherwise it should be in all our Android and PS3 ports very soon. NESDroid also has this feature already.
The HTC Desire is an oddball phone. Its specs show it has the power to run all the Android emulators here without any problems. However it has troubles with ALL of them. I think they cheaped out on audio hardware and/or memory bandwidth.