dosbox-automation v0.84-da3
About dosbox-automation
dosbox-automation is a DOSBox Staging (0.82/0.84-alpha) fork built around automation. It adds an HTTP REST API with token-based authentication and a built-in Swagger UI, and a sandboxed Lua scripting engine that drives execution, input, and system state with frame-accurate timing. Together they let a game launcher, a test harness, or a plain script launch, drive, and inspect DOS applications and games.
The automation layer covers input recording and video recording with replay, screen text reading in text modes, memory and register inspection for debugging, and the whole life cycle of a DOS program. Recordings carry the settings that determinism depends on, so a captured installation replays the same way on another machine. An on-screen display shows automation, recording, and script activity whenever something drives the machine.
A Python reference implementation ships with the source. It reads declarative TOML install recipes and turns them into complete unattended installations, disk swaps included, through the REST API and the Lua engine. The same recipes run in the test suite: about 200 additional unit tests on the C++ side (14 of them exercise the API authentication alone), about 200 Python-based integration tests, and eight full installation runs tested end to end, six of them complete game installs.
On the emulation side, everything upstream provides is here, along with a number of bug fixes we made on the way and additional hardening throughout the application, making this a more secure version of the emulator overall. For better game music out of the box, we bundle the high quality FluidR3 General MIDI soundfont, enabled by default.
For a list of DOS emulation features, see the feature panels below.
Security
Running an optional web server with a REST API increases the attack surface, and the fork treats it that way: enhanced security and more current libraries where it is relevant, a tight policy on the web server controlling from where drive mounts are allowed, and security fixes all over the application that upstream does not have. For the details, read our security policy.
We appreciate any reproducible security reports. For issues that should not be public before a fix exists, mail the address given in the policy; you will get a human reply. Everything else is welcome as a bug report on our issue tracker - we believe in open technical discourse about security, so findings, analysis, and patches are welcome in public.
Video Showcase
These videos were recorded and scripted with the end-to-end sample implementation included in the source distribution, which reads TOML install recipes and drives the emulator through the REST API. The implementation is written in Python and can be used as the base for an actual integration or launcher plugin.
Game Screenshots
One reel per graphics card, from Hercules to SVGA. All screenshots are captured from dosbox-automation's own rendering.
dosbox-automation features
Some highlights and features of dosbox-automation, what it offers for gamers, automations and integration needs alike:
- HTTP REST API with bearer-token authentication and Swagger UI
- Sandboxed Lua scripting engine with frame-accurate timing
- Keyboard and mouse input injection, recording, and replay
- Video recording and single-frame capture over the API
- Screen text reading in every text mode
- A Python reference implementation for TOML install recipes: unattended game installation, disk swaps included
- On-screen display of automation activity
- Mount control, drive swapping, application life cycle management
- Adaptive CRT shader emulation, zero configuration
- Hercules to SVGA, 3dfx Voodoo, ReelMagic
- Aspect-ratio correct output and captures
- Integer scaling and viewport control
- Monochrome and composite CGA modes
- Sound Blaster 16, AdLib Gold (Nuked OPL), Gravis UltraSound
- General MIDI via FluidSynth: high quality FluidR3 soundfont included
- Per-channel reverb, chorus, and crossfeed
- CD audio tracks from Opus, OGG, MP3, FLAC
- Roland MT-32 emulation (needs separately obtained ROMs)
- Raw mouse input and mouse-wheel support
- Serial mice and dual-mouse gaming
- Modern controllers with up to 10 axes
- Real-time joystick calibration
- Fully remappable keyboard shortcuts
- Sensible defaults, layered configurations
- 64-bit dynamic recompilation (x64 and ARM)
- Physical and IDE CD-ROM support
- Ethernet, modem, and IPX networking
- Resizable window, high DPI, VRR frame pacing
License
dosbox-automation is an independent project, licensed under GNU GPL v2+, based on DOSBox Staging.
dosbox-automation is developed with tool-assisted coding. All code is reviewed, tested, and approved by a human developer.





























