From 75f4542ea813e14630baaa59fd206d4baf1314ca Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:51:34 +0200 Subject: [PATCH] refactor: scope validation to a platform's cores --- scripts/generate_pack.py | 15 +++++++++------ scripts/verify.py | 12 ++++++++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/scripts/generate_pack.py b/scripts/generate_pack.py index d6d18107..847d8883 100644 --- a/scripts/generate_pack.py +++ b/scripts/generate_pack.py @@ -597,14 +597,17 @@ def generate_pack( file_status: dict[str, str] = {} file_reasons: dict[str, str] = {} - # Build emulator-level validation index (same as verify.py) - validation_index = {} - if emu_profiles: - validation_index = _build_validation_index(emu_profiles) - - # Filter systems by target if specified + # Build emulator-level validation index from the platform's own + # emulators (same scope as verify.py) from common import resolve_platform_cores + validation_index = {} + if emu_profiles: + validation_index = _build_validation_index( + {name: emu_profiles[name] for name in resolve_platform_cores(config, emu_profiles)} + ) + + # Filter systems by target if specified plat_cores = ( resolve_platform_cores(config, emu_profiles or {}) if target_cores else None ) diff --git a/scripts/verify.py b/scripts/verify.py index 00e61245..1d3b5db2 100644 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -811,10 +811,18 @@ def verify_platform( for f in profile.get("files", []): if f.get("hle_fallback"): hle_index[f.get("name", "")] = True - validation_index = _build_validation_index(profiles) + # Ground truth comes from the emulators the platform runs. A standalone + # profile that loads a same-named file of its own (ZEsarUX's 48K + # cpc6128.rom against cap32's 32K one) has nothing to say about a + # RetroArch pack. + plat_cores = resolve_platform_cores(config, profiles) + validation_index = _build_validation_index( + {name: profiles[name] for name in plat_cores} + ) # Filter systems by target - plat_cores = resolve_platform_cores(config, profiles) if target_cores else None + if not target_cores: + plat_cores = None verify_systems = filter_systems_by_target( config.get("systems", {}), profiles,