[Feature Request] Create option to include core name/version in save state filename
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
For save states which are handled by the libretro interface, options should be added to have save state filenames to include the core name and core version, delimited by character(s) or pattern(s) deemed least likely to cause collisions.
Justification:
- Prevent user confusion when trying to load a state created by a different core (leading to failure for unknown reason).
- Prevent data loss from clobbering a save state created by a different core.
- Allow users to the ability to identify with a glance at their states folder whether or not they need to lock a core from being updated
- Allow the frontend to display a toast notification (optional) indicating a mismatch with the core version the state was created with, a common cause of user confusion.
Arguments against:
- Most users will not switch between multiple cores for the same system.
- Users bugtesting cores will likely directly benefit, as they can have identically-indexed save states in multiple cores for comparison testing.
- Metadata should be encapsulated in the file header, not the filename.
- Agreed on principle, but:
- End users can't identify the source of savestates from their file manager.
- A more complex feature would need to be programmed into RetroArch to allow reviewing that information, and it would still be less convenient to the end user.
- Agreed on principle, but:
A discussion would warranted on whether or not it would be useful to have (optional) warnings on loading legacy states without the core version tag present if version tagging is enabled.
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
No file, test, or entry point is named. Start by locating RetroArch's libretro save-state filename handling and review how core metadata is currently represented. Done requires an agreed optional naming scheme for core name/version and a decision on handling legacy states and version-mismatch warnings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100