Skip to content

Captive DOSBox X Startup

Daniel Nylander edited this page Aug 13, 2026 · 15 revisions

Captive DOSBox-X Startup

This is the repeatable procedure for testing Captive with the player's original DOS files. It deliberately runs the authentic CAPTIVE.BAT 1 chain. Do not launch CAPPO.EXE directly.

Daily launch

From the OpenCaptive repository:

tools/run_captive_dosbox_x.sh /path/to/original/captive

The directory must contain the original CAPTIVE.BAT and its accompanying files. OpenCaptive must not create replacement planets, routes, landing points, droids or dungeon data when those files are missing.

In DOSBox-X:

  1. Choose 1 for VGA.
  2. Click inside the game viewport so it owns keyboard and mouse focus.
  3. Let the original intro finish.
  4. Use Ctrl+F10 only to release or recapture the DOSBox-X mouse.

If an old DOSBox-X quit warning remains above the game, dismiss it before sending game keys. A warning window captures the keyboard and makes the game look frozen.

Captive holomap controls

Control Original action
Keypad 7 ORBIT; begin travel to the selected planet
Keypad 9 LAND; valid only after arrival in orbit
Keypad 8 / 2 Move forward / backward
Keypad 4 / 6 Turn left / right
Keypad 1 / 3 Original space-navigation zoom controls
On-screen arrows Same original navigation actions

The blinking green point identifies the destination planet. After arrival, the white circle identifies the landing point. FLIGHT PATH SET only confirms that the route was selected; it does not prove arrival. Wait for the original in-orbit state before pressing LAND. If the landed view contains only water, the selected point was wrong.

Verification boundary

The current real-data DOSBox-X gate proves:

original intro -> Mission 0001 holomap -> target selection -> FLIGHT PATH SET

It does not yet claim:

ARRIVED AT DESTINATION -> NOW IN ORBIT -> LANDING SUCCESSFUL -> dungeon view

Those states require changed original runtime memory and matching original VGA output. Static reference images, generated maps and direct memory writes are not accepted as proof.

Diagnostic commands

tools/verify_captive_navigation.sh /path/to/original/captive build
tools/verify_captive_target_route.sh /path/to/original/captive build
Direct debugger queue injection is not used as parity evidence: it is not
equivalent to a real keyboard event.

The diagnostics use original emulator data and are not the normal interactive launch path. A debugger session must be closed before starting a fresh manual test.

Clone this wiki locally