PC移植版パーフェクトダークの遊び方

PC移植版パーフェクトダークの遊び方

N64パーフェクトダークの逆コンパイルが実質100%完了し、PC移植という次の段階に進んでいます。
プレイに影響がある大きな不具合は全て解消され、ほぼほぼ問題ないレベルまで完成されています。
現在は、オンラインプレイ機能の開発が進められています。

【2024/01/24】更新

逆コンパイルプロジェクト

N64パーフェクトダークの逆コンパイルのプロジェクトがあり、逆コンパイルが進められています。
現在逆コンパイルは実質100%完了し、要はパーフェクトダークの中身が丸裸となりました。
そのソースコードを利用し、PC版が開発されています。
ネイティブにPCで実行できるので、エミュレータによる制限はなくなりパフォーマンスを最大限に発揮することができます。
今後は、パフォーマンス改善や、オンライン対戦等の機能追加が期待できます!

逆コンパイルのプロジェクトについては、以下の記事にて説明していますのでご覧ください。

PC版パーフェクトダークのソースコード

逆コンパイルは、Ryan Dwyer氏によって実施され実質100%完了しました。
現在、fgsfds氏によってPC版のためのソースの改修が行われています。

ソースコードは、GitHub上で公開されています。
https://github.com/fgsfdsfgs/perfect_dark

ビルド(実行ファイルの作成)の手順も記載されているため、気になる方は試してみてください。
2024/01/10現在、北米版ROM用の実行ファイルはダウンロード可能ですが、日本語版ROM用はまだ配布されていません。
そのため、日本語版ROMで遊びたい場合はソースコードからビルド作業が必要です。(やり方は後述)

必要なもの

  • パーフェクトダークのROM
    ※ビッグエンディアン形式であること
    ※日本語版の場合、Good Nameが「Perfect Dark (J) [!]」のROM
     MD5チェックサム:538d2b75945eae069b29c46193e74790
    ※北米版の場合、Good Nameが「Perfect Dark (U) (V1.1) [!]」のROM
     MD5チェックサム:e03b088b6ac9e0080440efed07c1e40f
  • 実行ファイル
    ※日本語版の場合、ソースコードからビルド作業が必要(やり方は後述)
    ※北米版の場合、GitHubからダウンロード可能(要ログイン)

基本的にはパーフェクトダークのROMさえ用意すれば遊ぶことができます。
ROMを吸い出すやり方や、エンディアン形式の変換方法については、以下の記事をご覧ください。

遊び方

実行ファイルのダウンロード

北米版ROM用の実行ファイルはダウンロード可能ですが、日本語版ROM用はまだ配布されていません。
ただ、GItHubからダウンロードした実行ファイル群にDLLファイルが含まれており、それが必要となるので日本語版で遊ぶ場合でもダウンロードしましょう。

  1. GitHubのアカウントを作成
    実行ファイルのダウンロード時に必要なので、アカウントを持っていない方は作成しましょう。
  2. GitHubにログイン
  3. プロジェクトページの「Actions」にアクセス
    https://github.com/fgsfdsfgs/perfect_dark/actions
  4. 一番上にある(最新)リンクをクリック
    ※「port」や「~:port」と記載があるものをダウンロードしてください。
     「port-net」は、オンラインプレイ機能開発用のブランチです。

     まだ初期段階で不具合も多いのでオンラインプレイをテストする以外は避けた方がいいでしょう(2024/01/10現在)
  5. 「Artifacts」欄にあるリンクをクリック
    ビルド済みのファイルをダウンロードできます。
    Linuxの場合:pd-i686-linux、Windowsの場合:pd-i686-windows
    本記事では、WIndows想定で進めます。

実行ファイルの作成(日本語版の場合)

日本語版ROM用の実行ファイルは配布されていないため、ソースコードからビルドが必要です。
手順については、GitHubのプロジェクトページ上の「Building」の章で説明されています。
https://github.com/fgsfdsfgs/perfect_dark#building

