zbirow/Hunkfile-Viewer
GitHub: zbirow/Hunkfile-Viewer
用于解析和提取Torus Games游戏.hnk文件中纹理与3D模型资源的逆向工程工具。
Stars: 0 | Forks: 0
# Hunkfile-Viewer
实际测试于 Monster High: NGS (PC/Wii)、Barbie PC、Falling Skies PC、Scooby-Doo 1/2 (PC/Wii)
可以显示纹理
3D 模型查看器开发中......
Hunkfile Viewer (.hnk) Torus Games
### 头部标识
| 偏移 0x5 | 支持游戏 |
| --- | ------------- |
| \x01\x00\x01\x00\x01 | MH(PC), Barbie(PC), Falling Skies(PC) |
| \xE5\x0A\x01\x00\x01 | MH(PC), Barbie(PC), Falling Skies(PC) |
| \x01\x04\x01\x00\x01 | Scooby Doo(PC) |
| 其他 | Wii 游戏 |
# Monster High: NGS / Barbie / Falling Skies
### 纹理信息:
- 纹理信息包含在纹理头部 [0x41150]。
- 前两个字节对应纹理格式。
### 纹理格式
| 前两个字节 | 纹理格式 |
| --------------- | --------------:|
| 0xA1 0xBC | CMPR - Wii |
| 0xE9 0x78 | Unknown - Wii |
| 0xD3 0x3A | DXT5 - PC |
| 0xF9 0x3D | DXT1 - PC |
| 0x9F 0x5B | R8G8B8A8 - PC |
### 宽度/高度
- 两个字节
| 游戏 | 宽度 | 高度 | 字节序 | 示例字节 | 输出 |
| ----- | ----- | ----- | ------ | -------- | ------:|
| PC | 0x0C | 0x0E | Little Endian | 0x00 0x02 | 512 |
| Wii | 0x0C | 0x0E | Big Endian | 0x02 0x00 | 512 |
[工具](https://www.save-editor.com/tools/wse_hex.html "Tool")
### Monster High, Barbie, Falling Skies 表格
| 类型 | PC 值 | Wii 值 |
| --------- | -------- |----------:|
| File Name | 0x40071 | 0x40071 |
| ClankBodyTemplate main | 0x45100 |
| ClankBodyTemplate secondary| 0x402100 |
| ClankBodyTemplate name | 0x43100 |
| ClankBodyTemplate data | 0x44100 |
| ClankBodyTemplate data 2 | 0x404100 |
| LiteScript main | 0x4300c |
| LiteScript data | 0x4200c |
| LiteScript data 2 | 0x4100c |
| SqueakSample data | 0x204090 |
| TSETexture header | 0x41150 | 0x41150 |
| TSETexture data | 0x40151 | 0x202151 |
| TSETexture data 2 | 0x801151 |
| RenderModelTemplate header | 0x101050 |
| RenderModelTemplate data | 0x40054 |
| RenderModelTemplate data table | 0x20055 |
| Animation data | 0x42005 |
| Animation data 2 | 0x41005 |
| RenderSprite data | 0x41007 |
| EffectsParams data | 0x43112 |
| TSEFontDescriptor data | 0x43087 |
| TSEDataTable data 1 | 0x43083 |
| TSEDataTable data 2 | 0x4008a |
| StateFlowTemplate data | 0x43088 |
| StateFlowTemplate data 2 | 0x42088 |
| SqueakStream data | 0x204092 |
| SqueakStream data 2 | 0x201092 |
| EntityPlacement data | 0x42009 |
| EntityPlacement data 2 | 0x103009 |
| EntityPlacement BCC data | 0x101009 |
| EntityPlacement level data | 0x102009 |
| EntityTemplate data | 0x101008 |
## PC 3D 模型
[3D 模型提取器](https://github.com/zbirow/Hunkfile-Viewer/blob/main/dev/HNK_Test_Model.py)
这是一个测试脚本,可以从 hnk 文件中提取模型。它无法提取所有模型,因此有些可能会损坏。
在 Monster High NGiS PC、Barbie PC、Scooby Doo 1/2 PC 上测试过,它可以毫无问题地提取头发、服装和游戏元素。虽然它在角色和某些游戏元素方面存在较大问题,但我仍在努力改进中。
# Scooby Doo - 进行中
- 纹理信息包含在 PC 纹理头部 [0x41056] 和 Wii 纹理头部 [0x41033]。
-
### 纹理格式
PC
| 0x34:0x40 | 纹理格式 |
| --------------- | --------------:|
| DXT5 | DXT5 - PC |
| DXT1 | DXT1 - PC |
| 0x15 | R8G8B8A8 - PC |
Wii
| 0x5:0x9 | 纹理格式 |
| --------------- | --------------:|
| 0x01 0x00 0x00 0x24 | CMPR - Wii |
| 0x01 0x00 0x00 0x28 | CMPR - Wii |
| 0x01 0x00 0x00 0x20 | CMPR - Wii |
| 0x01 0x00 0x00 0x2C | CMPR - Wii |
| 0x01 0x00 0x00 0x30 | CMPR - Wii |
### 宽度/高度
- 两个字节
| 游戏 | 宽度 | 高度 | 字节序 | 示例字节 | 输出 | 格式 |
| ----- | ----- | ----- | ------ | -------- | -------- | ------:|
| PC | 0x30 | 0x32 | Little Endian | 0x00 0x02 | 512 | 全部 |
| Wii | 0x58 | 0x5A | Big Endian | 0x00 0x02 | 512 | 0x01 0x00 0x00 0x24 |
| Wii | 0x5C | 0x5E | Big Endian | 0x00 0x02 | 512 | 0x01 0x00 0x00 0x28 |
| Wii | 0x54 | 0x56 | Big Endian | 0x00 0x02 | 512 | 0x01 0x00 0x00 0x20 |
| Wii | 0x60 | 0x62 | Big Endian | 0x00 0x02 | 512 | 0x01 0x00 0x00 0x2C |
| Wii | 0x64 | 0x66 | Big Endian | 0x00 0x02 | 512 | 0x01 0x00 0x00 0x30 |
### Wii First Frights
格式类型 = 0x18 0x00 0x00 0x00
偏移: 15
4 字节
名称计数
偏移: 6
2 字节
名称块大小
偏移 9
2 字节
名称块之后
填充 00 - 偏移 2A
2 字节 宽度
2 字节 高度
跳过元数据 - 偏移 2D
名称块之后
填充 00 - 偏移 2A
2 字节 宽度
2 字节 高度
跳过元数据 - 偏移 2D
以此类推。
纹理数据块 - 0x201034 / 0x201035
### Scooby Doo 表格 - 进行中
| 类型 | PC 值 | Wii Spooky Swamp 值 | Wii First Frights 值 |
| --------- | -------- | ---------------------- |----------:|
| File Name | 0x40071 | 0x40071 | 0x40071 |
| TSETexture header | 0x41056 | 0x41033 | 0x41033 |
| TSETexture data | 0x40057 | 0x201035 | |
# 如何使用
- 下载仓库 (repo)
- 运行 hunkfile_viewer.py
# 致谢
- HNK 结构/表格
标签:3D模型, Barbie, CMPR, DXT1, DXT5, Falling Skies, .hnk, Hunk文件, Monster High, PC游戏, R8G8B8A8, Scooby-Doo, Torus Games, Wii游戏, 二进制数据, 云资产清单, 偏移量, 十六进制编辑, 大端序, 小端序, 数据结构, 文件头识别, 文件格式分析, 模型查看器, 游戏开发, 游戏资源提取, 纹理提取, 逆向工具, 逆向工程