DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices. https://www.dosbox-staging.org/
  • C++ 91.3%
  • C 6.3%
  • GLSL 0.5%
  • HTML 0.4%
  • Python 0.4%
  • Other 0.9%
Find a file
John Novak 8becfce8cf Remove weird stdout & stderr redirection to a file on Windows
This doesn't seem to serve any useful purpose, and it doesn't seem to
have much to do with the debugger. Probably some old stale code.

Removing this fixes a crash on Windows when Staging is installed to
Program Files (so we don't have write access to the program folder), the
console window is disabled, AND some library writes to stderr/stdout.
2026-08-22 13:51:57 +10:00
.claude/rules build: Upgrade to C++23 and fix compatibility issues 2026-05-17 20:57:15 -05:00
.github ci: Fix markdownlint breakage 2026-08-08 23:39:52 +10:00
cmake build: Kill the Meson build system with fire 🔥🔥🔥 2026-05-29 22:24:50 +10:00
docs docs: Rewrite vcpkg build tools paragraph 2026-08-22 13:46:58 +10:00
extras Migrate to SDL3 2026-06-22 07:13:46 -05:00
licenses Move Unicode license to a standard location 2025-07-31 19:23:40 +00:00
resources docs: Add German translations for newly-added CHCP help and KEYB help changes 2026-08-02 19:48:43 +10:00
scripts Migrate to SDL3 2026-06-22 07:13:46 -05:00
src Remove weird stdout & stderr redirection to a file on Windows 2026-08-22 13:51:57 +10:00
tests Externalize hardcoded cga_colors palettes 2026-07-22 08:21:30 +10:00
vcpkg-triplets build: Use static vcpkg libraries on Windows 2026-05-14 22:14:51 +10:00
website docs: Add mention of CHCP on the commands, localisation, and keyboard input pages 2026-08-02 10:34:19 +10:00
.clang-format build: Upgrade to C++23 and fix compatibility issues 2026-05-17 20:57:15 -05:00
.clang-tidy Create .clang-tidy 2024-02-28 13:16:55 +10:00
.gitattributes Cleanup .gitattributes usage 2025-09-29 17:33:00 +00:00
.gitignore Add zed directory to gitignore 2026-07-02 17:35:26 -05:00
.lsan-suppress Improve use of GCC sanitizers in CI runs (#811) 2021-01-10 18:56:31 -08:00
.mdl-styles ci: Adjust Markdown linter style 2026-04-16 10:02:17 +10:00
.muon.ini Check function presence before enabling loguru stacktraces 2023-12-04 01:08:23 -08:00
.pylint Adjust pylint rules 2026-04-23 10:56:00 +10:00
CMakeLists.txt Migrate to SDL3 2026-06-22 07:13:46 -05:00
CMakePresets.json Remove CMAKE_FIND_PACKAGE_PREFER_CONFIG from presets 2026-06-12 09:58:00 -05:00
LICENSE docs: Fix vendored library license list 2026-05-18 15:11:38 +10:00
README.md docs: Document vcpkg builds and cross-link build guides 2026-08-10 08:34:36 +10:00
vcpkg-configuration.json Migrate to SDL3 2026-06-22 07:13:46 -05:00
vcpkg.json build: Bump vcpkg baseline 2026-08-08 23:39:52 +10:00

DOSBox Staging

GPL-2.0-or-later Chat

DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.

It is a (mostly) drop-in replacement for older DOSBox versions—your existing configurations will continue to work, and you will have access to many advanced features.

For a detailed description of the project's scope please refer to the About page on our website.

Donations

If you enjoy using DOSBox Staging, please consider a donation to the project.

If you want to help but can't afford a donation, check out the Get involved page of our website for other ways to contribute.

Project website

https://www.dosbox-staging.org/

First-time users and people migrating from other DOSBox variants should start by reading the Getting started guide.

Build status

Windows (VisualStudio) build status macOS build status Linux x86_64 build status

Stable release builds

Regular users should use our stable release builds available on our project website:

Development builds

Development builds are automatically created on every commit merged to the main branch. You need to be logged in to GitHub to download the development builds.

Development builds

Key features for developers

Feature Status
Version control Git
Language C++23
Logging Loguru for C++3
Build system CMake + Ninja or Visual Studio 2022
Dependency manager vcpkg
CI Yes
Static analysis Yes1,2
Dynamic analysis Yes
clang-format Yes
Development builds Yes
Unit tests Yes4

Source code analysis tools

Dependencies

DOSBox Staging has the following library dependencies:

Dependency Provides feature vcpkg package name vcpkg version Optional?
FluidSynth General MIDI playback fluidsynth 2.5.1 no 🔴
GoogleTest Unit testing (development) gtest 1.70.0#2 yes 🟢
IIR Audio filtering iir1 1.10.0 no 🔴
libmt32emu Roland MT-32 and CM-32L emulation libmt32emu 2.7.1 yes 🟢
libpng PNG encoding of screen captures libpng 1.6.53 no 🔴
libslirp General purpose TCP-IP emulator libslirp 4.9.0 yes 🟢
Opus File CD Audio playback for Opus-encoded audio tracks opusfile 0.12+20221121#1 no 🔴
SDL 3 OS-agnostic API for video, audio, and eventing sdl3 3.4.10 no 🔴
SDL_image 3 Image decoding for many popular formats sdl3-image 3.4.4 no 🔴
Asio Network API for emulated serial and IPX asio 1.30.2 no 🔴
SpeexDSP Audio resampling speexdsp 1.2.1#1 no 🔴
zlib-ng ZMBV video capture zlib-ng 2.3.2 yes¹ 🟢

¹ You can use plain old zlib instead.

Dynamically loaded dependencies

Slirp is built separately as a dynamic library (via vcpkg) and is loaded on-demand at runtime if available. Please refer to the dosbox-staging-ext project for further details. To check the version of this dependency included in our stable and dev build packages, check out the comments of the releases packages of the dosbox-staging-ext project.

For information on the optional Nuked SC-55 CLAP audio plugin, check out the plugin's GitHub repository (note Nuked SC-55 CLAP is not a DOSBox Staging project).

Build instructions

Please refer to the platform specific build instructions:

For building versions prior to 0.83.0 (e.g. when bisecting), see the legacy Meson build guide.

Imported branches, community patches, old forks

Upstream commits are imported to this repo in a timely manner, see branch svn/trunk.

  • svn/* - branches from SVN
  • forks/* - code for various abandoned DOSBox forks
  • vogons/* - community patches posted on the Vogons forum

Git tags matching pattern svn/* are pointing to the commits referenced by SVN "tag" paths at the time of creation.

Additionally, we attach some optional metadata to the commits in the form of Git notes. To fetch them, run:

git fetch origin "refs/notes/*:refs/notes/*"

Website & documentation

Please refer to the documentation guide before making changes to the website or the documentation.