mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-05 09:33:52 -06:00
fix: beetle_psx boots without its region BIOS
When the region's file is absent, libretro.c (7fea57a5) finds no name and no matching sha1, then maps its built-in OpenBIOS (libretro.c:3425-3511). The region runs show it: each region's disc reaches its game with only the other regions' BIOS staged, under the oracle's reference frames (records 2026-10-27-55dd1e4943c4, 13be0e68b799, 33780d47efdf). scph5500.bin, scph5501.bin and scph5502.bin are required: false, hle_fallback stays true. Written through campaign_profiles.
This commit is contained in:
1 parent
f2f890602d
commit
499e5faa7d
3 files changed
+54
-6
No files matched your search
@@ -176,6 +176,37 @@ class ContentList(unittest.TestCase):
|
||||
self.assertFalse(missing, f"{system}: no game for {sorted(missing)}")
|
||||
|
||||
|
||||
class RequiredFromTheRegionRuns(unittest.TestCase):
|
||||
def test_beetle_psx_boots_each_region_without_its_bios(self) -> None:
|
||||
"""libretro.c maps its built-in OpenBIOS when the region's file is
|
||||
absent: the evidence of required: false is a record where the file
|
||||
was not staged and the oracle judged the run a boot."""
|
||||
import json
|
||||
|
||||
import yaml
|
||||
|
||||
profile = yaml.safe_load((ROOT / "emulators" / "beetle_psx.yml").read_text(encoding="utf-8"))
|
||||
records = {}
|
||||
for line in (ROOT / "measurements" / "beetle_psx.jsonl").read_text(encoding="utf-8").splitlines():
|
||||
record = json.loads(line)
|
||||
records[record["id"]] = record
|
||||
regional = [e for e in profile["files"] if e["name"] in ("scph5500.bin", "scph5501.bin", "scph5502.bin")]
|
||||
self.assertEqual(len(regional), 3)
|
||||
for entry in regional:
|
||||
with self.subTest(entry=entry["name"]):
|
||||
self.assertIs(entry["required"], False)
|
||||
self.assertIn("3425-3511", entry["source_ref"])
|
||||
ids = entry["evidence"]["required"]
|
||||
self.assertTrue(ids)
|
||||
for rid in ids:
|
||||
record = records[rid]
|
||||
self.assertEqual(record["record_version"], 4)
|
||||
variant = record["variants"][0]
|
||||
self.assertNotIn(entry["name"], variant["system_files"])
|
||||
self.assertEqual(variant["verdict"], "boots")
|
||||
self.assertIn("game", variant["verdict_evidence"].get("stages", []))
|
||||
|
||||
|
||||
class SitePages(unittest.TestCase):
|
||||
def test_region_section_links_every_record(self) -> None:
|
||||
import sitemeasurements as sm
|
||||
|
||||
Reference in new issue
Block a user