gta-iv.nix (1852B)
1 { 2 lib, 3 fetchzip, 4 p7zip, 5 runCommand, 6 symlinkJoin, 7 unrar-free, 8 writeShellApplication, 9 writeText, 10 }: 11 let 12 fusion-fix = fetchzip { 13 url = "https://github.com/ThirteenAG/GTAIV.EFLC.FusionFix/releases/download/v4.0.5/GTAIV.EFLC.FusionFix.zip"; 14 hash = "sha256-bi6/TteAsIciihzDHbhMt4+RrO1N0Dydd7ZI44xloUM="; 15 stripRoot = false; 16 }; 17 18 radio-restorer-release = fetchzip { 19 url = "https://github.com/Tomasak/GTA-Downgraders/releases/download/iv-latest/Radio.Restoration.Mod.23-05-2025.rar"; 20 hash = "sha256-PpXXootagsYdFMR1EOoRS0PPijNlV6IJeFg1Ae5GLXs="; 21 nativeBuildInputs = [ unrar-free ]; 22 stripRoot = false; 23 }; 24 25 radio-restorer = 26 runCommand "radio-restorer" 27 { 28 buildInputs = [ p7zip ]; 29 } 30 '' 31 mkdir $out && pushd $out 32 7z x ${lib.escapeShellArg radio-restorer-release}/"Resources/Radio Restorer/data1.dat" -y 33 7z x ${lib.escapeShellArg radio-restorer-release}/"Resources/Radio Restorer/opVANILLA.dat" -y 34 7z x ${lib.escapeShellArg radio-restorer-release}/"Resources/Radio Restorer/opSPLITbase.dat" -y 35 7z x ${lib.escapeShellArg radio-restorer-release}/"Resources/Radio Restorer/opSPLITVANILLA.dat" -y 36 ''; 37 38 mods = symlinkJoin { 39 name = "gta-iv-mods"; 40 paths = [ 41 fusion-fix 42 radio-restorer 43 ]; 44 }; 45 46 help = writeText "gta-iv-mods-info" '' 47 Remember to add to launch options: 48 49 WINEDLLOVERRIDES="dinput8=n,b" %command% 50 ''; 51 in 52 writeShellApplication { 53 name = "install-mods-gta-iv"; 54 runtimeInputs = [ 55 p7zip 56 ]; 57 text = '' 58 out="''${1:-}" 59 if [ -z "$out" ]; then 60 out="$HOME/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/Grand Theft Auto IV/GTAIV" 61 printf "Defaulting to: %s\n" "$out" >&2 62 fi 63 pushd "$out" 64 cp -vriL --no-preserve=mode ${mods}/. . 65 cat ${help} 66 ''; 67 }