From 62cf076375d9843974688f19e5fc404461666d8b Mon Sep 17 00:00:00 2001 From: Toast Date: Sun, 29 Dec 2024 16:05:51 +0100 Subject: [PATCH 1/5] Gaming: don't add games to the store --- roles/gaming/programs/cemu.nix | 14 ------------ roles/gaming/programs/pcsx2.nix | 35 +++-------------------------- roles/gaming/programs/retroarch.nix | 29 +----------------------- 3 files changed, 4 insertions(+), 74 deletions(-) diff --git a/roles/gaming/programs/cemu.nix b/roles/gaming/programs/cemu.nix index 80178f8..588fd39 100644 --- a/roles/gaming/programs/cemu.nix +++ b/roles/gaming/programs/cemu.nix @@ -2,20 +2,6 @@ home-manager.users.toast = { home = { packages = [pkgs.cemu]; - file = { - "Games/Isos/Wii U/Kirby and the Rainbow Paintbrush.wux".source = ( - pkgs.fetchurl { - url = "http://dl.everest.tailscale/Wii%20U/Kirby%20and%20the%20Rainbow%20Paintbrush.wux"; - hash = "sha256-taPGf709N2p3GlqqT92+SbOeD7QNKFUfB9X5urWVQps="; - } - ); - "Games/Isos/Wii U/Mario Kary 8.wux".source = ( - pkgs.fetchurl { - url = "http://dl.everest.tailscale/Wii%20U/Mario%20Kart%208.wux"; - hash = "sha256-O6lOkLUKPZi+FiEWJQQEeiEXOo+GTUecoSpGjE811k0="; - } - ); - }; }; }; } diff --git a/roles/gaming/programs/pcsx2.nix b/roles/gaming/programs/pcsx2.nix index b378ca2..4bf28a4 100644 --- a/roles/gaming/programs/pcsx2.nix +++ b/roles/gaming/programs/pcsx2.nix @@ -3,44 +3,15 @@ lib, ... }: let - ps2-isos = pkgs.symlinkJoin { - name = "ps2-isos"; - paths = - lib.lists.forEach [ - (pkgs.fetchzip { - url = "https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation%202/007%20-%20Nightfire%20%28USA%29.zip"; - hash = "sha256-66Ey0SqC3Tk02Af+xR6rpxYSkO0n83NWYPCt4M3CUWo="; - }) - (pkgs.fetchzip { - url = "https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation%202/TimeSplitters%202%20%28USA%29.zip"; - hash = "sha256-UPED4/MF9fjTOgiIJy+CSbuO9cJr3CsR/gEquY6GfsU="; - }) - ] - compress; - }; - - compress = iso: - pkgs.runCommand "compressed-ps2-isos" {} '' - mkdir $out - cd ${iso} - for file in ./* - do - ${pkgs.mame-tools}/bin/chdman createdvd -i "$file" -o "$out/''${file%.iso}.chd" - done - ''; - pcsx2-bios = pkgs.fetchzip { url = "https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation%202%20-%20BIOS%20Images/ps2-0200a-20040614.zip"; hash = "sha256-wMvswgmsKl+cJl49VlVW84tvU5Jzd+2dl07SOiUDtwA="; }; in { home-manager.users.toast = { - home = { - packages = with pkgs; [ - pcsx2 - ]; - file."Games/Isos/PS2".source = ps2-isos; - }; + home.packages = with pkgs; [ + pcsx2 + ]; xdg.configFile = { #PCSX2 silently overwrites the symlink so I need to force it's creation "PCSX2/inis/PCSX2.ini".force = true; diff --git a/roles/gaming/programs/retroarch.nix b/roles/gaming/programs/retroarch.nix index ffa46a3..f9263cd 100644 --- a/roles/gaming/programs/retroarch.nix +++ b/roles/gaming/programs/retroarch.nix @@ -1,22 +1,4 @@ -{pkgs, ...}: let - snes-roms = [ - # ActRaiser - (pkgs.fetchzip { - url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/ActRaiser%20%28USA%29.zip"; - hash = "sha256-yxIL5Pqlp8xsx7wvNO1MlB8ffDjS0xpE+yrEfMj61As="; - }) - # Kirby Super Star - (pkgs.fetchzip { - url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Kirby%20Super%20Star%20%28USA%29.zip"; - hash = "sha256-NX5OjCthf4ZiAhamclRBRk8GiMjZX3JLeShm8sQdDfc="; - }) - # Super Mario Kart - (pkgs.fetchzip { - url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Super%20Mario%20Kart%20%28USA%29.zip"; - hash = "sha256-RLBxPBmBrXCuPdnWE07KamBNgGJ5IntQVUPeij+2HUI="; - }) - ]; -in { +{pkgs, ...}: { home-manager.users.toast = { home = { packages = [ @@ -62,15 +44,6 @@ in { } ) ]; - file."Games/Roms/SNES/" = { - onChange = '' - ${pkgs.retroarch}/bin/retroarch --scan "/home/toast/Games/Roms/SNES" - ''; - source = pkgs.symlinkJoin { - name = "snes-roms"; - paths = [snes-roms]; - }; - }; }; # Retroarch is dumb since it doesn't generate some folders (but it does for others) systemd.user.tmpfiles.rules = [ From 68994153d03c6aa6fc849f9dc9b842594bb04f75 Mon Sep 17 00:00:00 2001 From: Toast Date: Sun, 29 Dec 2024 16:08:08 +0100 Subject: [PATCH 2/5] Gaming/pcsx2: fix typos in syncthing ignore file --- roles/gaming/programs/pcsx2.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/gaming/programs/pcsx2.nix b/roles/gaming/programs/pcsx2.nix index 4bf28a4..b6ac4b2 100644 --- a/roles/gaming/programs/pcsx2.nix +++ b/roles/gaming/programs/pcsx2.nix @@ -121,10 +121,10 @@ in { }; home-manager.users.toast.xdg.configFile = { "PCSX2/.stignore".text = '' - cahe + cache bios gamesettings - inis/PCSX2.int* + inis/PCSX2.ini* inis/debuggersettings inputprofiles logs From fcba25620bb19e8f05dd8b1e06487a2051db825c Mon Sep 17 00:00:00 2001 From: Toast Date: Sun, 29 Dec 2024 16:09:15 +0100 Subject: [PATCH 3/5] Gaming/syncthing: sync games with syncthing --- roles/gaming/services/syncthing.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/roles/gaming/services/syncthing.nix b/roles/gaming/services/syncthing.nix index 7b27b67..0219bac 100644 --- a/roles/gaming/services/syncthing.nix +++ b/roles/gaming/services/syncthing.nix @@ -23,6 +23,12 @@ devices = ["server" "pc" "winmax2" "steamdeck"]; path = "~/.local/share/Steam/steamapps/compatdata/1761390/pfx/drive_c/users/steamuser/AppData/Roaming/EDEN/"; }; + "games" = { + label = "Games"; + id = "mwzph-gf2df"; + devices = ["server" "pc" "winmax2" "steamdeck"]; + path = "~/Games"; + }; }; home-manager.users.toast.home.file."steam-201810-ignore" = { target = ".local/share/Steam/steamapps/compatdata/201810/pfx/drive_c/users/steamuser/Saved Games/MachineGames/Wolfenstein The New Order/.stignore"; From 16d339171490231188ee9cd180e077898b07e6fe Mon Sep 17 00:00:00 2001 From: Toast Date: Sun, 29 Dec 2024 16:10:02 +0100 Subject: [PATCH 4/5] Gaming/retroarch: update retroarch library automatically --- roles/gaming/programs/retroarch.nix | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/roles/gaming/programs/retroarch.nix b/roles/gaming/programs/retroarch.nix index f9263cd..60f4bb7 100644 --- a/roles/gaming/programs/retroarch.nix +++ b/roles/gaming/programs/retroarch.nix @@ -51,6 +51,28 @@ "d /%h/.local/share/retroarch/saves" "d /%h/.local/share/retroarch/states" ]; + systemd.user.paths = { + snes-roms = { + Unit.Description = "Monitor SNES rom path for changes"; + Path = { + PathChanged = "/%h/Games/SNES"; + Unit = "update-retroarch-library.service"; + }; + Install.WantedBy = ["default.target"]; + }; + }; + systemd.user.services.update-retroarch-library = { + Service = { + Type = "oneshot"; + ExecStart = pkgs.writeShellScript "scan-snes-games" '' + ${pkgs.libnotify}/bin/notify-send -a RetroArch \ + -i retroarch \ + "SNES games changed!" \ + "Scanning $TRIGGER_PATH..." + ${pkgs.retroarch}/bin/retroarch --scan "/home/toast/Games/SNES" + ''; + }; + }; }; # Sync saves and some other stuff From 7eeff4c125f9cd9cca2465d4db8540e1965369e2 Mon Sep 17 00:00:00 2001 From: Toast Date: Sun, 29 Dec 2024 16:13:33 +0100 Subject: [PATCH 5/5] Server/syncthing: add games folder --- roles/server/syncthing.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/roles/server/syncthing.nix b/roles/server/syncthing.nix index fe174f1..84d20cc 100755 --- a/roles/server/syncthing.nix +++ b/roles/server/syncthing.nix @@ -44,6 +44,12 @@ devices = ["server" "pc" "winmax2" "steamdeck"]; path = "${config.services.syncthing.dataDir}/project-eden-saves"; }; + "games" = { + label = "Games"; + id = "jxuou-2yjnu"; + devices = ["steamdeck" "server" "pc" "winmax2"]; + path = "${config.services.syncthing.dataDir}/games"; + }; }; }; systemd.services.syncthing.serviceConfig = {