Compare commits

...

5 commits

5 changed files with 40 additions and 76 deletions

View file

@ -2,20 +2,6 @@
home-manager.users.toast = { home-manager.users.toast = {
home = { home = {
packages = [pkgs.cemu]; 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=";
}
);
};
}; };
}; };
} }

View file

@ -3,44 +3,15 @@
lib, lib,
... ...
}: let }: 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 { pcsx2-bios = pkgs.fetchzip {
url = "https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation%202%20-%20BIOS%20Images/ps2-0200a-20040614.zip"; url = "https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation%202%20-%20BIOS%20Images/ps2-0200a-20040614.zip";
hash = "sha256-wMvswgmsKl+cJl49VlVW84tvU5Jzd+2dl07SOiUDtwA="; hash = "sha256-wMvswgmsKl+cJl49VlVW84tvU5Jzd+2dl07SOiUDtwA=";
}; };
in { in {
home-manager.users.toast = { home-manager.users.toast = {
home = { home.packages = with pkgs; [
packages = with pkgs; [
pcsx2 pcsx2
]; ];
file."Games/Isos/PS2".source = ps2-isos;
};
xdg.configFile = { xdg.configFile = {
#PCSX2 silently overwrites the symlink so I need to force it's creation #PCSX2 silently overwrites the symlink so I need to force it's creation
"PCSX2/inis/PCSX2.ini".force = true; "PCSX2/inis/PCSX2.ini".force = true;
@ -150,10 +121,10 @@ in {
}; };
home-manager.users.toast.xdg.configFile = { home-manager.users.toast.xdg.configFile = {
"PCSX2/.stignore".text = '' "PCSX2/.stignore".text = ''
cahe cache
bios bios
gamesettings gamesettings
inis/PCSX2.int* inis/PCSX2.ini*
inis/debuggersettings inis/debuggersettings
inputprofiles inputprofiles
logs logs

View file

@ -1,22 +1,4 @@
{pkgs, ...}: let {pkgs, ...}: {
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 {
home-manager.users.toast = { home-manager.users.toast = {
home = { home = {
packages = [ 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) # Retroarch is dumb since it doesn't generate some folders (but it does for others)
systemd.user.tmpfiles.rules = [ systemd.user.tmpfiles.rules = [
@ -78,6 +51,28 @@ in {
"d /%h/.local/share/retroarch/saves" "d /%h/.local/share/retroarch/saves"
"d /%h/.local/share/retroarch/states" "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 # Sync saves and some other stuff

View file

@ -23,6 +23,12 @@
devices = ["server" "pc" "winmax2" "steamdeck"]; devices = ["server" "pc" "winmax2" "steamdeck"];
path = "~/.local/share/Steam/steamapps/compatdata/1761390/pfx/drive_c/users/steamuser/AppData/Roaming/EDEN/"; 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" = { 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"; target = ".local/share/Steam/steamapps/compatdata/201810/pfx/drive_c/users/steamuser/Saved Games/MachineGames/Wolfenstein The New Order/.stignore";

View file

@ -44,6 +44,12 @@
devices = ["server" "pc" "winmax2" "steamdeck"]; devices = ["server" "pc" "winmax2" "steamdeck"];
path = "${config.services.syncthing.dataDir}/project-eden-saves"; 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 = { systemd.services.syncthing.serviceConfig = {