パーフェクトダークオンライン その2(遊び編)

パーフェクトダークオンライン その2(遊び編)

Nintendo64のエミュレータを使用して、オンラインで遊ぼうという企画です。
「コンバット・シミュレータ」に限らず「敵対ミッション」「協力ミッション」もできます。

本記事は、その2「遊び編」です。
その1「準備編」は、以下の記事をご覧ください。

遊び手順

  1. プレイヤー同士で同じセーブデータを配置します。
    ※同期を取るために、お互いに同じセーブデータを利用する必要があります。
    デフォルトでは、「Save」フォルダ内に配置するだけでOKです。
    ファイル名は、「PERFECT DARK.eep」です。
  2. 「Project64.exe」を実行する。
  3. 「Pefect Dark (J)」のROMを起動する。

ROMを起動すると、「AQZ NetPlayInput Plugin」のコンソール画面が表示されます。

AQZ NetPlay Input Plugin の使い方

インプットプラグインに「AQZ NetPlay Input Plugin」が設定されている状態でロムを起動すると、オンラインプレイ用のコンソールが表示されます。
コマンドを打つことで各機能を使うことができます。

プレイヤー同士が直接接続するのですが、誰か一人に対してみんなが接続する形となります。
説明用に、接続される人を「ホスト」、接続する人を「クライアント」と呼びます。
ホストとクライアントで必要な操作が異なります。

共通の操作

ホストとクライアント共に必要な操作です。

プレイヤー名の設定

まずは、「/name」コマンドでプレイヤー名を設定します。
設定した名前は保存されるため、次回の設定は不要です。

/name [名前]

例として、名前を「テスト」と設定します。

「Your name is now テスト」と出力されたら成功です。

改造コードの設定

改造コードを利用してオンラインプレイを実施する場合、「/start」コマンドでゲームを開始する前に設定しておきます。

システム→チートから改造コードを設定します。
追加・編集する場合は「▶」(右向黒三角)をクリックします。
(表示されない場合は、オプション→設定で「高度な設定を隠す」のチェックを外す必要があります。)
プレイヤー同士、同じ改造コードにチェックを入れます。
ずれていると同期ずれが発生するため注意しましょう。

注意点として、「/start」コマンドでゲーム開始後に、お互いにもう一度チート画面を開き、閉じる必要があります。これをしない場合、黒画面のまま先に進みません。

「Project64.cht」を共有するというのも一つの手かもしれません。

ホストの操作

ホストは、クライアントからの接続を受け付けるためにポート開放を行う必要があります。

ポート開放

ルータ側のポート転送設定と、OS側のファイアウォールのポート接続許可設定が必要です。
ポート番号を指定しない場合、「TCP 6400」となるため、特に気にしない場合はTCPの6400番を開放します。(TCPのみでOK、UDPは不要)
どのポート番号を利用するかは自由に(一般的には49152 ~ 65535の範囲)設定可能です。

ルータがUPnPに対応していれば「UPnPCJ」等のフリーソフトでポート転送設定が行えます。
ポート開放ができたかどうかは、以下のページで確認可能です。
https://www.akakagemaru.info/port/tcpport.php

例えば、TCP 6400を開放するとしたら、ルータが受けたTCP 6400宛のデータを自身のPCのTCP 6400に転送する必要があります。(ルータのポート転送設定)
また、TCP 6400は通常Windowsのファイアウォールでブロックされているので、接続を許可する必要があります。(ファイアウォールのポート接続許可設定)

接続待機

ポート開放後、「/server」コマンドを実行することで、接続待機状態になります。
/serverコマンドを実行すると、Windowsファイアウォールの警告が出ますが「アクセスを許可する」を選択します。
これは、「project64.exe」が外部に通信するための許可設定のため、上記ポート接続許可設定とは別です。

/server [ポート番号]

例では、Open KailleraのP2Pモードの名残でポート番号を「27886」で設定しています。

Windowsファイアウォールの警告が出ますが「アクセスを許可する」を選択します。

サーバを設定すると自身が1Pとなり、待機状態となります。

その後、自身のPCのIPアドレスとポート番号の組み合わせをクライアントに伝えます。

クライアントの操作

IPアドレスとポート番号の組み合わせを、ホストから教えてもらいます。
「/connect」コマンドを実行することで、ホストに接続できます。

/connect [IPアドレス] [ポート番号]

例では、IPアドレス「192.0.2.2」(※例示用のIPアドレス)のポート番号「27886」に接続しています。

接続後、2Pとして参加します。(2番目に接続した場合)
コントローラの設定が全て無効の場合、観戦者としての参加となります。

ゲームの開始

参加者が揃ったら、「/start」コマンドでゲームを開始します。

/start

※もし、改造コードを入れている場合は、一度システム→チートでチート画面を開いて、そのまま閉じる必要があります。
これをしないと黒画面のままゲームが進みません。

同期チェック

同期できているかどうかのチェックはコンバット・シミュレータのウェポン設定を「ランダム」で設定した際に、武器の配置が一致しているかどうかで判断します。

ゲームの終了

終了コマンドはないようなので、「AQZ NetPlay Input Plugin」のコンソール画面を閉じ、Project64のファイル→エミュレーション終了で終了します。

注意点

使用するビデオプラグインは揃えること

使用するビデオプラグインは揃える必要がありました。
異なる場合、どうしても同期がとれませんでした。
具体的には、二人プレイにて片方は「GLideN64 Public Release 4.0」、片方は「Jabo’s Direct3D8 1.7.9.5-ver5」でプレイした場合は同期がとれませんでした。

設定内容自体は揃えなくてもいいようです。
「GLideN64 Public Release 4.0」で片方はウィンドウ、片方はフルスクリーンの場合でも、同期が取れました。

使用するセーブデータは揃えること

使用するセーブデータは揃える必要があります。
異なる場合、同期がとれない場合があります。
セーブファイルを送るなどして、同じセーブファイルを利用するようにしましょう。

GLideN64でエラーが出る場合

一昔前のPCにて、以下のエラーが出る場合がありました。

CN64System::EmulationStarting: Exception caught File: .\N64 System\N64 Class.cpp Line: 485

以下ページを参照したのですが、使用しているビデオカード(もしくはビデオチップ)のOpenGLのバージョンが「3.3」よりも小さかったからでした。
この場合は、ビデオカードを新しくするか、別のプラグインのご利用をお願いします。
https://github.com/gonetz/GLideN64/issues/2099

おわりに

「遊ぶ」編は以上です。
今後も何か情報があれば更新していきます。
質問などありましたら、「PDオンライン掲示板」、もしくは「Discord」の方に頂ければと思います。

また、オンラインプレイで遊ぼう企画とかやっていこうかなと思います。
みんなでワイワイ遊べたらいいですね。
よろしくお願いします!

PDオンラインカテゴリの最新記事