Here is an update to ppsspp 1.15.4.
https://www.ppsspp.org/news/ Index: Makefile =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/Makefile,v retrieving revision 1.20 diff -u -p -u -p -r1.20 Makefile --- Makefile 25 Apr 2023 15:33:02 -0000 1.20 +++ Makefile 28 May 2023 06:45:26 -0000 @@ -3,10 +3,10 @@ NOT_FOR_ARCHS = ${BE_ARCHS} # FakeJit fallback broken in (at least) 1.10.3 # ppsspp-1.10.3/Core/MIPS/JitCommon/JitCommon.cpp:75:10: error: cannot initialize return object of type 'MIPSComp::JitInterface *' with an rvalue of type 'MIPSComp::FakeJit *' -PPSSPP_JIT_ARCHS = arm aarch64 i386 amd64 +PPSSPP_JIT_ARCHS = aarch64 amd64 arm i386 ONLY_FOR_ARCHS = ${PPSSPP_JIT_ARCHS} -V = 1.14.4 +V = 1.15.4 DISTNAME = ppsspp-$V COMMENT = Sony PlayStation Portable emulator Index: distinfo =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/distinfo,v retrieving revision 1.10 diff -u -p -u -p -r1.10 distinfo --- distinfo 25 Apr 2023 15:33:02 -0000 1.10 +++ distinfo 24 May 2023 04:35:59 -0000 @@ -1,2 +1,2 @@ -SHA256 (ppsspp/ppsspp-1.14.4.tar.xz) = VO3kGvVpEW2cKE97FX0USdzROURnXmDCh1vzo5lPXdo= -SIZE (ppsspp/ppsspp-1.14.4.tar.xz) = 46405556 +SHA256 (ppsspp/ppsspp-1.15.4.tar.xz) = ogvSe0zagR1s0hgvv80W9wktal0H/LvQDMcjBTC99ow= +SIZE (ppsspp/ppsspp-1.15.4.tar.xz) = 51947468 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/patches/patch-CMakeLists_txt,v retrieving revision 1.9 diff -u -p -u -p -r1.9 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 13 May 2023 08:22:02 -0000 1.9 +++ patches/patch-CMakeLists_txt 28 May 2023 07:02:55 -0000 @@ -1,21 +1,24 @@ -- fix includes -- honor CFLAGS and DEBUG -- set _POSIX_C_SOURCE=200809L for locale_t (build fails otherwise) -- use system libpng on arm platforms +- Fix building on OpenBSD + 94aed7a1011ef48e6524fb16bfb7dfb025dc0746 + +- Fix includes +- Honor CFLAGS and DEBUG +- Use system libpng on arm platforms Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -252,6 +252,8 @@ endif() - if(NOT LIBRETRO AND NOT IOS) - find_package(SDL2) +@@ -258,6 +258,9 @@ if(MACOSX AND NOT IOS) + endif() endif() + +include_directories(${X11BASE}/include) +include_directories(${LOCALBASE}/lib/libzip/include) ++ include(FindThreads) if(APPLE) -@@ -351,13 +353,13 @@ if(NOT MSVC) +@@ -358,13 +361,13 @@ if(NOT MSVC) endif() endif() @@ -33,15 +36,16 @@ Index: CMakeLists.txt set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG") # Enable checking printf-like format strings (also works for logging functions) -@@ -388,7 +390,6 @@ if(NOT MSVC) - if(NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Intel" AND NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") +@@ -404,7 +407,7 @@ if(NOT MSVC) add_definitions(-Wno-psabi) endif() -- add_definitions(-D_XOPEN_SOURCE=700) - add_definitions(-D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1) + add_definitions(-D_XOPEN_SOURCE=700) +- add_definitions(-D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1) ++ add_definitions(-D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D_BSD_SOURCE) add_definitions(-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64) elseif(ANDROID) -@@ -900,6 +901,7 @@ endif() + add_definitions(-fsigned-char) +@@ -933,6 +936,7 @@ endif() find_package(LIBZIP) if(LIBZIP_FOUND AND USE_SYSTEM_LIBZIP) add_definitions(-DSHARED_LIBZIP) @@ -49,7 +53,7 @@ Index: CMakeLists.txt else() add_library(libzip STATIC ext/libzip/zip_add.c -@@ -1037,7 +1039,7 @@ else() +@@ -1070,7 +1074,7 @@ else() endif() # Arm platforms require at least libpng17. @@ -58,12 +62,3 @@ Index: CMakeLists.txt set(PNG_REQUIRED_VERSION 1.7) else() set(PNG_REQUIRED_VERSION 1.6) -@@ -2123,7 +2125,7 @@ if(USE_MINIUPNPC) - - if (NOT WIN32) - add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT) -- add_definitions (-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L) -+ add_definitions (-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L) - endif() - if (MACOSX) - add_definitions (-D_DARWIN_C_SOURCE) Index: patches/patch-Core_AVIDump_cpp =================================================================== RCS file: patches/patch-Core_AVIDump_cpp diff -N patches/patch-Core_AVIDump_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_AVIDump_cpp 20 May 2023 00:45:57 -0000 @@ -0,0 +1,14 @@ +Deal with newer FFmpeg API. + +Index: Core/AVIDump.cpp +--- Core/AVIDump.cpp.orig ++++ Core/AVIDump.cpp +@@ -91,7 +91,7 @@ bool AVIDump::Start(int w, int h) + + bool AVIDump::CreateAVI() { + #ifdef USE_FFMPEG +- AVCodec *codec = nullptr; ++ const AVCodec *codec = nullptr; + + // Use gameID_EmulatedTimestamp for filename + std::string discID = g_paramSFO.GetDiscID(); Index: patches/patch-Core_HLE_proAdhoc_cpp =================================================================== RCS file: patches/patch-Core_HLE_proAdhoc_cpp diff -N patches/patch-Core_HLE_proAdhoc_cpp --- patches/patch-Core_HLE_proAdhoc_cpp 25 Apr 2023 15:33:02 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -support compilation without TCP_KEEPALIVE support - -Index: Core/HLE/proAdhoc.cpp ---- Core/HLE/proAdhoc.cpp.orig -+++ Core/HLE/proAdhoc.cpp -@@ -2087,7 +2087,7 @@ int setSockKeepAlive(int sock, bool keepalive, const i - int optval = keepalive ? 1 : 0; - int optlen = sizeof(optval); - int result = setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&optval, optlen); --#if !PPSSPP_PLATFORM(SWITCH) -+#if !PPSSPP_PLATFORM(SWITCH) && !PPSSPP_PLATFORM(OPENBSD) - if (result == 0 && keepalive) { - if (getsockopt(sock, SOL_SOCKET, SO_TYPE, (char*)&optval, (socklen_t*)&optlen) == 0 && optval == SOCK_STREAM) { - optlen = sizeof(optval); Index: patches/patch-Core_HLE_sceAtrac_cpp =================================================================== RCS file: patches/patch-Core_HLE_sceAtrac_cpp diff -N patches/patch-Core_HLE_sceAtrac_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_HLE_sceAtrac_cpp 20 May 2023 00:49:28 -0000 @@ -0,0 +1,13 @@ +Deal with newer FFmpeg API. + +Index: Core/HLE/sceAtrac.cpp +--- Core/HLE/sceAtrac.cpp.orig ++++ Core/HLE/sceAtrac.cpp +@@ -123,6 +123,7 @@ static const int atracDecodeDelay = 2300; + #ifdef USE_FFMPEG + + extern "C" { ++#include "libavcodec/avcodec.h" + #include "libavformat/avformat.h" + #include "libswresample/swresample.h" + #include "libavutil/samplefmt.h" Index: patches/patch-Core_HLE_sceMpeg_cpp =================================================================== RCS file: patches/patch-Core_HLE_sceMpeg_cpp diff -N patches/patch-Core_HLE_sceMpeg_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_HLE_sceMpeg_cpp 20 May 2023 00:51:34 -0000 @@ -0,0 +1,22 @@ +Deal with newer FFmpeg API. + +Index: Core/HLE/sceMpeg.cpp +--- Core/HLE/sceMpeg.cpp.orig ++++ Core/HLE/sceMpeg.cpp +@@ -108,6 +108,7 @@ static bool useRingbufferPutCallbackMulti = true; + #ifdef USE_FFMPEG + + extern "C" { ++#include "libavcodec/avcodec.h" + #include "libavformat/avformat.h" + #include "libavutil/imgutils.h" + #include "libswscale/swscale.h" +@@ -801,7 +802,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(ME, "Can not find H264 codec, please update ffmpeg"); + return false; Index: patches/patch-Core_HLE_sceNetAdhoc_cpp =================================================================== RCS file: patches/patch-Core_HLE_sceNetAdhoc_cpp diff -N patches/patch-Core_HLE_sceNetAdhoc_cpp --- patches/patch-Core_HLE_sceNetAdhoc_cpp 25 Apr 2023 15:33:02 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,13 +0,0 @@ -ensure that u_int32_t and friends are defined - -Index: Core/HLE/sceNetAdhoc.cpp ---- Core/HLE/sceNetAdhoc.cpp.orig -+++ Core/HLE/sceNetAdhoc.cpp -@@ -21,6 +21,7 @@ - #endif - - #if !defined(_WIN32) -+#include <sys/types.h> - #include <netinet/tcp.h> - #endif - Index: patches/patch-Core_HLE_sceNet_cpp =================================================================== RCS file: patches/patch-Core_HLE_sceNet_cpp diff -N patches/patch-Core_HLE_sceNet_cpp --- patches/patch-Core_HLE_sceNet_cpp 11 Mar 2022 18:59:40 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -ensure that u_int32_t and friends are defined - -Index: Core/HLE/sceNet.cpp ---- Core/HLE/sceNet.cpp.orig -+++ Core/HLE/sceNet.cpp -@@ -15,7 +15,7 @@ - // Official git repository and contact information can be found at - // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. - --#if __linux__ || __APPLE__ -+#if __linux__ || __APPLE__ || defined(__OpenBSD__) - #include <unistd.h> - #include <sys/types.h> - #include <sys/mman.h> Index: patches/patch-Core_HW_MediaEngine_cpp =================================================================== RCS file: patches/patch-Core_HW_MediaEngine_cpp diff -N patches/patch-Core_HW_MediaEngine_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_HW_MediaEngine_cpp 20 May 2023 00:57:56 -0000 @@ -0,0 +1,46 @@ +Deal with newer FFmpeg API. + +Index: Core/HW/MediaEngine.cpp +--- Core/HW/MediaEngine.cpp.orig ++++ Core/HW/MediaEngine.cpp +@@ -38,6 +38,11 @@ extern "C" { + #include "libavutil/imgutils.h" + #include "libswscale/swscale.h" + ++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 23, 100) ++ // private libavformat api (see demux.h in ffmpeg src tree) ++ void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType type); ++#endif ++ + } + #endif // USE_FFMPEG + +@@ -410,13 +415,19 @@ bool MediaEngine::addVideoStream(int streamNum, int st + #else + stream->request_probe = 0; + #endif ++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 23, 100) ++ avpriv_stream_set_need_parsing(stream, AVSTREAM_PARSE_FULL); ++#else + stream->need_parsing = AVSTREAM_PARSE_FULL; ++#endif + // We could set the width here, but we don't need to. + if (streamNum >= m_expectedVideoStreams) { + ++m_expectedVideoStreams; + } + ++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(57, 33, 100) + m_codecsToClose.push_back(stream->codec); ++#endif + return true; + } + } +@@ -499,7 +510,7 @@ bool MediaEngine::setVideoStream(int streamNum, bool f + + AVStream *stream = m_pFormatCtx->streams[streamNum]; + #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 33, 100) +- AVCodec *pCodec = avcodec_find_decoder(stream->codecpar->codec_id); ++ const AVCodec *pCodec = avcodec_find_decoder(stream->codecpar->codec_id); + if (!pCodec) { + WARN_LOG_REPORT(ME, "Could not find decoder for %d", (int)stream->codecpar->codec_id); + return false; Index: patches/patch-Core_HW_SimpleAudioDec_cpp =================================================================== RCS file: patches/patch-Core_HW_SimpleAudioDec_cpp diff -N patches/patch-Core_HW_SimpleAudioDec_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_HW_SimpleAudioDec_cpp 20 May 2023 00:53:13 -0000 @@ -0,0 +1,13 @@ +Deal with newer FFmpeg API. + +Index: Core/HW/SimpleAudioDec.cpp +--- Core/HW/SimpleAudioDec.cpp.orig ++++ Core/HW/SimpleAudioDec.cpp +@@ -28,6 +28,7 @@ + #ifdef USE_FFMPEG + + extern "C" { ++#include "libavcodec/avcodec.h" + #include "libavformat/avformat.h" + #include "libswresample/swresample.h" + #include "libavutil/samplefmt.h" Index: patches/patch-Core_HW_SimpleAudioDec_h =================================================================== RCS file: patches/patch-Core_HW_SimpleAudioDec_h diff -N patches/patch-Core_HW_SimpleAudioDec_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Core_HW_SimpleAudioDec_h 20 May 2023 00:54:24 -0000 @@ -0,0 +1,14 @@ +Deal with newer FFmpeg API. + +Index: Core/HW/SimpleAudioDec.h +--- Core/HW/SimpleAudioDec.h.orig ++++ Core/HW/SimpleAudioDec.h +@@ -78,7 +78,7 @@ class SimpleAudio { (private) + int wanted_resample_freq; // wanted resampling rate/frequency + + AVFrame *frame_; +- AVCodec *codec_; ++ const AVCodec *codec_; + AVCodecContext *codecCtx_; + SwrContext *swrCtx_; + Index: patches/patch-UI_NativeApp_cpp =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/patches/patch-UI_NativeApp_cpp,v retrieving revision 1.8 diff -u -p -u -p -r1.8 patch-UI_NativeApp_cpp --- patches/patch-UI_NativeApp_cpp 25 Apr 2023 15:33:02 -0000 1.8 +++ patches/patch-UI_NativeApp_cpp 24 May 2023 04:38:26 -0000 @@ -1,17 +1,17 @@ Index: UI/NativeApp.cpp --- UI/NativeApp.cpp.orig +++ UI/NativeApp.cpp -@@ -483,12 +483,7 @@ void NativeInit(int argc, const char *argv[], const ch - VFSRegister("", new DirectoryAssetReader(Path(ASSETS_DIR))); +@@ -445,12 +445,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) -- VFSRegister("", new DirectoryAssetReader(File::GetExeDirectory() / "assets")); -- VFSRegister("", new DirectoryAssetReader(File::GetExeDirectory())); -- VFSRegister("", new DirectoryAssetReader(Path("/usr/local/share/ppsspp/assets"))); -- VFSRegister("", new DirectoryAssetReader(Path("/usr/local/share/games/ppsspp/assets"))); -- VFSRegister("", new DirectoryAssetReader(Path("/usr/share/ppsspp/assets"))); -- VFSRegister("", new DirectoryAssetReader(Path("/usr/share/games/ppsspp/assets"))); -+ VFSRegister("", new DirectoryAssetReader(Path("${PREFIX}/share/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(File::GetExeDirectory() / "assets")); +- g_VFS.Register("", new DirectoryReader(File::GetExeDirectory())); +- g_VFS.Register("", new DirectoryReader(Path("/usr/local/share/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/local/share/games/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/share/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/share/games/ppsspp/assets"))); ++ g_VFS.Register("", new DirectoryReader(Path("${PREFIX}/share/ppsspp/assets"))); #endif #if PPSSPP_PLATFORM(SWITCH) Index: patches/patch-ppsspp_config_h =================================================================== RCS file: patches/patch-ppsspp_config_h diff -N patches/patch-ppsspp_config_h --- patches/patch-ppsspp_config_h 25 Apr 2023 15:33:02 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -Index: ppsspp_config.h ---- ppsspp_config.h.orig -+++ ppsspp_config.h -@@ -97,6 +97,8 @@ - #else - #error "Unknown Apple platform" - #endif -+#elif defined(__OpenBSD__) -+ #define PPSSPP_PLATFORM_OPENBSD 1 - #elif defined(__SWITCH__) - #define PPSSPP_PLATFORM_SWITCH 1 - #elif defined(__ANDROID__) Index: pkg/PLIST =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/pkg/PLIST,v retrieving revision 1.7 diff -u -p -u -p -r1.7 PLIST --- pkg/PLIST 25 Apr 2023 15:33:02 -0000 1.7 +++ pkg/PLIST 20 May 2023 01:29:52 -0000 @@ -116,6 +116,7 @@ share/ppsspp/assets/shaders/aacolor.vsh share/ppsspp/assets/shaders/bloom.fsh share/ppsspp/assets/shaders/cartoon.fsh share/ppsspp/assets/shaders/cartoon.vsh +share/ppsspp/assets/shaders/checkers.fsh share/ppsspp/assets/shaders/colorcorrection.fsh share/ppsspp/assets/shaders/crt.fsh share/ppsspp/assets/shaders/defaultshaders.ini @@ -134,10 +135,8 @@ share/ppsspp/assets/shaders/stereo_sbs.f share/ppsspp/assets/shaders/tex_2xbrz.csh share/ppsspp/assets/shaders/tex_4xbrz.csh share/ppsspp/assets/shaders/tex_mmpx.csh -share/ppsspp/assets/shaders/upscale_catmull_rom.fsh -share/ppsspp/assets/shaders/upscale_catmull_rom.vsh -share/ppsspp/assets/shaders/upscale_mitchell_netravali.fsh -share/ppsspp/assets/shaders/upscale_mitchell_netravali.vsh +share/ppsspp/assets/shaders/upscale_bicubic.fsh +share/ppsspp/assets/shaders/upscale_bicubic.vsh share/ppsspp/assets/shaders/upscale_spline36.fsh share/ppsspp/assets/shaders/upscale_spline36.vsh share/ppsspp/assets/shaders/videoAA.fsh @@ -147,4 +146,20 @@ share/ppsspp/assets/themes/defaultthemes share/ppsspp/assets/ui_atlas.meta share/ppsspp/assets/ui_atlas.zim share/ppsspp/assets/unknown.png +share/ppsspp/assets/vfpu/ +share/ppsspp/assets/vfpu/vfpu_asin_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_asin_lut_deltas.dat +share/ppsspp/assets/vfpu/vfpu_asin_lut_indices.dat +share/ppsspp/assets/vfpu/vfpu_exp2_lut.dat +share/ppsspp/assets/vfpu/vfpu_exp2_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut65536_quadratic.dat +share/ppsspp/assets/vfpu/vfpu_rcp_lut.dat +share/ppsspp/assets/vfpu/vfpu_rsqrt_lut.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut8192.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_delta.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_exceptions.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_interval_delta.dat +share/ppsspp/assets/vfpu/vfpu_sqrt_lut.dat share/ppsspp/assets/zip.png