zelda3 - ゼルダ3の再実装。

()

Created at: 2022-08-11 09:11:41
Language: C
License: MIT

ゼルダ3

ゼルダ3の再実装。

私たちの不和サーバーは次のとおりです https://discord.gg/AJJbJAzNNJ

に関しては

これはゼルダ3のリバースエンジニアリングされたクローンです-過去へのリンク。

Cコードの約70〜80kLOCであり、元のゲームのすべての部分を再実装します。ゲームは最初から最後までプレイ可能です。

ゲームリソース(レベル、画像)を抽出するには、ROMのコピーが必要です。それが完了すると、ROMは不要になります。

LakeSnesのPPUとDSPの実装を使用しますが、速度の最適化が多数行われています。 さらに、元のマシンコードを並べて実行するように構成することもできます。次に、各フレームの後にRAMの状態が比較され、Cの実装が正しいことが検証されます。

私はスパナリズムのゼルダ3 JPの逆アセンブルや、関数名と変数の負荷を文書化した他のものから多くの支援を受けました。

追加機能

元のゲームでサポートされていない多くの機能が追加されました。それらのいくつかは次のとおりです。

ピクセル シェーダーのサポート。

16:9 または 16:10 の拡張アスペクト比のサポート。

より高品質の世界地図。

MSUオーディオトラックのサポート。

ボタンXのセカンダリアイテムスロット(インベントリでXを押したままにして選択します)。

現在のアイテムをL / Rキーで切り替えます。

Windows への Python とライブラリのインストール (アセット抽出手順に必要)

  1. Pythonインストーラをダウンロードしてインストールします
  2. コマンドプロンプトを開きます
  3. アップグレードpip&インストールし、入力してEnterキーを押します
    pillow
    pyyaml
    python -m pip install --upgrade pip pillow pyyaml
  4. コマンドプロンプトを閉じる

TCC (1MB Tiny C Compiler) を使用した Windows でのコンパイル

  1. githubページの「コード>ダウンロードZIP」をクリックしてプロジェクトをダウンロードします
  2. ZIPをハードドライブに抽出します
  3. "\tables"サブフォルダに名前が付けられた米国のROMを配置します
    zelda3.sfc
  4. コマンドプロンプトを開き、そのフォルダに移動します
  5. 入力してリソースを抽出し、Enterキーを押します
    python extract_resources.py
  6. 抽出したリソースを次のように入力してコンパイルし、Enter キーを押します。
    python compile_resources.py
  7. コマンドプロンプトを閉じる
  8. TCCをダウンロードして「\third_party」サブフォルダに解凍します
  9. SDL2をダウンロードし、"\third_party"サブフォルダに展開します
  10. メインディレクトリをダブルクリックして、同じディレクトリに作成します
    run_with_tcc.bat
    zelda3.exe
  11. メインディレクトリで構成する
    zelda3.ini

Visual Studio (4.5GB IDE およびコンパイラ) を使用した Windows でのコンパイル

上記の
手順1〜7と同じ8。
[9] をダブルクリックします。上部のドロップダウン
で「デバッグ」を「リリース」に変更します 10.メニューの「ビルド>ビルドゼルダ3」を選択して、「/ bin / release」サブフォルダー11
に作成します。メインディレクトリで構成する

Zelda3.sln
zelda3.exe
zelda3.ini

Linux/MacOSへのライブラリのインストール

  1. ターミナルを開く
  2. pip がまだインストールされていない場合はインストールします
python3 -m ensurepip
  1. リポジトリを複製してその中に入れます
    cd
git clone https://github.com/snesrev/zelda3
cd zelda3
  1. pip を使用したインストール要件
python3 -m pip install -r requirements.txt
  1. SDL2のインストール
  • Ubuntu/Debian
    sudo apt install libsdl2-dev
  • Fedora Linux
    sudo dnf in sdl2-devel
  • アーチリナックス
    sudo pacman -S sdl2
  • macOS:(あなたはここで自作を得ることができます
    brew install sdl2
    )

Linux/macOS でのコンパイル

  1. という名前のUS ROMファイルをに配置します
    zelda3.sfc
    zelda3/tables
  2. コンパイル
make
高度な使用方法...
make -j$(nproc) # run on all core
make clean all  # clear gen+obj and rebuild
CC=clang make   # specify compiler

ニンテンドースイッチ

DevKitProAtmosphere がインストールされている必要があります。

(dkp-)pacman -S git switch-dev switch-sdl2 switch-tools
cd platform/switch
make # Add -j$(nproc) to build using all cores ( Optional )
# You can test the build directly onto the switch ( Optional )
nxlink -s zelda3.nro

その他のコンパイルヘルプ

詳細については、https://github.com/snesrev/zelda3/wiki のwikiを参照してください。

ROMには名前を付ける必要があり、この正確なSHA256ハッシュを持つ米国地域のものである必要があります

zelda3.sfc
66871d66be19ad2c34c927d6b14cd8eb6fc3181965b6e517cb361f7316009cfb

実行可能ファイルを別の場所に移動する場合は、ファイルを含めてください。

tables/zelda3_assets.dat

使用法と制御

ゲームはスナップショットをサポートしています。ジョイパッドの入力履歴もスナップショットに保存されます。したがって、ターボモードでプレイスルーを再生して、ゲームが正しく動作することを確認できます。

ゲームはで実行され、ROMファイルへのオプションのパスを取り、Cコードが元の動作と一致することをフレームごとに確認します。

./zelda3

ボタン
上矢印
下矢印
左矢印
右矢印
始める 入る
選ぶ 右シフト
ある X
B Z
X S
Y ある
L C
R V

キーはゼルダ3で再構成できます.ini

さらに、次のコマンドを使用できます。

アクション
タブ ターボモード
W フィルヘルス/マジック
シフト+W 塗りつぶしルピー/爆弾/矢印
Ctrl + E キー リセット
P 一時停止(薄暗い)
シフト+ P 一時停止(薄暗いなし)
Ctrl+上へ ウィンドウサイズを大きくする
Ctrl + 下 ウィンドウサイズを小さくする
T リプレイターボモードの切り替え
O ダンジョンキーを1に設定
K ジョイパッドログからすべての入力履歴をクリアする
L シャップショットの再生を停止する
R 高速レンダラーと低速レンダラーの切り替え
F レンダラーのパフォーマンスを表示する
F1-F10 キー スナップショットの読み込み
Alt+Enter キー フルスクリーンの切り替え
シフト+F1-F10 スナップショットの保存
Ctrl + F1-F10 スナップショットの再生
1-9 ダンジョンのプレイスルースナップショットを実行する
Ctrl + 1-9 ターボモードでダンジョンのプレイスルーを実行する

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については、「ライセンス.txt」を参照してください。