diff --git a/services/wolf.sh b/services/wolf.sh index 74ca723..33018bd 100644 --- a/services/wolf.sh +++ b/services/wolf.sh @@ -277,7 +277,8 @@ EOF echo " - Start Wolf and inject Steam + EmulationStation app profiles" echo " - Create bios/ + retroarch/{cores,shaders,overlays}/ on the game drive and pre-download RetroArch cores (~1.5 GB)" echo " - Offer to auto-download standalone emulator AppImages into emulators/:" - echo " Azahar (3DS), PCSX2 (PS2), Dolphin (GameCube/Wii — unofficial community build)" + echo " Azahar (3DS), PCSX2 (PS2), Dolphin (GameCube/Wii — unofficial community build," + echo " symlinked to Dolphin_Emulator.AppImage so ES-DE's own find-rules can see it)" echo " - Offer to set up AntiMicroX (universal controller-combo hotkey, experimental —" echo " downloads it and wires a Sway launch hook; the button mapping itself is" echo " built later through AntiMicroX's own GUI)" @@ -847,6 +848,24 @@ UDEV _wolf_download_emulator_appimage \ "Dolphin (GameCube/Wii, community AppImage build)" "pkgforge-dev/Dolphin-emu-AppImage" "*[Dd]olphin*.AppImage" "$_EMU_DIR" + # ES-DE's own find-rules (es_find_rules.xml, DOLPHIN entry's ) + # only match a file literally named Dolphin_Emulator*.AppImage under + # ~/Applications — confirmed live: ES-DE reported "Couldn't launch game, + # emulator not found" / unresolved %EMULATOR_DOLPHIN% even with the + # AppImage sitting right there in emulators/, because pkgforge-dev's own + # release asset isn't named that. Point ES-DE at it with a same-directory + # symlink under the exact name it looks for, without renaming/losing the + # real vendor filename. Re-run unconditionally (not just right after a + # fresh download) so this also repairs an existing install that grabbed + # the file before this fix existed. + local _DOLPHIN_REAL + _DOLPHIN_REAL=$(ls "$_EMU_DIR"/*[Dd]olphin*.AppImage 2>/dev/null | grep -vi '/Dolphin_Emulator.*\.AppImage$' | head -1) + if [[ -n "$_DOLPHIN_REAL" ]]; then + ln -sf "$(basename "$_DOLPHIN_REAL")" "$_EMU_DIR/Dolphin_Emulator.AppImage" + chown -h "$ACTUAL_USER:$ACTUAL_USER" "$_EMU_DIR/Dolphin_Emulator.AppImage" 2>/dev/null || true + log_success "Linked $_EMU_DIR/Dolphin_Emulator.AppImage -> $(basename "$_DOLPHIN_REAL") (the filename ES-DE's own find-rules require)" + fi + # ── Optional: AntiMicroX for a universal controller-combo hotkey ───────── # RetroArch's own hotkeys (Settings -> Input -> Input Hotkey Binds) are # global across every libretro core, but Dolphin/PCSX2/Azahar each run as @@ -3233,7 +3252,14 @@ them off to standalone AppImages instead: AppImage (dolphin-emu.org's own Linux distribution is Flatpak-only); this uses a well-regarded but **third-party** community AppImage build (pkgforge-dev) instead. Skip it and install Dolphin's own Flatpak by hand - if you'd rather not run an unofficial build. + if you'd rather not run an unofficial build. ES-DE only auto-detects a + file literally named \`Dolphin_Emulator*.AppImage\` — since pkgforge-dev's + own release asset isn't named that, this installer also drops a + \`Dolphin_Emulator.AppImage\` symlink next to the real download pointing at + it, so ES-DE actually finds it. If you ever grab a different Dolphin + AppImage by hand instead, re-point (or recreate) that symlink at it, or + ES-DE will report "emulator not found" even with the file sitting right + there. All three live in \`emulators/\` → mounted at \`/mnt/games/emulators\` and \`~/Applications\` (where ES-DE's app finder looks). Point ES-DE's