On Sat, May 18, 2024 at 08:36:36AM -0400, Brad Smith wrote:
> 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.

An updated diff. Fixes for the arm64 sysctl code.


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    23 May 2024 06:41:45 -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    23 May 2024 06:41:45 -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   23 May 2024 06:41:45 
-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_BASE)
++      bAES = true;
++    if (ID_AA64ISAR0_SHA1(isar0) >= ID_AA64ISAR0_SHA1_BASE)
++      bSHA1 = true;
++    if (ID_AA64ISAR0_SHA2(isar0) >= ID_AA64ISAR0_SHA2_BASE)
++      bSHA2 = true;
++    if (ID_AA64ISAR0_CRC32(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     23 May 2024 06:41:45 
-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

Reply via email to