Open
Description
For manufacturing cost reasons, most SNES games only provide a very small number of in-game save slots, which can be quite limiting for long games like RPGs. In addition, it is possible for in-game saves to be corrupted because of bugs in the original game (hello, FF6!) or lost due to the use of features like save-states.
Save-states are plentiful, they can never be corrupted by the game or lost due to other features, but they only work with a single version of a single emulator, which is effectively a different dataloss bug.
bsnes should provide a hybrid of the two, by recording all in-game saves and allowing the player to switch back to any previous save.
It might work like this:
- when bsnes detects the game writing to SRAM (with hysteresis, like the "Auto save memory periodically" option)), it should record:
- the new SRAM contents
- the current date and time
- maybe a screenshot
- In the Tools menu, there should be a Save Manager, similar to the current State Manager. It would allow the user to browse list of available saves, ordered by timestamp, give them more descriptive names, etc.
- Restoring a previous save should copy the old save data into place, and reset the emulation.
- Restoring a previous save then making a new save will just append the new snapshot to the end of the list, we don't need to track forking timelines or whatever (we could, like full-on Git branching, but most PC games that offer unlimited in-game saves don't bother, so I don't think it's worth the effort)