https://github.com/refaim/gravedigger
Translation toolkit for Dangerous Dave in the Haunted Mansion
https://github.com/refaim/gravedigger
dos retrogaming reverse-engineering translation
Last synced: 21 days ago
JSON representation
Translation toolkit for Dangerous Dave in the Haunted Mansion
- Host: GitHub
- URL: https://github.com/refaim/gravedigger
- Owner: refaim
- License: gpl-3.0
- Created: 2026-03-05T23:39:40.000Z (22 days ago)
- Default Branch: master
- Last Pushed: 2026-03-06T17:34:18.000Z (22 days ago)
- Last Synced: 2026-03-06T18:59:12.691Z (22 days ago)
- Topics: dos, retrogaming, reverse-engineering, translation
- Language: Python
- Homepage:
- Size: 159 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gravedigger
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.
## Usage
```
gravedigger unpack
gravedigger repack
```
`unpack` reads original game files (`.DD2`, `.EXE`) and produces editable assets: text strings as XLSX, graphics as PNG.
`repack` takes the edited translations and rebuilds game files ready to play.
## Installation
Download a standalone binary from [GitHub Releases](../../releases).
Or run from source (Python 3.13+):
```
uv sync
uv run gravedigger --help
```
## Development
```
make lint # ruff + mypy
make test # pytest (100% coverage required)
make build # standalone binary via nuitka
```
## Acknowledgements
- [dangerous-dave-re](https://github.com/gmegidish/dangerous-dave-re) by Gil Megidish — reverse-engineered game format documentation and reference implementation
- [gamecompjs](https://github.com/camoto-project/gamecompjs) by Adam Nielsen — PKLITE decompression algorithm reference
- [OpenTESArena ExeUnpacker](https://github.com/afritz1/OpenTESArena) by afritz1 — PKLITE decompression reference
- [depklite](https://github.com/hackerb9/depklite) by hackerb9 / NY00123 — PKLITE decompression reference
- [UNLZEXE](https://github.com/mywave82/unlzexe) by Mitugu Kurizono / Stian Skjelstad — LZEXE decompression algorithm reference
- [unpacklzexe](https://github.com/samrussell/unpacklzexe) by Sam Russell — LZEXE decompression reference (Python)
## License
[GPL-3.0-or-later](LICENSE)