Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
emulators/ppsspp (sdl2-ttf breakage) [tfrohwein@fastmail.com: Re: CVS: cvs.openbsd.org: ports]
To:
ports <ports@openbsd.org>, "Anthony J. Bentley" <anthony@anjbe.name>
Cc:
Thomas Frohwein <tfrohwein@fastmail.com>
Date:
Thu, 4 Sep 2025 12:42:45 +0100

Download raw body.

Thread
forwarding to ports for better visibility; the sdl2-ttf update broke
ppsspp, this is a diff from thfr updating ppsspp to fix.

eyeballing the diff it looks good to me (and unless there are red flags
I'd generally prefer updates rather than patches), but I don't use this.

CC'ing bentley@ who has committed most things to ppsspp


----- Forwarded message from Thomas Frohwein -----

<...snip...>

> emulators/ppsspp

Fixes attached for both. Valyriatear is trivial. I fixed ppsspp by
including an update to the latest release. This was slightly more
involved because it now bundles a new library in ext/cpu_features that
ignores OpenBSD. It builds fine with this diff that basically hijacks
the FreeBSD code in cpu_features. I tested it briefly with the Cave
Story ROM without issues.

An alternative fix would be backporting of

https://github.com/hrydgard/ppsspp/commit/bd84c7bf7dcefc991aa2af14ca1f42f2c842c54b
and
https://github.com/hrydgard/ppsspp/commit/1ba304d83f5b3154928cff4169e812f4eedc3b6e

Could I get eyes and an ok on the ppsspp update? (I'll go ahead with
the other 3 because they are trivial)

<...snip...>

Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/Makefile,v
diff -u -p -r1.31 Makefile
--- Makefile	10 Nov 2024 14:52:12 -0000	1.31
+++ Makefile	1 Sep 2025 18:19:37 -0000
@@ -4,8 +4,7 @@ NOT_FOR_ARCHS =	${BE_ARCHS}
 COMMENT =	Sony PlayStation Portable emulator
 
 DISTNAME =	ppsspp-$V
-V =		1.18.1
-REVISION =	0
+V =		1.19.3
 SITES =		https://github.com/hrydgard/ppsspp/releases/download/v$V/
 
 EXTRACT_SUFX =	.tar.xz
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/distinfo,v
diff -u -p -r1.15 distinfo
--- distinfo	6 Nov 2024 09:19:15 -0000	1.15
+++ distinfo	1 Sep 2025 18:19:37 -0000
@@ -1,2 +1,2 @@
-SHA256 (ppsspp-1.18.1.tar.xz) = eMXRfwlEPX6kUPzp/cBYG1IM8gbEIJXdhV6Uvi4Jvc8=
-SIZE (ppsspp-1.18.1.tar.xz) = 54239412
+SHA256 (ppsspp-1.19.3.tar.xz) = BUQB+n//vZm3/YDpiilR1vDD3oPLS1RxmJnJi/rZlhQ=
+SIZE (ppsspp-1.19.3.tar.xz) = 58131440
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-CMakeLists_txt,v
diff -u -p -r1.17 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt	6 Nov 2024 09:19:15 -0000	1.17
+++ patches/patch-CMakeLists_txt	1 Sep 2025 18:19:37 -0000
@@ -4,25 +4,24 @@
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -423,13 +423,13 @@ if(NOT MSVC)
- 		endif()
- 	endif()
+@@ -1080,16 +1080,6 @@ add_library(cityhash STATIC
+ )
+ target_include_directories(cityhash PRIVATE ext/cityhash)
  
--	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_DEBUG")
-+	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
- 	set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -D_NDEBUG")
--	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -D_NDEBUG")
-+	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_NDEBUG")
- 	set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG")
--	set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -D_DEBUG")
-+	set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
- 	set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Os -D_NDEBUG")
--	set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -D_NDEBUG")
-+	set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D_NDEBUG")
- 	set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG")
- 
- 	# Enable checking printf-like format strings (also works for logging functions)
-@@ -1206,7 +1206,7 @@ else()
+-if(NOT MSVC)
+-	# These can be fast even for debug.
+-	target_compile_options(udis86 PRIVATE "-O2")
+-	target_compile_options(cityhash PRIVATE "-O2")
+-	if(NOT ZLIB_FOUND)
+-		target_compile_options(zlib PRIVATE "-O2")
+-	endif()
+-endif()
+-
+-
+ find_package(LIBZIP)
+ if(LIBZIP_FOUND AND USE_SYSTEM_LIBZIP)
+ 	include_directories(${LIBZIP_INCLUDE_DIRS})
+@@ -1233,7 +1223,7 @@ else()
  endif()
  
  # Arm platforms require at least libpng17.
Index: patches/patch-Core_AVIDump_cpp
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-Core_AVIDump_cpp,v
diff -u -p -r1.6 patch-Core_AVIDump_cpp
--- patches/patch-Core_AVIDump_cpp	10 Nov 2024 14:52:13 -0000	1.6
+++ patches/patch-Core_AVIDump_cpp	1 Sep 2025 18:19:37 -0000
@@ -3,7 +3,7 @@ Build with newer FFmpeg
 Index: Core/AVIDump.cpp
 --- Core/AVIDump.cpp.orig
 +++ Core/AVIDump.cpp
-@@ -93,7 +93,7 @@ bool AVIDump::Start(int w, int h)
+@@ -94,7 +94,7 @@ bool AVIDump::Start(int w, int h)
  
  bool AVIDump::CreateAVI() {
  #ifdef USE_FFMPEG
Index: patches/patch-Core_HLE_sceMpeg_cpp
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-Core_HLE_sceMpeg_cpp,v
diff -u -p -r1.7 patch-Core_HLE_sceMpeg_cpp
--- patches/patch-Core_HLE_sceMpeg_cpp	10 Nov 2024 14:52:13 -0000	1.7
+++ patches/patch-Core_HLE_sceMpeg_cpp	1 Sep 2025 18:19:37 -0000
@@ -3,12 +3,12 @@ Build with newer FFmpeg
 Index: Core/HLE/sceMpeg.cpp
 --- Core/HLE/sceMpeg.cpp.orig
 +++ Core/HLE/sceMpeg.cpp
-@@ -805,7 +805,7 @@ static bool InitPmp(MpegContext * ctx){
+@@ -719,7 +719,7 @@ static bool InitPmp(MpegContext * ctx){
  	pmp_want_pix_fmt = AV_PIX_FMT_RGBA;
  
  	// Create H264 video codec
 -	AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264);
 +	const AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264);
  	if (pmp_Codec == NULL){
- 		ERROR_LOG(Log::ME, "Can not find H264 codec, please update ffmpeg");
+ 		ERROR_LOG(Log::Mpeg, "Can not find H264 codec, please update ffmpeg");
  		return false;
Index: patches/patch-Core_HW_MediaEngine_cpp
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-Core_HW_MediaEngine_cpp,v
diff -u -p -r1.10 patch-Core_HW_MediaEngine_cpp
--- patches/patch-Core_HW_MediaEngine_cpp	10 Nov 2024 14:52:13 -0000	1.10
+++ patches/patch-Core_HW_MediaEngine_cpp	1 Sep 2025 18:19:37 -0000
@@ -3,7 +3,7 @@ Build with newer FFmpeg
 Index: Core/HW/MediaEngine.cpp
 --- Core/HW/MediaEngine.cpp.orig
 +++ Core/HW/MediaEngine.cpp
-@@ -416,7 +416,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
+@@ -406,7 +406,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
  		// no need to add an existing stream.
  		if ((u32)streamNum < m_pFormatCtx->nb_streams)
  			return true;
@@ -12,7 +12,7 @@ Index: Core/HW/MediaEngine.cpp
  		if (!h264_codec)
  			return false;
  		AVStream *stream = avformat_new_stream(m_pFormatCtx, h264_codec);
-@@ -439,7 +439,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
+@@ -429,7 +429,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
  			}
  
  #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
@@ -21,7 +21,7 @@ Index: Core/HW/MediaEngine.cpp
  			AVCodecContext *codecCtx = avcodec_alloc_context3(codec);
  #else
  			AVCodecContext *codecCtx = stream->codec;
-@@ -527,7 +527,7 @@ bool MediaEngine::setVideoStream(int streamNum, bool f
+@@ -517,7 +517,7 @@ bool MediaEngine::setVideoStream(int streamNum, bool f
  
  		AVStream *stream = m_pFormatCtx->streams[streamNum];
  #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 33, 100)
Index: patches/patch-Core_HW_SimpleAudioDec_cpp
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_cpp,v
diff -u -p -r1.6 patch-Core_HW_SimpleAudioDec_cpp
--- patches/patch-Core_HW_SimpleAudioDec_cpp	10 Nov 2024 14:52:13 -0000	1.6
+++ patches/patch-Core_HW_SimpleAudioDec_cpp	1 Sep 2025 18:19:37 -0000
@@ -3,7 +3,7 @@ Build with newer FFmpeg
 Index: Core/HW/SimpleAudioDec.cpp
 --- Core/HW/SimpleAudioDec.cpp.orig
 +++ Core/HW/SimpleAudioDec.cpp
-@@ -118,7 +118,7 @@ class FFmpegAudioDecoder : public AudioDecoder { (priv
+@@ -133,7 +133,7 @@ class FFmpegAudioDecoder : public AudioDecoder { (priv
  	int channels_;
  
  	AVFrame *frame_ = nullptr;
Index: patches/patch-UI_NativeApp_cpp
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-UI_NativeApp_cpp,v
diff -u -p -r1.12 patch-UI_NativeApp_cpp
--- patches/patch-UI_NativeApp_cpp	27 Apr 2024 10:57:29 -0000	1.12
+++ patches/patch-UI_NativeApp_cpp	1 Sep 2025 18:19:37 -0000
@@ -1,7 +1,7 @@
 Index: UI/NativeApp.cpp
 --- UI/NativeApp.cpp.orig
 +++ UI/NativeApp.cpp
-@@ -386,12 +386,7 @@ void NativeInit(int argc, const char *argv[], const ch
+@@ -383,12 +383,7 @@ void NativeInit(int argc, const char *argv[], const ch
  	g_VFS.Register("", new DirectoryReader(Path(ASSETS_DIR)));
  #endif
  #if !defined(MOBILE_DEVICE) && !defined(_WIN32) && !PPSSPP_PLATFORM(SWITCH)
Index: patches/patch-ext_cpu_features_include_cpu_features_macros_h
===================================================================
RCS file: patches/patch-ext_cpu_features_include_cpu_features_macros_h
diff -N patches/patch-ext_cpu_features_include_cpu_features_macros_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-ext_cpu_features_include_cpu_features_macros_h	1 Sep 2025 18:19:37 -0000
@@ -0,0 +1,14 @@
+hijack FreeBSD codepaths
+
+Index: ext/cpu_features/include/cpu_features_macros.h
+--- ext/cpu_features/include/cpu_features_macros.h.orig
++++ ext/cpu_features/include/cpu_features_macros.h
+@@ -91,7 +91,7 @@
+ // Os
+ ////////////////////////////////////////////////////////////////////////////////
+ 
+-#if (defined(__freebsd__) || defined(__FreeBSD__))
++#if (defined(__freebsd__) || defined(__FreeBSD__) || defined(__OpenBSD__))
+ #define CPU_FEATURES_OS_FREEBSD
+ #endif
+ 
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/pkg/PLIST,v
diff -u -p -r1.12 PLIST
--- pkg/PLIST	6 Nov 2024 09:19:15 -0000	1.12
+++ pkg/PLIST	1 Sep 2025 18:19:37 -0000
@@ -58,9 +58,11 @@ share/ppsspp/assets/font_atlas.meta
 share/ppsspp/assets/font_atlas.zim
 share/ppsspp/assets/gamecontrollerdb.txt
 share/ppsspp/assets/icon_regular_72.png
+share/ppsspp/assets/infra-dns.json
 share/ppsspp/assets/lang/
 share/ppsspp/assets/lang/ar_AE.ini
 share/ppsspp/assets/lang/az_AZ.ini
+share/ppsspp/assets/lang/be_BY.ini
 share/ppsspp/assets/lang/bg_BG.ini
 share/ppsspp/assets/lang/ca_ES.ini
 share/ppsspp/assets/lang/cz_CZ.ini
@@ -158,8 +160,10 @@ share/ppsspp/assets/shaders/videoAA.fsh
 share/ppsspp/assets/shaders/vignette.fsh
 share/ppsspp/assets/themes/
 share/ppsspp/assets/themes/1995.ini
+share/ppsspp/assets/themes/alpine.ini
 share/ppsspp/assets/themes/defaultthemes.ini
 share/ppsspp/assets/themes/slateforest.ini
+share/ppsspp/assets/themes/strawberry.ini
 share/ppsspp/assets/themes/vinewood.ini
 share/ppsspp/assets/ui_atlas.meta
 share/ppsspp/assets/ui_atlas.zim


----- End forwarded message -----