Package Details: dolphin-emu-tool-git 2606.r121.g774200dcf4-1

Git Clone URL: https://aur.archlinux.org/dolphin-emu-git.git (read-only, click to copy)
Package Base: dolphin-emu-git
Description: A Gamecube / Wii emulator - CLI-based utility for functions such as managing disc images - git version
Upstream URL: https://dolphin-emu.org
Keywords: dolphin emu emulator game gamecube gui nintendo remote revolution triforce wii wiimote
Licenses: GPL-2.0-or-later
Conflicts: dolphin-emu-tool
Provides: dolphin-emu-tool
Submitter: None
Maintainer: dpeukert
Last Packager: dpeukert
Votes: 123
Popularity: 1.00
First Submitted: 2011-08-20 13:05 (UTC)
Last Updated: 2026-07-07 19:36 (UTC)

Pinned Comments

dpeukert commented on 2020-04-10 12:34 (UTC) (edited on 2020-09-26 17:48 (UTC) by dpeukert)

The PKGBUILD for this package is hosted here (contributions are welcome!): https://gitlab.com/dpeukert/pkgbuilds/tree/main/dolphin-emu-git

Latest Comments

1 2 3 4 5 6 .. 63 Next › Last »

dpeukert commented on 2026-07-07 19:38 (UTC)

@Joomzie, @rubin55: Sorry for the delay, all dependency issues should now be fixed.

rubin55 commented on 2026-06-27 21:35 (UTC) (edited on 2026-06-29 09:38 (UTC) by rubin55)

It seems mbedtls2 was removed from the regular repositories, and there's a redundant depend on libsfml-system.so. I've created a diff for your PKGBUILD:

diff --git a/PKGBUILD b/PKGBUILD
index 4a94cbc..c2ac0be 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,8 +9,8 @@ _noguipkgname="$_projectname-emu-nogui"
 _toolpkgname="$_projectname-emu-tool"
 pkgbase="$_mainpkgname-git"
 pkgname=("$pkgbase" "$_noguipkgname-git" "$_toolpkgname-git")
-pkgver='2509.r528.gaeac5f1a58'
-pkgrel='1'
+pkgver=2606.r91.ge2ab15aa23
+pkgrel=1
 pkgdesc='A Gamecube / Wii emulator'
 _pkgdescappend=' - git version'
 arch=('x86_64' 'aarch64')
