- Star Fox Adventures recomp は、現在進行中のデコンパイルプロジェクトを指します。
- 対象ビルド:プロジェクトは、リバースエンジニアリングに役立つ情報を含むデバッグ版を対象としています。
- 必要なファイル:対象となるデモディスクのデータを、合法的に入手したコピーから用意する必要があります。
- ビルドツール:Windows、macOS、Linuxではセットアップ要件が少し異なります。
- 現在の状態:このプロジェクトは、まだ完成して起動可能な再コンパイル版ではありません。
Star Fox Adventures recomp:プロジェクトの範囲
Star Fox Adventures recompは、完成したファン移植版ではなく、リバースエンジニアリングとデコンパイルを行うプロジェクトとして理解するのが適切です。リポジトリはGameCube版のデバッグビルドを対象とし、元のコードをより理解しやすく、保守しやすい形で再構築しています。
このプロジェクトは、GitHub上のStar Fox Adventuresデバッグ版デコンパイルリポジトリで公開されています。目的は、元の関数との一致を確認し、シンボルを特定し、ビルド可能なコードベースを段階的に作成することです。ゲームアセットやアセンブリコードは含まれていないため、必要な元データを合法的に入手したコピーが引き続き必要です。
デバッグ版には、製品版には存在しない診断用関数や情報が含まれているため、研究対象として価値があります。また、後のビルドで削除されたコンテンツへの参照も残されており、未使用または変更された素材を調査する手がかりになります。このプロジェクトは、Rare時代の関連するNintendo 64およびGameCubeのデコンパイル作業を理解するうえでも有用な技術的知見を提供する可能性があります。
| プロジェクト領域 | 現在の役割 | 実際の意味 |
|---|---|---|
| デバッグ実行ファイル | 主な対象 | 追加の診断情報とリバースエンジニアリングの手がかりを提供 |
| デコンパイル済みソース | 開発中 | 関数の一致確認とドキュメント化を段階的に進めている |
| ゲームアセット | 含まれていない | ユーザー自身で互換性のあるファイルを用意する必要がある |
| 製品版との互換性 | 保証されていない | まず特定のデバッグ版を対象としている |
| 最終的な再コンパイル | 利用不可 | 完成したプレイ可能なビルドを想定してはいけない |
研究上の価値
デバッグ版にはコードの識別を容易にする関数や情報が含まれています。
歴史的な価値
削除されたコンテンツへの参照は、開発上の変更を知るための貴重な手がかりになります。
技術的な価値
共通するコードの関係性は、Rareの他のプロジェクトを研究する際にも役立つ可能性があります。
このリポジトリは開発および研究プロジェクトとして扱ってください。ソースファイルのローカルビルドに成功したことと、完成してプレイ可能なStar Fox Adventures recompを混同しないようにしましょう。
対応ツールとプラットフォームの準備
セットアップ手順は使用するオペレーティングシステムによって異なります。リポジトリでは、互換レイヤー経由よりも自動ファイルシステム通知が安定して動作するため、Windowsではネイティブツールの使用を推奨しています。macOSとLinuxでは、ビルド環境の一部に追加ツールが必要です。
共通する最も重要な依存関係は、プロジェクトのビルド処理を担当するNinjaです。Windowsでの設定やリポジトリのセットアップスクリプトにはPythonも必要です。x86以外のLinux環境ではWineが必要になる場合がありますが、x86およびx86_64環境では、プロジェクトのドキュメントに記載された軽量ラッパーを利用できます。
| プラットフォーム | 主な要件 | 重要な注意点 |
|---|---|---|
| Windows | Python、Ninja | ネイティブツールを推奨。WSLとMSYS2は不要 |
| macOS | Ninja、Wine Crossover | パッケージのインストールにはHomebrewコマンドを使用 |
| Linux x86/x86_64 | Ninja、プロジェクトのラッパー対応 | リポジトリが軽量なWindowsラッパーを自動的に使用できる |
| Linux non-x86 | Ninja、Wine | システムのパッケージマネージャーからWineをインストール |
| Visual Studio Code | 任意のワークスペース設定 | 必要に応じてサンプル設定ディレクトリの名前を変更 |
Windowsでは、Pythonをシステムパスから利用できるようにする必要があります。Ninjaは直接インストールすることも、Pythonのパッケージマネージャーからインストールすることもできます。macOSでは、リポジトリのドキュメントにNinjaとWine CrossoverをHomebrewでインストールする方法が記載されています。Linuxユーザーは使用しているディストリビューションを通じてNinjaをインストールし、プラットフォーム固有の互換性に関する案内に従ってください。
すべてのオペレーティングシステムで同じコマンドが使えるとは限りません。WSLやMSYS2では自動リビルドに必要なファイルシステム通知が提供されない可能性があるため、Windowsでは特にネイティブツールが推奨されています。
整理されたワークスペースを用意することも役立ちます。リポジトリ、抽出した入力ファイル、ビルド出力は別々のフォルダーで管理してください。これにより設定ミスを特定しやすくなり、一時的な抽出ファイルをプロジェクトのソースと混同するのを防げます。
| ワークスペース項目 | 推奨用途 | 分けて管理する? |
|---|---|---|
| リポジトリフォルダー | デコンパイル済みソース、スクリプト、設定 | はい |
| 元のデバッグ実行ファイル | 設定対象バージョンの入力ファイル | はい |
| 一時抽出フォルダー | Dolphinでの抽出中にファイルを保持 | はい |
| ビルド出力 | 生成されたオブジェクトとバイナリ | できれば分ける |
| Diff設定 | objdiff.jsonおよび関連設定 | プロジェクトルート内 |
セットアップとビルドの手順
以下の手順は、合法的に使用する権利を持つゲームデータに対してのみ実行してください。リポジトリは必要なアセットや実行ファイルを配布しておらず、ビルド手順は適切なディスクデータから正しいデバッグファイルを抽出することを前提としています。
必要なツールチェーンをインストールする
WindowsではPythonとNinja、macOSではNinjaとWine Crossover、LinuxではNinjaと適切な互換ツールをインストールします。続行する前に、ターミナルから各コマンドを利用できることを確認してください。
リポジトリをクローンする
Star Fox Adventuresのデコンパイルリポジトリを専用の作業ディレクトリにクローンします。コマンドラインやファイルシステム上の問題が起きる可能性を減らすため、リポジトリのパスはシンプルに保ってください。
デバッグ用入力ファイルを抽出する
Dolphin Emulatorを使用して、対象となるデモディスクデータからプロジェクトが必要とするTGCファイルを抽出します。次に、そのファイルをDolphinで開き、デバッグ実行ファイルをリポジトリで想定されているorig/GSAP01-DEBUG/default.dolの場所に抽出します。
プロジェクトを設定する
プロジェクトのルートからpython configure.pyを実行します。デフォルトのデバッグ対象以外の対応バージョンを対象にする場合は、デフォルト設定が適用されると決めつけず、リポジトリのバージョン引数を使用してください。
ビルドを実行する
設定が完了したらninjaを実行します。プロジェクトが未解決の関数や不完全なソース間の関係を報告した場合は、それをセットアップ失敗と判断する前に、リポジトリの現在の状態を確認してください。
抽出段階は、この作業の中でも特に慎重さが求められます。必要なファイルは、Star Fox Adventuresの実行ファイルであれば何でもよいというわけではありません。リポジトリは特定のデバッグ版を対象としており、利用可能な製品版アセットは互換性がないとドキュメントに記載されています。
| 段階 | 期待される結果 | よくある間違い |
|---|---|---|
| クローン | プロジェクトファイルがローカルに表示される | 制限のあるパスや複雑すぎるパスにクローンする |
| TGCの抽出 | 一時的なディスクデータを利用できる | 関係のないディスクイメージやファイルを使う |
| DOLの抽出 | default.dolが想定された入力フォルダーに配置される | 間違ったバージョンのディレクトリに配置する |
| 設定 | ビルドファイルが生成される | 設定を省略する、または間違ったバージョンを使う |
| ビルド | Ninjaがプロジェクトのソースのコンパイルを開始する | すぐに完成したプレイ可能なゲームができると期待する |
ソースファイルを変更する前に、抽出、設定、最初のNinjaビルドまで完了させてください。これにより、後の編集を診断するためのクリーンな基準を作れます。
ビルド状況と差分比較を理解する
セットアップに成功したからといって、プロジェクトが完成したことにはなりません。リポジトリでは、関数を個別に一致させている途中の作業としてコードが説明されています。また、参照やソース間の関係が不完全な間は、プロジェクトがまだコンパイルできない可能性があるとも警告しています。
ビルド処理は、より長期的な再構築ワークフローの一部です。研究者は元のオブジェクトとデコンパイル済みソースを比較し、シンボル名を改善し、分割定義を調整し、差分を徐々に減らしていきます。そのため、objdiffのようなツールは単なる便利機能ではなく、プロジェクトの中心的な存在となっています。
| ツールまたはファイル | 目的 | 使用するタイミング |
|---|---|---|
configure.py | プロジェクト設定を生成する | 初回ビルドの前、またはバージョン変更後 |
ninja | 設定済みプロジェクトをビルドする | 設定後およびソース変更後 |
objdiff | 元のオブジェクトと再構築したオブジェクトを比較する | 初回ビルドが存在するようになった後 |
objdiff.json | Diffプロジェクトの設定を保存する | プロジェクトルートで生成または管理 |
splits.txt | ソース分割情報を定義する | オブジェクト境界を整理するとき |
symbols.txt | 認識されたシンボルを追跡する | 識別および一致確認の作業中 |
初回ビルドが、想定された設定を生成できるところまで進んだら、プロジェクトのドキュメントに記載されたソースからobjdiffの最新リリースをダウンロードします。プロジェクト設定を開き、リポジトリのディレクトリを選択して、設定を読み込ませてください。
Diffワークフローでは、インターフェースからオブジェクトを選択し、再構築されたソースが元のソースとどの程度一致しているかを確認できます。環境が正しく設定されていれば、ソースファイル、ヘッダー、設定スクリプト、分割定義、シンボル一覧を変更した際に自動的にリビルドが実行されます。
オブジェクトの比較を始める前に:
- 正しいプラットフォーム用ツールチェーンをインストールする
- 対象のデバッグ実行ファイルを想定された入力パスに配置する
- 設定スクリプトを正常に実行する
- プロジェクトのDiff設定を生成または確認する
- ソースの変更によって意図したリビルドが実行されることを確認する
不完全なビルドは、ローカル環境の設定ミスではなく、デコンパイル作業が未完成であることを示している場合があります。オペレーティングシステムのトラブルシューティングを行う前に、プロジェクトの現在のファイル、設定出力、文書化された制限事項を確認してください。
既知の制限と適切な期待値
対象となるデバッグビルドには大きな制限があります。リポジトリの説明によれば、このビルドは内部デバッグ環境を想定し、トレースのために無効なアドレスへ書き込み、固定されたフレームバッファ配置に依存しているため、コンソールやエミュレーターでは起動しません。クラッシュハンドラーも通常の製品版ランタイムではなく、内部開発環境を前提としています。
実行ファイルには互換性のあるアセットも不足しています。利用可能なバージョンの既存アセットを単純に代用することはできないため、ファイルを抽出してエミュレーターで起動することは、ゲームプレイに至る現実的な方法ではありません。
| 制限 | ユーザーへの影響 | 正しい期待値 |
|---|---|---|
| 内部エミュレーターへの依存 | 通常のコンソールやエミュレーターでは起動に失敗する可能性がある | 再構築作業のためにプロジェクトを使用する |
| 無効なデバッグアドレス | 実行時の動作が早い段階で停止する可能性がある | クラッシュを通常のゲームバグとして扱わない |
| 固定フレームバッファへの依存 | 画面の初期化に失敗する可能性がある | 対象は製品版ビルドとして準備されていない |
| 互換性のあるアセットの不足 | 実行ファイルに必要なコンテンツがない | 合法的に入手した対象データのみを用意する |
| おおまかなソース分割 | 比較結果が完全でない可能性がある | 継続的な整理と修正を想定する |
この区別は、すぐにダウンロードしてプレイできる「Star Fox Adventures recomp」を探している人にとって重要です。現在利用できるプロジェクトは、完成したPC移植版や製品版の代替として提供されているものではありません。より多くの関数が理解され、再構築されるにつれて、将来の作業を支える可能性がある技術的基盤です。
著作権で保護されたアセットを配布したり、共有された実行ファイルを要求したり、関係のない製品版ファイルによってデバッグ対象が起動すると考えたりしないでください。リポジトリのドキュメントと、自分が合法的に入手したデータを使用してください。
Q: Star Fox Adventures recompとは何ですか?
Star Fox Adventuresのデバッグビルドを対象とした、コミュニティによるデコンパイルおよび再構築の取り組みです。現在のリポジトリは開発中のコードプロジェクトであり、完成したプレイ可能な移植版ではありません。
Q: リポジトリにはゲームアセットやアセンブリコードが含まれていますか?
いいえ。プロジェクトのドキュメントには、ゲームアセットとアセンブリコードは含まれていないと記載されています。ローカルで作業するには、必要な元データを合法的に入手したコピーが必要です。
Q: なぜデバッグビルドは起動に失敗するのですか?
対象ビルドは内部デバッグ環境を想定し、トレースのために無効なアドレスを使用し、固定されたフレームバッファ位置を必要とし、通常の実行に必要な互換性のあるアセットも不足しているためです。
Q: 製品版のStar Fox Adventuresファイルをこのプロジェクトで使用できますか?
製品版のファイルが動作すると決めつけてはいけません。対象のデバッグビルドは、利用可能なバージョンのアセットと互換性がないと説明されています。リポジトリが指定する正確な入力要件に従ってください。
実用的なトラブルシューティングチェックリスト
セットアップに失敗した場合は、入力ファイルから順に確認してください。まず、リポジトリが意図したバージョンを対象としていることを確認します。次に、抽出した実行ファイルが正しいディレクトリにあること、そしてオペレーティングシステムからPython、Ninja、必要な互換ツールを利用できることを確認してください。
短い診断サイクルで確認します。
- 入力パスを修正した後、設定を再実行する。
- 抽出した元のファイルは変更せずに保持する。
- 後続の連鎖的なメッセージではなく、最初のエラーを読む。
- 問題が不完全なソース一致に起因していないか確認する。
- 使用しているプラットフォームのコマンドを、リポジトリに記載されたセットアップ方法と比較する。
| 症状 | 最初に確認すること | 考えられる領域 |
|---|---|---|
| Pythonコマンドが見つからない | Pythonがシステムパスにあることを確認する | ツールのインストール |
| Ninjaコマンドが見つからない | Ninjaをインストールするか、パスに追加する | ビルド依存関係 |
| 設定で入力ファイルが見つからない | origディレクトリの構造を確認する | ファイル抽出 |
| 参照不足でビルドが停止する | プロジェクトの完成状況を確認する | デコンパイルの進捗 |
| Diffツールにプロジェクトが表示されない | プロジェクトディレクトリを手動で選択する | objdiffの設定 |
| ランタイムが起動しない | デバッグビルドの制限事項を確認する | 想定された動作 |
最も有用な考え方は、環境のエラーとプロジェクトの状態による制限を分けて考えることです。ツールの不足、間違ったパス、壊れた設定は、通常ローカルで修正できます。一致していない関数、おおまかな分割定義、存在しないアセットは、再構築プロジェクトそのものに含まれる課題です。
使用しているプラットフォーム、ツールのバージョン、入力ファイルのパス、設定コマンド、最初のビルド結果を記録しておきましょう。その記録があれば、今後のトラブルシューティングや共同作業が大幅に容易になります。