{
  "added_at": "2026-10-20",
  "additional_evidence_urls": [
    "https://github.com/SAT-R/sa3/pull/4",
    "https://github.com/decompme/decomp.me/pull/1474",
    "https://github.com/SAT-R/sa3/blob/f28834dd4c92ad1ed761a978210355ad63d70b88/README.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Macabeus’s dated study describes prompting Claude Sonnet 3.5 and DeepSeek R1 with assembly, similar decompiled functions and structs to write matching C for Marun, one enemy module of the community Sonic Advance 3 GBA decompilation. The resulting pull request replaced that module’s assembly and was merged; the author calls the setting unusually AI-friendly, and the project now bars LLM-origin contributions.",
  "description_zh": "Macabeus 在注明日期的研究文章中，介绍了如何把汇编、相似的已反编译函数和结构体放进提示词，让 Claude Sonnet 3.5 与 DeepSeek R1 为社区 Sonic Advance 3 GBA 反编译项目中的敌人模块 Marun 编写匹配的 C 代码。由此产生的拉取请求替换了该模块的汇编并已合并；作者认为这一场景对 AI 格外友好，而该项目现已不接受源自大模型的贡献。",
  "entry_url": "https://awesomerea.org/resources/sa3-marun-ai-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/sa3-marun-ai-decomp-case/",
  "evidence_url": "https://gambiconf.substack.com/p/development-journey-on-game-decompilation",
  "group": "cases",
  "id": "sa3-marun-ai-decomp-case",
  "json_url": "https://awesomerea.org/resources/sa3-marun-ai-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/sa3-marun-ai-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/sa3-marun-ai-decomp-case/index.md",
  "name": "Sonic Advance 3: an AI-assisted match of one enemy module",
  "name_zh": "Sonic Advance 3：AI 辅助匹配单个敌人模块",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "The post, dated 20 May 2025 and subtitled an ongoing study, covers a single module: Marun, an enemy in the community Sonic Advance 3 GBA matching decompilation. Work began on 6 January 2025, and pull request #4, which replaced the module’s 1,154-line assembly file with 494 lines of C, was merged on 31 January; the post equates it to 0.3% of the project’s total progress. It is a bounded contribution study, not a whole-game decompilation.",
    "Building the SA3 decompilation requires the user’s own European Sonic Advance 3 ROM, named baserom_sa3.gba and matching the release the README identifies by SHA1, plus a sufficiently recent agbcc compiler fork. The study itself worked in decomp.me scratches, putting assembly, similar decompiled functions and relevant structs into prompts for Claude Sonnet 3.5 and DeepSeek R1.",
    "Match percentages come from decomp.me: the post reports a 96% first Sonnet 3.5 attempt that later prompts could not reproduce, a 74% DeepSeek R1 result raised to 100% by replacing memset with CpuFill16, and R1 output that usually matched at least about 60%. The merged pull request is the project-level outcome; the post reports no separate build or test.",
    "The author calls the setting very AI-friendly because similar modules were already decompiled for use as examples and the GBA compiler is simpler and more predictable; generated C lacked project-specific macros and needed readability work. The author’s decomp.me AI-panel pull request was closed unmerged; the post says user benefit was unclear and it required a paid API key.",
    "At the reviewed SA3 commit, the README states a strict no-LLM/no-AI policy for issues and pull requests, so that project no longer accepts this workflow. The SA3 repository has no license file at that commit, and the ROM and its assets retain their own rights."
  ],
  "requirements_zh": [
    "文章发布于 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 及其素材仍受各自权利约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://gambiconf.substack.com/p/development-journey-on-game-decompilation",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
