emulator: PCSX-ReARMed type: libretro core_classification: embedded_hle source: "https://github.com/libretro/pcsx_rearmed" upstream: "https://github.com/notaz/pcsx_rearmed" profiled_date: "2026-03-25" source_commit: "c8816799b50388e61cfe237fe2cdbb7d8175f20a" core_version: "r25" display_name: "Sony - PlayStation (PCSX ReARMed)" cores: [pcsx_rearmed, pcsx_rearmed_neon, pcsx_rearmed_interpreter] systems: [sony-playstation] notes: > HLE BIOS built-in: core option pcsx_rearmed_bios = "HLE" bypasses real BIOS entirely. Default is "auto" which searches system dir for listed filenames, then scans all files. Region detection reads bytes at offset 0x7ff51: " E" = EU, " J" = JP, else US. Three CRC32 hardcoded as JP override: 0x18D0F7D8, 0x3B601FC8, 0x3539DEF6 (psxonpsp, scph1000). BIOS validity check: byte pattern at offset 1 (\x00\x08\x3c\x3f) or string "PS compatible" at 0x12c. Files named "unirom" (case-insensitive) are explicitly skipped. Region fallback: if the matching-region BIOS is missing, any available region BIOS is used over HLE. Three region slots: US (index 0), JP (index 1), EU (index 2) stored in Config.Bios[]. files: # -- Region: Japan (PSX_REGION_JP = 1) -- - name: "scph5500.bin" description: "SCPH-5500 (v3.0 09-09-96 J)" region: [japan] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[0])" note: "Preferred JP BIOS, searched first by exact filename." # -- Region: North America (PSX_REGION_US = 0) -- - name: "scph5501.bin" description: "SCPH-5501 (v3.0 11-18-96 A)" region: [north-america] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[1])" note: "Preferred US BIOS, searched first by exact filename." # -- Region: Europe (PSX_REGION_EU = 2) -- - name: "scph5502.bin" description: "SCPH-5502 (v3.0 01-06-97 E)" region: [europe, oceania] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[2])" note: "Preferred EU BIOS, searched first by exact filename." # -- Fallback BIOS filenames (searched in order after scph550x) -- - name: "psxonpsp660.bin" description: "PSP embedded PS1 BIOS, filed as the Japanese BIOS" region: [japan] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[3]), frontend/libretro.c:3654-3669 (try_use_bios region guess)" 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]); a US or EU disc only reaches this file when its own slot is empty. Must be 512 KB." - name: "scph101.bin" description: "SCPH-101 (v4.4 03-24-00 A) - PSone US" region: [north-america] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[4])" note: "PSone slim model." - name: "scph7001.bin" description: "SCPH-7001 (v4.1 12-16-97 A)" region: [north-america] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[5])" - name: "scph1001.bin" description: "SCPH-1001 (v2.2 12-04-95 A)" region: [north-america] size: 524288 required: false hle_fallback: true validation: [size] source_ref: "frontend/libretro.c:3864-3867 (listed_bios[6])" note: "Original US model. Last in the explicit filename search list." # -- Dynamic scan fallback -- # After exhausting listed_bios[], the core calls find_any_bios() which scans # the entire system directory via opendir/readdir. Any 512 KB file passing the # validity check (magic bytes or "PS compatible" string) is accepted and assigned # to the detected region slot. This means scph1000.bin, scph3000.bin, scph7002.bin, # scph7502.bin, etc. all work without being explicitly listed.