diff --git a/emulators/ppsspp/Makefile b/emulators/ppsspp/Makefile index ef4491600be..eb2e8a6e3e4 100644 --- a/emulators/ppsspp/Makefile +++ b/emulators/ppsspp/Makefile @@ -4,8 +4,7 @@ NOT_FOR_ARCHS = ${BE_ARCHS} COMMENT = Sony PlayStation Portable emulator DISTNAME = ppsspp-$V -V = 1.17.1 -REVISION = 2 +V = 1.18.1 SITES = https://github.com/hrydgard/ppsspp/releases/download/v$V/ diff --git a/emulators/ppsspp/distinfo b/emulators/ppsspp/distinfo index 227b1897f3e..aeceb0ffe06 100644 --- a/emulators/ppsspp/distinfo +++ b/emulators/ppsspp/distinfo @@ -1,2 +1,2 @@ -SHA256 (ppsspp-1.17.1.tar.xz) = I+C4ZJzIEksMIqYtTUG1kra9QGS86MCbDUq86JXhMq4= -SIZE (ppsspp-1.17.1.tar.xz) = 54663108 +SHA256 (ppsspp-1.18.1.tar.xz) = eMXRfwlEPX6kUPzp/cBYG1IM8gbEIJXdhV6Uvi4Jvc8= +SIZE (ppsspp-1.18.1.tar.xz) = 54239412 diff --git a/emulators/ppsspp/patches/patch-CMakeLists_txt b/emulators/ppsspp/patches/patch-CMakeLists_txt index 5423724d6b2..ded7ab0bb9d 100644 --- a/emulators/ppsspp/patches/patch-CMakeLists_txt +++ b/emulators/ppsspp/patches/patch-CMakeLists_txt @@ -1,25 +1,10 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 -- ffmpeg: Fix the HAVE_LIBAVCODEC_CONST_AVCODEC test - 43b7ca6908c3d33be7a1b6eac4aede49d0541833 -- Minor CMake fix - 457924128195116216da81a3493b9db8f399807f - - Honor CFLAGS and DEBUG - Use system libpng on arm platforms Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -117,6 +117,7 @@ if(NOT IOS) - endif() - - include(ccache) -+include(CheckCXXSourceCompiles) - include(GNUInstallDirs) - - add_definitions(-DASSETS_DIR="${CMAKE_INSTALL_FULL_DATADIR}/ppsspp/assets/") -@@ -385,13 +386,13 @@ if(NOT MSVC) +@@ -423,13 +423,13 @@ if(NOT MSVC) endif() endif() @@ -37,32 +22,7 @@ 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) -@@ -949,6 +950,24 @@ if(USE_FFMPEG) - endif() - - find_package(FFmpeg REQUIRED avcodec avformat avutil swresample swscale) -+ # Check if we need to use avcodec_(alloc|free)_frame instead of av_frame_(alloc|free) -+ # Check if we need to use const AVCodec -+ set(CMAKE_REQUIRED_INCLUDES ${FFmpeg_INCLUDE_avcodec};${FFmpeg_INCLUDE_avformat}) -+ set(CMAKE_REQUIRED_LIBRARIES FFmpeg::avcodec;FFmpeg::avformat) -+ set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable") -+ check_cxx_source_compiles("extern \"C\" { -+ #include -+ #include -+ } -+ static AVCodecContext *s_codec_context = NULL; -+ int main() { -+ const AVCodec *codec = avcodec_find_encoder(s_codec_context->codec_id); -+ return 0; -+ } -+ " HAVE_LIBAVCODEC_CONST_AVCODEC FAIL_REGEX "invalid conversion") -+ -+ # Check if we need to use avcodec_alloc_context3 instead of stream->codec -+ # Check if we need to use av_frame_get_buffer instead of avcodec_default_get_buffer - endif(USE_FFMPEG) - - find_package(ZLIB) -@@ -1147,7 +1166,7 @@ else() +@@ -1206,7 +1206,7 @@ else() endif() # Arm platforms require at least libpng17. @@ -71,24 +31,3 @@ Index: CMakeLists.txt set(PNG_REQUIRED_VERSION 1.7) else() set(PNG_REQUIRED_VERSION 1.6) -@@ -2020,6 +2039,7 @@ add_library(${CoreLibName} ${CoreLinkType} - Core/ELF/PrxDecrypter.h - Core/ELF/ParamSFO.cpp - Core/ELF/ParamSFO.h -+ Core/FFMPEGCompat.h - Core/FileSystems/tlzrc.cpp - Core/FileSystems/BlobFileSystem.cpp - Core/FileSystems/BlobFileSystem.h -@@ -2354,8 +2374,11 @@ target_compile_features(${CoreLibName} PUBLIC cxx_std_ - - if(FFmpeg_FOUND) - target_compile_definitions(${CoreLibName} PRIVATE USE_FFMPEG=1) -+ if (HAVE_LIBAVCODEC_CONST_AVCODEC) -+ target_compile_definitions(${CoreLibName} PRIVATE HAVE_LIBAVCODEC_CONST_AVCODEC=1) -+ endif() - set_target_properties(${CoreLibName} PROPERTIES NO_SYSTEM_FROM_IMPORTED true) -- target_include_directories(${CoreLibName} BEFORE PUBLIC ${FFmpeg_INCLUDE_avcodec}) -+ target_include_directories(${CoreLibName} BEFORE PUBLIC ${FFmpeg_INCLUDE_avcodec} ${FFmpeg_INCLUDE_avformat}) - target_link_libraries(${CoreLibName} - FFmpeg::avcodec - FFmpeg::avformat diff --git a/emulators/ppsspp/patches/patch-Common_RiscVCPUDetect_cpp b/emulators/ppsspp/patches/patch-Common_RiscVCPUDetect_cpp deleted file mode 100644 index aa6f253683e..00000000000 --- a/emulators/ppsspp/patches/patch-Common_RiscVCPUDetect_cpp +++ /dev/null @@ -1,37 +0,0 @@ -Unbreak on riscv64, we don't have sys/auxv.h or getauxval(). - -OpenBSD/riscv64 assumes RV64GC, aka RV64IMAFDC. -Our kernel provides no support for the V extension. - -Index: Common/RiscVCPUDetect.cpp ---- Common/RiscVCPUDetect.cpp.orig -+++ Common/RiscVCPUDetect.cpp -@@ -27,7 +27,6 @@ - #include - #include - #include --#include - #include - #include "Common/Common.h" - #include "Common/CPUDetect.h" -@@ -201,13 +200,13 @@ void CPUInfo::Detect() - } - #endif - -- unsigned long hwcap = getauxval(AT_HWCAP); -- RiscV_M = ExtensionSupported(hwcap, 'M'); -- RiscV_A = ExtensionSupported(hwcap, 'A'); -- RiscV_F = ExtensionSupported(hwcap, 'F'); -- RiscV_D = ExtensionSupported(hwcap, 'D'); -- RiscV_C = ExtensionSupported(hwcap, 'C'); -- RiscV_V = ExtensionSupported(hwcap, 'V'); -+ /* OpenBSD uses rv64gc */ -+ RiscV_M = true; -+ RiscV_A = true; -+ RiscV_F = true; -+ RiscV_D = true; -+ RiscV_C = true; -+ RiscV_V = false; - // We assume as in RVA20U64 that F means Zicsr is available. - RiscV_Zicsr = RiscV_F; - diff --git a/emulators/ppsspp/patches/patch-Core_AVIDump_cpp b/emulators/ppsspp/patches/patch-Core_AVIDump_cpp deleted file mode 100644 index 6a25be6da3a..00000000000 --- a/emulators/ppsspp/patches/patch-Core_AVIDump_cpp +++ /dev/null @@ -1,17 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/AVIDump.cpp ---- Core/AVIDump.cpp.orig -+++ Core/AVIDump.cpp -@@ -45,9 +45,7 @@ extern "C" { - #define av_frame_free avcodec_free_frame - #endif - --#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) --#define AVCodec const AVCodec --#endif -+#include "FFMPEGCompat.h" - - static AVFormatContext *s_format_context = nullptr; - static AVCodecContext *s_codec_context = nullptr; diff --git a/emulators/ppsspp/patches/patch-Core_FFMPEGCompat_h b/emulators/ppsspp/patches/patch-Core_FFMPEGCompat_h deleted file mode 100644 index 22fb4baebfa..00000000000 --- a/emulators/ppsspp/patches/patch-Core_FFMPEGCompat_h +++ /dev/null @@ -1,15 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/FFMPEGCompat.h ---- Core/FFMPEGCompat.h.orig -+++ Core/FFMPEGCompat.h -@@ -0,0 +1,8 @@ -+#ifndef FFMPEG_COMPAT_H -+#define FFMPEG_COMPAT_H -+ -+#ifdef HAVE_LIBAVCODEC_CONST_AVCODEC -+#define AVCodec const AVCodec -+#endif -+ -+#endif // FFMPEG_COMPAT_H diff --git a/emulators/ppsspp/patches/patch-Core_HLE_sceAtrac_cpp b/emulators/ppsspp/patches/patch-Core_HLE_sceAtrac_cpp deleted file mode 100644 index c2735963c35..00000000000 --- a/emulators/ppsspp/patches/patch-Core_HLE_sceAtrac_cpp +++ /dev/null @@ -1,18 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/HLE/sceAtrac.cpp ---- Core/HLE/sceAtrac.cpp.orig -+++ Core/HLE/sceAtrac.cpp -@@ -129,10 +129,7 @@ extern "C" { - #include "libavcodec/avcodec.h" - #include "libavutil/version.h" - } -- --#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) --#define AVCodec const AVCodec --#endif -+#include "Core/FFMPEGCompat.h" - - #endif // USE_FFMPEG - diff --git a/emulators/ppsspp/patches/patch-Core_HLE_sceMpeg_cpp b/emulators/ppsspp/patches/patch-Core_HLE_sceMpeg_cpp deleted file mode 100644 index 01dcc1dccd3..00000000000 --- a/emulators/ppsspp/patches/patch-Core_HLE_sceMpeg_cpp +++ /dev/null @@ -1,17 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/HLE/sceMpeg.cpp ---- Core/HLE/sceMpeg.cpp.orig -+++ Core/HLE/sceMpeg.cpp -@@ -113,9 +113,7 @@ extern "C" { - #include "libswscale/swscale.h" - #include "libavcodec/avcodec.h" - } --#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) --#define AVCodec const AVCodec --#endif -+#include "Core/FFMPEGCompat.h" - static AVPixelFormat pmp_want_pix_fmt; - - #endif diff --git a/emulators/ppsspp/patches/patch-Core_HW_MediaEngine_cpp b/emulators/ppsspp/patches/patch-Core_HW_MediaEngine_cpp deleted file mode 100644 index 8af02e7eadb..00000000000 --- a/emulators/ppsspp/patches/patch-Core_HW_MediaEngine_cpp +++ /dev/null @@ -1,17 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/HW/MediaEngine.cpp ---- Core/HW/MediaEngine.cpp.orig -+++ Core/HW/MediaEngine.cpp -@@ -56,9 +56,7 @@ extern "C" { - - #ifdef USE_FFMPEG - --#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) --#define AVCodec const AVCodec --#endif -+#include "Core/FFMPEGCompat.h" - - static AVPixelFormat getSwsFormat(int pspFormat) - { diff --git a/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_cpp b/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_cpp deleted file mode 100644 index 8f43bbc7302..00000000000 --- a/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_cpp +++ /dev/null @@ -1,14 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/HW/SimpleAudioDec.cpp ---- Core/HW/SimpleAudioDec.cpp.orig -+++ Core/HW/SimpleAudioDec.cpp -@@ -33,6 +33,7 @@ extern "C" { - #include "libavutil/samplefmt.h" - #include "libavcodec/avcodec.h" - } -+#include "Core/FFMPEGCompat.h" - - #endif // USE_FFMPEG - diff --git a/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_h b/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_h deleted file mode 100644 index 999292bf6e6..00000000000 --- a/emulators/ppsspp/patches/patch-Core_HW_SimpleAudioDec_h +++ /dev/null @@ -1,29 +0,0 @@ -- ffmpeg: Improved fix for checking if const AVCodec* is necessary - 930b7f644d74c74d9e58bf8e5300bf9ea9fb78a9 - -Index: Core/HW/SimpleAudioDec.h ---- Core/HW/SimpleAudioDec.h.orig -+++ Core/HW/SimpleAudioDec.h -@@ -33,12 +33,8 @@ extern "C" { - #include "libavutil/version.h" - }; - --#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) --#define AVCodec const AVCodec - #endif - --#endif -- - // Wraps FFMPEG for audio decoding in a nice interface. - // Decodes packet by packet - does NOT demux. - -@@ -90,6 +86,9 @@ class SimpleAudio { (private) - int wanted_resample_freq; // wanted resampling rate/frequency - - AVFrame *frame_; -+#if HAVE_LIBAVCODEC_CONST_AVCODEC // USE_FFMPEG is implied -+ const -+#endif - AVCodec *codec_; - AVCodecContext *codecCtx_; - SwrContext *swrCtx_; diff --git a/emulators/ppsspp/pkg/PLIST b/emulators/ppsspp/pkg/PLIST index 32e35a5e7af..e49e500cd29 100644 --- a/emulators/ppsspp/pkg/PLIST +++ b/emulators/ppsspp/pkg/PLIST @@ -84,6 +84,7 @@ share/ppsspp/assets/lang/it_IT.ini share/ppsspp/assets/lang/ja_JP.ini share/ppsspp/assets/lang/jv_ID.ini share/ppsspp/assets/lang/ko_KR.ini +share/ppsspp/assets/lang/ku_SO.ini share/ppsspp/assets/lang/lo_LA.ini share/ppsspp/assets/lang/lt-LT.ini share/ppsspp/assets/lang/ms_MY.ini @@ -107,8 +108,10 @@ share/ppsspp/assets/logo.png share/ppsspp/assets/ppge_atlas.meta share/ppsspp/assets/ppge_atlas.zim share/ppsspp/assets/rargray.png +share/ppsspp/assets/sfx_achievement_unlocked.wav share/ppsspp/assets/sfx_back.wav share/ppsspp/assets/sfx_confirm.wav +share/ppsspp/assets/sfx_leaderbord_submitted.wav share/ppsspp/assets/sfx_select.wav share/ppsspp/assets/sfx_toggle_off.wav share/ppsspp/assets/sfx_toggle_on.wav @@ -147,12 +150,17 @@ share/ppsspp/assets/shaders/tex_4xbrz.csh share/ppsspp/assets/shaders/tex_mmpx.csh share/ppsspp/assets/shaders/upscale_bicubic.fsh share/ppsspp/assets/shaders/upscale_bicubic.vsh +share/ppsspp/assets/shaders/upscale_sharp_bilinear.fsh +share/ppsspp/assets/shaders/upscale_sharp_bilinear.vsh share/ppsspp/assets/shaders/upscale_spline36.fsh share/ppsspp/assets/shaders/upscale_spline36.vsh 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/defaultthemes.ini +share/ppsspp/assets/themes/slateforest.ini +share/ppsspp/assets/themes/vinewood.ini share/ppsspp/assets/ui_atlas.meta share/ppsspp/assets/ui_atlas.zim share/ppsspp/assets/unknown.png