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) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4e3347cb8c
commit
730bcd1a5d
+11
-9
@@ -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
|
`XKB_DEFAULT_VARIANT=dvorak` on cage). Only relevant if someone else has to type
|
||||||
a password.
|
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
|
RetroArch, PCSX2, Dolphin and Clone Hero are installed system-wide but are not
|
||||||
shortcuts they appear in Big Picture and inherit Steam Input, so the controller
|
Steam titles. Added as Steam shortcuts they appear in Big Picture and inherit
|
||||||
works in them without further configuration.
|
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
|
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
|
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.
|
# Steam must be closed -- it rewrites shortcuts.vdf on exit.
|
||||||
steamtinkerlaunch addnonsteamgame -an="RetroArch" -ep="$(command -v retroarch)"
|
steamtinkerlaunch addnonsteamgame -an="RetroArch" -ep="$(command -v retroarch)"
|
||||||
steamtinkerlaunch addnonsteamgame -an="PCSX2" -ep="$(command -v pcsx2-qt)"
|
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)"
|
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.
|
or PS2 title misbehaves.
|
||||||
|
|
||||||
That has already happened for PS2: the LRPS2 core was not good enough in
|
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
|
practice. **`pkgs.pcsx2` and `pkgs.dolphin-emu` are both installed** in
|
||||||
the core and is what PS2 titles should be run through. `pkgs.dolphin-emu` is not
|
`gaming.nix` alongside their cores, and are what PS2, GameCube and Wii titles
|
||||||
installed; add it the same way if GameCube or Wii turns out to need it.
|
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
|
RetroArch. The hardware is not the limit here — a GTX 1070 and a Haswell i7 run
|
||||||
PS2 and Wii comfortably.
|
PS2 and Wii comfortably.
|
||||||
|
|
||||||
@@ -278,7 +280,7 @@ once, in their own UIs:
|
|||||||
- **Steam** — Settings → Storage → the `+` control → add `/srv/games/steam` as a
|
- **Steam** — Settings → Storage → the `+` control → add `/srv/games/steam` as a
|
||||||
library folder. Games installed there survive a reinstall of the OS. That
|
library folder. Games installed there survive a reinstall of the OS. That
|
||||||
picker is the broken one described under
|
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
|
when it comes up blank, use Steam's own console instead — open Steam with
|
||||||
`steam -console`, pick the **CONSOLE** tab and run:
|
`steam -console`, pick the **CONSOLE** tab and run:
|
||||||
|
|
||||||
|
|||||||
@@ -246,6 +246,10 @@ in
|
|||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
retroarch
|
retroarch
|
||||||
pkgs.clonehero
|
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.pcsx2
|
||||||
pkgs.dualsensectl # DualSense LED/battery/mic control from the shell
|
pkgs.dualsensectl # DualSense LED/battery/mic control from the shell
|
||||||
# Writes shortcuts.vdf from the shell. Steam's own "Add a Non-Steam Game"
|
# Writes shortcuts.vdf from the shell. Steam's own "Add a Non-Steam Game"
|
||||||
|
|||||||
Reference in New Issue
Block a user