explaingit

stenzek/duckstation

10,140C++Audience · generalComplexity · 2/5Setup · moderate

TLDR

DuckStation is a fast, accurate PlayStation 1 emulator for Windows, Mac, and Linux that plays PS1 games with optional enhancements like higher resolution, texture filtering, geometry correction, and achievement support.

Mindmap

mindmap
  root((repo))
    What it does
      Runs PS1 games
      Accurate emulation
      Enhancement options
    Interfaces
      Desktop Qt UI
      Fullscreen couch mode
    Graphics Backends
      OpenGL and Vulkan
      Direct3D 11 and 12
      Metal on macOS
    Enhancement Features
      Higher resolution
      Texture filtering
      PGXP geometry fix
    Extra Features
      Save states
      Rewind and runahead
      RetroAchievements
    Requirements
      PS1 BIOS file
      Modern CPU and GPU
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Play PlayStation 1 games on a modern PC or Mac with increased resolution and improved texture quality.

USE CASE 2

Reduce input lag in PS1 games using the runahead feature for a more responsive feel during gameplay.

USE CASE 3

Earn modern achievement badges in classic PS1 games through built-in RetroAchievements integration.

USE CASE 4

Use rewind and save states to practice difficult sections of classic PS1 titles without losing progress.

Tech stack

C++QtOpenGLVulkanDirect3DMetal

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a PS1 BIOS file dumped from real hardware you own, not included with the emulator for legal reasons.

In plain English

DuckStation is a PlayStation 1 emulator, meaning it lets you run games originally released for Sony's first PlayStation console on a modern PC, Mac, or Linux machine. It is written in C++ and focuses on accuracy and speed, with a goal of making games playable without needing to tweak hidden settings or workarounds. The project is open source and actively maintained. To use it, you need a BIOS file dumped from an actual PlayStation 1 or PlayStation 2 console. This file is not included with the emulator for legal reasons, and you are expected to obtain it from hardware you own. Once you have that file, you can load game disc images in several common formats, including bin/cue, CHD, MDS/MDF, and others. The emulator has two interfaces: a desktop UI built with Qt, and a fullscreen interface suited to use from a couch with a controller. Both are included in the same download. The hardware renderer supports modern graphics APIs including OpenGL, Vulkan, Direct3D 11, Direct3D 12, and Metal, so it works across platforms and GPU types. It also includes a software renderer for cases where hardware rendering is not available or not wanted. Beyond basic emulation, the project includes a range of enhancement options. You can increase the rendering resolution above the original PlayStation's output, apply texture filtering, use a system called PGXP that corrects geometry wobble common in PS1 games, and apply post-processing shaders. There is also save state support, rewind, runahead (a technique for reducing input lag), cheat code loading, memory card management, video capture, and RetroAchievements integration for earning trophies in classic games. Prebuilt releases are available for Windows 10 or later, Linux as AppImage files, and macOS 13.3 or later. An automatic updater is built in and offers both a stable channel and a more frequent preview channel. The system requirements are modest: any reasonably modern CPU and a GPU from roughly the last ten years should work.

Copy-paste prompts

Prompt 1
I have a PS1 BIOS file and a CHD disc image. Walk me through setting up DuckStation on Windows to run a game with 4x resolution and PGXP enabled.
Prompt 2
How do I configure the runahead setting in DuckStation to minimize input lag in a PS1 fighting game?
Prompt 3
Help me set up DuckStation's RetroAchievements integration so I can earn trophies in classic PS1 games.
Prompt 4
What graphics backend and enhancement settings should I choose in DuckStation for an M2 MacBook to get the best visual quality?
Prompt 5
DuckStation has both a stable and preview update channel. What is the difference and which should I use for daily gaming?
Open on GitHub → Explain another repo

← stenzek on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.