fix: index regions over the platform's own cores

This commit is contained in:
Abdessamad Derraz committed 2026-10-16 14:17:20 +02:00
1 parent be7a357999
commit f9a263f11c
5 files changed
+72 -4

No files matched your search

+6 -2
View File
@@ -474,7 +474,9 @@ def _select_variants(
required_only=required_only,
)
if regions:
region_index = region_mod.build_region_index(emu_profiles or {})
region_index = region_mod.platform_region_index(
config, emu_profiles or {}, target_cores
)
region_drops = region_mod.resolve_region_drops(
region_groups, region_index, regions
)
@@ -3366,7 +3368,9 @@ def _manifest_selection(
required_only=required_only,
extras_out=extras,
)
region_index = region_mod.build_region_index(emu_profiles)
region_index = region_mod.platform_region_index(
config, emu_profiles, target_cores
)
drops = (
region_mod.resolve_region_drops(region_groups, region_index, regions)
if regions
+3 -1
View File
@@ -572,7 +572,9 @@ def verify_pack_against_platform(
region_drops: set[str] = set()
if regions:
region_index = region_mod.build_region_index(emu_profiles)
region_index = region_mod.platform_region_index(
config, emu_profiles, target_cores
)
region_groups, _extra_dests = platform_region_groups(
config,
expected_systems,
+16
View File
@@ -125,6 +125,22 @@ def region_tag(requested: list[str]) -> str:
)
def platform_region_index(
config: dict, profiles: dict, target_cores: set[str] | None = None
) -> dict[str, dict]:
"""The region index of the emulators a platform runs, nothing else.
Built over every profile, an emulator foreign to the platform voided the
filter: Pizza Boy SC, an Android app, declares bios_CD_E.bin without a
region, so the Genesis Plus GX and PicoDrive tags never counted and
`--region us` kept both CD BIOSes in the RetroArch pack.
"""
from common import resolve_platform_cores
cores = resolve_platform_cores(config, profiles, target_cores=target_cores)
return build_region_index({n: profiles[n] for n in cores if n in profiles})
def build_region_index(profiles: dict) -> dict[str, dict]:
"""Build a region lookup from emulator profiles.
+3 -1
View File
@@ -973,7 +973,9 @@ def verify_platform(
target_cores=target_cores,
)
region_drops = region_mod.resolve_region_drops(
region_groups, region_mod.build_region_index(profiles), regions
region_groups,
region_mod.platform_region_index(config, profiles, target_cores),
regions,
)
# A destination two systems declare with two hashes ships one file, the