Dreamcast emulator written in Zig
236
stars
1,777
commits
Zig
primary language
Sep 11, 2026
updated
Deecy is an experimental Dreamcast emulator written in Zig.
Videos: Soul Calibur (May 2024), Grandia II (July 2024), DCA3 (January 2025)
dc_boot.bin and dc_flash.bin to the data folder.Change Directory to select the folder where you store your DC games.Deecy should detect, map and use controllers automatically. Host controllers can be manually assigned to guest controller ports in the Settings. Keyboard bindings can be customized in the settings. Defaults for controller 1:
| DC Controller | Host Keyboard (AZERTY) |
|---|---|
| A, B, X, Y | A, Z, Q, S |
| L, R triggers | W, X |
| Start | Enter |
| Left Stick | Numpad 8, 4, 5, 6 |
| Dpad | Directional Arrows |
| Key | Action |
|---|---|
| Escape | Show/Hide the UI |
| Space | Start/Pause emulation |
| F | Toggle Fullscreen |
| L | Toggle unlimited emulation speed |
| F1-F4 | Save state 1-4 |
| F5-F8 | Load state 1-4 |
| D | Toggle debug UI |
| N | Next Frame (Experimental) |
| Option | Action | Argument | Notes |
|---|---|---|---|
| -g | Load and Execute a disc file (.gdi/.cdi/.chd) | Path to a disc file | |
| --vmu | Replace default vmu file | Path to an vmu file | Disables per-game VMUs |
| --no-realtime | Starts with unlimited emulation speed | ||
| --load-state | Loads a save state on startup | Slot number (0-3) | Use with -g |
| --stop | Prevent automatic start of emulation | Use with -g or -b | |
| -b | Load and Execute a .bin file | Path to a .bin file | Will also skip the BIOS. Experimental |
| -i | Replace default IP.BIN file | Path to an IP.BIN file | Use with -b only |
| --fullscreen | Starts in fullscreen | ||
| --scif | Pipe serial port to /tmp/deecy/scif (Linux only) | Especially useful for prototyping using dcload-serial |
See the list here.
Contribute in its repository.
Install the correct zig version (see .zigversion).
You can use zigup to manage your installed zig versions, or get it from https://ziglang.org/download/.
zigup 0.16.0
Clone and build. Zig will fetch all dependencies automatically.
git clone https://github.com/Senryoku/Deecy # Clone the repo
cd Deecy
zig build run # Build and run in debug mode without any argument
zig build run --release=fast -- -g "path/game.gdi" # Build and run in release mode and loads a disc
You will also need to provide copies of dc_boot.bin and dc_flash.bin files in the data/ directory.
Building on Linux requires these additional dependencies:
-Ddreampicoport=falsesudo apt install libgtk-3-dev libudev-dev
Dependencies are managed by the build.zig.zon file.
-Duse_appdata_dir=true option (MIT).-Ddreampicoport=false. MIT)Uses data from MAME under the BSD-3-Clause licence (see src/gdrom_secu.zig). CHD related features (src/disc/chd.zig) are also
inspired by, or even direct ports of, their equivalent from the MAME project.
Rest is MIT.
Zig
98.0%
WGSL
2.0%
Dreamcast emulator written in Zig
236
stars
1,777
commits
Zig
primary language
Sep 11, 2026
updated
Deecy is an experimental Dreamcast emulator written in Zig.
Videos: Soul Calibur (May 2024), Grandia II (July 2024), DCA3 (January 2025)
dc_boot.bin and dc_flash.bin to the data folder.Change Directory to select the folder where you store your DC games.Deecy should detect, map and use controllers automatically. Host controllers can be manually assigned to guest controller ports in the Settings. Keyboard bindings can be customized in the settings. Defaults for controller 1:
| DC Controller | Host Keyboard (AZERTY) |
|---|---|
| A, B, X, Y | A, Z, Q, S |
| L, R triggers | W, X |
| Start | Enter |
| Left Stick | Numpad 8, 4, 5, 6 |
| Dpad | Directional Arrows |
| Key | Action |
|---|---|
| Escape | Show/Hide the UI |
| Space | Start/Pause emulation |
| F | Toggle Fullscreen |
| L | Toggle unlimited emulation speed |
| F1-F4 | Save state 1-4 |
| F5-F8 | Load state 1-4 |
| D | Toggle debug UI |
| N | Next Frame (Experimental) |
| Option | Action | Argument | Notes |
|---|---|---|---|
| -g | Load and Execute a disc file (.gdi/.cdi/.chd) | Path to a disc file | |
| --vmu | Replace default vmu file | Path to an vmu file | Disables per-game VMUs |
| --no-realtime | Starts with unlimited emulation speed | ||
| --load-state | Loads a save state on startup | Slot number (0-3) | Use with -g |
| --stop | Prevent automatic start of emulation | Use with -g or -b | |
| -b | Load and Execute a .bin file | Path to a .bin file | Will also skip the BIOS. Experimental |
| -i | Replace default IP.BIN file | Path to an IP.BIN file | Use with -b only |
| --fullscreen | Starts in fullscreen | ||
| --scif | Pipe serial port to /tmp/deecy/scif (Linux only) | Especially useful for prototyping using dcload-serial |
See the list here.
Contribute in its repository.
Install the correct zig version (see .zigversion).
You can use zigup to manage your installed zig versions, or get it from https://ziglang.org/download/.
zigup 0.16.0
Clone and build. Zig will fetch all dependencies automatically.
git clone https://github.com/Senryoku/Deecy # Clone the repo
cd Deecy
zig build run # Build and run in debug mode without any argument
zig build run --release=fast -- -g "path/game.gdi" # Build and run in release mode and loads a disc
You will also need to provide copies of dc_boot.bin and dc_flash.bin files in the data/ directory.
Building on Linux requires these additional dependencies:
-Ddreampicoport=falsesudo apt install libgtk-3-dev libudev-dev
Dependencies are managed by the build.zig.zon file.
-Duse_appdata_dir=true option (MIT).-Ddreampicoport=false. MIT)Uses data from MAME under the BSD-3-Clause licence (see src/gdrom_secu.zig). CHD related features (src/disc/chd.zig) are also
inspired by, or even direct ports of, their equivalent from the MAME project.
Rest is MIT.
Zig
98.0%
WGSL
2.0%