ここではそちらをベースに解説します。

  1. MSYS2(Windows用開発環境)をインストール
  2. 「MSYS2 MINGW32」を起動(MSYS、MINGW64では動きません)
    ※以降は、コマンドで操作します。
  3. 開発環境にビルドに必要なパッケージをインストール

    pacman -S mingw-w64-i686-toolchain mingw-w64-i686-SDL2 mingw-w64-i686-zlib make git
  4. ソースコードをダウンロード

    git clone https://github.com/fgsfdsfgs/perfect_dark.git
  5. ダウンロードした「perfect_dark」ディレクトリに移動

    cd perfect_dark/
  6. コンパイルを実行
    ※日本語版の場合「ROMID=jpn-final」が必要
    ※-j4:ジョブ数4で実行するオプション(並列処理となり時間短縮)

    make -f Makefile.port -j4 ROMID=jpn-final
  7. 実行ファイルの作成確認
    「build/jpn-final-port/pd.jpn.exe」が存在していれば成功

    ls -l build/jpn-final-port/pd.jpn.exe
  8. pd.jpn.exeを回収
    ファイルの実体は、Windows上にあり、デフォルトでは C:\msys64\home\%USERNAME%

今後、ソースコードが更新されていたら、以下のコマンドで更新を取り込み可能です。
git pull
4のソースコードのダウンロードを毎回実施する必要はありません。
「perfect_dark」ディレクトリに移動してから実行します。

ゲームの起動(日本語版の場合)

GitHubからダウンロードした実行ファイル群に、必要なDLLファイルが含まれているため、その中に配置するのが楽です。

  1. ダウンロードした「pd-i686-windows.zip」を展開
  2. 「pd.exe」と同じフォルダ内に「pd.jpn.exe」を配置
  3. 「data」フォルダ内に、以下のファイル名で日本語版ROMを配置
    pd.jpn-final.z64
  4. 「pd.jpn.exe」を実行
    一度実行するとセーブファイルの「eeprom.bin」が生成されます。
    また、閉じた際に設定ファイルの「pd.ini」が生成されます。

ゲームの起動(北米版の場合)

  1. ダウンロードした「pd-i686-windows.zip」を展開
  2. 「data」フォルダ内に、以下のファイル名で北米版ROMを配置
    pd.ntsc-final.z64
  3. 「pd.exe」を実行
    一度実行するとセーブファイルの「eeprom.bin」が生成されます。
    また、閉じた際に設定ファイルの「pd.ini」が生成されます。

操作方法

マウス+キーボード、XInput形式(Xbox 360コントローラ)、DirectInput形式(その他コントローラ)に対応しています。
初期設定は以下の通りですが、割り当ての変更が可能です。

操作マウス/キーボードXbox 360N64備考
撃つ/決定左クリック
スペース
RTZ
照準モード右クリック
Z
LTR
アクション/キャンセルEなしB
アクション/決定なしAA
しゃがみ順番なしL3特殊割当オプションのCrouch Modeを「Toggle + Analog」にするとR+C下がしゃがみになる
1段階しゃがみShiftなし特殊割当
2段階しゃがみCtrlなし特殊割当
リロードRXX
前の武器装備マウスホイール 前B十字左
次の武器装備マウスホイール 後YY
クイックメニューQLB十字下
武器モード切替FRBL
武器モード一時切替F + 左クリック
E + 左クリック
A + RT
RB + RT
A + Z
L + Z
起爆(リモート爆弾)E + Q
E + R
A + B
A + X
B + 十字下
A + X
https://github.com/fgsfdsfgs/perfect_dark#controls

設定ファイルの調整

「pd.exe」、「pd.jpn.exe」を実行して閉じた際に設定ファイルの「pd.ini」が生成されます。
そこには、ウィンドウサイズの設定やキー割り当ての設定が入っており値を変更することで設定が可能です。
現在ではほとんどの設定値はゲーム画面から設定できるようになったので、主要な項目のみ紹介します。

