From 730bcd1a5dc8dcf9b86b2674f0054aaf38739d6b Mon Sep 17 00:00:00 2001 From: Emma Thorpe Date: Tue, 1 Sep 2026 10:08:56 +0100 Subject: [PATCH] feat(console): add the standalone Dolphin emulator The libretro dolphin core lags upstream on compatibility in the same way LRPS2 does, so install pkgs.dolphin-emu next to pkgs.pcsx2 and run GameCube and Wii titles through it. The cores stay for the sake of a single frontend and a shared save/state layout. Co-Authored-By: Claude Opus 5 (1M context) --- docs/hosts/console.md | 20 +++++++++++--------- hosts/Console/gaming.nix | 4 ++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/docs/hosts/console.md b/docs/hosts/console.md index cb9710d..a487d9e 100644 --- a/docs/hosts/console.md +++ b/docs/hosts/console.md @@ -124,11 +124,11 @@ The greeter is **Dvorak**, like every other host here (`modules/sway.nix` forces `XKB_DEFAULT_VARIANT=dvorak` on cage). Only relevant if someone else has to type a password. -### Adding RetroArch, PCSX2 and Clone Hero to Big Picture +### Adding non-Steam titles to Big Picture -All three are installed system-wide but are not Steam titles. Added as Steam -shortcuts they appear in Big Picture and inherit Steam Input, so the controller -works in them without further configuration. +RetroArch, PCSX2, Dolphin and Clone Hero are installed system-wide but are not +Steam titles. Added as Steam shortcuts they appear in Big Picture and inherit +Steam Input, so the controller works in them without further configuration. Steam's own **Games → Add a Non-Steam Game** is the documented route and is also the one that tends not to work. Both that dialog's **Browse** button and the @@ -156,6 +156,7 @@ Independent of the dialog, `steamtinkerlaunch` writes `shortcuts.vdf` directly: # Steam must be closed -- it rewrites shortcuts.vdf on exit. steamtinkerlaunch addnonsteamgame -an="RetroArch" -ep="$(command -v retroarch)" steamtinkerlaunch addnonsteamgame -an="PCSX2" -ep="$(command -v pcsx2-qt)" +steamtinkerlaunch addnonsteamgame -an="Dolphin" -ep="$(command -v dolphin-emu)" steamtinkerlaunch addnonsteamgame -an="Clone Hero" -ep="$(command -v clonehero)" ``` @@ -221,11 +222,12 @@ cores lag on compatibility and are the first place to look when a GameCube, Wii or PS2 title misbehaves. That has already happened for PS2: the LRPS2 core was not good enough in -practice, so **standalone `pkgs.pcsx2` is installed** in `gaming.nix` alongside -the core and is what PS2 titles should be run through. `pkgs.dolphin-emu` is not -installed; add it the same way if GameCube or Wii turns out to need it. +practice. **`pkgs.pcsx2` and `pkgs.dolphin-emu` are both installed** in +`gaming.nix` alongside their cores, and are what PS2, GameCube and Wii titles +should be run through. The cores stay for the sake of a single frontend and a +shared save/state layout. -Both are controller-driven and can be added to Big Picture the same way as +Both are controller-driven and are added to Big Picture the same way as RetroArch. The hardware is not the limit here — a GTX 1070 and a Haswell i7 run PS2 and Wii comfortably. @@ -278,7 +280,7 @@ once, in their own UIs: - **Steam** — Settings → Storage → the `+` control → add `/srv/games/steam` as a library folder. Games installed there survive a reinstall of the OS. That picker is the broken one described under - [Adding RetroArch, PCSX2 and Clone Hero to Big Picture](#adding-retroarch-pcsx2-and-clone-hero-to-big-picture); + [Adding non-Steam titles to Big Picture](#adding-non-steam-titles-to-big-picture); when it comes up blank, use Steam's own console instead — open Steam with `steam -console`, pick the **CONSOLE** tab and run: diff --git a/hosts/Console/gaming.nix b/hosts/Console/gaming.nix index 3332680..7b103a3 100644 --- a/hosts/Console/gaming.nix +++ b/hosts/Console/gaming.nix @@ -246,6 +246,10 @@ in environment.systemPackages = [ retroarch pkgs.clonehero + # Standalone GameCube/Wii and PS2, alongside the libretro cores of the same + # name: upstream effort goes into these builds, so they are what the two + # heaviest systems should actually be run through. + pkgs.dolphin-emu pkgs.pcsx2 pkgs.dualsensectl # DualSense LED/battery/mic control from the shell # Writes shortcuts.vdf from the shell. Steam's own "Add a Non-Steam Game"