@@ -20,8 +20,8 @@ depends=(
    # Based on the repo package
    'bluez-libs' 'bzip2' 'enet' 'gcc-libs' 'glibc' 'hidapi' 'libavcodec.so'
    'libavformat.so' 'libavutil.so' 'libcurl.so' 'libfmt.so' 'libgl'
-   'libsfml-network.so' 'libsfml-system.so' 'libspng.so' 'libswscale.so'
-   'libusb-1.0.so' 'libx11' 'libxi' 'libxrandr' 'lz4' 'lzo' 'mbedtls2' 'pugixml'
+   'libsfml-network.so' 'libspng.so' 'libswscale.so'
+   'libusb-1.0.so' 'libx11' 'libxi' 'libxrandr' 'lz4' 'lzo' 'pugixml'
    'sdl3' 'sfml' 'speexdsp' 'xxhash' 'xz' 'zstd'
    # Additional dependencies to replace vendored deps
    'cubeb' 'glslang' 'libiconv' 'llvm' 'minizip-ng' 'zlib-ng'
@@ -107,6 +107,7 @@ build() {
        -DENABLE_AUTOUPDATE=OFF \
        -DUSE_SYSTEM_LIBS=ON \
        -DUSE_SYSTEM_LIBMGBA=OFF \
+       -DUSE_SYSTEM_MBEDTLS=OFF \
        -Wno-dev
    cmake --build 'build/'
 }

rubin55 commented on 2026-06-22 08:54 (UTC) (edited on 2026-06-22 08:59 (UTC) by rubin55)

I was having some problems possibly related to recent gcc changes and/or upstream changes with regards to fmt12 and missing <cstring> includes. I came up with a patch (add patch -p1 < "$srcdir/fmt12-and-gcc16.patch" to prepare() in PKGBUILD).

fmt12-and-gcc16.patch:

diff --git a/Source/Core/Common/Crypto/AES.cpp b/Source/Core/Common/Crypto/AES.cpp
index a83812ff2e..7d6ddb6463 100644
--- a/Source/Core/Common/Crypto/AES.cpp
+++ b/Source/Core/Common/Crypto/AES.cpp
@@ -4,6 +4,7 @@
 #include "Common/Crypto/AES.h"

 #include <array>
+#include <cstring>
 #include <memory>

 #include <mbedtls/aes.h>
diff --git a/Source/Core/Common/Logging/Log.h b/Source/Core/Common/Logging/Log.h
index 64d353af00..3cc7350c58 100644
--- a/Source/Core/Common/Logging/Log.h
+++ b/Source/Core/Common/Logging/Log.h
@@ -104,7 +104,12 @@ void GenericLogFmt(LogLevel level, LogType type, const char* file, int line, con
                 "Unexpected number of replacement fields in format string; did you pass too few or "
                 "too many arguments?");

-#if FMT_VERSION >= 110000
+#if FMT_VERSION >= 120000
+  // In fmt 12+, FMT_STRING(s) returns just s (a char literal), not a compile_string
+  // struct, so the consteval format_string constructor cannot run on a function
+  // parameter. Skip compile-time type validation; rely on CountFmtReplacementFields.
+  auto&& format_str = fmt::string_view(format);
+#elif FMT_VERSION >= 110000
   auto&& format_str = fmt::format_string<Args...>(format);
 #else
   auto&& format_str = format;
diff --git a/Source/Core/Common/MsgHandler.h b/Source/Core/Common/MsgHandler.h
index 4fc7196a97..2488aaf8d3 100644
--- a/Source/Core/Common/MsgHandler.h
+++ b/Source/Core/Common/MsgHandler.h
@@ -39,7 +39,12 @@ bool MsgAlertFmt(bool yes_no, MsgType style, Common::Log::LogType log_type, cons
   static_assert(NumFields == sizeof...(args),
                 "Unexpected number of replacement fields in format string; did you pass too few or "
                 "too many arguments?");
-#if FMT_VERSION >= 110000
+#if FMT_VERSION >= 120000
+  // In fmt 12+, FMT_STRING(s) returns just s (a char literal), not a compile_string
+  // struct, so the consteval format_string constructor cannot run on a function
+  // parameter. Skip compile-time type validation; rely on CountFmtReplacementFields.
+  auto&& format_str = fmt::string_view(format);
+#elif FMT_VERSION >= 110000
   static_assert(std::is_base_of_v<fmt::detail::compile_string, S>);
   auto&& format_str = fmt::format_string<Args...>(format);
 #elif FMT_VERSION >= 90000
@@ -63,7 +68,9 @@ bool MsgAlertFmtT(bool yes_no, MsgType style, Common::Log::LogType log_type, con
   static_assert(NumFields == sizeof...(args),
                 "Unexpected number of replacement fields in format string; did you pass too few or "
                 "too many arguments?");
-#if FMT_VERSION >= 110000
+#if FMT_VERSION >= 120000
+  // In fmt 12+, FMT_STRING(s) returns just s (a char literal); see MsgAlertFmt.
+#elif FMT_VERSION >= 110000
   static_assert(std::is_base_of_v<fmt::detail::compile_string, S>);
 #elif FMT_VERSION >= 90000
   static_assert(fmt::detail::is_compile_string<S>::value);
diff --git a/Source/Core/Common/TimeUtil.cpp b/Source/Core/Common/TimeUtil.cpp
index 93327e9136..78bb9f0234 100644
--- a/Source/Core/Common/TimeUtil.cpp
+++ b/Source/Core/Common/TimeUtil.cpp
@@ -4,6 +4,7 @@
 #include "Common/TimeUtil.h"
 #include "Common/Logging/Log.h"

+#include <cstring>
 #include <ctime>
 #include <optional>

diff --git a/Source/Core/VideoBackends/OGL/OGLBoundingBox.cpp b/Source/Core/VideoBackends/OGL/OGLBoundingBox.cpp
index 9b36a75b63..673e308d53 100644
--- a/Source/Core/VideoBackends/OGL/OGLBoundingBox.cpp
+++ b/Source/Core/VideoBackends/OGL/OGLBoundingBox.cpp
@@ -3,6 +3,8 @@

 #include "VideoBackends/OGL/OGLBoundingBox.h"

+#include <cstring>
+
 #include "VideoBackends/OGL/OGLGfx.h"
 #include "VideoCommon/DriverDetails.h"

Joomzie commented on 2026-04-20 21:31 (UTC) (edited on 2026-05-07 16:36 (UTC) by Joomzie)

Hello, again. New release of sfml (3.1.0-1) breaks the libsfml-network dependency. Looks to be an upstream issue, so we'll likely be waiting until the Dolphin team bumps the dependency version.

❯ yay -S sfml
Sync Dependency (1): sfml-3.1.0-1
...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing sfml (3.1.0-1) breaks dependency 'libsfml-network.so=3.0-64' required by dolphin-emu-git
:: installing sfml (3.1.0-1) breaks dependency 'libsfml-network.so=3.0-64' required by dolphin-emu-nogui-git
:: installing sfml (3.1.0-1) breaks dependency 'libsfml-network.so=3.0-64' required by dolphin-emu-tool-git

dpeukert commented on 2026-03-19 17:13 (UTC)

@busbybear: This is a VCS package and therefore does not need to be updated when upstream releases a new version, unless the build breaks (seems to build fine for me).

Joomzie commented on 2025-11-12 05:24 (UTC) (edited on 2025-11-12 12:00 (UTC) by Joomzie)

To add to @rubin55's report, looks like the Dolphin team has updated the CMakeLists.txt to now search for glslang 16. Should be safe to remove the patch for it.

To everyone else, until an update is pushed out, you'll need to make these changes to the PKGBUILD to get a successful build.

Remove these lines:

'glslang-minimum-version.diff'
'ec983a1f046d8325cdea98adb682fb1b93b8f09eaee0cbd969c8fb7b904f2e08003cc097f1e06859e05b603e77320aeed078c33ecbfe27333247864727651c1e'
# Get rid of glslang version, as it's used as an exact match (ABI v16 is compatible, see https://github.com/dolphin-emu/dolphin/pull/13974/files/cdfb389509b560b4a70661571d12edcebfb77fdf#r2384216168)
patch --forward -p1 < "$srcdir/glslang-minimum-version.diff"

imgui also needs to be added to the submodules. Add this line to source=:

"$pkgbase-imgui::git+https://github.com/ocornut/imgui.git"

Add this to b2sums=:

'SKIP'

And finally, add this to _submodules=:

[imgui]='imgui/imgui'

rubin55 commented on 2025-11-09 13:41 (UTC)

Getting this since yesterday:

patching file CMakeLists.txt
Hunk #1 FAILED at 642.
1 out of 1 hunk FAILED -- saving rejects to file CMakeLists.txt.rej

dpeukert commented on 2025-11-02 21:43 (UTC)

@Neros: Should be fixed now.

dpeukert commented on 2025-11-02 21:36 (UTC)

@Neros: Looks like this was fixed upstream just after I added the patch (https://github.com/dolphin-emu/dolphin/pull/14065), will fix ASAP.

Neros commented on 2025-11-02 21:28 (UTC) (edited on 2025-11-02 21:52 (UTC) by Neros)

I can't build it with the new updated PKGBUILD:

Submodule path 'Externals/VulkanMemoryAllocator': checked out '3bab6924988e5f19bf36586a496156cf72f70d9f'
patching file CMakeLists.txt
Hunk #1 succeeded at 642 (offset -11 lines).
patching file Source/Core/VideoCommon/ShaderCompileUtils.h
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file Source/Core/VideoCommon/ShaderCompileUtils.h.rej
==> ERROR: A failure occurred in prepare().
    Aborting...
 -> error making: dolphin-emu-git-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
dolphin-emu-git - exit status 4

Edit: fixed, thanks!