-
Notifications
You must be signed in to change notification settings - Fork 0
Game Preservation
Documentation baseline: v1.1.126. OpenCaptive uses player-supplied original media and content hashes rather than bundling game data.
This page documents the original Captive and Liberation releases, their platform variants, and preservation considerations.
| Year | Platform | Publisher | Notes |
|---|---|---|---|
| 1990 | Amiga | Mindscape | Original release by Tony Crowther |
| 1990 | Atari ST | Mindscape | Simultaneous with Amiga |
| 1992 | DOS | Mindscape | v1.06 (Oct 7 1992), LZEXE compressed |
| Feature | DOS | Amiga | Atari ST |
|---|---|---|---|
| Resolution | 320x200 | 320x200 (256 overscan) | 320x200 |
| Colours | 32 (VGA) | 32 (OCS/ECS) | 16 (ST low) |
| Graphics format | PL5 (5bpp packed) | IFF ILBM / custom | Degas Elite / custom |
| Animation | ANM (XOR delta) | IFF ANIM | ANM variant |
| Compression | LZEXE (executable) | RNC Method 1 | RNC Method 1 |
| Sound | AdLib/Roland/SB/Speaker | Paula 4-channel | YM2149 |
| Music format | MIDI | Amiga module | Amiga module variant |
| Disk format | DOS files | ADF (880K OFS) | FAT12 disk image |
| Map generation | Identical PRNG | Identical PRNG | Identical PRNG |
The map generation algorithm and PRNG are identical across all platforms — the same mission seed produces the same dungeon layout. Visual assets differ in format but represent the same content.
Cross-platform verification: Amiga ADF panel sheet and DOS PL5 panel sheet produce identical 64,000-pixel output (verified by OpenCaptive's captive_panel_match tool).
Original (packed): 73,056 bytes, LZEXE v0.91
Unpacked: 144,556 bytes
Packed SHA-256: 71bcf404103f1ac2920800a8bc166939bb49a1204cf51bebce8aca7dd5faafde
Unpacked SHA-256: fa7d5ca76d26f614476ed41f27cf737084942e9216b20b4605734df9ede9aee4
Standard 3.5" DD floppy disk (880 KiB), OFS filesystem. The amiga_ofs_inventory tool inventories content by SHA-256 without using filenames.
- ADF disk images: 880 KB (DD) standard Amiga floppy format, 80 tracks x 2 sides x 11 sectors x 512 bytes
-
LZEXE compression: CAPPO.EXE uses LZEXE v0.91; unpacked SHA-256:
fa7d5ca76d26f614476ed41f27cf737084942e9216b20b4605734df9ede9aee4 - ZIP archive support: OpenCaptive scans ZIP archives with nested file discovery, identifying game resources by SHA-256 regardless of archive structure or filenames
- Atari ST: FAT12 disk images with BIOS parameter block at offset 11
- DOS version: widely preserved, LZEXE decompression well understood
- Amiga version: ADF images commonly available in preservation archives
- Atari ST version: disk images available, FAT12 format straightforward
- All versions: map generation verified to produce identical output from same seed
| Year | Platform | Publisher | Notes |
|---|---|---|---|
| 1993 | Amiga | Mindscape | Original release, 5 floppy disks |
| 1994 | Amiga CD32 | Mindscape | CD version with Red Book audio, CityGen 1.12 |
No DOS or Atari ST version was released.
| Feature | Amiga floppy | Amiga CD32 |
|---|---|---|
| Media | 5x ADF (880K each) | 1x CD-ROM (ISO9660 + audio) |
| Animation | IFF ANIM opt5 | IFF ANIM (PACK/PALL/SCPT) |
| Compression | RNC Method 1 | RNC Method 2 |
| Music | Amiga module | 10 Red Book CD audio tracks |
| CityGen | Built-in | External executable (v1.12, 1994-01-03) |
| Sprites | AMOS sprite bank | AMOS sprite bank (AmSp) |
Track 01: Data (ISO9660, MODE1/2352, CDTV extensions)
Track 02: Audio — Mark Knight
Track 03: Audio — Mark Knight
...
Track 11: Audio — Mark Knight
Data track SHA-256: f807b1385c0996d54ed10afab271a7dd31d2c6dc6a18f13196ad2a79a0af8a80
The ISO9660 filesystem contains:
| Category | Files | Description |
|---|---|---|
| Executable | captiveII |
Main game binary (245,628 bytes, 68000) |
| City generators |
CityGen, BuildingGen
|
AmigaOS relocatable executables |
| 3D vectors | *.x3g |
City, room, monster, NPC, object geometry |
| Wall textures | WALL*.VGM |
VGM format wall textures |
| Sprites |
MainSP.Img, MainSP16.Img
|
Sprite sheets |
| UI graphics |
3dView.Img, backpack.img, Taxi.Img
|
Pre-rendered UI elements |
| Menu | GameMenu.spr |
Menu sprites |
| Fonts | {0-3}Liberation.FNT |
4 font variants |
| Data |
CityGen, BuildingGen, Wall.Log
|
Generation data and mappings |
| Saves | Lib-Saves/ |
Save game directory |
5 standard 3.5" DD floppy disks (4.4 MiB total):
- CaptiveII_Disk1 through CaptiveII_Disk4
- Boot disk
- OFS filesystem
- ADF disk images: 880 KB (DD) for floppy release, 1760 KB (HD) not used
- ISO 9660: CD32 data track in MODE1/2352 raw sectors with CDTV extensions
- Red Book audio: 10 CD audio tracks (Track 02-11) by Mark Knight
- CD32 version: raw BIN/CUE images preserved; ISO9660 is standard and readable
- Amiga floppy version: ADF images available; 5-disk set is complete
- Audio tracks: Red Book CD audio, preserved as part of BIN/CUE image
- CityGen/PlotGen: relocatable AmigaOS executables requiring 68000 analysis
Original game data is never committed to the repository, bundled in releases, or emitted by tools. All content is addressed by SHA-256 — the engine locates and verifies resources by their cryptographic hash, never by filename or path.
OpenCaptive uses SHA-256 content hashes as the sole identity for game resources. This means:
- Renamed files are still recognized
- Repacked archives work transparently
- Different release dumps of the same content match
- Corrupted or modified files are rejected
Original game data is never committed to the repository, bundled in releases, or emitted by tools. Discovery tools (amiga_ofs_inventory, liberation_inventory) output only digests and byte counts.
# Verify all known resources
opencaptive --data /path/to/media --verify-data all
# Inventory Amiga media
./build/amiga_ofs_inventory /path/to/media <adf-sha256>
# Inventory Liberation CD32
./build/liberation_inventory /path/to/media
# Extract resource for offline analysis (output stays outside repo)
./build/liberation_extract /path/to/media <resource-sha256> /tmp/output.binOpenCaptive includes frame-comparison tools for pixel-exact verification:
-
--capture-frame— capture a rendered frame -
--compare-frames— compare two frames -
--compare-frames-rect— compare a specific region -
--extract-dos-vga— extract VGA state from a DOS memory dump
Current verification status:
- Liberation intro: 320x162 region — 0 deviating pixels (pixel-perfect)
- Liberation city: 320x167 region — 0 deviating pixels (pixel-perfect)
- Captive DOS startup and Mission 0001 holomap route-selection boundary: verified against the original DOSBox-X runtime
- Captive arrival, orbit, landing and first-person dungeon transition: not yet verified end-to-end
The Captive DOSBox-X diagnostic can currently authenticate the original startup
through the real Mission 0001 FLIGHT PATH SET state. It does not authenticate
arrival, orbit, landing or dungeon entry. Static frames, guessed coordinates,
procedural routes and generated status text are not accepted as evidence.
The Captive verification boundary is deliberately conservative. FLIGHT PATH SET, a static orbit reference or an unchanged memory dump does not prove that the ship arrived. Original runtime state and original VGA output must both change before a later phase is accepted.
The same rule applies to landing and dungeon entry: a water-only landing, hard-coded coordinate, generated map, replacement marker, or synthetic status message is not valid evidence. Tests stop at the last state that the original DOSBox-X runtime actually produced.
- The Ultimate Captive Guide — map generation documentation
- Hall of Light — Captive — Amiga release database entry
- Hall of Light — Liberation — Amiga/CD32 release database entry