Download raw body.
UPDATE: ppsspp 1.17.1
Here is an update to ppsspp 1.17.1.
What's new in 1.17.1
--------------------
- Fixed green rendering errors on some PowerVR GPUs ([#18781])
- Release all held keys on pause to avoid "stuck keys" after unpausing or in run-behind-pause ([#18786])
- UI fixes ([#18785])
- Update libchdr with zstd support, warn the user about bad CHDs ([#18824], [#18803])
- Add workaround for AdHoc mode in Resistance ([#18821])
- Fix graphics in Tokimeki Memorial 4 ([#18822])
- Fix crash in UFC 2010 on Mali GPUs ([#18813])
- Temporarily disable MSAA on Adreno GPUs due to crashing ([#18819])
- Fixed some crashes and optimized the game metadata cache ([#18794], [#18775])
- Additional crashfixes and similar ([#18777], [#18779], [#18823])
- Fixed playback of frame dumps with Vulkan ([#18793])
- Volume slider added for RetroAchievements sounds ([#18772])
What's new in 1.17
------------------
- Rendering performance and fixes
- Fix for very old rendering issue in Tokimeki Memorial 4 ([#18650]) (didn't quite work, see 1.17.1)
- Performance improvement in Tactics Ogre by avoiding a readback ([#18599])
- Cull small draws that are quick to check that they are offscreen ([#18446])
- Assorted optimizations ([#18586], [#18573], [#18476], [#18413], [#18416], [#18219])
- Fix HUD in Tiger Woods 06 ([#18554])
- Adrenotools support added - you can now load custom Vulkan drivers on Adreno ([#18532], [#18548], [#18699])
- Fix rendering with bad Z parameters, fixes homebrew Zig example ([#18535])
- Fix Z problem in Hayate no Gotoku!! Nightmare Paradise [#18478]
- Fix frozen pitch meters in MLB games ([#18484])
- Enable MSAA on modern mobile devices (Vulkan-only) ([#18472])
- Fix video flicker in Naruto: Ultimate Ninja Heroes 2 ([#18454])
- UI
- Track total time played per game ([#18442])
- When opening the pause menu, there's now an option to keep the game running behind the menu.
This is enforced in multiplayer to avoid inadvertent desyncs ([#18517], [#18515])
- ISO loading improvements
- The CHD file format is now fully supported (use `chdman createdvd`!), including with Remote ISO and Retroachievements
- Improvements to [remote ISO](https://www.ppsspp.org/docs/reference/disc-streaming/): optional tab on home screen, can now share whole folders ([#18627], [#18639], [#18640], [#18631], [#18632], [#18633],)
- Controller and touchscreen fixes
- More control bindings, organize into categories ([#18635], [#18589])
- Fix inverse deadzone (low end) for joystick input
- Fix analog deadzones for XInput controllers ([#18407])
- Improved tilt control further ([#18533])
- Mouse input supported on Android ([#18551], [#18473])
- Customizable threshold for analog-trigger to button-press mapping, customizable delay for mouse-scroll key-up ([#18621], [#18585])
- Make it work better to bind an analog stick to four buttons, useful for camera control in some games
- Can now unpause with the key you bound to pause ([#18591])
- Other fixes and updates
- More work on the IR JITs ([#18234], [#18235], [#18228], [#18227], [#18226], many more)
- Moving the memstick directory on Android is now faster and safer [#18744]
- Workaround problems in Add Doko Demo Issho, Driver 76, Harukanaru Toki no Naka, Ace Combat by slowing down the emulated UMD drive to match reality better ([#18436], [#18445])
- VR: Quest 3 rendering issues fixed ([#18677])
- Various bugfixes in texture replacement ([#18638], [#18610], [#18519], [#18466], [#18747])
- RetroAchievements: Rich presence, renamed Challenge Mode back to the recommended Hardcore Mode, various error handling improvements, configure per game ([#18468], [#18651], [#18488], [#18428], [#18425])
- HLE: Slice large-and-slow memcpy/memset operations, can help with some stalls. ([#18560])
- Other various minor fixes and optimizations ([#18558], [#18555], [#18538], [#18529], [#18450], [#18314], [#18233], [#18678], [#18749], [#18736], [#18704])
- SoftGPU fixes ([#18362])
- Fixed international fonts on Steam Deck ([#18732], [#18734])
- GoExplore (GPS app) now starts up and allows navigation ([#18665], [#18666], [#18668], [#18669])
- SDL: Improve input latency in Vulkan mode by running rendering on a separate thread ([#18268])
- Assorted multiplayer fixes ([#18435])
- Support for emulating the infrared port of the original PSP through sceSircs ([#18684])
Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/Makefile,v
retrieving revision 1.25
diff -u -p -u -p -r1.25 Makefile
--- Makefile 16 Oct 2023 10:23:45 -0000 1.25
+++ Makefile 18 Apr 2024 06:39:32 -0000
@@ -4,7 +4,7 @@ NOT_FOR_ARCHS = ${BE_ARCHS}
COMMENT = Sony PlayStation Portable emulator
DISTNAME = ppsspp-$V
-V = 1.16.6
+V = 1.17.1
SITES = https://github.com/hrydgard/ppsspp/releases/download/v$V/
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/distinfo,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 distinfo
--- distinfo 16 Oct 2023 10:23:45 -0000 1.13
+++ distinfo 18 Apr 2024 06:39:32 -0000
@@ -1,2 +1,2 @@
-SHA256 (ppsspp-1.16.6.tar.xz) = l4JGixdavInlNlpz2ISNZg45tZbsjaAjiq2XfInPURY=
-SIZE (ppsspp-1.16.6.tar.xz) = 51439288
+SHA256 (ppsspp-1.17.1.tar.xz) = I+C4ZJzIEksMIqYtTUG1kra9QGS86MCbDUq86JXhMq4=
+SIZE (ppsspp-1.17.1.tar.xz) = 54663108
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/patches/patch-CMakeLists_txt,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt 19 Dec 2023 14:56:45 -0000 1.14
+++ patches/patch-CMakeLists_txt 18 Apr 2024 06:39:32 -0000
@@ -22,7 +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)
-@@ -1134,7 +1134,7 @@ else()
+@@ -1147,7 +1147,7 @@ else()
endif()
# Arm platforms require at least libpng17.
Index: patches/patch-Core_AVIDump_cpp
===================================================================
RCS file: patches/patch-Core_AVIDump_cpp
diff -N patches/patch-Core_AVIDump_cpp
--- patches/patch-Core_AVIDump_cpp 18 Jun 2023 21:14:58 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-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_sceAtrac_cpp
===================================================================
RCS file: patches/patch-Core_HLE_sceAtrac_cpp
diff -N patches/patch-Core_HLE_sceAtrac_cpp
--- patches/patch-Core_HLE_sceAtrac_cpp 18 Jun 2023 21:14:58 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-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
--- patches/patch-Core_HLE_sceMpeg_cpp 19 Dec 2023 14:56:45 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-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"
-@@ -802,7 +803,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_HW_MediaEngine_cpp
===================================================================
RCS file: patches/patch-Core_HW_MediaEngine_cpp
diff -N patches/patch-Core_HW_MediaEngine_cpp
--- patches/patch-Core_HW_MediaEngine_cpp 18 Jun 2023 21:14:58 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-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
--- patches/patch-Core_HW_SimpleAudioDec_cpp 18 Jun 2023 21:14:58 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-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
--- patches/patch-Core_HW_SimpleAudioDec_h 18 Jun 2023 21:14:58 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-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: /cvs/ports/emulators/ppsspp/patches/patch-UI_NativeApp_cpp,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 patch-UI_NativeApp_cpp
--- patches/patch-UI_NativeApp_cpp 17 Sep 2023 08:40:29 -0000 1.11
+++ patches/patch-UI_NativeApp_cpp 18 Apr 2024 06:39:32 -0000
@@ -1,7 +1,7 @@
Index: UI/NativeApp.cpp
--- UI/NativeApp.cpp.orig
+++ UI/NativeApp.cpp
-@@ -416,12 +416,7 @@ void NativeInit(int argc, const char *argv[], const ch
+@@ -386,12 +386,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: pkg/PLIST
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/pkg/PLIST,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 PLIST
--- pkg/PLIST 16 Sep 2023 21:02:04 -0000 1.9
+++ pkg/PLIST 18 Apr 2024 06:39:32 -0000
@@ -99,6 +99,7 @@ share/ppsspp/assets/mime/ppsspp.xml
share/ppsspp/assets/ppge_atlas.meta
share/ppsspp/assets/ppge_atlas.zim
share/ppsspp/assets/rargray.png
+share/ppsspp/assets/redump.csv
share/ppsspp/assets/sfx_achievement_unlocked.wav
share/ppsspp/assets/sfx_back.wav
share/ppsspp/assets/sfx_confirm.wav
UPDATE: ppsspp 1.17.1