Download raw body.
UPDATE: Dolphin 20240510
Here is an update to Dolphin 20240510.
I decided to split off the Vulkan bits to deal with that later.
Instead I fixed building on arm64.
Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/dolphin/Makefile,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 Makefile
--- Makefile 3 May 2024 06:50:46 -0000 1.22
+++ Makefile 18 May 2024 12:30:11 -0000
@@ -5,9 +5,9 @@ ONLY_FOR_ARCHS = aarch64 amd64
COMMENT-main = Nintendo GameCube and Wii emulator with GUI
COMMENT-nogui = Nintendo GameCube and Wii emulator
-PKGNAME = dolphin-5.0.0.20240421
+PKGNAME = dolphin-5.0.0.20240510
DIST_TUPLE += github dolphin-emu dolphin \
- b6f0e8876e40a41941f0fb6cef89cf49c91edb56 . # GPLv2
+ 7ba539d7965f6f20ff6557369cebac5bfd82e320 . # GPLv2
# Externals/
DIST_TUPLE += github dolphin-emu ext-win-qt \
@@ -81,12 +81,12 @@ MULTI_PACKAGES = -main -nogui
# GPLv2+
PERMIT_PACKAGE = Yes
-cWANTLIB = EGL GL GLU ICE SDL2 SM X11 Xext Xi Xrandr avcodec \
- avformat avutil bz2 c curl fmt hidapi-libusb iconv \
- lz4 lzma lzo2 m mbedcrypto mbedtls mbedx509 miniupnpc \
- minizip pthread pugixml sfml-network sfml-system \
- speexdsp spng swscale swresample usb-1.0 xxhash \
- zstd ${COMPILER_LIBCXX}
+cWANTLIB = EGL GL GLU SDL2 X11 Xi Xrandr avcodec avformat avutil \
+ bz2 c curl fmt hidapi-libusb iconv lz4 lzma lzo2 m \
+ mbedcrypto mbedtls mbedx509 miniupnpc minizip pthread \
+ pugixml sfml-network sfml-system speexdsp spng swscale \
+ swresample usb-1.0 xxhash zstd \
+ ${COMPILER_LIBCXX}
# sndio library is dlopen'd
cWANTLIB += sndio
@@ -117,8 +117,8 @@ LIB_DEPENDS-nogui = archivers/lz4 \
LIB_DEPENDS-main = ${LIB_DEPENDS-nogui} \
x11/qt6/qtbase
RUN_DEPENDS-main = ${RUN_DEPENDS-nogui} \
+ ${BASE_PKGPATH},-nogui \
devel/desktop-file-utils \
- emulators/dolphin,-nogui \
x11/gtk+4,-guic
COMPILER = base-clang
@@ -134,8 +134,6 @@ CONFIGURE_ARGS += -DENABLE_ALSA=OFF \
-DUSE_SYSTEM_ENET=OFF \
-DUSE_SYSTEM_LIBMGBA=OFF \
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-
-MODCMAKE_LDFLAGS = -L${X11BASE}/lib -L${LOCALBASE}/lib
FIX_CRLF_FILES = Externals/soundtouch/SoundTouch.cpp \
Externals/soundtouch/SoundTouch.h
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/dolphin/distinfo,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 distinfo
--- distinfo 3 May 2024 06:50:46 -0000 1.6
+++ distinfo 18 May 2024 12:30:11 -0000
@@ -4,7 +4,7 @@ SHA256 (KhronosGroup-SPIRV-Cross-0640756
SHA256 (RetroAchievements-rcheevos-bfa0d3138865ae2a649a0beadfa4206408a14690.tar.gz) = gHG2G+GU7S+Xr6Z0JU7h3uyOR3aQrV5oF/kY2gKUSzc=
SHA256 (bylaws-libadrenotools-deec5f75ee1a8ccbe32c8780b1d17284fc87b0f1.tar.gz) = o6augsMi1ZiwdoJ9EIZTT0f5/s7Xs2eDiQFTy6+e2YA=
SHA256 (curl-curl-5379dbc248045ba46e89d76ffc4be4380d854728.tar.gz) = bvVz/TmIBJzA60tqxaAkvj76RRP1AxHbvcRvFSPtzGI=
-SHA256 (dolphin-emu-dolphin-b6f0e8876e40a41941f0fb6cef89cf49c91edb56.tar.gz) = 205WTI1m1d+HP6Mgau1DZDLWWLiDcEL7ySyrwYqGCec=
+SHA256 (dolphin-emu-dolphin-7ba539d7965f6f20ff6557369cebac5bfd82e320.tar.gz) = 3E8wBD+oN3+jkv4NhgV/sxSi/w+QTgIkSI3UKWhKxt4=
SHA256 (dolphin-emu-ext-win-ffmpeg-9bc087fbca36ce5a85eb4fd73f0c73813593e5a2.tar.gz) = yYzYdIDrLVja3JYdx5JWlmlN5KIR0wiSEn/h3HwJJ4U=
SHA256 (dolphin-emu-ext-win-qt-495517af2b922c10c24f543e0fd6ea3ddf774e50.tar.gz) = 0l6BYA4Uxz8Ikq/C93dfENrESO0KCSSYLMdnc1udUv0=
SHA256 (epezent-implot-f156599faefe316f7dd20fe6c783bf87c8bb6fd9.tar.gz) = 13nOMzJjQ3JNHg+iPUlgzJrK9K9YS8ATTlBOdxfMxLs=
@@ -26,7 +26,7 @@ SIZE (KhronosGroup-SPIRV-Cross-06407561e
SIZE (RetroAchievements-rcheevos-bfa0d3138865ae2a649a0beadfa4206408a14690.tar.gz) = 657051
SIZE (bylaws-libadrenotools-deec5f75ee1a8ccbe32c8780b1d17284fc87b0f1.tar.gz) = 88081
SIZE (curl-curl-5379dbc248045ba46e89d76ffc4be4380d854728.tar.gz) = 3300739
-SIZE (dolphin-emu-dolphin-b6f0e8876e40a41941f0fb6cef89cf49c91edb56.tar.gz) = 20283207
+SIZE (dolphin-emu-dolphin-7ba539d7965f6f20ff6557369cebac5bfd82e320.tar.gz) = 20398707
SIZE (dolphin-emu-ext-win-ffmpeg-9bc087fbca36ce5a85eb4fd73f0c73813593e5a2.tar.gz) = 14871857
SIZE (dolphin-emu-ext-win-qt-495517af2b922c10c24f543e0fd6ea3ddf774e50.tar.gz) = 100540982
SIZE (epezent-implot-f156599faefe316f7dd20fe6c783bf87c8bb6fd9.tar.gz) = 140301
Index: patches/patch-Source_Core_Common_ArmCPUDetect_cpp
===================================================================
RCS file: patches/patch-Source_Core_Common_ArmCPUDetect_cpp
diff -N patches/patch-Source_Core_Common_ArmCPUDetect_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-Source_Core_Common_ArmCPUDetect_cpp 18 May 2024 12:30:11 -0000
@@ -0,0 +1,77 @@
+Add OpenBSD/arm64 support.
+
+Index: Source/Core/Common/ArmCPUDetect.cpp
+--- Source/Core/Common/ArmCPUDetect.cpp.orig
++++ Source/Core/Common/ArmCPUDetect.cpp
+@@ -15,11 +15,16 @@
+ #include <Windows.h>
+ #include <arm64intr.h>
+ #include "Common/WindowsRegistry.h"
+-#else
+-#ifndef __FreeBSD__
++#elif defined(__linux__)
+ #include <asm/hwcap.h>
+-#endif
+ #include <sys/auxv.h>
++#elif defined(__FreeBSD__)
++#include <sys/auxv.h>
++#elif defined(__OpenBSD__)
++#include <machine/armreg.h>
++#include <machine/cpu.h>
++#include <sys/sysctl.h>
++#include <sys/types.h>
+ #endif
+
+ #include <fmt/format.h>
+@@ -183,7 +188,7 @@ static bool Read_MIDR_EL1(u64* value)
+
+ #endif
+
+-#ifndef __APPLE__
++#if defined(_WIN32) || defined(__linux__) || defined(__FreeBSD__)
+
+ static std::string MIDRToString(u64 midr)
+ {
+@@ -248,7 +253,7 @@ void CPUInfo::Detect()
+ {
+ cpu_id = MIDRToString(reg);
+ }
+-#else
++#elif defined(__linux__) || defined(__FreeBSD__)
+ // Linux, Android, and FreeBSD
+
+ #if defined(__FreeBSD__)
+@@ -276,6 +281,33 @@ void CPUInfo::Detect()
+ if (Read_MIDR_EL1(&midr))
+ {
+ cpu_id = MIDRToString(midr);
++ }
++#elif defined(__OpenBSD__)
++ // OpenBSD
++ int mib[2];
++ size_t len;
++ char hwmodel[256];
++ uint64_t isar0;
++
++ mib[0] = CTL_HW;
++ mib[1] = HW_MODEL;
++ len = std::size(hwmodel);
++ if (sysctl(mib, 2, &hwmodel, &len, nullptr, 0) != -1)
++ model_name = std::string(hwmodel, len - 1);
++
++ mib[0] = CTL_MACHDEP;
++ mib[1] = CPU_ID_AA64ISAR0;
++ len = sizeof(isar0);
++ if (sysctl(mib, 2, &isar0, &len, nullptr, 0) != -1)
++ {
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_AES_PMULL)
++ bAES = true;
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_SHA1_BASE)
++ bSHA1 = true;
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_SHA2_BASE)
++ bSHA2 = true;
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_CRC32_BASE)
++ bCRC32 = true;
+ }
+ #endif
+
Index: patches/patch-Source_Core_Core_HW_WiimoteReal_IOhidapi_cpp
===================================================================
RCS file: patches/patch-Source_Core_Core_HW_WiimoteReal_IOhidapi_cpp
diff -N patches/patch-Source_Core_Core_HW_WiimoteReal_IOhidapi_cpp
--- patches/patch-Source_Core_Core_HW_WiimoteReal_IOhidapi_cpp 16 Apr 2024 17:21:57 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-Change hid_init() to hidapi_hid_init() which is renamed locally to avoid
-conflict with usbhid.
-
-Index: Source/Core/Core/HW/WiimoteReal/IOhidapi.cpp
---- Source/Core/Core/HW/WiimoteReal/IOhidapi.cpp.orig
-+++ Source/Core/Core/HW/WiimoteReal/IOhidapi.cpp
-@@ -41,7 +41,7 @@ namespace WiimoteReal
- {
- WiimoteScannerHidapi::WiimoteScannerHidapi()
- {
-- int ret = hid_init();
-+ int ret = hidapi_hid_init();
- ASSERT_MSG(WIIMOTE, ret == 0, "Couldn't initialise hidapi.");
- }
-
Index: patches/patch-Source_Core_Core_MachineContext_h
===================================================================
RCS file: patches/patch-Source_Core_Core_MachineContext_h
diff -N patches/patch-Source_Core_Core_MachineContext_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-Source_Core_Core_MachineContext_h 18 May 2024 12:30:11 -0000
@@ -0,0 +1,17 @@
+Add OpenBSD/arm64 support.
+
+Index: Source/Core/Core/MachineContext.h
+--- Source/Core/Core/MachineContext.h.orig
++++ Source/Core/Core/MachineContext.h
+@@ -157,6 +157,11 @@ typedef ucontext_t SContext;
+ #define CTX_R14 sc_r14
+ #define CTX_R15 sc_r15
+ #define CTX_RIP sc_rip
++#elif _M_ARM_64
++#define CTX_REG(x) sc_x[x]
++#define CTX_LR sc_lr
++#define CTX_SP sc_sp
++#define CTX_PC sc_elr
+ #else
+ #error No context definition for architecture
+ #endif
UPDATE: Dolphin 20240510