Files
libretro/emulators/armsx1.yml
T

340 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
files:
- name: "scph1000.bin"
description: "SCPH-1000, DTL-H1000 (v1.0)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "239665b1a3dade1b5a52c06338011044"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:30"
- name: "scph1001.bin"
description: "SCPH-1001, 5003, DTL-H1201, H3001 (v2.2 12-04-95 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
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"
description: "SCPH-1002, DTL-H1002 (v2.0 05-10-95 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "54847e693405ffeb0359c6287434cbef"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:32"
- name: "scph1002b.bin"
description: "SCPH-1002, DTL-H1102 (v2.1 07-17-95 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "417b34706319da7cf001e76e40136c23"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:33"
- name: "scph1002c.bin"
description: "SCPH-1002, DTL-H1202, H3002 (v2.2 12-04-95 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "e2110b8a2b97a8e0b857a45d32f7e187"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:34"
- name: "dtlh1100.bin"
description: "DTL-H1100 (v2.2 03-06-96 D)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "ca5cfc321f916756e3f0effbfaeba13b"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:35"
- name: "scph3000.bin"
description: "SCPH-3000, DTL-H1000H (v1.1 01-22-95)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "849515939161e62f6b866f6853006780"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:36"
- name: "scph1001_v20.bin"
description: "SCPH-1001, DTL-H1001 (v2.0 05-07-95 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "dc2b9bf8da62ec93e868cfd29f0d067d"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:37"
- name: "scph3500.bin"
description: "SCPH-3500 (v2.1 07-17-95 J)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "cba733ceeff5aef5c32254f1d617fa62"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:38"
- name: "scph1001_v21.bin"
description: "SCPH-1001, DTL-H1101 (v2.1 07-17-95 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "da27e8b6dab242d8f91a9b25d80c63b8"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:39"
- name: "scph5000.bin"
description: "SCPH-5000, DTL-H1200, H3000 (v2.2 12-04-95 J)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "57a06303dfa9cf9351222dfcbb4a29d9"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:40"
- name: "scph5500.bin"
description: "SCPH-5500 (v3.0 09-09-96 J)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "8dd7d5296a650fac7319bce665a6a53c"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:41"
- name: "scph5501.bin"
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "490f666e1afb15b7362b406ed1cea246"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:42"
- name: "scph5502.bin"
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "32736f17079d0b2b7024407c39bd3050"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:43"
- name: "scph7000.bin"
description: "SCPH-7000, 7500, 9000 (v4.0 08-18-97 J)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "8e4c14f567745eff2f0408c8129f72a6"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:44"
- name: "scph7000w.bin"
description: "SCPH-7000W (v4.1 11-14-97 A)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "b84be139db3ee6cbd075630aa20a6553"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:45"
- name: "scph7001.bin"
description: "SCPH-7001, 7501, 7503, 9001, 9003, 9903 (v4.1 12-16-97 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "1e68c231d0896b7eadcad1d7d8e76129"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:46"
- name: "scph7002.bin"
description: "SCPH-7002, 7502, 9002 (v4.1 12-16-97 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "b9d9a0286c33dc6b7237bb13cd46fdee"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:47"
- name: "scph100.bin"
description: "SCPH-100 (v4.3 03-11-00 J)"
region: [japan]
required: false
variant_group: "psx-bios"
size: 524288
md5: "8abc1b549a4a80954addc48ef02c4521"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:48"
- name: "scph101_v44.bin"
description: "SCPH-101 (v4.4 03-24-00 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "9a09ab7e49b422c007e6d54d7c49b965"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:49"
- name: "scph101_v45.bin"
description: "SCPH-101 (v4.5 05-25-00 A)"
region: [north-america, latin-america]
required: false
variant_group: "psx-bios"
size: 524288
md5: "6e3735ff4c7dc899ee98981385f6f3d0"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:50"
- name: "scph102_v44.bin"
description: "SCPH-102 (v4.4 03-24-00 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "b10f5e0e3d9eb60e5159690680b1e774"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:51"
- name: "scph102_v45.bin"
description: "SCPH-102 (v4.5 05-25-00 E)"
region: [europe, oceania]
required: false
variant_group: "psx-bios"
size: 524288
md5: "de93caec13d1a141a40a79f5c86168d6"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:52"
- name: "psxonpsp660.bin"
description: "PSP, SCPH-1000R (v4.5 05-25-00 J)"
region: [world]
required: false
variant_group: "psx-bios"
size: 524288
md5: "c53ca5908936d412331790f4426c6c33"
validation: [size, md5]
source_ref: "android/app/src/main/java/com/armsx2/core/Ps1BiosProbe.java:53"
- name: "scph1000r.bin"
description: "SCPH-1000R (v4.5 05-25-00 J)"
region: [japan]
required: false
variant_group: "psx-bios"
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"