1993年のアミガゲームをLLMが解析・移植:68000アセンブリ言語の壁を越えた挑戦
本記事は、筆者が1993年にイラクのバグダッドで、アミガ500という限られたリソースのハードウェアを用いて制作したゲーム『Babylonian Twins』の現代的な移植プロジェクトについて詳述しています。このゲームは、当時の制裁下という過酷な環境で、筆者がエンジニア学生として、純粋な68000アセンブリ言語を用いて、ハードウェアレジスタに直接アクセスすることで実現されました。RAMは512KB、ハードディスクはなく、電力も数時間単位で確保するという極限の状況下で、アートや音楽も現地チームが担当しました。
このゲームは商業的に成功を収めましたが、その後長期間市場から姿を消していました。筆者は、この歴史的な作品を現代のゲームエンジンGodot 4を用いて再構築することを目指しました。特に困難だったのが、オリジナルの72,758行に及ぶ68000アセンブリコードの移植です。以前、筆者自身が2010年にC++でiPhone向けに移植した経験がありましたが、今回はAIの力を借りるという新たな試みを行いました。
筆者は、大規模言語モデル(LLM)であるClaude Fable 5を使用し、以下の三段階の課題を課しました。一つ目は、自身が過去に作成したC++コード(34,000行)をGodot 4に移行させる「安全な要求」でした。二つ目は、コメントがほとんどなく、C++とは全く異なる68000アセンブリコードをGodot上で再構築する「不公平な要求」でした。そして三つ目は、この二つを統合し、現代版のゲームを購入すると、1993年のオリジナル版も遊べるようにする「貪欲な要求」でした。
驚くべきことに、LLMはこれらの全てのステップを、筆者からのヒントや修正なしに単一のパスで完了させました。LLMは、アセンブラ(vasm)を実行し、バイナリを比較するプロセスを自動化し、ゲームの実行に必要なコマンドラインフラグ(例:`--level`、`--pose`)の追加や、複雑なメモリ配置(`org`ディレクティブ)の再構築までを担いました。この成功は、AIが単なるコード生成に留まらず、歴史的なデジタルアートの構造的な理解と再現に貢献した画期的な事例として注目されています。
背景
本ニュースは、初期のコンピューティング技術と、現代のAI技術が交差する点に焦点を当てています。1990年代初頭のゲーム開発は、現代のような高レベルな抽象化レイヤーを持たず、ハードウェアのレジスタやアセンブリ言語を直接操作する必要がありました。この技術的難易度の高さが、AIによる解析・移植という現代的な挑戦の背景となっています。
重要用語解説
- 68000アセンブリ: 1970年代から1990年代にかけて広く使われたCPUの命令セット。ハードウェアの動作を最も低レベルで制御する言語であり、ゲームの根幹部分を直接記述するために用いられました。
- アミガ500: Commodore社が製造したコンピューター。当時のゲーム開発において、ハードウェアの特性を深く理解し、直接レジスタを操作する技術が求められたプラットフォームです。
- Godot 4: オープンソースのゲームエンジン。現代のゲーム開発で広く使われるツールであり、本記事では、古いアセンブリコードやC++コードを移植し、現代的なゲーム環境に統合する基盤として利用されています。
今後の影響
本事例は、AI(LLM)が単なるコンテンツ生成ツールではなく、歴史的な技術遺産や専門性の高いコードベースを解析し、現代のプラットフォームへ「構造的に」移植する能力を持つことを示しています。これにより、過去のデジタルアートやゲームの保存、再評価、そして新たな形で再利用する可能性が大きく広がると予想されます。