全ての設定項目は、以下のWikiにまとめられています。
https://github.com/fgsfdsfgs/perfect_dark/wiki/Config-variables

  • [Video]
    • DefaultHeight=480:起動時のウィンドウサイズ(高さ)
    • DefaultWidth=640:起動時のウィンドウサイズ(幅)

ゲーム内の設定画面

ほとんどの設定項目はゲーム内から設定できるようになりました。
こちらの画面から色々設定しましょう。
初期操作設定では、メニューの基本操作は、カーソル移動は矢印キーかWASD、Qで決定、Eで取消です。
項目名は、日本語化対応されておらず英語です。

追加メニュー

メインメニューの一番下に「Exit Game」、オプション画面に「Extended」が追加されました。

Extended Options

ここでは、PC版パーフェクトダーク用の設定項目があります。
キー割り当てや、画面の設定等を行うことができます。

Video

  • Full Screen:フルスクリーン(ON/OFF)
  • Texture Filterling:テクスチャフィルタリング(ON/OFF)
  • GUI Texture Filterling:GUIのテクスチャフィルタリング(ON/OFF)
  • HUD Centerring:HUD(弾薬表示等)を中心に固定(None/4:3/Wide)
  • Explosion Shake:爆発時の画面振動の強さ

Audio

  • DIsable MP Death Music:コンバット・シミュレータで倒れた時のBGM無効化(ON/OFF)

Mouse

  • Mouse Enabled:マウス操作の有効化(ON/OFF)
  • Mouse Aim Lock:照準モード時にマウスで視点移動する?(ON/OFF)
  • Grab Mouse Input by Default:デフォルトでマウス入力を取得?(ON/OFF)
  • Mouse Speed X:通常時のマウス速度(横軸)
  • Mouse Speed Y:通常時のマウス速度(縦軸)
  • Crosshair Speed X:視点移動時のマウス速度(横軸)
  • Crosshair Speed Y:視点移動時のマウス速度(縦軸)
  • Radial Menu Speed:クイックメニュー時のマウス速度

Controller

コントローラは、XInput形式(Xbox 360コントローラ)、DirectInput形式(その他コントローラ)に対応しています。
1P~4Pそれぞれで設定可能です。

  • Controller:コントローラのデバイスの選択
    ※コントローラが認識していない場合、「コントローラが認識していない場合」の章をご覧ください
  • Analog Movement:スティックをアナログとして認識(ON/OFF)
    ONの場合、スティックはそのままアナログスティックとして認識されます。
    OFFの場合、片方のスティックにCボタンが割り当てられます。
    例えば、操作設定1-1の場合は左スティックに3Dスティック、右スティックにCボタンが割り当てられます。
    操作設定1-2の場合は、Cボタンで移動なので、右スティックでデジタルに移動が可能となります。
    N64コントローラを使用する場合は、基本的にはONとなります。
  • Swap Sticks:左右のスティックの入れ替え(ON/OFF)
  • Stick Settings:スティックの感度の設定
    • LStick Scale X:左スティックの感度(横軸)
    • LStick Scale Y:左スティックの感度(縦軸)
    • RStick Scale X:右スティックの感度(横軸)
    • RStick Scale Y:右スティックの感度(縦軸)
    • LStick Deadzone X:左スティックの遊び幅(横軸)
    • LStick Deadzone Y:左スティックの遊び幅(縦軸)
    • RStick Deadzone X:右スティックの遊び幅(横軸)
    • RStick Deadzone Y:右スティックの遊び幅(縦軸)

Game

  • Crouch Mode:しゃがみの操作モード(Hold/Analog/Toggle/Toggle + Analog)
  • Vert FOV:視野角
  • Crosshair Sway:クロスヘア(十字の照準)の揺れ幅

