F-15 Strike Eagle II リバースエンジニアリング・プロジェクトが v0.9.1 に到達

F-15 Strike Eagle II が主要な再構築マイルストーンに到達

1989年のDOSゲーム F-15 Strike Eagle II のリバースエンジニアリング・プロジェクトは、egame および end を含むすべてのゲーム実行ファイルのすべてのCソースコードの再構築に成功しました。このマイルストーンは、オペコードの静的解析からアクティブなランタイムテストへの移行を意味し、将来的なLinuxおよびWindowsへの移植への道を開くものです。

現在のステータスと技術的進捗

プロジェクトは、アセンブリをCに変換する初期段階を過ぎました。再構築の現在の状態は以下の通りです:

  • 完全なソースの再構築: すべての実行ファイルに対するすべてのCコードが再構築されました。
  • データの移行: すべてのゲームデータがアセンブリからCに移行されました。
  • 機能的な置き換え: ほとんどのアセンブリ専用コードは、現在Cで書かれた機能的な置き換えコードになっています。
  • 意味的なラベル付け: 保守性を向上させるため、ほとんどのルーチンとデータ構造に意味のある名前が割り当てられました。

正確性を確保するため、プロジェクトではツールを使用して、再構築されたオペコードが元のバイナリに対して忠実であることを検証しています。しかし、これらのツールはデータレイアウトのバグを検出できないため、プロジェクトは手動テストフェーズに入りました。

テスト用バージョン v0.9.1

コミュニティテスト用にリリース v0.9.1 が利用可能です。このバージョンは、オリジナルのゲームの 451.03 バージョンおよび Desert Storm 拡張パックと動作するように設計されています。

インストールと要件

再構築版をテストするには、ユーザーは以下の条件を満たす必要があります:

  1. オリジナルのゲームファイル(バージョン 451.03)を所有していること。
  2. ゲームフォルダ内のオリジナルの実行ファイルを、f15_se2-*.zip リリースから取得した新しいものに置き換えること。
  3. 置き換えの前にオリジナルのファイルをバックアップすること。
  4. 新しい f15.exe が起動するように、オリジナルの f15.com を削除すること。

既知の制限事項とテスト範囲

テスターは、現在のビルドがセットアップ画面をバイパスし、サウンドなし、ジョイスティックサポートなしのMCGA/VGAディスプレイをデフォルトとして使用することに注意してください。これらの制限にもかかわらず、ミッションブリーフィング、飛行、およびデブリーフィングのセクションは完全に機能します。

開発者は以下の報告を求めています:

  • システムのクラッシュ
  • グラフィカルな不具合(グリッチ)
  • 入力/キーの失敗

「バグ・フォー・バグ」の哲学

このプロジェクトは「バグ・フォー・バグ」の再構築です。これは、1989年のオリジナルゲームに存在する挙動が、再構築されたバージョンでも維持されなければならないことを意味します。新しい問題として報告すべきではない、オリジナルのバグの例は以下の通りです:

  • 3Dオブジェクトの消失
  • 機体が反転して燃料切れになった際に空に向かって落下する挙動

プロジェクト・ロードマップ

開発プロセスは、安定性と忠実度を確保するために、厳格なマルチステップ・パイプラインに従います:

  1. アセンブラへの完全なリバース: バイナリを理解するための初期段階。
  2. バイナリと等価なコンパイル済みC: アセンブラをCコードに変換し、全く同じバイナリにコンパイルすること。
  3. DOS検証: アセンブラコードが残っていない状態で、ゲームがDOS(またはDOSBox)上で完全に機能することを確認すること。
  4. モダンな移植: DOS版が検証された後、プロジェクトはリポジトリをフォークして、ゲームをLinuxおよびWindowsへの移植を開始します。

コミュニティの視点

一部のユーザーは、DOSBoxによるエミュレーションが存在する中で、デコンパイルの必要性に疑問を呈しましたが、他のユーザーは、お気に入りのタイトルに対する「4つの自由」を確保することの重要性を強調しました。プロジェクトはまた、ゲームの急激な学習曲線と、飛行操作にオリジナルのマニュアルが必要であったことを覚えている元プレイヤーからのノスタルジーによる関心を集めています。

Sources