# shadPS4 v.0.10.0 — shadps4 v0.10.0 - codename The Last LNDF - Product: shadPS4 (https://whatsnew.fyi/product/shadps4) - Vendor: shadPS4 - 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 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'. --- - **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]_