Files
libretro/emulators/pcsx2.yml
T
Abdessamad Derraz 45db717db9 feat: check PS2 BIOS images by their romdir
Each PCSX2 fork declares how its LoadBiosVersion reads the table:
the strncmp length on RESET, the NUL test on names, EXTINFO, and what a
read past the end does, from the source at the pin or the shipped
libemucore.so for NetherSX2 and its Turnip builds. The Recalbox libretro
PCSX2 and PCEE2 check no size, so their 4 to 8 MB bounds are gone, and
the PCEE2 and ARMSX2 arcade images require the COH-H zone.
2026-11-10 12:52:46 +01:00

129 lines
5.1 KiB
YAML

emulator: PCSX2
type: standalone
core_classification: official_port
bios_mode: agnostic
source: "https://github.com/PCSX2/pcsx2"
upstream: "https://github.com/PCSX2/pcsx2"
cores:
- pcsx2
- "pcsx2-sa"
profiled_date: "2026-03-30"
source_commit: "f0523f8acb1d3a765ee73b74cffec63093569199"
core_version: "v2.9.146-1-gf0523f8"
version_basis:
kind: tag
tag: "v2.9.146"
distance: 1
display_name: "Sony - PlayStation 2 (PCSX2)"
systems: [sony-playstation-2]
notes: |
Filename-agnostic BIOS detection. Scans bios/ for any file between 4-8 MB
with valid romdir structure (RESET + ROMVER entries). No hash validation.
Companion files (.rom1, .rom2, .nvm, .mec) derive their names from the selected BIOS.
ROM1 (DVD player) and ROM2 (Chinese extension) silently skipped if missing.
NVM and MEC auto-created with defaults if missing.
files:
- name: ps2-0230a-20080220.bin
found_by: content
aliases: [ps2-0250j-20100415.bin, SCPH-70004_BIOS_V12_EUR_200.BIN]
required: true
min_size: 4194304
max_size: 8388608
validation: [size, romdir]
romdir:
reset_compare: 10
missing_reset: ends_walk
terminated_names: true
extinfo: true
unreadable_romver: ends_walk
truncated_walk: ends_walk
source_ref: "pcsx2/ps2/BiosTools.cpp:16-17,80-197,258-283,317-370"
note: "Accepts any file 4-8 MB with valid romdir (RESET + ROMVER). Naming convention ps2-VVVVr-YYYYMMDD.bin (version, region, date)."
- name: ps3_ps2_emu_bios.bin
found_by: content
required: false
size: 4194304
sha1: "2dc921be6eb8d17e276cd4bbfde86343452073e0"
md5: "ca27dd917b4be56a229dd1fabb0c07da"
source_ref: "pcsx2/ps2/BiosTools.cpp:16-17,80-197,258-283,317-370"
note: >
ROMVER 0220JD20121227, the PS2 BIOS the PS3's ps2_emu carries. Cut from
dev_flash/ps2emu/ps2_emu.self of PS3 system software 4.90, decrypted by
RPCS3, from 0x12F bytes before "compatible mode" to 0x262 bytes after
"Parity error" and padded to 4 MiB, as firmware_bios_claim release 2
does. Accepted like any image with a valid romdir.
- name: ps2-0230a-20080220.rom1
aliases: [SCPH-70004_BIOS_V12_EUR_200.ROM1]
required: false
max_size: 4194304
description: "DVD player ROM"
note: "Tried as {bios}.rom1 then {biosbase}.rom1. Each name is first checked with stat, so on a case-sensitive filesystem only the lowercase extension is found, then opened case-insensitively. Copied to the ROM1 region. Logged and skipped when absent."
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:366, common/FileSystem.cpp:1145-1152, common/FileSystem.cpp:2312-2320"
- name: ps2-0230a-20080220.rom2
aliases: [SCPH-70004_BIOS_V12_EUR_200.ROM2]
required: false
max_size: 4194304
description: "Chinese ROM extension"
note: "Same two-step naming as rom1. Only Chinese region consoles carry one."
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:367"
- name: ps2-0230a-20080220.nvm
required: false
hle_fallback: true
size: 1024
description: "Console NVRAM"
note: "Read at the BIOS path with the extension replaced by nvm, opened case-insensitively. Built in memory from region defaults when absent or blank."
source_ref: "pcsx2/CDVD/CDVD.cpp:165-189"
- name: ps2-0230a-20080220.mec
required: false
hle_fallback: true
size: 4
description: "Mechacon version"
note: "Read at the BIOS path with the extension replaced by mec. Defaults to 0x00020603 and is written back when it cannot be read."
source_ref: "pcsx2/CDVD/CDVD.cpp:190-204"
- name: eeprom.dat
load_from: working_directory
required: false
hle_fallback: true
size: 64
source_ref: "pcsx2/DEV9/DEV9.cpp:110-160"
note: "DEV9 network adapter EEPROM. Falls back to built-in defaults if missing."
- name: GameIndex.yaml
path: resources/GameIndex.yaml
required: false
bundled: true
sha1: 5e2d50a3376dc6a0750505bec68626d39a5bd4c1
size: 2683897
category: game_data
description: "per-title compatibility and fix database"
source_ref: "pcsx2/GameDatabase.cpp:39, pcsx2/GameDatabase.cpp:1034-1043"
note: "Read from the resources directory shipped with the application. Console error and no per-title fixes if missing."
- name: RedumpDatabase.yaml
path: resources/RedumpDatabase.yaml
required: false
bundled: true
sha1: bf2c73d668cd671df8adfe2ec3c7074e8ba9176a
size: 1917242
category: game_data
description: "disc hash database"
source_ref: "pcsx2/GameDatabase.cpp:1141, pcsx2/GameDatabase.cpp:1196-1205"
note: "Read from the resources directory shipped with the application, used to name a disc from its dump."
- name: patches.zip
path: resources/patches.zip
required: false
bundled: true
category: game_data
description: "built-in game patch archive"
source_ref: "pcsx2/Patch.cpp:117, pcsx2/Patch.cpp:289-318"
note: "Opened read only from the resources directory shipped with the application and searched for the pnach matching the running serial and CRC. Widescreen and no-interlacing patches live inside it."