Key Bindings

  • Fire [ZT]
  • Fire Mode [LT]
  • Aim Mode [RT]
  • Use / Accept [A]
  • Use / Cancel [B]
  • Pause Menu [ST]
  • D-Pad Up [DU]
  • D-Pad Right [DR]
  • Prev Weapon [DL]
  • Radial Menu [DD]
  • Forward [CU]
  • Backward [CD]
  • Strafe Right [CR]
  • Strafe Left [CL]
  • Reload [X]
  • Next Weapon [Y]
  • Cycle Crouch [+]
  • Half Crouch [+]
  • Full Crouch [+]
  • Reser to PC Defaults:PC版の操作設定でリセット
  • Reset to N64 Defaults:N64版の操作設定でリセット

キー割り当ての設定変更方法は、変更したいキーを選択するとBindの画面が表示されるので、そこで割り当てたいキーを入力します。
入れ替わり方式となります。
各キーに4つまで割り当てる枠があります。
ややこしいですが、1つ目の枠の内容しか表示されないため、ぱっと見割り当てできていないように見える場合もありますが、中身を見るとちゃんと設定できています。
ESCキーでキャンセル、DELキーで割り当て削除できます。

※N64コントローラでN64実機と同じ操作でプレイする場合は、操作設定の変更が必要です。
 詳しくは次の章をご覧ください。

N64コントローラでN64実機と同じ操作でプレイする場合

N64実機と同様の操作をする場合は、操作設定を「Ext」から変更します。
PC版の割り当てを使用する場合は「Ext」、N64版仕様で操作したい場合はそれ以外(1-1や1-2等)を選択します。
PC版の割り当てでは、一部の操作が廃止されているため、Aボタン長押しでクイックメニューや、Bボタン長押しで武器モード切替、B+Zで武器モード一時切替、A+Zで1つ前の武器に戻す、A+Bで起爆等が使えません。
使いたい場合は、操作設定を変更しましょう。
※操作設定を変更しても反映しないことがあるため、その場合は pd.exe を一度閉じてから再度起動してください。

操作設定を変更した後に「Key Bindings」の設定画面を開くと、N64ボタンに割り当てる形式になっています。
ここで割り当てを実施します。
初期設定で色々入っていますが、ずれている場合があります。
まずは、DELキーで削除するのがいいかと思います。
削除しなくても基本的には、JOY~と書かれているキーを修正していく感じでいいかと思います。

N64コントローラの場合のスティック設定調整

PC版パーフェクトダークは、スティック2本のコントローラに対応しています。
N64コントローラの場合、スティックが1本しかないため一部動作がおかしくなる場合があるので調整が必要となります。

スティックが認識しない場合

N64コントローラではスティックが1本しかないので、存在しないもう片方のスティックがメインで認識してしまっている場合があります。
オプション→Extended→Controllerで「Swap Sticks」のON/OFFを切り替えると、スティックの左右を逆にできるので認識する可能性があります。

操作設定「ext」の3Dスティックで移動と視点移動が同時に認識する場合

N64コントローラで操作する場合、基本的には操作設定「1-1」や「1-2」に設定すればいいのですが、PC版特有の操作を行いたい場合は「ext」に設定します。
基本的には、片方のスティックが移動、片方のスティックが視点移動になりますが、N64コントローラではスティックが1本しかないので、2本のスティックが同時に認識してしまう場合があります。
オプション→Extended→Controller→Stick Settingsで片方のスティックの感度を0にすることで片方のみにできます。

以下の例では「Swap Sticks」がON(スティックの左右が逆):左スティックが移動、右スティックが視点移動の状態です。
その状態で、LStick Scale X、LStick Scale Yを0に設定すると、3Dスティックが視点移動のみとなります。(操作設定1-2と同様)

コントローラが認識していない場合

コントローラが認識していない場合、ゲームコントローラのデータベースファイル「gamecontrollerdb.txt」を実行ファイル(pd.exe)と同じフォルダに配置することで認識する可能性があります。

このファイルは別のプロジェクトのファイルで、以下のGitHubのプロジェクトページからダウンロードする必要があります。
https://github.com/gabomdq/SDL_GameControllerDB
gamecontrollerdb.txt」をダウンロードします。

「gamecontrollerdb.txt」にもデータがないコントローラの場合は、自分でプロファイルを作成する必要があります。
上記プロジェクトページの、「Create New Mappings」の章を参考に作成することができるようです。(未検証)

