shadPS4 v0.21.0 adds significant kernel HLE, video decoding, and Rosetta 2 fixes
The shadPS4 v0.21.0 update introduces extensive High-Level Emulation (HLE) for kernel services, improved video decoding, and critical CPU patching workarounds for macOS users.
Summary
The shadPS4 emulator has released version 0.21.0, codenamed 'Until Mavethee Dawn,' featuring a massive expansion of its High-Level Emulation (HLE) capabilities. This update focuses heavily on implementing missing kernel APIs, filesystem behaviors, and networking protocols required for higher game compatibility.
Significant improvements were made to the Video Core and Shader Recompiler, alongside critical CPU patching fixes specifically targeting Rosetta 2 translation issues on macOS. The release also addresses various library stubs for audio, USB storage, and controller input, moving the project closer to a more complete PlayStation 4 software environment.
Technical breakdown of shadPS4 v0.21.0
- Kernel and Filesystem HLE: Implemented numerous POSIX-compliant behaviors including
posix_flock,posix_rename, andposix_select, while adding specific error code handling formkdir,rmdir,open, andunlinkto match guest OS expectations. - macOS and Rosetta 2 Optimization: Introduced critical CPU patches to work around Rosetta 2 mistranslating negated scalar compares and to prevent crashes during
VMASKMOVPS/PDinstructions, including fixes for register clobbering. - Video and Audio Subsystems: Added
libSceVdecCoreHLE and VideoCore server interface callbacks, implementedlibSceMusicPlayerServiceHLE, and improved ATRAC9 header parsing via Ajm. - Video Core and Rendering: Advanced the Video Core Garbage Collector, added support for stencil-only depth targets, and implemented PM4 streamout buffer updates and Type 2/Rewind packet handling in the Constant Engine.
- Input and Peripheral Support: Implemented
scePadReadExtandscePadReadStateExtfor controllers, addedlibSceUsbStorageHLE for virtual USB media access, and corrected DualShock 4 touchpad height reporting.
Why it matters
This release significantly advances the technical maturity of the shadPS4 project, particularly for users running the emulator on macOS via Rosetta 2. The extensive implementation of kernel and filesystem APIs reduces the likelihood of crashes and hangs in complex titles, providing a more stable foundation for future PlayStation 4 software emulation on Linux and desktop platforms.
What to do
- Update shadPS4 to version 0.21.0.
Original reference: github.com →