s-macke/Test-Drive-3-Maps
GitHub: s-macke/Test-Drive-3-Maps
该项目针对DOS游戏《Test Drive III》进行逆向工程,提供提取游戏地图、3D模型及图像资源的工具与在线查看器。
Stars: 9 | Forks: 1
# Test-Drive-3-Maps
由 Accolade 开发的 DOS 游戏 *Test Drive III: The Passion* 的逆向工程与提取地图
# **[在线查看器](https://s-macke.github.io/Test-Drive-3-Maps/)**
# **[提取的图像](images/)**
Wavefront Object 文件位于 objs 目录中。
## 开发
### 前置条件
- Node.js 18+
### 安装
```
npm install
```
### 运行浏览器查看器
```
npm run dev
```
在 http://localhost:5173 打开查看器
### 生产环境构建
```
npm run build
```
输出位于 `dist/` 目录。
### 导出 OBJ 文件
```
npm run export
```
将所有地图和对象导出到 `objs/` 目录。
### 导出 PNG 图像
```
npm run imgextract
```
将当前已记录的 DAT 图像作为索引颜色 PNG 导出到 `images/` 目录。
### 导出场景精灵
```
npm run spriteextract
```
从已知的场景渲染描述符库中提取透明的场景精灵 PNG,包括 `SCENE02` 同系列变体。
### CLI 工具
```
# 查看 LST 文件内容
npm run lstview -- public/base/SCENE01.LST
# 从 DAT 文件中提取 VGA 图像
npm run imgview -- public/base/DATAB.DAT 0x151 12083 320
```
## 项目结构
```
src/
├── browser/ # Browser-only modules (Three.js viewer)
├── shared/ # Shared modules (extraction logic, LZW/RLE decoders)
└── tools/ # Node.js CLI tools
├── export/ # OBJ exporter
├── spriteextract/ # Scene sprite extractor
├── lstviewer/ # LST file viewer
└── imgviewer/ # VGA image extractor
public/
└── base/ # Game data files (required)
objs/ # Exported Wavefront OBJ files
images/ # Extracted VGA images (PNG format)
spec/ # File format specifications
```
提取的图像示例:
- [images/SCENE01/SCENE01_0x0_320x33.png](images/SCENE01/SCENE01_0x0_320x33.png)
- [images/DATAA/TITLELET.LZ.png](images/DATAA/TITLELET.LZ.png)
- [images/DATAB/COPA.LZ.png](images/DATAB/COPA.LZ.png)
## 文件格式规范
`spec/` 目录包含 Test Drive III 文件格式的逆向工程文档:
| 文件 | 描述 |
|------|-------------|
| [3d-object-format.md](spec/3d-object-format.md) | 用于图块和对象的 3D 多边形/顶点格式 |
| [dat-file-layouts.md](spec/dat-file-layouts.md) | DAT 文件偏移表和资源布局 |
| [scene-render-descriptor-bank-format.md](spec/scene-render-descriptor-bank-format.md) | 由 `SCENE01.DAT`、`SCENE02.DAT` 和 `SCENETT1.DAT` 使用的场景渲染描述符库系列 |
| [lst-file-format.md](spec/lst-file-format.md) | LST 资源索引文件(场景和车辆变体) |
| [image-format.md](spec/image-format.md) | VGA 图像压缩(LZW + RLE pipeline) |
标签:DOS游戏, GNU通用公共许可证, LZW解压, MITM代理, Node.js, RLE解码, Test Drive III, Three.js, VGA图像, Wavefront OBJ, 云资产清单, 前端可视化, 场景精灵, 安全报告生成, 怀旧游戏, 数据可视化, 数据导出, 文件格式解析, 游戏地图提取, 游戏存档, 游戏资源提取, 逆向工程