Skip to content

# LRPS2 - RetroBIOS

Type | libretro
Classification | community_fork
Source | https://github.com/libretro/ps2
Upstream | https://github.com/PCSX2/pcsx2
Version | Git
Profiled | 2026-03-25
Cores | lrps2
Systems | sony-playstation-2
BIOS directory | pcsx2/bios/
Resources directory | pcsx2/resources/

Technical notes

Hard fork of PCSX2 (pre-Qt, 1.7-dev era) ported to libretro. x86_64 only. BIOS detection is filename-agnostic: scans pcsx2/bios/ for any file between 4-8 MB with a valid romdir structure (RESET + ROMVER entries). No hash validation. Companion files (.rom1, .rom2, .nvm, .mec) derive paths from the selected BIOS. DEV9 (network/HDD) and USB are stubbed in the libretro port. Widescreen patches are largely compiled into the core (libretro/patches.cpp). .info firmware_count=2 counts the bios folder and GameIndex.yaml. .info description mentions EROM.BIN but no EROM loading path exists in the code.

8 files | 1 required, 7 optional | 1 in repo, 7 missing | 2 with HLE fallback

`<bios>.bin` -required, missing from repo : PS2 BIOS binary

- Path: `pcsx2/bios/`
- Size: min 4.0 MB, max 8.0 MB
- Validation: size
- Source: `pcsx2/ps2/BiosTools.cpp:231-254,267-322`
- Scans pcsx2/bios/ for any file between 4 MB and 8 MB. Validates via romdir structure parsing (RESET + ROMVER entries). User selects BIOS via core option pcsx2_bios. Falls back to first valid BIOS found if configured BIOS is missing.

`<bios>.rom1` -optional, missing from repo : DVD player ROM

- Path: `pcsx2/bios/`
- Size: max 4.0 MB
- Source: `pcsx2/ps2/BiosTools.cpp:190-211,314`
- DVD player ROM. Tries <biospath>.rom1 (appended) then <biosbase>.rom1 (extension replaced). Silently skipped if not found.

`<bios>.rom2` -optional, missing from repo : Chinese ROM extension

- Path: `pcsx2/bios/`
- Size: max 512.0 KB
- Source: `pcsx2/ps2/BiosTools.cpp:190-211,315`
- Chinese region ROM extension. Same naming convention as rom1. Only present on Chinese region consoles.

`<bios>.nvm` -optional, HLE available, missing from repo : NVRAM / EEPROM data

- Path: `pcsx2/bios/`
- Size: 1.0 KB
- Source: `pcsx2/CDVD/CDVD.cpp:155-198`
- Console EEPROM data (language, timezone, region, iLink ID, OSD settings). Path derived from BIOS path with extension replaced to .nvm. Auto-created with region-appropriate defaults if missing or invalid.

`<bios>.mec` -optional, HLE available, missing from repo : Mechacon version

- Path: `pcsx2/bios/`
- Size: 4 B
- Source: `pcsx2/CDVD/CDVD.cpp:186-197`
- Mechacon (disc drive controller) version as u32. Auto-created with default 0x00020603 if missing.

`GameIndex.yaml` -optional : game compatibility database

- Path: `pcsx2/resources/GameIndex.yaml`
- Source: `pcsx2/GameDatabase.cpp:48,880`
- YAML database of per-game patches, settings overrides, and compatibility fixes. OSD warning shown if missing. Some games may not boot or have issues without it.

`cheats_ws.zip` -optional, missing from repo : widescreen patches archive

- Path: `pcsx2/resources/cheats_ws.zip`
- Source: `pcsx2/VMManager.cpp:340-353`
- ZIP archive of per-game widescreen (16:9) patches in pnach format. Only loaded when widescreen patches are enabled via core options. Fallback if no patches found in pcsx2/cheats_ws/ folder.

`cheats_ni.zip` -optional, missing from repo : no-interlacing patches archive

- Path: `pcsx2/resources/cheats_ni.zip`
- Source: `pcsx2/VMManager.cpp:375-388`
- ZIP archive of per-game no-interlacing patches in pnach format. Only loaded when no-interlacing patches are enabled via core options. Fallback if no patches found in pcsx2/cheats_ni/ folder.

Generated on 2026-03-25T14:56:43Z