案例
Sonic Advance 3:AI 辅助匹配单个敌人模块
Macabeus 在注明日期的研究文章中,介绍了如何把汇编、相似的已反编译函数和结构体放进提示词,让 Claude Sonnet 3.5 与 DeepSeek R1 为社区 Sonic Advance 3 GBA 反编译项目中的敌人模块 Marun 编写匹配的 C 代码。由此产生的拉取请求替换了该模块的汇编并已合并;作者认为这一场景对 AI 格外友好,而该项目现已不接受源自大模型的贡献。
使用条件与局限
- 文章发布于 2025 年 5 月 20 日,副标题称其为持续进行的研究,只涉及一个模块:社区 Sonic Advance 3 GBA 匹配反编译项目中的敌人 Marun。工作始于 2025 年 1 月 6 日;第 4 号拉取请求以 494 行 C 代码替换了该模块 1,154 行的汇编文件,并于 1 月 31 日合并,文章称这相当于项目总进度的 0.3%。这是一次有限范围的贡献研究,而非整部游戏的反编译。
- 构建 SA3 反编译项目需要使用者自有的欧版 Sonic Advance 3 ROM,命名为 baserom_sa3.gba,且须与 README 以 SHA1 标明的版本一致,另需足够新的 agbcc 编译器分支。该研究本身在 decomp.me 的 scratch 中进行,把汇编、相似的已反编译函数及相关结构体放进给 Claude Sonnet 3.5 和 DeepSeek R1 的提示词。
- 匹配百分比来自 decomp.me:文章报告 Sonnet 3.5 首次尝试达到 96%,但之后的提示词未能复现;DeepSeek R1 的一次结果为 74%,把 memset 换成 CpuFill16 后达到 100%;R1 的输出通常至少有约 60% 的匹配度。已合并的拉取请求是项目层面的结果;文章未报告另外的构建或测试,本目录也未运行任何内容。
- 作者认为这一场景对 AI 非常友好,因为已有相似的模块完成反编译可作示例,而且 GBA 编译器较简单、较可预测;生成的 C 代码缺少项目特有的宏,还需要改善可读性。作者为 decomp.me 提交的 AI 面板拉取请求未经合并即被关闭;文章称其用户收益尚不明确,而且需要付费 API 密钥。
- 在所审阅的 SA3 提交中,README 规定了严格的禁止大模型/AI 政策,适用于议题和拉取请求,因此该项目已不再接受这种工作流。该提交中 SA3 仓库没有许可证文件,ROM 及其素材仍受各自权利约束,也未提及使用 REA。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。