DuckStation v0.1-12083 is released. DuckStation is an simulator/emulator of the Sony PlayStation(TM) console, focusing on playability, speed, and long-term maintainability. The goal is to be as accurate as possible while maintaining performance suitable for low-end devices. "Hack" options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues.
Features:
CPU Recompiler/JIT (x86-64, armv7/AArch32 and AArch64)
Hardware (D3D11, D3D12, OpenGL, Vulkan) and software rendering
Upscaling, texture filtering, and true colour (24-bit) in hardware renderers
PGXP for geometry precision, texture correction, and depth buffer emulation
Adaptive downsampling filter
Post processing shader chains
"Fast boot" for skipping BIOS splash/intro
Save state support
Windows, Linux, highly experimental macOS support
Supports bin/cue images, raw bin/img files, MAME CHD, single-track ECM, MDS/MDF, and unencrypted PBP formats.
Direct booting of homebrew executables
Direct loading of Portable Sound Format (psf) files
Digital and analog controllers for input (rumble is forwarded to host)
Namco GunCon lightgun support (simulated with mouse)
NeGcon support
Qt and "Big Picture" UI
Automatic updates for Windows builds
Automatic content scanning - game titles/hashes are provided by redump.org
Optional automatic switching of memory cards for each game
Supports loading cheats from existing lists
Memory card editor and save importer
Emulated CPU overclocking
Integrated and remote debugging
Multitap controllers (up to 8 devices)
RetroAchievements
Automatic loading/applying of PPF patches
DuckStation Changelog:
2781502 SPU: Streamline per-voice flag processing
690ead7 SPU: Vectorize Gaussian interpolation
5a7a301 SPU: Consolidate capture buffer writes
a24350c SPU: Decode ADPCM nibbles in pairs
a490418 VulkanDevice: Use timeline semaphores when available
ed6720b Tests: Fix core-tests building on Windows
025ea24 GPU/HW: Fix typo in CompilePipelines()
88ccab2 Achievements: Fix some options potentially not live-updating
16452a0 Achievements: Check for login request in LoadStateFromBuffer()
3c14141 FullscreenUI: Fix extra uneven height in achievement notifications
0910d4e FullscreenUI: Reduce text size of small-mode category badges
96268ab Qt: Remove empty widget text
390c878 GameDB: Persona localizedName
e26fa60 Update Italian translation (#3798)
563c355 TaskQueue: Add GetOutstandingTasks() and ExecuteOneTask()
efecb78 Threading: Add GetProcessorCount()
0d2e662 Core: Make TaskQueue thread count dynamic
60b06c0 ObjectArchive: Use binary keys instead of strings
3151c52 ObjectArchive: Synchronize access internally
79371c4 HTTPCache: Use object archive synchronization
5420d69 GPUDevice: Use ObjectArchive for shader cache
7951eba GPUDevice: Support looking up cached shaders and opaque keys
f541abb GPUDevice: Add LoadPipeline() for supported backends
5ebeff9 GPU/HW: Use UIDs for shader generation
7c23927 GPU/HW: Use UIDs as shader cache keys
94e5f08 GPU/HW: Use multi-threaded shader compilation
74a743a GPU/HW: Use multi-threaded pipeline compilation
6fe06b9 VideoThread: Preserve command queue empty slot
7c173d9 VideoThread: Enforce command producer ownership
67d5943 VideoThread: Keep successful software fallback
e0519a8 VideoThread: Use video-owned fullscreen settings
7131d91 VideoThread: Destroy inline reconfigure commands
c54f16a VideoThread: Snapshot fullscreen state for resize
0cad5f5 VideoThread: Dispatch thread toggle failures safely
8c6ff3b VideoThread: Propagate thread startup failure
b5f0fb9 FullscreenUI: Tweak separator style
c81a747 Qt: Add multi-instruction selection to debugger
5cc77ac Qt: Persist debugger window state
9c335d9 Qt: Add icons to context menu
0874ed6 Qt: Fix empty debugger toolbar window title
5b056fc Qt: Fix icon missing on newly-added excluded paths
024face Qt: Add context menu to game list exclusion list
28ea031 GPU: Add Disable Upscaled Direct Textures option
63d72ac GameDB: DisableUpscaledDirectTextures for Fear Effect
d7036f3 Qt: Persist use-serial-file-names in cover downloader
6ef2714 MSBuild: Force SHA256 source file hashes
ef86bf1 InputManager: Add hotkey flag for UI-activatable
396dae9 InputManager: Release cancelled hold bindings
3d16465 InputManager: Clear bindings when input is lost
0ccc553 InputManager: Fix effect sync device matching
3af2d36 ImGuiManager: Track text input separately
5005991 InputManager: Type button transitions
e0e6920 FullscreenUI: Add 'Toggle Pause Menu' hotkey
142bdc8 FullscreenUI: Make cheats/achievements/leadboards hotkeys toggles
b54fc14 FullscreenUI: Synchronize pause menu toggle
8051b4f PerformanceCounters: Ignore reset boundary sample
b7e2050 Qt: Remove unnecessary usage of QOverload (#3799)
2f4724d D3DCommon: Use once_flag for library loading
7137ce2 Threading: Add lightweight Mutex/ConditionVariable wrappers
f46b6a8 Core: Use lock_guard for settings accessors
bbeac9c Core: Use Threading::Mutex for settings lock
3bb2b0b CDROMAsyncReader: Use lightweight threading abstractions
22072c9 Misc: Replace std::mutex with Threading::Mutex
00d407c CDROMAsyncReader: Convert to namespace
dbe1444 GPU/HW: Fix missing mask-or application on texture fallback
ac0e3a5 GPU/HW: Add 'Filter Framebuffer Uploads' advanced option
aaa8a68 GameDB: Enable background texture filtering on more games
04f821c Qt: Show inherited multi-sampling setting in game properties (#3800)
045b83b GPU/HW: Add additional texture filters
a90f008 GameDB: Fix typo in DisableUpscaledDirectTextures
12a1bf9 GameDB: Add mouse for Panekit - Infinitive Crafting Toy Case
742d2d1 CDROMAsyncReader: Use persistent thread
c309ca3 CDROM: Fix possible incorrect restart track when playing
1b81e58 FullscreenUI: Avoid double transition on achievements/leaderboards
865ed04 FullscreenUI: Fix toggling between windows with hotkeys
3496b62 FullscreenUI: Fix bullet separator at end of postfx settings
61f9548 FullscreenUI: Use popup list for texture filter options
24ecfdd Misc: Use C++23 elifdef/elifndef
d01e2ca System: Obey optimal frame pacing setting on Linux
187ad8f GPUDevice: Remove multiple sources of truth for shader dump directory
bce5e3d StringUtil: Fix buffer overflow in BytePatternSearch()
73b571c Timer: Use pause intrinsics when spin-sleeping
3622df2 Common: Use __yield() for CPU-pause on ARM
2287451 PageFaultHandler: Fix unused variable warning
fc8675c dep/vixl: Fix deprecated-literal-operator warning
60a798c StringUtil: Return first match in BytePatternSearch()
42cf88c dep/googletest: Update to v1.18.0
831305b Threading: Detect recursive locks in debug builds
4653247 Error: Add wrappers for translating messages without object
1067ebe HTTPDownloader: Use string view and move semantics for callback error
46fca8f HTTPDownloader: Ensure all callbacks invoke through PollEvents()
31a6103 Settings: Turn debug window visiblity into a bitmask
5684d1b Achievements: Replace recursive mutex with lightweight mutex
8f99b60 Qt: Add missing help text for savetitle/localizedtitle
4cd6e30 FullscreenUI: Replace recursive_mutex with lightweight mutex
108e721 FullscreenUI: Allow verification of runtime-populated images
4224e9a Updater: Directly wait for parent to exit instead of using shell
2c9866e Qt: Dynamically adjust log window colours to theme
3cb7b06 Disable auto analog in Trap Gunner; add missing traits for Spyro x Sparx (#3801)
4730259 Tests: Fix directory not cleaned up
8148a81 Threading: Add SharedMutex lightweight wrapper
f0fb6f7 Achievements: Avoid deadlock with leaderboard trackers disabled
7326f90 Achievements: Avoid lock when settings unchanged
31d4405 Achievements: Use a second mutex for notification state
86b333d Qt: Fix per-game achievement notification duration sliders
bbd8425 Qt: Simplify output latency widget updates
cd50666 Qt: Bind audio output volume through regular settings updates
288eee1 Update duckstation-qt_es.ts (#3802)
8e4dbf1 Qt: Fix latency description not updating
0d8dda3 Spanish (Spain) translation update 2026/09/24 (#3803)
62299a5 LightgunController: Create base class for lightgun controllers
e68536d NeGcon: Create common base class for NeGcon controllers
d9cb895 Controller: Unify some of the translation strings
73b5a24 Threading: Add SharedLockGuard helper
687178a InputManager: Internalise private functions
ee8b45a InputManager: Use atomics for rawinput/pointer count
58efbb8 InputManager: Use atomics for host pointer position
0ae22c1 ImGuiManager: Read pointer state directly from InputManager
501d3a9 InputManager: Reload input bindings after source hotplug
d76435c InputManager: Extract internal state to private header
eed22aa InputManager: Use a shared mutex for synchronization
7a8e8a0 InputManager: Use SmallString for binding conversions
aa77ed5 Qt: Move DS5 player LED setting into LED dialog
64b1e2b SDLInputSource: Simplify polling
59e2f1d SDLInputSource: Poll immediately after initializing
7495b76 SDLInputSource: Rely on reload to enable accelerometer
edd41df SDLInputSource: Use persistent identifiers when mapping
d040783 GameList: Fix possible null string-view construction
bbebc31 Common: Use second thread for assertion dialogs
608a0c3 Common: Use single isb for ARM PauseCPU()
4c721f3 VideoThread: Use dynamic spin loop on ARM
85c4ace Timer: Use global initializer for timer frequency on Windows
202c7d8 Qt: Add pill-label css class
8293e84 Qt: Display bound devices in controller pages
62e4845 Win32RawInputSource: Fix wrong OnInputDeviceConnected() call
a2aa729 GameList: Use correct string_view constructor
79fc545 Common: Remove unnecessary include
f9e12bb Qt: Simplify mute setting callback
56dbfea Qt: Fix doubled-up help description
f1359f0 Update duckstation-qt_es.ts (#3805)
f9ba754 Atualização Português do Brasil (#3806)
a2edf2d Update Italian translation (#3807)
0619481 MetalDevice: Drop feedback loop path
dc4e772 VulkanDevice: Fix incorrect hazard tracking in stream buffer
5e54cad GPU/HW: Fix background replacements disappearing after TC toggled off
10632b9 GPU/HW: Simplify pipeline layouts
2ab88c6 ImGuiManager: Move blur constants into main UBO
2859162 GPUDevice: Remove MultiTextureAndUBO pipeline layout
de1fd8c GPUDevice: Move UNIFORM_PUSH_CONSTANTS_SIZE into base class
9fcff15 D3D12Device: Remove MAX_UNIFORM_BUFFER_SIZE
d901b25 D3D12Device: Ensure all samplers are initialized in LookupSingle()
f3d2843 FullscreenUI: Add background image blurring for headers
c4b4496 FullscreenUI: Display subset icon as game icon in subset view
616c41d ImGuiManager: Stash overlays in separate draw list when transition active
d78fd23 ImGuiManager: Avoid unsafe read of context pointer on core thread
8a46ed8 Misc: Replace std::shared_mutex with Threading::SharedMutex
60f7ffa GPU: Fix scanline sync before vertical_display_start
bfb23fb GPU: Improve CRTC function readability
41c1fb1 Qt: Use posix_spawn for updater relau...
Download:
DuckStation v0.1-12083 x64
Source:Here
2026-10-27
Tags:
Console,
DuckStation,
Official_Build,
PS

NewsLetter
Bookmark
Submit News
Email Us

Random Related Topic
0 Comments
Post a Comment
Can't post a comment? Try This!