1993 年的巴格達:一款從未正式發售的 Amiga 遊戲
Babylonian Twins 是一款 Amiga 平台遊戲,1993 年在巴格達以 68000 組語寫成,App Store 上的遊戲介紹稱它為「伊拉克第一款達到商業品質的電子遊戲」。這款以古美索不達米亞為舞台的作品,當年並未在 Amiga 上正式發售,一直到 2010 年才以 iPhone 版本重見天日,此後輾轉跨平台活了三十多年,成為少數從 16 位元家用電腦時代一路走到現代引擎的長壽遊戲。
把時間拉回 1993 年。當年的巴格達幾乎不存在遊戲產業,一位開發者在這樣的環境裡,用組合語言一行一行寫出整款遊戲——沒有現代引擎、沒有開源程式庫,甚至連註解都極為稀少。這個細節在當年只是工程現實,三十三年後卻成了整個故事最關鍵的伏筆:一份幾乎沒有註解的七萬多行組語,正是公認最難以維護與遷移的程式碼形態。
一個晚上,34,000 行 C++ 搬進 Godot 4
2026 年夏天,原作者把整個移植工程交給 Claude Fable 5,並在自己的移植筆記裡把工程拆成三步。第一步最像魔術:34,000 行 C++ 程式碼,一個晚上就遷入 Godot 4。這是整篇筆記裡傳播最廣的數字——對還在評估「AI 到底能不能動大型專案」的開發者來說,一晚搬完一整個程式庫,已經超出多數人對生成式工具的預期。
作者在 Hacker News 上的投稿把這件事講得更直白:這些是他把 1993 年在巴格達以 MC68000 組語寫成的遊戲移植到 Godot 的筆記,全程使用 Claude Fable 5。三十三年前的程式碼、一台早已停產的機器、一位還在線上的原作者——三個條件湊齊,才有了這場實驗。
最難的一步:72,758 行無註解的 68000 組語
第二步被作者稱為「不公平的要求」:72,758 行 68000 組語,寫給一台早已停產的機器,而且幾乎沒有註解。
要先理解這有多難。68000 組語是 Amiga 時代直接與硬體對話的機器語言:畫面捲動、角色移動、碰撞判斷,全靠一條條指令與暫存器操作堆出來。沒有註解,意味著變數的用途、分支的意圖、遊戲規則的邊界,全都藏在指令本身——對人類工程師來說,這等於要在腦內模擬一台 1993 年的電腦,把七萬多行程式逐一「逆向」回設計意圖。這種工作不是寫不出來,而是投入與回報完全不成比例,所以三十三年來沒有人真的動手。
面對這堆程式碼,模型的第一個動作不是翻譯,而是重建:在作者的 Mac 上,用 vasm——一套支援 68000 指令集、可在現代機器上運行的跨平台組譯器——把 1993 年的原始碼重新組譯,反覆修正,直到輸出的二進位檔與當年遊戲的二進位完全一致。確認一致之後,真正的移植才開始。

為什麼先重建出逐位元組一致的二進位
「逐位元組一致」是整個案例裡最值得開發者抄走的一步。重新組譯出的檔案若與原版遊戲的二進位在每一個位元上都相同,就等於一次證明了三件事:手上這份原始碼是完整的,沒有缺檔;它沒有版本漂移,就是當年真正跑在 Amiga 上的邏輯;而組譯過程本身,也是模型對這份組語的第一次完整通讀。
之後的移植因此有了堅實的地基。模型不是憑印象「重寫一款像 Babylonian Twins 的遊戲」,而是把組語當成唯一事實來源,逐段對照著翻成 Godot 4 的場景與腳本;任何被模型腦補出來的遊戲規則,都會在與組語對照時現形。這與軟體工程界談了多年的可重現建置是同一個道理——先讓輸入可驗證,再談輸出可信。對舊程式碼遷移這種最容易「越改越歪」的工程來說,這道閘門比模型本身的能力更關鍵。
舊遊戲住進新遊戲:原作成為第二個啟動選項
第三步最有溫度:把 1993 年的原作整個包進新遊戲,成為可直接啟動的第二個遊戲。新作與原作因此同框——玩家打開的是 Godot 4 版本,而三十三年前的巴格達原版就住在裡面,隨時可以啟動。
對遊戲保存來說,這一步的意義不小。老遊戲的現代重製常見兩種遺憾:要麼原版在重製過程中被取代、逐漸失傳;要麼原版被扔給模擬器,與新版本再無關聯。把原作內嵌為新遊戲的一部分,讓「保存」與「重製」變成同一件事——這個形式本身,就值得其他懷舊重製專案參考。

Fable 5 的位置:長上下文與長程代理工作
為什麼是 Fable 5?Anthropic 官方文件給這個模型的定位是「為高難度推理與長程代理工作而建」,規格上提供預設 1M token 上下文與單次最多 128k 輸出,定價為每百萬輸入 10 美元、輸出 50 美元。「把大批原始碼放進同一個工作階段、跨多輪工具呼叫把工程做完」正是這種規格瞄準的任務形態——七萬多行無註解組語對任何模型都是份量驚人的長文件,而長上下文讓它成為可工作的素材,不必被切成失去全局的碎片。
放在榜單脈絡裡看,同一個模型此刻也以 85% 暫居 OSWorld-Verified 電腦操作基準的榜首,見〈a16z 的電腦操作追蹤〉;先前也在 Drone-Bench 無人機基準上受測,見〈Fable 5 的無人機評測〉。移植遊戲與操作電腦是不同任務,但共同點很清楚:長時間、多步驟、需要自我驗證的代理式工作,正逐漸成為前沿模型互相較量的主戰場。
啟示與限制:一個案例,不是一張成績單
對還抱著舊程式碼的團隊,這個案例展示了一條可複製的路徑:先把原始碼在原始工具鏈上重建到與線上版本一致,把「事實」釘死,再讓模型做翻譯。遊戲保存如此,金融機構的大型主機、跑在冷門架構上的工業程式也如此——LLM 移植真正的瓶頸從來不是翻譯能力,而是有沒有可驗證的事實基礎。
但限制同樣清楚。這是單一作者的自述,不是基準測試,也沒有經過同儕審查。作者本人就是原開發者,他認得自己的程式碼,能一眼看出模型弄錯了哪條遊戲規則——這種人機搭配,很難直接外包給沒有領域知識的人。以 Fable 5 每百萬輸入 10 美元、輸出 50 美元的定價來看,整個夏天反覆讀寫大批組語的費用不會是小數目;不過對一款等了三十三年的重製來說,這或許是最便宜的一次機會。
後續值得追蹤的指標有三:Godot 4 版本何時正式發布、有沒有其他老遊戲作者複製這套「先驗證、再移植」的流程,以及長程代理工作會不會成為下一代模型的標配能力。等到第十個類似案例出現,我們才能把「一晚 34,000 行」從趣聞升級為方法。





