- WARNING! -
This repository is a work in progress, and while it can be used to make certain changes, it's still
constantly evolving. If you use it for modding purposes in its current state, please be aware that
the codebase can drastically change at any time. Also note that some parts of the ROM may not be
'shiftable' yet, so modifying them could be difficult at this point.
これは、「ゼルダの伝説 時のオカリナ」の WIP逆コンパイルです。プロジェクトの目的は、静的および/または動的分析とともにゲーム内で見つかった情報を使用して、ゲームのソース コード ベースを最初から再作成することです。 PC ポートは生成されません。詳細については、Discord サーバーのチームにお問い合わせください。
次のバージョンをビルドします。
名前 | ビルドのタイムスタンプ | 説明 | 入力ROMのMD5ハッシュ |
---|---|---|---|
ntsc-1.0 | 98-10-21 04:56:31 | NTSC 1.0 (日本/米国) | 9f04c8e68534b870f707c247fa4b50fc 5bd1fe107bf8106b2ab6650abecd54d6 |
ntsc-1.1 | 98-10-26 10:58:45 | NTSC 1.1 (日本/米国) | 1bf5f42b98c3e97948f01155f12e2d88 721fdcc6f5f34be55c43a807f2a16af4 |
パル-1.0 | 98-11-10 14:34:22 | PAL 1.0 (ヨーロッパ) | e040de91a74b61e3201db0e2323f768a |
ntsc-1.2 | 98-11-12 18:17:03 | NTSC 1.2 (日本/米国) | 2258052847bdd056c8406a9ef6427f13 57a9719ad547c516342e1a15d5c28c3d |
パル-1.1 | 98-11-18 17:36:49 | PAL 1.1 (ヨーロッパ) | d714580dd74c2c033f5e1b6dc0aeac77 |
gc-jp | 02-10-29 23:49:53 | ゲームキューブジャパン | 33fb7852c180b18ea0b9620b630f413f |
gc-jp-mq | 02-10-30 00:15:15 | ゲームキューブジャパン マスタークエスト | 69895c5c78442260f6eafb2506dc482a |
gc-us | 02-12-19 13:28:09 | ゲームキューブ米国 | cd09029edcfb7c097ac01986a0f83d3f |
gc-us-mq | 02-12-19 14:05:42 | ゲームキューブUSマスタークエスト | da35577fe54579f6a266931cc75f512d |
gc-eu-mq-dbg | 03-02-21 00:16:31 | ゲームキューブ ヨーロッパ/PAL マスター クエスト デバッグ | 75e344f41c26ec2ec5ad92caa9e25629 8ca71e87de4ce5e9f6ec916202a623e9 f751d1a097764e2337b1ac9ba1e27699 dde376d47187b931820d5b2957cded14 |
gc-eu | 03-02-21 20:12:23 | ゲームキューブヨーロッパ/PAL | 2c27b4e000e85fd78dbca551f1b1c965 |
gc-eu-mq | 03-02-21 20:37:19 | ゲームキューブヨーロッパ/PALマスタークエスト | 1618403427e4344a57833043db5ce3c3 |
gc-jp-ce | 03-10-08 21:53:00 | ゲームキューブジャパン(コレクターズエディションディスク) | 0c13e0449a28ea5b925cdb8af8d29768 |
デフォルトのバージョンはgc-eu-mq-dbg
、つまり GameCube Europe/PAL Master Quest デバッグ ROM です。
注: このリポジトリには、ROM のビルドに必要なアセットは含まれていません。必要なアセットを抽出するには、ゲームの事前コピーが必要です。
ウェブサイト: https://zelda.deco.mp
ディスコード: https://discord.zelda.deco.mp
Windows またはネイティブ Linux で WSL を使用することをお勧めします。これについては、この Readme の残りの部分で説明します。現在、次のような指示があります。
(これらは Linux の命令にも依存します。) これらの中には、古くなったり、メンテナンスされていないものもあります。通常、私たちの寄稿者は WSL、Linux、macOS を使用しているため、これらの手順は最新のものである必要があります。
Windows 10 または 11 の場合は、この WSL インストール ガイドに従って、WSL とディストリビューションをインストールします。 Linux ディストリビューションとして Ubuntu 20.04 を使用することをお勧めします。
古いバージョンの Windows の場合は、Linux VM をインストールするか、Docker の手順を参照してください。
ビルド プロセスには次のパッケージ要件があります。
Debian / Ubuntu (使用をお勧めします) では、次のコマンドを使用してインストールできます。
sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev libxml2-dev
時のオカリナのコンパイラとして GCC を使用している場合は、以下も必要になります。
注意: WSL を使用している場合は、Linux のgit
使用して WSL の Linux ファイルシステムにクローンを作成することを強くお勧めします。 Windows ファイルシステムにクローンを作成すると、読み取り/書き込み速度が大幅に低下し、Windows が間違った行末を持つファイルをコピーすると、コンパイラー IDO が正しく処理できない問題が発生することがよくあります。
次のようなコマンドを使用して、プロジェクトを配置したい場所にhttps://github.com/zeldaret/oot.git
クローンを作成します。
git clone https://github.com/zeldaret/oot.git
これにより、GitHub リポジトリの内容が現在のディレクトリ内のoot
という新しいフォルダーにコピーされます。他の作業を行う前に、このディレクトリに移動します。
cd oot
Master Quest (デバッグ) ROM のコピーをbaseroms/gc-eu-mq-dbg/
フォルダー内に配置します。 WSL を使用している場合は、 explorer.exe .
Windows ファイル エクスプローラーで現在のディレクトリを開きます。
元の拡張子に応じて、ファイルの名前をbaserom.z64
、 baserom.n64
、またはbaserom.v64
に変更します。
次のコマンドを使用して、ROM からすべてをセットアップして抽出します。
make setup
これにより、いくつかの依存関係が (pip から) ダウンロードされ、ビルド プロセス用のツールがコンパイルされます。次に、オーバーダンプが削除され、ヘッダーにパッチが適用された新しいbaseroms/gc-eu-mq-dbg/baserom-decompressed.z64
が生成されます。また、ROM から個々のアセットを抽出します。
make を実行して ROM をビルドします。プロジェクトへのパスが長すぎないことを確認してください。長すぎない場合、このプロセスでエラーが発生する可能性があります。
make
すべてがうまくいけば、新しい ROM がbuild/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64
でビルドされ、次のテキストが出力されます。
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
代わりに次のように表示される場合:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
これは、ビルドされた ROM がベースのものと同じではないため、何か問題が発生したか、コードの一部が一致していないことを意味します。
注:ビルドを高速化するには、次のいずれかを実行できます。
-jN
渡してmake setup
とmake
実行します。ここで N はビルドで使用するスレッドの数です。一般に受け入れられている知恵は、コンピューターに搭載されている仮想コアの数を使用することです。-j
渡してmake setup
とmake
実行し、できるだけ多くのスレッドを使用しますが、ローエンド システムではメモリを大量に使用する可能性があることに注意してください。これらの両方には、端末出力の順序がスクランブルされるという欠点があるため、デバッグの場合は 1 つのスレッドに固執するのが最善です (つまり、 -j
または-jN
を渡さない)。
プロジェクトの Makefile はかなり構成可能で、ゲームの他のバージョンをビルドしたり、MOD 用のリポジトリを準備したりするために使用できます。詳細については、Makefile の上部に概説されているオプションを参照してください。
すべての貢献を歓迎します。これはグループの取り組みであり、たとえ小さな貢献であっても変化をもたらすことができます。タスクによっては、開始するのに多くの知識を必要としないものもあります。
ほとんどのディスカッションは Discord サーバーで行われます。開始する際にサポートが必要かどうか、またはこのプロジェクトや他の逆コンパイル プロジェクトに関して質問がある場合は、ここで質問してください。