バグまで“そっくりそのまま”に。1989年のフライトシムを、欠点ごとC言語で復元する有志が「テストパイロット」を募集中

1989年に出たDOSのフライトシム『F-15 Strike Eagle II』(マイクロプローズ)を、ソースコードまるごと“復元”している有志プロジェクトが、Hacker Newsで話題(つい先日)。やっているのは、市販ゲームの中身(バイナリ)を機械語から一個ずつ解きほぐし(逆アセンブル・逆コンパイル)、人間が読めるC言語に書き戻す気の長い作業だ。2026年6月時点で、3本ある実行ファイル(f15.exe / egame / end)はすべてC言語化が済み、データ構造もアセンブリからCへ移し終え、関数の多くに意味のある名前がついた。そこでいよいよ、「実際に遊んでバグを見つけてほしい」とテストパイロット(テスター)を募集しはじめた——配布版v0.9.1は、砂漠の嵐(Desert Storm)拡張を含む製品版451.03の実行ファイルと差し替えて動く。最大の見どころは、これが「バグごと(bug-for-bug)」の再現だという点。3Dの物体が消える、物理がおかしい、といった“元のゲームのクセや不具合”まで、わざと忠実に残している。復元したコードが本物と一致するかは、機械語の命令(オプコード)レベルまで照合して確かめる徹底ぶり。直さないのが正解で、欠点ごと残すのがいちばん誠実な保存——その逆説を、ことね・ひかり・みずき・ひなたの4人が掘る。(DOS・MCGA/VGA表示で、いまのところ音と操縦桿は非対応)

ことね:ねえ、これすごいの。1989年に出たフライトシム『F-15 ストライク・イーグルII』を、ソースコードまるごと“復元”しちゃった有志がいてね。しかも今、「テストパイロット募集」が出てるのよ。

ひかり:えっ何それ気になる! 1989年って……37年前!? なんでいまさら、そんな昔のゲームを、わざわざ作り直すの?

ことね:もとのゲームの中身(バイナリ)を、機械語から一個ずつ解きほぐして——逆アセンブル・逆コンパイルっていうの——人間が読めるC言語に書き戻していく作業ね。もう3本ある実行ファイルはぜんぶC言語化して、データの構造もアセンブリから移し終えて、関数にもちゃんと意味のある名前がついた。それでいよいよ、「実際に遊んでバグを見つけて」って、テストパイロットを募りはじめたの。砂漠の嵐(デザートストーム)拡張つきの製品版で、ちゃんと動くんですって。

ひかり:テストパイロット!? なにそれカッコいい〜、わたしやりたいっ! で、ことね先輩、その復元版って、元のゲームと“そっくり”にできてるの?

みずき:…それがオチでさ。これ「バグごと」再現してるんだよ。元のゲームのバグとか、変な挙動——3Dの物体が消えるとか、物理がおかしいとか——まで、わざと残してる。…で、それ誰得? 不具合まで丁寧に写すって、書き間違いまでなぞる写経じゃん。

ことね:それが筋なのよ、みずき。目的は「元のゲームと“まったく同じもの”を、別の形でちゃんと残すこと」。だからバグも仕様のうち。直したら、もう“別のゲーム”になっちゃうの。だって、復元したコードが元と一致してるか、機械語の命令(オプコード)のレベルまで照合してるんだから。バグまで含めて“同じ”を証明する——それが、デジタルの保存なの。

みずき:…へえ。完璧な姿じゃなくて、“ありのまま”を残す。…欠点ごと、まるっと愛されてるってことか。……ちょっといいじゃん。

ひかり:なんかいいね……! あ、前にコードを書かずにRPGが作れるツールの話したでしょ? あれが“作る”の入口を広げる話なら、こっちは“昔のゲームを解き明かして残す”話。まるっきり逆だけど、どっちもゲーム愛だ〜!

ひなた:ふぁ〜……あのね。うちのおばあちゃんの卵焼き、はじっこが、ちょっとだけ焦げてるのです。

ひなた:でもね、その焦げがないと、おばあちゃんの卵焼きじゃ、なくなっちゃうのです。きれいに焼き直したら、もう別のだれかの卵焼きなのです。……バグも、きっと、そのゲームの“焦げ”なのです。焦げたところまで、ぜんぶで、あのゲームなのです。

まとめ:1989年のフライトシムを、バグまで“そっくりそのまま”C言語で復元する有志プロジェクト。直さないのが正解で、欠点ごと残すのがいちばん誠実な保存だ。みずきの「写経」ツッコミ、ことねのオプコード照合、そしてひなたの“焦げた卵焼き”。37年前の空を、もう一度飛べるように——テストパイロット、ただいま募集中。

元記事を読むホームへ