From b0a14018d37f64f4fbd831ec6aea64a7042454e5 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Mon, 29 Apr 2024 17:09:44 +0200 Subject: [PATCH 1/2] pcsx2: migrate to by-name --- .../pc}/pcsx2/define-rev.patch | 0 .../pc/pcsx2/package.nix} | 21 +++++++++++-------- pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 12 insertions(+), 11 deletions(-) rename pkgs/{applications/emulators => by-name/pc}/pcsx2/define-rev.patch (100%) rename pkgs/{applications/emulators/pcsx2/default.nix => by-name/pc/pcsx2/package.nix} (92%) diff --git a/pkgs/applications/emulators/pcsx2/define-rev.patch b/pkgs/by-name/pc/pcsx2/define-rev.patch similarity index 100% rename from pkgs/applications/emulators/pcsx2/define-rev.patch rename to pkgs/by-name/pc/pcsx2/define-rev.patch diff --git a/pkgs/applications/emulators/pcsx2/default.nix b/pkgs/by-name/pc/pcsx2/package.nix similarity index 92% rename from pkgs/applications/emulators/pcsx2/default.nix rename to pkgs/by-name/pc/pcsx2/package.nix index cb39b5417b09..5deeed45dad6 100644 --- a/pkgs/applications/emulators/pcsx2/default.nix +++ b/pkgs/by-name/pc/pcsx2/package.nix @@ -15,17 +15,13 @@ , lz4 , makeWrapper , pkg-config -, qtbase -, qtsvg -, qttools -, qtwayland +, qt6 , SDL2 , soundtouch , strip-nondeterminism , vulkan-headers , vulkan-loader , wayland -, wrapQtAppsHook , xz , zip , zstd @@ -39,8 +35,15 @@ let rev = "e3b354f144de71d2b87471166cca8911867c1dfd"; sha256 = "sha256-H7cFyBYZumcCZ0/FFOFZoChoi0XPs4siA4dHcFt9U7k="; }; + inherit (qt6) + qtbase + qtsvg + qttools + qtwayland + wrapQtAppsHook + ; in -llvmPackages_17.stdenv.mkDerivation rec { +llvmPackages_17.stdenv.mkDerivation (finalAttrs: { pname = "pcsx2"; version = "1.7.5587"; @@ -48,7 +51,7 @@ llvmPackages_17.stdenv.mkDerivation rec { owner = "PCSX2"; repo = "pcsx2"; fetchSubmodules = true; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-PCZ1r6x28Z5FEVMXWm4oxpTknz/XEiwo0rRGhn4B33g="; }; @@ -59,7 +62,7 @@ llvmPackages_17.stdenv.mkDerivation rec { cmakeFlags = [ "-DDISABLE_ADVANCE_SIMD=ON" "-DUSE_LINKED_FFMPEG=ON" - "-DPCSX2_GIT_REV=v${version}" + "-DPCSX2_GIT_REV=v${finalAttrs.version}" ]; nativeBuildInputs = [ @@ -137,4 +140,4 @@ llvmPackages_17.stdenv.mkDerivation rec { mainProgram = "pcsx2-qt"; platforms = platforms.x86_64; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f798e32202bd..fab2e194b74c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2717,8 +2717,6 @@ with pkgs; pcem = callPackage ../applications/emulators/pcem { }; - pcsx2 = qt6Packages.callPackage ../applications/emulators/pcsx2 { }; - pcsxr = callPackage ../applications/emulators/pcsxr { }; ppsspp-sdl = let From f66076f374bfee4270b676157199094e2b1bdc26 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Mon, 29 Apr 2024 17:13:11 +0200 Subject: [PATCH 2/2] pcsx2: 1.7.5587 -> 1.7.5779 Diff: PCSX2/pcsx2@v1.7.5587...v1.7.5779 --- pkgs/by-name/pc/pcsx2/package.nix | 35 ++++++++++++++--------- pkgs/by-name/pc/pcsx2/shaderc-patched.nix | 20 +++++++++++++ 2 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/pc/pcsx2/shaderc-patched.nix diff --git a/pkgs/by-name/pc/pcsx2/package.nix b/pkgs/by-name/pc/pcsx2/package.nix index 5deeed45dad6..89efacebb515 100644 --- a/pkgs/by-name/pc/pcsx2/package.nix +++ b/pkgs/by-name/pc/pcsx2/package.nix @@ -2,16 +2,17 @@ , fetchFromGitHub , lib , llvmPackages_17 +, callPackage , cubeb , curl , extra-cmake-modules +, fetchpatch , ffmpeg , libaio , libbacktrace , libpcap , libwebp , libXrandr -, libzip , lz4 , makeWrapper , pkg-config @@ -22,18 +23,18 @@ , vulkan-headers , vulkan-loader , wayland -, xz , zip , zstd }: let + shaderc-patched = callPackage ./shaderc-patched.nix { }; # The pre-zipped files in releases don't have a versioned link, we need to zip them ourselves pcsx2_patches = fetchFromGitHub { owner = "PCSX2"; repo = "pcsx2_patches"; - rev = "e3b354f144de71d2b87471166cca8911867c1dfd"; - sha256 = "sha256-H7cFyBYZumcCZ0/FFOFZoChoi0XPs4siA4dHcFt9U7k="; + rev = "b3a788e16ea12efac006cbbe1ece45b6b9b34326"; + sha256 = "sha256-Uvpz2Gpj533Sr6wLruubZxssoXefQDey8GHIDKWhW3s="; }; inherit (qt6) qtbase @@ -45,24 +46,33 @@ let in llvmPackages_17.stdenv.mkDerivation (finalAttrs: { pname = "pcsx2"; - version = "1.7.5587"; + version = "1.7.5779"; src = fetchFromGitHub { owner = "PCSX2"; repo = "pcsx2"; fetchSubmodules = true; rev = "v${finalAttrs.version}"; - sha256 = "sha256-PCZ1r6x28Z5FEVMXWm4oxpTknz/XEiwo0rRGhn4B33g="; + sha256 = "sha256-WiwnP5yoBy8bRLUPuCZ7z4nhIzrY8P29KS5ZjErM/A4="; }; patches = [ ./define-rev.patch + # Backport patches to fix random crashes on startup + (fetchpatch { + url = "https://github.com/PCSX2/pcsx2/commit/e47bcf8d80df9a93201eefbaf169ec1a0673a833.patch"; + sha256 = "sha256-7CL1Kpu+/JgtKIenn9rQKAs3A+oJ40W5XHlqSg77Q7Y="; + }) + (fetchpatch { + url = "https://github.com/PCSX2/pcsx2/commit/92b707db994f821bccc35d6eef67727ea3ab496b.patch"; + sha256 = "sha256-HWJ8KZAY/qBBotAJerZg6zi5QUHuTD51zKH1rAtZ3tc="; + }) ]; cmakeFlags = [ - "-DDISABLE_ADVANCE_SIMD=ON" - "-DUSE_LINKED_FFMPEG=ON" - "-DPCSX2_GIT_REV=v${finalAttrs.version}" + (lib.cmakeBool "DISABLE_ADVANCE_SIMD" true) + (lib.cmakeBool "USE_LINKED_FFMPEG" true) + (lib.cmakeFeature "PCSX2_GIT_REV" finalAttrs.src.rev) ]; nativeBuildInputs = [ @@ -82,17 +92,16 @@ llvmPackages_17.stdenv.mkDerivation (finalAttrs: { libpcap libwebp libXrandr - libzip lz4 qtbase qtsvg qttools qtwayland SDL2 + shaderc-patched soundtouch vulkan-headers wayland - xz zstd ] ++ cubeb.passthru.backendLibs; @@ -135,9 +144,9 @@ llvmPackages_17.stdenv.mkDerivation (finalAttrs: { PC, with many additional features and benefits. ''; homepage = "https://pcsx2.net"; - license = with licenses; [ gpl3 lgpl3 ]; + license = with licenses; [ gpl3Plus lgpl3Plus ]; maintainers = with maintainers; [ hrdinka govanify ]; mainProgram = "pcsx2-qt"; - platforms = platforms.x86_64; + platforms = [ "x86_64-linux" ]; }; }) diff --git a/pkgs/by-name/pc/pcsx2/shaderc-patched.nix b/pkgs/by-name/pc/pcsx2/shaderc-patched.nix new file mode 100644 index 000000000000..82f9721a87d6 --- /dev/null +++ b/pkgs/by-name/pc/pcsx2/shaderc-patched.nix @@ -0,0 +1,20 @@ +{ + fetchpatch, + pcsx2, + shaderc, +}: + +shaderc.overrideAttrs (old: { + pname = "shaderc-patched-for-pcsx2"; + patches = (old.patches or [ ]) ++ [ + (fetchpatch { + url = "file://${pcsx2.src}/.github/workflows/scripts/common/shaderc-changes.patch"; + hash = "sha256-Ps/D+CdSbjVWg3ZGOEcgbpQbCNkI5Nuizm4E5qiM9Wo="; + excludes = [ + "CHANGES" + "CMakeLists.txt" + "libshaderc/CMakeLists.txt" + ]; + }) + ]; +})