# LRPS2 - libretro PlayStation 2 core # Source: https://github.com/libretro/ps2 # Upstream: https://github.com/PCSX2/pcsx2 emulator: LRPS2 type: libretro core_classification: community_fork source: "https://github.com/libretro/ps2" upstream: "https://github.com/PCSX2/pcsx2" profiled_date: "2026-03-24" core_version: "Git" display_name: "Sony - PlayStation 2 (LRPS2)" cores: [lrps2] systems: [sony-playstation-2] bios_directory: "pcsx2/bios/" resources_directory: "pcsx2/resources/" notes: | Hard fork of PCSX2 ported to libretro. BIOS detection is filename-agnostic: the core scans pcsx2/bios/ for any file between 4-8 MB with a valid romdir structure containing RESET and ROMVER entries. The ROMVER entry determines region and version. Companion files (.rom1, .rom2, .nvm, .mec) derive their paths from the selected BIOS. DEV9 (network adapter) and USB are stubbed in the libretro port. GameIndex.yaml in pcsx2/resources/ provides per-game patches for compatibility. files: - name: ".bin" path: "pcsx2/bios/" required: true description: "PS2 BIOS binary" min_size: 4194304 max_size: 8388608 validation: [size] source_ref: "pcsx2/ps2/BiosTools.cpp:230-254,266-322" note: > 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. - name: ".rom1" path: "pcsx2/bios/" required: false max_size: 4194304 description: "DVD player ROM" source_ref: "pcsx2/ps2/BiosTools.cpp:189-210,313" note: > DVD player ROM. Tries .rom1 (appended) then .rom1 (extension replaced). Silently skipped if not found. - name: ".rom2" path: "pcsx2/bios/" required: false max_size: 4194304 description: "Chinese ROM extension" source_ref: "pcsx2/ps2/BiosTools.cpp:189-210,314" note: > Chinese region ROM extension. Same naming convention as rom1. Only present on Chinese region consoles. - name: ".nvm" path: "pcsx2/bios/" required: false hle_fallback: true size: 1024 description: "NVRAM / EEPROM data" source_ref: "pcsx2/CDVD/CDVD.cpp:155-198" note: > 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. - name: ".mec" path: "pcsx2/bios/" required: false hle_fallback: true size: 4 description: "Mechacon version" source_ref: "pcsx2/CDVD/CDVD.cpp:186-197" note: > Mechacon (disc drive controller) version as u32. Auto-created with default 0x00020603 if missing. - name: "GameIndex.yaml" path: "pcsx2/resources/GameIndex.yaml" required: false description: "game compatibility database" source_ref: "pcsx2/GameDatabase.cpp:48,880" note: > 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. - name: "cheats_ws.zip" path: "pcsx2/resources/cheats_ws.zip" required: false description: "widescreen patches archive" source_ref: "pcsx2/VMManager.cpp:340-353" note: > 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. - name: "cheats_ni.zip" path: "pcsx2/resources/cheats_ni.zip" required: false description: "no-interlacing patches archive" source_ref: "pcsx2/VMManager.cpp:375-388" note: > 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.