A broad rolling build for PlayStation emulation

DuckStation’s latest rolling development build was published on October 11, 2026, under the exact release tag “latest.” It is a development build rather than a stable release, and the project’s preview builds receive minimal testing and may contain bugs. DuckStation emulates the Sony PlayStation on Windows, Linux, and macOS, with a focus on accuracy, speed, and long-term maintainability.

The build is provided for Windows 10 and 11 on x64 and ARM64, Linux through x64, ARM32, and ARM64 AppImages, and universal macOS packages for Intel and Apple Silicon. Windows users can choose installer or archive packages, while an SSE2 build is available for older x64 processors that do not support SSE4.1. The release assets also include symbol packages for Windows ARM64 and x64 variants.

Shader and pipeline compilation receive a major overhaul

A large group of changes reorganizes how DuckStation creates and reuses graphics pipelines. Shader generation now uses stable identifiers as cache keys, while the graphics device can look up cached shaders and opaque keys through a shared object archive. Pipeline loading was added for supported backends, and shader and pipeline compilation can now run across multiple threads.

For players, these changes reduce the amount of work performed serially when the emulator encounters new graphics combinations. The release notes provide no benchmark figures or specific stutter reduction claims, but the new cache synchronization and parallel compilation paths are designed to make shader preparation more efficient. Vulkan also gains timeline semaphore support when available, alongside fixes for buffer hazard tracking and render-output-view handling.

The graphics update adds more texture-filter choices and a new advanced “Filter Framebuffer Uploads” option. A separate “Disable Upscaled Direct Textures” option is available for cases where direct textures should not be enlarged, with a corresponding GameDB entry for Fear Effect. Background texture filtering is enabled for more games, a fallback texture-mask issue was corrected, and background replacements no longer disappear after texture-cache filtering is toggled off.

Other renderer work includes improvements to pipeline layouts, correct sampler initialization in Direct3D 12, corrected formats for ROV buffers, a Vulkan clear-operation specification fix, and improved scanline synchronization around the vertical display start. Metal drops a feedback-loop path. These are mostly internal changes, but they address graphics correctness and backend reliability across supported host APIs.

Audio processing is streamlined in the SPU

The SPU, or sound processing unit emulation, receives several performance-oriented changes. Per-voice flag processing was streamlined, Gaussian interpolation was vectorized, capture-buffer writes were consolidated, and ADPCM nibbles are now decoded in pairs.

These changes target repeated calculations involved in PlayStation audio playback and recording. The notes do not claim a measurable frame-rate or latency improvement, but reducing overhead in these paths can leave more host CPU time available for the rest of emulation. The update also refines audio-output settings in the Qt frontend, including volume updates and output-latency descriptions.

Input handling becomes more resilient and configurable

InputManager gains several fixes for devices being connected, disconnected, or replaced while DuckStation is running. Bindings are reloaded after a source is hot-plugged, persistent identifiers are used when mapping SDL devices, and the application now clears bindings when input is lost. Cancelled hold bindings are released correctly, and effect synchronization uses improved device matching.

The input code also separates text entry from other pointer and controller state, uses atomic tracking for raw input and pointer counts, and reads pointer state directly from the input manager. A new hotkey flag allows actions to be activated from the user interface, while button transitions can be represented more precisely. Qt controller pages now display the devices associated with their bindings.

Lightgun and NeGcon support receive structural cleanup through shared controller base classes. This does not add a new console, but it provides a more consistent foundation for existing PlayStation controller types. The DualSense player LED setting has also moved into the LED dialog.

The fullscreen interface gains a “Toggle Pause Menu” hotkey. Cheats, achievements, and leaderboards can use toggle-style hotkeys, and several fixes prevent double transitions or incorrect window switching when these shortcuts are used. The pause-menu toggle is synchronized more reliably as well.

Fullscreen UI and Qt frontend changes

The fullscreen interface now shows progress while the game list is loaded on demand, and the loading screen separates its text and progress sizing. Headers can use blurred background images, and subset views display the subset icon as the game icon. The change-disc menu no longer becomes stuck in some scenarios, while game-list search correctly restores focus after Escape.

Achievement presentation receives several adjustments: notification height is corrected, small-mode category badges use smaller text, and transitions between achievement and leaderboard windows are less likely to run twice. Per-game achievement notification duration sliders now update correctly. The achievement system also avoids several locking problems, including a potential deadlock when leaderboard tracking is disabled, and handles login requests while loading a state buffer.

The Qt interface gains multi-instruction selection in the debugger, preserves debugger window state, and adds context-menu icons. The debugger’s empty toolbar title is fixed. Game-list exclusion entries gain a context menu, newly excluded paths show their icons correctly, and inherited multisampling settings are now visible in game properties.

Additional interface fixes cover theme-aware log-window colors, empty widget text, duplicated help text, desktop-environment checks, the default fullscreen cursor setting, and a crash when desktop-file checking is skipped. Cover-downloader serial-name preferences are retained, and Italian, Spanish, Brazilian Portuguese, and other translation catalogs are updated.

Disc images, saves, and game metadata

DuckStation’s CD image handling is updated in several areas. Memory-backed images now read sectors in their native format, PPF images handle non-Mode 2 sectors, and CHD images select the correct sector size for the active mode. The CD reader also uses a persistent worker thread, and a possible incorrect restart track during playback is fixed.

DuckStation supports disc images, MAME CHD, single-track ECM, MDS/MDF, CCD, and unencrypted PBP files. PAL games using LibCrypt protection may require matching SBI subchannel files beside their disc images; CHD files with embedded subchannel data are supported as well. The emulator requires a PlayStation or PlayStation 2 BIOS image to start, but does not include one.

A save-state metadata issue that could copy the wrong title into the header is corrected. The update also improves synchronization for object archives used by caches and other stored data, while a settings-section cleanup prevents an empty section from being created unnecessarily.

Performance, threading, and platform fixes

The core task queue can now adjust its thread count dynamically, with new helpers for checking outstanding work and executing one queued task. A processor-count helper supports this adjustment. The video thread receives a broad set of safety changes covering command-queue ownership, resize state, fullscreen settings, startup failures, thread-toggle failures, and software-renderer fallback.

DuckStation adds lightweight mutex, condition-variable, and shared-mutex wrappers throughout the core, CD reader, achievements, fullscreen UI, and settings code. Several lock-management changes reduce unnecessary locking and add debug detection for recursive locks. On ARM, CPU pause and video-thread spin behavior are adjusted, while Linux now follows the optimal frame-pacing setting.

The release also fixes a buffer overflow and incorrect matching behavior in byte-pattern searches, updates GoogleTest, resolves warnings in several platform and third-party components, and changes Windows source-file hashing to SHA-256. The updater’s process-wait behavior and Linux relaunch path are also revised. These changes are not user-facing features, but they improve maintenance, diagnostics, and behavior across host platforms.

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