Is there an existing issue for this?
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
Is there an existing issue for this?
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:
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