feat(core): add whole-machine save states with F5/F9 window slots

Machine::save_state and load_state encode the CPU, every RAM, and every device
through Snapshot impls into a versioned, checksummed format. Rejected loads leave
the machine unchanged. The ROM window saves to and loads from one state file
with F5 and F9.
This commit is contained in:
0xrsydn 2026-10-08 21:39:16 +07:00
commit fd73788735
55 changed files with 5157 additions and 20 deletions

View file

@ -97,6 +97,7 @@ Controls use the same focus correction and key mapping as the existing demos:
| Backspace | Select |
Escape or the window close control ends execution. Enter does not reset the emulator.
F5 writes and F9 loads a [save state](save-states.md) in the file chosen by `--state-file PATH` (default: the ROM path with a `.state` extension).
Focus loss releases all buttons but does not pause execution.
The host samples buttons before each execution slice, including while stopped.