The Dolphin package (not to be confused with the KF6 dolphin file manager) provides a GCN and Wii emulator.
Download (HTTP): https://github.com/dolphin-emu/dolphin
CMake, FFmpeg, libevdev, OpenGL (libglvnd or Mesa; only the normal installation is required for either), Qt-6, SDL2, and Xorg Libraries
alsa-utils, BlueZ, cURL, enet-1.3.18, fmt, libspng-0.7.4, libusb, libxkbcommon, libxml2, LLVM, elogind , minizip from zlib-1.3.1, pugixml-1.15, PulseAudio, Speex, and Vulkan-Loader
Create a list of the needed tarballs that will be downloaded:
cat > dolphin-list << "EOF"
dolphin-emu/dolphin/archive/2503/dolphin-2503.tar.gz
dolphin-emu/ext-win-qt/archive/495517af2b922c10c24f543e0fd6ea3ddf774e50.tar.gz
SFML/SFML/archive/7f1162dfea4969bc17417563ac55d93b72e84c1e.tar.gz
GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/3bab6924988e5f19bf36586a496156cf72f70d9f.tar.gz
mozilla/cubeb/archive/54217bca3f3e0cd53c073690a23dd25d83557909.tar.gz
arsenm/sanitizers-cmake/archive/aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a.tar.gz
libusb/hidapi/archive/7011fa98af2dde00c298105735e470de800288c7.tar.gz
epezent/implot/archive/18c72431f8265e2b0b5378a3a73d8a883b2175ff.tar.gz
mgba-emu/mgba/archive/8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz
zlib-ng/minizip-ng/archive/55db144e03027b43263e5ebcb599bf0878ba58de.tar.gz
RetroAchievements/rcheevos/archive/d54cf8f1059cebc90a6f5ecdf03df69259f22054.tar.gz
KhronosGroup/SPIRV-Cross/archive/ebe2aa0cd80f5eb5cd8a605da604cacf72205f3b.tar.gz
syoyo/tinygltf/archive/c5641f2c22d117da7971504591a8f6a41ece488b.tar.gz
Cyan4973/xxHash/archive/e626a72bc2321cd320e953a0ccf1584cad60f363.tar.gz
zlib-ng/zlib-ng/archive/ce01b1e41da298334f8214389cc9369540a7560f.tar.gz
# Required if you have not installed some recommended dependencies
lsalzman/enet/archive/2a85cd64459f6ba038d233a634d9440490dbba12.tar.gz
fmtlib/fmt/archive/e69e5f977d458f2650bb346dadf2ad30c5320281.tar.gz
randy408/libspng/archive/dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9.tar.gz
libusb/libusb/archive/ba698478afc3d3a72644eef9fc4cd24ce8383a4c.tar.gz
EOF
Now download the package and its submodules using Wget:
mkdir dolphin-emu && cd dolphin-emu && grep -v '^#' ../dolphin-list | wget -i- -c \ -B https://github.com
Extract all the tarballs:
for i in *.tar.?z*; do echo "Extracting $i..." tar -xf $i done
Now that everything has been extracted, the required extracted
submodules need to be moved into dolphin-2503
. Do that by running the following
commands:
mv -T ext-win-qt-* dolphin-2503/Externals/Qt && mv -T SFML-* dolphin-2503/Externals/SFML/SFML && mv -T VulkanMemoryAllocator-* \ dolphin-2503/Externals/VulkanMemoryAllocator && mv -T cubeb-* dolphin-2503/Externals/cubeb/cubeb && mv -T sanitizers-cmake-* \ dolphin-2503/Externals/cubeb/cubeb/cmake/sanitizers-cmake && mv -T hidapi-* dolphin-2503/Externals/hidapi/hidapi-src && mv -T implot-* dolphin-2503/Externals/implot/implot && mv -T mgba-* dolphin-2503/Externals/mGBA/mgba && mv -T minizip-ng-* dolphin-2503/Externals/minizip-ng/minizip-ng && mv -T rcheevos-* dolphin-2503/Externals/rcheevos/rcheevos && mv -T SPIRV-Cross-* dolphin-2503/Externals/spirv_cross/SPIRV-Cross && mv -T tinygltf-* dolphin-2503/Externals/tinygltf/tinygltf && mv -T xxHash-* dolphin-2503/Externals/xxhash/xxHash && mv -T zlib-ng-* dolphin-2503/Externals/zlib-ng/zlib-ng
If you have not installed enet-1.3.18, move
the submodule into dolphin-2503
:
mv -T enet-* dolphin-2503/Externals/enet/enet
If you have not installed fmt,
move the submodule into dolphin-2503
:
mv -T fmt-* dolphin-2503/Externals/fmt/fmt
If you have not installed libspng-0.7.4,
move the submodule into dolphin-2503
:
mv -T libspng-* dolphin-2503/Externals/libspng/libspng
If you have not installed libusb,
move the submodule into dolphin-2503
:
mv -T libusb-* dolphin-2503/Externals/libusb/libusb
Now go into the dolphin-2503
directory:
cd dolphin-2503
Apply a patch to force XCB to be used in Dolphin on Wayland to avoid being unable to initialize graphics when launching a game:
patch -Np1 -i ../../dolphin-xcb_env-1.patch
Install Dolphin by running the following commands:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D ENABLE_TESTS=OFF \ -D USE_SYSTEM_LIBMGBA=OFF \ -G Ninja .. && ninja
Now, as the root
user:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: This switch makes
cmake remove
hardcoded library search paths (rpath) when installing a binary
executable file or a shared library. This package does not need
rpath once it's installed into the standard location, and rpath may
sometimes cause unwanted effects or even security issues.
-D ENABLE_TESTS=OFF
: This
parameter disables building unit tests.
-D USE_SYSTEM_LIBMGBA=OFF
:
This parameter forces the build system to build the vendored copy
of mGBA; otherwise, there will be
compilation errors if mGBA-eeb52e is installed due to different
versions (compiling an older mGBA
results in compilation errors because of it requiring an older
FFmpeg version).