diff --git a/emulators/pcsx_rearmed.yml b/emulators/pcsx_rearmed.yml index 92fd9f7ef..508119e0a 100644 --- a/emulators/pcsx_rearmed.yml +++ b/emulators/pcsx_rearmed.yml @@ -33,8 +33,8 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[0])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[0]), source frontend/libretro.c:3604-3680 (try_use_bios)" note: "Preferred JP BIOS, searched first by exact filename." # -- Region: North America (PSX_REGION_US = 0) -- @@ -45,11 +45,12 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[1])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[1]), source frontend/libretro.c:3604-3680 (try_use_bios)" 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)." evidence: hle_fallback: ["2026-10-27-82bf6de00b8a", "2026-10-27-1d4eb1daebe5"] + validation: ["2026-10-27-1d4eb1daebe5", "2026-10-27-b43c5feca378"] # -- Region: Europe (PSX_REGION_EU = 2) -- @@ -59,8 +60,8 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[2])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[2]), source frontend/libretro.c:3604-3680 (try_use_bios)" note: "Preferred EU BIOS, searched first by exact filename." # -- Fallback BIOS filenames (searched in order after scph550x) -- @@ -71,8 +72,8 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[3]), source frontend/libretro.c:3654-3669 (try_use_bios region guess)" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[3]), source frontend/libretro.c:3604-3680 (try_use_bios, region guess at 3654-3669)" note: "The core reads the region out of the image: bytes 0x7ff51 are ' J' in this dump, so it takes the JP slot (' E' takes EU, anything else US), one image per slot, first found kept. The disc licence picks the slot at boot (Config.Bios[Config.PsxRegion]), and a US or EU disc only reaches this file when its own slot is empty. Must be 512 KB." - name: "scph101.bin" @@ -81,11 +82,12 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[4])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[4]), source frontend/libretro.c:3604-3680 (try_use_bios)" note: "PSone slim model." evidence: hle_fallback: ["2026-10-27-82bf6de00b8a", "2026-10-27-1d4eb1daebe5"] + validation: ["2026-10-27-1d4eb1daebe5", "2026-10-27-f681ea946c3d"] - name: "scph7001.bin" description: "SCPH-7001 (v4.1 12-16-97 A)" @@ -93,10 +95,11 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[5])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[5]), source frontend/libretro.c:3604-3680 (try_use_bios)" evidence: hle_fallback: ["2026-10-27-82bf6de00b8a", "2026-10-27-1d4eb1daebe5"] + validation: ["2026-10-27-1d4eb1daebe5", "2026-10-27-1a14651aeda0"] - name: "scph1001.bin" description: "SCPH-1001 (v2.2 12-04-95 A)" @@ -104,11 +107,12 @@ files: size: 524288 required: false hle_fallback: true - validation: [size] - source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[6])" + validation: ["size", "signature"] + source_ref: "source frontend/libretro.c:3864-3867 (listed_bios[6]), source frontend/libretro.c:3604-3680 (try_use_bios)" note: "Original US model. Last in the explicit filename search list." evidence: hle_fallback: ["2026-10-27-82bf6de00b8a", "2026-10-27-1d4eb1daebe5"] + validation: ["2026-10-27-1d4eb1daebe5", "2026-10-27-ba3e1259ac73"] # -- Dynamic scan fallback -- # After exhausting listed_bios[], the core calls find_any_bios() which scans diff --git a/measurements/findings.jsonl b/measurements/findings.jsonl index aecc0676b..36e5e56a8 100644 --- a/measurements/findings.jsonl +++ b/measurements/findings.jsonl @@ -28,3 +28,7 @@ {"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"mednafen_psx_hw_libretro.so","library_version":"0.9.44.1 7fea57a","sha256":"d16c889c9f12bd3265edc3c9d4b0e6e24c1f244d1d8d475235f6a74e65e5b10b"},"emulator":"beetle_psx","evidence":["2026-10-27-ae6d4db96e73","2026-10-27-c1f4aa5d47cd"],"field":"validation","file":"scph5501.bin","found_at":"2026-10-28T07:16:45+00:00","id":"2026-10-28-7df447e3370d","key":"beetle_psx/sony-playstation/scph5501.bin/validation","profile_says":["sha1"],"reason":"firmware_is_present computes the SHA1, logs 'Firmware found but has invalid SHA1' and returns true (libretro.c:853-860). The load reads the file whatever its size and only logs a size that is neither 512 KB nor 1 MB (libretro.c:3425-3502). The check is declared with on_mismatch: warn.","rule":"validation_contradicted","run_shows":{"content":false,"size":false},"schema_version":1,"statement":"the core does not check the content and does not check the size of scph5501.bin: a same-size file of zeros is run, the profile declares validation ['sha1']","status":"applied","system":"sony-playstation"} {"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"mednafen_psx_hw_libretro.so","library_version":"0.9.44.1 7fea57a","sha256":"d16c889c9f12bd3265edc3c9d4b0e6e24c1f244d1d8d475235f6a74e65e5b10b"},"emulator":"beetle_psx","evidence":["2026-10-27-ae6d4db96e73"],"field":"required","file":"scph5501.bin","found_at":"2026-10-28T07:17:02+00:00","id":"2026-10-28-9c0f49d04c7d","key":"beetle_psx/sony-playstation/scph5501.bin/required","profile_says":true,"reason":"Applied by hand in 499e5faa7: required false. When firmware_is_present finds no region BIOS the load copies the built-in OpenBIOS into BIOS ROM (libretro.c:3425-3428, 3505-3511), so the core boots without the file.","rule":"boots_without_file","run_shows":false,"schema_version":1,"statement":"the profile says scph5501.bin is required, and the core boots without it. The table settles hle_fallback from this run, not required","status":"applied","system":"sony-playstation"} {"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"swanstation_libretro.so","library_version":"1.0.0 631f0fb","sha256":"fc65bb2d662c3ad762b611a62ac578f78efd260431d3b8c090f0eb40887a77ea"},"emulator":"swanstation","evidence":["2026-10-27-f9363c9e87f6","2026-10-27-97e674b2e56e"],"field":"validation","file":"scph5501.bin","found_at":"2026-10-28T07:17:48+00:00","id":"2026-10-28-15b35fbe2651","key":"swanstation/sony-playstation/scph5501.bin/validation","profile_says":["size","md5"],"reason":"With the default option the core opens scph5501.bin by name through LoadImageFromFile, which checks only the size (host_interface.cpp:124-133, bios.cpp:82-105, libretro_core_options.h:110-123). The md5 is read only by the directory scan (host_interface.cpp:136-193) and the Fast Boot patch (bios.cpp:142-146). validation: [size] and found_by: name.","rule":"validation_contradicted","run_shows":{"content":false,"size":true},"schema_version":1,"statement":"the core does not check the content and checks the size of scph5501.bin: a same-size file of zeros is run, the profile declares validation ['md5', 'size']","status":"applied","system":"sony-playstation"} +{"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"pcsx_rearmed_libretro.so","library_version":"r26 c881679","sha256":"bfda3f667f8ea8c2f5cc939b970628174b6f491ad32d7f6b143728322df46af6"},"emulator":"pcsx_rearmed","evidence":["2026-10-27-1d4eb1daebe5","2026-10-27-b43c5feca378"],"field":"validation","file":"scph5501.bin","found_at":"2026-10-28T07:18:33+00:00","id":"2026-10-28-6c2748f826b0","key":"pcsx_rearmed/sony-playstation/scph5501.bin/validation","profile_says":["size"],"reason":"try_use_bios skips a listed file that is not 512 KB (frontend/libretro.c:3632) and one whose bytes 1-4 are not 00 08 3c 3f and that lacks \"PS compatible\" at 0x12c (frontend/libretro.c:3646-3651). Zeros fail that header check, so validation: [size, signature].","rule":"validation_contradicted","run_shows":{"content":true,"size":null},"schema_version":1,"statement":"the core checks the content of scph5501.bin: a same-size file of zeros is refused, the profile declares validation ['size']","status":"applied","system":"sony-playstation"} +{"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"pcsx_rearmed_libretro.so","library_version":"r26 c881679","sha256":"bfda3f667f8ea8c2f5cc939b970628174b6f491ad32d7f6b143728322df46af6"},"emulator":"pcsx_rearmed","evidence":["2026-10-27-1d4eb1daebe5","2026-10-27-f681ea946c3d"],"field":"validation","file":"scph101.bin","found_at":"2026-10-28T07:18:33+00:00","id":"2026-10-28-729308613711","key":"pcsx_rearmed/sony-playstation/scph101.bin/validation","profile_says":["size"],"reason":"try_use_bios skips a listed file that is not 512 KB (frontend/libretro.c:3632) and one whose bytes 1-4 are not 00 08 3c 3f and that lacks \"PS compatible\" at 0x12c (frontend/libretro.c:3646-3651). Zeros fail that header check, so validation: [size, signature].","rule":"validation_contradicted","run_shows":{"content":true,"size":null},"schema_version":1,"statement":"the core checks the content of scph101.bin: a same-size file of zeros is refused, the profile declares validation ['size']","status":"applied","system":"sony-playstation"} +{"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"pcsx_rearmed_libretro.so","library_version":"r26 c881679","sha256":"bfda3f667f8ea8c2f5cc939b970628174b6f491ad32d7f6b143728322df46af6"},"emulator":"pcsx_rearmed","evidence":["2026-10-27-1d4eb1daebe5","2026-10-27-1a14651aeda0"],"field":"validation","file":"scph7001.bin","found_at":"2026-10-28T07:18:33+00:00","id":"2026-10-28-907aa65be6a3","key":"pcsx_rearmed/sony-playstation/scph7001.bin/validation","profile_says":["size"],"reason":"try_use_bios skips a listed file that is not 512 KB (frontend/libretro.c:3632) and one whose bytes 1-4 are not 00 08 3c 3f and that lacks \"PS compatible\" at 0x12c (frontend/libretro.c:3646-3651). Zeros fail that header check, so validation: [size, signature].","rule":"validation_contradicted","run_shows":{"content":true,"size":null},"schema_version":1,"statement":"the core checks the content of scph7001.bin: a same-size file of zeros is refused, the profile declares validation ['size']","status":"applied","system":"sony-playstation"} +{"content":"Bust-A-Move 2 - Arcade Edition (USA)","core":{"file":"pcsx_rearmed_libretro.so","library_version":"r26 c881679","sha256":"bfda3f667f8ea8c2f5cc939b970628174b6f491ad32d7f6b143728322df46af6"},"emulator":"pcsx_rearmed","evidence":["2026-10-27-1d4eb1daebe5","2026-10-27-ba3e1259ac73"],"field":"validation","file":"scph1001.bin","found_at":"2026-10-28T07:18:33+00:00","id":"2026-10-28-dff5c1738685","key":"pcsx_rearmed/sony-playstation/scph1001.bin/validation","profile_says":["size"],"reason":"try_use_bios skips a listed file that is not 512 KB (frontend/libretro.c:3632) and one whose bytes 1-4 are not 00 08 3c 3f and that lacks \"PS compatible\" at 0x12c (frontend/libretro.c:3646-3651). Zeros fail that header check, so validation: [size, signature].","rule":"validation_contradicted","run_shows":{"content":true,"size":null},"schema_version":1,"statement":"the core checks the content of scph1001.bin: a same-size file of zeros is refused, the profile declares validation ['size']","status":"applied","system":"sony-playstation"}