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
f35cc58bbb
commit
0e10083ea4
@@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Read(//tmp/claude/**)",
|
||||||
|
"WebFetch(domain:github.com)",
|
||||||
|
"WebFetch(domain:codeload.github.com)",
|
||||||
|
"WebFetch(domain:channels.nixos.org)",
|
||||||
|
"WebFetch(domain:raw.githubusercontent.com)",
|
||||||
|
"Read(//mnt/c/Users/**)",
|
||||||
|
"Bash(wsl.exe --version)",
|
||||||
|
"Bash(ps -eo pid,pcpu,comm)",
|
||||||
|
"Bash(powershell.exe -NoProfile -Command \"Get-Process vmmemWSL,vmmem,wslservice,msrdc -ErrorAction SilentlyContinue | Select-Object Name,CPU,WorkingSet | Format-Table -AutoSize\")",
|
||||||
|
"Read(//nix/store/**)",
|
||||||
|
"Bash(zsh -ic 'bindkey | grep -Ei \"substring|up-line|down-line|\\\\^\\\\[\\\\[A|\\\\^\\\\[OA|\\\\^\\\\[\\\\[B|\\\\^\\\\[OB\"; echo \"--- widgets exist? ---\"; zle -la 2>/dev/null | grep substring || echo \"\\(zle -la only works interactively\\)\"')",
|
||||||
|
"Read(//home/emmathorpe/.vscode-server/**)",
|
||||||
|
"Bash(python3 *)",
|
||||||
|
"Bash(command -v gh)",
|
||||||
|
"Bash(gh auth *)",
|
||||||
|
"Bash(tea login *)",
|
||||||
|
"Read(//home/emmathorpe/.ssh/**)",
|
||||||
|
"Read(//tmp/**)",
|
||||||
|
"Bash(/nix/store/kjnr6lh4r8vcf9wr38zylgj1s5a9hl6q-probe2/bin/bat --paging=never -n f1.txt)",
|
||||||
|
"Bash(/nix/store/kjnr6lh4r8vcf9wr38zylgj1s5a9hl6q-probe2/bin/bat --paging=never -A f1.txt)",
|
||||||
|
"Bash(timeout 25 curl -sS -o /dev/null -w \"%{http_code}\\\\n\" https://docs.lyrapup.pet/)",
|
||||||
|
"Bash(timeout 25 curl -sS -o /dev/null -w \"%{http_code}\\\\n\" https://docs.lyrapup.pet/nixfiles/)",
|
||||||
|
"Bash(timeout 40 tea pr 96 --login code.emmathe.dev --repo lyrathorpe/nixfiles)",
|
||||||
|
"Bash(sort -t' ' -k3)",
|
||||||
|
"Bash(tea pr *)",
|
||||||
|
"Bash(tea repo *)",
|
||||||
|
"Bash(command -v wsl.exe)",
|
||||||
|
"Bash(wsl.exe -l -q)",
|
||||||
|
"Bash(wsl.exe -u root -d NixOS -- id)",
|
||||||
|
"Bash(docker build *)",
|
||||||
|
"WebSearch",
|
||||||
|
"WebFetch(domain:www.last.fm)",
|
||||||
|
"WebFetch(domain:wiki.servarr.com)",
|
||||||
|
"Bash(docker run *)",
|
||||||
|
"Bash(tea repos *)",
|
||||||
|
"Bash(curl -s -H 'Authorization: token __CMDSUB_OUTPUT__' https://code.emmathe.dev/api/v1/repos/lyrathorpe/music-mirror)",
|
||||||
|
"Bash(curl -s -H 'Authorization: token __TRACKED_VAR__' https://code.emmathe.dev/api/v1/user)",
|
||||||
|
"Bash(curl -s -H 'Authorization: token __CMDSUB_OUTPUT__' https://code.emmathe.dev/api/v1/repos/lyrathorpe/music-curator/actions/tasks?limit=3)",
|
||||||
|
"Read(//home/emmathorpe/.config/tea/**)",
|
||||||
|
"Bash(curl -s -H 'Authorization: token __CMDSUB_OUTPUT__' https://code.emmathe.dev/api/v1/repos/lyrathorpe/music-curator/actions/secrets)",
|
||||||
|
"Bash(curl -s -H 'Authorization: token __CMDSUB_OUTPUT__' https://code.emmathe.dev/api/v1/repos/lyrathorpe/music-curator/actions/jobs/2629/logs)",
|
||||||
|
"Bash(gh search *)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"enabledMcpjsonServers": ["jenkins-uce", "jenkins-stf"],
|
||||||
|
"disabledMcpjsonServers": ["grafana"]
|
||||||
|
}
|
||||||
+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