案例

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。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. https://gambiconf.substack.com/p/development-journey-on-game-decompilation
  2. https://github.com/SAT-R/sa3/pull/4
  3. https://github.com/decompme/decomp.me/pull/1474
  4. README.md GitHub · SAT-R/sa3 · 修订 f28834d