借助Claude将三十年前Amiga汇编代码移植到Godot引擎的实战记录
Claude Mythos 5 与 Fable 5 的部署历程,反映出大模型在面对复杂旧 codebases 时所展现出的另类价值。
早在 2026 年 6 月 9 日,Anthropic 宣布重新部署了 Claude Mythos 5 与 Fable 5,并于 7 月 1 日正式对外发布。然而,6 月 12 日,公司紧急发布通知称因某些原因暂停了对这两款模型的访问,并表示正在尽力恢复服务。
Fable 5 被描述为一款 Mythos-class 1 模型,专为普通用户使用而设计与保障安全。其能力据称超过此前所有面向公众的模型,尤其在处理长文本与复杂任务时展现出显著优势。但正因其强大能力,也引发了滥用的风险,尤其是在网络安全等领域。为此,Anthropic 在推出时便配备了一套 safeguard 机制:当用户查询涉及敏感内容时,系统将自动切换至次强一级的模型——Claude Opus 4——进行回应。
回到 Amiga 游戏移植实践中,这种模型在底层语言理解上的稳定性同样值得关注。面对无文档、直接输入 MC68000 汇编源码的场景,模型并未陷入碎片化上下文的混乱,而是凭借确定性语言结构稳中求进。它捕捉到了寄存器调用链、堆栈变动与跳转逻辑之间的内在联系,将晦涩难懂的指令逐一转化为现代语言结构。
这种能力在验证环节也得到体现。为确保模型并非机械式翻译甚 anisotropic 输出,开发者在 MacOS 环境下使用 vasm 工具链对代码重新进行了组装。结果显示,新旧二进制之间存在 108 字节的偏差。远远超越肉眼比对效率,从而推断出当年开发环境中存在一种被遗忘的技术细节:那款名为 AsmOne 的工具支持将代码直接组装到内存,并且保存到磁盘上的二进制并非来自典型的 build 流程,而是游戏运行后从内存中导出的快照副本。
这个细节点,非但印证了模型在数字考古中的潜力,也揭示了其在逆向推导历史物理环境时的可能性。面对缺少有效文档记录的代码仓库,仅凭人工查阅旧笔记几乎难以还原如此细节,而大模型凭借数据敏感度与上下文推理能力,将“死代码”转化为可理解、可执行的现代逻辑,从而极大压缩了整个迁移周期。
尽管如此,模型在完成“逻辑翻译”的同时,并不能代替人类在“产品打磨”阶段的工作。游戏的手感反馈、玩法微调等内容仍需人工在多个周末进行反复测试与优化,才能达到发布标准。
全部回复 (10)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
这回试了下让AI帮忙把三十年前的MC68000汇编逻辑搬到现代引擎,结果发现它不仅能把晦涩的寄存器流转和跳转逻辑转成现代代码,还能精准识别出那些看似无关紧要的内存偏移差异——比如这次就直接找出了那108字节的差异,原来是当年AsmOne直接组装到内存的特性导致的。别说还原逻辑了,连当年开发环境的物理特性都能反推出来,确实比翻阅三十年前的笔记强太多了。不过别忘了,AI搞定逻辑翻译后,游戏的“手感”还得靠人工细心调优,否则再完美的代码也救不了发布前的卡顿。
这种把68000榨干的优化确实让人震撼,特别是直接丢给模型一整段MC68000汇编源码,连伪代码都没准备——结果居然能在一晚内搞定核心逻辑迁移。最关键的是,AI还能通过重新组装(比如用vasm在Mac上跑一遍)来验证理解是否准确,比如这次就发现了原始二进制和组装输出之间108字节的偏差,直接揭示出当年AsmOne的内存直接组装特性,这种细节人工可能要翻三十年前的笔记才能找到。硬核浪漫的背后,其实是AI对底层指令集和内存映射的精准把控,让“死代码”变活的速度完全不是人工能比的。
现在才公布这项技术?早半年推出,确实能让竞品在三十年前的汇编代码逻辑迁移上大幅领先。核心亮点在于,通过让大模型直接阅读 MC68000 汇编源码,而非伪代码或笔记,将“死代码”转化为可运行逻辑的时间从数月缩短至一晚——这在缺乏文档的情况下,人工翻译的效率可想而知。验证过程更是精准,通过在 Mac 环境下使用 vasm 重新组装原始代码,发现了 108 字节的微小偏差,这正是当年 AsmOne 直接组装到内存时与保存磁盘的内存快照结构差异。模型不仅精准还原了寄存器流转和跳转逻辑,还通过数据分析反推出开发环境的物理特性,让“数字考古”变得高效可靠。
哎,Claude这次的“魔法”确实让人惊艳,但它在处理这段1993年巴格达开发的Amiga游戏汇编代码时,竟然在关键跳转逻辑上给出了一个完全不符合MC68000架构的伪函数——比如错误地将JSR指令误解为JMP,导致游戏在某些特定条件下崩溃。不过,它的辅助下,我通过重新组装原始二进制文件(使用vasm)并与模型输出的逻辑对比,最终锁定了问题所在——发现原始代码中隐含的内存快照偏移与组装输出的差异(108字节),才找到了真正的漏洞所在,避免了重复翻译整个逻辑。
太离谱了,我写个React组件还得查半天文档,结果有人用AI直接啃汇编,还不光是翻译逻辑,还能直接验证组装后的二进制文件是否与原始代码一致——比如通过 vasm 在Mac上重新组装,对比字节偏差,精准找出遗漏的技术细节(比如三十年前的组装器直接写入内存的特性)。这比我查文档还牛逼,直接从“死代码”到“可运行逻辑”只花了一晚,还能还原当年开发环境的隐藏细节。
现在谁还手写68k汇编呢?直接用Godot复刻效率高多了,没必要死磕仿真。不过,如果你手头有三十年前的Amiga游戏代码,可以尝试直接输入MC68000汇编源码,让AI帮忙解析逻辑,甚至可以通过vasm在Mac上重新组装验证,看看模型是否准确理解了指令集和内存偏移。这样既能快速完成逻辑迁移,又能避免人工翻阅笔记的漫长过程。
We need to rewrite the forum comment, adding one actionable specific point that is a direct sentence from the source (the basis), embedded naturally in the comment. Must not mention it's a source. Must not include titles, no "来源", etc. Must not be self-testing, no "首先/总结". Length similar to original comment.
Original comment: "当年对着硬件手册死磕中断机制简直是噩梦,现在看来居然还挺浪漫。" That's short. Need to embed a specific actionable point from the basis: something like "将三十年前的古老汇编逻辑搬进现代引擎" etc. Must be a direct sentence from the basis. The basis is a longer paragraph. We need to pick a sentence that is actionable (i.e., you can do it). For example: "直接输入 MC68000 汇编源码" is a specific point: you can directly input MC68000 assembly source code. Or "使用 vasm 对代码进行重新组装". Or "通过快速比对迅速锁定该点". Or "让大模型阅读陈旧汇编代码来完成逻辑迁移". The actionable point must be a direct sentence from the basis, unchanged.
We need to embed it naturally into the comment. The original comment is just one sentence about hardware manual and interrupt mechanism being nightmare but now romantic. We need to add one actionable point, making comment longer but similar length. Perhaps we can say: "当年对着硬件手册死磕中断机制简直是噩梦,现在看来居然还挺浪漫;比如直接输入 MC68000 汇编源码就能让模型帮忙完成逻辑迁移。" Need to ensure the added clause includes a direct sentence from basis: "直接输入 MC68000 汇编源码". That is a direct sentence? In basis: "本次移植的关键在于,未向模型提供任何伪代码或文档,而是直接输入 MC68000 汇编源码。" The sentence "直接输入 MC68000 汇编源码" appears as part of that sentence. Is it a standalone sentence? It's a clause but it's exactly that phrase. The requirement: embed a sentence from the basis. It says "这个点必须是依据里的原句,嵌进评论的自然句子里." So we need to embed an original sentence from the basis. The phrase "直接输入 MC68000 汇编源码" is not a full sentence (no period). Better to use a full sentence from basis: "让大模型阅读陈旧汇编代码来完成逻辑迁移,其效率远超人工翻阅笔记。" That is a sentence from basis? Let's check basis: "核心结论很明确:让大模型阅读陈旧汇编代码来完成逻辑迁移,其效率远超人工翻阅笔记。" Yes that is a sentence. So we can embed that.
Thus new comment: "当年对着硬件手册死磕中断机制简直是噩梦,现在看来居然还挺浪漫;让大模型阅读陈旧汇编代码来完成逻辑迁移,其效率远超
那108字节的差异太诡异了,赶紧用二进制对比工具跑一遍,肯定藏了编译器优化!将三十年前的古老汇编逻辑搬进现代引擎,听起来像是一次硬核的逻辑迁移实验,但实际效果比预想的更顺畅。核心结论很明确:让大模型阅读陈旧汇编代码来完成逻辑迁移,其效率远超人工翻阅笔记。此次的具体任务是移植一款 1993 年在巴格达开发的 Amiga 游戏至 Godot 引擎。老代码最折磨人的往往不是算法复杂度,而是可读性极低的汇编语言。若无详尽笔记,人工还原逻辑如同灾难。但在 Claude 的辅助下,核心逻辑的迁移仅耗时一晚便已就绪。需注意区分“逻辑翻译”与“产品打磨”。AI 虽瞬间攻克了最难的翻译环节,但要校准游戏“手感”并达到发布标准,后续仍需数个周末的细致调优。尽管如此,AI 确实大幅压缩了从“死代码”到“可运行逻辑”的周期。本次移植的关键在于,未向模型提供任何伪代码或文档,而是直接输入 MC68000 汇编源码。通常认为汇编代码碎片化且强依赖上下文,但 LLM 在处理这类确定性强的底层语言时展现出独特稳定性。它能精准捕捉寄存器流转、堆栈操作及跳转逻辑,并将晦涩指令转化为现代编程语言结构。为验证模型是真正理解而非盲目猜测,采用了严苛的测试方案:在 Mac 环境下使用 vasm 对代码进行重新组装。此举旨在检验模型对指令集理解的准确度,以及对内存地址和偏移量的处理能力。在此过程中发现了一个极具价值的细节:重新组装后的二进制文件与三十年前的原始二进制文件存在 108 个字节偏差。若依靠人工对比二进制流,定位此微小差异可能需要数日。模型通过快速比对迅速锁定该点,并揭示了一个被遗忘的技术事实:当年使用的 AsmOne 具备直接组装到内存的特性,而保存至磁盘的文件实为游戏运行后的内存快照,而非纯组装输出。这 108 字节的差异正是内存快照与纯组装输出的结构区别。此类细节若靠人类查阅三十年前笔记难有答案,模型则凭借数据
把 2010 版那个波动数据的内存泄漏对比拿出来看看,新版的优化效果确实让人意外顺畅——特别是当你直接把 MC68000 汇编源码丢进模型,它能精准还原寄存器流转和跳转逻辑,甚至在重新组装后发现原始二进制与快照间的 108 字节差异,直接揭示了当年 AsmOne 直接内存组装的特性。这让我怀疑新版是否也暗中用了类似的“数据敏感度”分析,而不仅仅是表面的修补。
快把那个映射表导出来,我想看看非线性跳转那块儿是怎么绕过去的,肯定有坑!就像将三十年前的古老汇编逻辑搬进现代引擎一样,听起来像是一次硬核的逻辑迁移实验,但实际效果比预想的更顺畅。核心结论很明确:让大模型阅读陈旧汇编代码来完成逻辑迁移,其效率远超人工翻阅笔记。此次的具体任务是移植一款 1993 年在巴格达开发的 Amiga 游戏至 Godot 引擎。老代码最折磨人的往往不是算法复杂度,而是可读性极低的汇编语言。若无详尽笔记,人工还原逻辑如同灾难。但在 Claude 的辅助下,核心逻辑的迁移仅耗时一晚便已就绪。