diff --git a/services/wolf.sh b/services/wolf.sh index f6cf110..0343f43 100644 --- a/services/wolf.sh +++ b/services/wolf.sh @@ -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 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 = '\n\n' +content = re.sub(r'[ \t]*\s*ps2.*?[ \t]*\n?', '', content, flags=re.DOTALL) +block = ''' + ps2 + Sony PlayStation 2 + %ROMPATH%/ps2 + .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 + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcee2_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM% + %EMULATOR_PCSX2% -batch %ROM% + %EMULATOR_PCSX2-LEGACY% --nogui %ROM% + %EMULATOR_PLAY!% --fullscreen --disc %ROM% + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + ps2 + ps2 + +''' +content = content.replace('', block + '') +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