PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++ - Release shadps4 v0.17.0 - codename Garbage Collector’s Edition · shadps4-emu/shadPS4

shadPS4 v0.17.0

Welcome to another big release of shadPS4. This release is the first to introduce shadnet support, which although still doesn’t offer much it allows to post your online scores and share them with other players. Still you can’t play multiplayer games but we are working towards to make it possible one day. Another big update is ZArchive support. Forget the 20.000 files per game you can now use ZArchive files for compressing games and having them in 1 file instead of hundreds. KosmicKrisp has also landed in the world of macOS giving much better compatibility and speed to macOS users. There are several other fixes let’s cover the most important below
Highlights
Online stuff

ShadNet, our own networking backend, is now integrated for the first time  
Most of the matchmaking library is implemented — lobbies, rooms, joining, signaling  
Friends support. Make your online friends in shadnet  
Invitation dialog  
Your name now switches to your Online ID once you're connected  
NP Manager got new settings and general cleanup  
Web API layer grew a lot: new library implemented, multipart uploads, push events  
NP Commerce  
Trophy handling tidied up

Mouse support

sceMouse is emulated now, so the handful of games that supported a USB mouse are playable with one  
Plus a bunch of follow-up fixes for opening, closing, and games that check whether a mouse is even plugged in

AvPlayer, video & audio

AvPlayer got a serious cleanup: audio/video sync, startup races, stack usage, frame sizes, buffer handling  
Video decoder flush behaviour fixed  
Audio3D mix queue reworked  
AT9 no longer crashes from reading past the end of its data  
AT9 encoder now runs natively  
OpenAL fixes and NGS2 fixes

Graphics

NVIDIA clip distance emulation  
T# min_lod implemented through VK_EXT_image_view_min_lod  
Depth write state is now respected for register clears  
Robustness2 is now required, allowing the null buffer/image workarounds to be removed  
Sampler garbage collection added to the texture cache  
Texture cache: image download handling refactored  
sRGB handling for BC formats refactored  
Buffer barriers for compute-written vertex/index buffers and indirect dispatch/draw buffers  
Assorted validation errors fixed and miscellaneous renderer fixes  
Shader cache invalidation caused by struct padding in memcmp fixed

Shader recompiler

GCN thread mask accuracy fix  
Vertex attributes are always specialised on number class  
Geometry shader vertex offsets initialised from the input primitive type  
V_ADD_I32 carry-out propagation, V_LOG_CLAMP_F32, V_PK_MUL_LO_U16 fix  
IREmitter atomic operation corrected from And to Or

Kernel, memory & core

Filesystem abstraction layer  
File reads now go through an intermediate buffer before being copied to guest memory  
PthreadOnce uses pthread primitives instead of std::mutex  
TLS leak on non-primary threads fixed  
Code patches for cmp and xor instructions involving the TCB  
sceKernelAllocateDirectMemory now honours search_end  
Fixed mappings with a zero address on older games is now handled properly  
HLE libraries are no longer loaded when force-LLE is set  
Unresolved objects are no longer auto-stubbed  
Null dereference fixes in save data mount checks  
Memory patch fixes, with hex exception handling  
LLE malloc init, fixing issues with LLE fonts and allowing more LLE libs to run

Input & peripherals

Pad state latency reduced for single-sample reads  
Users are no longer logged out when a pad disconnects  
Controller colours reset on shutdown  
Fixes to Camera support

Interface & quality of life

Fullscreen startup behaviour polished  
The window icon is now set to the game's icon  
Big Picture UI settings improved  
Shader list, memory map and module list widget states are saved, duplicate shader dump windows prevented  
New shadPS4 log with a logging refactor, an option to flush the log  
MS_VC_EXCEPTION is now passed through to the handler on Windows  
Trophy fixes and an auto-generated PathType::TrophyDir  
NP checks moved into sceNpTrophyRegisterContext  
Improvements to the in-app bug report flow