Backfill PCEE2 as a PS2 alternative emulator in ES-DE
The PCEE2 libretro core (a separate, actively-developed PCSX2 port, WizzardSK/pcee2-libretro) is only in ES-DE's own bundled es_systems.xml as of 3.5.0, which hasn't been released yet - confirmed against ES-DE's own CHANGELOG.md and by diffing the v3.4.1 tag's real ps2 system block against git master's (identical except for this one missing <command> line). ghcr.io/games-on-whales/es-de:edge always installs the latest *released* AppImage (confirmed against gow's own Dockerfile, which queries GitLab's releases API), so the container this repo runs genuinely has no PCEE2 entry at all yet - not a missing core download, a missing menu entry. Backfills it via the same esde-custom-systems/es_systems.xml mechanism already used for the TI-99/4A and Wii U customizations, replicating the real v3.4.1 ps2 block verbatim plus the one new command (as the default, matching upstream's own placement). The core file itself needs no extra handling - confirmed live against the libretro buildbot that pcee2_libretro.so.zip is already covered by the normal RetroArch cores pre-download. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VLX1yYKJExGSXmgUhxKQG6
This commit is contained in:
@@ -1334,6 +1334,61 @@ WIIUXMLPY
|
||||
log_info "system in ES-DE (per-game or per-system, via its own 'Alternative emulators' option)."
|
||||
fi
|
||||
|
||||
# ── PS2: backfill the PCEE2 RetroArch core as an alternative emulator ──────
|
||||
# ghcr.io/games-on-whales/es-de:edge only ever installs ES-DE's latest
|
||||
# RELEASED AppImage (confirmed against gow's own apps/es-de/build/Dockerfile
|
||||
# — it queries GitLab's releases API for the newest tag, not git master),
|
||||
# which is currently v3.4.1. PCEE2 (a separate, actively-developed libretro
|
||||
# PCSX2 port, WizzardSK/pcee2-libretro) was only added to ES-DE's own
|
||||
# bundled es_systems.xml under "Version 3.5.0 (in development)" — confirmed
|
||||
# against ES-DE's real CHANGELOG.md and by diffing the v3.4.1 tag's actual
|
||||
# ps2 system block against git master's: identical except for this one
|
||||
# missing <command> line. So on the version this container actually runs,
|
||||
# "PCEE2" genuinely isn't in the alternative-emulators list at all yet —
|
||||
# not a missing download, a missing menu entry. This backfills it (as the
|
||||
# new default, matching upstream's own placement) while every other field
|
||||
# and command is copied verbatim from the real v3.4.1 block, so nothing
|
||||
# else about the ps2 system changes. The actual pcee2_libretro.so core
|
||||
# file doesn't need any extra download step here — confirmed live against
|
||||
# the libretro buildbot's own index that it's already covered by this
|
||||
# installer's normal "./manage.sh cores all" (the default RetroArch core
|
||||
# pre-download prompt below), same as every other libretro core.
|
||||
mkdir -p "$GAME_STORAGE_DIR/esde-custom-systems"
|
||||
local _PS2_XML="$GAME_STORAGE_DIR/esde-custom-systems/es_systems.xml"
|
||||
backup_if_exists "$_PS2_XML"
|
||||
python3 - "$_PS2_XML" << 'PS2XMLPY'
|
||||
import re, sys
|
||||
path = sys.argv[1]
|
||||
try:
|
||||
with open(path) as f:
|
||||
content = f.read()
|
||||
except FileNotFoundError:
|
||||
content = '<systemList>\n</systemList>\n'
|
||||
content = re.sub(r'[ \t]*<system>\s*<name>ps2</name>.*?</system>[ \t]*\n?', '', content, flags=re.DOTALL)
|
||||
block = ''' <system>
|
||||
<name>ps2</name>
|
||||
<fullname>Sony PlayStation 2</fullname>
|
||||
<path>%ROMPATH%/ps2</path>
|
||||
<extension>.bin .BIN .chd .CHD .ciso .CISO .cso .CSO .desktop .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG .zso .ZSO</extension>
|
||||
<command label="PCEE2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcee2_libretro.so %ROM%</command>
|
||||
<command label="LRPS2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
|
||||
<command label="PCSX2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
|
||||
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% -batch %ROM%</command>
|
||||
<command label="PCSX2 Legacy (Standalone)">%EMULATOR_PCSX2-LEGACY% --nogui %ROM%</command>
|
||||
<command label="Play! (Standalone)">%EMULATOR_PLAY!% --fullscreen --disc %ROM%</command>
|
||||
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
|
||||
<platform>ps2</platform>
|
||||
<theme>ps2</theme>
|
||||
</system>
|
||||
'''
|
||||
content = content.replace('</systemList>', block + '</systemList>')
|
||||
with open(path, 'w') as f:
|
||||
f.write(content)
|
||||
PS2XMLPY
|
||||
chown "$ACTUAL_USER:$ACTUAL_USER" "$_PS2_XML"
|
||||
log_success "PS2: added PCEE2 as the default RetroArch core (custom_systems/es_systems.xml) — ES-DE's"
|
||||
log_info "own build doesn't ship it yet (added upstream in the not-yet-released 3.5.0)"
|
||||
|
||||
# ── App selection ─────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════"
|
||||
@@ -3946,6 +4001,26 @@ RetroArch/core-based option. Same config either way — ES-DE's embedded
|
||||
RetroArch and the standalone RetroArch app (if you added it) share the
|
||||
same \`retroarch/\` cores/saves/system directories.
|
||||
|
||||
**PS2 has three RetroArch-core alternative-emulator labels — PCEE2,
|
||||
LRPS2, and PCSX2** — and it's worth knowing they're not three different
|
||||
cores: LRPS2 and PCSX2 both point at the exact same file
|
||||
(\`pcsx2_libretro.so\`, ES-DE's own naming carried over from when the core
|
||||
was called LRPS2 upstream), while **PCEE2** (\`pcee2_libretro.so\`) is a
|
||||
genuinely separate, actively-developed libretro port
|
||||
([WizzardSK/pcee2-libretro](https://github.com/WizzardSK/pcee2-libretro)).
|
||||
ES-DE only added PCEE2 as an alternative emulator (as the new *default*,
|
||||
in fact) in version 3.5.0 — confirmed against ES-DE's own CHANGELOG.md —
|
||||
which hasn't been released yet as of this writing, so the actual ES-DE
|
||||
build \`ghcr.io/games-on-whales/es-de:edge\` ships (it always installs the
|
||||
latest *released* AppImage, confirmed against gow's own Dockerfile) is
|
||||
still on 3.4.1 and genuinely has no PCEE2 entry at all. This installer
|
||||
backfills it via \`esde-custom-systems/es_systems.xml\` (same mechanism as
|
||||
the TI-99/4A and Wii U customizations above) so it shows up as an
|
||||
alternative — and as the default — regardless. The core file itself needs
|
||||
no special handling: it's on the official libretro buildbot like every
|
||||
other core, so the normal RetroArch cores pre-download below already
|
||||
covers it.
|
||||
|
||||
The Dolphin core's \`Sys\` folder (compatibility DB + IPL data it needs to
|
||||
boot Wii titles at all) is fetched automatically now, right after the core
|
||||
itself downloads — no more manual trip through RetroArch's own Online
|
||||
|
||||
Reference in New Issue
Block a user