PPSSPP 1.16 is out!
PPSSPP 1.16 - release announcement and progress report
PPSSPP 1.16 is now out! Get it on the download page!
PPSSPP 1.16.1-6 were also released, with some important hang and crash fixes.
For fine details, see the detailed changelog below.
Please note that as usual, the Android version on Google Play will as usual roll out slowly over multiple days in order to catch any bad crashes early, so you may have to wait a few days before you receive the update.
RetroAchievements support
RetroAchievements is a long-running project to add "achievements", similar to Xbox Achievements or Playstation Trophies, to game for old video game consoles, in order to add extra challenges and improve replayability, and also making the whole experience feel a bit more modern.
In 1.16, PPSSPP adds full support for RetroAchievements. On the System tab in settings, you can now click RetroAchievements to reach a dialog where you can log in to your RA account. You can't register the account directly from within PPSSPP though, as it's an external service.
RetroAchievements has a very passionate community and is getting more and more popular. Unfortunately, achievement definitions are not yet available for all games, and on the PSP they're often only available for a single regional version of a game, so watch out for that if you want to try it. To check, on the RetroAchievements website when browsing games, you can check the "Supported Game Files" link on a game's page to see which UMD you'll need to acquire and dump.
Important fixes in 1.16
- A lot of people on Android 13 devices ended up in a situation where the choose-a-folder dialog during set up didn't work correctly. This has been fixed.
- Multiple input event handling fixes, should help with external joysticks
- Perf improvements on lower end devices by disabling ubershaders
- Multiple fixes for glitches like flicker in WWE vs Smackdown 2006, shadows in Motorstorm, etc.
- Lots of additional performance improvements and fixes
- Multiple bugfixes around texture replacement, fixing Tactics Ogre fonts among other things
New JIT backends by [Unknown]
A background development that most people won't notice yet, but will have long-term performance benefits in addition to compatibility with more CPU architectures, is the addition of new IR-based JIT compiler backends.
PPSSPP has long supported recompiling the PSP's MIPS code to an easier-to-interpret intermediate representation which we call IR, in order to speed up platforms where we can't always JIT-compile like iOS. This IR is not only easier for the CPU to interpret than raw MIPS instructions, but can also easily be processed through optimization passes, which can thus be general across architectures.
We've long had a plan to eventually try to compile the IR to native code, which would gain the benefit of general optimization passes, while still producing really fast native code. When starting his RISC-V backend, [Unknown] chose to use this approach, and then proceeded to write x86/x86-64 and ARM64 backends, too. Currently, these are at parity or a bit faster than the existing JITs, but much less tested which is why they're not yet selectable in the UI.
Correct emulation of vrnd by fp64
fp64 has been working on trying to reverse engineer accurate implementations of some of the more obscure math instructions of the PSP's VFPU, a custom little SIMD coprocessor. Previously he solved sin/cos/sqrt among others, now the turn came to the vrnd instruction. Surprisingly it seems to consist of a mix of multiple traditional random number generators. Some details can be found in this issue on github.
Detailed changelog
What's new in 1.16.6
- Fix performance issue with Vulkan descriptor set allocation (#18332)
- Smoother loading of replacement textures
- Fix the store on iOS (#18323)
- Fix problem with waves background (#18310)
- Some translation updates
- Other minor fixes
What's new in 1.16.5
- Fix for crash when changing render backend in-game
What's new in 1.16.4
- Simplify shader cache lookups on Vulkan, hopefully fixing some crashes (#18218)
- Assorted improvements to the IR JITs (#18228, #18235, #18211, more)
- Other crash and stability fixes (#18221, #18220, #18230, #18216)
- Some translation updates (#18237, more)
- Cleanups and assert fixes (#18205, #18201, #18206)
What's new in 1.16.3
- Fix crash bug and performance issue in Vulkan shader cache (#18183, #18189)
- Fix crash in icon loading in homebrew store (#18185)
- Add some memory safety check (#18184, #18194)
- Fix problem when changing backend from the Windows menu (#18182)
What's new in 1.16.2
- Fix for HTTP support on Linux on networks with shaky or incomplete IPv6 support
- Fix hang when switching UMD with RetroAchievements enabled (#18143)
- Assorted fixes for leaks and crashes (#18169, #18151)
- Fix hang when switching UMD with RetroAchievements enabled (#18143)
- Fix math bug in new IR JIT for x86 (#18165)
- Minor math optimization
-fno-math-errno(#18158) - Fix for software renderer crash
What's new in 1.16.1
- Moved RetroAchievements to the Tools tab in settings (#18127)
- Fix graphics regressions in Hot Shots Golf 2 / Everybody's Golf 2 and Final Fantasy Tactics (#18142)
- Fix hang on startup with OpenGL, that happened often if "buffer commands" was set to off.
- Fix problem with the sc instruction that broke Beats (#18133, #18140)
- Fix problem with the chat window accidentally closing on typing X (#18135)
- Fix some crashes, add some asserts and reporting hooks (#18129)
- Fix some text rendering in the software renderer (#18126)
What's new in 1.16
Special thanks to [Unknown] for the new JIT compilers, and fp64 for finally cracking the vrnd instruction.
RetroAchievements support (#17589, #17631, many more). See RetroAchievements on ppsspp.org.
New JIT backends:
- RISC-V, based on IR
- x86 JIT based on IR. Often faster than the existing one.
Input fixes
Rendering performance and fixes
- Fix flicker in WWE Smackdown vs Raw 2006 (#18009), video flicker in Naruto 2 (#18008)
- Fix bad colors in Syphon Filter: Logan's Shadow menu (#17965)
- On lower-end devices, avoid "uber" shaders due to performance and driver bugs (#17449, #17922)
- Allow disabling V-sync on Android with Vulkan, more SDL platforms (#17903, #18087)
- On Vulkan, reduce input lag when "Buffer graphics commands" is set to off (#17831)
- Assorted minor perf (#17810, #17505, #17478, #17471, #17452, #17446, #17442)
- Fix shadows in MotorStorm (#17602) (not actually a rendering problem)
- Fix rendering issue in Lunar Silver Star (#17451)
- Add a cache for MakePixelsTexture, improving perf in God of War (#17534)
- Lots of software renderer improvements (#17571, #17569, #17619, #17621, #17618, #17609, ...)
Networking
Texture replacement fixes
UI changes
Cheats
- Fix loading cheat dbs on Android devices with scoped storage (#17834)
VR (Quest, other Android VR devices)
Other
- Fix horrible audio glitch in After Burner (#18076)
- Emulate the vrnd instruction accurately (#17506, #17549)
- Fix timing issue causing slowdowns in MLB games (#17676, #17677)
- UWP keyboard support, many other updates (#17952, #17974)
- Allow choosing the display resolution on Android again (#17473)
- Fix issue running some file types out of the Download folder on Android (#17466)