mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
Three changes to the search-list model, one commit because the readers
and the profiles must move together for the schema to hold.
Set requirement in a groups map. pom2 falls back on apple2.rom for the
][ and the ][+, and on apple2e.rom for the //e it boots and for the
unenhanced //e: one required on the file could not say both. A profile
now declares groups: {name: {required}}, a member writes no required
of its own (schema and validate_schemas refuse one) and load_emulator_
profiles derives it, true when one of its sets is. group takes a name,
a list, or a map from set to rank where the rank differs per set. pom2
is grouped from SystemProfile.cpp and MainWindow.cpp:246-296 at its pin.
One member per required set under --required-only. The pick is the
first the code reads among the held members the region filter leaves,
by rank then declaration order; a set the platform declares a member
of is carried by that declaration. The emulator pack, verify
--emulator, the platform pack, its manifest and verify --platform read
alternatives.required_only_spares or core_file_spares.
variant_group is now selection_slot: files a core chooses between by
a rule other than first found (disc territory for PicoDrive and
Pizza Boy SC, the o2em_bios option, a WebAssembly probe in SWF
Player). Where the code takes any one, the field became a group:
ARMSX1 (ArmSxBackend.java:149-157, name order), ePSXe (load_bios
0x433540-0x433621 of the 2.0.5 Linux x64 binary, one configured path,
HLE when BiosHLE is set), FPse and FPse-NG, DXX-Rebirth's HOGs
(inferno.cpp:472-512). odin and zesarux carried it with no effect.
slot.py compares ranks only between candidates that share a set.
344 lines
13 KiB
YAML
344 lines
13 KiB
YAML
emulator: ARMSX1
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/ARMSX2/ARMSX1"
|
|
source_branch: "android-compose"
|
|
upstream: "https://github.com/allkern/psxe"
|
|
profiled_date: "2026-10-26"
|
|
source_commit: "61ae0d0797d1d11de00a0b64c116205cb910af77"
|
|
core_version: "0.3.18-dma"
|
|
version_basis:
|
|
kind: file
|
|
path: "android/app/build.gradle"
|
|
pattern: 'armsxVersionName\s*=\s*\(project\.findProperty\(.armsx\.versionName.\)\s*\?:\s*.([^\x27"]+).'
|
|
display_name: "Sony - PlayStation (ARMSX1)"
|
|
verification: md5
|
|
found_by: content
|
|
bios_size: 524288
|
|
bios_directory: "bios/"
|
|
cores:
|
|
- armsx1
|
|
systems:
|
|
- sony-playstation
|
|
|
|
notes: |
|
|
PlayStation emulator forked from psxe. The released application is the
|
|
Android build, com.nanodata.armsx, versionName 0.3.18-dma at this revision.
|
|
That build runs the PSX Lab engine from the psxlab tree, through the
|
|
ArmSxBackend adapter. The SDL desktop, iOS, UWP, web and PSVita frontends
|
|
in the same tree still build on psxe. The release tags 0.1.5 to 0.3.6 all
|
|
sit on 99b3081 of the main branch, a 2026-09-05 tree that carries none of
|
|
this code. The version is the versionName android-compose builds.
|
|
ref: android/app/build.gradle:87-90, PSXLAB-BACKEND.md:1-6
|
|
|
|
Android accepts a BIOS only through its importer. The setup wizard, the
|
|
BIOS manager and its folder scan all ask getBiosInfoFromFd, which requires
|
|
exactly 512 KB and then either the OpenBIOS signature at 0x78 or one of 25
|
|
MD5 values. A recognised file is copied into <external files>/bios under
|
|
its own name. The wizard does not leave the BIOS page until one is
|
|
recognised.
|
|
ref: android/app/src/main/java/kr/co/iefriends/pcsx2/NativeApp.java:1297-1307,
|
|
android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:16-79,
|
|
android/app/src/main/java/com/armsx2/ui/onboarding/OnboardingViewModel.kt:183-203,
|
|
android/app/src/main/java/com/armsx2/ui/onboarding/OnboardingViewModel.kt:250-255,
|
|
android/app/src/main/java/com/armsx2/ui/bios/BiosManagerViewModel.kt:172-187
|
|
|
|
At launch the adapter lists the 512 KB files of the BIOS folder, the folder
|
|
of the BIOS the wizard selected or <external files>/bios, sorted by name.
|
|
It loads the file named by Filenames/BIOS, which the host sets to the
|
|
per-game BIOS or the wizard's file, else the first of the list, and refuses
|
|
anything but 512 KB. No hash is checked at that point, and with no file the
|
|
launch stops with "A 512 KiB PlayStation BIOS is required". The settings
|
|
store still writes the MD5 match for preferred_model as [bios].resolved_file
|
|
and an empty override_file, and the adapter reads neither for the choice.
|
|
ref: psxlab/app/src/main/java/dev/psxlab/ArmSxBackend.java:149-168,
|
|
psxlab/app/src/main/java/dev/psxlab/ArmSxBackend.java:338,
|
|
android/app/src/main/java/kr/co/iefriends/pcsx2/NativeApp.java:124-151,
|
|
android/app/src/main/java/kr/co/iefriends/pcsx2/NativeApp.java:225,
|
|
android/app/src/main/java/com/armsx2/runtime/MainActivityRuntime.kt:268-269,
|
|
android/app/src/main/java/com/armsx2/runtime/MainActivityRuntime.kt:1027-1038,
|
|
android/app/src/main/java/com/armsx2/runtime/MainActivityRuntime.kt:2850-2856,
|
|
android/app/src/main/java/com/armsx2/config/Ps1SettingsStore.kt:178-197,
|
|
android/app/src/main/java/com/armsx2/config/Ps1SettingsStore.kt:416-419
|
|
|
|
The psxe frontends take [bios].override_file or -b, by default bios.bin
|
|
under SDL_GetPrefPath("nanodata", "armsx"), when that file exists.
|
|
Otherwise they scan [bios].search_path, bios by default, for .bin and .rom
|
|
files and return the first whose stem normalises to preferred_model, else
|
|
one named bios.bin, else the override path unchanged. psx_bios_load refuses
|
|
anything but 512 KB or the 1 MB SCPH-5903 image and checks no hash.
|
|
ref: frontend/config.c:54-57, frontend/config.c:279-352,
|
|
frontend/config.c:1384-1405, frontend/config.c:1541-1560,
|
|
frontend/main.cpp:2555-2561, psx/dev/bios.c:22-75
|
|
|
|
groups:
|
|
ps-bios:
|
|
required: true
|
|
|
|
files:
|
|
- name: "scph1000.bin"
|
|
group: ps-bios
|
|
priority: 4
|
|
description: "SCPH-1000, DTL-H1000 (v1.0)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "239665b1a3dade1b5a52c06338011044"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:30"
|
|
|
|
- name: "scph1001.bin"
|
|
group: ps-bios
|
|
priority: 6
|
|
description: "SCPH-1001, 5003, DTL-H1201, H3001 (v2.2 12-04-95 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "924e392ed05558ffdb115408c263dccf"
|
|
validation: [size, md5]
|
|
note: >-
|
|
The model both settings files preselect, SCPH-1001. The desktop
|
|
scan also reaches this image by its stem.
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:31"
|
|
|
|
- name: "scph1002a.bin"
|
|
group: ps-bios
|
|
priority: 9
|
|
description: "SCPH-1002, DTL-H1002 (v2.0 05-10-95 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "54847e693405ffeb0359c6287434cbef"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:32"
|
|
|
|
- name: "scph1002b.bin"
|
|
group: ps-bios
|
|
priority: 10
|
|
description: "SCPH-1002, DTL-H1102 (v2.1 07-17-95 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "417b34706319da7cf001e76e40136c23"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:33"
|
|
|
|
- name: "scph1002c.bin"
|
|
group: ps-bios
|
|
priority: 11
|
|
description: "SCPH-1002, DTL-H1202, H3002 (v2.2 12-04-95 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "e2110b8a2b97a8e0b857a45d32f7e187"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:34"
|
|
|
|
- name: "dtlh1100.bin"
|
|
group: ps-bios
|
|
priority: 1
|
|
description: "DTL-H1100 (v2.2 03-06-96 D)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "ca5cfc321f916756e3f0effbfaeba13b"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:35"
|
|
|
|
- name: "scph3000.bin"
|
|
group: ps-bios
|
|
priority: 16
|
|
description: "SCPH-3000, DTL-H1000H (v1.1 01-22-95)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "849515939161e62f6b866f6853006780"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:36"
|
|
|
|
- name: "scph1001_v20.bin"
|
|
group: ps-bios
|
|
priority: 7
|
|
description: "SCPH-1001, DTL-H1001 (v2.0 05-07-95 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "dc2b9bf8da62ec93e868cfd29f0d067d"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:37"
|
|
|
|
- name: "scph3500.bin"
|
|
group: ps-bios
|
|
priority: 17
|
|
description: "SCPH-3500 (v2.1 07-17-95 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "cba733ceeff5aef5c32254f1d617fa62"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:38"
|
|
|
|
- name: "scph1001_v21.bin"
|
|
group: ps-bios
|
|
priority: 8
|
|
description: "SCPH-1001, DTL-H1101 (v2.1 07-17-95 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "da27e8b6dab242d8f91a9b25d80c63b8"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:39"
|
|
|
|
- name: "scph5000.bin"
|
|
group: ps-bios
|
|
priority: 18
|
|
description: "SCPH-5000, DTL-H1200, H3000 (v2.2 12-04-95 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "57a06303dfa9cf9351222dfcbb4a29d9"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:40"
|
|
|
|
- name: "scph5500.bin"
|
|
group: ps-bios
|
|
priority: 19
|
|
description: "SCPH-5500 (v3.0 09-09-96 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "8dd7d5296a650fac7319bce665a6a53c"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:41"
|
|
|
|
- name: "scph5501.bin"
|
|
group: ps-bios
|
|
priority: 20
|
|
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "490f666e1afb15b7362b406ed1cea246"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:42"
|
|
|
|
- name: "scph5502.bin"
|
|
group: ps-bios
|
|
priority: 21
|
|
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "32736f17079d0b2b7024407c39bd3050"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:43"
|
|
|
|
- name: "scph7000.bin"
|
|
group: ps-bios
|
|
priority: 22
|
|
description: "SCPH-7000, 7500, 9000 (v4.0 08-18-97 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "8e4c14f567745eff2f0408c8129f72a6"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:44"
|
|
|
|
- name: "scph7000w.bin"
|
|
group: ps-bios
|
|
priority: 23
|
|
description: "SCPH-7000W (v4.1 11-14-97 A)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "b84be139db3ee6cbd075630aa20a6553"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:45"
|
|
|
|
- name: "scph7001.bin"
|
|
group: ps-bios
|
|
priority: 24
|
|
description: "SCPH-7001, 7501, 7503, 9001, 9003, 9903 (v4.1 12-16-97 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "1e68c231d0896b7eadcad1d7d8e76129"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:46"
|
|
|
|
- name: "scph7002.bin"
|
|
group: ps-bios
|
|
priority: 25
|
|
description: "SCPH-7002, 7502, 9002 (v4.1 12-16-97 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "b9d9a0286c33dc6b7237bb13cd46fdee"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:47"
|
|
|
|
- name: "scph100.bin"
|
|
group: ps-bios
|
|
priority: 3
|
|
description: "SCPH-100 (v4.3 03-11-00 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "8abc1b549a4a80954addc48ef02c4521"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:48"
|
|
|
|
- name: "scph101_v44.bin"
|
|
group: ps-bios
|
|
priority: 12
|
|
description: "SCPH-101 (v4.4 03-24-00 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "9a09ab7e49b422c007e6d54d7c49b965"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:49"
|
|
|
|
- name: "scph101_v45.bin"
|
|
group: ps-bios
|
|
priority: 13
|
|
description: "SCPH-101 (v4.5 05-25-00 A)"
|
|
region: [north-america, latin-america]
|
|
size: 524288
|
|
md5: "6e3735ff4c7dc899ee98981385f6f3d0"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:50"
|
|
|
|
- name: "scph102_v44.bin"
|
|
group: ps-bios
|
|
priority: 14
|
|
description: "SCPH-102 (v4.4 03-24-00 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "b10f5e0e3d9eb60e5159690680b1e774"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:51"
|
|
|
|
- name: "scph102_v45.bin"
|
|
group: ps-bios
|
|
priority: 15
|
|
description: "SCPH-102 (v4.5 05-25-00 E)"
|
|
region: [europe, oceania]
|
|
size: 524288
|
|
md5: "de93caec13d1a141a40a79f5c86168d6"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:52"
|
|
|
|
- name: "psxonpsp660.bin"
|
|
group: ps-bios
|
|
priority: 2
|
|
description: "PSP, SCPH-1000R (v4.5 05-25-00 J)"
|
|
region: [world]
|
|
size: 524288
|
|
md5: "c53ca5908936d412331790f4426c6c33"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:53"
|
|
|
|
- name: "scph1000r.bin"
|
|
group: ps-bios
|
|
priority: 5
|
|
description: "SCPH-1000R (v4.5 05-25-00 J)"
|
|
region: [japan]
|
|
size: 524288
|
|
md5: "476d68a94ccec3b9c8303bbd1daf2810"
|
|
validation: [size, md5]
|
|
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:54"
|
|
|
|
- name: "<expansion>.rom"
|
|
required: false
|
|
config_key: "paths.expansion_rom"
|
|
max_size: 524288
|
|
unsourceable: "any expansion port ROM the user points at, under no name and no version the code expects"
|
|
description: "Expansion port ROM image"
|
|
note: >-
|
|
Read by the psxe frontends into the 512 KB region at 0x1f000000, which
|
|
is filled with 0xff when no path is set. A path that is set and cannot be
|
|
opened fails psx_init. The Android settings only display the key, and
|
|
the PSX Lab adapter never reads it.
|
|
source_ref: "psx/dev/exp1.c:12-44, psx/dev/exp1.h:9, psx/psx.c:312-313, frontend/config.c:93, frontend/main.cpp:2569-2570, android/app/src/main/java/com/armsx2/ui/settings/Ps1AdvancedTab.kt:102-108"
|