Online play arrives with shadNet

shadPS4 v0.20.0 follows the first official stable release of shadNet 0.1.0 and adds online-play functionality to the PlayStation 4 emulator. The update includes a substantial rewrite of the sceNet library with peer-to-peer support, providing the networking foundation used by the new shadNet features.

The release notes specifically identify Bloodborne as having officially available online play through this update. That is a project claim about the current state of emulation, not a guarantee that every network feature or game will work identically to original PlayStation 4 hardware. New shadNet notifications in the user interface should also make network-related activity easier to follow.

A wide-ranging core update

The core changes cover operating-system integration, CPU handling and emulator housekeeping across the supported host platforms. macOS receives comprehensive SSE4a CPU patches, while Linux gains static patching. Intel systems also receive patches for vector reciprocal and reciprocal-square-root instructions, addressing another area where host CPU behavior can affect emulation.

File and memory handling have been tightened in several places. Guest paths are normalized and mount matching is corrected, Windows restores memory protections after splitting a mapped region, and POSIX address-space unmapping no longer expands the host memory-mapping range. The update also corrects source-pointer advancement when writing across multiple backing runs.

Other core changes include faster game ID resolution, improved FPS-counter startup and movement behavior, POSIX file-attribute and synchronization APIs, and logging for SIGABRT signals. The emulator now shuts down NpHandler before restarting, while the no-longer-used signaling_info setting has been removed. Together, these changes target correctness and stability around launching, restarting, filesystem access and host-process behavior rather than adding a single user-facing feature.

Networking, audio and system library improvements

The rewritten sceNet library is the largest library-level change in this build. Peer-to-peer support is now part of the network implementation, which is important for the shadNet online functionality introduced alongside this release. The networking work is accompanied by a monotonic real-time network clock and signaling fixes that ensure an offer is always answered.

HTTP handling has also been refined. Credential headers are now redacted from logs, reducing the chance that sensitive header information appears in diagnostic output. HTTPS transport now respects the disable_https option and private options more consistently. These changes improve logging privacy and handling of applications that rely on the emulator’s network configuration.

Audio decoding receives a notable correction: the MP3 parser no longer reads out of bounds and now supports Xing and VBRI headers. The release also cleans up camera code, corrects sysmodule validation behavior, implements private pthread barriers, and adds POSIX thread context, naming, file and process APIs.

Several graphics-driver-facing library calls are now implemented, including sceGnmSetGsRingSizes, sceGnmSetupMipStatsReport, sceGnmRequestFlipAndSubmitDone, sceGnmDrawIndirectCountMulti and sceGnmComputeWaitSemaphore. Basic error returns have been added to the sign-in dialog, and a matching delay has been introduced. The update also fixes an input issue in which 33-millisecond analog smoothing could accidentally affect controller sticks and triggers.

Renderer changes focus on texture and buffer work

The Vulkan video core receives a substantial group of changes focused on cache behavior, memory transfers and rendering correctness. The second phase of renderer optimizations targets the texture cache, while texture-cache scanning now examines only the first page in FindImageFromRange. Added depth-overlap subresources are initialized correctly, and CMask metadata is read.

Buffer handling is improved through sparse backing allocation with device-address support, removal of a duplicate image-to-memory synchronization step, and more accurate tracking of vertex, index and indirect buffers. The Vulkan runtime can now use buffer copies between D32 and D32S formats, while the rasterizer restores an image-copy fast path and applies pending fast clears when decompressing FMASK data.

The renderer now links the stencil plane for DepthStencilCopy destinations and permits buffer copies between different layer counts. Its tile table has been expanded to support images up to 2048 by 2048. Null index addresses are handled explicitly, and Vulkan can bind a null index buffer instead of requiring the maintenance6 feature. These adjustments address rendering and resource-management edge cases.

Additional scheduling and presentation fixes include cover-presentation waits, fragment texture reads, a lock-free region-manager bypass when no state update is needed, and cleanup of frames belonging to nested indirect-buffer tasks. The video core also emulates zero and one blend factors for MIN and MAX operations.

Shader recompilation becomes more precise

The shader recompiler adds improved NaN handling and better treatment of floating-point operations, including clamping for reciprocal, reciprocal-square-root and logarithm instructions. It now detects 64-bit floating-point use from instruction types and implements IMAGE_GATHER4_C_L.

Instance and vertex indexing receives several corrections. Instance IDs are unbiased in every indirect draw, and the translator applies the same treatment to all instance-ID uses. Step rates with a base instance are supported.

Control-flow and synchronization behavior also changes. The recompiler preserves EXEC scope after an empty branch, enables early fragment testing when configured, and inserts subgroup barriers for shared-memory dependencies. Another sharp patching pattern is recognized, extending the set of executable code patterns the emulator can adapt.

Interface and platform details

The big-picture game view can now scan folders recursively, making it easier to organize games stored below the directly selected directory. The interface also loads a CJK font independently of the console language setting, improving character coverage for Chinese, Japanese and Korean text.

The project identifies shadPS4 as an early PlayStation 4 emulator for Windows, Linux and macOS. The supplied release includes separate SDL packages for all three hosts: shadps4-linux-sdl-0.20.0.zip, shadps4-macos-sdl-2026-0.20.0.zip and shadps4-win64-sdl-2026-0.20.0.zip. The README says that macOS use requires macOS 26.0 or newer and that Intel Macs are not supported.

These packages are host applications; they are not software installed on a modified PlayStation 4. shadPS4 loads PlayStation 4 game data and can load supported firmware modules dumped from a legally owned console. The project warns that it remains early in development, so compatibility and reliability continue to vary between games and configurations. The README lists Bloodborne, Dark Souls Remastered, Red Dead Redemption and other games as titles the emulator can successfully run, but that background is not a universal compatibility guarantee.

The core project does not include a graphical user interface. The README points end users toward the separate QtLauncher for a more user-friendly interface, while the SDL packages in this release provide the downloadable host builds named in the release assets. Controller support includes Xbox and DualShock devices, and keyboard and mouse bindings can be customized per game.

What this release means for users

Version 0.20.0 is primarily a platform and infrastructure release with a major networking addition. shadNet gives the emulator online-play functionality, while the sceNet rewrite and peer-to-peer support provide the underlying network implementation. Bloodborne is the clearest documented example of that work, although individual online features remain dependent on the state of emulation and the relevant software.

For offline use, the benefit is spread across many smaller changes: more accurate CPU patches on macOS, Linux and Intel hosts; more consistent filesystem and memory behavior; improved MP3 parsing; corrected controller analog response; broader POSIX API coverage; and a renderer that handles texture caches, buffers, depth data, indirect draws and Vulkan feature requirements more carefully.

The update is available as v.0.20.0, published at 14:51:07 UTC on October 14, 2026. The project’s status information still places shadPS4 in early development, so the value of these changes will depend on the game, host operating system, graphics hardware and the emulator features each title uses.

shadPS4 project-provided image
Project-provided reference image; not a capture of the announced release.