Show HN:Decomp Academy – GameCubeゲームを一致するCコードに逆コンパイルする方法を学ぶ
Decomp Academyは、PowerPCアセンブリをCコードに逆コンパイル(decompile)する方法をインタラクティブに学べる無料の学習サイトです。Metrowerks CodeWarrior GC/2.0コンパイラを実際に動作させ、自分のCコードから生成されるアセンブリがターゲットと1命令単位まで一致するか厳密にチェック。250以上のレッスンがあり、スター・フォックス・アドベンチャーやピクミンなどの実プロジェクトから取られた関数も含まれ、ゼロからの学習でもリアルな逆コンパイルプロジェクトに貢献できるよう設計されています。
背景メモ
- Nintendoのゲームキューブ(GC)用ソフトは、PowerPCアーキテクチャ向けに「Metrowerks CodeWarrior」という専用コンパイラで書かれていた。現在このコンパイラ環境は一般に入手困難で、GCの逆コンパイル(decomp)とは、バイナリから元のCコードを、このコンパイラが吐くアセンブリと完全一致する形で復元する作業を指す。1命令でもずれたら「失敗」という極めて厳密な照合が業界標準。
- ゲームの逆コンパイル・コミュニティはオープンソースで活動しており、『ゼルダの伝説 時のオカリナ』(N64)や『スーパーマリオ64』の完全逆コンパイル・プロジェクトが有名。成果は高精細ポートやMOD、根本的なバグ修正などに使われる。
- Decomp Academyは、こうした逆コンパイルに必要な「アセンブリとCの対応関係」を、ブラウザ上で実際にコンパイラを動かしながら学べるチュートリアルサイト。初心者が実戦に入るまでのギャップを埋める目的で作られた。