fix: tag the US SMS boot ROM for Europe too

This commit is contained in:
Abdessamad Derraz committed 2026-10-18 13:59:15 +02:00
1 parent 768f9b583f
commit 57e9df6e1a
11 files changed
+40 -4

No files matched your search

+2 -2
View File
@@ -64,9 +64,9 @@ files:
# -------------------------------------------------------
- name: bios_U.sms
system: sega-mastersystem
region: [north-america]
region: [north-america, europe]
required: false
note: "Master System (NTSC-U) boot ROM. Snail maze game built in."
note: "Master System (NTSC-U) boot ROM. Snail maze game built in. REGION_USA is the default of sms_cart_region_detect for any export header outside the PAL CRC list, so European cartridges load it too (core/cart_hw/sms_cart.c:831-874)."
source_ref: "core/loadrom.c:511"
- name: bios_E.sms
+2 -1
View File
@@ -49,8 +49,9 @@ files:
- name: bios_U.sms
system: sega-mastersystem
region: [north-america]
region: [north-america, europe]
required: false
note: "REGION_USA is the default of sms_cart_region_detect for any export header outside the PAL CRC list, so European cartridges load it too (core/cart_hw/sms_cart.c:863-864)."
source_ref: "core/loadrom.c:512"
- name: bios_E.sms
+1
View File
@@ -131004,6 +131004,7 @@
"genesis_plus_gx_wide"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+1
View File
@@ -8267,6 +8267,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+1
View File
@@ -9081,6 +9081,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+2
View File
@@ -5602,6 +5602,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_system_groups": [
@@ -39284,6 +39285,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+1
View File
@@ -9200,6 +9200,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+1
View File
@@ -78082,6 +78082,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+1
View File
@@ -10145,6 +10145,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_groups": [
+2 -1
View File
@@ -5,7 +5,7 @@
"platform": "romm",
"display_name": "RomM",
"version": "1.0",
"generated": "2026-10-18T11:04:01Z",
"generated": "2026-10-18T11:24:19Z",
"base_destination": "bios",
"detect": [
{
@@ -3552,6 +3552,7 @@
"sega-master-system"
],
"regions": [
"europe",
"north-america"
],
"region_system_groups": [
+26
View File
@@ -937,5 +937,31 @@ class UnknownRegionSaysWhatToType(unittest.TestCase):
self.assertIn("Short forms:", str(caught.exception))
class GenesisPlusGxUsBiosServesEurope(unittest.TestCase):
"""sms_cart_region_detect returns REGION_USA for any export header
outside the PAL CRC list, European cartridges included, and REGION_USA
loads bios_U.sms. Tagged north-america only, --region eu,jp dropped it."""
def test_eu_jp_keeps_bios_u(self):
from pathlib import Path
from common import load_emulator_profiles
from region import build_region_index, parse_requested, resolve_region_drops
root = Path(__file__).resolve().parents[1]
profiles = load_emulator_profiles(str(root / "emulators"))
for name in ("genesis_plus_gx", "genesis_plus_gx_wide"):
with self.subTest(profile=name):
index = build_region_index({name: profiles[name]})
group = {"sega-mastersystem": [
(f"bios/{n}", n) for n in ("bios_U.sms", "bios_E.sms", "bios_J.sms")
]}
drops = resolve_region_drops(
group, index, parse_requested("eu,jp"), None
)
self.assertNotIn("bios/bios_U.sms", drops)
if __name__ == "__main__":
unittest.main()