N0zoM1z0/yosuga-no-sora-entis-tools
GitHub: N0zoM1z0/yosuga-no-sora-entis-tools
一套用于解包和转换《悠之空》Entis/ERISA 私有资源格式的 Python 逆向工程工具与文档。
Stars: 0 | Forks: 0
# Yosuga no Sora Entis 资源工具
用于提取和转换《*Yosuga no Sora*》使用的 Entis/ERISA 资源的独立 Python 工具。
本代码库包含逆向工程笔记、详细说明文档以及相关脚本,用于:
- 解包 `.noa` 存档;
- 解码存档内打包的 ERISA-N 条目;
- 将静态 `.eri` 图像转换为 PNG;
- 将 `.mio` 语音、BGM 和音效转换为 WAV;
- 从 `opening.mei` 中提取音轨;
- 复制独立的 MP3 音轨;
- 验证提取和转换报告,包含文件大小、哈希值以及媒体头部检查。
不包含任何游戏资源文件。
## 状态
已支持:
- CG/背景/UI 图像:`.eri -> .png`
- 语音/BGM/SE:`.mio -> .wav`
- 开场动画音频:`.mei -> .audio.wav`
- 独立 MP3:直接透传复制
- NOA 存档提取,包含已打包的系统资源
当前版本暂不支持:
- 完整的 MEI 视频重建。MEI 视频流已在 `mei_extract.py` 中进行了文档记录和部分探测,但精确的 Diffe-frame 播放重建尚未完成。
## 环境要求
- 推荐 Python 3.11+
- Pillow
- cffi
安装 Python 依赖项:
```
python3 -m pip install pillow cffi
```
## 用法
将这些工具指向您本地的游戏目录。您可以显式传递 `--game-dir`,也可以设置 `YOSUGA_GAME_DIR`。
```
export YOSUGA_GAME_DIR="/path/to/Yosuga no Sora/game-directory"
python3 yosuga_pipeline.py \
--work-dir out_yosuga_media \
--convert-ext eri,mio,mei,mp3 \
--jobs 8
```
主要输出为:
```
out_yosuga_media/extracted/manifest.csv
out_yosuga_media/extracted/media_scan.csv
out_yosuga_media/converted/report.csv
out_yosuga_media/pipeline_summary.json
out_yosuga_media/converted/
```
在提取常规图像/音频时,请勿传递 `--render-mei-preview` 参数。若不添加该标志,`opening.mei` 将仅提取音频。
## 常用命令
验证存档结构:
```
python3 yosuga_extract.py verify --decode-packed
```
运行完整的图像/音频 pipeline:
```
python3 yosuga_pipeline.py \
--work-dir out_yosuga_media \
--convert-ext eri,mio,mei,mp3 \
--jobs 8
```
运行本地冒烟测试:
```
python3 smoke_test.py
```
`smoke_test.py` 会从配置的游戏目录中提取一组临时样本,仅在该测试运行期间将其链接为 `samples_raw`,并在测试结束后移除该链接。
## 文件
- `yosuga_extract.py`:存档列表查看、验证、提取、清单校验。
- `yosuga_convert.py`:批量转换与报告验证。
- `yosuga_pipeline.py`:端到端的验证/提取/扫描/转换/校验运行器。
- `eri2png.py`:静态 ERI 图像解码器。
- `mio2wav.py`:MIO 与 MEI 音频解码器。
- `erisan.py`:ERISA-N 存档打包解码器。
- `entis_info.py`:Entis 媒体头部扫描器。
- `mei_extract.py`:MEI 解复用与视频研究工具。
- `RE_NOTES.md`:详细的逆向工程笔记。
- `YOSUGA_RESOURCE_RE_BLOG.md`:关于逆向工程过程的详细叙述文档。
## 注意事项
这些脚本仅用于研究以及与合法获取的本地游戏文件进行互操作。生成的输出、日志、缓存和提取的资源均已通过 `.gitignore` 忽略,不应提交到代码库。
标签:Python, 云资产清单, 多媒体处理, 文件格式转换, 无后门, 游戏资源提取, 逆向工具, 逆向工程