mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 20:29:06 -05:00
fix: tag US PlayStation images latin-america too
Each core picks its US image for a disc licensed by Sony Computer Entertainment America, and DuckStation, SwanStation and Beetle PSX also for a disc whose region they cannot read. Tagged north-america alone, a --region brazil,jp pack withdrew those images.
This commit is contained in:
1 parent
734643b8fc
commit
47d9e1d629
7 files changed
+99
-39
No files matched your search
+2
-1
@@ -379,11 +379,12 @@ files:
|
||||
# --- PlayStation ---
|
||||
- name: scph5501.bin
|
||||
system: sony-playstation
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: true
|
||||
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
|
||||
validation: [sha256]
|
||||
description: "PlayStation BIOS (US)"
|
||||
note: "Picked for NTSC-U, set by both America licence strings and for an executable. A disc with no recognised licence offers NTSC-U and PAL, and the Boot/Prefer setting picks (mia/medium/playstation.cpp:66-73, 92, desktop-ui/emulator/playstation.cpp:85-92, desktop-ui/emulator/emulator.cpp:40-58)."
|
||||
source_ref: "desktop-ui/emulator/playstation.cpp:18, desktop-ui/emulator/playstation.cpp:85-92, mia/medium/playstation.cpp:65-73"
|
||||
|
||||
- name: scph5500.bin
|
||||
|
||||
@@ -58,7 +58,7 @@ files:
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: true
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
@@ -66,6 +66,7 @@ files:
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Picked for REGION_NA: a SYSTEM.CNF serial whose third letter is U (SCUS, SLUS), a licence string naming America, and content whose region cannot be read while the region option stays on auto (libretro.c:2172-2174, 2198, 2249-2254, 3171-3185, 4436)."
|
||||
source_ref: "libretro.c:613-631"
|
||||
aliases:
|
||||
- "SCPH5501.bin"
|
||||
|
||||
+36
-28
@@ -26,6 +26,14 @@ notes: |
|
||||
ref: src/core/bios.cpp:34-139 (s_image_info_by_hash)
|
||||
Each image has: region, region_check, fast_boot_patch type, priority score.
|
||||
|
||||
The console region picks the image, Auto by default. NTSC-U answers the
|
||||
"Sony Computer Entertainment Amer ica" licence string, a SCUS or SLUS
|
||||
executable, and every disc whose region the detector cannot read
|
||||
(DiscRegion::Other, NonPS1), so a disc of any other market boots an NTSC-U image.
|
||||
ref: src/core/system.cpp:650-662, 926-995, 1723-1724, 1755
|
||||
ref: src/core/bios.cpp:397-436 (FindBIOSImageInDirectory keeps a region match)
|
||||
ref: src/core/settings.h:595 (DEFAULT_CONSOLE_REGION = Auto)
|
||||
|
||||
ImageInfo gained a version and an expected_filename field after the previous
|
||||
profiling pass. Neither takes part in identification: expected_filename is read
|
||||
only by the two settings screens, which fall back to the real filename when it
|
||||
@@ -58,7 +66,7 @@ files:
|
||||
|
||||
- name: "scph1001.bin"
|
||||
description: "SCPH-1001, 5003, DTL-H1201, H3001 (v2.2 12-04-95 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "924e392ed05558ffdb115408c263dccf"
|
||||
region_check: false
|
||||
@@ -118,7 +126,7 @@ files:
|
||||
|
||||
- name: "scph1001_v20.bin"
|
||||
description: "SCPH-1001, DTL-H1001 (v2.0 05-07-95 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "dc2b9bf8da62ec93e868cfd29f0d067d"
|
||||
region_check: false
|
||||
@@ -138,7 +146,7 @@ files:
|
||||
|
||||
- name: "scph1001_v21.bin"
|
||||
description: "SCPH-1001, DTL-H1101 (v2.1 07-17-95 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "da27e8b6dab242d8f91a9b25d80c63b8"
|
||||
region_check: false
|
||||
@@ -168,7 +176,7 @@ files:
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: true
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
region_check: false
|
||||
@@ -208,7 +216,7 @@ files:
|
||||
|
||||
- name: "scph7001.bin"
|
||||
description: "SCPH-7001, 7501, 7503, 9001, 9003, 9903 (v4.1 12-16-97 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "1e68c231d0896b7eadcad1d7d8e76129"
|
||||
region_check: false
|
||||
@@ -238,7 +246,7 @@ files:
|
||||
|
||||
- name: "scph101_v44.bin"
|
||||
description: "SCPH-101 (v4.4 03-24-00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "9a09ab7e49b422c007e6d54d7c49b965"
|
||||
region_check: false
|
||||
@@ -248,7 +256,7 @@ files:
|
||||
|
||||
- name: "scph101_v45.bin"
|
||||
description: "SCPH-101 (v4.5 05-25-00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "6e3735ff4c7dc899ee98981385f6f3d0"
|
||||
region_check: false
|
||||
@@ -362,7 +370,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh30001.bin"
|
||||
description: "PS2, DTL-H30001 (v5.0 07/27/00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "63e6fd9b3c72e0d7b920e80cf76645cd"
|
||||
region_check: true
|
||||
@@ -372,7 +380,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001_0727.bin"
|
||||
description: "PS2, SCPH-30001 (v5.0 07/27/00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "a20c97c02210f16678ca3010127caf36"
|
||||
region_check: true
|
||||
@@ -382,7 +390,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001_0902.bin"
|
||||
description: "PS2, SCPH-30001 (v5.0 09/02/00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "8db2fbbac7413bf3e7154c1e0715e565"
|
||||
region_check: true
|
||||
@@ -442,7 +450,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh30101.bin"
|
||||
description: "PS2, DTL-H30101 (v5.0 12/28/00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "0bf988e9c7aaa4c051805b0fa6eb3387"
|
||||
region_check: true
|
||||
@@ -452,7 +460,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001_35001.bin"
|
||||
description: "PS2, SCPH-30001/SCPH-35001 (v5.0 12/28/00 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "8accc3c49ac45f5ae2c5db0adc854633"
|
||||
region_check: true
|
||||
@@ -502,7 +510,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001r_0427.bin"
|
||||
description: "PS2, SCPH-30001R (v5.0 04/27/01 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "b107b5710042abe887c0f6175f6e94bb"
|
||||
region_check: true
|
||||
@@ -522,7 +530,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001r_0704.bin"
|
||||
description: "PS2, SCPH-30001R (v5.0 07/04/01 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "18bcaadb9ff74ed3add26cdf709fff2e"
|
||||
region_check: true
|
||||
@@ -542,7 +550,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30001r_1004.bin"
|
||||
description: "PS2, SCPH-30001R (v5.0 10/04/01 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "7200a03d51cacc4c14fcdfdbc4898431"
|
||||
region_check: true
|
||||
@@ -572,7 +580,7 @@ files:
|
||||
|
||||
- name: "ps2_scph39001.bin"
|
||||
description: "PS2, SCPH-39001 (v5.0 02/07/02 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "d5ce2c7d119f563ce04bc04dbc3a323e"
|
||||
region_check: true
|
||||
@@ -662,7 +670,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh50001_0325.bin"
|
||||
description: "PS2, DTL-H50001 (v5.0 03/25/03 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "eb960de68f0c0f7f9fa083e9f79d0360"
|
||||
region_check: true
|
||||
@@ -672,7 +680,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50001_0325.bin"
|
||||
description: "PS2, SCPH-50001 (v5.0 03/25/03 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "8aa12ce243210128c5074552d3b86251"
|
||||
region_check: true
|
||||
@@ -712,7 +720,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh50001_0623.bin"
|
||||
description: "PS2, DTL-H50001 (v5.0 06/23/03 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "ab9d49ad40ae49f19856ad187777b1b3"
|
||||
region_check: true
|
||||
@@ -722,7 +730,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50001_0623.bin"
|
||||
description: "PS2, SCPH-50001/SCPH-50010 (v5.0 06/23/03 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "35461cecaa51712b300b2d6798825048"
|
||||
region_check: true
|
||||
@@ -802,7 +810,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50011.bin"
|
||||
description: "PS2, SCPH-50011 (v5.0 03/29/04 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "81f4336c1de607dd0865011c0447052e"
|
||||
region_check: true
|
||||
@@ -822,7 +830,7 @@ files:
|
||||
|
||||
- name: "ps2_scph70001.bin"
|
||||
description: "PS2, SCPH-70001/SCPH-70011/SCPH-70012 (v5.0 06/14/04 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "d333558cc14561c1fdc334c75d5f37b7"
|
||||
region_check: true
|
||||
@@ -902,7 +910,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh75000a.bin"
|
||||
description: "PS2, DTL-H75000A (v5.0 06/20/05 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "9959ad7a8685cad66206e7752ca23f8b"
|
||||
region_check: true
|
||||
@@ -912,7 +920,7 @@ files:
|
||||
|
||||
- name: "ps2_scph75001.bin"
|
||||
description: "PS2, SCPH-75001/SCPH-75010 (v5.0 06/20/05 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "929a14baca1776b00869f983aa6e14d2"
|
||||
region_check: true
|
||||
@@ -952,7 +960,7 @@ files:
|
||||
|
||||
- name: "ps2_scph77001.bin"
|
||||
description: "PS2, SCPH-77001/SCPH-77010 (v5.0 02/10/06 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "cb801b7920a7d536ba07b6534d2433ca"
|
||||
region_check: true
|
||||
@@ -1002,7 +1010,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh90000_a.bin"
|
||||
description: "PS2, DTL-H90000 (v5.0 09/05/06 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "21fe4cad111f7dc0f9af29477057f88d"
|
||||
region_check: true
|
||||
@@ -1012,7 +1020,7 @@ files:
|
||||
|
||||
- name: "ps2_scph79001_90001.bin"
|
||||
description: "PS2, SCPH-79001/SCPH-79010/SCPH-90001 (v5.0 09/05/06 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "40c11c063b3b9409aa5e4058e984e30c"
|
||||
region_check: true
|
||||
@@ -1052,7 +1060,7 @@ files:
|
||||
|
||||
- name: "ps2_scph90001_0220.bin"
|
||||
description: "PS2, SCPH-90001/SCPH-90010 (v5.0 02/20/08 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
md5: "21038400dc633070a78ad53090c53017"
|
||||
region_check: true
|
||||
|
||||
@@ -284,13 +284,13 @@ files:
|
||||
- name: "scph5501.bin"
|
||||
system: sony-playstation
|
||||
description: "SCPH-5501 / v3.0A BIOS"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
|
||||
validation: [size, sha256]
|
||||
source_ref: "psx/psx.cpp:1764-1769, 1773-1781, 2374, 252"
|
||||
note: "Default of psx.bios_na. The BIOS table carries 24 recognised dumps in total, two of them flagged bad (psx.cpp:228-268)."
|
||||
note: "Default of psx.bios_na. The BIOS table carries 24 recognised dumps in total, two of them flagged bad (psx.cpp:228-268). Picked for REGION_NA: a SYSTEM.CNF serial whose third letter is U, a licence string naming America, and a disc read as Japanese whose system area fails the Japanese BIOS check (psx.cpp:1324-1325, 1372-1376, 1401-1437, 1764-1769)."
|
||||
|
||||
- name: "scph5502.bin"
|
||||
system: sony-playstation
|
||||
|
||||
+10
-6
@@ -17,6 +17,10 @@ notes: >
|
||||
then validates the full binary against an internal SHA-256 database
|
||||
(lifted from Mednafen). Region must match the loaded disc. Known-bad
|
||||
dumps are rejected. No filename requirement. No HLE fallback.
|
||||
The disc region comes from the sector 4 licence string alone: "Inc" is Japan,
|
||||
"America" and "of America" are NorthAmerica, "Europe" is Europe, and any other
|
||||
string refuses the disc (upstream src/cdrom/disc/mod.rs:56-99,
|
||||
source src/lib.rs:71-82, 170-215).
|
||||
"Boot to BIOS menu" core option allows booting without a disc.
|
||||
Database contains 24 entries (22 good, 2 known-bad rejected)
|
||||
covering BIOS versions 1.0 through 4.5.
|
||||
@@ -40,7 +44,7 @@ files:
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501 (v3.0 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -139,7 +143,7 @@ files:
|
||||
# North America alternatives
|
||||
- name: "scph1001_v20.bin"
|
||||
description: "SCPH-1001 (v2.0 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -148,7 +152,7 @@ files:
|
||||
|
||||
- name: "scph1001_v21.bin"
|
||||
description: "SCPH-1001 (v2.1 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -157,7 +161,7 @@ files:
|
||||
|
||||
- name: "scph1001.bin"
|
||||
description: "SCPH-1001 (v2.2 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -166,7 +170,7 @@ files:
|
||||
|
||||
- name: "scph7001.bin"
|
||||
description: "SCPH-7001 (v4.1 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -175,7 +179,7 @@ files:
|
||||
|
||||
- name: "scph101.bin"
|
||||
description: "SCPH-101 (v4.5 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
|
||||
@@ -28,6 +28,14 @@ notes: |
|
||||
ref: src/core/bios.cpp:28-71 (s_image_infos)
|
||||
Each entry has: description, region, hash, patch_compatible flag.
|
||||
|
||||
The console region picks the image, Auto by default. NTSC-U answers the
|
||||
"Sony Computer Entertainment Amer ica" licence string, a SCUS or SLUS
|
||||
executable, a disc whose region the detector cannot read, an image that
|
||||
fails to open and a boot without content.
|
||||
ref: src/core/system.cpp:193-209, 401-456, 592-645
|
||||
ref: src/core/host_interface.cpp:100-183 (FindBIOSImageInDirectory keeps a region match)
|
||||
ref: src/libretro/libretro_core_options.h:82-95 (swanstation_Console_Region, default Auto)
|
||||
|
||||
Upstream DuckStation has evolved significantly (105 entries, PS2 BIOS, OpenBIOS,
|
||||
priority system). SwanStation is frozen at the fork point.
|
||||
|
||||
@@ -45,7 +53,7 @@ files:
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
|
||||
region: [north-america]
|
||||
region: [north-america, latin-america]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
|
||||
@@ -907,6 +907,15 @@ class RegionalRequestsKeepWhatTheCodeLoads(unittest.TestCase):
|
||||
("pcsx_rearmed", ["brazil", "japan"], "scph1001.bin"),
|
||||
("blastem", ["australia", "north-america"], "bios_CD_E.bin"),
|
||||
("kega-fusion", ["australia", "north-america"], "eu_mcd1_9210.bin"),
|
||||
("ares", ["brazil", "japan"], "scph5501.bin"),
|
||||
("beetle_psx", ["brazil", "japan"], "scph5501.bin"),
|
||||
("mednafen", ["brazil", "japan"], "scph5501.bin"),
|
||||
("swanstation", ["brazil", "japan"], "scph5501.bin"),
|
||||
("rustation", ["brazil", "japan"], "scph5501.bin"),
|
||||
("rustation", ["brazil", "japan"], "scph101.bin"),
|
||||
("duckstation", ["brazil", "japan"], "scph5501.bin"),
|
||||
("duckstation", ["brazil", "japan"], "scph7001.bin"),
|
||||
("duckstation", ["brazil", "japan"], "ps2_scph39001.bin"),
|
||||
)
|
||||
|
||||
def test_each_request_keeps_its_file(self):
|
||||
@@ -1152,6 +1161,35 @@ class PcsxRearmedUsSlotIsTheDefault(unittest.TestCase):
|
||||
self.assertIn("latin-america", entry["region"])
|
||||
|
||||
|
||||
class PlayStationUsImageAnswersTheAmericaLicence(unittest.TestCase):
|
||||
"""Every PlayStation core here picks its US image for a disc licensed by
|
||||
Sony Computer Entertainment America, the licence the Americas share:
|
||||
ares (mia/medium/playstation.cpp:66-73), Beetle PSX (libretro.c:2249-2254),
|
||||
Mednafen (psx.cpp:1372-1376), SwanStation and DuckStation
|
||||
(GetRegionFromSystemArea, plus every unread region), Rustation
|
||||
(src/cdrom/disc/mod.rs:81-90). Tagged north-america alone, a --region
|
||||
brazil,japan pack withdrew the image those discs boot with."""
|
||||
|
||||
COUNTS = {"ares": 1, "beetle_psx": 1, "mednafen": 1, "swanstation": 1,
|
||||
"rustation": 6, "duckstation": 28}
|
||||
|
||||
def test_every_us_image_includes_latin_america(self):
|
||||
from common import load_emulator_profiles
|
||||
|
||||
profiles = load_emulator_profiles("emulators")
|
||||
for name, count in self.COUNTS.items():
|
||||
tagged = [
|
||||
f for f in profiles[name]["files"]
|
||||
if "north-america" in (f.get("region") or [])
|
||||
and f.get("system", "sony-playstation") == "sony-playstation"
|
||||
]
|
||||
with self.subTest(profile=name):
|
||||
self.assertEqual(len(tagged), count)
|
||||
for entry in tagged:
|
||||
with self.subTest(profile=name, 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
|
||||
|
||||
Reference in new issue
Block a user