From 4ca4592f655c0dc7495bc23f9dfaee3d8b1dbc9f Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Tue, 6 Oct 2026 00:26:36 +0200 Subject: [PATCH] fix: group variant slots across their systems --- emulators/picodrive.yml | 12 ++++++++++++ scripts/packextras.py | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/emulators/picodrive.yml b/emulators/picodrive.yml index 96c0eff0..08d60eb5 100644 --- a/emulators/picodrive.yml +++ b/emulators/picodrive.yml @@ -64,6 +64,7 @@ files: # ------------------------------------------------------- - name: "us_scd2_9306.bin" system: sega-segacd + variant_group: "mega-cd-bios" region: [north-america] priority: 1 required: true @@ -73,6 +74,7 @@ files: - name: "SegaCDBIOS9303.bin" system: sega-segacd + variant_group: "mega-cd-bios" region: [north-america] priority: 2 required: false @@ -82,6 +84,7 @@ files: - name: "us_scd1_9210.bin" system: sega-segacd + variant_group: "mega-cd-bios" region: [north-america] priority: 3 required: false @@ -91,6 +94,7 @@ files: - name: "bios_CD_U.bin" system: sega-segacd + variant_group: "mega-cd-bios" region: [north-america] priority: 4 required: false @@ -103,6 +107,7 @@ files: # ------------------------------------------------------- - name: "eu_mcd2_9306.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [europe] priority: 1 required: true @@ -112,6 +117,7 @@ files: - name: "eu_mcd2_9303.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [europe] priority: 2 required: false @@ -121,6 +127,7 @@ files: - name: "eu_mcd1_9210.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [europe] priority: 3 required: false @@ -130,6 +137,7 @@ files: - name: "bios_CD_E.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [europe] priority: 4 required: false @@ -142,6 +150,7 @@ files: # ------------------------------------------------------- - name: "jp_mcd2_921222.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [japan] priority: 1 required: true @@ -151,6 +160,7 @@ files: - name: "jp_mcd1_9112.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [japan] priority: 2 required: false @@ -160,6 +170,7 @@ files: - name: "jp_mcd1_9111.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [japan] priority: 3 required: false @@ -169,6 +180,7 @@ files: - name: "bios_CD_J.bin" system: sega-megacd + variant_group: "mega-cd-bios" region: [japan] priority: 4 required: false diff --git a/scripts/packextras.py b/scripts/packextras.py index 1e4d1f86..239d9a7d 100644 --- a/scripts/packextras.py +++ b/scripts/packextras.py @@ -611,8 +611,15 @@ def platform_region_groups( ) ] = dest variant = extra.get("variant_group") - for sys_id in _extra_system_ids(extra) or ["_extras"]: - group_id = f"{sys_id}:variant:{variant}" if variant else sys_id + if variant: + # A variant group is one slot of one core, whatever system each + # member is filed under: PicoDrive files its US Mega CD BIOS under + # sega-segacd and the EU/JP ones under sega-megacd, and find_bios + # picks one of the twelve. Keyed as emulator mode keys it. + group_ids = [f"{extra.get('source_emulator', '')}:variant:{variant}"] + else: + group_ids = _extra_system_ids(extra) or ["_extras"] + for group_id in group_ids: groups.setdefault(group_id, []).append((dest, name)) return groups, extra_dests