Files
libretro/emulators/lrps2.yml
2026-03-25 12:23:32 +01:00

114 lines
4.1 KiB
YAML

# 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-25"
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 (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.
files:
- name: "<bios>.bin"
path: "pcsx2/bios/"
required: true
description: "PS2 BIOS binary"
min_size: 4194304
max_size: 8388608
validation: [size]
source_ref: "pcsx2/ps2/BiosTools.cpp:231-254,267-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: "<bios>.rom1"
path: "pcsx2/bios/"
required: false
max_size: 4194304
description: "DVD player ROM"
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,314"
note: >
DVD player ROM. Tries <biospath>.rom1 (appended) then <biosbase>.rom1
(extension replaced). Silently skipped if not found.
- name: "<bios>.rom2"
path: "pcsx2/bios/"
required: false
max_size: 524288
description: "Chinese ROM extension"
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,315"
note: >
Chinese region ROM extension. Same naming convention as rom1.
Only present on Chinese region consoles.
- name: "<bios>.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: "<bios>.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.