summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation')
-rw-r--r--games-emulation/atari800/Manifest1
-rw-r--r--games-emulation/atari800/atari800-5.0.0.ebuild86
-rw-r--r--games-emulation/atari800/metadata.xml5
-rw-r--r--games-emulation/desmume/Manifest1
-rw-r--r--games-emulation/desmume/desmume-0.9.13.ebuild55
-rw-r--r--games-emulation/dolphin/Manifest2
-rw-r--r--games-emulation/dolphin/dolphin-5.0_p20210506-r3.ebuild4
-rw-r--r--games-emulation/dolphin/dolphin-5.0_p20220520.ebuild211
-rw-r--r--games-emulation/dolphin/dolphin-9999.ebuild103
-rw-r--r--games-emulation/fceux/Manifest2
-rw-r--r--games-emulation/fceux/fceux-2.6.4.ebuild (renamed from games-emulation/fceux/fceux-2.6.1.ebuild)2
-rw-r--r--games-emulation/m64py/Manifest1
-rw-r--r--games-emulation/m64py/m64py-0.2.5_p20211222.ebuild70
-rw-r--r--games-emulation/mednafen/Manifest1
-rw-r--r--games-emulation/mednafen/mednafen-1.27.1.ebuild76
-rw-r--r--games-emulation/melonds/Manifest1
-rw-r--r--games-emulation/melonds/files/melonds-system-teakra.patch23
-rw-r--r--games-emulation/melonds/melonds-0.9.3-r2.ebuild (renamed from games-emulation/melonds/melonds-0.9.3-r1.ebuild)17
-rw-r--r--games-emulation/melonds/melonds-0.9.4_p1-r1.ebuild85
-rw-r--r--games-emulation/melonds/melonds-9999.ebuild17
-rw-r--r--games-emulation/melonds/metadata.xml2
-rw-r--r--games-emulation/mgba/files/mgba-0.9.3-ffmpeg5.patch109
-rw-r--r--games-emulation/mgba/metadata.xml7
-rw-r--r--games-emulation/mgba/mgba-0.9.2.ebuild8
-rw-r--r--games-emulation/mgba/mgba-0.9.3-r1.ebuild (renamed from games-emulation/mgba/mgba-0.9.3.ebuild)14
-rw-r--r--games-emulation/mgba/mgba-0.9.3-r2.ebuild92
-rw-r--r--games-emulation/mgba/mgba-9999.ebuild150
-rw-r--r--games-emulation/nestopia/Manifest2
-rw-r--r--games-emulation/nestopia/metadata.xml3
-rw-r--r--games-emulation/nestopia/nestopia-1.50.ebuild45
-rw-r--r--games-emulation/nestopia/nestopia-1.51.1.ebuild45
-rw-r--r--games-emulation/nestopia/nestopia-9999.ebuild21
-rw-r--r--games-emulation/pcsx2/files/pcsx2-1.6.0-wx-config.patch20
-rw-r--r--games-emulation/pcsx2/metadata.xml4
-rw-r--r--games-emulation/pcsx2/pcsx2-1.6.0-r3.ebuild (renamed from games-emulation/pcsx2/pcsx2-1.6.0-r2.ebuild)14
-rw-r--r--games-emulation/pcsx2/pcsx2-9999.ebuild22
-rw-r--r--games-emulation/ppsspp/ppsspp-1.11.3-r1.ebuild (renamed from games-emulation/ppsspp/ppsspp-1.11.3.ebuild)4
-rw-r--r--games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r2.ebuild (renamed from games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r1.ebuild)4
-rw-r--r--games-emulation/ppsspp/ppsspp-1.12.3-r1.ebuild (renamed from games-emulation/ppsspp/ppsspp-1.12.3.ebuild)4
-rw-r--r--games-emulation/snes9x/Manifest4
-rw-r--r--games-emulation/snes9x/files/snes9x-1.60-gcc11.patch47
-rw-r--r--games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch25
-rw-r--r--games-emulation/snes9x/metadata.xml3
-rw-r--r--games-emulation/snes9x/snes9x-1.60.ebuild139
-rw-r--r--games-emulation/snes9x/snes9x-1.61.ebuild153
-rw-r--r--games-emulation/stella/Manifest1
-rw-r--r--games-emulation/stella/stella-6.7.ebuild74
47 files changed, 1256 insertions, 523 deletions
diff --git a/games-emulation/atari800/Manifest b/games-emulation/atari800/Manifest
index 8955c0ab342..a5f28f5de9c 100644
--- a/games-emulation/atari800/Manifest
+++ b/games-emulation/atari800/Manifest
@@ -1,2 +1,3 @@
DIST atari800-4.2.0-src.tgz 7047710 BLAKE2B eac4b2da03d2ff5ec9e18dda41e0345975ed16c1cee23d15d2633211b7d4835b7a26c79fbf1672bb9ce3b82d52c7273e717371a0065ba29807f76d823eeb9855 SHA512 1236a8e05bf878e4514ae8e9f1556e0961a7f11ff0333eef415af455d217f712d5c6ededdd343dff6ba1aab777e19997bf9ecb859408187d69fc141301ecba31
+DIST atari800-5.0.0-src.tgz 1847596 BLAKE2B 315afa4fc8d88c2267c3da04f50a541a871f2d9d0867030b30e8f5d22b421f73f89de85ea1c7d6bc41202304de43d482f5d0fd9a081b4e493b3bba1363ce1e71 SHA512 2469561cdfe185ad26fd0fff8d589c528ca267e0195dab58a0fe739674f7445b53c21070f6bcb838c1d776b9803b1e2874ecf58a36b2d6df04bd9eb38855bfac
DIST xf25.zip 188942 BLAKE2B c10b9108eebc571ac334ea6fca76d227e3d2fcde1595e8823a3d178dc31d9efa9b209572ee03875461289093615470192cf5c9a06cf0b4363d097a9eac201db4 SHA512 306612fc2af41ed10d76103af83e141cfd8bd3ba2ea3cbd1d0b81d4d5b0108c06948a5c626648c8a2424536757a42a3f8b9af1fb63fa3c31096447ffed0f9923
diff --git a/games-emulation/atari800/atari800-5.0.0.ebuild b/games-emulation/atari800/atari800-5.0.0.ebuild
new file mode 100644
index 00000000000..8ad5a7e21a6
--- /dev/null
+++ b/games-emulation/atari800/atari800-5.0.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools desktop
+
+DESCRIPTION="Atari 800 emulator"
+HOMEPAGE="https://atari800.github.io/"
+SRC_URI="
+ https://github.com/atari800/atari800/releases/download/ATARI800_${PV//./_}/${P}-src.tgz
+ https://sourceforge.net/projects/${PN}/files/ROM/Original%20XL%20ROM/xf25.zip"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="encode-mp3 opengl readline +sdl +sound"
+REQUIRED_USE="
+ encode-mp3? ( sound )
+ opengl? ( sdl )
+"
+
+DEPEND="
+ encode-mp3? (
+ media-sound/lame
+ )
+ sdl? (
+ >=media-libs/libsdl-1.2.0[joystick,opengl?,sound?,video]
+ )
+ !sdl? (
+ sys-libs/ncurses:=
+ )
+ readline? (
+ sys-libs/readline:=
+ sys-libs/ncurses:=
+ )
+ media-libs/libpng:=
+ sys-libs/zlib
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_prepare() {
+ local PATCHES=(
+ # Bug 544608
+ "${FILESDIR}"/atari800-3.1.0-tgetent-detection.patch
+ )
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local video=ncurses
+ local sound=no
+
+ if use sdl; then
+ video=sdl
+ use sound && sound=sdl
+ elif use sound; then
+ sound=oss
+ fi
+
+ local myconf=(
+ $(use_with opengl)
+ $(use_with readline)
+ $(use_with encode-mp3 mp3)
+ --with-video=${video}
+ --with-sound=${sound}
+ )
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ insinto "/usr/share/${PN}"
+ doins "${WORKDIR}/"*.ROM
+ insinto /etc
+ newins "${FILESDIR}"/atari800-4.2.0.cfg atari800.cfg
+ newicon data/atari2.svg ${PN}.svg
+ make_desktop_entry ${PN} "Atari 800 emulator"
+}
diff --git a/games-emulation/atari800/metadata.xml b/games-emulation/atari800/metadata.xml
index 93a5cf72aa7..70220fb60e1 100644
--- a/games-emulation/atari800/metadata.xml
+++ b/games-emulation/atari800/metadata.xml
@@ -26,9 +26,12 @@ ways :
* SDL (many different platforms and systems)
* WinCE
* MacOS X
-</longdescription>
+ </longdescription>
<upstream>
<remote-id type="sourceforge">atari800</remote-id>
<remote-id type="github">atari800/atari800</remote-id>
</upstream>
+ <use>
+ <flag name="encode-mp3">Support recording sound in MP3 format</flag>
+ </use>
</pkgmetadata>
diff --git a/games-emulation/desmume/Manifest b/games-emulation/desmume/Manifest
index 1552b4c0f52..9bbd673f797 100644
--- a/games-emulation/desmume/Manifest
+++ b/games-emulation/desmume/Manifest
@@ -1 +1,2 @@
DIST desmume-0.9.11_p20211119.tar.gz 13266678 BLAKE2B 0af12f9fd7f3448d4f18a61ec65f1a64926f402827bd9eb8af4a06766390dc626940c327e2bb0ff17d4d62eefe1171c4a836e98dbbbc34bf5d4e9e6d886189a0 SHA512 53553771b51741c2c553e47befec1eb90bdaa3c9ff239bdb301054dbaf5c483c768dac440fece797c9756f3c1490ad61da59b3b5728328b7f23aaa5e1de40625
+DIST desmume-0.9.13.tar.xz 10437780 BLAKE2B d5ca5ec66aceff3d5aa5adf338a44cced4d30104f288172f4438a88402f9af0c161d1f0cd0401d184fa66ebbde684d4cd206179a7f6377d27e4dd9ae3d3e7bcd SHA512 b756c5a5d79479e38c6135e4dcff3bdbaf78a4860699320305c81056bd6e7b8ba4db3c3d3879e2ac226b095783357b9f579c0486cafbbbdcee8456e1469efd9e
diff --git a/games-emulation/desmume/desmume-0.9.13.ebuild b/games-emulation/desmume/desmume-0.9.13.ebuild
new file mode 100644
index 00000000000..f4edfb4b5a3
--- /dev/null
+++ b/games-emulation/desmume/desmume-0.9.13.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson xdg
+
+DESCRIPTION="Nintendo DS emulator"
+HOMEPAGE="https://desmume.org/"
+SRC_URI="https://github.com/TASEmulators/desmume/releases/download/release_$(ver_rs 1- _)/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gdb +gui openal wifi"
+
+RDEPEND="
+ dev-libs/glib:2
+ media-libs/libsdl2[X,opengl,sound,video]
+ media-libs/libsoundtouch:=
+ net-libs/libpcap
+ sys-libs/zlib:=
+ x11-libs/agg
+ x11-libs/libX11
+ gui? (
+ media-libs/libglvnd[X]
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ )
+ openal? ( media-libs/openal )
+ !openal? ( media-libs/alsa-lib )"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.11_p20210409-fix-gtk-cliopts.patch
+ "${FILESDIR}"/${PN}-0.9.11_p20210409-openal-automagic.patch
+)
+
+DOCS=( ${PN}/{AUTHORS,ChangeLog,README,README.LIN,doc/.} )
+
+src_configure() {
+ local EMESON_SOURCE=${S}/${PN}/src/frontend/posix
+
+ local emesonargs=(
+ $(meson_use gdb gdb-stub)
+ $(meson_use gui frontend-gtk)
+ $(meson_use openal)
+ $(meson_use wifi)
+ )
+
+ meson_src_configure
+}
diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
index ebcb62a4689..eaf5b6495ec 100644
--- a/games-emulation/dolphin/Manifest
+++ b/games-emulation/dolphin/Manifest
@@ -1 +1,3 @@
DIST dolphin-5.0_p20210506.tar.gz 42098693 BLAKE2B bb9e5b5eb344bd944753c0198d5835109399fdfae46e6858833e5f279ff1979d39e0c512bedb96a91a1241fff525c6f945d16ce1a6b6cc22798490d73b853862 SHA512 5d23e9356995011a0e7b07622d58c8dddc5134a4ec83b3d9343b9eca8d0d2c200ea8c9a299c6aa2550ca74d8e28e258531368f7c167fe620053eb2a0f73b1f2f
+DIST dolphin-5.0_p20220520.tar.gz 34880474 BLAKE2B 925cddfe8a5d6febced5721bea6ced7c8d2855619f74ca8940b95dc78ea523b4a1083b9ef6efe3561d833b8e9ecb742cb2adf5a1864c06b629b3ecd9e92cc871 SHA512 4993cb10061b142f6627c96493885a5f9d88857d8949c2e8e8d5df5ba6e19b4f98d199da5e641d3d61294884e1cbbe8191bc5b4445c60bf80723046b2524aad5
+DIST mgba-40d4c430fc36caeb7ea32fd39624947ed487d2f2.tar.gz 12921593 BLAKE2B 8c5cf7b9b53f897f6248ad6bc51efafaa8a9d5df137d42d30f4b042b6d1527049644595938626c8cae1385d329bc45bf42db8dcc4424b963a3899e0df53246eb SHA512 26d7b60cbc7415652bb9ca2a42ccd532856867db57bf6dd91d8204551970109b6b9f4a96c42d643ea96b9d071d6aec924d3c1bb79c251c95183b7fb8536456c9
diff --git a/games-emulation/dolphin/dolphin-5.0_p20210506-r3.ebuild b/games-emulation/dolphin/dolphin-5.0_p20210506-r3.ebuild
index ec22c67307f..33218b7db9b 100644
--- a/games-emulation/dolphin/dolphin-5.0_p20210506-r3.ebuild
+++ b/games-emulation/dolphin/dolphin-5.0_p20210506-r3.ebuild
@@ -21,8 +21,7 @@ fi
DESCRIPTION="Gamecube and Wii game emulator"
HOMEPAGE="https://dolphin-emu.org/"
-# NB: appended below
-LICENSE="GPL-2+"
+LICENSE="GPL-2+ Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MIT ZLIB"
SLOT="0"
IUSE="alsa bluetooth discord-presence doc +evdev ffmpeg +gui log
profile pulseaudio systemd upnp vulkan"
@@ -108,7 +107,6 @@ declare -A KEEP_BUNDLED=(
# No code to detect shared library.
[zstd]=BSD
)
-LICENSE+=" ${KEEP_BUNDLED[*]}"
src_prepare() {
cmake_src_prepare
diff --git a/games-emulation/dolphin/dolphin-5.0_p20220520.ebuild b/games-emulation/dolphin/dolphin-5.0_p20220520.ebuild
new file mode 100644
index 00000000000..d888afe15b4
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-5.0_p20220520.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop xdg-utils pax-utils
+
+if [[ ${PV} == *9999 ]]
+then
+ EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
+ EGIT_SUBMODULES=( Externals/mGBA/mgba )
+ inherit git-r3
+else
+ EGIT_COMMIT=0f2540a0d1133950467845f20b1e003181147781
+ MGBA_COMMIT=40d4c430fc36caeb7ea32fd39624947ed487d2f2
+ SRC_URI="
+ https://github.com/dolphin-emu/dolphin/archive/${EGIT_COMMIT}.tar.gz
+ -> ${P}.tar.gz
+ mgba? (
+ https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz
+ -> mgba-${MGBA_COMMIT}.tar.gz
+ )
+ "
+ S=${WORKDIR}/${PN}-${EGIT_COMMIT}
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+DESCRIPTION="Gamecube and Wii game emulator"
+HOMEPAGE="https://dolphin-emu.org/"
+
+LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
+SLOT="0"
+IUSE="
+ alsa bluetooth discord-presence doc +evdev ffmpeg +gui log mgba
+ profile pulseaudio systemd upnp vulkan
+"
+
+RDEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+ dev-libs/hidapi:=
+ >=dev-libs/libfmt-8:=
+ dev-libs/lzo:=
+ dev-libs/pugixml:=
+ media-libs/cubeb:=
+ media-libs/libpng:=
+ media-libs/libsfml
+ media-libs/mesa[egl(+)]
+ net-libs/enet:1.3
+ net-libs/mbedtls:=
+ net-misc/curl:=
+ sys-libs/readline:=
+ sys-libs/zlib:=[minizip]
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ virtual/libusb:1
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib )
+ bluetooth? ( net-wireless/bluez )
+ evdev? (
+ dev-libs/libevdev
+ virtual/udev
+ )
+ ffmpeg? ( media-video/ffmpeg:= )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+ profile? ( dev-util/oprofile )
+ pulseaudio? ( media-sound/pulseaudio )
+ systemd? ( sys-apps/systemd:0= )
+ upnp? ( net-libs/miniupnpc )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+# vulkan-loader required for vulkan backend which can be selected
+# at runtime.
+RDEPEND+="
+ vulkan? ( media-libs/vulkan-loader )
+"
+
+# [directory]=license
+declare -A KEEP_BUNDLED=(
+ # please keep this list in CMakeLists.txt order
+
+ [Bochs_disasm]=LGPL-2.1+
+ [cpp-optparse]=MIT
+ [imgui]=MIT
+ [glslang]=BSD
+
+ # FIXME: xxhash can't be found by cmake
+ [xxhash]=BSD-2
+
+ # FIXME: requires minizip-ng
+ #[minizip]=ZLIB
+
+ [FreeSurround]=GPL-2+
+ [soundtouch]=LGPL-2.1+
+
+ # FIXME: discord-rpc not packaged
+ [discord-rpc]=MIT
+
+ [mGBA]=MPL-2.0
+
+ [picojson]=BSD-2
+ [rangeset]=ZLIB
+ [gtest]= # (build-time only)
+)
+
+src_prepare() {
+ if use mgba && [[ ${PV} != *9999 ]]; then
+ rmdir Externals/mGBA/mgba || die
+ mv "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+ fi
+
+ cmake_src_prepare
+
+ local s remove=()
+ for s in Externals/*; do
+ [[ -f ${s} ]] && continue
+ if ! has "${s#Externals/}" "${!KEEP_BUNDLED[@]}"; then
+ remove+=( "${s}" )
+ fi
+ done
+
+ einfo "removing sources: ${remove[*]}"
+ rm -r "${remove[@]}" || die
+
+ # About 50% compile-time speedup
+ if ! use vulkan; then
+ sed -i -e '/Externals\/glslang/d' CMakeLists.txt || die
+ fi
+
+ # Allow regular minizip.
+ sed -i -e '/minizip/s:>=2[.]0[.]0::' CMakeLists.txt || die
+
+ # Remove dirty suffix: needed for netplay
+ sed -i -e 's/--dirty/&=""/' CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ # Use ccache only when user did set FEATURES=ccache (or similar)
+ # not when ccache binary is present in system (automagic).
+ -DCCACHE_BIN=CCACHE_BIN-NOTFOUND
+ -DENABLE_ALSA=$(usex alsa)
+ -DENABLE_AUTOUPDATE=OFF
+ -DENABLE_BLUEZ=$(usex bluetooth)
+ -DENABLE_EVDEV=$(usex evdev)
+ -DENCODE_FRAMEDUMPS=$(usex ffmpeg)
+ -DENABLE_LLVM=OFF
+ # just adds -flto, user can do that via flags
+ -DENABLE_LTO=OFF
+ -DUSE_MGBA=$(usex mgba)
+ -DENABLE_PULSEAUDIO=$(usex pulseaudio)
+ -DENABLE_QT=$(usex gui)
+ -DENABLE_SDL=OFF # not supported: #666558
+ -DENABLE_VULKAN=$(usex vulkan)
+ -DFASTLOG=$(usex log)
+ -DOPROFILING=$(usex profile)
+ -DUSE_DISCORD_PRESENCE=$(usex discord-presence)
+ -DUSE_SHARED_ENET=ON
+ -DUSE_UPNP=$(usex upnp)
+
+ # Undo cmake.eclass's defaults.
+ # All dolphin's libraries are private
+ # and rely on circular dependency resolution.
+ -DBUILD_SHARED_LIBS=OFF
+
+ # Avoid warning spam around unset variables.
+ -Wno-dev
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ cmake_build unittests
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc Readme.md
+ if use doc; then
+ dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
+ fi
+
+ doicon -s 48 Data/dolphin-emu.png
+ doicon -s scalable Data/dolphin-emu.svg
+ doicon Data/dolphin-emu.svg
+}
+
+pkg_postinst() {
+ # Add pax markings for hardened systems
+ pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/games-emulation/dolphin/dolphin-9999.ebuild b/games-emulation/dolphin/dolphin-9999.ebuild
index a6b3ce256bb..d888afe15b4 100644
--- a/games-emulation/dolphin/dolphin-9999.ebuild
+++ b/games-emulation/dolphin/dolphin-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,10 +11,16 @@ then
EGIT_SUBMODULES=( Externals/mGBA/mgba )
inherit git-r3
else
- EGIT_COMMIT=eb5cd9be78c76b9ccbab9e5fbd1721ef6876cd68
+ EGIT_COMMIT=0f2540a0d1133950467845f20b1e003181147781
+ MGBA_COMMIT=40d4c430fc36caeb7ea32fd39624947ed487d2f2
SRC_URI="
https://github.com/dolphin-emu/dolphin/archive/${EGIT_COMMIT}.tar.gz
- -> ${P}.tar.gz"
+ -> ${P}.tar.gz
+ mgba? (
+ https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz
+ -> mgba-${MGBA_COMMIT}.tar.gz
+ )
+ "
S=${WORKDIR}/${PN}-${EGIT_COMMIT}
KEYWORDS="~amd64 ~arm64"
fi
@@ -22,25 +28,30 @@ fi
DESCRIPTION="Gamecube and Wii game emulator"
HOMEPAGE="https://dolphin-emu.org/"
-# NB: appended below
-LICENSE="GPL-2+"
+LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
SLOT="0"
-IUSE="alsa bluetooth discord-presence doc +evdev ffmpeg +gui log mgba
- profile pulseaudio systemd upnp vulkan"
+IUSE="
+ alsa bluetooth discord-presence doc +evdev ffmpeg +gui log mgba
+ profile pulseaudio systemd upnp vulkan
+"
RDEPEND="
- dev-libs/hidapi:0=
- >=dev-libs/libfmt-7.1:0=
- dev-libs/lzo:2=
- dev-libs/pugixml:0=
- media-libs/libpng:0=
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+ dev-libs/hidapi:=
+ >=dev-libs/libfmt-8:=
+ dev-libs/lzo:=
+ dev-libs/pugixml:=
+ media-libs/cubeb:=
+ media-libs/libpng:=
media-libs/libsfml
media-libs/mesa[egl(+)]
net-libs/enet:1.3
- net-libs/mbedtls:0=
- net-misc/curl:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
+ net-libs/mbedtls:=
+ net-misc/curl:=
+ sys-libs/readline:=
+ sys-libs/zlib:=[minizip]
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrandr
@@ -63,56 +74,54 @@ RDEPEND="
systemd? ( sys-apps/systemd:0= )
upnp? ( net-libs/miniupnpc )
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+"
BDEPEND="
sys-devel/gettext
- virtual/pkgconfig"
+ virtual/pkgconfig
+"
# vulkan-loader required for vulkan backend which can be selected
# at runtime.
-RDEPEND="${RDEPEND}
- vulkan? ( media-libs/vulkan-loader )"
+RDEPEND+="
+ vulkan? ( media-libs/vulkan-loader )
+"
# [directory]=license
declare -A KEEP_BUNDLED=(
- [Bochs_disasm]=LGPL-2.1+
- [FreeSurround]=GPL-2+
-
- # vulkan's API is not backwards-compatible:
- # new release dropped VK_PRESENT_MODE_RANGE_SIZE_KHR
- # but dolphin still relies on it, bug #729832
- [Vulkan]=Apache-2.0
+ # please keep this list in CMakeLists.txt order
+ [Bochs_disasm]=LGPL-2.1+
[cpp-optparse]=MIT
- # no support for for using system library
- [glslang]=BSD
[imgui]=MIT
-
- # not packaged, tiny header library
- [rangeset]=ZLIB
+ [glslang]=BSD
# FIXME: xxhash can't be found by cmake
[xxhash]=BSD-2
- # no support for for using system library
- [minizip]=ZLIB
- # soundtouch uses shorts, not floats
+
+ # FIXME: requires minizip-ng
+ #[minizip]=ZLIB
+
+ [FreeSurround]=GPL-2+
[soundtouch]=LGPL-2.1+
- [cubeb]=ISC
+
+ # FIXME: discord-rpc not packaged
[discord-rpc]=MIT
- # Their build set up solely relies on the build in gtest.
- [gtest]= # (build-time only)
- # gentoo's version requires exception support.
- # dolphin disables exceptions and fails the build.
- [picojson]=BSD-2
- # No code to detect shared library.
- [zstd]=BSD
- # This is a stripped-down mGBA for integrated GBA support
[mGBA]=MPL-2.0
+
+ [picojson]=BSD-2
+ [rangeset]=ZLIB
+ [gtest]= # (build-time only)
)
-LICENSE+=" ${KEEP_BUNDLED[*]}"
src_prepare() {
+ if use mgba && [[ ${PV} != *9999 ]]; then
+ rmdir Externals/mGBA/mgba || die
+ mv "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+ fi
+
cmake_src_prepare
local s remove=()
@@ -131,6 +140,9 @@ src_prepare() {
sed -i -e '/Externals\/glslang/d' CMakeLists.txt || die
fi
+ # Allow regular minizip.
+ sed -i -e '/minizip/s:>=2[.]0[.]0::' CMakeLists.txt || die
+
# Remove dirty suffix: needed for netplay
sed -i -e 's/--dirty/&=""/' CMakeLists.txt || die
}
@@ -141,6 +153,7 @@ src_configure() {
# not when ccache binary is present in system (automagic).
-DCCACHE_BIN=CCACHE_BIN-NOTFOUND
-DENABLE_ALSA=$(usex alsa)
+ -DENABLE_AUTOUPDATE=OFF
-DENABLE_BLUEZ=$(usex bluetooth)
-DENABLE_EVDEV=$(usex evdev)
-DENCODE_FRAMEDUMPS=$(usex ffmpeg)
diff --git a/games-emulation/fceux/Manifest b/games-emulation/fceux/Manifest
index d0eb7c4b87b..39b635b3d0f 100644
--- a/games-emulation/fceux/Manifest
+++ b/games-emulation/fceux/Manifest
@@ -1 +1 @@
-DIST fceux-2.6.1.tar.gz 23326768 BLAKE2B 8a0907871af229cb8017845b444a8cc4ebe65dff0799483de488e984741fc89a885a9ecd421fef3a25175cc8f0855da68001fb6ea24f8e6955b2e1a02dc3f7d2 SHA512 f086003f676054a5527e3c1b81f9abdb76669e2b3935e7625f99d99ad0b122391646e8a186ca6a2840d5f03fff908630c11481b5166325ca91c08c2e46836f8d
+DIST fceux-2.6.4.tar.gz 23372193 BLAKE2B 0a27bdc1637c4577f175f9afed6318d3020221a2823adc154baffbda005d28cfdf04a00bc0c7b3c9b51ec4b4f5a709e36cb686ec8f11c73f5e7c83e3b84b83e3 SHA512 9fd8b908b652b5b8f120d15bdd43fa1e3475a300e0f1ec7d44965c95ec4bf58f7f9fe9511ea975effaf37f2cc4900e74021b06111dcafecc27affdd9d4e12f2e
diff --git a/games-emulation/fceux/fceux-2.6.1.ebuild b/games-emulation/fceux/fceux-2.6.4.ebuild
index b7b998d9eb6..ac55ef93a2b 100644
--- a/games-emulation/fceux/fceux-2.6.1.ebuild
+++ b/games-emulation/fceux/fceux-2.6.4.ebuild
@@ -10,7 +10,7 @@ DESCRIPTION="Portable Famicom/NES emulator, an evolution of the original FCE Ult
HOMEPAGE="https://fceux.com/"
SRC_URI="mirror://sourceforge/fceultra/${P}.tar.gz"
-LICENSE="GPL-2"
+LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="ffmpeg x264 x265"
diff --git a/games-emulation/m64py/Manifest b/games-emulation/m64py/Manifest
index 36736dbfddf..fc3dfa282a7 100644
--- a/games-emulation/m64py/Manifest
+++ b/games-emulation/m64py/Manifest
@@ -1 +1,2 @@
DIST m64py-0.2.5.tar.gz 201868 BLAKE2B 95cbfe58ae2741caac5e05bcc06af563ee398d2916d07902ba4aaf4213277eea3c6219448db5958e0a2d0ea8ea3f65c88e63cfd2938a8b4ed33231ba57ae724f SHA512 338f5e96dc4657ba2230c32a40cf0e85c5efcccaa0d5fdbe4b4dcef020b910f5d2d88e5c224f8b496ec0378051aaf44358a0438de52fb03b4ece353f55abc61c
+DIST mupen64plus-ui-python-e24679436a93e8aae0aa664dc4b2dea40d8236c1.gh.tar.gz 14669412 BLAKE2B 08232599557503d606db9e44bdd6dbb30b3fa125bfd9b9bcc2cbc4b6ea71b567f5af4338d03e7580707db522249d9426ec4d64dc1e941a43076b2d21bc974b67 SHA512 2ba865041827a7f47d5151db6123abd62c964c024c14356aa5434619736b19ce150178d536cff1c84e93d0544823e173c67c0f08054c13e01f085912a9b8c2c6
diff --git a/games-emulation/m64py/m64py-0.2.5_p20211222.ebuild b/games-emulation/m64py/m64py-0.2.5_p20211222.ebuild
new file mode 100644
index 00000000000..7f6898ba649
--- /dev/null
+++ b/games-emulation/m64py/m64py-0.2.5_p20211222.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1 qmake-utils xdg-utils
+
+EGIT_COMMIT="e24679436a93e8aae0aa664dc4b2dea40d8236c1"
+MY_P=mupen64plus-ui-python-${EGIT_COMMIT}
+
+DESCRIPTION="A frontend for Mupen64Plus"
+HOMEPAGE="
+ http://m64py.sourceforge.net/
+ https://github.com/mupen64plus/mupen64plus-ui-python/
+"
+SRC_URI="
+ https://github.com/mupen64plus/mupen64plus-ui-python/archive/${EGIT_COMMIT}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3 LGPL-3 public-domain GPL-2 BSD CC-BY-SA-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="7z rar"
+
+RDEPEND="
+ dev-python/PyQt5[gui,opengl,widgets,${PYTHON_USEDEP}]
+ dev-python/PySDL2[${PYTHON_USEDEP}]
+ media-libs/libsdl2[joystick,video]
+ >=games-emulation/mupen64plus-core-2.5:0/2-sdl2
+ 7z? (
+ app-arch/p7zip
+ )
+ rar? (
+ || (
+ dev-python/rarfile[${PYTHON_USEDEP}]
+ app-arch/unrar
+ app-arch/rar
+ )
+ )
+"
+BDEPEND="
+ dev-qt/linguist-tools:5
+"
+
+python_prepare_all() {
+ # set the correct search path
+ cat >> src/m64py/platform.py <<-_EOF_ || die
+ SEARCH_DIRS = ["/usr/$(get_libdir)/mupen64plus"]
+ _EOF_
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local -x PATH=$(qt5_get_bindir):${PATH}
+ distutils-r1_python_compile
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+}
diff --git a/games-emulation/mednafen/Manifest b/games-emulation/mednafen/Manifest
index 03d23eaad42..d8520a59a04 100644
--- a/games-emulation/mednafen/Manifest
+++ b/games-emulation/mednafen/Manifest
@@ -1,2 +1 @@
-DIST mednafen-1.27.1.tar.xz 3363540 BLAKE2B f74c251300af2348db00d68ef2cd998bdf4d6fb06873e03e0027d836b5b1217901b1e2cf922877b1db4c278ba4cc2674e4875a17fff52a3b8be5a447670a6385 SHA512 f55d86baa8c77fc98aae63a38235eb64f64131f180c40ed1ac7cd2ad845230348fbba05643eb5e6af203e56c39c8011b632d2bcecbd2c9f2c19b2447f6b99e83
DIST mednafen-1.29.0.tar.xz 3512784 BLAKE2B bea5ecfe00f97d1cf81eccfe4264d8fea666c9c8543449ca8c1e4e064f89a100f6bbe77b23d42d5d9c4a7e005792006d599852a201f1d95a756742bc58ecda81 SHA512 375f0fb4f12907faf56b4e9ecdc44c1655b0660a3773240fe3118f2b261e171479b8eb254299f899fc442b54041c941eab2a5f343aec559d9731c3e92cde0569
diff --git a/games-emulation/mednafen/mednafen-1.27.1.ebuild b/games-emulation/mednafen/mednafen-1.27.1.ebuild
deleted file mode 100644
index ff0f36561a3..00000000000
--- a/games-emulation/mednafen/mednafen-1.27.1.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic pax-utils toolchain-funcs
-
-DESCRIPTION="Argument-driven multi-system emulator utilizing OpenGL and SDL"
-HOMEPAGE="https://mednafen.github.io/"
-SRC_URI="https://mednafen.github.io/releases/files/${P}.tar.xz"
-S="${WORKDIR}/${PN}"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="alsa cpu_flags_ppc_altivec flac jack"
-
-RDEPEND="
- dev-libs/lzo:2
- dev-libs/trio
- media-libs/libsdl2[joystick,opengl,video]
- media-libs/tremor
- media-sound/musepack-tools
- sys-libs/zlib:=[minizip]
- virtual/libintl
- alsa? ( media-libs/alsa-lib )
- flac? ( media-libs/flac )
- jack? ( virtual/jack )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- sys-devel/gettext
- virtual/pkgconfig"
-
-src_prepare() {
- default
-
- # don't let the build system mess with CFLAGS more than necessary,
- # most are questionable (see README.PORTING/configure.ac comments)
- # -fwrapv: kept for bug #539992
- sed -e '/CC_OPT.*CODEGEN_FLAGS/{/-fwrapv/!d}' \
- -e '/CC_OPT.*NO_STACK_PROTECTOR_FLAGS/d' \
- -e '/CC_OPT.*OPTIMIZER_FLAGS/c\:' \
- -e '/CC_OPT.*-mtune.*SS_EXTRA_FLAGS/d' \
- -i configure.ac || die
- eautoreconf
-}
-
-src_configure() {
- # disable unnecessary warnings not to confuse users (see src/types.h)
- append-cppflags -DMDFN_DISABLE_{NO_OPT,PICPIE}_ERRWARN
-
- local myeconfargs=(
- $(use_enable alsa)
- $(use_enable cpu_flags_ppc_altivec altivec)
- $(use_enable jack)
- $(use_with flac libflac)
- --with-external-{lzo,mpcdec,tremor,trio}
- )
- econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- emake AR="$(tc-getAR)"
-}
-
-src_install() {
- local DOCS=(
- ChangeLog
- Documentation/{cheats.txt,fname_format.txt,modules.def,settings.def}
- )
- local HTML_DOCS=( Documentation/*.{css,html,png} )
-
- default
-
- pax-mark m "${ED}"/usr/bin/mednafen
-}
diff --git a/games-emulation/melonds/Manifest b/games-emulation/melonds/Manifest
index 3a233230003..d2554b5a800 100644
--- a/games-emulation/melonds/Manifest
+++ b/games-emulation/melonds/Manifest
@@ -1 +1,2 @@
DIST melonDS-0.9.3.tar.gz 2241325 BLAKE2B 0ea7fbcce039a60a0553ae45d11f0b1550bfec2300faf1c99c3ee531bd5949c7293bec187fbf53e400bbb6280df29db141b2d1bcb294a8abf2eabb71993db686 SHA512 37f26f3a9784873ce1664645cea70049725367f5fe62f7c58842ebd5da2c73ffe423695dddb0ffd444bdf59df2a3fcd778cdf95b2bb083014b961fed282953f5
+DIST melonDS-0.9.4_p1.tar.gz 2330696 BLAKE2B f118d067505d740fef2c9f3a7761580981d43c6c63f9bfb34f48cbc5c6932e5410ee31259845787262412b040a66c85cdd4298645e2060fc6c8821a89b314711 SHA512 76886ecfbabd00ae9261c33fcd4074b20e989f4357575bf68139538136fb0ba728d7590310ce4ae9c45670ee01ec315046f03f54e7ca9a359be202709b030f6d
diff --git a/games-emulation/melonds/files/melonds-system-teakra.patch b/games-emulation/melonds/files/melonds-system-teakra.patch
new file mode 100644
index 00000000000..b59c31e4ba9
--- /dev/null
+++ b/games-emulation/melonds/files/melonds-system-teakra.patch
@@ -0,0 +1,23 @@
+index 7288b54..6525f11 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -110,7 +110,6 @@ if (ENABLE_JIT)
+ endif()
+ endif()
+
+-add_subdirectory(teakra EXCLUDE_FROM_ALL)
+ target_link_libraries(core teakra)
+
+
+index c889aff..a6339d9 100644
+--- a/src/DSi_DSP.cpp
++++ b/src/DSi_DSP.cpp
+@@ -16,7 +16,7 @@
+ with melonDS. If not, see http://www.gnu.org/licenses/.
+ */
+
+-#include "teakra/include/teakra/teakra.h"
++#include "teakra/teakra.h"
+
+ #include "DSi.h"
+ #include "DSi_DSP.h"
diff --git a/games-emulation/melonds/melonds-0.9.3-r1.ebuild b/games-emulation/melonds/melonds-0.9.3-r2.ebuild
index 0d497e9b94f..0cde97c7b28 100644
--- a/games-emulation/melonds/melonds-0.9.3-r1.ebuild
+++ b/games-emulation/melonds/melonds-0.9.3-r2.ebuild
@@ -1,15 +1,12 @@
-# Copyright 2019-2021 Gentoo Authors
+# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-# NOTICE:
-# melonds bundles teakra, its upstream haven't had a release since 2020
-
EAPI=8
MY_PN="melonDS"
MY_P="${MY_PN}-${PV}"
-inherit cmake flag-o-matic readme.gentoo-r1 toolchain-funcs xdg
+inherit cmake readme.gentoo-r1 toolchain-funcs xdg
DESCRIPTION="Nintendo DS emulator, sorta"
HOMEPAGE="
@@ -32,6 +29,7 @@ SLOT="0"
DEPEND="
app-arch/libarchive
+ dev-libs/teakra
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
@@ -55,7 +53,11 @@ DOC_CONTENTS="You need the following files in order to run melonDS:
Place them in ~/.config/melonDS
Those files can be found somewhere on the Internet ;-)"
+PATCHES=( "${FILESDIR}"/melonds-system-teakra.patch )
+
src_prepare() {
+ rm -r ./src/teakra || die
+
cmake_src_prepare
}
@@ -73,16 +75,11 @@ src_compile() {
}
src_install() {
- # install teakra
- dolib.so "${BUILD_DIR}/src/teakra/src/libteakra.so"
-
cmake_src_install
-
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
-
readme.gentoo_print_elog
}
diff --git a/games-emulation/melonds/melonds-0.9.4_p1-r1.ebuild b/games-emulation/melonds/melonds-0.9.4_p1-r1.ebuild
new file mode 100644
index 00000000000..706876b372f
--- /dev/null
+++ b/games-emulation/melonds/melonds-0.9.4_p1-r1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="melonDS"
+MY_P="${MY_PN}-${PV}"
+
+inherit cmake readme.gentoo-r1 toolchain-funcs xdg
+
+DESCRIPTION="Nintendo DS emulator, sorta"
+HOMEPAGE="
+ http://melonds.kuribo64.net
+ https://github.com/Arisotura/melonDS
+"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Arisotura/${MY_PN}.git"
+else
+ SRC_URI="https://github.com/Arisotura/${MY_PN}/archive/0.9.4.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}"/${MY_PN}-0.9.4
+fi
+
+IUSE="+jit +opengl"
+LICENSE="BSD-2 GPL-2 GPL-3 Unlicense"
+SLOT="0"
+
+DEPEND="
+ app-arch/libarchive
+ dev-libs/teakra
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ media-libs/libsdl2[sound,video]
+ net-libs/libpcap
+ net-libs/libslirp
+ opengl? ( media-libs/libepoxy )
+"
+RDEPEND="${DEPEND}"
+
+# used for JIT recompiler
+QA_EXECSTACK="usr/bin/melonDS"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="You need the following files in order to run melonDS:
+- bios7.bin
+- bios9.bin
+- firmware.bin
+- romlist.bin
+Place them in ~/.config/melonDS
+Those files can be found somewhere on the Internet ;-)"
+
+PATCHES=( "${FILESDIR}"/melonds-system-teakra.patch )
+
+src_prepare() {
+ rm -r ./src/teakra || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_JIT=$(usex jit)
+ -DENABLE_OGLRENDERER=$(usex opengl)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ tc-export AR
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ readme.gentoo_print_elog
+}
diff --git a/games-emulation/melonds/melonds-9999.ebuild b/games-emulation/melonds/melonds-9999.ebuild
index 0d497e9b94f..2cec9318a98 100644
--- a/games-emulation/melonds/melonds-9999.ebuild
+++ b/games-emulation/melonds/melonds-9999.ebuild
@@ -1,15 +1,12 @@
-# Copyright 2019-2021 Gentoo Authors
+# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-# NOTICE:
-# melonds bundles teakra, its upstream haven't had a release since 2020
-
EAPI=8
MY_PN="melonDS"
MY_P="${MY_PN}-${PV}"
-inherit cmake flag-o-matic readme.gentoo-r1 toolchain-funcs xdg
+inherit cmake readme.gentoo-r1 toolchain-funcs xdg
DESCRIPTION="Nintendo DS emulator, sorta"
HOMEPAGE="
@@ -32,6 +29,7 @@ SLOT="0"
DEPEND="
app-arch/libarchive
+ dev-libs/teakra
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
@@ -55,10 +53,6 @@ DOC_CONTENTS="You need the following files in order to run melonDS:
Place them in ~/.config/melonDS
Those files can be found somewhere on the Internet ;-)"
-src_prepare() {
- cmake_src_prepare
-}
-
src_configure() {
local mycmakeargs=(
-DENABLE_JIT=$(usex jit)
@@ -73,16 +67,11 @@ src_compile() {
}
src_install() {
- # install teakra
- dolib.so "${BUILD_DIR}/src/teakra/src/libteakra.so"
-
cmake_src_install
-
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
-
readme.gentoo_print_elog
}
diff --git a/games-emulation/melonds/metadata.xml b/games-emulation/melonds/metadata.xml
index 598e25db79b..4fb3ef167d8 100644
--- a/games-emulation/melonds/metadata.xml
+++ b/games-emulation/melonds/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
diff --git a/games-emulation/mgba/files/mgba-0.9.3-ffmpeg5.patch b/games-emulation/mgba/files/mgba-0.9.3-ffmpeg5.patch
new file mode 100644
index 00000000000..6b8d55c377e
--- /dev/null
+++ b/games-emulation/mgba/files/mgba-0.9.3-ffmpeg5.patch
@@ -0,0 +1,109 @@
+https://bugs.gentoo.org/834374
+
+https://github.com/mgba-emu/mgba/commit/cdc753516798882a805db1d2042dbce8313382bf
+From: Ryan Tandy <ryan@nardis.ca>
+Date: Thu, 3 Feb 2022 19:02:52 -0800
+Subject: [PATCH] FFmpeg: Support FFmpeg 5.0
+--- a/src/feature/ffmpeg/ffmpeg-decoder.c
++++ b/src/feature/ffmpeg/ffmpeg-decoder.c
+@@ -5,6 +5,7 @@
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ #include "ffmpeg-decoder.h"
+
++#include <libavcodec/avcodec.h>
+ #include <libswscale/swscale.h>
+
+ void FFmpegDecoderInit(struct FFmpegDecoder* decoder) {
+@@ -38,7 +39,7 @@ bool FFmpegDecoderOpen(struct FFmpegDecoder* decoder, const char* infile) {
+ #else
+ enum AVMediaType type = decoder->context->streams[i]->codec->codec_type;
+ #endif
+- struct AVCodec* codec;
++ const struct AVCodec* codec;
+ struct AVCodecContext* context = NULL;
+ if (type == AVMEDIA_TYPE_VIDEO && decoder->videoStream < 0) {
+ decoder->video = avcodec_alloc_context3(NULL);
+--- a/src/feature/ffmpeg/ffmpeg-encoder.c
++++ b/src/feature/ffmpeg/ffmpeg-encoder.c
+@@ -12,6 +12,9 @@
+
+ #include <libavcodec/version.h>
+ #include <libavcodec/avcodec.h>
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++#include <libavcodec/bsf.h>
++#endif
+
+ #include <libavfilter/buffersink.h>
+ #include <libavfilter/buffersrc.h>
+@@ -121,7 +124,7 @@ bool FFmpegEncoderSetAudio(struct FFmpegEncoder* encoder, const char* acodec, un
+ return true;
+ }
+
+- AVCodec* codec = avcodec_find_encoder_by_name(acodec);
++ const AVCodec* codec = avcodec_find_encoder_by_name(acodec);
+ if (!codec) {
+ return false;
+ }
+@@ -193,7 +196,7 @@ bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, in
+ return true;
+ }
+
+- AVCodec* codec = avcodec_find_encoder_by_name(vcodec);
++ const AVCodec* codec = avcodec_find_encoder_by_name(vcodec);
+ if (!codec) {
+ return false;
+ }
+@@ -213,7 +216,7 @@ bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, in
+ if (encoder->pixFormat == AV_PIX_FMT_NONE) {
+ return false;
+ }
+- if (vbr < 0 && !av_opt_find(&codec->priv_class, "crf", NULL, 0, 0)) {
++ if (vbr < 0 && !av_opt_find((void*) &codec->priv_class, "crf", NULL, 0, 0)) {
+ return false;
+ }
+ encoder->videoCodec = vcodec;
+@@ -223,7 +226,7 @@ bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, in
+ }
+
+ bool FFmpegEncoderSetContainer(struct FFmpegEncoder* encoder, const char* container) {
+- AVOutputFormat* oformat = av_guess_format(container, 0, 0);
++ const AVOutputFormat* oformat = av_guess_format(container, 0, 0);
+ if (!oformat) {
+ return false;
+ }
+@@ -241,9 +244,9 @@ void FFmpegEncoderSetLooping(struct FFmpegEncoder* encoder, bool loop) {
+ }
+
+ bool FFmpegEncoderVerifyContainer(struct FFmpegEncoder* encoder) {
+- AVOutputFormat* oformat = av_guess_format(encoder->containerFormat, 0, 0);
+- AVCodec* acodec = avcodec_find_encoder_by_name(encoder->audioCodec);
+- AVCodec* vcodec = avcodec_find_encoder_by_name(encoder->videoCodec);
++ const AVOutputFormat* oformat = av_guess_format(encoder->containerFormat, 0, 0);
++ const AVCodec* acodec = avcodec_find_encoder_by_name(encoder->audioCodec);
++ const AVCodec* vcodec = avcodec_find_encoder_by_name(encoder->videoCodec);
+ if ((encoder->audioCodec && !acodec) || (encoder->videoCodec && !vcodec) || !oformat || (!acodec && !vcodec)) {
+ return false;
+ }
+@@ -257,8 +260,8 @@ bool FFmpegEncoderVerifyContainer(struct FFmpegEncoder* encoder) {
+ }
+
+ bool FFmpegEncoderOpen(struct FFmpegEncoder* encoder, const char* outfile) {
+- AVCodec* acodec = avcodec_find_encoder_by_name(encoder->audioCodec);
+- AVCodec* vcodec = avcodec_find_encoder_by_name(encoder->videoCodec);
++ const AVCodec* acodec = avcodec_find_encoder_by_name(encoder->audioCodec);
++ const AVCodec* vcodec = avcodec_find_encoder_by_name(encoder->videoCodec);
+ if ((encoder->audioCodec && !acodec) || (encoder->videoCodec && !vcodec) || !FFmpegEncoderVerifyContainer(encoder)) {
+ return false;
+ }
+@@ -272,9 +275,9 @@ bool FFmpegEncoderOpen(struct FFmpegEncoder* encoder, const char* outfile) {
+ encoder->currentVideoFrame = 0;
+ encoder->skipResidue = 0;
+
+- AVOutputFormat* oformat = av_guess_format(encoder->containerFormat, 0, 0);
++ const AVOutputFormat* oformat = av_guess_format(encoder->containerFormat, 0, 0);
+ #ifndef USE_LIBAV
+- avformat_alloc_output_context2(&encoder->context, oformat, 0, outfile);
++ avformat_alloc_output_context2(&encoder->context, (AVOutputFormat*) oformat, 0, outfile);
+ #else
+ encoder->context = avformat_alloc_context();
+ strncpy(encoder->context->filename, outfile, sizeof(encoder->context->filename) - 1);
diff --git a/games-emulation/mgba/metadata.xml b/games-emulation/mgba/metadata.xml
index c85568f4a2e..9e784de51af 100644
--- a/games-emulation/mgba/metadata.xml
+++ b/games-emulation/mgba/metadata.xml
@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
</maintainer>
<use>
<flag name="discord">Enable Discord RPC support</flag>
<flag name="elf">Enable the use of elf utils via <pkg>dev-libs/elfutils</pkg></flag>
<flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag>
<flag name="gles3">Build OpenGL ES 3.x RenderSystem</flag>
+ <flag name="libretro">Build libretro port</flag>
</use>
<upstream>
<remote-id type="github">mgba-emu/mgba</remote-id>
diff --git a/games-emulation/mgba/mgba-0.9.2.ebuild b/games-emulation/mgba/mgba-0.9.2.ebuild
index cef008e8c59..971993505d7 100644
--- a/games-emulation/mgba/mgba-0.9.2.ebuild
+++ b/games-emulation/mgba/mgba-0.9.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -94,7 +94,7 @@ src_compile() {
src_install() {
if use qt5 ; then
- dobin ${BUILD_DIR}/qt/${PN}-qt
+ dobin "${BUILD_DIR}"/qt/${PN}-qt
doman doc/${PN}-qt.6
domenu res/${PN}-qt.desktop
for size in 16 24 32 48 64 96 128 256 ; do
@@ -103,10 +103,10 @@ src_install() {
fi
if use sdl ; then
doman doc/${PN}.6
- newbin ${BUILD_DIR}/sdl/${PN} ${PN}-sdl
+ newbin "${BUILD_DIR}"/sdl/${PN} ${PN}-sdl
fi
- dolib.so ${BUILD_DIR}/lib${PN}.so*
+ dolib.so "${BUILD_DIR}"/lib${PN}.so*
}
pkg_preinst() {
diff --git a/games-emulation/mgba/mgba-0.9.3.ebuild b/games-emulation/mgba/mgba-0.9.3-r1.ebuild
index e9baa50b105..8ac2d817bb0 100644
--- a/games-emulation/mgba/mgba-0.9.3.ebuild
+++ b/games-emulation/mgba/mgba-0.9.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -14,7 +14,7 @@ else
MY_PV="${PV/_beta/-b}"
SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
[[ "${PV}" == *_beta* ]] || \
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
LICENSE="MPL-2.0"
@@ -45,6 +45,10 @@ DEPEND="${RDEPEND}
gles3? ( media-libs/libglvnd )
"
+PATCHES=(
+ "${FILESDIR}/${P}-ffmpeg5.patch" #834374
+)
+
src_prepare() {
xdg_environment_reset
cmake_src_prepare
@@ -94,7 +98,7 @@ src_compile() {
src_install() {
if use qt5 ; then
- dobin ${BUILD_DIR}/qt/${PN}-qt
+ dobin "${BUILD_DIR}"/qt/${PN}-qt
doman doc/${PN}-qt.6
domenu res/${PN}-qt.desktop
for size in 16 24 32 48 64 96 128 256 ; do
@@ -103,10 +107,10 @@ src_install() {
fi
if use sdl ; then
doman doc/${PN}.6
- newbin ${BUILD_DIR}/sdl/${PN} ${PN}-sdl
+ newbin "${BUILD_DIR}"/sdl/${PN} ${PN}-sdl
fi
- dolib.so ${BUILD_DIR}/lib${PN}.so*
+ dolib.so "${BUILD_DIR}"/lib${PN}.so*
}
pkg_preinst() {
diff --git a/games-emulation/mgba/mgba-0.9.3-r2.ebuild b/games-emulation/mgba/mgba-0.9.3-r2.ebuild
new file mode 100644
index 00000000000..4d806f22f62
--- /dev/null
+++ b/games-emulation/mgba/mgba-0.9.3-r2.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git"
+else
+ SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Game Boy Advance Emulator"
+HOMEPAGE="https://mgba.io/"
+
+LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )"
+SLOT="0/9"
+IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro opengl +sdl sqlite test"
+# gles2/gles3 opengl require can be lifted in next version (bug #835039)
+REQUIRED_USE="
+ || ( gui sdl )
+ gles2? ( opengl )
+ gles3? ( opengl )
+ gui? ( || ( gles2 opengl ) )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ media-libs/libpng:=
+ sys-libs/zlib:=[minizip]
+ debug? ( dev-libs/libedit )
+ elf? ( dev-libs/elfutils )
+ ffmpeg? ( media-video/ffmpeg:= )
+ gles2? ( media-libs/libglvnd )
+ gles3? ( media-libs/libglvnd )
+ opengl? ( media-libs/libglvnd )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtmultimedia:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ )
+ sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] )
+ sqlite? ( dev-db/sqlite:3 )"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-util/cmocka )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ffmpeg5.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CINEMA=$(usex test)
+ -DBUILD_GL=$(usex opengl)
+ -DBUILD_GLES2=$(usex gles2)
+ -DBUILD_GLES3=$(usex gles3)
+ -DBUILD_LIBRETRO=$(usex libretro)
+ -DBUILD_QT=$(usex gui)
+ -DBUILD_SDL=$(usex sdl)
+ -DBUILD_SUITE=$(usex test)
+ -DMARKDOWN=OFF #752048
+ -DUSE_DEBUGGERS=$(usex debug)
+ -DUSE_DISCORD_RPC=$(usex discord)
+ -DUSE_EDITLINE=$(usex debug)
+ -DUSE_ELF=$(usex elf)
+ -DUSE_EPOXY=OFF
+ -DUSE_FFMPEG=$(usex ffmpeg)
+ -DUSE_GDB_STUB=$(usex debug)
+ -DUSE_LIBZIP=OFF
+ -DUSE_LZMA=ON
+ -DUSE_MINIZIP=ON
+ -DUSE_PNG=ON
+ -DUSE_SQLITE3=$(usex sqlite)
+ -DUSE_ZLIB=ON
+ $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro)
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ use !test || rm "${ED}"/usr/bin/mgba-cinema || die
+
+ rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die
+}
diff --git a/games-emulation/mgba/mgba-9999.ebuild b/games-emulation/mgba/mgba-9999.ebuild
index e9baa50b105..c7121c11ef4 100644
--- a/games-emulation/mgba/mgba-9999.ebuild
+++ b/games-emulation/mgba/mgba-9999.ebuild
@@ -1,128 +1,102 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake desktop xdg
+LUA_COMPAT=( lua5-{3..4} )
+inherit cmake lua-single xdg
-DESCRIPTION="Game Boy Advance emulator written in C"
-HOMEPAGE="https://mgba.io"
-if [[ "${PV}" == 9999 ]] ; then
+if [[ ${PV} == 9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git"
else
- MY_PV="${PV/_beta/-b}"
- SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- [[ "${PV}" == *_beta* ]] || \
- KEYWORDS="~amd64 ~arm64 ~x86"
- S="${WORKDIR}/${PN}-${MY_PV}"
+ SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
-LICENSE="MPL-2.0"
-SLOT="0"
-IUSE="debug discord elf ffmpeg gles2 gles3 opengl qt5 +sdl sqlite"
-REQUIRED_USE="|| ( qt5 sdl )
- qt5? ( opengl )"
+
+DESCRIPTION="Game Boy Advance Emulator"
+HOMEPAGE="https://mgba.io/"
+
+LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )"
+SLOT="0/10"
+IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro lua opengl +sdl sqlite test"
+REQUIRED_USE="
+ || ( gui sdl )
+ gui? ( || ( gles2 gles3 opengl ) )
+ lua? ( ${LUA_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
RDEPEND="
- media-libs/libpng:0=
- sys-libs/zlib[minizip]
+ media-libs/libpng:=
+ sys-libs/zlib:=[minizip]
debug? ( dev-libs/libedit )
elf? ( dev-libs/elfutils )
ffmpeg? ( media-video/ffmpeg:= )
+ gles2? ( media-libs/libglvnd )
+ gles3? ( media-libs/libglvnd )
+ lua? ( ${LUA_DEPS} )
opengl? ( media-libs/libglvnd )
- qt5? (
+ gui? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtmultimedia:5
+ dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
- opengl? ( dev-qt/qtopengl:5 )
)
- sdl? ( media-libs/libsdl2[X,sound,joystick,video,opengl?] )
- sqlite? ( dev-db/sqlite:3 )
-"
-DEPEND="${RDEPEND}
- gles2? ( media-libs/libglvnd )
- gles3? ( media-libs/libglvnd )
-"
-
-src_prepare() {
- xdg_environment_reset
- cmake_src_prepare
+ sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] )
+ sqlite? ( dev-db/sqlite:3 )"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-util/cmocka )"
+BDEPEND="lua? ( virtual/pkgconfig )"
- # Get rid of any bundled stuff we don't want
- local pkg
- for pkg in libpng lzma sqlite3 zlib ; do
- rm -r src/third-party/${pkg} || die
- done
+pkg_setup() {
+ use lua && lua-single_pkg_setup
}
src_configure() {
local mycmakeargs=(
- -DCMAKE_SKIP_RPATH=ON
- -DBUILD_GL="$(usex opengl)"
- -DBUILD_GLES2="$(usex gles2)"
- -DBUILD_GLES3="$(usex gles3)"
- -DBUILD_PYTHON=OFF
- -DBUILD_QT="$(usex qt5)"
- -DBUILD_SDL="$(usex sdl)"
- -DBUILD_SHARED=ON
- # test suite fails to build (>=0.6.0)
- -DBUILD_SUITE=OFF
- -DBUILD_TEST=OFF
- -DM_CORE_GB=ON
- -DM_CORE_GBA=ON
- -DUSE_DEBUGGERS="$(usex debug)"
- -DUSE_DISCORD_RPC="$(usex discord)"
- -DUSE_EDITLINE="$(usex debug)"
- -DUSE_ELF="$(usex elf)"
+ -DBUILD_CINEMA=$(usex test)
+ -DBUILD_GL=$(usex opengl)
+ -DBUILD_GLES2=$(usex gles2)
+ -DBUILD_GLES3=$(usex gles3)
+ -DBUILD_LIBRETRO=$(usex libretro)
+ -DBUILD_QT=$(usex gui)
+ -DBUILD_SDL=$(usex sdl)
+ -DBUILD_SUITE=$(usex test)
+ -DENABLE_SCRIPTING=$(usex lua)
+ -DMARKDOWN=OFF #752048
+ -DUSE_DEBUGGERS=$(usex debug)
+ -DUSE_DISCORD_RPC=$(usex discord)
+ -DUSE_EDITLINE=$(usex debug)
+ -DUSE_ELF=$(usex elf)
-DUSE_EPOXY=OFF
- -DUSE_FFMPEG="$(usex ffmpeg)"
- -DUSE_GDB_STUB="$(usex debug)"
+ -DUSE_FFMPEG=$(usex ffmpeg)
+ -DUSE_GDB_STUB=$(usex debug)
-DUSE_LIBZIP=OFF
- -DUSE_LZMA=OFF
+ -DUSE_LZMA=ON
-DUSE_MINIZIP=ON
-DUSE_PNG=ON
- -DUSE_SQLITE3="$(usex sqlite)"
+ -DUSE_SQLITE3=$(usex sqlite)
-DUSE_ZLIB=ON
+ $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro)
)
- cmake_src_configure
-}
+ use lua && mycmakeargs+=( -DUSE_LUA=$(ver_cut 1-2 $(lua_get_version)) )
-src_compile() {
- cmake_src_compile
+ cmake_src_configure
}
-src_install() {
- if use qt5 ; then
- dobin ${BUILD_DIR}/qt/${PN}-qt
- doman doc/${PN}-qt.6
- domenu res/${PN}-qt.desktop
- for size in 16 24 32 48 64 96 128 256 ; do
- newicon -s ${size} res/${PN}-${size}.png ${PN}.png
- done
- fi
- if use sdl ; then
- doman doc/${PN}.6
- newbin ${BUILD_DIR}/sdl/${PN} ${PN}-sdl
- fi
+src_test() {
+ # CMakeLists.txt forces SKIP_RPATH=ON when PREFIX=/usr
+ local -x LD_LIBRARY_PATH=${BUILD_DIR}:${LD_LIBRARY_PATH}
- dolib.so ${BUILD_DIR}/lib${PN}.so*
+ cmake_src_test
}
-pkg_preinst() {
- if use qt5 ; then
- xdg_pkg_preinst
- fi
-}
+src_install() {
+ cmake_src_install
-pkg_postinst() {
- if use qt5 ; then
- xdg_pkg_postinst
- fi
-}
+ use !test || rm "${ED}"/usr/bin/mgba-cinema || die
-pkg_postrm() {
- if use qt5 ; then
- xdg_pkg_postrm
- fi
+ rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die
}
diff --git a/games-emulation/nestopia/Manifest b/games-emulation/nestopia/Manifest
index a891a84a0cc..5530cb20cef 100644
--- a/games-emulation/nestopia/Manifest
+++ b/games-emulation/nestopia/Manifest
@@ -1 +1 @@
-DIST nestopia-1.50.tar.gz 1529804 BLAKE2B ef2fdf6ffb6ff9bb5f222730869d6deadb892c0a3996e97750afee692ec1d3b997e2bfe353a4fe26b9771781f659de83dda5e4676e221f4b9beaa512d6873ca4 SHA512 6ea389d4891c7cfa36517495735ea0f34ba9427e51757113d0fe2b72d5ce5b11d7e6b7c02fd1e4e347a13bba06823e334800ff15036872e09b8561c10c7cb568
+DIST nestopia-1.51.1.tar.gz 1578970 BLAKE2B 5db7a380239c207843d5edadf5a174059d4566cd7b68aca01515db4940be3a6f6d02421f1499df28d4ac026ec435650452eb43306d1e49487063a06bce16b961 SHA512 68da5e9ab7b848d895a8893a18ef50d90758258fbf7f86ca5df0fe95e74bad761aa436dca79b402439a12fd4dd1430b22e45ee202168be3f9f751190a7ae6131
diff --git a/games-emulation/nestopia/metadata.xml b/games-emulation/nestopia/metadata.xml
index 29276c3824a..57d2149abd0 100644
--- a/games-emulation/nestopia/metadata.xml
+++ b/games-emulation/nestopia/metadata.xml
@@ -6,7 +6,6 @@
<name>Gentoo Games Project</name>
</maintainer>
<upstream>
- <remote-id type="github">rdanbrook/nestopia</remote-id>
- <remote-id type="sourceforge">nestopiaue</remote-id>
+ <remote-id type="github">0ldsk00l/nestopia</remote-id>
</upstream>
</pkgmetadata>
diff --git a/games-emulation/nestopia/nestopia-1.50.ebuild b/games-emulation/nestopia/nestopia-1.50.ebuild
deleted file mode 100644
index a6d4fc185a4..00000000000
--- a/games-emulation/nestopia/nestopia-1.50.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools xdg
-
-DESCRIPTION="A portable Nintendo Entertainment System emulator written in C++"
-HOMEPAGE="http://0ldsk00l.ca/nestopia/"
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/0ldsk00l/nestopia.git"
-else
- SRC_URI="https://github.com/0ldsk00l/nestopia/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="ao doc gui jack"
-
-RDEPEND="
- app-arch/libarchive:=
- media-libs/libepoxy
- media-libs/libsdl2[sound,joystick,video]
- sys-libs/zlib
- ao? ( media-libs/libao )
- gui? ( x11-libs/gtk+:3 )
- jack? ( virtual/jack )"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- econf \
- $(use_with ao) \
- $(use_with jack) \
- $(use_enable doc) \
- $(use_enable gui)
-}
diff --git a/games-emulation/nestopia/nestopia-1.51.1.ebuild b/games-emulation/nestopia/nestopia-1.51.1.ebuild
new file mode 100644
index 00000000000..ebab0b9b149
--- /dev/null
+++ b/games-emulation/nestopia/nestopia-1.51.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic xdg
+
+DESCRIPTION="Portable Nintendo Entertainment System emulator written in C++"
+HOMEPAGE="http://0ldsk00l.ca/nestopia/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/0ldsk00l/nestopia.git"
+else
+ SRC_URI="https://github.com/0ldsk00l/nestopia/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="
+ app-arch/libarchive:=
+ media-libs/libglvnd
+ media-libs/libsdl2[joystick,sound]
+ sys-libs/zlib:=
+ x11-libs/fltk:1[opengl]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/autoconf-archive
+ virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ # silence the narrowing warnings on clang (#830469)
+ append-cxxflags -Wno-narrowing
+
+ econf $(use_enable doc)
+}
diff --git a/games-emulation/nestopia/nestopia-9999.ebuild b/games-emulation/nestopia/nestopia-9999.ebuild
index 98f2f70517d..c6bdbe0d6fb 100644
--- a/games-emulation/nestopia/nestopia-9999.ebuild
+++ b/games-emulation/nestopia/nestopia-9999.ebuild
@@ -1,14 +1,14 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit autotools xdg
-DESCRIPTION="A portable Nintendo Entertainment System emulator written in C++"
+DESCRIPTION="Portable Nintendo Entertainment System emulator written in C++"
HOMEPAGE="http://0ldsk00l.ca/nestopia/"
-if [[ ${PV} == *9999 ]]; then
+if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/0ldsk00l/nestopia.git"
else
@@ -22,15 +22,18 @@ IUSE="doc"
RDEPEND="
app-arch/libarchive:=
- media-libs/libepoxy
- media-libs/libsdl2[sound,joystick,video]
- sys-libs/zlib
- x11-libs/gtk+:3"
+ media-libs/libglvnd
+ media-libs/libsdl2[joystick,sound]
+ sys-libs/zlib:=
+ x11-libs/fltk:1[opengl]"
DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ sys-devel/autoconf-archive
+ virtual/pkgconfig"
src_prepare() {
default
+
eautoreconf
}
diff --git a/games-emulation/pcsx2/files/pcsx2-1.6.0-wx-config.patch b/games-emulation/pcsx2/files/pcsx2-1.6.0-wx-config.patch
new file mode 100644
index 00000000000..bfa12b893dc
--- /dev/null
+++ b/games-emulation/pcsx2/files/pcsx2-1.6.0-wx-config.patch
@@ -0,0 +1,20 @@
+Don't attempt to use /usr/bin/wx-config-3.0 which can point to the
+wrong wx-config depending on eselect'ed wxGTK profile. Furthermore
+that path does not use ESYSROOT.
+
+If unset, FindwxWidgets.cmake will use WX_CONFIG environment
+set by the wxwidgets eclass.
+--- a/cmake/SearchForStuff.cmake
++++ b/cmake/SearchForStuff.cmake
+@@ -50,4 +50,5 @@
+ # lib32-wx3.0 => /usr/bin/wx-config32-3.0
+ # FindwxWidgets only searches for wx-config.
++#[[
+ if(CMAKE_CROSSCOMPILING)
+ # May need to fix the filenames for lib32-wx3.0.
+@@ -71,4 +72,5 @@
+ endif()
+ endif()
++#]]
+
+ find_package(wxWidgets COMPONENTS base core adv)
diff --git a/games-emulation/pcsx2/metadata.xml b/games-emulation/pcsx2/metadata.xml
index 347ab91abc9..0d8f2efac4c 100644
--- a/games-emulation/pcsx2/metadata.xml
+++ b/games-emulation/pcsx2/metadata.xml
@@ -9,6 +9,10 @@
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
<upstream>
<bugs-to>https://github.com/PCSX2/pcsx2/issues</bugs-to>
<remote-id type="github">PCSX2/pcsx2</remote-id>
diff --git a/games-emulation/pcsx2/pcsx2-1.6.0-r2.ebuild b/games-emulation/pcsx2/pcsx2-1.6.0-r3.ebuild
index a9b0dc2b9ff..763aa3e5352 100644
--- a/games-emulation/pcsx2/pcsx2-1.6.0-r2.ebuild
+++ b/games-emulation/pcsx2/pcsx2-1.6.0-r3.ebuild
@@ -46,15 +46,14 @@ FILECAPS=(
PATCHES=(
"${FILESDIR}/${P}-disable-setcap.patch"
+ "${FILESDIR}/${P}-wx-config.patch"
)
pkg_setup() {
if [[ ${MERGE_TYPE} != binary && $(tc-getCC) == *gcc* ]]; then
# -mxsave flag is needed when GCC >= 8.2 is used
# https://bugs.gentoo.org/685156
- if [[ $(gcc-major-version) -gt 8 || $(gcc-major-version) == 8 && $(gcc-minor-version) -ge 2 ]]; then
- append-flags -mxsave
- fi
+ append-flags -mxsave
fi
}
@@ -68,12 +67,6 @@ src_configure() {
# if it something other than "Devel|Debug|Release"
local CMAKE_BUILD_TYPE="Release"
- if use amd64; then
- # Passing correct CMAKE_TOOLCHAIN_FILE for amd64
- # https://github.com/PCSX2/pcsx2/pull/422
- local MYCMAKEARGS=(-DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake)
- fi
-
local mycmakeargs=(
-DARCH_FLAG=
-DDISABLE_BUILD_DATE=TRUE
@@ -93,6 +86,9 @@ src_configure() {
# wxGTK must be built against same sdl version
-DSDL2_API=TRUE
-DUSE_VTUNE=FALSE
+
+ # mimic old toolchain file behavior (bug #833100 comment #20)
+ -DCMAKE_SYSTEM_IGNORE_PATH="${ESYSROOT}"/usr/lib64
)
setup-wxwidgets
diff --git a/games-emulation/pcsx2/pcsx2-9999.ebuild b/games-emulation/pcsx2/pcsx2-9999.ebuild
index 98c547c226c..14345f880fa 100644
--- a/games-emulation/pcsx2/pcsx2-9999.ebuild
+++ b/games-emulation/pcsx2/pcsx2-9999.ebuild
@@ -24,12 +24,14 @@ RESTRICT="!test? ( test )"
RDEPEND="
app-arch/xz-utils
+ app-arch/zstd:=
dev-cpp/rapidyaml:=
dev-libs/glib:2
dev-libs/libaio
dev-libs/libchdr
>=dev-libs/libfmt-7.1.3:=
dev-libs/libxml2:2
+ dev-libs/libzip:=[zstd]
media-libs/alsa-lib
media-libs/cubeb
media-libs/freetype
@@ -63,9 +65,7 @@ pkg_setup() {
if [[ ${MERGE_TYPE} != binary && $(tc-getCC) == *gcc* ]]; then
# -mxsave flag is needed when GCC >= 8.2 is used
# https://bugs.gentoo.org/685156
- if [[ $(gcc-major-version) -gt 8 || $(gcc-major-version) == 8 && $(gcc-minor-version) -ge 2 ]]; then
- append-flags -mxsave
- fi
+ append-flags -mxsave
fi
}
@@ -73,10 +73,12 @@ src_prepare() {
cmake_src_prepare
# unbundle, use sed over patch for less chances to break -9999
+ # note: gentoo's zstd lacks a cmake module which upstream tries to use
sed -e '/add_subdir.*cubeb/c\find_package(cubeb REQUIRED)' \
- -e '/add_subdir.*libchdr/c\pkg_check_modules(chdr REQUIRED IMPORTED_TARGET libchdr)' \
+ -e '/add_subdir.*libchdr/c\pkg_check_modules(chdr REQUIRED IMPORTED_TARGET libchdr)\nalias_library(chdr-static PkgConfig::chdr)' \
+ -e '/system_library.*zstd/,/endif()/c\pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd)\nalias_library(Zstd::Zstd PkgConfig::zstd)' \
+ -e '/compile_options(\(cubeb\|chdr-static\|speex\)/d' \
-i cmake/SearchForStuff.cmake || die
- sed -i 's/chdr-static/PkgConfig::chdr/' pcsx2/CMakeLists.txt || die
# pulseaudio is only used for usb-mic, not audio output
use pulseaudio || > cmake/FindPulseAudio.cmake || die
@@ -96,13 +98,13 @@ src_configure() {
-DDISABLE_BUILD_DATE=TRUE
-DDISABLE_PCSX2_WRAPPER=TRUE
-DDISABLE_SETCAP=TRUE
- -DENABLE_TESTS="$(usex test)"
+ -DENABLE_TESTS=$(usex test)
-DPACKAGE_MODE=TRUE
- -DXDG_STD=TRUE
-
- -DCMAKE_LIBRARY_PATH="/usr/$(get_libdir)/${PN}"
- -DUSE_SYSTEM_YAML=TRUE
+ -DQT_BUILD=FALSE # TODO when qt6 is in tree
+ -DSDL2_API=TRUE # conditionally needed if wxGTK[sdl], cmake/ApiValidation.cmake
+ -DUSE_SYSTEM_LIBS=TRUE
-DUSE_VTUNE=FALSE
+ -DXDG_STD=TRUE
)
setup-wxwidgets
diff --git a/games-emulation/ppsspp/ppsspp-1.11.3.ebuild b/games-emulation/ppsspp/ppsspp-1.11.3-r1.ebuild
index c833ea0b5f4..0e56f4eb342 100644
--- a/games-emulation/ppsspp/ppsspp-1.11.3.ebuild
+++ b/games-emulation/ppsspp/ppsspp-1.11.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -35,7 +35,7 @@ RDEPEND="
sys-libs/zlib:=
virtual/opengl
sdl? ( media-libs/libsdl2 )
- system-ffmpeg? ( media-video/ffmpeg:= )
+ system-ffmpeg? ( media-video/ffmpeg:0/56.58.58 )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5[-gles2-only]
diff --git a/games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r1.ebuild b/games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r2.ebuild
index a6d35611d32..f423958a617 100644
--- a/games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r1.ebuild
+++ b/games-emulation/ppsspp/ppsspp-1.11.3_p20210627-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -36,7 +36,7 @@ RDEPEND="
media-libs/glew:=
media-libs/libpng:=
media-libs/libsdl2[joystick]
- media-video/ffmpeg:=
+ media-video/ffmpeg:0/56.58.58
sys-libs/zlib:=
virtual/opengl
qt5? (
diff --git a/games-emulation/ppsspp/ppsspp-1.12.3.ebuild b/games-emulation/ppsspp/ppsspp-1.12.3-r1.ebuild
index 74faf99b639..aa3ff503125 100644
--- a/games-emulation/ppsspp/ppsspp-1.12.3.ebuild
+++ b/games-emulation/ppsspp/ppsspp-1.12.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -33,7 +33,7 @@ RDEPEND="
media-libs/glew:=
media-libs/libpng:=
media-libs/libsdl2[joystick]
- media-video/ffmpeg:=
+ media-video/ffmpeg:0/56.58.58
sys-libs/zlib:=
virtual/opengl
qt5? (
diff --git a/games-emulation/snes9x/Manifest b/games-emulation/snes9x/Manifest
index c477123ee77..85d1edc3c9f 100644
--- a/games-emulation/snes9x/Manifest
+++ b/games-emulation/snes9x/Manifest
@@ -1 +1,3 @@
-DIST snes9x-1.60.tar.gz 2863228 BLAKE2B 0ac3bdd2403221f1013e2b5438aacc4e7d361e943ac7edc56f8ef22827d81484e0b162b84f739ce0f68fe58021124275fd908ccdde99e1e1d6d6c9c0a6e3d17b SHA512 840b006a8fbd479fd5ceb2d94af4ef6470c5e27a3e6c8ddb0dffc8d3e51f465669144cd428bfce28b2ed4f68e70d8f252f2d8a2cae602ba797791d7e483c14c9
+DIST snes9x-1.61-glslang.tar.gz 3188787 BLAKE2B 36ed327fbb2aec3657fe300b98f2e45cfe039596a64bca3076ecb079f7c33aa14ac09a96e5a174ad51faf0c4d585d82aaadec3d8209cf8d3ca55d70e316b1642 SHA512 de2ebc0cd89d22582c079006ac45a812e3aaaad9a44c77c68530aa1468fbc840c6ae25a4356d4e9fc697524cd721d26506d85bc35eac98452eabce0bc098b5a4
+DIST snes9x-1.61-spirv.tar.gz 676662 BLAKE2B ab18406c99e4e04c6c497b5f447dcaccb7d5a60f42bf1cea31afee04ee664e74916b32736c1aea1e7106494154e48e5cbe9b5d6a0652667c4d0e2020814cd9bd SHA512 bfa3cc944450db59a57a685eea12b0ed0b5059d55a092ac5cdf6f4dc03c1e2d2e62fa5a576156c772340e12136b10d7ed790bb35b4aece2ee8405e64f826e31b
+DIST snes9x-1.61.tar.gz 3016890 BLAKE2B 3e94dee5172bf48d2461a3a1403fc7e7fc8069df6dddf5b5e1da59ee140297bd0b7cee6948b5eb154c1eec38aebe3ab29a9fae3dfb4abdce41769d2ace43dee1 SHA512 8b644f5b7136e89fd222bcb430fc736c74a3e383d7e6c7f0880235f6fa4c0f77abbf02493f8d654a12e87701111643e33877bc21bb3dfcc9b82a056fa1b1d880
diff --git a/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch b/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch
deleted file mode 100644
index 453771f5139..00000000000
--- a/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7f6d9d6432d912cd90763c64f7c92270b3e6c182 Mon Sep 17 00:00:00 2001
-From: gocha <gochaism@gmail.com>
-Date: Sun, 19 Jan 2020 12:48:06 +0900
-Subject: [PATCH] win32: fix compilation error in vs2019
-
----
- conffile.cpp | 2 +-
- conffile.h | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/conffile.cpp b/conffile.cpp
-index 817afae7f..fa7de3fa2 100644
---- a/conffile.cpp
-+++ b/conffile.cpp
-@@ -452,7 +452,7 @@ void ConfigFile::ClearLines()
- }
- }
-
--bool ConfigFile::ConfigEntry::section_then_key_less::operator()(const ConfigEntry &a, const ConfigEntry &b) {
-+bool ConfigFile::ConfigEntry::section_then_key_less::operator()(const ConfigEntry &a, const ConfigEntry &b) const{
- if(curConfigFile && a.section!=b.section){
- const int sva = curConfigFile->GetSectionSize(a.section);
- const int svb = curConfigFile->GetSectionSize(b.section);
-diff --git a/conffile.h b/conffile.h
-index ba69812df..d92128cba 100644
---- a/conffile.h
-+++ b/conffile.h
-@@ -90,7 +90,7 @@ class ConfigFile {
- mutable bool used;
-
- struct section_then_key_less {
-- bool operator()(const ConfigEntry &a, const ConfigEntry &b);
-+ bool operator()(const ConfigEntry &a, const ConfigEntry &b) const;
- };
-
- struct key_less {
-@@ -101,8 +101,8 @@ class ConfigFile {
- };
-
- struct line_less {
-- bool operator()(const ConfigEntry &a, const ConfigEntry &b){
-- if(a.line==b.line) return (b.val.empty() && !a.val.empty()) || a.key<b.key;
-+ bool operator()(const ConfigEntry &a, const ConfigEntry &b) const{
-+ if(a.line==b.line) return (b.val.empty() && !a.val.empty()) || a.key<b.key;
- if(b.line<0) return true;
- if(a.line<0) return false;
- return a.line<b.line;
diff --git a/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch b/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch
new file mode 100644
index 00000000000..297c7d78257
--- /dev/null
+++ b/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch
@@ -0,0 +1,25 @@
+CXXFLAGS is used as a "common" flags variable and passed to CFLAGS,
+but want to use user's CFLAGS for CC rather than CXXFLAGS. Workaround
+with a temporary variable and also drop -O3/lto from defaults.
+--- a/libretro/Makefile
++++ b/libretro/Makefile
+@@ -4,3 +4,5 @@
+
+-LTO ?= -flto
++LTO :=
++ORIG_CXXFLAGS := $(CXXFLAGS)
++CXXFLAGS :=
+ SPACE :=
+@@ -580,4 +582,4 @@
+ else
+- CFLAGS += -O3 -DNDEBUG
+- CXXFLAGS += -O3 -DNDEBUG
++ CFLAGS += -DNDEBUG
++ CXXFLAGS += -DNDEBUG
+ endif
+@@ -612,3 +614,4 @@
+ CXXFLAGS += -DRIGHTSHIFT_IS_SAR -D__LIBRETRO__ -DALLOW_CPU_OVERCLOCK
+-CFLAGS := $(CXXFLAGS)
++CFLAGS := $(CXXFLAGS) $(CFLAGS)
++CXXFLAGS += $(ORIG_CXXFLAGS)
+ CFLAGS += -DHAVE_STDINT_H
diff --git a/games-emulation/snes9x/metadata.xml b/games-emulation/snes9x/metadata.xml
index 2d24d25eb98..8f63c2fe45f 100644
--- a/games-emulation/snes9x/metadata.xml
+++ b/games-emulation/snes9x/metadata.xml
@@ -6,8 +6,9 @@
<name>Gentoo Games Project</name>
</maintainer>
<use>
- <flag name="netplay">Enable playing ROMs over the network (not recommended)</flag>
+ <flag name="glslang">Build support for slang-type shaders</flag>
<flag name="libretro">Build libretro port</flag>
+ <flag name="netplay">Enable playing ROMs over the network (not recommended)</flag>
</use>
<upstream>
<remote-id type="google-code">snes9x-gtk</remote-id>
diff --git a/games-emulation/snes9x/snes9x-1.60.ebuild b/games-emulation/snes9x/snes9x-1.60.ebuild
deleted file mode 100644
index b44ac4ece5b..00000000000
--- a/games-emulation/snes9x/snes9x-1.60.ebuild
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic meson xdg
-
-DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
-HOMEPAGE="https://github.com/snes9xgit/snes9x"
-SRC_URI="https://github.com/snes9xgit/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB Info-ZIP"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="alsa debug gtk libretro multilib netplay opengl oss png pulseaudio portaudio wayland xinerama +xv"
-RESTRICT="bindist"
-
-RDEPEND="
- gtk? (
- dev-libs/glib:2
- media-libs/libsdl2[joystick]
- >=x11-libs/gtk+-3.22:3[wayland?]
- x11-libs/libXrandr
- x11-misc/xdg-utils
- alsa? ( media-libs/alsa-lib )
- opengl? (
- media-libs/libepoxy
- virtual/opengl
- )
- portaudio? ( >=media-libs/portaudio-19_pre )
- pulseaudio? ( media-sound/pulseaudio )
- xv? ( x11-libs/libXv )
- wayland? ( dev-libs/wayland )
- )
- !gtk? ( x11-libs/libXv )
- libretro? ( !!games-emulation/libretro-snes9x )
- png? ( media-libs/libpng:0= )
- sys-libs/zlib:=[minizip]
- xinerama? ( x11-libs/libXinerama )
- x11-libs/cairo
- x11-libs/gdk-pixbuf
- x11-libs/libX11
- x11-libs/libXext"
-DEPEND="${RDEPEND}
- x11-base/xorg-proto"
-BDEPEND="virtual/pkgconfig"
-
-S="${WORKDIR}/${P}/unix"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.53-cross-compile.patch
- "${FILESDIR}"/${PN}-1.59-build-system.patch
- "${FILESDIR}"/${PN}-1.60-gcc11.patch
-)
-
-src_prepare() {
- cd "${WORKDIR}/${P}" || die
- rm -r unzip || die
- default
- cd unix || die
- eautoreconf
- if use gtk ; then
- export EMESON_SOURCE="${WORKDIR}/${P}/gtk"
- fi
-}
-
-src_configure() {
- append-ldflags -Wl,-z,noexecstack
-
- # build breaks when zlib/zip support is disabled
- local myeconfargs=(
- --enable-gamepad
- --enable-gzip
- --enable-zip
- --with-system-zip
- $(use_enable debug debugger)
- $(use_enable netplay)
- $(use_enable png screenshot)
- $(use_enable xinerama)
- )
- econf "${myeconfargs[@]}"
-
- if use gtk; then
- local emesonargs=(
- -Dalsa="$(usex alsa true false)"
- -Ddebugger="$(usex debug true false)"
- -Dgtk2=false
- -Dgtk3=true
- -Dopengl="$(usex opengl true false)"
- -Doss="$(usex oss true false)"
- -Dportaudio="$(usex portaudio true false)"
- -Dpulseaudio="$(usex pulseaudio true false)"
- -Dscreenshot="$(usex png true false)"
- -Dsystem-zip=true
- -Dxv="$(usex xv true false)"
- -Dzlib=true
- -Dwayland="$(usex wayland true false)"
- )
- meson_src_configure
- fi
-}
-
-src_compile() {
- use libretro && emake -C ../libretro
- emake
- use gtk && meson_src_compile
-}
-
-src_install() {
- dobin ${PN}
-
- dodoc ../docs/{changes,control-inputs,controls,snapshots}.txt
- dodoc snes9x.conf.default
-
- if use libretro ; then
- cd "${WORKDIR}/${PF}/libretro/"
- dolib.so snes9x_libretro.so
- fi
-
- if use gtk ; then
- meson_src_install
- dodoc ../gtk/AUTHORS
- fi
-
- HTML_DOCS="${WORKDIR}/${PF}/docs/*.html"
- einstalldocs
-}
-
-pkg_preinst() {
- use gtk && xdg_pkg_preinst
-}
-
-pkg_postinst() {
- use gtk && xdg_pkg_postinst
-}
-
-pkg_postrm() {
- use gtk && xdg_pkg_postrm
-}
diff --git a/games-emulation/snes9x/snes9x-1.61.ebuild b/games-emulation/snes9x/snes9x-1.61.ebuild
new file mode 100644
index 00000000000..7300fb65bb2
--- /dev/null
+++ b/games-emulation/snes9x/snes9x-1.61.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools meson toolchain-funcs xdg
+
+GLSLANG_COMMIT="bcf6a2430e99e8fc24f9f266e99316905e6d5134"
+SPIRV_COMMIT="1458bae62ec67ea7d12c5a13b740e23ed4bb226c"
+
+DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
+HOMEPAGE="https://github.com/snes9xgit/snes9x/"
+SRC_URI="
+ https://github.com/snes9xgit/snes9x/archive/${PV}.tar.gz -> ${P}.tar.gz
+ gui? ( glslang? (
+ https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz -> ${P}-glslang.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPIRV_COMMIT}.tar.gz -> ${P}-spirv.tar.gz
+ ) )"
+
+LICENSE="
+ Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB
+ gui? ( glslang? ( Apache-2.0 BSD ) )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="alsa debug glslang gui libretro netplay opengl oss png portaudio pulseaudio wayland xinerama +xv"
+REQUIRED_USE="glslang? ( gui opengl )"
+RESTRICT="bindist test" # has no tests but can lead to bug #737044
+
+RDEPEND="
+ sys-libs/zlib:=[minizip]
+ x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ gui? (
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0[wayland?]
+ dev-libs/glib:2
+ dev-libs/libsigc++:2
+ media-libs/libsdl2[joystick]
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[wayland?]
+ x11-libs/libXrandr
+ x11-misc/xdg-utils
+ opengl? ( media-libs/libepoxy )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ wayland? ( dev-libs/wayland )
+ )
+ libretro? ( !games-emulation/libretro-snes9x )
+ png? ( media-libs/libpng:= )
+ xinerama? ( x11-libs/libXinerama )
+ xv? ( x11-libs/libXv )"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+ opengl? ( media-libs/libglvnd )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.53-cross-compile.patch
+ "${FILESDIR}"/${PN}-1.59-build-system.patch
+ "${FILESDIR}"/${PN}-1.61-libretro-flags.patch
+)
+
+src_prepare() {
+ if use gui && use glslang; then
+ rmdir shaders/{glslang,SPIRV-Cross} || die
+ mv ../glslang-${GLSLANG_COMMIT} shaders/glslang || die
+ mv ../SPIRV-Cross-${SPIRV_COMMIT} shaders/SPIRV-Cross || die
+ fi
+
+ default
+
+ rm -r unzip || die
+
+ cd unix || die
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC CXX # for libretro
+
+ local econfargs=(
+ $(use_enable alsa sound-alsa)
+ $(use_enable debug debugger)
+ $(use_enable netplay)
+ $(use_enable png screenshot)
+ $(use_enable xinerama)
+ $(use_enable xv xvideo)
+ --enable-gamepad
+ --enable-gzip
+ --enable-zip
+ --with-system-zip
+ )
+
+ cd unix || die
+ econf "${econfargs[@]}"
+
+ if use gui; then
+ local emesonargs=(
+ $(meson_use alsa)
+ $(meson_use debug debugger)
+ $(meson_use glslang slang) # TODO?: unbundle
+ $(meson_use opengl)
+ $(meson_use oss)
+ $(meson_use png screenshot)
+ $(meson_use portaudio)
+ $(meson_use pulseaudio)
+ $(meson_use wayland)
+ $(meson_use xv)
+ -Dsystem-zip=true
+ -Dzlib=true
+ )
+
+ EMESON_SOURCE=${S}/gtk
+ meson_src_configure
+ fi
+}
+
+src_compile() {
+ if use libretro; then
+ emake -C libretro
+ # rebuild objects given libretro uses different defines (bug #791475)
+ rm *.o || die
+ fi
+
+ emake -C unix
+
+ use gui && meson_src_compile
+}
+
+src_install() {
+ if use libretro; then
+ exeinto /usr/$(get_libdir)/libretro
+ doexe libretro/snes9x_libretro.so
+ fi
+
+ dobin unix/${PN}
+
+ local DOCS=(
+ README.md
+ docs/{changes,control-inputs,controls,snapshots}.txt
+ unix/snes9x.conf.default
+ )
+ einstalldocs
+
+ if use gui; then
+ meson_src_install
+ dodoc gtk/AUTHORS
+ fi
+}
diff --git a/games-emulation/stella/Manifest b/games-emulation/stella/Manifest
index a2e20a54fee..6a777dff334 100644
--- a/games-emulation/stella/Manifest
+++ b/games-emulation/stella/Manifest
@@ -1 +1,2 @@
DIST stella-6.6-src.tar.xz 10035924 BLAKE2B bb1b6a5d7ea9ada8aac24084f508692472f78a6e04528f57a88ca7ac76d23f0dfe1050a1f013103463b2ee2d7b842a9b30e1b36b2aefc183ce1a39682eb867fa SHA512 89aea0cec9c2f22f276c1c4b36b76deb1ef9fb913c959f93f8cbcac300acdb23d2e3e66981d3263ea1ccfd72aaab1aa47218136b82b5e12aa8fbf352959743ab
+DIST stella-6.7-src.tar.xz 10280224 BLAKE2B da2920384b6b254edd8f615c665ea1eef79030afffdf1b442f490f026c6f577ba4f7329531159767ba720207aeeb14388b5970bdd3e250b0db54e12d5f791396 SHA512 c20a2e9d98e1330f151e5f7d0e7cf15b2279b0d5f1175269f4084bf4964337b998118800615ae62eabf9d0f8abe0bb9cd02bddd1ee827121a49131888b4946ff
diff --git a/games-emulation/stella/stella-6.7.ebuild b/games-emulation/stella/stella-6.7.ebuild
new file mode 100644
index 00000000000..db68632d57c
--- /dev/null
+++ b/games-emulation/stella/stella-6.7.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs xdg
+
+DESCRIPTION="Multi-platform Atari 2600 VCS Emulator"
+HOMEPAGE="https://stella-emu.github.io/"
+SRC_URI="https://github.com/stella-emu/stella/releases/download/${PV}/${P}-src.tar.xz"
+
+LICENSE="GPL-2+ BSD MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+joystick png zlib"
+REQUIRED_USE="png? ( zlib )"
+
+RDEPEND="
+ dev-db/sqlite:3
+ media-libs/libsdl2[joystick?,opengl,sound,video]
+ png? ( media-libs/libpng:= )
+ zlib? ( sys-libs/zlib:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ sed -i 's/pkg-config/${PKG_CONFIG}/' configure || die
+ sed -i '/CXXFLAGS+=/s/-fomit-frame-pointer//' Makefile || die
+}
+
+src_configure() {
+ tc-export CC CXX PKG_CONFIG
+
+ # not autotools-based
+ local configure=(
+ ./configure
+ --host=${CHOST}
+ --prefix="${EPREFIX}"/usr
+ --docdir="${EPREFIX}"/usr/share/doc/${PF}/html
+ --use-system-sqlite
+ $(use_enable joystick)
+ $(use_enable png)
+ $(use_enable zlib zip)
+ ${EXTRA_ECONF}
+ )
+
+ echo ${configure[*]}
+ "${configure[@]}" || die
+}
+
+src_install() {
+ local DOCS=(
+ Announce.txt Changes.txt README-SDL.txt
+ Readme.txt docs/R77_readme.txt Todo.txt
+ )
+
+ default
+
+ rm "${ED}"/usr/share/doc/${PF}/html/*.txt || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ${REPLACING_VERSIONS} ]] && ver_test ${REPLACING_VERSIONS} -lt 6.7; then
+ elog "With version >=6.7, because of fixes to JSON handling, all remappings"
+ elog "will be reset to defaults. If you had custom mappings, they will need"
+ elog "to be re-entered again."
+ elog
+ elog "Furthermore, because of internal changes, all old state files are invalid."
+ fi
+}