refaim/gravedigger
GitHub: refaim/gravedigger
《Dangerous Dave in the Haunted Mansion》DOS 游戏的完整翻译工具包,支持资源提取、任意长度文本替换和游戏文件重建。
Stars: 0 | Forks: 0
# Gravedigger
**Dangerous Dave in the Haunted Mansion** (DOS, 1991) 的翻译工具包。
从游戏中提取可翻译资源(文本字符串)为可编辑格式,并将其重新打包为可运行的游戏文件,从而支持粉丝将其翻译成任何语言。
支持任意长度的替换字符串——翻译后的文本不受原始字符串长度的限制。当字符串超过其原始位置时,所有字符串将被重定位到追加的数据块中,并修补交叉引用。
## 用法
```
gravedigger unpack
gravedigger repack
```
`unpack` 读取原始游戏文件(`.DD2`、`.EXE`)并生成可编辑的资源:
| 资源 | 格式 | 备注 |
|---|---|---|
| 文本字符串(菜单、消息、胜利/失败画面) | XLSX | 每行一个字符串;翻译后的文本可以超过原始长度 |
| 精灵和图块 | PNG | 使用原始调色板的索引颜色图像 |
| 反盗版退出画面(80×25 VGA 文本模式) | [XBIN](https://web.archive.org/web/20120204063040/http://www.acid.org/info/xbin/x_spec.htm) | 可使用免费 ANSI/XBIN 艺术编辑器 [Moebius](https://github.com/blocktronics/moebius) 进行编辑 |
`repack` 接收编辑后的翻译并重建准备好供游玩的游戏文件。
## 安装
从 [GitHub Releases](../../releases) 下载独立二进制文件。
或者从源码运行(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](https://github.com/gmegidish/dangerous-dave-re) 由 Gil Megidish 提供 —— 逆向工程的游戏格式文档和参考实现
- [gamecompjs](https://github.com/camoto-project/gamecompjs) 由 Adam Nielsen 提供 —— PKLITE 解压算法参考
- [OpenTESArena ExeUnpacker](https://github.com/afritz1/OpenTESArena) 由 afritz1 提供 —— PKLITE 解压参考
- [depklite](https://github.com/hackerb9/depklite) 由 hackerb9 / NY00123 提供 —— PKLITE 解压参考
- [UNLZEXE](https://github.com/mywave82/unlzexe) 由 Mitugu Kurizono / Stian Skjelstad 提供 —— LZEXE 解压算法参考
- [unpacklzexe](https://github.com/samrussell/unpacklzexe) 由 Sam Russell 提供 —— LZEXE 解压参考 (Python)
## 许可证
[GPL-3.0-or-later](LICENSE)
标签:Dangerous Dave, MS-DOS, PNG, Python, Rust, TLS配置检查, XBIN, XLSX, 二进制修改, 云资产清单, 复刻与移植, 安全规则引擎, 怀旧游戏, 文件打包, 无后门, 本地化工具, 汉化工具, 游戏模组, 经典游戏, 网络流量审计, 翻译辅助, 资源提取, 逆向工程