Custom scan in the manual scanner should populate core_name and core_path entries per game
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
Well I'm actually advocating in another pr to remove this option altogether because it breaks thumbnails and game info (database), but there is a worse problem that can be fixed with the title I'm going to explain.
Custom playlists appended with multiple systems only really get the last emulator core associated.
By the way DETECT is a misleading name, it doesn't perform detection. I thought at first it would use db_name in the game entry to find the first core.info file with that db_name to get a core that way, but ofc that doesn't work (db_name in a custom scan is the playlist filename, ie: custom name).
I'd even suggest replacing db_name on a custom scan by doing a reverse lookup based on the core choosen to get a valid database. But unfortunately that won't work (there are cores that are multi system emulators that have more than one possible database, for instance a bunch of the Sony emulators are MS/GG/MD).
Expected behavior
To fix: when the manual scanner populates game entries with a custom scan it should always set core_path and core_name to default_core_path and default_core_name instead of DETECT. Custom can't guarantee that the last emulator core is appropriate to games except during a scan, so using DETECT to save space is wrong.
Steps to reproduce the bug
Use case:
- A user wants to make a thematic playlist with games from multiple systems, sees custom and thinks it's for that
- They scan two or more different system games directories with a custom name, overwrite to off and different emulator in each scan
- They try to load games from the new playlist and those not from the last scan use the emulator from the last scan. Hang or crash
Version/Commit
1.22.2
Bisect Results
No response
Present in the nightly version
Yes, this is reproduced in the nightly build
Platform & operating system
android 15
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 the manual scanner's handling of custom scans and the code that populates playlist game entries, then compare how DETECT differs from default_core_path and default_core_name. Done means entries from each scanned system retain the core path and name selected for that scan, including when multiple systems share one custom playlist.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100