用LLM将1993年Amiga游戏移植到Godot

Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

用LLM将1993年Amiga游戏移植到Godot

1993年,我在Baghdad用68000汇编语言为Amiga 500开发了游戏Babylonian Twins。如今,我尝试用LLM将这段30年前的代码移植到Godot引擎。这次实验不仅成功重建了原始二进制文件,还实现了与现代版本的无缝集成。整个过程展示了AI在处理老旧代码时的惊人能力,同时也揭示了技术传承中的挑战与乐趣。

从那一刻起,显示完全由游戏自己的copper列表控制,这是Amiga的可编程视频协处理器,为精灵和天空颜色实时重写。
  1. gmerc

    完全是个新世界。过去几个月我用 LLM 把一些随机复古游戏移植到了现代 WebGL/WebGPU:

    - The Adventures of Robin Hood - Opus 4.7/Sonnet

    https://robin.tooclever.org

    - Syndicate - Sol/Luna 5.6/Opus ( https://this.os.isfine.org/blog/posts/modern-game-port-syndi... )

    - Kaiser 2

    - Populous Plus - Sol/Luna 5.6/Opus

    - Dragon Strike - (Fable 5.1 几乎一次成功)

    - War of the Lance - Qwen-3.7-27B-dense (卡住了,最后用 Qwen-3.8-Flash-Next 搞定)

    https://this.os.isfine.org/blog/posts/what-reverse-engineeri...

    - Dungeon Keeper - 各种模型

    - Red Baron - Opus 4.8, DeepSeek 4

    - Test Drive 3 (Qwen-3.8-Flash Next, DeepSeek-4-Flash-exp, GLM-5.3-Flash)

    - 进行中:Ultima 6 ... 转 3D (Fable, GLM-5.3) ( https://this.os.isfine.org/#ultima6-atlas )

    有的是直接源码移植(Kaiser),有的是全逆向工程(Dragon Strike, Test Drive, WOTL)

    有的是混合可用源码(Syndicate, Populous)

    部分发现记录在这里:https://this.os.isfine.org/blog/

  2. mattjoyce

    几周前我下载了一个 ZX81 游戏的内存转储,让 Claude 用 Go 语言把它重构出来。

    它完美搞定了。先把二进制还原成 BASIC,再转成 Go。我的想法是,这个游戏 LLM 的训练数据里应该没有,或许是个不错的基准测试。

    想想看,先是在个人计算机的黎明时期,如今又站在 AI 把那段初体验当作考古对象的拐点,这真是疯狂。

  3. btbuildem

    > 一本 Amiga 硬件参考手册

    aka The Book... 哇,这勾起了满是灰尘的回忆。

    Babylonian Twins 有着强烈的《Gods: Into the Wonderful》的氛围,我好奇那款游戏是否给了你灵感?

    https://www.lemonamiga.com/game/gods-into-the-wonderful

    https://www.youtube.com/watch?v=1kAXGjUwHyA

  4. dannyobrien

    我只是想表达,我对你在 1993 年用汇编语言开发这款游戏感到无比惊叹。差不多同一时期,我也在尝试为 Atari ST 写游戏,那种对项目的投入——尤其是当时文档极其匮乏、互联网尚未普及的年代——真是非凡。你有关于调试这款游戏的趣事吗?对我来说,那总是最令人沮丧的部分,特别是在满怀希望地手工编写代码,确信它能一次运行成功后……

  5. cesaref

    我注意到他提到游戏运行在 50Hz——如果 Amiga 运行的是 PAL 制式,这没错;但如果是美版机器,使用 NTSC 制式时就是 60Hz。

    当年,大多数 Amiga 游戏是在欧洲制作的,所以针对 50Hz 刷新率进行了优化,在我们这里玩起来感觉“正常”。在 60Hz 下,它们玩起来感觉就不对劲;反之,美国的游戏在我们这里玩起来也会觉得迟钝和不爽。

    这种将机器锁定在显示器刷新率的方式既是诅咒也是祝福。它让机器能在不同地区驱动标准电视,虽然图像有点模糊,但也意味着一旦开始认真玩,就得用专用显示器。这降低了价格门槛,让很多孩子能说服父母买一台 :) 不过更高分辨率模式效果并不理想,所以很多东西都针对 320x256 分辨率。

    一个意外的惊喜是,Amiga 可以 genlock 到电视信号,并叠加到视频流上,从而提供了许多有趣的廉价图形叠加功能,而这些功能是小电视台或爱好者们以前完全无法获得的。

    那是快乐的时光。

  6. Gamemaster1379

    很棒的项目。从去年十月开始,我就在尝试制作可复用的主机移植框架。Opus 4.6 是我在 NES 6502 上的第一次成功。

    此后,我为 Super NES、GBA、Nintendo DS、Playstation(最受欢迎)甚至 Sega Genesis(也使用 68k 架构)都构建了静态/原生生态系统。

    https://github.com/mstan/segagenesisrecomp

    我甚至把 68k 解码器提取到了独立的仓库,因为我想把它复用到 Phillips CDI 上。

    Sega 这边搞定了 Sonic 1、2 和 3&K,还有 Rocket Knight Adventures。不过目前还处于早期阶段。

    CDI 这边搞定了 BIOS。虽然还没能端到端跑通一个游戏。

  7. kschiffer

    我做了 Moonbase Commander,用的是 JS 和 HTML canvas。目前正在构建一个 AI 对手,希望别像原版那么弱智。

    这太神奇了,这确实可行。我花了不少精力引导,这绝对不是一次提示就能搞定的,但过程非常有趣。

  8. hedgehog

    太棒了。如果能让 Claude Code 导出一个工程指南,指导如何进行类似的移植,包括描述它为此构建的工具,那将非常有趣。我做过一些二进制逆向工程,但从未取得过这么好的成果。

同日更多故事

2026-09-03