summaryrefslogtreecommitdiffstats
path: root/games/dolphin-emu
diff options
context:
space:
mode:
Diffstat (limited to 'games/dolphin-emu')
-rw-r--r--games/dolphin-emu/README34
-rw-r--r--games/dolphin-emu/doinst.sh5
-rw-r--r--games/dolphin-emu/dolphin-emu.SlackBuild93
-rw-r--r--games/dolphin-emu/dolphin-emu.info28
-rw-r--r--games/dolphin-emu/slack-desc18
5 files changed, 121 insertions, 57 deletions
diff --git a/games/dolphin-emu/README b/games/dolphin-emu/README
index e9eac0b60f..362efdb681 100644
--- a/games/dolphin-emu/README
+++ b/games/dolphin-emu/README
@@ -1,12 +1,22 @@
-Dolphin is a Gamecube, Wii and Triforce (the arcade machine based on
-the Gamecube) emulator which supports many extra features and
-abilities not present on the original consoles. Gamecube and Wii
-compatibility is good - one can expect "mainstream" titles to run;
-lesser known titles can be hit or miss. Triforce compatibility is
-currently limited to a couple of games - others require more of the
-Triforce-specific peripheral devices to be emulated.
-
-Optional dependencies: SFML, portaudio, soil, miniupnpc, soundtouch,
-wxGTK3, gtest, and embedtls
-
-Optional dependencies (not on SBo): xxhash
+Dolphin is an emulator for two recent Nintendo video game consoles:
+the GameCube and the Wii. It allows PC gamers to enjoy games for these
+two consoles in full HD (1080p) with several enhancements:
+compatibility with all PC controllers, turbo speed, networked
+multiplayer, and even more!
+
+Dolphin will optionally build against internal system packages if
+present, these include: SFML, enet, fmt, hidapi, mbedtls, libminizip,
+libspng, mgba, miniupnpc, pugixml, and zstd-cmake.
+
+Analytic data collection is enabled by default, however, users are
+prompted about this on first launch. To disable analytics without being
+prompted, pass ANALYTICS=OFF to the build script.
+
+Discord Rich Presence is disabled by default, to enable Discord
+functionality, pass DISCORD=ON to the build script.
+
+If you would like to disable Gameboy Advance controller support, pass
+USEMGBA=OFF to the build script. This will remove the mgba dependecy.
+
+If you have installed mgba <= 0.10.0, this build will fail, please
+install 0.10.0+ or 'removepkg mgba' prior to running this script.
diff --git a/games/dolphin-emu/doinst.sh b/games/dolphin-emu/doinst.sh
index 65c7e2eeb9..262eb5a9e5 100644
--- a/games/dolphin-emu/doinst.sh
+++ b/games/dolphin-emu/doinst.sh
@@ -2,6 +2,11 @@ if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
+fi
+
+# If other icon themes are installed, then add to/modify this as needed
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
/usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
diff --git a/games/dolphin-emu/dolphin-emu.SlackBuild b/games/dolphin-emu/dolphin-emu.SlackBuild
index 48b5ac42ac..95732087f6 100644
--- a/games/dolphin-emu/dolphin-emu.SlackBuild
+++ b/games/dolphin-emu/dolphin-emu.SlackBuild
@@ -2,6 +2,7 @@
# Slackware build script for dolphin-emu
+# Copyright 2022-2023 Steven Voges <Oregon, USA>
# Copyright 2013-2017 Larry Hajali <larryhaja[at]gmail[dot]com>
# All rights reserved.
#
@@ -25,7 +26,20 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dolphin-emu
-VERSION=${VERSION:-20210406_5322256}
+SRCNAM=dolphin
+VERSION=${VERSION:-5.0.20059}
+COMMIT=$(echo $VERSION | cut -c 5-)
+SRCVER=${SRCVER:-5e5887a378db28324a8fc8825f21539525412e12}
+IMPLOT=${IMPLOT:-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d}
+LIBSPNG=${LIBSPNG:-dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9}
+MGBA=${MGBA:-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51}
+RCHEEVOS=${RCHEEVOS:-d9e990e6d13527532b7e2bb23164a1f3b7f33bb5}
+SPIRVCROSS=${SPIRVCROSS:-50b4d5389b6a06f86fb63a2848e1a7da6d9755ca}
+VULKANMEMORYALLOCATOR=${VULKANMEMORYALLOCATOR:-498e20dfd1343d99b9115201034bb0219801cdec}
+ZLIBNG=${ZLIBNG:-ce01b1e41da298334f8214389cc9369540a7560f}
+ANALYTICS=${ANALYTICS:-ON}
+DISCORD=${DISCORD:-OFF}
+USEMGBA=${USEMGBA:-ON}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +52,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -49,6 +60,7 @@ fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+DEPS=$TMP/$SRCNAM-$SRCVER/Externals
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
@@ -69,9 +81,29 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf ${PRGNAM/-*/}-$VERSION
-tar xvf $CWD/${PRGNAM/-*/}-$VERSION.tar.?z
-cd ${PRGNAM/-*/}-$VERSION
+rm -rf $SRCNAM-$SRCVER
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz
+cd $SRCNAM-$SRCVER
+
+tar xvf $CWD/SPIRV-Cross-$SPIRVCROSS.tar.gz -C \
+ $DEPS/spirv_cross/SPIRV-Cross --strip-components 1
+tar xvf $CWD/VulkanMemoryAllocator-$VULKANMEMORYALLOCATOR.tar.gz -C \
+ $DEPS/VulkanMemoryAllocator --strip-components 1
+tar xvf $CWD/implot-$IMPLOT.tar.gz -C \
+ $DEPS/implot/implot --strip-components 1
+tar xvf $CWD/libspng-$LIBSPNG.tar.gz -C \
+ $DEPS/libspng/libspng --strip-components 1
+if [ ${USEMGBA} = "ON" ]; then
+ tar xvf $CWD/mgba-$MGBA.tar.gz -C \
+ $DEPS/mGBA/mgba --strip-components 1
+fi
+tar xvf $CWD/rcheevos-$RCHEEVOS.tar.gz -C \
+ $DEPS/rcheevos/rcheevos --strip-components 1
+tar xvf $CWD/zlib-ng-$ZLIBNG.tar.gz -C \
+ $DEPS/zlib-ng/zlib-ng --strip-components 1
+
+sed -i "s/ (no further info)/-$COMMIT/g" CMake/ScmRevGen.cmake
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -79,26 +111,33 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-mkdir build
+# LTO currently breaks JIT and will crash dolphin on game load.
+# fmt10 is not supported by dolphin yet, force bundled fmt9.
+# mgba 0.10.2 changed functions that break compilation, force bundled mgba.
+mkdir -p build
cd build
- cmake -G "Unix Makefiles" \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -Dbindir=/usr/games \
- -Dmandir=/usr/man \
- -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
- -DENABLE_LTO:BOOL=ON \
- -DUSE_SHARED_GTEST:BOOL=ON \
- -DUSE_SHARED_ENET:BOOL=ON \
- -DENABLE_SDL:BOOL=ON \
- -DINSTALL_LIB_DIR=/usr/lib${LIBDIRSUFFIX} \
+ cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DDISTRIBUTOR="Slackware" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
+ -Dmandir=/usr/man \
+ -DDISTRIBUTOR=SlackBuilds.org \
+ -DENABLE_ANALYTICS=$ANALYTICS \
+ -DENABLE_LTO=OFF \
+ -DENABLE_SDL=ON \
+ -DENABLE_TESTS=OFF \
+ -DUSE_DISCORD_PRESENCE=$DISCORD \
+ -DUSE_MGBA=$USEMGBA \
+ -DUSE_SYSTEM_CUBEB=ON \
+ -DUSE_SYSTEM_FMT=OFF \
+ -DUSE_SYSTEM_LIBMGBA=OFF \
-DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
- make VERBOSE=1
- make install DESTDIR=$PKG
-cd -
+mv $PKG/usr/share/man $PKG/usr/man
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -106,14 +145,10 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-for i in 16 32 64 128; do
- convert Installer/Dolphin.ico -resize ${i}x${i}! $PRGNAM-${i}.png
- install -D -m 0644 $PRGNAM-${i}-3.png \
- $PKG/usr/share/icons/hicolor/${i}x${i}/apps/$PRGNAM.png
-done
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a license.txt *.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ docs LICENSES/* *.md COPYING \
+ $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/games/dolphin-emu/dolphin-emu.info b/games/dolphin-emu/dolphin-emu.info
index ec31d42594..4ede3dd7ef 100644
--- a/games/dolphin-emu/dolphin-emu.info
+++ b/games/dolphin-emu/dolphin-emu.info
@@ -1,10 +1,24 @@
PRGNAM="dolphin-emu"
-VERSION="20210406_5322256"
-HOMEPAGE="https://dolphin-emu.org/"
+VERSION="5.0.20059"
+HOMEPAGE="https://dolphin-emu.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="http://ponce.cc/slackware/sources/repo/dolphin-20210406_5322256.tar.xz"
-MD5SUM_x86_64="d0d228fd5b4d3f55a37a779132c7cfa7"
-REQUIRES=""
-MAINTAINER="Larry Hajali"
-EMAIL="larryhaja[at]gmail[dot]com"
+DOWNLOAD_x86_64="https://github.com/dolphin-emu/dolphin/archive/5e5887a378db28324a8fc8825f21539525412e12/dolphin-5e5887a378db28324a8fc8825f21539525412e12.tar.gz \
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/50b4d5389b6a06f86fb63a2848e1a7da6d9755ca/SPIRV-Cross-50b4d5389b6a06f86fb63a2848e1a7da6d9755ca.tar.gz \
+ https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/498e20dfd1343d99b9115201034bb0219801cdec/VulkanMemoryAllocator-498e20dfd1343d99b9115201034bb0219801cdec.tar.gz \
+ https://github.com/epezent/implot/archive/cc5e1daa5c7f2335a9460ae79c829011dc5cef2d/implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d.tar.gz \
+ https://github.com/randy408/libspng/archive/dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9/libspng-dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9.tar.gz \
+ https://github.com/mgba-emu/mgba/archive/8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51/mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz \
+ https://github.com/RetroAchievements/rcheevos/archive/d9e990e6d13527532b7e2bb23164a1f3b7f33bb5/rcheevos-d9e990e6d13527532b7e2bb23164a1f3b7f33bb5.tar.gz \
+ https://github.com/zlib-ng/zlib-ng/archive/ce01b1e41da298334f8214389cc9369540a7560f/zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz"
+MD5SUM_x86_64="cda88a526bbe63c76d4cecdb79913922 \
+ ccbd4691aa98e09c48ca52938780f485 \
+ ea3949092d01da0ea473705e625a3614 \
+ 00be8f97e4927afcde33fe5e9799b56e \
+ 5c563b774605b0bad9f6ed244bd9e14d \
+ c871e87ede68b9c5d5ccc6b6a8173b3a \
+ 1288381ecdbe222e5759119ec730a6fd \
+ 59bc34854f5bb7492810e30f20b844eb"
+REQUIRES="cubeb qt6"
+MAINTAINER="Steven Voges"
+EMAIL="svoges.sbo@gmail.com"
diff --git a/games/dolphin-emu/slack-desc b/games/dolphin-emu/slack-desc
index 4af1384e50..33779215cd 100644
--- a/games/dolphin-emu/slack-desc
+++ b/games/dolphin-emu/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-dolphin-emu: dolphin-emu (Gamecube emulator)
+dolphin-emu: dolphin-emu (Gamecube/Wii Emulator)
+dolphin-emu:
+dolphin-emu: Dolphin is a GameCube / Wii emulator, allowing you to play games for
+dolphin-emu: these two platforms on PC with improvements.
+dolphin-emu:
+dolphin-emu: Homepage: https://dolphin-emu.org
+dolphin-emu:
+dolphin-emu:
+dolphin-emu:
dolphin-emu:
-dolphin-emu: Dolphin is a Gamecube, Wii and Triforce (the arcade machine based on
-dolphin-emu: the Gamecube) emulator which supports many extra features and
-dolphin-emu: abilities not present on the original consoles. Gamecube and Wii
-dolphin-emu: compatibility is good - one can expect "mainstream" titles to run;
-dolphin-emu: lesser known titles can be hit or miss. Triforce compatibility is
-dolphin-emu: currently limited to a couple of games - others require more of the
-dolphin-emu: Triforce-specific peripheral devices to be emulated.
dolphin-emu:
-dolphin-emu: Homepage: https://dolphin-emu.org/