案例
Snowball War:范围明确的 REA 辅助小游戏重建
作者通过 REA 的 Ghidra 工作流调查 DOS 版 Ski or Die 二进制,记录 Snowball War 的规则,再用 Rust 与 SDL2 重建这一小游戏。公开笔记区分恢复的数据表和机制、近似实现以及有意调整的表现效果。
- 目标
- 游戏
- 类别
- REA 社区调查案例
- 关联
- 作者报告的混合工具流程
- 来源复核于
使用条件与局限
- 前提条件:需要用户自备匹配的 DOS/EGA 游戏文件,并用 Python 3 提取素材。Linux 构建使用 Rust stable(作者测试版本为 1.93)、Cargo 和 SDL2 开发库;Cargo.toml 指定 SDL2 绑定版本 0.37。
- 署名:报告中的分析在解开 EXEPACK 后,通过 REA CLI 使用 Ghidra 12.1.4 和 JDK 21。调用者提供的函数与代码种子属于调用者断言。
- 范围:只重建 Snowball War,不涵盖其他比赛项目或原引擎;菜单为新写,特写动画也被有意限制在雪堡区域,没有复现原版全部出现位置。
- 局限:帧率近似为 35 Hz,原伪随机算法未恢复,暂停与退出按键属于近似实现,声音播放尚未实现。
- 许可:固定版本 LICENSE.md 与 Cargo.toml 提供 MIT OR Apache-2.0 双许可,README 的许可句仅提到 MIT。原美术与音频须另行提取。
关于此条目
说明已依据一手来源复核。
一手来源
- README.md GitHub · tuunanet/rea-ski-or-die-reconstruction · 修订 0eac067
- Cargo.toml GitHub · tuunanet/rea-ski-or-die-reconstruction · 修订 0eac067
- LICENSE.md GitHub · tuunanet/rea-ski-or-die-reconstruction · 修订 0eac067
- docs/reverse-engineering-notes.md GitHub · tuunanet/rea-ski-or-die-reconstruction · 修订 0eac067
- tests/gameplay.rs GitHub · tuunanet/rea-ski-or-die-reconstruction · 修订 0eac067