About this project

DuckStation is a PlayStation 1 (PSX) emulator focused on playability, speed, and long-term maintainability. It aims to be as accurate as possible while maintaining performance suitable for low-end devices. The default configuration supports all playable games with only some enhancements having compatibility issues. A PS1 or PS2 BIOS ROM image is required to start the emulator and play games. Users must dump the BIOS from their own console; no ROM is provided for legal reasons. ## Features - CPU recompiler/JIT for x86-64, armv7/AArch32, AArch64, and RISC-V/RV64. - Hardware renderers supporting D3D11, D3D12, OpenGL, Vulkan, and Metal. - Upscaling, texture filtering, and true color (24-bit) in hardware renderers. - PGXP for geometry precision, texture correction, and depth buffer emulation. - Accurate blending via Rasterizer Order Views/Fragment Shader Interlock. - Texture replacement system in hardware renderers. - Vectorized and multi-threaded software renderer. - Motion adaptive deinterlacing and adaptive downsampling filter. - Screen rotation for vertical (TATE) games. - Post-processing shader chains (GLSL, Reshade FX, Slang Presets). - Border overlays/bezels. - Fast boot to skip BIOS splash. - Save states with runahead and rewind. - Supports CD, bin/cue, MAME CHD, single-track ECM, MDS/MDF, CCD, and unencrypted PBP formats. - Preloading disc images to RAM. - Multi-disc game merging with shared memory cards. - Automatic PPF patch loading. - Direct booting of homebrew executables and PSF files. - Time-stretched audio. - Digital/analog controllers, lightguns (GunCon, Justifier), NeGcon, multitap (up to 8 devices). - Controller presets and per-game configuration. - Qt and Big Picture UI. - Automatic updates (Stable/Preview channels). - Automatic content scanning with English and native titles. - Memory card editor and save importer. - Emulated CPU overclocking. - Cheat database (4000+ games) and patch database. - Live memory scanning/editing. - ISO browsing and file extraction. - Integrated and remote debugging. - RetroAchievements and Discord Rich Presence. - Video capture via Media Foundation (Windows) and FFmpeg (all platforms). - Free camera function. - Parallel port cartridge emulation. ## System Requirements - CPU: x86_64, AArch32/armv7, AArch64/ARMv8, or RISC-V/RV64. - GPU: OpenGL 3.1/OpenGL ES 3.1/Direct3D 11 Feature Level 10.0/Vulkan 1.0 (basically anything from the last 10 years). - Controller: SDL, XInput, or DInput compatible (e.g., Xbox controllers). ## Downloading and Running Prebuilt binaries are available for Windows (x64/ARM64), Linux (AppImage x64/ARM32/ARM64), and macOS (Universal). The latest builds are on GitHub Releases. The automatic updater has Stable and Preview channels. Windows requires Windows 10/11 version 1809 or newer. Linux AppImages require a distribution equivalent to Ubuntu 22.04 or newer. macOS requires Ventura 13.3 or newer. Android builds are available on Google Play but are not officially supported. For LibCrypt-protected PAL games, place the .sbi file next to the CD image with the same name. CHD images with built-in subchannel info are also supported. ## Building Instructions are provided for Windows (Visual Studio), Linux (CMake/Ninja), and macOS (CMake/Xcode). Dependencies packs are available from the duckstation/dependencies repository. ## User Directories User data (BIOS, settings, memory cards, save states) is stored in platform-specific directories. A portable mode can be enabled by creating a `portable.txt` file next to the executable. ## Contributing and Forks Redistribution of unmodified versions is permitted under CC-BY-NC-ND. Modified versions are not allowed. Contributions are accepted via email or Discord; pull requests are restricted to prior contributors. ## Disclaimers PlayStation and PSX are trademarks of Sony Interactive Entertainment. This project is not affiliated with Sony.