config overrides only account for base config. Ignores intermediate overrides.
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
There are 4 levels to every configuration key.
- base
retroarch.cfg - core
CORENAME.cfg - content folder
FOLDERNAME.cfg - content name
ROMNAME.cfg
If the key/value is set to video_scale_integer_scaling = “0” in retroarch.cfg and CORENAME.cfg sets it to “1”, Setting it back to ”0” in FOLDERNAME.cfg or ROMNAME.cfg will not be saved since it ignores intermediate values. RetroArch assumes the override isn’t an override at all and omits the setting when saving.
This wouldn’t be a problem if the overrides didn’t accumulate and RetroArch only picked a single override file closest to the content but since all are considered, it should be consistent look beyond the base config key when saving the override. Hope that made sense.
Expected behavior
The override value should be compared to an existing value immediately before it, not just the base value.
Steps to reproduce the bug
- save a config override named after the core for any key.
- save a content override for the same key but uses a base value in
retroarch.cfg. - the setting isn’t saved.
Version/Commit
dc8af61
Bisect Results
No response
Present in the nightly version
Yes, this is reproduced in the nightly build
Platform & operating system
macOS Tahoe 26.5 (25F71)
Affected Cores
No response
Environment information
No response
Relevant log output
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
Start by tracing how RetroArch saves overrides across retroarch.cfg, CORENAME.cfg, FOLDERNAME.cfg, and ROMNAME.cfg. Reproduce the described sequence with video_scale_integer_scaling, then verify that saving compares against the immediately preceding override value rather than only the base configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100