ニュース

スノーボードキッズ、84日でデコンパイル完了:LLMエージェントが実際にやったこと

N64版『スノーボードキッズ』がわずか84日で100%デコンパイルされた。これは続編の約7分の1の期間だ。著者はAIエージェント、専門家の人間の助け、そしてより良いツールの組み合わせを評価する一方、LLMだけでは達成できなかったと警告する。

August 27, 2026· 1 min read· 出典: Chris' Blog
スノーボードキッズ、84日でデコンパイル完了:LLMエージェントが実際にやったこと

Nintendo 64版オリジナルのスノーボードキッズが完全にデコンパイルされ、すべての関数がコンパイル時に元のマシンコードと一致するようになった。プロジェクトは84日間で完了し、続編の596日間と比較して劇的なスピードアップとなった。著者はこれをAIエージェント、専門家の人間の介入、そして改善されたツールの組み合わせによるものとしている。

これはレトロゲームおよびデコンパイルコミュニティにとって注目すべきマイルストーンだ。完全なデコンパイルはゲームのソースコードが事実上再構築されたことを意味し、スピードランナーが正確なゲームメカニクスを理解できるようになり、静的再コンパイルや野心的なMODへの道を開く。

なぜこんなに速いのか?

著者のクリス・ルイスは、類似プロジェクト(スノーボードキッズ2)にすでに約2年を費やしており、経験ははるかに豊富だった。しかし最大の違いは、最先端のLLMと高性能なエージェントハーネス(Nigel)へのアクセスだった。ただし、彼はAIが唯一の理由ではないとすぐに指摘する。マッチングコミットの約4.8%は専門家の人間の介入を必要とし、プロジェクトはコミュニティの貢献に大きく依存していた。

もう一つの要因はコンパイラだ。スノーボードキッズは、扱いが難しいことで有名なプロプライエタリなSGIコンパイラであるIDO 5.3でコンパイルされていた。GCCとは異なり、IDOのソースは入手できず、その攻撃的な最適化パスは予測を困難にする。デコンパイルコミュニティは、IDOをリバースエンジニアリングし、現代のハードウェアで動作するように静的に再コンパイルする必要があった。

エージェントが役立った点

エージェントは、任天堂のlibultraやlibmusオーディオライブラリなどの標準ライブラリコードのマッチングに優れていた。著者は、エージェントがゼロからデコンパイルするのではなく、既存のライブラリソースを再利用するための強力なプロンプトが必要であることを発見した。m2cを使用した自動スクリプトは1,830関数のうち17関数(0.93%)しかマッチしなかったが、エージェントのトークンを消費するよりは安価だった。

エージェントはまた、DECOMPILATION_LEARNINGS.mdファイルにIDOの癖を文書化するのに役立ち、その後のエージェントを改善するフィードバックループを生み出した。N64 Decomp Workbenchは、コンパイラパスを再生し、構造的な問題とレジスタ割り当ての問題を区別できるため、後期段階の不一致のデバッグに非常に役立った。

並列化と同期

著者は4つのGitワークツリーでハーネスを実行し、並列デコンパイルを可能にした。各タスクには明確な期限があり、エージェントがパーミュータをより効果的に使用するのに役立った。しかし、同期が課題となった。あるワークツリーが他の場所で試行されている関数と類似した関数をデコンパイルした場合、マージまで他のエージェントはそれを確認できなかった。定期的なマージでこの問題は解決したが、1時間以上かかることもあった。

結論

このプロジェクトは、LLMエージェントがデコンパイルを大幅に加速できることを示しているが、銀の弾丸ではない。最も難しいのは、関数が何をするかを理解することではなく、それがCでどのように表現され、コンパイルされたかを理解することだ。特にIDOのようなクローズドなコンパイラではなおさらだ。人間の専門知識とコミュニティツールは依然として不可欠である。

どんなAIも彼らを置き換えることはできなかっただろう。
Manul X 編集部