libretro / libretro/RetroArch

[Feature Request] Add "Update Save Files" Option to Online Updater

Open
#18,032 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

There are dedicated sites for Windows game save files, such as PCSaveGames and SaveGame.pro. These sites provide downloadable save files for a wide variety of PC games.

Main Feature Request

  • Proposal: Add a new entry in Main MenuOnline Updater called Update Save Files.
  • Description: This feature would allow users to easily download and update save files for supported games directly from within the application, similar to how core and asset updates are currently handled.
  • Important: To make this feature viable, users must be able to upload their own save files to the RetroArch server—ideally through a process similar to how joypad config files are contributed via GitHub. This community-driven approach will ensure the save file library remains comprehensive and up-to-date, allowing users to both share and benefit from a continually expanding collection of save files.

Complementary Feature Request

  • Please also see related suggestion:
  • This feature would enhance the management of custom save files and give users greater control over their game progress. For example, if implemented, users could load save files with custom filenames directly—eliminating the need to manually rename files to match specific naming conventions.

Game Save Compatibility

Game saves are not region-locked, so you can use save files interchangeably between US, EU, JP, and other regional versions of the game.

Note: The MD5 checksum for save files may change each time you close RetroArch, even if you do not save the game.

Why is this needed?

Not all (free) cores support cheat files

For example, most SNES cores do not support cheat files, which means you cannot use them to access other levels on these cores. While some cores, like SNES9x, do support cheat codes, they are proprietary and therefore cannot be used by those who strictly choose to use only free software.

Convenience

For players who have already completed the game and simply want to revisit later levels without replaying everything from the beginning, level selection isn’t really a cheat—it’s a practical option that should be freely available. Also, save files offer a convenient way to jump to specific levels without the hassle of searching through complex cheat code lists that mix other features.

Issues with cheat codes

Main Menu -> Online Updater -> Update Cheats is useful, but it has a few limitations. Even for cores that do support Game Genie codes, not all codes work as expected.

Lack of cheat codes

A code to unlock all Hard Mode worlds at once in Super Mario Bros. (including Super Mario All-Stars) for SNES has not been hacked yet.

Broken cheat codes

For example, there is no SNES Game Genie code for Super Mario Bros. 3 (as part of Super Mario All-Stars) that reliably allows you to select and play any World.; Code "D5D4-F36D" is used to "Select any world for FILE A game [Not usable for World 8: the two Hand Trap levels, which must be completed to unlock the pipe to Bowser’s Castle, are missing because the cheat code removes them, so no levels at all can be played]" (see https://github.com/libretro/libretro-database/pull/1543/files)

Download Save File for the above Super Mario All-Star issue example

This save file contains all worlds completed in each Super Mario game included in Super Mario All-Stars (USA): Super Mario All-Stars (USA)-All Worlds.txt

What does it contain?:

  • Super Mario Bros.
    • Cheat code: Allows you to select any world for FILE A: D5DF-FADD
    • Manually completed World 8 to make Hardmode Words available
  • Super Mario Bros.: The Lost Levels
  • Cheat code: Allows You To Select Any World Or Level For "File A": DADF-F30D+D7DF-F36D
  • Super Mario Bros. 2
    • Cheat code: Allows you to select any world for FILE A: D1D4-FA0D
  • Super Mario Bros. 3
    • Cheat code: Select any world for FILE A game [Doesn't work on World 8]: D5D4-F36D
    • Manually completed World 7 to be able to complete World 8.

"Factory reset" settings:

  • I intentionally triggered a Game Over before saving to ensure no extra lives or progress were carried over
  • I pre-selected Super Mario Bros. like in the factory reset ROM.

Instructions for use:
To ensure that your original game progress remains intact while also allowing you to archive or experiment with different save states, downloaded save files are given custom filenames. This prevents them from overwriting your "system default" save for the original title. By keeping saves separated in this way, you can easily switch between your personal progress and community-contributed saves, or archive completed game saves for dedicated gameplay sessions.

  • Download "Super.Mario.All-Stars.USA.-Super.Mario.Bros.-All.Worlds.txt" (see link above) and rename it to "Super Mario All-Stars (USA)-Super Mario Bros.-All Worlds.srm"
    • GitHub replaced white spaces with "."
    • GitHub didn't allow the ".srm" file extension to be uploaded
  • Rename "Super Mario All-Stars (USA).sfc" to "Super Mario All-Stars (USA)-Super Mario Bros.-All Worlds.sfc"
  • Main Menu -> Load Content: Super Mario All-Stars (USA)-Super Mario Bros.-All Worlds.sfc
  • Once Super Mario All-Stars has been loaded, select any game, for example Super Mario Bros., and "File A" will now show the last completed world:

Image

You can decrease to lower Worlds if you want:

Image

Bonus

This would also make it possible to load save files stored in other core directories, since there is currently no universal save file directory.


Rationale:
Adding an "Update Save Files" option would streamline the process of obtaining save files, making it more convenient for users who wish to access specific game progress points or recover lost saves. Integration with established save file repositories could further expand the utility of the Online Updater.


References:

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

The named entry point is Main Menu → Online Updater; start by tracing how existing core, asset, and cheat updates are exposed. Review related issue #17942 and define the download, server contribution, and custom save-file requirements; done means the updater can provide supported saves without overwriting default progress.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.