diff --git a/emulators/pcsx_rearmed.yml b/emulators/pcsx_rearmed.yml index 6852e0d3..5494ba14 100644 --- a/emulators/pcsx_rearmed.yml +++ b/emulators/pcsx_rearmed.yml @@ -36,13 +36,13 @@ files: - name: "scph5501.bin" description: "SCPH-5501 (v3.0 11-18-96 A)" - region: [north-america] + region: [north-america, latin-america] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[1])" - note: "Preferred US BIOS, searched first by exact filename." + note: "Preferred US BIOS, searched first by exact filename. The US slot is the detector's default: a disc takes it for both America licence strings and for any licence that is neither \"Inc.\" (JP) nor \"Euro pe\" (EU), and content without a disc boots it too (libpcsxcore/misc.c:422-453, frontend/libretro.c:2167-2171)." # -- Region: Europe (PSX_REGION_EU = 2) -- @@ -70,7 +70,7 @@ files: - name: "scph101.bin" description: "SCPH-101 (v4.4 03-24-00 A) - PSone US" - region: [north-america] + region: [north-america, latin-america] size: 524288 required: false hle_fallback: true @@ -80,7 +80,7 @@ files: - name: "scph7001.bin" description: "SCPH-7001 (v4.1 12-16-97 A)" - region: [north-america] + region: [north-america, latin-america] size: 524288 required: false hle_fallback: true @@ -89,7 +89,7 @@ files: - name: "scph1001.bin" description: "SCPH-1001 (v2.2 12-04-95 A)" - region: [north-america] + region: [north-america, latin-america] size: 524288 required: false hle_fallback: true diff --git a/tests/test_region.py b/tests/test_region.py index 9ed35589..3c544724 100644 --- a/tests/test_region.py +++ b/tests/test_region.py @@ -889,6 +889,8 @@ class RegionalRequestsKeepWhatTheCodeLoads(unittest.TestCase): ("ace-dl", ["france"], "private/firmware/Amstrad_s4.cpr"), ("duckstation", ["brazil"], "scph5501.bin"), ("duckstation", ["south-korea"], "scph5500.bin"), + ("pcsx_rearmed", ["brazil", "japan"], "scph5501.bin"), + ("pcsx_rearmed", ["brazil", "japan"], "scph1001.bin"), ("blastem", ["australia", "north-america"], "bios_CD_E.bin"), ("kega-fusion", ["australia", "north-america"], "eu_mcd1_9210.bin"), ) @@ -1118,6 +1120,24 @@ class MegaCdEuropeServesOceania(unittest.TestCase): self.assertEqual(narrow, []) +class PcsxRearmedUsSlotIsTheDefault(unittest.TestCase): + """CheckCdrom sets PSX_REGION_US before reading the licence and only + "Inc." or "Euro pe" move it (libpcsxcore/misc.c:422-453): a disc of any + other market boots the US slot.""" + + def test_every_us_slot_bios_includes_latin_america(self): + from common import load_emulator_profiles + + tagged = [ + f for f in load_emulator_profiles("emulators")["pcsx_rearmed"]["files"] + if "north-america" in (f.get("region") or []) + ] + self.assertEqual(len(tagged), 4) + for entry in tagged: + with self.subTest(name=entry["name"]): + self.assertIn("latin-america", entry["region"]) + + class FusionSmsExportBiosFollowsTheSetting(unittest.TestCase): """Kega Fusion tells a Japanese Master System cart from an export one by the header, then picks USA or EUR from its CountryOrder setting or a CRC32