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.

Hercules
Blockout (California Dreams, 1989)
Flight Simulator 4 (Microsoft, 1989)
SimAnt (Maxis, 1991)
Wonderland (Magnetic Scrolls, 1990)
Bass Tour (Dick Olsen, 1988)
CGA
Popcorn (Lacral Software, 1988)
Pharaoh's Tomb (Apogee Software, 1990)
SimCity (Maxis, 1989)
Tetris (Spectrum Holobyte, 1988)
Soko-Ban (Spectrum Holobyte, 1988)
Psion Chess (Psion, 1985)
Tandy
Zeliard (Game Arts / Sierra On-Line, 1990)
Grand Prix Circuit (Accolade, 1988)
Maniac Mansion (Lucasfilm Games, 1987)
Silpheed (Game Arts / Sierra On-Line, 1989)
EGA
OutRun (Sega, 1989)
Death Knights of Krynn (SSI, 1991)
Railroad Tycoon (MicroProse, 1990)
Space Quest III (Sierra On-Line, 1989)
Commander Keen 4 (Apogee Software, 1991)
Cyrus II Chess (Alligata Software, 1986)
EGA Trek (Nels Anderson, 1988)
VGA
The Legend of Kyrandia: Hand of Fate (Westwood Studios, 1993)
Budokan: The Martial Spirit (Electronic Arts, 1989)
Epic Pinball (Epic MegaGames, 1993)
The Incredible Machine (Dynamix / Sierra On-Line, 1992)
SVGA
SimCity 2000 (Maxis, 1993)
Warcraft II (Blizzard Entertainment, 1995)
Panzer General (SSI, 1994)
Master of Orion II (MicroProse, 1996)

dosbox-automation features

Some highlights and features of dosbox-automation, what it offers for gamers, automations and integration needs alike:

Automation
Graphics
Sound
Input
System

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.