610la/Nicai-CBE-Research-Toolkit
GitHub: 610la/Nicai-CBE-Research-Toolkit
Stars: 1 | Forks: 0
# CBE 网页模拟器研究工具集
[English README](README_EN.md)
这是一个用于研究尼采/MStar 时代 `.CBE` 游戏格式的逆向工程工作区。长期目标是做一个能够加载标准 CBE 容器的通用网页运行时/模拟器,而不是把某一个游戏单独重做或移植。
`众神之战` 是当前主要研究样本,因为它同时包含 `.sce`、`.map`、`.actor`、`.xse`、图片、音频、存档和脚本证据。但项目里的代码和结论都应尽量保持通用 CBE 工具链方向。
## 当前状态
这不是一个完成品模拟器,而是一套研究工具。目前已经具备:
- 扫描和解包标准 CBE 资源段
- 按扩展名/资源类型列出和分类资源
- 对 `.sce`、`.map`、`.actor`、`.xse` 做结构化探测
- 本地网页查看器,用于浏览资源表、字节、结构、场景和运行时探测结果
- 从 CBE 资源构建早期 scene graph
- XSE VM/provider 的 trace-only 实验
- 针对 `GodWarGameRecord` 的手机侧存档解析
仓库可以包含公开样本文件:CBE 文件统一放在 `cbe file/`,尼采手机系统/存档文件统一放在 `nicai system files/`。工具运行后生成的 `out_*` 解包目录、日志和调试截图不会上传到 GitHub,需要时可以在本地重新生成。
## 快速开始
需要:
- Node.js 18 或更新版本
- Python 3,用于 Thumb 反汇编辅助脚本
- Python `capstone`,只在运行 ARM/Thumb 反汇编脚本时需要
启动本地查看器:
npm run viewer
然后打开:
http://127.0.0.1:4173
当前网页查看器的游戏列表来自本地 `out_batch/batch_manifest.json`。即使仓库里已经放了公开样本 CBE 文件,第一次运行查看器前仍需要先解包到 `out_batch`:
node src/cbe_unpack.js "./cbe file" out_batch
npm run viewer
公开样本 CBE 文件可以放在 `cbe file/`;手机系统/存档文件可以放在 `nicai system files/`。如果只有一个 CBE 文件,也建议先放进 `cbe file/` 再运行上面的命令。这样会生成查看器需要的 `batch_manifest.json`。
部分底层 API 可以直接读取 CBE 文件,不一定依赖解包目录;但当前网页 UI 的资源列表仍以 `out_batch` 为入口。
大多数 probe 支持显式传入路径,例如:
node src/cbe_unpack.js "./cbe file/game.CBE" out_game
node src/cbe_runtime_core_probe.js "./cbe file/game.CBE"
node src/cbe_godwar_record_probe.js "./nicai system files/.system/MB_MSTAR_WQVGA" "./cbe file/众神之战.CBE"
## 重要文件
- [docs/README_CBE.md](docs/README_CBE.md):详细工具清单和研究记录
- [docs/CBE_EMULATOR_ROADMAP.md](docs/CBE_EMULATOR_ROADMAP.md):通用模拟器路线图
- [src/cbe_unpack.js](src/cbe_unpack.js):CBE 资源段加载/解包器
- [src/cbe_runtime_core.js](src/cbe_runtime_core.js):通用 raw-CBE runtime shell
- [src/cbe_runtime.js](src/cbe_runtime.js):第一阶段 scene graph/runtime 构建器
- [src/cbe_struct.js](src/cbe_struct.js):共享结构分析器
- [src/cbe_godwar_record_probe.js](src/cbe_godwar_record_probe.js):`众神之战` 手机存档解析器
- [src/viewer_server.js](src/viewer_server.js) 和 [viewer/](viewer/):本地网页 UI
- [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md):仓库结构说明
标签:自定义脚本