libretro / libretro/RetroArch

Save file location based on hash/title id

Open
#16,519 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

For example I have the same rom but with different filenames e.g. "Some Game.bin" and "Some Game (v1).bin"
Now RetroArch will create a save file for each file instead of sharing it.
I'd like to be able to have the save file location based on the hash of the rom, the title id (e.g. SLUS-01324), or the RetroAchievements hash maybe.
This way if I have the same rom with different filenames or if the rom got renamed the correct save file will be used.

Create a sub-directory per hash and store all relevant save data there.

saves/<hash>/sram.srm

saves/<hash>/slot1.mcr
saves/<hash>/slot2.mcr

Save states should also use a sub-directory based on the core library name.

states/mednafen_psx_hw_libretro/<hash>/0.state
states/mednafen_psx_hw_libretro/<hash>/autosave.state

Existing data should be imported if no save is in the new location yet.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing RetroArch's existing save-file and save-state path handling. Compare the requested hash or title-ID layout with current filename-based behavior, including core library names and migration of existing data. Done means matching ROMs share the intended save data, states use the requested hierarchy, and old data is imported when the new location is empty.

Written by the indexing model from the issue text.

Assessment

Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.