Save RetroArch core options, overrides, and remaps correctly on Android
Use a game `.opt` file for core options, a `.cfg` override for frontend settings, and an `.rmp` remap for controls. Save at game, content-directory, or core scope only as broadly as needed, confirm automatic loading is enabled, then relaunch the same content to verify the setting was written.
Do this in order
- 01
Record the RetroArch version, exact MAME core name/revision, content name, and current Config directory.
- 02
Change one setting while the game is loaded and classify it as a core option, frontend setting, input remap, or shader preset.
- 03
Choose the narrowest scope: game first, content directory only for a coherent folder, or core only when every game should inherit it.
- 04
Save through the matching Quick Menu action: game options, game/directory/core override, remap file, or shader preset.
- 05
Confirm content-specific core options and automatic override loading are enabled where your build exposes those switches.
- 06
Close content, relaunch it, and verify the setting; back up the Config and Remap directories before changing global configuration.
Decision and diagnostic table
| Setting type | File or action | Use it for |
|---|---|---|
| Core option | Game `.opt` / Save Game Options | MAME-core behavior exposed under Quick Menu → Core Options |
| Frontend override | Game, directory, or core `.cfg` | Video, latency, overlay, and other RetroArch settings |
| Input remap | Game, directory, or core `.rmp` | Mapping RetroPad controls to the emulated machine |
| Shader preset | Game or core shader preset | A display-processing chain kept separate from CFG overrides |
Options, overrides, and remaps solve different layers
RetroArch deliberately separates core options from frontend configuration and input remaps. A MAME option saved as a game option belongs in the core-options system; a controller mapping belongs in a remap; a frontend video or overlay change belongs in an override.
Using the matching save action makes rollback possible and prevents an unrelated global setting from changing every core.
The most specific scope wins
RetroArch loads its base configuration, then applies core, content-directory, and game overrides, with the more specific layer taking precedence. A forgotten game override can therefore make a later core-wide change appear broken.
When diagnosing a conflict, list the active game, directory, and core files. Remove or reset the narrowest file first rather than deleting `retroarch.cfg`.
Verify the write on Android
Android builds may keep Config and Remap directories in locations that normal file browsers cannot open. Use Settings → Directory to see the configured paths and move them to a user-controlled location only through a supported picker or documented frontend flow.
After saving, fully close and reload the content. An on-screen success message is useful, but the relaunch is the proof that automatic loading, file naming, and scope all match.
Configuration files do not supply game rights. Test with your own authorized content and do not use override packs as a route to bundled ROM, BIOS, artwork, or music.