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 /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 /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: ".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"