mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: standalone emulator support for batocera and multi-platform name mapping
resolve_platform_cores() builds reverse index from profile cores: field, fixing 17 name mismatches across Batocera, RetroBat, and Recalbox (genesisplusgx, pce_fast, pcfx, vb, mame078plus, vice cores, etc.). standalone_path field on file entries + standalone_cores on platform YAMLs enable mode-aware pack generation. find_undeclared_files() uses standalone_path for cores the platform runs standalone, filters by mode: libretro/standalone per file. batocera.yml gains standalone_cores (92 entries from configgen-defaults). generate_readme.py dynamically lists platforms from registry. 3 profiles updated for standalone type/path (mame, hatari, mupen64plus_next). 78 E2E tests pass, pipeline verified.
This commit is contained in:
@@ -508,11 +508,20 @@ def resolve_platform_cores(
|
||||
}
|
||||
|
||||
if isinstance(cores_config, list):
|
||||
core_set = set(cores_config)
|
||||
core_set = {str(c) for c in cores_config}
|
||||
# Build reverse index: platform core name -> profile name
|
||||
# Uses profile filename (dict key) + all names in cores: field
|
||||
core_to_profile: dict[str, str] = {}
|
||||
for name, p in profiles.items():
|
||||
if p.get("type") == "alias":
|
||||
continue
|
||||
core_to_profile[name] = name
|
||||
for core_name in p.get("cores", []):
|
||||
core_to_profile[str(core_name)] = name
|
||||
return {
|
||||
name for name in profiles
|
||||
if name in core_set
|
||||
and profiles[name].get("type") != "alias"
|
||||
core_to_profile[c]
|
||||
for c in core_set
|
||||
if c in core_to_profile
|
||||
}
|
||||
|
||||
# Fallback: system ID intersection
|
||||
|
||||
Reference in New Issue
Block a user