From 44712d613da92ee2a7a64a540bdc2cdb2623b307 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 29 Jun 2023 00:11:39 +0200 Subject: [PATCH] Add by currently broken titles --- flake.nix | 7 ++--- games/anil.nix | 69 ++++++++++++++++++++++++++++++++++++++++++ games/infinity.nix | 74 +++++++++++++++++++++++++++++++++++++++++++++ games/xenoverse.nix | 73 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 219 insertions(+), 4 deletions(-) create mode 100644 games/anil.nix create mode 100644 games/infinity.nix create mode 100644 games/xenoverse.nix diff --git a/flake.nix b/flake.nix index 8ec309f..b5cef8e 100644 --- a/flake.nix +++ b/flake.nix @@ -52,16 +52,15 @@ pokemon-project-untamed = callPackage ./games/project-untamed.nix { }; + pokemon-infinity = callPackage ./games/infinity.nix { wine = winePackages.full; wineArch = "win32"; }; pokemon-uranium = callPackage ./games/uranium.nix { wine = winePackages.full; wineArch = "win32"; }; pokemon-clockwork = callPackage ./games/clockwork.nix { wine = winePackages.full; wineArch = "win32"; }; + pokemon-xenoverse = callPackage ./games/xenoverse.nix { wine = winePackages.full; wineArch = "win32"; }; - - - - + pokemon-anil = callPackage ./games/anil.nix { wine = winePackages.full; wineArch = "win32"; }; }; diff --git a/games/anil.nix b/games/anil.nix new file mode 100644 index 0000000..8cd0fc8 --- /dev/null +++ b/games/anil.nix @@ -0,0 +1,69 @@ +{ lib +, fetchFromDrive +, fetchurl +, mkWindowsApp +, wine +, wineArch +, unrar +, makeDesktopItem +, makeDesktopIcon +, copyDesktopItems +, copyDesktopIcons +}: +let uid = "pkmn-anil"; +in mkWindowsApp rec { + pname = "Pokemon Anil"; + version = "1.12"; + meta.homepage = "https://pokemerald.com/pokemon-anil-download-completed-english-version/"; + meta.description = "The Definitive Kanto Remake, presented in a timeless form using Pokémon BW2 graphics, updated narrative and many QoLs and options that brings infinite replayability"; + + # 013c:err:module:import_dll Library libglib-2.0-0.dll (which is needed by L"C:\\pkmn-anil\\fluidsynth.dll") not found + # 013c:err:module:import_dll Library libportaudio-2.dll (which is needed by L"C:\\pkmn-anil\\fluidsynth.dll") not found + # 013c:err:module:import_dll Library libreadline8.dll (which is needed by L"C:\\pkmn-anil\\fluidsynth.dll") not found + # 013c:err:module:import_dll Library libsndfile-1.dll (which is needed by L"C:\\pkmn-anil\\fluidsynth.dll") not found + meta.broken = true; + + dontUnpack = true; + src = fetchFromDrive rec { + name = "POKEMON ANIL V${version} ENGLISH COMPLETE.rar"; + url = "112KKuclpNSJ-JXDob2FhKiPKHTEViInq"; + hash = "sha256-dg2cpXOISAX3dr10NBXA+Gwp+8vTeOxgtRkeM84JwSA="; + assert_exists = [ name ]; + }; + + inherit wine wineArch; + nativeBuildInputs = [ copyDesktopItems copyDesktopIcons ]; + + installPhase = '' + runHook preInstall + ln -s $out/bin/.launcher $out/bin/${lib.escapeShellArg pname} + runHook postInstall + ''; + + winAppInstall = '' + winetricks -q directplay directmusic + ${unrar}/bin/unrar x ${src} "$WINEPREFIX/drive_c/" + mv -v "$WINEPREFIX/drive_c/POKEMON ANIL V${version} ENGLISH COMPLETE/Pokemon Anil V${version}/" "$WINEPREFIX/drive_c/${uid}" + mv -v "$WINEPREFIX/drive_c/POKEMON ANIL V${version} ENGLISH COMPLETE/"* "$WINEPREFIX/drive_c/${uid}/" + rmdir -v "$WINEPREFIX/drive_c/POKEMON ANIL V${version} ENGLISH COMPLETE" + mkdir -vp "$WINEPREFIX/drive_c/windows/fonts" + cp -v "$WINEPREFIX/drive_c/${uid}/Fonts/"* "$WINEPREFIX/drive_c/windows/fonts/" + ''; + + fileMap."$HOME/.local/share/${uid}/Saved Games" + = "drive_c/users/$USER/Saved Games"; + + winAppRun = '' + $WINE start /unix "$WINEPREFIX"/drive_c/${uid}/Game.exe "$ARGS" + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + desktopName = pname; + categories = ["Game"]; + }) + ]; + +} diff --git a/games/infinity.nix b/games/infinity.nix new file mode 100644 index 0000000..37323cd --- /dev/null +++ b/games/infinity.nix @@ -0,0 +1,74 @@ +{ lib +, fetchFromMediafire +, fetchurl +, mkWindowsApp +, wine +, wineArch +, unzip +, makeDesktopItem +, makeDesktopIcon +, copyDesktopItems +, copyDesktopIcons +}: +let uid = "pkmn-infinity"; +in mkWindowsApp rec { + pname = "Pokemon Infinity"; + version = "2.3.6"; + meta.homepage = "https://reliccastle.com/infinity/"; + meta.description = "You wake up in the middle of a forest in the Egho region, with no recollection of who you are."; + + # fmod error + meta.broken = true; + + dontUnpack = true; + src = fetchFromMediafire rec { + name = "Pokemon Infinity ${version}.zip"; + url = "https://www.mediafire.com/file/dlssk830cxdvo5y/Pokemon_Infinity_2.3.6.zip/file"; + hash = "sha256-ggKqd/3g3kcfs85pFULHfHmSoWHTzCFsRRdmlm7/wHs="; + assert_exists = [ name ]; + }; + + inherit wine wineArch; + nativeBuildInputs = [ copyDesktopItems copyDesktopIcons ]; + + installPhase = '' + runHook preInstall + ln -s $out/bin/.launcher $out/bin/${lib.escapeShellArg pname} + runHook postInstall + ''; + + winAppInstall = '' + #winetricks -q directplay directmusic #dsound dmsynth devenum quartz d3dx9_36 + ${unzip}/bin/unzip ${src} -d "$WINEPREFIX/drive_c/" + mv -v "$WINEPREFIX/drive_c/Pokemon Infinity ${version}" "$WINEPREFIX/drive_c/${uid}" + mkdir -vp "$WINEPREFIX/drive_c/windows/fonts" + cp -v "$WINEPREFIX/drive_c/${uid}/Fonts/"* "$WINEPREFIX/drive_c/windows/fonts/" + ''; + + fileMap."$HOME/.local/share/${uid}/Saved Games" + = "drive_c/users/$USER/Saved Games"; + + winAppRun = '' + $WINE start /unix "$WINEPREFIX"/drive_c/${uid}/Game.exe "$ARGS" + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + icon = uid; + desktopName = pname; + categories = ["Game"]; + }) + ]; + + desktopIcon = makeDesktopIcon { + name = uid; + icoIndex = 0; + src = fetchurl { + url = "https://static.wikia.nocookie.net/p-infinity/images/e/e6/Site-logo.png"; + hash = "sha256-wKQgEb/TguZQcjBRmn0f3H4N2ZU49sFfU2Z4c+Cq/Zw="; + }; + }; + +} diff --git a/games/xenoverse.nix b/games/xenoverse.nix new file mode 100644 index 0000000..d62a2c1 --- /dev/null +++ b/games/xenoverse.nix @@ -0,0 +1,73 @@ +{ lib +, fetchFromMega +, fetchurl +, mkWindowsApp +, wine +, wineArch +, unrar +, makeDesktopItem +, makeDesktopIcon +, copyDesktopItems +, copyDesktopIcons +}: +let uid = "pkmn-clockwork"; +in mkWindowsApp rec { + pname = "Pokemon Clockwork"; + version = "1.9.0"; + meta.homepage = "https://pokemonclockwork.wixsite.com/clockworkgame"; + meta.description = "Discover the brand new world of Rosari, filled with adventure and mystery surrounding the Mythical Pokémon Celebi!"; + + # has a launcher, persists downloaded game in .local. + # the bottle closes once the launcher exits, but the game still runs? + meta.broken = true; + + dontUnpack = true; + src = fetchFromMega rec { + name = "Setup.msi"; + url = "https://mega.nz/file/pCBWBaxK#5LZjsYXaMu3CQhX9zz0EkSeTqIeqmyVD39ME8TYZj6U"; + hash = "sha256-H0dcGSffxDdscsD0FFQloP2rKFRwMWylKBqPb//9fHM="; + assert_exists = [ name ]; + }; + + inherit wine wineArch; + nativeBuildInputs = [ copyDesktopItems copyDesktopIcons ]; + + installPhase = '' + runHook preInstall + ln -s $out/bin/.launcher $out/bin/${lib.escapeShellArg pname} + runHook postInstall + ''; + + winAppInstall = '' + msiexec /i ${src} /quiet /qn + ''; + + fileMap."$HOME/.local/share/${uid}/user/$USER" + = "drive_c/users/$USER"; + fileMap."$HOME/.local/share/${uid}/gamedata/Xenoverse Per Aspera Ad Astra" + = "drive_c/Program Files/XenoTeam/Xenoverse/Xenoverse Per Aspera Ad Astra"; + + winAppRun = '' + $WINE start /unix "$WINEPREFIX/drive_c/Program Files/XenoTeam/Xenoverse/XenoverseLauncher.exe" "$ARGS" + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + icon = uid; + desktopName = pname; + categories = ["Game"]; + }) + ]; + + desktopIcon = makeDesktopIcon { + name = uid; + icoIndex = 0; + src = fetchurl { + url = "https://static.wixstatic.com/media/e1c82c_1208b7119adb4ed1a26700a0d6a5a984~mv2.png/v1/crop/x_237,y_146,w_1445,h_788/fill/w_1394,h_756,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/TITLE.png"; + hash = "sha256-ZWtb45gRuxG2LJBEb0cJspQgUkqUs+N66aXkGSsl8tc="; + }; + }; + +}