TASEmulators / TASEmulators/BizHawk
[F.Rq.] "Un-loadstate" / Mitigate accidental overwriting of SaveRAM with savestates
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 468
- PR merge metrics
- No merged PRs in 30d
Description
Note: EmuHawk does not currently have un-loadstate. However, if rewind is enabled, it's making savestates periodically. You may be able to restore your progress by rewinding back "through" the loadstate.
Original text follows.
bramcn0745 brought this up in #2157, and I think this option would be extremely valuable. Loading savestates can be very destructive for casual users, as it can immediately overwrite a save file on disk without any warning. In my very early days, I have had this happen a few times, and it's easy to not even be aware of the dangers of loading savestates, or load a savestate without thinking.
One option is a warning like: "Loading a savestate will overwrite your save file. Are you sure you want to do this?" It could even have an option "Backup my save file". A warning might be overkill, but if it had an easy dialog option "don't warn me again", that might be a nice compromise.
Alternatively, BizHawk could create a backup SaveRAM file when loading a savestate for the first time in a session of a particular game, and then any savestate loading mishaps are thus made easily recoverable. The more I think about it, the more this second option seems ideal for casual players and TASers alike, as it's a nice safety catch mechanism, but also doesn't disruptive to power-users.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by examining EmuHawk's existing savestate, rewind, and SaveRAM behavior. The issue presents warning and automatic-backup alternatives, so first establish which recovery behavior is intended, then verify that loading a savestate cannot silently destroy progress and that affected SaveRAM can be recovered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100