Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: Dolphin 20240510
To:
ports@openbsd.org
Date:
Thu, 23 May 2024 02:48:17 -0400

Download raw body.

Thread
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