RetroPie / RetroPie/RetroPie-Setup

Per-core 'Reset to default configuration' option

Open
#3,194 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Shell
Stars
10.4k
Forks
1.4k
Avg merge
2d 12h
Merged PRs (30d)
11

Description

As discussed some time ago in discord, it would be useful to have an option in the package manager for each libretro core. This saves the user the current fiddly process of:

  1. Delete file /opt/retropie/configs/all/[foo]/retroarch.cfg ([boo] is the system directory. eg snes - this could potentially be shared with another libretro emulator for the same system, but if it needs resetting for one it probably needs resetting for all)
  2. Reinstall emulator via retropie_setup (regenerates retroarch.cfg deleted in 1.)
  3. Delete overrides directory /opt/retropie/configs/all/retroarch/config/[bar] ([bar] is the libretro core library name, eg Snes9x - should be similar, but not neccesarily the same, as rp_module_id - eg lr-snes9x)
  4. For completeness, all the core options set in /opt/retropie/configs/all/retroarch-core-options.cfg should be removed. they are in the format [bar][delimiter][option]="value" ([bar] is the libretro core library name. [delimiter] can be _ or - and maybe more). they will be reset to defaults when the emulator is next run)

step 3 and 4 are a little tricky to automate - either we add the libretro library name to the install scripts, or we programmatically retrieve it/store it somehow when updating/installing the core. i have a feeling there is a way to get the library name for a given core via command line but not sure... Maybe you can run the core with no game in verbose mode, and grep it from the log.

We would also want an option for resetting the main /all/retroarch.cfg

This option could potentially be expanded into non-libretro packages, to clear the /opt/retropie/configs/[food] directory, and then run sudo ./retropie_packages [foo] configure again, or something like that.

Happy to prototype this myself, but I think Buzz wanted to handle it.

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 reading the retropie_setup package-manager entry points and the retropie_packages configure path, then trace how the listed RetroArch configuration paths are created and associated with a core. Done means a per-core reset option and a main RetroArch configuration reset are defined, with the scope and handling of core options made explicit.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.