Translation toolkit for Dangerous Dave in the Haunted Mansion (DOS, 1991).
Extracts translatable resources (text strings) from the game into editable formats and repacks them back into working game files, enabling fan translations into any language.
Supports arbitrary-length replacement strings — translated text is not limited to the original string length. When a string exceeds its original slot, all strings are relocated to an appended block with patched cross-references.
gravedigger unpack <game_dir> <output_dir>
gravedigger repack <output_dir> <repacked_dir>
unpack reads original game files (.DD2, .EXE) and produces editable assets:
| Resource | Format | Notes |
|---|---|---|
| Text strings (menus, messages, win/lose screens) | XLSX | One row per string; translated text can exceed the original length |
| Sprites and tiles | PNG | Indexed-color images with original palette |
| Anti-piracy exit screen (80×25 VGA text mode) | XBIN | Can be edited in Moebius, a free ANSI/XBIN art editor |
repack takes the edited translations and rebuilds game files ready to play.
Download a standalone binary from GitHub Releases.
Or run from source (Python 3.13+):
uv sync
uv run gravedigger --help
make lint # ruff + mypy
make test # pytest (100% coverage required)
make build # standalone binary via nuitka
- dangerous-dave-re by Gil Megidish — reverse-engineered game format documentation and reference implementation
- gamecompjs by Adam Nielsen — PKLITE decompression algorithm reference
- OpenTESArena ExeUnpacker by afritz1 — PKLITE decompression reference
- depklite by hackerb9 / NY00123 — PKLITE decompression reference
- UNLZEXE by Mitugu Kurizono / Stian Skjelstad — LZEXE decompression algorithm reference
- unpacklzexe by Sam Russell — LZEXE decompression reference (Python)