fix: read each europe-only region tag in its code

Region tags must name the territory the code selects a file for. Each
entry tagged europe alone was read at its pin: PAL branches Australian
media reach now include oceania, and tags that follow a video standard,
a user setting or a hardcoded value are removed.
This commit is contained in:
Abdessamad Derraz committed 2026-10-17 16:13:31 +02:00
1 parent 9db68c9d52
commit f749ad38ff
10 files changed
+43 -52

No files matched your search

+9 -7
View File
@@ -140,29 +140,30 @@ files:
# --- Master System ---
- name: bios_U.sms
system: master-system
region: [north-america]
required: false
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
validation: [sha256]
description: "Master System BIOS (US)"
note: "Picked for NTSC-U, which the code gives every export cart outside its PAL list through the Boot/Prefer setting; the header does not tell US from Europe (mia/medium/master-system.cpp:54-63, desktop-ui/emulator/emulator.cpp:40-60)."
source_ref: "desktop-ui/emulator/master-system.cpp:14, mia/system/master-system.cpp:8 (//optional)"
- name: bios_J.sms
system: master-system
region: [japan]
region: [japan, south-korea]
required: false
sha256: "67846e26764bd862f19179294347f7353a4166b62ac4198a5ec32933b7da486e"
validation: [sha256]
description: "Master System BIOS (Japan)"
note: "Picked for NTSC-J, set when the header lacks the export region code 4 and for a hash list of Japanese and Korean carts (mia/medium/master-system.cpp:62-63, 285-464, 493-512)."
source_ref: "desktop-ui/emulator/master-system.cpp:15"
- name: bios_E.sms
system: master-system
region: [europe]
required: false
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
validation: [sha256]
description: "Master System BIOS (Europe), same binary as US"
note: "Picked for PAL, set by a hash list that also holds Korean and Australian releases or by the Boot/Prefer setting (mia/medium/master-system.cpp:54-275, desktop-ui/emulator/emulator.cpp:40-60)."
source_ref: "desktop-ui/emulator/master-system.cpp:16"
# --- Mega CD ---
@@ -187,11 +188,12 @@ files:
- name: bios_CD_E.bin
system: mega-cd
region: [europe]
region: [europe, oceania]
required: true
sha256: "fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb"
validation: [sha256]
description: "Mega CD BIOS (Europe)"
note: "Picked for PAL, set when the boot code matches the EU security block; the code has no other PAL branch for Australian discs (mia/medium/mega-cd.cpp:47-56, desktop-ui/emulator/mega-cd.cpp:70-74)."
source_ref: "desktop-ui/emulator/mega-cd.cpp:19"
# --- Mega LD (LaserActive SEGA PAC) ---
@@ -384,23 +386,23 @@ files:
# --- Saturn ---
- name: saturn_bios_U.bin
system: saturn
region: [north-america]
required: true
description: "Sega Saturn BIOS (US)"
note: "Never picked from the disc: mia tags every Saturn disc NTSC-J (mia/medium/saturn.cpp:42, desktop-ui/emulator/saturn.cpp:26-30)."
source_ref: "desktop-ui/emulator/saturn.cpp:14"
- name: saturn_bios_J.bin
system: saturn
region: [japan]
required: true
description: "Sega Saturn BIOS (Japan)"
note: "Picked for every disc: mia tags each Saturn disc NTSC-J without reading it (mia/medium/saturn.cpp:42, desktop-ui/emulator/saturn.cpp:26-30)."
source_ref: "desktop-ui/emulator/saturn.cpp:15"
- name: saturn_bios_E.bin
system: saturn
region: [europe]
required: true
description: "Sega Saturn BIOS (Europe)"
note: "Never picked from the disc: mia tags every Saturn disc NTSC-J (mia/medium/saturn.cpp:42, desktop-ui/emulator/saturn.cpp:26-30)."
source_ref: "desktop-ui/emulator/saturn.cpp:16"
# --- SFC subsystem ROMs (loaded as game cartridges, not firmware) ---
+2 -2
View File
@@ -80,12 +80,12 @@ files:
- name: "mpr-17933.bin"
system: sega-saturn
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
region: [north-america, europe, oceania, south-korea, asia-pal, brazil, latin-america]
required: true
size: 524288
validation: {core: [size], upstream: [size, sha256]}
sha256: "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f"
note: "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
note: "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. Disc area E maps to EU_PAL and the code has no Oceania area (disc.c:162-165). The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
source_ref: "mednafen/ss/ss.c:1847-1848 (region filename), mednafen/ss/ss.c:1867-1873 (open), mednafen/ss/ss.c:1961-1984 (size check, read), mednafen/ss/ss.c:1988 (sha256 for save states), libretro.c:1103 (default area)"
- name: "mpr-18811-mx.ic1"
+12 -24
View File
@@ -744,31 +744,28 @@ files:
path: MSX/msx-japanese.rom
system: microsoft-msx
description: "Japanese MSX BIOS"
region: [japan]
size: 32768
crc32: "ee229390"
required: false
note: "Alternative to msx.rom for Japanese region"
note: "Alternative to msx.rom for the Japan region, which the analyser never sets; only the user picks it (Analyser/Static/MSX/Target.hpp:34, Analyser/Static/MSX/StaticAnalyser.cpp:217-219)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:785-792"
- name: msx-american.rom
path: MSX/msx-american.rom
system: microsoft-msx
description: "American MSX BIOS"
region: [north-america]
size: 32768
required: false
note: "Alternative to msx.rom for American region"
note: "Alternative to msx.rom for the USA region, which the analyser sets whenever no tape is loaded (Analyser/Static/MSX/StaticAnalyser.cpp:217-219, Machines/MSX/MSX.cpp:250-259)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:793-800"
- name: msx-european.rom
path: MSX/msx-european.rom
system: microsoft-msx
description: "European MSX BIOS"
region: [europe]
size: 32768
required: false
note: "Alternative to msx.rom for European region"
note: "Alternative to msx.rom for the Europe region, which the analyser sets whenever a tape is loaded or the user picks (Analyser/Static/MSX/StaticAnalyser.cpp:217-219, Machines/MSX/MSX.cpp:261-269)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:801-808"
- name: disk.rom
@@ -1146,99 +1143,90 @@ files:
path: Vic20/characters-english.bin
system: commodore-vic20
description: "English-language VIC-20 character ROM"
region: [north-america, europe]
size: 4096
crc32: "83e032a6"
required: true
note: "Required for English region"
note: "Loaded for the default PAL and the NTSC targets, which the file name or TheC64 tags choose (Machines/Commodore/Vic-20/Vic20.cpp:325-333, Analyser/Static/Commodore/StaticAnalyser.cpp:350-380)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1226-1233"
- name: kernel-pal.bin
path: Vic20/kernel-pal.bin
system: commodore-vic20
description: "English-language PAL VIC-20 kernel ROM"
region: [europe]
size: 8192
crc32: "4be07cb4"
required: true
note: "Required for English PAL region"
note: "Default kernel, replaced by the NTSC one when the file name holds ntsc or the TheC64 tag tn (Analyser/Static/Commodore/Target.hpp:67, Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:325-329)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1234-1241"
- name: kernel-ntsc.bin
path: Vic20/kernel-ntsc.bin
system: commodore-vic20
description: "English-language NTSC VIC-20 kernel ROM"
region: [north-america]
size: 8192
crc32: "e5e7c174"
required: true
note: "Required for English NTSC region"
note: "Picked when the file name holds ntsc or the TheC64 tag tn (Analyser/Static/Commodore/StaticAnalyser.cpp:350-352, 375-377, Machines/Commodore/Vic-20/Vic20.cpp:330-333)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1242-1249"
- name: characters-danish.bin
path: Vic20/characters-danish.bin
system: commodore-vic20
description: "Danish VIC-20 character ROM"
region: [denmark]
size: 4096
crc32: "7fc11454"
required: false
note: "Required for Danish region"
note: "Required for the Danish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1250-1257"
- name: kernel-danish.bin
path: Vic20/kernel-danish.bin
system: commodore-vic20
description: "Danish VIC-20 kernel ROM"
region: [denmark]
size: 8192
crc32: "02adaf16"
required: false
note: "Required for Danish region"
note: "Required for the Danish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1258-1265"
- name: characters-japanese.bin
path: Vic20/characters-japanese.bin
system: commodore-vic20
description: "Japanese VIC-20 character ROM"
region: [japan]
size: 4096
crc32: "fcfd8a4b"
required: false
note: "Required for Japanese region"
note: "Required for the Japanese region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1266-1273"
- name: kernel-japanese.bin
path: Vic20/kernel-japanese.bin
system: commodore-vic20
description: "Japanese VIC-20 kernel ROM"
region: [japan]
size: 8192
crc32: "336900d7"
required: false
note: "Required for Japanese region"
note: "Required for the Japanese region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1274-1281"
- name: characters-swedish.bin
path: Vic20/characters-swedish.bin
system: commodore-vic20
description: "Swedish VIC-20 character ROM"
region: [sweden]
size: 4096
crc32: "d808551d"
required: false
note: "Required for Swedish region"
note: "Required for the Swedish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1282-1289"
- name: kernel-swedish.bin
path: Vic20/kernel-swedish.bin
system: commodore-vic20
description: "Swedish VIC-20 kernel ROM"
region: [sweden]
size: 8192
crc32: "b2a60662"
required: false
note: "Required for Swedish region"
note: "Required for the Swedish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1290-1297"
# -------------------------------------------------------
+3 -4
View File
@@ -47,9 +47,9 @@ files:
- name: bios_CD_E.bin
system: sega-megacd
region: [europe]
region: [europe, oceania]
required: true
note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE."
note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE, set by security byte 0x64 at 0x20b, the only PAL branch for Australian discs (core/loadrom.c:1065-1069)."
source_ref: "core/loadrom.c:412"
- name: bios_CD_J.bin
@@ -71,9 +71,8 @@ files:
- name: bios_E.sms
system: sega-mastersystem
region: [europe]
required: false
note: "Master System (PAL) boot ROM. Snail maze / Sonic built in."
note: "Master System (PAL) boot ROM. Snail maze / Sonic built in. REGION_EUROPE comes only from CRC lists of Codemasters and PAL-timing games, Brazilian ones included, or the PAL option (core/cart_hw/sms_cart.c:167-171, 245-264, core/loadrom.c:1161-1164)."
source_ref: "core/loadrom.c:514"
- name: bios_J.sms
+3 -2
View File
@@ -34,9 +34,10 @@ files:
- name: bios_CD_E.bin
system: sega-megacd
region: [europe]
region: [europe, oceania]
required: true
size: 131072
note: "Loaded for REGION_EUROPE, set by security byte 0x64 at 0x20b, the only PAL branch for Australian discs (core/loadrom.c:1059-1063)."
source_ref: "core/loadrom.c:411"
- name: bios_CD_J.bin
@@ -54,8 +55,8 @@ files:
- name: bios_E.sms
system: sega-mastersystem
region: [europe]
required: false
note: "REGION_EUROPE comes only from CRC lists of Codemasters and PAL-timing games, Brazilian ones included, or the PAL option (core/cart_hw/sms_cart.c:163-167, 239-258, core/loadrom.c:1155-1158)."
source_ref: "core/loadrom.c:515"
- name: bios_J.sms
+2 -1
View File
@@ -87,11 +87,12 @@ files:
- name: "bios_CD_E.bin"
system: sega-megacd
description: "Mega CD BIOS (Europe)"
region: [europe]
region: [europe, oceania]
required: true
size: 131072
validation: [size]
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (eu_bios_path), backend/segacd-core/src/api.rs:77-79"
note: "Selected when the header area at 0x1F0 holds E and not U or J, as Australian discs do (backend/genesis-components/src/cartridge.rs:361-376, backend/segacd-core/src/api.rs:339-369)."
- name: "bios_CD_J.bin"
system: sega-megacd
+1 -1
View File
@@ -158,8 +158,8 @@ files:
- name: "epr-17954a.ic8"
archive: stvbios.zip
system: sega-stv
region: [europe]
required: false
note: "Picked by the kronos_stv_favorite_region option, Europe by default, among the BIOS regions the set accepts (yabause/src/ctrl/src/stv.c:2435, 2562-2564)."
size: 524288
crc32: "f7722da3"
validation: [crc32]
+1 -1
View File
@@ -124,7 +124,7 @@ files:
- name: bios_CD_E.bin
system: sega-megacd
region: [europe]
region: [europe, oceania]
required: true
agnostic: true
size: 131072
+5 -5
View File
@@ -322,13 +322,13 @@ files:
- name: "mpr-17933.bin"
system: sega-saturn
description: "Saturn BIOS (North America and Europe)"
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
region: [north-america, europe, oceania, south-korea, asia-pal, brazil, latin-america]
required: true
size: 524288
sha256: "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f"
validation: [size, sha256]
source_ref: "ss/ss.cpp:1431-1434, 1437-1445, 2442, 1461"
note: "Default of ss.bios_na_eu."
note: "Default of ss.bios_na_eu, read for every area but Japan and Asia NTSC; disc area E maps to EU_PAL and no Oceania area exists (ss/ss.cpp:1096, 1431-1434)."
- name: "sega1003.bin"
system: sega-saturn
@@ -355,13 +355,13 @@ files:
- name: "sega_100a.bin"
system: sega-saturn
description: "Saturn BIOS v1.00a (North America and Europe)"
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
region: [north-america, europe, oceania, south-korea, asia-pal, brazil, latin-america]
required: false
size: 524288
sha256: "87293093fad802fcff31fcab427a16caff1acbc5184899b8383b360fd58efb73"
validation: [size, sha256]
source_ref: "ss/ss.cpp:1460, 1447-1492"
note: "Recognised alternative for ss.bios_na_eu."
note: "Recognised alternative for ss.bios_na_eu, read for every area but Japan and Asia NTSC; disc area E maps to EU_PAL and no Oceania area exists (ss/ss.cpp:1096, 1431-1434)."
- name: "epr-20091.ic8"
system: sega-stv
@@ -391,7 +391,7 @@ files:
size: 524288
validation: [size]
source_ref: "ss/ss.cpp:1420-1428, 1437-1445, 2446"
note: "Default of ss.bios_stv_eu."
note: "Default of ss.bios_stv_eu, read for area EU_PAL, which only the ST-V database (Critter Crusher) or ss.region_default=eu sets (ss/ss.cpp:1424-1425, 1674-1676, ss/db.cpp:644-645)."
- name: "mpr-18811-mx.ic1"
system: sega-saturn
+5 -5
View File
@@ -108,17 +108,17 @@ files:
- name: "eu_mcd2_9306.bin"
system: sega-megacd
variant_group: "mega-cd-bios"
region: [europe]
region: [europe, oceania]
priority: 1
required: true
size: 131072
note: "EU Mega CD Model 2 BIOS (June 1993). First in EU search order."
note: "EU Mega CD Model 2 BIOS (June 1993). First in EU search order, used when security byte 0x20b is 0x64, the only PAL branch for Australian discs (pico/media.c:243-247, platform/libretro/libretro.c:1306-1308)."
source_ref: "platform/libretro/libretro.c:1276"
- name: "eu_mcd2_9303.bin"
system: sega-megacd
variant_group: "mega-cd-bios"
region: [europe]
region: [europe, oceania]
priority: 2
required: false
size: 131072
@@ -128,7 +128,7 @@ files:
- name: "eu_mcd1_9210.bin"
system: sega-megacd
variant_group: "mega-cd-bios"
region: [europe]
region: [europe, oceania]
priority: 3
required: false
size: 131072
@@ -138,7 +138,7 @@ files:
- name: "bios_CD_E.bin"
system: sega-megacd
variant_group: "mega-cd-bios"
region: [europe]
region: [europe, oceania]
priority: 4
required: false
size: 131072