# stenzek/duckstation

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/stenzek-duckstation).**

9,754 stars · 883 forks · C++ · other

## Links

- GitHub: https://github.com/stenzek/duckstation
- awesome-repositories: https://awesome-repositories.com/repository/stenzek-duckstation.md

## Topics

`appimage` `emulator` `enhancements` `fast` `hardware-renderers` `jit-compiler` `opengl` `playstation` `ps1` `psx` `vulkan`

## Description

DuckStation is a high-performance PlayStation 1 emulator that simulates the original console's hardware logic and CPU and GPU on modern computer systems. It functions as a console hardware emulator, disc image loader, and game state manager to execute original games and preserve retro software.

The project differentiates itself through a game graphics upscaler that improves visual clarity using texture filtering, geometry precision corrections, and custom shader chains. It also features advanced memory manipulation tools for layered patch injection and the application of community cheat codes to modify game behavior.

The emulator's broader capabilities include comprehensive game state management with rewind and save state functionality, as well as a disc image loading system that handles subchannel data to bypass copy protection. It further provides input mapping for controllers and keyboards, specialized peripheral emulation, and gameplay video capture.

## Tags

### Graphics & Multimedia

- [High-Performance Game Emulators](https://awesome-repositories.com/f/graphics-multimedia/c-multimedia-libraries/high-performance-game-emulators.md) — Acts as a high-performance PlayStation 1 emulator that simulates original console hardware logic.
- [Disc Image Loaders](https://awesome-repositories.com/f/graphics-multimedia/disc-image-loaders.md) — Reads game data from physical media or digital disc image formats to initialize sessions.
- [Game Graphics Upscalers](https://awesome-repositories.com/f/graphics-multimedia/game-graphics-upscalers.md) — Implements a specialized graphics upscaler that uses texture filtering and geometry precision corrections to improve visual clarity.
- [Console Emulators](https://awesome-repositories.com/f/graphics-multimedia/legacy-media-emulators/console-emulators.md) — Runs original console games and logic on modern systems using high performance recompilation. ([source](https://github.com/stenzek/duckstation#readme))
- [Subchannel Data Emulation](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback/optical-disc-playback/subchannel-data-emulation.md) — Reads auxiliary subchannel data from disc images to emulate hardware-level copy protection and regional checks.
- [Vertex Precision Corrections](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/3d-math-and-geometry-toolkits/geometry-primitives/coordinate-mapping/3d-geometry-utilities/vertex-precision-corrections.md) — Provides geometry precision corrections that eliminate jitter and improve 3D visual stability.
- [Graphics Enhancers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/graphics-enhancers.md) — Filters textures and corrects geometry precision to improve the visual clarity of graphics. ([source](https://github.com/stenzek/duckstation#readme))
- [Post-Processing Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/post-processing-pipelines.md) — Processes rendered frames through a sequence of GPU programs to apply visual filters and upscaling.

### Game Development

- [Emulation Save Management](https://awesome-repositories.com/f/game-development/emulation-save-management.md) — Creates and restores system save states with integrated rewind and memory editing capabilities. ([source](https://github.com/stenzek/duckstation#readme))
- [Emulation State Management](https://awesome-repositories.com/f/game-development/emulation-state-management.md) — Manages game progress through memory-level save states and rewind functionality.
- [Retro Game Emulation](https://awesome-repositories.com/f/game-development/retro-game-emulation.md) — Preserves classic console games by running original disc images on modern hardware.
- [Modding Toolkits](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/modding-toolkits.md) — Provides tools for applying external patches and community cheat codes to modify game mechanics.
- [Game Memory Modifiers](https://awesome-repositories.com/f/game-development/game-memory-modifiers.md) — Applies community cheat codes by injecting values into game memory to modify gameplay mechanics. ([source](https://github.com/stenzek/duckstation#readme))

### Hardware & IoT

- [Memory-Mapped I/O Simulation](https://awesome-repositories.com/f/hardware-iot/vintage-hardware-simulation/memory-mapped-i-o-simulation.md) — Simulates console hardware by mapping registers and RAM to specific memory addresses in the host process.
- [Emulated Input Mappings](https://awesome-repositories.com/f/hardware-iot/emulated-input-mappings.md) — Binds physical keyboard and game controllers to virtual hardware inputs using standard drivers. ([source](https://github.com/stenzek/duckstation#readme))

### Operating Systems & Systems Programming

- [State Snapshotting](https://awesome-repositories.com/f/operating-systems-systems-programming/computer-architecture/instruction-execution-models/instruction-level-emulators/state-snapshotting.md) — Captures full CPU and memory states to enable instant save and rewind functionality.
- [Binary Instruction Patching](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-instruction-patching.md) — Supports overwriting memory addresses with external patch files to modify game behavior.
- [Digital Copy Protection Bypasses](https://awesome-repositories.com/f/operating-systems-systems-programming/digital-copy-protection-bypasses.md) — Loads subchannel information files to bypass digital copy protection on specific game discs. ([source](https://github.com/stenzek/duckstation#readme))

### Software Engineering & Architecture

- [Dynamic Recompilation Engines](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/cpu-optimization-strategies/hardware-instruction-targeting/instruction-set-targets/instruction-set-architecture-learning/dynamic-recompilation-engines.md) — Implements a dynamic recompilation engine to translate guest machine code into host CPU instructions for high-performance emulation.
- [Applied Patch Tracking](https://awesome-repositories.com/f/software-engineering-architecture/code-patching-engines/patch-generators/automated-patch-appliers/applied-patch-tracking.md) — Integrates external patches and community cheat databases to modify game behavior. ([source](https://github.com/stenzek/duckstation#readme))
- [Runtime Patching Engines](https://awesome-repositories.com/f/software-engineering-architecture/code-patching-engines/patch-generators/runtime-patching-engines.md) — Modifies game binaries in memory by overlaying external patch files before the code is executed.
- [Game Binary Patching](https://awesome-repositories.com/f/software-engineering-architecture/game-binary-patching.md) — Loads external patch files to modify game behavior and update regional settings. ([source](https://github.com/stenzek/duckstation#readme))

### Part of an Awesome List

- [Gaming and Game Development](https://awesome-repositories.com/f/awesome-lists/media/gaming-and-game-development.md) — Improves the visual quality of vintage games using resolution upscaling and texture filtering.

### Networking & Communication

- [Peripheral Emulators](https://awesome-repositories.com/f/networking-communication/virtual-peripheral-bridges/peripheral-emulators.md) — Simulates unique PlayStation hardware controllers and cartridges using available host device inputs. ([source](https://github.com/stenzek/duckstation#readme))
