feat: re-profile 22 emulators, refactor validation to common.py

batch re-profiled nekop2 through pokemini. mupen64plus renamed to
mupen64plus_next. new profiles: nes, mupen64plus_next.
validation functions (_build_validation_index, check_file_validation)
consolidated in common.py — single source of truth for verify.py
and generate_pack.py. pipeline 100% consistent on all 6 platforms.
This commit is contained in:
Abdessamad Derraz
2026-03-24 22:31:22 +01:00
parent 94000bdaef
commit 0543165ed2
33 changed files with 1449 additions and 783 deletions
+103 -22
View File
@@ -1,30 +1,111 @@
# LRPS2 — Sony PlayStation 2 (libretro)
# ref: libretro/lrps2, docs.libretro.com/library/lrps2
# Same BIOS as PCSX2 standalone, placed in pcsx2/bios/ subfolder.
# Also needs GameIndex.yaml for game compatibility database.
#
# doc vs source: docs say "no specific filename required" for BIOS, any
# valid 4 MB PS2 BIOS dump works. Docs do not list GameIndex.yaml as a
# BIOS file, but the source code loads it from pcsx2/resources/ and it
# is needed for game-specific patches and compatibility fixes.
# SCPH-10000 not recommended per docs (lower compatibility).
# 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]
source: "https://github.com/libretro/lrps2"
systems:
- sony-playstation-2
systems: [sony-playstation-2]
bios_directory: "pcsx2/bios/"
resources_directory: "pcsx2/resources/"
notes: |
Libretro port of PCSX2. Uses the same BIOS files as standalone PCSX2.
BIOS must NOT be zipped. Any valid PS2 BIOS works (SCPH-10000 not
recommended due to lower compatibility). BIOS goes in pcsx2/bios/.
GameIndex.yaml goes in pcsx2/resources/ and is needed for proper
game-specific settings (patches, fixes).
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: GameIndex.yaml
system: sony-playstation-2
- name: "<bios>.bin"
path: "pcsx2/bios/"
required: true
note: "game compatibility database, not a BIOS — pcsx2/resources/GameIndex.yaml"
source_ref: "pcsx2/GameIndex.yaml"
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: "<bios>.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 <biospath>.rom1 (appended) then <biosbase>.rom1
(extension replaced). Silently skipped if not found.
- name: "<bios>.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: "<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.