ニンテンドー64のゲームを84日間で逆コンパイル
短期間で逆コンパイルが完了した要因としてルイス氏は、一つには大規模言語モデル(LLM)の活用があるとしましたが、それだけではないとも語っています。特に標準ライブラリコードの照合においてAIは能力を発揮しました。しかしAIに既存のライブラリリソースを活用させるためにはより高度なプロンプトエンジニアリング、つまり人間の専門家による貢献が不可欠でした。特にinspectredc・queueRAM・Bl00D4NGELをはじめとする逆コンパイルコミュニティからの多大な協力なしには実現不可能だったとのこと。
特にSGIが開発したプロプライエタリなコンパイラ「IDO 5.3」の解析においてコミュニティの専門知識は極めて重要でした。IDOはソースコードが入手できないうえに古いSGIハードウェアに依存していたため、コミュニティによるリバースエンジニアリングと再コンパイルなしに挙動を理解し現代のハードウェアで動作させるのは不可能だったそうです。特にIDOの多段階にわたる最適化とコード生成プロセスはC言語コードのわずかな変更でもレジスタ割り当てに大きな影響を与えるため、挙動の予測困難さがAIによる逆コンパイルのワークフローを複雑にしていました。IDOの挙動を理解することは「科学というよりむしろ芸術に近い」とルイス氏は評しています。
AIエージェントは「標準ライブラリコードのマッチング」「特定コンパイラの癖の記録」といった、オンラインで公開されている情報を利用可能な分野で活躍しました。特に、IDOの「癖」を記録した「DECOMPILATION_LEARNINGS.md」ファイルはエージェント間の学習を促進するフィードバックループを形成しました。また「N64 Decomp Workbench」のようなデバッグツールはコードの不一致の原因を特定し、構造的な問題とレジスタ割り当ての問題を区別するのに役立ちました。しかし、AIはIDOによる独特な出力を再現するのが苦手であり、IDOの挙動を再現するには人間チームの専門知識や直感が不可欠でした。
逆コンパイル完了後の最優先課題としてルイス氏は「ゲームのドキュメント化」をより充実させることを挙げています。ゴールは全関数に対してCコードとの紐付けですが、現状はすべての関数が何をしているのか把握できているわけではないので、想定している作業には「生成された関数名をより内容に則したものに変更する」「何に役立っているのか不明な構造体フィールドの特定」「生成コードのクリーンアップ」などが含まれます。また並行してスノボキッズの再コンパイル作業も進行中であり、超スノボキッズの再コンパイル作業で修正したものと同じ不具合が数多くみられるとのことです。さらに、スノボキッズのレベルやコンテンツを超スノボキッズのエンジンに移植する試みや、PlayStation版の「スノボキッズプラス」の逆コンパイルにも興味が示されています。協力者募集の言葉でルイス氏の記事は締めくくられています。
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.

