mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-23 02:30:30 +02:00
gnu: Add rpcs3.
* gnu/packages/emulators.scm (rpcs3): New variable. Change-Id: I18dd22e4699dbe8f80c801a4d8e9b228990219b0 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
committed by
Liliana Marie Prikler
parent
3b2e5bbc84
commit
e5ca91ea97
@@ -91,6 +91,7 @@
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages image-processing)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages libusb)
|
||||
@@ -109,9 +110,12 @@
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages robotics)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages stb)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
@@ -3725,6 +3729,165 @@ hardware states and PS2 system memory. This allows you to play PS2 games on
|
||||
your PC, with many additional features and benefits.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public rpcs3
|
||||
;; NB: When updating to a new release, don't forget to check if any more
|
||||
;; libraries can be linked dynamically, and to update the commits for any
|
||||
;; specialized sources included in native-inputs so that they match the
|
||||
;; sub-modules in ./3rdparty.
|
||||
(package
|
||||
(name "rpcs3")
|
||||
(version "0.0.38")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/RPCS3/rpcs3")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0dwrfjs9b3ldwyn68nmyf0qip4hm1w8c3picdl3zk7z76j7rrhal"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; -fexceptions is needed to compile part of yaml-cpp.
|
||||
"-DCMAKE_CXX_FLAGS=-fexceptions"
|
||||
;; "USE_NATIVE_INSTRUCTIONS makes rpcs3 compile with -march=native,
|
||||
;; which is useful for local builds, but not good for packages."
|
||||
"-DUSE_NATIVE_INSTRUCTIONS=OFF"
|
||||
"-DWITH_LLVM=ON"
|
||||
"-DBUILD_LLVM=OFF"
|
||||
"-DSTATIC_LINK_LLVM=OFF"
|
||||
"-DUSE_FAUDIO=ON"
|
||||
"-DUSE_LIBEVDEV=ON"
|
||||
"-DUSE_DISCORD_RPC=OFF"
|
||||
"-DUSE_VULKAN=ON"
|
||||
"-DUSE_PRECOMPILED_HEADERS=OFF"
|
||||
"-DUSE_SDL=ON"
|
||||
"-DUSE_SYSTEM_CUBEB=ON"
|
||||
"-DUSE_SYSTEM_CURL=ON"
|
||||
"-DUSE_SYSTEM_FAUDIO=ON"
|
||||
"-DUSE_SYSTEM_FFMPEG=ON"
|
||||
"-DUSE_SYSTEM_FLATBUFFERS=ON"
|
||||
"-DUSE_SYSTEM_GLSLANG=ON"
|
||||
"-DUSE_SYSTEM_HIDAPI=ON"
|
||||
"-DUSE_SYSTEM_LIBPNG=ON"
|
||||
"-DUSE_SYSTEM_LIBUSB=ON"
|
||||
"-DUSE_SYSTEM_MINIUPNPC=ON"
|
||||
"-DUSE_SYSTEM_OPENAL=ON"
|
||||
"-DUSE_SYSTEM_OPENCV=ON"
|
||||
"-DUSE_SYSTEM_PUGIXML=ON"
|
||||
"-DUSE_SYSTEM_RTMIDI=ON"
|
||||
"-DUSE_SYSTEM_SDL=ON"
|
||||
"-DUSE_SYSTEM_VULKAN_MEMORY_ALLOCATOR=ON"
|
||||
"-DUSE_SYSTEM_WOLFSSL=ON"
|
||||
"-DUSE_SYSTEM_ZLIB=ON"
|
||||
"-DUSE_SYSTEM_ZSTD=ON"
|
||||
"-DBUILD_RPCS3_TESTS=ON"
|
||||
"-DRUN_RPCS3_TESTS=ON"
|
||||
;; "Choose whether to enable GameMode features or not."
|
||||
;; Off, for now, because GameMode requires systemd to work.
|
||||
"-DUSE_GAMEMODE=OFF")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'add-some-submodules
|
||||
;; TODO: Remove as many of these as possible.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(with-directory-excursion "3rdparty"
|
||||
(rmdir "fusion/fusion")
|
||||
(symlink (string-append
|
||||
(search-input-directory inputs "Fusion") "/../")
|
||||
"fusion/fusion")
|
||||
(rmdir "SoundTouch/soundtouch")
|
||||
(symlink (dirname
|
||||
(search-input-file inputs "soundtouch.pc.in"))
|
||||
"SoundTouch/soundtouch")
|
||||
(rmdir "asmjit/asmjit")
|
||||
(symlink (string-append
|
||||
(search-input-directory inputs "src/asmjit")
|
||||
"/../../")
|
||||
"asmjit/asmjit")
|
||||
(rmdir "yaml-cpp/yaml-cpp")
|
||||
(symlink (dirname
|
||||
(search-input-file inputs "yaml-cpp.pc.in"))
|
||||
"yaml-cpp/yaml-cpp")
|
||||
(rmdir "stblib/stb")
|
||||
(symlink (dirname
|
||||
(search-input-file inputs "stb_c_lexer.h"))
|
||||
"stblib/stb")))))))
|
||||
(inputs
|
||||
(append
|
||||
(list cubeb
|
||||
curl
|
||||
eudev
|
||||
faudio
|
||||
;; RPCS3 v0.0.38 uses symbols that are deprecated in ffmpeg 8.
|
||||
;; See https://github.com/RPCS3/rpcs3/issues/17461
|
||||
ffmpeg-6
|
||||
flatbuffers
|
||||
glew
|
||||
glslang
|
||||
glu
|
||||
hidapi
|
||||
jack-2
|
||||
libevdev
|
||||
libglvnd
|
||||
libpng
|
||||
libusb-next
|
||||
llvm-18
|
||||
mesa
|
||||
miniupnpc-next
|
||||
openal
|
||||
opencv
|
||||
pugixml-next
|
||||
pulseaudio
|
||||
qtbase
|
||||
qtmultimedia
|
||||
qtsvg
|
||||
rtmidi
|
||||
sdl3
|
||||
spirv-tools
|
||||
vulkan-loader
|
||||
wayland
|
||||
wolfssl-for-rpcs3
|
||||
zlib
|
||||
`(,zstd "lib"))))
|
||||
(native-inputs
|
||||
(list
|
||||
googletest
|
||||
pkg-config
|
||||
vulkan-memory-allocator
|
||||
(package-source asmjit)
|
||||
(package-source fusion)
|
||||
(package-source stb)
|
||||
(origin
|
||||
(file-name "rpcs3-soundtouch-source")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/RPCS3/soundtouch")
|
||||
(commit "3982730833b6daefe77dcfb32b5c282851640c17")))
|
||||
(sha256
|
||||
(base32 "07q514mx69jkrz7i58c45iwj3zql88vdsa1sah7immwr1005i91y")))
|
||||
(origin
|
||||
(file-name "rpcs3-yaml-cpp-source")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/RPCS3/yaml-cpp")
|
||||
(commit "456c68f452da09d8ca84b375faa2b1397713eaba")))
|
||||
(sha256
|
||||
(base32 "0spp91yz1bvr9dljc7zgjf2sqw49d8b9yinlncykjwzxm7ap7jys")))))
|
||||
(home-page "https://rpcs3.net/")
|
||||
(synopsis "PlayStation 3 emulator")
|
||||
(description "RPCS3 is an emulator and debugger for the Sony
|
||||
@acronym{PS3,PlayStation 3}.")
|
||||
(license
|
||||
(list license:gpl2 ;core, pine_server.h
|
||||
license:bsd-3 ;FindWayland.cmake, FindFFMPEG.cmake
|
||||
;;flow_layout.h, sse2neon.h, unordered_dense.h, ffx_fsr1.h,
|
||||
;;ffx_a.h, bcdec.hpp, LUrlParser.h, khrplatform.h
|
||||
license:expat))))
|
||||
|
||||
(define-public gens-gs
|
||||
(package
|
||||
(name "gens-gs")
|
||||
|
||||
Reference in New Issue
Block a user