クリア済みセーブデータ

テストも兼ねてPC版で一通りプレイし、協力ミッション以外は全てクリア状態のセーブデータを作成しました。
良かったらお使いください。

セーブデータファイル:pd_pc_port_save_file_20230913.zip

  • ソロ・ミッション 全クリア
  • チート 全取得
  • チャレンジ 全クリア(1P分のみ)
  • 射撃訓練 全クリア
  • デバイスラボ 全クリア
  • ホロ・トレーニング 全クリア
  • 協力ミッション 未クリア
  • ミッションフラグ状態
    • シカゴ<潜入>:リモート爆弾を2Fに設置(3Fに設置すればG5ビル<盗撮>で秘密武器取得可能)
    • エリア51<突破>:対空迎撃ロボを操作している作業員を生かす(エリア51<救出>で秘密武器取得可能)
    • エリア51<脱出>:ホバーバイクルートでクリア(キャリントン協会ビル<防衛>でジョナサン出現)
    • アラスカ空軍基地<変装>:レーザーグリッドルートでクリア(大統領専用機<暴露>で下の階からスタート)
    • 大統領専用機<暴露>:ホバーバイクのリフトを下ろす(墜落現場<対決>でホバーバイク出現)

zipファイルを展開し「eeprom.bin」を「pd.exe」と同じフォルダ内に置いてください。
セーブデータファイルは共通のため、北米版でも日本語版でも適用可能です。

動画

他にも投稿しておりますが、まだ記載できておりません。
取り急ぎ、以下の再生リストをご覧ください。
グラフィックの問題は現在はほぼ解消されています。
https://www.youtube.com/playlist?list=PL-cnMNjui7giDNYTRKdY2N1wy2pQpCHeD

テストプレイ1:データダイン本社<始動>/デバイスラボ/グラフィックテスト

データダイン本社<始動>エージェント、デバイスラボをプレイしました。
また、グラフィックテストを行いました。

テストプレイ2:射撃訓練場(全ゴールド)/グラフィックテスト

射撃訓練の全武器のゴールドをプレイしました。
また、グラフィックのテストを行いました。

テストプレイ3:グラフィックテスト

グラフィックの実機との比較チェックを実施しました。
ほとんどのグラフィックは再現できるようになりましたが、あとは以下が不完全です。

  • カムスパイ(画面の歪みが不完全)
  • IRスキャン(敵兵のハイライトが不完全。中心のパーツがない。)
  • HRスキャン
  • エリア51<突破>のOPシネマ(砂嵐のエフェクト)
  • 画面モヤ(脳震盪)
  • スレイヤーのロケットカメラ

更新履歴

  • 2024/01/24
    • 「ゲーム内の設定画面」の「Controller」のAnalog Movementの説明を追加
    • 「N64コントローラでN64実機と同じ操作でプレイする場合」に操作設定が反映しない場合の対処法を追加
  • 2024/01/14
    • 「N64コントローラの場合のスティック設定調整」を追加
    • 「設定ファイルの調整」にWikiのリンクを追加
  • 2024/01/10
    • 「ゲーム内の設定画面」のControllerに、コントローラが認識しない場合の対応方法を追加
    • 「コントローラが認識していない場合」を追加
    • 「遊び方」の4について、「port-net」ブランチが出てきたため「port」ブランチ(portと記載がある)の中の最新をダウンロードするように記載を修正
  • 2023/12/08
    • 「必要なもの」「遊び方」に日本語版の遊び方の説明を追加
    • 「操作方法」を修正
    • 「設定ファイルの調整」を修正
    • 「ゲーム内の設定画面」を追加
    • 「N64コントローラでN64実機と同じ操作でプレイする場合」を追加
  • 2023/09/13
    • 「クリア済みセーブデータ」の追加
  • 2023/09/10
    • 「遊び方」の4について、「port」ブランチ(portと記載がある)の中の最新でなくても問題ないため記載を修正

PC移植カテゴリの最新記事