Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

stenzek/duckstation

Games

A PlayStation 1 emulator for x86-64, ARM and RISC-V computers, focused on speed, accuracy and long-term maintainability.

11,015
992
C++
NOASSERTION
7 years old

Overview

DuckStation emulates the Sony PlayStation 1 (PSX) on desktop platforms, with a CPU recompiler/JIT for x86-64, armv7/AArch32, AArch64 and RV64. It targets playability and speed on low-end devices while keeping accuracy as a goal, and ships both a Qt desktop frontend and a fullscreen "Big Picture" UI built on Dear ImGui. It is aimed at people who own PS1 game discs or images and want to run them with enhancements such as upscaling, PGXP geometry correction, texture replacement and post-processing shaders features.

The emulator supports D3D11, D3D12, OpenGL, Vulkan and Metal hardware renderers, a vectorized software renderer, save states with runahead/rewind, controller presets, lightgun and NeGcon input, RetroAchievements and Discord Rich Presence. Disc images can be read from CD, bin/cue, CHD, MDS/MDF, CCD and unencrypted PBP, and multi-disc games can be merged into one library entry features.

Getting started

You need a PS1 or PS2 BIOS ROM image dumped from your own console; the emulator does not include one for legal reasons, and mismatched game/BIOS regions can cause compatibility issues README.

On Windows 10/11 (1809 or newer), the recommended path is the installer from the latest release. Run duckstation-windows-x64-installer.exe and follow the prompts; there is a separate ARM64 installer for Snapdragon laptops, and an SSE2 installer for CPUs without SSE4.1. If you prefer a portable setup, extract duckstation-windows-x64-release.zip into a subdirectory (the archive has no root folder), optionally create an empty portable.txt next to the executable, then launch duckstation-qt-x64-ReleaseLTCG.exe and finish the setup wizard. A missing vcruntime140_1.dll means the Visual C++ runtime needs updating README.

On Linux, download the x64 AppImage (or the arm64 variant), make it executable with chmod a+x, and run it; the first launch offers to create a launcher shortcut. It requires a distribution equivalent to Ubuntu 22.04 or newer README. On macOS 13.3+, extract duckstation-mac-release.zip and open DuckStation.app; Gatekeeper will ask you to approve it under Privacy & Security because the app is not code-signed README. Android builds are on Google Play, though the README states no support is provided for that app.

After setup, add your game directory through the UI, point the emulator at your BIOS in the user directory, and map controllers under Settings -> Controllers. Default keyboard bindings include W/A/S/D for the left stick, I/J/L/K for the face buttons, Enter for Start, F1/F2 for load/save state and F11 for fullscreen README.

Building from source

The repository builds with Visual Studio 2026 (Desktop C++ workload) on Windows, CMake + Ninja + Clang/LLD on Linux, and CMake + Xcode on macOS. Each platform needs the prebuilt dependency pack from the dependencies repository extracted into dep/prebuilt; the Linux build then configures with CMake into a build directory and compiles with Ninja, producing bin/duckstation-qt README.

Constraints and licensing

The emulator is licensed under CC-BY-NC-ND: unmodified source and binaries may be redistributed, but publishing modified versions is not permitted, and pre-configured packages count as modifications. Pull requests are restricted to prior contributors; patches are accepted by email or Discord README.

If you play PAL games with LibCrypt protection, place the matching .sbi file next to the disc image with the same base name (for example Spyro3.sbi for Spyro3.cue) or rely on CHD images with embedded subchannel data README. The emulator is not affiliated with Sony, and PlayStation/PSX are Sony trademarks.

HotRepo's take

DuckStation sits in a mature position in the PS1 emulation space: the November 2026 C++ daily list shows it at 6th place with 10 stars gained that day, and its 11k stars reflect years of development since 2019 rather than a single spike. Hacker News discussion has been mixed. A 2024 thread at 171 points included users arguing for GPL forks or PCSX2's PS1 support, while others defended the project's standalone-vs-RetroArch direction and the maintainer's broader emulation contributions HN discussion. In 2025 the author's blocking of Arch Linux builds drew a small thread, and a December 2025 post noted added support for the original SCPH-1002 GPU with reference to comparison screenshots HN post. Readers who want an actively maintained, feature-rich PS1 emulator with a native desktop UI will find the release and build paths above well documented; those who care about a permissive license or distribution packaging should weigh the ND terms and packaging restrictions before adopting it.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

Hacker News

DuckStation
▲ 171 · 59 comments · October 12, 2024
DuckStation author now actively blocking Arch Linux builds
▲ 14 · 3 comments · July 29, 2025
DuckStation author now actively blocking Arch Linux builds
▲ 10 · 8 comments · July 29, 2025

You might also like

  1. Vita3K/Vita3KAn experimental emulator that runs PlayStation Vita homebrew and commercial games on Windows, Linux, macOS and Android.C++5,898
  2. shadps4-emu/shadPS4A cross-platform PlayStation 4 emulator for people who want to run PS4 games on PC without the console.C++33,908