Spice86 icon indicating copy to clipboard operation
Spice86 copied to clipboard

Support for savestates

Open maximilien-noal opened this issue 3 years ago • 7 comments

Savestates would be very helpful to easily and reliably reproduce and investigate / debug a program. Memory, CPU state, and devices states would need to have save / restore capabilities for this to work.

Original issue: https://github.com/kevinferrare/spice86/issues/9

maximilien-noal avatar Feb 11 '22 11:02 maximilien-noal

https://github.com/RobertPeip/FPGBASharp (GBA has nothing to do with DOS/X86, but this C# emulator implements save states)

articles:

https://www.gregorygaines.com/blog/adding-save-states-to-an-emulator/

There's a patch floating around on VOGONS that implements save states for DOSBox, but it's incomplete, experimental, and Spice86 is very different.

maximilien-noal avatar Apr 09 '23 17:04 maximilien-noal

DOSBox Pure (libretro core) implements save states: https://github.com/schellingb/dosbox-pure#save-states

maximilien-noal avatar Apr 09 '23 17:04 maximilien-noal

DOSBox-X implements it: https://github.com/joncampbell123/dosbox-x

maximilien-noal avatar Apr 09 '23 17:04 maximilien-noal

This may be useful:

https://github.com/Cysharp/MemoryPack OR https://github.com/DouglasDwyer/PowerSerializer OR https://github.com/skbkontur/GroBuf

maximilien-noal avatar May 06 '23 11:05 maximilien-noal

Savestates very well may not work with C# overrides of assembly code, since the stack isn't emulated when overriding...

A shortcut would be to disable them if any override is used.

maximilien-noal avatar May 28 '23 17:05 maximilien-noal

This PC emulator has savestates, extensive ones: https://github.com/barotto/IBMulator

maximilien-noal avatar Jul 07 '23 15:07 maximilien-noal

A Clone method source generator might be useful: https://github.com/mostmand/Cloneable

maximilien-noal avatar Oct 04 '23 21:10 maximilien-noal