Dolphin-2503

Introduction to Dolphin

The Dolphin package (not to be confused with the KF6 dolphin file manager) provides a GCN and Wii emulator.

Additional Downloads

Dolphin Dependencies

Required

CMake, FFmpeg, libevdev, OpenGL (libglvnd or Mesa; only the normal installation is required for either), Qt-6, SDL2, and Xorg Libraries

Recommended

Optional

hidapi and mbedtls

Downloading Dolphin

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

Installation of Dolphin

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

Command Explanations

-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).

Contents

Installed Programs: dolphin-emu, dolphin-emu-nogui, and dolphin-tool
Installed Libraries: None
Installed Directories: /usr/share/dolphin-emu

Short Descriptions

dolphin-emu

is the GUI version of Dolphin

dolphin-emu-nogui

is the command-line version of Dolphin

dolphin-tool

has multiple functions such as managing disc images