Audio & video captures¶
DOSBox Staging can capture screenshots, record audio, and record video
directly from the emulator. By default, all captures are saved to the
capture folder in the current working
directory. You can change this with the
capture_dir setting.
Screenshots¶
Screenshots can be saved in multiple formats: upscaled (sharp pixels, aspect-corrected), rendered (post-shader, exactly what you see on screen), or raw (the framebuffer’s contents with 1:1 pixel aspect ratio).
Use Ctrl+F5 / Cmd+F5 to take a screenshot using the default
format(s) configured by the
default_image_capture_formats setting.
Keybindings for taking single screenshots in a specific format are also
available.
Screenshots are captured in the background on separate threads, so taking
one doesn’t pause emulation or cause audio glitches, even if you spam the
screenshot hotkey or capture at 4K in rendered mode.
Aspect ratio correction¶
By default, screenshots are captured in the same aspect ratio you see on
screen (the upscaled format), not the raw, non-corrected image. This
matters because most 320×200 and similar low-resolution DOS games need
aspect ratio correction to look right; only a small fraction of games
actually want square pixels. DOSBox Staging performs aspect ratio correction
out of the box, and aspect-ratio-correct screenshots follow the same logic,
rather than reproducing the square-pixel captures common on emulators (and,
as a result, across many DOS game videos and screenshots online).
In upscaled mode, the image is integer or bilinear-sharp upscaled to
around 1200 pixels of vertical resolution. For example:
- 320×200 content is upscaled to 1600×1200
- 640×480 content is upscaled to 1920×1440
- 640×350 content is upscaled to 1400×1050 (3× vertical, 2.1875× horizontal scaling)
Upscaled captures are only about 30% larger than raw screenshots on average.
raw captures always contain the actual emulated DOS framebuffer image at its
native resolution (e.g., 320×200 modes are captured as 320×200 PNG
files), regardless of other settings. The one exception is
composite CGA, PCjr, and Tandy modes, which
are internally rendered width-doubled to leave enough horizontal resolution
for composite artifacts; raw captures of these modes preserve that
width-doubling (e.g., 640×200 composite CGA is captured as a
1280×200 PNG).
Video capture¶
Press Ctrl+F7 / Cmd+F7 to start and stop video recording. Video is
captured as an AVI file using the lossless ZMBV codec. Like raw
screenshots, video capture records the raw emulated framebuffer contents
without any CRT shader applied, though deinterlacing is applied. Video
capture uses the optimized zlib-ng library, which is several times faster
than plain zlib, so you can capture at higher resolutions without dropped
frames or glitches, even on older CPUs.
Warning
If your host CPU can’t keep up with recording in realtime, MIDI output may need to be timestretched a little, and other audio may need to be stretched too, to keep it in sync with the video. This can introduce audible artifacts. Enabling CPU throttling is one way to reduce this, but if it keeps happening, the real fix is a faster machine.
Audio capture¶
Press Ctrl+F6 / Cmd+F6 to start and stop audio recording. Raw MIDI and OPL output can also be captured for those who want to tinker with game music outside the emulator.
Shortcuts¶
| Windows / Linux | macOS | Action |
|---|---|---|
| Ctrl+F5 | Cmd+F5 | Take screenshot (default format) |
| Alt+F5 | Alt+F5 | Take rendered screenshot |
| Ctrl+F6 | Cmd+F6 | Start/stop audio recording |
| Ctrl+Alt+F6 | Cmd+Alt+F6 | Start/stop MIDI recording |
| Ctrl+F7 | Cmd+F7 | Start/stop video recording |
See the Keyboard shortcuts appendix for the full list of shortcuts.
Configuration settings¶
Capture settings are to be configured in the [capture] section.
capture_dir¶
- Directory where the various captures are saved, such as audio, video,
MIDI, and screenshot captures (
capturein the current working directory by default).
default_image_capture_formats¶
-
Set the capture format of the default screenshot action.
If multiple formats are specified separated by spaces, the default screenshot action will save multiple images in the specified formats. Keybindings for taking single screenshots in specific formats are also available.
Possible values:
-
upscaleddefault – The image is captured in the same aspect ratio you see on screen. It’s integer or bilinear-sharp upscaled to around 1200 pixels of vertical resolution, and always uses sharp pixels regardless of the shader in use. -
rendered– The post-rendered, post-shader image is captured – an exact pixel-by-pixel replica of what you see on screen. Filenames end with-rendered. -
raw– The contents of the raw framebuffer are captured (always results in square pixels). Filenames end with-raw.
Example, capturing both raw and upscaled images on every screenshot:
-