26 enableDiscordRpc ? false,
30 waylandSupport ? true,
36 # Keep these separate so the update script can regex them
37 rpcs3GitVersion = "17265-418a99a62";
38 rpcs3Version = "0.0.34-17265-418a99a62";
39 rpcs3Revision = "418a99a62b814b7f831072610c9e7d7b5e90610c";
40 rpcs3Hash = "sha256-NN7gEtt/18JCAHFZNQ8OqpATWx50qXda2Kk7NVq5T9Y=";
51 version = rpcs3Version;
53 src = fetchFromGitHub {
57 fetchSubmodules = true;
61 passthru.updateScript = ./update.sh;
64 cat > ./rpcs3/git-version.h <<EOF
65 #define RPCS3_GIT_VERSION "${rpcs3GitVersion}"
66 #define RPCS3_GIT_FULL_BRANCH "RPCS3/rpcs3/master"
67 #define RPCS3_GIT_BRANCH "HEAD"
68 #define RPCS3_GIT_VERSION_NO_UPDATE 1
73 (lib.cmakeBool "USE_SYSTEM_ZLIB" true)
74 (lib.cmakeBool "USE_SYSTEM_LIBUSB" true)
75 (lib.cmakeBool "USE_SYSTEM_LIBPNG" true)
76 (lib.cmakeBool "USE_SYSTEM_FFMPEG" true)
77 (lib.cmakeBool "USE_SYSTEM_CURL" true)
78 (lib.cmakeBool "USE_SYSTEM_WOLFSSL" true)
79 (lib.cmakeBool "USE_SYSTEM_FAUDIO" true)
80 (lib.cmakeBool "USE_SYSTEM_PUGIXML" true)
81 (lib.cmakeBool "USE_SYSTEM_FLATBUFFERS" true)
82 (lib.cmakeBool "USE_SYSTEM_SDL" true)
83 (lib.cmakeBool "USE_SDL" true)
84 (lib.cmakeBool "WITH_LLVM" true)
85 (lib.cmakeBool "BUILD_LLVM" false)
86 (lib.cmakeBool "USE_NATIVE_INSTRUCTIONS" false)
87 (lib.cmakeBool "USE_DISCORD_RPC" enableDiscordRpc)
88 (lib.cmakeBool "USE_FAUDIO" faudioSupport)
123 ++ cubeb.passthru.backendLibs
124 ++ lib.optional faudioSupport faudio
125 ++ lib.optionals waylandSupport [
131 qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
135 # Taken from https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration
136 install -D ${./99-ds3-controllers.rules} $out/etc/udev/rules.d/99-ds3-controllers.rules
137 install -D ${./99-ds4-controllers.rules} $out/etc/udev/rules.d/99-ds4-controllers.rules
138 install -D ${./99-dualsense-controllers.rules} $out/etc/udev/rules.d/99-dualsense-controllers.rules
142 description = "PS3 emulator/debugger";
143 homepage = "https://rpcs3.net/";
144 maintainers = with maintainers; [
150 license = licenses.gpl2Only;
155 mainProgram = "rpcs3";