# shadPS4 patch notes > An early PlayStation 4 emulator for Windows, Linux and macOS. - Vendor: shadPS4 - Category: Games - Platforms: Desktop - Official site: https://shadps4.net - Tracked by: What's New (https://whatsnew.fyi/product/shadps4) - Harvested from: GitHub (shadps4-emu/shadPS4) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### Pre-release-shadPS4-2026-08-08-c5ae3c681276bd884b9b714c2099d55796c36154 — Pre-release-shadPS4-2026-08-08-c5ae3c6 - Date: 2026-08-08 - Version: Pre-release-shadPS4-2026-08-08-c5ae3c681276bd884b9b714c2099d55796c36154 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/Pre-release-shadPS4-2026-08-08-c5ae3c681276bd884b9b714c2099d55796c36154 - Permalink: https://whatsnew.fyi/product/shadps4/releases/pre-release-shadps4-2026-08-08-c5ae3c681276bd884b9b714c2099d - Labels: Pre-release; Platforms: Desktop Full Changelog: [v.0.17.0...c5ae3c6](https://github.com/shadps4-emu/shadPS4/compare/v.0.17.0...c5ae3c681276bd884b9b714c2099d55796c36154) ### v.0.17.0 — shadps4 v0.17.0 - codename Garbage Collector's Edition - Date: 2026-07-30 - Version: v.0.17.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.17.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.17.0 - Labels: Platforms: Desktop - **added** — ShadNet networking backend integration for posting online scores and sharing with other players - **added** — ZArchive support for compressing games into single files instead of hundreds of individual files - **added** — Mouse emulation through sceMouse for USB mouse support in games - **added** — Friends support in ShadNet with invitation dialog - **added** — Sampler garbage collection in the texture cache - **added** — Filesystem abstraction layer - **changed** — macOS compatibility and speed improvements through KosmicKrisp - **changed** — Online ID now displayed instead of user name when connected to ShadNet - **changed** — NP Manager settings and general cleanup - **changed** — Web API layer expanded with new library, multipart uploads, and push events - **changed** — AvPlayer refactored for audio/video sync, startup races, stack usage, frame sizes, and buffer handling - **changed** — Audio3D mix queue reworked - **changed** — AT9 encoder now runs natively - **changed** — Robustness2 now required, removing null buffer/image workarounds - **changed** — File reads now go through intermediate buffer before copying to guest memory - **changed** — PthreadOnce uses pthread primitives instead of std::mutex - **changed** — Pad state latency reduced for single-sample reads - **changed** — Shader list, memory map and module list widget states are now saved - **fixed** — Video decoder flush behaviour - **fixed** — AT9 no longer crashes from reading past end of data - **fixed** — OpenAL and NGS2 issues - **fixed** — NVIDIA clip distance emulation - **fixed** — Depth write state now respected for register clears - **fixed** — Texture cache image download handling - **fixed** — sRGB handling for BC formats - **fixed** — Shader cache invalidation caused by struct padding in memcmp - **fixed** — GCN thread mask accuracy - **fixed** — Vertex attributes always specialised on number class - **fixed** — Geometry shader vertex offsets initialised from input primitive type - **fixed** — V_ADD_I32 carry-out propagation, V_LOG_CLAMP_F32, V_PK_MUL_LO_U16 - **fixed** — IREmitter atomic operation corrected from And to Or - **fixed** — TLS leak on non-primary threads - **fixed** — sceKernelAllocateDirectMemory now honours search_end - **fixed** — Mappings with zero address on older games - **fixed** — Null dereference fixes in save data mount checks - **fixed** — LLE malloc init for LLE fonts and additional LLE libraries - **fixed** — Users no longer logged out when pad disconnects - **fixed** — Camera support - **fixed** — Fullscreen startup behaviour - **fixed** — Trophy handling and auto-generated PathType::TrophyDir 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 _[Truncated at 4000 characters — full notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.17.0]_ ### v.0.16.0 — shadps4 v0.16.0 - codename Plutie-fueled - Date: 2026-06-01 - Version: v.0.16.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.16.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.16.0 - Labels: Platforms: Desktop - **added** — New configuration system with modernized architecture for settings management and game-specific configuration handling - **added** — OpenAL-based audio backend for improved flexibility and portability - **added** — Initial camera emulation support for PlayStation Camera functionality - **added** — Local multiplayer infrastructure allowing multiple users to play supported games together - **added** — Big Picture Mode providing a console-like experience for controllers and living-room setups - **added** — Screenshot functionality with support for overlays or game-only captures - **added** — HTTP subsystem implementation for improved compatibility with online communication APIs - **added** — Notification system with support for positioning and icons - **added** — Easy Mods folder for simplified game modification organization - **added** — VOP3P instruction definitions in shader recompiler and GCN decoder - **added** — SDWA instructions support for Neo GPU - **added** — Float16 and integer packed arithmetic support - **added** — Support for combined geometry and tesselation pipelines - **changed** — Save and trophy migration support to help users transition from previous versions - **changed** — Trophy system with new directory structure and improved extraction reliability - **changed** — Audio3D functionality expanded - **changed** — Improved deadzone defaults for controller support - **changed** — New option to swap Enter button between Cross and Circle - **fixed** — Numerous Vulkan validation errors, synchronization issues, resource destruction order problems, swapchain handling, and presentation stability - **fixed** — GPU synchronization hazards, stale GPU memory handling, write-after-write scenarios, and image layout transitions #### shadPS4 v0.16.0 Released The shadPS4 team is excited to announce the release of **shadPS4 v0.16.0**, our largest update to date. This release delivers major improvements across emulation accuracy, graphics, audio, input handling, user experience, platform support, and developer infrastructure. With hundreds of changes from dozens of contributors, v0.16.0 represents another significant step toward broader game compatibility and a more complete PlayStation 4 emulation experience. ##### Highlights ###### New Configuration System v0.16.0 introduces the foundation of a new configuration architecture. This modernized system simplifies settings management, improves game-specific configuration handling, and lays the groundwork for future features. The migration also includes save and trophy migration support to help users transition smoothly from previous versions. ###### Initial OpenAL Audio Backend A major milestone for the project is the introduction of an **OpenAL-based audio backend**. This work establishes a more flexible and portable audio foundation for future improvements while continuing to expand compatibility with PS4 audio functionality. ###### Camera Support Begins Initial camera emulation support has landed, bringing us closer to supporting titles and applications that rely on PlayStation Camera functionality. ###### Local Multiplayer Support One of the most requested features is finally here. Multiple users can now enjoy supported games together through the new **local multiplayer infrastructure**, further expanding gameplay possibilities within the emulator. ###### Big Picture Mode A brand-new **Big Picture Mode** provides a console-like experience designed for controllers and living-room setups. The interface includes dedicated settings integration, game folder management, and several quality-of-life improvements. ###### Screenshot Functionality Users can now capture screenshots directly from the emulator, including support for overlays or game-only captures. ###### HTTP Library Progress A substantial amount of work has been completed on the PS4 networking stack, with the first large implementation stages of the HTTP subsystem landing in this release. These additions improve compatibility with games and applications that depend on online communication APIs. --- ##### Graphics and Rendering Graphics emulation received extensive work throughout the release cycle. ###### Improved Vulkan Stability Numerous Vulkan fixes address validation errors, synchronization issues, resource destruction order problems, swapchain handling, and presentation stability. These changes significantly reduce crashes and improve reliability across a wide range of hardware. ###### Memory and Synchronization Improvements Several fixes target GPU synchronization hazards, stale GPU memory handling, write-after-write scenarios, image layout transitions, and memory protection updates. Together these changes improve rendering correctness and reduce graphical corruption. ###### Mipmapping and Texture Improvements A large collection of mipmapping fixes resolves texture quality issues and rendering artifacts in various titles. ###### Expanded Neo GPU Instruction Coverage The shader recompiler and GCN decoder received major upgrades including support for: * New VOP3P instruction definitions * SDWA instructions * Additional Neo-specific ALU instructions * Float16 packed arithmetic * Integer packed arithmetic * Bit manipulation instructions * New min/max/median operations * Expanded test coverage for GCN instruction decoding These additions improve compatibility with titles that heavily utilize PlayStation 4 Pro ("Neo") GPU features. ###### Support for combined geometry and tesselation pipelines Support has been expanded for more advanced pipeline configurations, including additional tessellation and geometry shader combinations required by modern _[Truncated at 4000 characters — full notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.16.0]_ ### v.0.15.0 — shadps4 v0.15.0 - codename RE6_PRIG - Date: 2026-03-17 - Version: v.0.15.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.15.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.15.0 - Labels: Platforms: Desktop - **added** — Automatically add missing hotkeys to the global input config - **added** — Implement sceKernelGetModuleInfo2 and sceKernelGetModuleList2 - **added** — Mount system fonts - **added** — Implement guest signal handlers - **added** — Implement kqueue and kevent - **added** — Implement IMAGE_ATOMIC_CMPSWAP in shader recompiler - **added** — Implement npWebApi library - **added** — Add sceAudioOutGetSystemState - **added** — Implement sceGnmDrawIndirectMulti - **added** — Implement SysModule HLE - **changed** — Mount /data to /data instead of /data/gameid - **changed** — Handle operand fields execlo and exechi for S_MOV in shader recompiler - **changed** — Support 32 thread sharing mode in shader recompiler - **changed** — Improve sceAudioOut and SDL3 backend - **changed** — Improve motion controls emulation - **changed** — Improve signal emulation - **changed** — Group same log lines with counter - **changed** — Force subgroup size to 64 when possible in GPU - **fixed** — Fix Settings:InternalScreenWidth getting internalScreenHeight instead of InternalScreenWidth - **fixed** — Fix crashes caused by returning a pointer from an std::vector in Filesystem Greetings, fellow users, testers, devs. Missed us already? Here is a brand new shadPS4 release for you out there. A lot of new features is here to improve compatibility and general user experience as well. **It is recommended to use 0.15.0 for some time since there are a lot of breaking changes coming to 0.15.1 WIP** (that will correct and improve a lot of things), but we hope it will be production ready quite soon. Enough talking, here is the latest shadPS4 version and it’s changes: ##### Core * Automatically add missing hotkeys to the global input config * Fixed in Settings:InternalScreenWidth would get internalScreenHeight instead of InternalScreenWidth * Kernel.Pthreads: Remove unreachable in posix_pthread_mutex_timedlock * Volume hotkey: show volume value, set game_specific arg correctly, clamp value * Kernel.Process: Implement sceKernelGetModuleInfo2, sceKernelGetModuleList2 * Log: Group same lines with counter * Prevent protects during unmaps * Mount system fonts * Kernel.Equeue: Only reset trigger state on events that clear. * Filesystem: fix crashes caused by returning a pointer from an std::vector * Threads: initialize TLS on thread creation * Implement guest signal handlers * Mount /data to /data instead of /data/gameid * Kernel.Event: Implement kqueue and kevent * IPC: Tweak LoadFigure and RemoveFigure * Improved signal emulutation * Fixed game arguments with CLI11 * PSF: close file after encode ##### Shader recompiler * Handle operand fields execlo and exechi for S_MOV * Fixed r128 * Support 32 thread sharing mode * Implemented IMAGE_ATOMIC_CMPSWAP ##### Libraries * Improved sceAudioOut and SDL3 backend * Implemented npWebApi library * Added sceAudioOutGetSystemState * Added some NPTus Functions * Implemented some HLE libcInternal calls * Fixed some issues in scePad and refactoring * Improved motion controls emulation * Lib.GnmDriver: Fix flip arg for sceGnmSubmitAndFlipCommandBuffers * Lib.VideoOut: Fix pending flips limit * Fix some logic bugs in sceHttpUriParse * Audio3d SDL improvements * Lib.Net: Proper resolver errors when isConnectedToNetwork is disabled * Lib.GnmDriver: Implement sceGnmDrawIndirectMulti * Lib.Net: Fix Windows-specific incorrect error in PosixSocket::Connect * SSL module returned an empty certificate data instead of no certs * SysModule HLE implementation * Stub data for sceSslGetCaCerts ##### GPU * Copy image handle 2d->3d copies and opossite now * Skipped guest/host marker parsing/calls when disabled * Added Relaxed,precise modes in readbacks * Force subgroup size to 64 when possible ### v.0.14.0 — shadps4 v0.14.0 - codename JustShadow4 - Date: 2026-02-07 - Version: v.0.14.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.14.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.14.0 - Labels: Platforms: Desktop - **added** — Thread name to log lines - **added** — Global emulator state class - **added** — libSceRtc, libSceJpegDec, libSceJpegEnc, and libScePngEnc LLEs - **added** — libSceAudiodec to lle modules list - **added** — Key_manager for storing encryption keys - **added** — New cli parser using CLI11 - **fixed** — Float parsing in memory patcher - **fixed** — Corrected physical based handling for memory pools - **fixed** — Kernel.Vmm bug with VMA physical area tracking - **fixed** — Mouse speed offset issue when changing mouse speed - **fixed** — Dialog text input in IME dialog - **fixed** — Issues with winsock in sockets (sceNet) - **fixed** — Lib.Videodec2: sceVideodec2AllocateComputeQueue to return a valid computeQueue pointer - **fixed** — Lib.Audio3d: sceAudio3dGetDefaultOpenParameters - **fixed** — Ajm init params initialization - **fixed** — Ajm mp3 frame size checking on every frame - **fixed** — VS clip distance emulation for NVIDIA GPUs - **fixed** — Incorrectly outputted attribute if cdist emulation is not needed - **changed** — Filesystem fstat to fill in timespec values - **changed** — Reimplemented dirents - **added** — M4AAC support in ajm - **added** — SceVideodec2AllocateComputeQueue stub - **added** — sceImeDialogGetPanelSizeExtended in Ime Dialog - **added** — libSceNpPartner001 stubs - **added** — NpTus stub - **added** — Pngenc HLE - **added** — Fake Matching2 - **added** — Implemented V_LSHR_B64 - **added** — Implemented V_CMP_OP_F64 - **added** — Implemented V_FFBH_I32 - **fixed** — Delete unused fds in sceNetEpollDestroy and sys_socketclose - **fixed** — Default pthread attributes - **fixed** — Prevent posix_pthread_mutexattr_settype from setting invalid mutex types - **changed** — Read compiled sdk version from eboot - **changed** — Improved path detection in Avplayer - **changed** — Small readback optimization in Video Core - **fixed** — Small fixes regarding GDS - **fixed** — Prevent Rasterizer::IsMapped from returning true for memory ranges that wrap the address space Greeting fellow users , testers , devs. Here is a brand new release from shadPS4 , It took as some time but some nice features are here so we wanted to share them with all of you out there . This new release brings some more compatiblity with games and several bug fixes. You can check the list below Core ==== Added thread name to log lines Fixed float parsing in memory patcher Read compiled sdk version from eboot Added global emulator state class Corrected physical based handling for memory pools Add libSceRtc, libSceJpegDec, libSceJpegEnc, and libScePngEnc LLEs Changing the mouse speed does not affect the mouse speed offset Added libSceAudiodec to lle modules list Introducing key_manager for storing encryption keys Miscellaneous memory fixes and slight optimizations Added new cli parser using CLI11 filesystem: fill in timespec values for fstat Kernel.Vmm: Fix bug with VMA physical area tracking Libraries ========= M4AAC support in ajm Fixed dialog text input in IME dialog Fixed issues with winsock in sockets (sceNet) Stubbed libSceRudp Reimplemented dirents Stubbed libsceNpWebApi2 Lib.Videodec2: Stub sceVideodec2AllocateComputeQueue to return a valid computeQueue pointer Lib.Audio3d: sceAudio3dGetDefaultOpenParameters fix Ajm: fix init params initialization Improved path detection in Avplayer NetFixes : workaround for Epolls on P2P sockets implemented sceImeDialogGetPanelSizeExtended in Ime Dialog Np: libSceNpPartner001 stubs Added NpTus stub Delete unused fds in sceNetEpollDestroy and sys_socketclose Added pngenc HLE Fake Matching2 Skip stdin fd for want_read in select Fix default pthread attributes Prevent posix_pthread_mutexattr_settype from setting invalid mutex types ajm mp3: check frame size on every frame shader_recompiler ================= Some fixes for tess shaders VS clip distance emulation for NVIDIA GPUs Implemented V_LSHR_B64 Implemented V_CMP_OP_F64 Implemented V_FFBH_I32 fix for incorrectly outputted attribute if cdist emulation is not needed Video Core ========== Small readback optimization Small fixes regarding GDS Prevent Rasterizer::IsMapped from returning true for memory ranges that wrap the address space ### v.0.13.0 — shadps4 v0.13.0 - codename Ghost of Matthewshima - Date: 2025-12-24 - Version: v.0.13.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.13.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.13.0 - Labels: Platforms: Desktop - **fixed** — Fix Bloodborne speedup issue - **fixed** — Resolve sound issues in God of War 3 and other games through AJM fixes - **changed** — Limit address space maximum on Windows when higher addresses are not needed - **fixed** — Prevent writing to directories in filesystem operations - **fixed** — Apply kernel memory management protection fixes - **fixed** — Patch stack canary accesses in CPU patches - **added** — Implement sceKernelEnableDmemAliasing with proper mapping type checks in posix_mmap - **fixed** — Fix ENAMETOOLONG and posix_rename errors - **added** — Stub libSceNpCommerce library - **added** — Add basic mouse-to-touchpad emulation - **added** — Add dialog state tracking for NpCommerce - **added** — Implement http uri escape unescape and sceHttpUriSweepPath - **fixed** — Fix null string crash on sceNetResolverCreate - **fixed** — Avoid initializing Shader::PsColorBuffer in RefreshGraphicsKey - **changed** — Optimize compute clears in vk_rasterizer - **changed** — Split DMA fault handling code from buffer cache - **changed** — Reimplement inline data as buffer fill in video_core - **removed** — Remove primitive restart disable support check in renderer_vulkan - **added** — Initial implementation of pipeline cache in video_core - **added** — Add scheduler priority pending operation queue in video_core - **fixed** — Fix V_CMP_U64 shader instruction - **added** — Implement V_FLOOR_F64 shader instruction - **fixed** — Handle -1 as src1 in v_cmp_u64 shader instruction - **changed** — Re-implement custom trophy sounds using SDL3 mixer - **changed** — Make FSR off by default Here we are again with an early Christmas present. Santa might not have reached your home yet, but shadPS4 will. This release brings the long-awaited Bloodborne speedup fix, along with a lot of AJM fixes from our great Roamic dev, who was kind enough to resolve some weird sound issues (God of War 3 and other games now almost have perfect sound). There are also many additional fixes; I’ll try to summarize as much as I can below. This release is dedicated to Matthew, who did a lot of work setting up our new shadps4.net site, so greetings to him as well. So, Merry Christmas to all of you out there. Let’s hope the new year comes with world peace and a bit more logic out there. Thank you all for your support! Core ==== -Windows: Limit address space maximum when higher addresses are not needed -FS: Prevent writing to directories -Kernel.Vmm: Protect Fixes -cpu_patches: Patch stack canary accesses -libkernel: Implement sceKernelEnableDmemAliasing, proper mapping type checks in posix_mmap -ENAMETOOLONG, posix_rename fix Libraries ========= -Stubbed libSceNpCommerce -Add basic mouse-to-touchpad emulation -np: Add dialog state tracking for NpCommerce -Implement http uri escape unescape,sceHttpUriSweepPath -Network: Fixed null string crash on sceNetResolverCreate -A lot of AJM fixes GPU === -Avoid initializing Shader::PsColorBuffer in RefreshGraphicsKey -vk_rasterizer: Attempt to optimize compute clears -buffer_cache: Split DMA fault handling code from buffer cache -video_core: Reimplement inline data as buffer fill -renderer_vulkan: Remove primitive restart disable support check. -video_core: Initial implementation of pipeline cache -video_core: Scheduler priority pending operation queue Shader recompiler ================= -Fix V_CMP_U64 -Implement V_FLOOR_F64 -Handle -1 as src1 in v_cmp_u64 Misc ==== -Re-implement custom trophy sounds using sdl3 mixer -Make FSR off by default ### v.0.12.5 — shadps4 v0.12.5 - codename kyosan - Date: 2025-11-07 - Version: v.0.12.5 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.12.5 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.12.5 - Labels: Platforms: Desktop - **fixed** — Fix divide by zero in kernel time - **fixed** — Revert controller change from 0.12.0 that broke many games - **fixed** — Fix patches being applied multiple times redundantly - **fixed** — Fix game arguments not being passed under a certain condition - **fixed** — Simulate write-only file access with read-write access - **fixed** — Return st_mtim in posix_stat to fix RB4 DLC crash - **changed** — Keep drawing ImGui when there's a pending change_layer - **added** — Implement usb backend system in usbd - **added** — Add emulated Skylander Portal Backend - **added** — Add Infinity Base Backend - **added** — Add Dimension Toypad - **added** — Implement get_authinfo - **changed** — Implement more HttpLib functions - **added** — Initial font lib implementation - **changed** — Improve return stub for sceNetPoolCreate - **added** — Implement and stub some Libkernel functions - **changed** — Use smaller regions in buffer_cache - **added** — Add null gpu notice - **added** — Implement sceGnmDrawInitToDefaultContextStateInternal functions - **removed** — Remove Qt from emulator in favor of launchers Some would say, "why a new release this early"? While releases came every 2-3 months before, the previous 0.12.0 release had an input change, which made multiple games unplayable, so we needed to patch it quite early. With that, some other interesting features and bugfixes came from development continuing as before, so enjoy. ;) Core ====== -Fix divide by zero in kernel time -Reverted controller change from 0.12.0 since it appears it breaks a lot of games -Fix patches being applied multiple times redundantly -Fix game arguments not being passed under a certain condition -Simulate write-only file access with read-write access -filesystem: return st_mtim in posix_stat (fixes RB4 / CUSA02901 DLC crash) -ImGui: keep drawing when there's a pending change_layer Libraries ========= -usbd: Implement usb backend system -usbd: Emulated Skylander Portal Backend -usbd: Add Infinity Base Backend -usbd: Added Dimension Toypad -Added get_authinfo -HttpLib: Implemented a few more functions -Initial font lib implementation -Better return stub for sceNetPoolCreate -Libkernel: Implement/stub some functions GPU === -buffer_cache: smaller regions -add null gpu notice -Implement sceGnmDrawInitToDefaultContextStateInternal functions Qt == -Remove Qt from emulator - Using lauchers from now on ### v.0.12.0 — shadps4 v0.12.0 - codename fire-square - Date: 2025-10-31 - Version: v.0.12.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.12.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.12.0 - Labels: Platforms: Desktop - **added** — Physical backing for flexible and pooled memory allocation - **added** — Memory: Implement sceKernelMemoryPoolGetBlockStats - **added** — Allow overlapping direct memory mappings - **added** — Kernel.Fs: Device file cleanup and /dev/rng implementation - **added** — Net: Epoll support - **added** — avplayer: implemented AddSourceEx, SetAvSyncMode, Pause and Resume - **added** — Implemented sceSystemServiceLoadExec - **added** — Implemented sceNpTrophyGetGameIcon - **added** — Make sys_modules folder configurable - **added** — Add configurable extra memory - **added** — Add CLI argument to launch the emulator with global config or with default settings - **added** — IPC: commands for volume adjustment, input parsing, fsr, gamepad select - **changed** — Refactor direct memory handling - **changed** — avplayer: do not start the video multiple times - **changed** — ajm: handle ParseRiffHeader flag - **changed** — avplayer: remove maximum audio delay - **changed** — Handle mixed samples attachments - **changed** — Better handling of image copies with DmaData - **changed** — Move HDR swapchain configuration to present thread - **changed** — buffer_cache: Bring back CPU path - **fixed** — Memory code cleanup and further direct memory fixes - **fixed** — Handle various edge cases related to executable permissions - **fixed** — Lock linker mutex in RelocateAnyImports - **fixed** — Fix alignment for mmap - **fixed** — Fix return for running out of flexible memory - **fixed** — Fix NoOverwrite flag behavior in MapMemory - **fixed** — Read-only file mmap fix - **fixed** — avplayer: fix play request state handling - **fixed** — Fixing missing png extraction from trophy files - **fixed** — audioout: Do not wait for data within timer - **fixed** — Use correct trophy folder for games with multiple trophy lists - **fixed** — NpManager: Implement more request-related behavior - **fixed** — NpAuth: Improved stubs - **fixed** — Ime fixes - **fixed** — Fixes scePlayGoDialog status stub - **fixed** — Fix some image copy and buffer offset validation errors - **fixed** — image: Improve enforcement of image copy layer rules - **fixed** — image_info: Fix guest size calculation for linear render targets - **fixed** — Implement fallback path for missing shaderFloat16support - **fixed** — Fix: V_MUL_I32_I24 | V_MUL_U32_U24 - **deprecated** — Qt builds will be removed starting from version 0.12.1, shadPS4 will be cli only - **changed** — Update Qt to 6.9.3 - **changed** — Increase address space limits and rework Windows address space initialization - **changed** — amdgpu: Split liverpool registers and cleanup - **changed** — Make UpdatePlayTime not depend on Qt Happy halloween ppl! It is a special day today and what more special than having a brand new shadps4 release . Although it was announced that it Qt builds were gonna removed from 0.12.0 , we decided to release it for one last time . Starting from 0.12.1 , shadPS4 will be cli only , but we already have launchers for you ready , check the download section of the site. Enough talking here is the latest shadPS4 version and it's changes Core ==== physical backing for flexible and pooled memory allocation Refactor direct memory handling Memory: Implement sceKernelMemoryPoolGetBlockStats Allow overlapping direct memory mappings Memory code cleanup and further direct memory fixes Handle various edge cases related to executable permissions. Kernel.Fs: Device file cleanup and /dev/rng implementation Lock linker mutex in RelocateAnyImports Increase address space limits and rework Windows address space initialization Fix alignment for mmap Fix return for running out of flexible memory Fix NoOverwrite flag behavior in MapMemory Read-only file mmap fix Libraries ========= Net: Epoll support avplayer: implemented AddSourceEx, SetAvSyncMode, Pause and Resume avplayer: do not start the video multiple times ajm: handle ParseRiffHeader flag avplayer: fix play request state handling Implemented sceSystemServiceLoadExec Fixing missing png extraction from trophy files Implemented sceNpTrophyGetGameIcon audioout: Do not wait for data within timer. avplayer: remove maximum audio delay Use correct trophy folder for games with multiple trophy lists NpManager: Implement more request-related behavior NpAuth: Improved stubs Ime fixes Fixes scePlayGoDialog status stub Video Core ========== Handle mixed samples attachments Better handling of image copies with DmaData Fix some image copy and buffer offset validation errors. image: Improve enforcement of image copy layer rules Move HDR swapchain configuration to present thread. buffer_cache: Bring back CPU path image_info: Fix guest size calculation for linear render targets amdgpu: Split liverpool registers and cleanup Shader recompiler ================= Implement fallback path for missing shaderFloat16support Fix: V_MUL_I32_I24 | V_MUL_U32_U24 GUI === Make UpdatePlayTime not depend on Qt Make sys_modules folder configurable Add configurable extra memory Update Qt to 6.9.3 Add CLI argument to launch the emulator with global config or with default settings IPC: commands for volume adjustment, input parsing, fsr, gamepad select Add informative update message for Qt build deprecation ### v.0.11.0 — shadps4 v0.11.0 - codename nettone - Date: 2025-09-18 - Version: v.0.11.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.11.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.11.0 - Labels: Platforms: Desktop - **added** — Games using Unreal Engine now boot and some are playable - **added** — Microphone support - **added** — Simple IPC for external control - **added** — Ds4 Speaker Audio - **added** — Video_out internal resolution support - **added** — Implement sceKernelGetSystemSwVersion - **added** — Implement sceAudio3dTerminate - **added** — Implement sceAudioOutGetLastOutputTime - **added** — Implement sceKernelError - **added** — Custom usb lib - **added** — Implement simple DNS name resolution - **added** — Implement ORBIS_NET_CTL_INFO_HTTP_PROXY_CONFIG - **added** — Select support - **added** — Implement ORBIS_NET_SO_ERROR_EX in GetSocketOptions - **added** — AF_UNIX preliminary support - **added** — Implement sceKernelIsInSandbox - **added** — Simple implementation of sceGnmUnmapComputeQueue - **added** — Implement getargc and getargv - **changed** — mmap executable memory - **changed** — Standardize RegisterLib names for HLE libraries - **changed** — Only update configs when using a different build - **changed** — Add present mode option to config - **changed** — Game specific configs - **changed** — Open a dummy audio input device if none is present in the system - **changed** — Make libSceRtc fully HLE - **changed** — Semaphore invert priority order - **fixed** — Zero top bits in INSERTQ/EXTRQ - **fixed** — Fix read-only file unmaps on Windows - **fixed** — Filesystem fix create flag handling in open - **fixed** — If CONTENT_ID is empty in param.sfo try using TITLE_ID as fallback - **fixed** — Core return error if DirectMemoryQuery address is too high - **fixed** — Filesystem fix error behavior for close calls on std handles - **fixed** — Sockets fixes - **fixed** — Add entries for . and .. in MntPoints IterateDirectory - **fixed** — Filesystem directory-related fixes - **fixed** — Memory align size and address in posix_munmap - **fixed** — Replace direct usage of wrgsbase and rdgsbase with a more portable solution - **fixed** — Improve memory address validation logic - **fixed** — Fix MXCSR and FPUCW registers on created threads - **fixed** — Log error on MapMemory out of flexible memory case - **fixed** — IME fixes - **fixed** — Fixed green artifacts in movies and animations via ffmpeg - **fixed** — Fix sceAudioOutOutputs - **fixed** — Fixed RetrieveNetmask for windows - **fixed** — Net fix various socket-related issues - **fixed** — Fix get and setsockopt levels - **fixed** — Fix sceVoiceGetPortInfo - **fixed** — Fix handling of RFC 3339 formatted dates - **fixed** — Implement send and recvmsg - **fixed** — libkernel return EINVAL if mmap is called with length = 0 - **fixed** — SaveData fixes - **fixed** — Handle null event flags in cancel and clear - **fixed** — Semaphore fix determining wait status when canceled or deleted - **fixed** — Equeue few fixes for sceKernelWaitEqueue - **fixed** — Fix V_ADDC_U32 carry-out edge cases - **fixed** — Fix ff1_i32_b64 not accepting vcc as its argument - **fixed** — Correct bary coord function - **fixed** — Avoid clearing HTILE when shader contains address calculation - **fixed** — Fix incorrect bary coord loads when unsupported - **fixed** — Correct instance id fetch in local shader - **fixed** — Handle ExecLo source in S_FF1_I32_B64 - **removed** — Remove checks for symbol version_major and version_minor - **removed** — Add an unreachable on hitting ud2 instead of getting stuck in an infinite loop A brand new release just dropped in . As usual we have a lot of new features and bugfixes to this release with the most important that games that uses Unreal Engine are now start to booting and some of them are even playable. Core ==== * mmap executable memory * Zero top bits in INSERTQ/EXTRQ * Fix read-only file unmaps on Windows * Standardize RegisterLib names for HLE libraries * Filesystem: Fix create flag handling in open * If CONTENT_ID is empty in param.sfo, try using TITLE_ID as fallback * Add an unreachable on hitting ud2 instead of getting stuck in an infinite loop * Microphone support * Only update configs when using a different build * Core: Return error if DirectMemoryQuery address is too high * Simple IPC for external control * Filesystem: Fix error behavior for close calls on std handles * Sockets fixes * Add entries for . and .. in MntPoints::IterateDirectory * Log user CPU, total RAM, and OS * Filesystem: Directory-related fixes * Memory: Align size and address in posix_munmap * Filesystem: Abstract handling of directory files * Replace direct usage of wrgsbase and rdgsbase with a more portable solution * config: Add present mode option. * Game specific configs * Improve memory address validation logic * Remove checks for symbol version_major and version_minor * Fix MXCSR and FPUCW registers on created threads * Log error on MapMemory out of flexible memory case * Open a dummy audio input device if none is present in the system * Ds4 Speaker Audio Libs ==== * libkernel: Add missing mprotect export * IME fixes * video_out: Internal Resolution Support * Implement sceKernelGetSystemSwVersion * Implement sceAudio3dTerminate * Implement sceAudioOutGetLastOutputTime * Register posix_rename * Implement sceKernelError * Using custom usb lib * inet_ntop and inet_pton * Extract netmask and default gateway from host system * Implement simple DNS name resolution * Return the number of samples enqueued in AudioOut * Return an error before a pad is opened * scePadResetOrientation * Fix sceAudioOutOutputs * Fixed RetrieveNetmask for windows * Net: Fix various socket-related issues * sys_getpeername * Implement ORBIS_NET_CTL_INFO_HTTP_PROXY_CONFIG * Fix get/setsockopt levels * libkernel: more network functions for OpenOrbis compatibility * libSceAppContent: Use last 16 characters of DLC folder to determine entitlement label * Make libSceRtc fully HLE * Fixed green artifacts in movies/animations (ffmpeg) * Select support * libSceAppContent: Determine entitlement labels from additional content param.sfo * Fix sceVoiceGetPortInfo * Fix handling of RFC 3339 formatted dates * libSceNpParty: Stub out functions with not-in-party behavior * Add stubbed libSceNpProfileDialog library * Better libSceMove stubs * Better libSceCamera stubs * Implement ORBIS_NET_SO_ERROR_EX in GetSocketOptions * Improved libSceHmd stubs * libSceHmdSetupDialog stubs * libSceVrTracker stubs * semaphore: Invert priority order * semaphore: Fix determining wait status when canceled/deleted * Implement send/recvmsg * libkernel: Return EINVAL if mmap is called with length = 0 * SaveData fixes * Handle null event flags in cancel and clear * AF_UNIX preliminary support * Np libraries cleanup * Implement sceKernelIsInSandbox, update OrbisSysModule Enum * equeue: Few fixes for sceKernelWaitEqueue * Implement getargc and getargv * Simple implementation of sceGnmUnmapComputeQueue * kernel: Improvements to condvars. * kernel: More thread code clean-up. Shader recompiler ================= * Fix V_ADDC_U32 carry-out edge cases * Reorganize data share operations and implement GDS * ir_passes: Fold readlane with ff1 pattern * Implement ff1 with subgroup ops * Replace buffer pulling with attribute divisor for instance step rate * Implement guest barycentrics * Fix ff1_i32_b64 not accepting vcc as its argument * attribute: Correct bary coord function * Avoid clearing HTILE whe _[Truncated at 4000 characters — full notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.11.0]_ ### v.0.10.0 — shadps4 v0.10.0 - codename The Last LNDF - Date: 2025-07-06 - Version: v.0.10.0 - Original notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.10.0 - Permalink: https://whatsnew.fyi/product/shadps4/releases/v.0.10.0 - Labels: Platforms: Desktop - **added** — Add Module Viewer to devtools - **added** — Add libSceCompanionUtil and libSceVoice stubs - **added** — Implement sceNetInetNtop in net library - **added** — Add option to fake user being signed in to PSN in np_manager - **added** — Stub out SetGPO and GetGPI in kernel - **added** — Add alternate code paths for handling legacy struct behavior in sceVideodec2GetPictureInfo - **added** — Implement Direct Memory Access in video_core - **added** — Implement PM4 opcode 0x22 (CondExec) in liverpool - **added** — Implement color to multisampled depth blit pass in texture_cache - **added** — Enable sampleRateShading in Vulkan - **added** — Add Favorites feature in the game list - **added** — Add option to launch games by providing their folder instead of the eboot path - **added** — Add option to ignore game patch when launching - **added** — Implement dual source blending in shader recompiler - **added** — Implement linear interpolation support in shader recompiler - **added** — Implement buffer atomic fmin/fmax instructions in shader recompiler - **changed** — Fix WaitEqueue assert on nullptr and move small timer check to WaitForEvents in equeue - **changed** — Reduce clamp threshold to 2MB in memory - **changed** — Replace Back Button Behaviour with a rebindable solution for touchpad left, right and center in input - **changed** — Emulate motion controls with a mouse in input - **changed** — Update Qt to 6.9.1 - **fixed** — Fix passing user data in user-triggered equeue events - **fixed** — Fix touchpad handling and change gyro calculation in pad library - **fixed** — Fix request queues in zlib - **fixed** — Fix sceVideoOutGetResolutionStatus error behavior in video_out - **fixed** — Fix potential out of bound crash in np_trophy - **fixed** — Fix incorrect float type on FPRecip64 in shader recompiler - **fixed** — Fix image extent in buffer copy to image - **fixed** — Fix ExpandImage behaviour in texture_cache - **fixed** — Fix handling unbound depth image in shader recompiler - **fixed** — Fix two Vulkan validation errors introduced by shared memory changes - **fixed** — Implement color to depth copies in texture_cache - **fixed** — Fix various thread races on data upload and invalidation in buffer_cache - **fixed** — Fix Changelog Error in auto_update - **fixed** — Fix SSH remote links in fork_detection Surprise! Bet you didn't expect a release from me, did you? :) Well you all asked for a miracle, and here I am, providing one. Anyways, this release is dedicated to one of our not-so-new dev, LNDF, who is responsible for a significant amount of the new GPU code, such as implementing Direct Memory Access for video memory. This isn't a solo endeavour though, there were far more updates to the emulator from the rest of the team as well, improving compatibility across well-known titles such as P.T, Driveclub, inFAMOUS, Bloodborne, The Last Guardian, Shadow of the Colossus (although this one still can't boot without hacks) and more: Core ==== - devtools: Add Module Viewer - equeue: fix WaitEqueue assert on nullptr and move small timer check to WaitForEvents - Memory Cleanup & Fixes (like, a lot of them) - Pthread affinity fixups - Emulate libSceGnmDriver's init behavior - equeue: Fix passing user data in user-triggered equeue events - memory: Reduce clamp threshold to 2MB - Improved sceKernelMapNamedFlexibleMemory logging and add misc function exports - cpu_patches: Patch movntss and movntsd - equeue: HrTimer fixes - filesystem: Fixes for posix_rename and write - input: Silence unmapped keybind mappings and add XBox paddles - input: Replace Back Button Behaviour with a rebindable solution for touchpad left, right and center - input: Emulate motion controls with a mouse - input: Code and documentation cleanup - kernel: Check returned module in sceKernelGetModuleInfoFromAddr - bit_array: Remove non const operator~ - settings: Update outdated config files on startup Libs ==== - Added libSceCompanionUtil, libSceVoice stubs - net: Implemented sceNetInetNtop - pad: Fix touchpad handling and change gyro calculation - np_manager: Add option to fake user being signed in to PSN - zlib: Fix request queues - video_out: fix sceVideoOutGetResolutionStatus error behavior - videodec2: Update structs to match newer firmwares - np_trophy: Change initial context and handle values - np_trophy: Fix potential out of bound crash - kernel: Stub out SetGPO and GetGPI - ngs2: Initialize system handle in HLE Ngs2 library - video_out: Add alternate code paths for handling legacy struct behavior in sceVideodec2GetPictureInfo Shader recompiler ================= - Fix incorrect float type on FPRecip64 - Implemented opcodes: V_CVT_F64_U32, V_RCP_LEGACY_F32, S_FLBIT_I32_B64, BUFFER_ATOMIC_CMPSWAP, DS_READ_U16, DS_WRITE_B16, DS_ADD_U64, BUFFER_ATOMIC_SMAX_X2, BUFFER_ATOMIC__X2 and V_CMP_EQ_U64 - Misc opcode fixes - Handle R128 bit in MIMG instructions - Provide custom border color to samplers - Implement dual source blending - Implement linear interpolation support - Better handling of geometry shader scenario G - Patch SRT walker on segfault - Cleanup fragment attribute handling - Various fixes to shared memory and atomics - Reduce cases where shared memory to buffer pass is needed - Fix shared memory definition when only one type is used - Handle immediate inline samplers - Fix some shared memory accesses when workgroup struct is omitted - Implement buffer atomic fmin/fmax instructions - Fix handling unbound depth image - Optimize general case of buffer addressing - Mark image as written when its used with atomics GPU === - video_core: Implement Direct Memory Access - Fix image extent in buffer copy to image - texture_cache: Handle overlap with equal address and different tiling mode - liverpool: Stub PM4 opcodes 0x8E (GetLodStats) and 0x20 (SetPredication) - liverpool: Implement PM4 opcode 0x22 (CondExec) - texture_cache: Fix ExpandImage behaviour - buffer_cache: Better image search for buffer validation - texture_cache: Handle compressed views of uncompressed images - buffer_cache: Inline data to cpu unless gpu modified - tile_manager: Downgrade assert to error - texture_cache: Basic handling of partially resident images - liverpool: Handle PM4 type 2 in acb - vulkan: F _[Truncated at 4000 characters — full notes: https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.10.0]_