commit: fac7d4859a67705d00f666c6b1cfac6466ce76d3
Author: Erica Nebula <EricaNebula <AT> Proton <DOT> me>
AuthorDate: Tue Mar 3 14:59:01 2026 +0000
Commit: Erica Nebula <EricaNebula <AT> proton <DOT> me>
CommitDate: Tue Mar 3 15:09:54 2026 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=fac7d485
games-emulation/rpcs3: add 0.0.40
Signed-off-by: Erica Nebula <EricaNebula <AT> Proton.me>
games-emulation/rpcs3/Manifest | 2 +
.../rpcs3/files/rpcs3-0.0.40-system-stb.patch | 22 +++
games-emulation/rpcs3/rpcs3-0.0.40.ebuild | 178 +++++++++++++++++++++
3 files changed, 202 insertions(+)
diff --git a/games-emulation/rpcs3/Manifest b/games-emulation/rpcs3/Manifest
index 06c19a3394..c327b79590 100644
--- a/games-emulation/rpcs3/Manifest
+++ b/games-emulation/rpcs3/Manifest
@@ -1,5 +1,6 @@
DIST rpcs3-0.0.38.tar.gz 5880433 BLAKE2B
7f1b77abde138e2676dd56b621f6e131140a949e6dcafbf44574dbf37f882e78069ec6c2da6f2486f8d7447fa1d152963b3ed6427f7b55ba0621792408ddf29b
SHA512
e84c3d045f127283430a5262ea055094288c1ceda865fe5b0f2602f870027a7c89e830d3a28980f5bbf26ed1893cf7786b032a748163c4fe788ba49dfdaa031c
DIST rpcs3-0.0.39.tar.gz 5960997 BLAKE2B
68e8629c674e5d0486c6ff5120433ade502179ef40427b2e030b9b12c827f36385871c66c391c3fba50d46cf0f6426a38207047a93e92c1cdaed2d7d3c4d7155
SHA512
f1756b85b02b76d4500b6bfa88071bc980dff9a22d5d786af1e0fefed416b4338efec0e7999cb3259febba5feda622228ebfa8d95f18e84784ff14dba258c3a7
+DIST rpcs3-0.0.40.tar.gz 6180790 BLAKE2B
74c3f38dfaaddad2ac52d3eb6367bd9aa35f15e24bccd94d1d4ec52160221b07070866e0277aedeb56a6500b443cf274a626fa2136e3fa36cc57c6d5b46b92e0
SHA512
7cda5ca68746d4ba83d64f0b7b768cc5749871f2188c5228f6dcebcf95e99702207e88009ba8e7286fdc9f888ce4005fd5ca9bc543913293ba3607a85edf3a78
DIST rpcs3-GameMode.tar.gz 79916 BLAKE2B
5d4dd5f462ffb62fad5e8a2b0b772378aba10e0198a07eb01e5ebcd6d8fd94adc9e176c712e11fe8a032c4e4879a807df26755c758da462c67227f700ea66369
SHA512
189a7a9b3159d985652d4eee1a5a69abb14eec4bb5b11ebd55ccba5eb03c5ef37a71751514717949c6cd5ccb0fdce97cf1e24aff6a7e9c0845768b6bddb82fd4
DIST
rpcs3-VulkanMemoryAllocator-1d8f600fd424278486eade7ed3e877c99f0846b1.tar.gz
962421 BLAKE2B
a54d279c64eb0d4d3d8d9445de7a4e1cdf250546af96ed8739f4dea5f4037b3139807e492847425055cc2e82482a110fabd0478e40520647e58dc4487f452420
SHA512
69591ef6ee25b181aed1e59846e760833dd58d82b5b72e69059cc9d252ca6b7d0fb0418b02cf5aa3feb0983f629ce64f27f10e00da5b73d9e8eae015e261a7f4
DIST rpcs3-asmjit-416f7356967c1f66784dc1580fe157f9406d8bff.tar.gz 1152383
BLAKE2B
17b054083ce178255f19026d175986225f6f803a21e0cef4ce9a557ac50057578d3ae76d3b179fe25d0febd5e05d5d5feb28f9761045a8e41497b92a966196ec
SHA512
2be4de27b2ed2212cf7b6ef9d40afac5c00f7a71df4e60208ea57258c01e56413cee439f84490d605f44a835522d1c1a55de898feccdd4429e907a9f82edd7cb
@@ -9,4 +10,5 @@ DIST
rpcs3-glslang-fc9889c889561c5882e83819dcaffef5ed45529b.tar.gz 4030379 BLAKE
DIST rpcs3-soundtouch-3982730833b6daefe77dcfb32b5c282851640c17.tar.gz 607787
BLAKE2B
58358d00186830ad0d9a23a551949d9437cc6a949b835c623730f06371f166bcf43433b96c3b80572d4ab907775258051bbea73f9cd7e2d9a0c36fa5ec4bf525
SHA512
aa42aac667ed701df29fec5b75a1878e6c7404d8e66a9238d930a14f994fca37f350108c7ba4cbce899b0155976b454031a6425b28809a0ffe15d1a1709ade1f
DIST rpcs3-wolfssl-b077c81eb635392e694ccedbab8b644297ec0285.tar.gz 24936390
BLAKE2B
717d36c5fe3e64089bf550844caaa61cdd532d6b37216427d7bcbd9af12df0cf7bd474d8e79c217d28646f69b7d1a388eb50ea1006760b06d09b74ff140d734e
SHA512
14e198ca5f90ba38f61bc6237f9e5d63e0a9631bf8360d02cc34759d8415b8b0a9bae30e122e08a2aa29027e787bb81359c8d26f853fe1c3410356d92f1b95d5
DIST rpcs3-wolfssl-decea12e223869c8f8f3ab5a53dc90b69f436eb2.tar.gz 25195284
BLAKE2B
8da243f1557246b17a662a38e07686da88b3477daf633eb6c881bb47f04abf6822a32b9df217b79052acbe2c6df5708cc12272d96eb89c02cb179f8997c171fd
SHA512
52e2d5a6263ba3f80cdcc6f15c548756bc8cc559f35ebd978510e47fa3534da268d71563d201b338b65fbb4b06825b987dc41d6db9299fb59d44a985d0ac146e
+DIST rpcs3-yaml-cpp-05c44fcd18074836e21e1eda9fc02b3a4a1529b5-.tar.gz 1057124
BLAKE2B
5fdbcda7d402b8a7c632b17063aba011bc149a1bed34a9e0172c104d417ccb186cd1e31d0d292b3305fb0d72f27935c2b5a30d758dab51371974f6773972cbe1
SHA512
2372d6da3eb69ab6e56df9785af7261eae432cb50ce4608be22224995e4b51ff1f9fe15be489460c4bd2fab23b037089ab612bdabec068292d3b4664657093ce
DIST rpcs3-yaml-cpp-3982730833b6daefe77dcfb32b5c282851640c17-.tar.gz 1019142
BLAKE2B
8c7b4e1c788a07c1092be813555b1774a713693dd995183671d60b1896f96e105631447cb8c69bbcb13c380388b632d38a2c59be19903bc259ae6b57a181612a
SHA512
0d06856bacb6c3cb987299c650baffcb2647a4b9a53394a7ce5c75301b527574d41cb0dfe9bf2e997e04588786d5aa7232437472a2e5fec422e8aa56aba0ea14
diff --git a/games-emulation/rpcs3/files/rpcs3-0.0.40-system-stb.patch
b/games-emulation/rpcs3/files/rpcs3-0.0.40-system-stb.patch
new file mode 100644
index 0000000000..43e39720c0
--- /dev/null
+++ b/games-emulation/rpcs3/files/rpcs3-0.0.40-system-stb.patch
@@ -0,0 +1,22 @@
+diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
+index 6c49a889b..c749044fb 100644
+--- a/3rdparty/CMakeLists.txt
++++ b/3rdparty/CMakeLists.txt
+@@ -125,7 +125,8 @@ else()
+ endif()
+
+ # stblib
+-add_subdirectory(stblib)
++pkg_check_modules(stb REQUIRED IMPORTED_TARGET GLOBAL stb)
++add_library(3rdparty::stblib ALIAS PkgConfig::stb)
+
+ # DiscordRPC
+ add_subdirectory(discord-rpc)
+@@ -373,7 +374,6 @@ add_library(3rdparty::yaml-cpp ALIAS yaml-cpp)
+ add_library(3rdparty::hidapi ALIAS 3rdparty_hidapi)
+ add_library(3rdparty::libpng ALIAS ${LIBPNG_TARGET})
+ add_library(3rdparty::opengl ALIAS 3rdparty_opengl)
+-add_library(3rdparty::stblib ALIAS 3rdparty_stblib)
+ add_library(3rdparty::discordRPC ALIAS 3rdparty_discordRPC)
+ add_library(3rdparty::faudio ALIAS ${FAUDIO_TARGET})
+ add_library(3rdparty::libevdev ALIAS ${LIBEVDEV_TARGET})
diff --git a/games-emulation/rpcs3/rpcs3-0.0.40.ebuild
b/games-emulation/rpcs3/rpcs3-0.0.40.ebuild
new file mode 100644
index 0000000000..84489891af
--- /dev/null
+++ b/games-emulation/rpcs3/rpcs3-0.0.40.ebuild
@@ -0,0 +1,178 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic xdg optfeature
+
+ASMJIT_COMMIT="416f7356967c1f66784dc1580fe157f9406d8bff" # master~71
+GLSLANG_COMMIT="fc9889c889561c5882e83819dcaffef5ed45529b" # tags/15.3.0
+WOLFSSL_COMMIT="b077c81eb635392e694ccedbab8b644297ec0285" # tags/5.8.0-stable
+SOUNDTOUCH_COMMIT="3982730833b6daefe77dcfb32b5c282851640c17" # master
+YAMLCPP_COMMIT="05c44fcd18074836e21e1eda9fc02b3a4a1529b5" # master
+FUSION_COMMIT="008e03eac0ac1d5f85e16f5fcaefdda3fee75cb8" # tags/1.2.11
+VULKANMEMORYALLOCATOR_COMMIT="1d8f600fd424278486eade7ed3e877c99f0846b1" #
tags/3.3.0
+GAMEMODE_COMMIT="c54d6d4243b0dd0afcb49f2c9836d432da171a2b" # tags/1.8.2
+
+DESCRIPTION="PS3 emulator/debugger"
+HOMEPAGE="https://rpcs3.net/"
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/RPCS3/rpcs3"
+ EGIT_SUBMODULES=(
+ 'asmjit' '3rdparty/glslang' '3rdparty/wolfssl'
+ '3rdparty/SoundTouch/soundtouch' '3rdparty/fusion/fusion'
'3rdparty/GPUOpen/VulkanMemoryAllocator'
+ '3rdparty/feralinteractive/feralinteractive' '3rdparty/yaml-cpp'
+ )
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/RPCS3/rpcs3/archive/v${PV}.tar.gz ->
${P}.tar.gz
+
https://github.com/asmjit/asmjit/archive/${ASMJIT_COMMIT}.tar.gz ->
${PN}-asmjit-${ASMJIT_COMMIT}.tar.gz
+
https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz ->
${PN}-glslang-${GLSLANG_COMMIT}.tar.gz
+
https://github.com/wolfSSL/wolfssl/archive/${WOLFSSL_COMMIT}.tar.gz ->
${PN}-wolfssl-${WOLFSSL_COMMIT}.tar.gz
+
https://github.com/RPCS3/soundtouch/archive/${SOUNDTOUCH_COMMIT}.tar.gz
+ -> ${PN}-soundtouch-${SOUNDTOUCH_COMMIT}.tar.gz
+
https://github.com/RPCS3/yaml-cpp/archive/${YAMLCPP_COMMIT}.tar.gz ->
${PN}-yaml-cpp-${YAMLCPP_COMMIT}-.tar.gz
+
https://github.com/xioTechnologies/Fusion/archive/${FUSION_COMMIT}.tar.gz ->
${PN}-fusion-${FUSION_COMMIT}.tar.gz
+
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+ ->
${PN}-VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+
https://github.com/FeralInteractive/gamemode/archive/${GAMEMODE_COMMIT}.tar.gz
-> ${PN}-GameMode.tar.gz
+ "
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="discord faudio +llvm opencv vulkan wayland"
+
+DEPEND="
+ app-arch/7zip
+ app-arch/zstd
+ >=dev-libs/protobuf-33.0.0
+ dev-libs/hidapi
+ dev-libs/libevdev
+ dev-libs/pugixml
+ dev-libs/stb
+ dev-qt/qtbase:6[concurrent,dbus,gui,widgets]
+ dev-qt/qtmultimedia:6
+ dev-qt/qtsvg:6
+ media-libs/alsa-lib
+ media-libs/cubeb
+ media-libs/glew
+ media-libs/libglvnd
+ media-libs/libpng:=
+ media-libs/openal
+ media-libs/rtmidi
+ media-video/ffmpeg:=
+ net-libs/miniupnpc:=
+ net-misc/curl
+ llvm-core/llvm:=
+ virtual/zlib:=
+ virtual/libusb:1
+ x11-libs/libX11
+ faudio? ( app-emulation/faudio )
+ opencv? ( media-libs/opencv )
+ vulkan? ( media-libs/vulkan-loader[wayland?] )
+ wayland? ( dev-libs/wayland )
+"
+RDEPEND="${DEPEND}"
+
+QA_PREBUILT="usr/share/rpcs3/test/.*"
+QA_WX_LOAD="usr/share/rpcs3/test/*"
+
+PATCHES=(
+ "${FILESDIR}/${P}-system-stb.patch"
+)
+
+src_prepare() {
+ if [[ ${PV} != "9999" ]]; then
+ rmdir "${S}/3rdparty/asmjit/asmjit" || die
+ mv "${WORKDIR}/asmjit-${ASMJIT_COMMIT}"
"${S}/3rdparty/asmjit/asmjit" || die
+
+ rmdir "${S}/3rdparty/glslang/glslang" || die
+ mv "${WORKDIR}/glslang-${GLSLANG_COMMIT}"
"${S}/3rdparty/glslang/glslang" || die
+
+ rmdir "${S}/3rdparty/wolfssl/wolfssl" || die
+ mv "${WORKDIR}/wolfssl-${WOLFSSL_COMMIT}"
"${S}/3rdparty/wolfssl/wolfssl" || die
+
+ rmdir "${S}/3rdparty/SoundTouch/soundtouch" || die
+ mv "${WORKDIR}/soundtouch-${SOUNDTOUCH_COMMIT}"
"${S}/3rdparty/SoundTouch/soundtouch" || die
+
+ rmdir "${S}/3rdparty/yaml-cpp/yaml-cpp" || die
+ mv "${WORKDIR}/yaml-cpp-${YAMLCPP_COMMIT}"
"${S}/3rdparty/yaml-cpp/yaml-cpp" || die
+
+ rmdir "${S}/3rdparty/fusion/fusion" || die
+ mv "${WORKDIR}/Fusion-${FUSION_COMMIT}"
"${S}/3rdparty/fusion/fusion" || die
+
+ rmdir "${S}/3rdparty/GPUOpen/VulkanMemoryAllocator" || die
+ mv
"${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" \
+ "${S}/3rdparty/GPUOpen/VulkanMemoryAllocator" || die
+
+ rmdir "${S}/3rdparty/feralinteractive/feralinteractive" || die
+ mv "${WORKDIR}/gamemode-${GAMEMODE_COMMIT}" \
+ "${S}/3rdparty/feralinteractive/feralinteractive" || die
+
+ #Define RPCS3 Version
+ { echo "#define RPCS3_GIT_VERSION \"${PV}\""
+ echo '#define RPCS3_GIT_BRANCH "master"'
+ echo '#define RPCS3_GIT_FULL_BRANCH "RPCS3/rpcs3/master"'
+ echo '#define RPCS3_GIT_VERSION_NO_UPDATE 1'; } >
rpcs3/git-version.h
+ fi
+
+ # Disable automagic ccache
+ sed -i -e '/find_program(CCACHE_PATH ccache .*)/d' CMakeLists.txt || die
+
+ # Unbundle yaml-cpp: system yaml-cpp should be compiled with
-fexceptions
+ # sed -i -e '/yaml-cpp/d' 3rdparty/CMakeLists.txt || die
+ # sed -i -e '$afind_package(yaml-cpp)\n' CMakeLists.txt || die
+ # sed -i -e 's/3rdparty::yaml-cpp/yaml-cpp/' rpcs3/Emu/CMakeLists.txt \
+ # rpcs3/rpcs3qt/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ filter-lto
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF # to remove after unbundling
+ -DUSE_PRECOMPILED_HEADERS=ON
+ -DUSE_SYSTEM_CUBEB=ON
+ -DUSE_SYSTEM_CURL=ON
+ -DUSE_SYSTEM_FFMPEG=ON
+ -DUSE_SYSTEM_PROTOBUF=ON
+ -DUSE_SYSTEM_HIDAPI=ON
+ -DUSE_SYSTEM_LIBPNG=ON
+ -DUSE_SYSTEM_LIBUSB=ON
+ -DUSE_SYSTEM_MINIUPNPC=ON
+ -DUSE_SYSTEM_PUGIXML=ON
+ -DUSE_SYSTEM_RTMIDI=ON
+ -DUSE_SYSTEM_ZLIB=ON
+ -DUSE_SYSTEM_ZSTD=ON
+ -DUSE_DISCORD_RPC=$(usex discord)
+ -DUSE_FAUDIO=$(usex faudio)
+ -DUSE_SYSTEM_OPENCV=$(usex opencv)
+ -DUSE_VULKAN=$(usex vulkan)
+ -DWITH_LLVM=$(usex llvm)
+ $(cmake_use_find_package wayland Wayland)
+ )
+ # These options are defined conditionally to suppress QA notice
+ use faudio && mycmakeargs+=( -DUSE_SYSTEM_FAUDIO=$(usex faudio) )
+
+ cmake_src_configure
+
+ sed -i -e 's/FFMPEG_LIB_AVFORMAT-NOTFOUND/avformat/' -e
's/FFMPEG_LIB_AVCODEC-NOTFOUND/avcodec/' \
+ -e 's/FFMPEG_LIB_AVUTIL-NOTFOUND/avutil/' -e
's/FFMPEG_LIB_SWSCALE-NOTFOUND/swscale/' \
+ -e 's/FFMPEG_LIB_SWRESAMPLE-NOTFOUND/swresample/'
"${BUILD_DIR}"/build.ninja || die
+}
+
+src_install() {
+ cmake_src_install
+
+ # remove unneccessary files to save some space
+ rm -rf "${ED}/usr/share/rpcs3/"{git,test} || die
+}
+
+pkg_postinst() {
+ optfeature "FeralInteractive GameMode support" games-util/gamemode
+}