fix: a platform's own build answers its core name

Recalbox compiles uae4all from Chips-fr/uae4all-rpi, a libretro core, while RetroPie's uae4all package is the standalone uae4all2. A profile whose built_by names the platform now wins the name there, and a bare key match still decides everywhere else.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 10:29:47 +02:00
1 parent cd777848aa
commit 0938c30b65
2 files changed
+30 -1

No files matched your search

+13 -1
View File
@@ -2245,10 +2245,22 @@ def resolve_platform_cores(
elif isinstance(cores_config, list):
core_set = {str(c) for c in cores_config}
index = upstream_profile_index(profiles)
platform = str(config.get("_key") or "")
def designated(name: str) -> str | None:
# A build the platform compiles itself (built_by) is what its
# name means there: Recalbox's uae4all is Chips-fr/uae4all-rpi,
# RetroPie's the standalone uae4all2 under the same name.
own = sorted(
p for p in index.get(name, ())
if platform and platform in (profiles[p].get("built_by") or [])
)
return own[0] if own else preferred_profile(index, name)
result = {
profile
for c in core_set
if (profile := preferred_profile(index, c)) is not None
if (profile := designated(c)) is not None
}
# A name the platform launches both ways designates its libretro
# build too. Batocera, Recalbox and RetroBat run pcsx2 standalone and