Nintendo64のエミュレータを使用して、オンラインで遊ぼうという企画です。
「コンバット・シミュレータ」に限らず「敵対ミッション」「協力ミッション」もできます。
本記事は、その2「遊び編」です。
その1「準備編」は、以下の記事をご覧ください。
目次
遊び手順
- プレイヤー同士で同じセーブデータを配置します。
※同期を取るために、お互いに同じセーブデータを利用する必要があります。
デフォルトでは、「Save」フォルダ内に配置するだけでOKです。
ファイル名は、「PERFECT DARK.eep」です。 - 「Project64.exe」を実行する。
- 「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」の方に頂ければと思います。
また、オンラインプレイで遊ぼう企画とかやっていこうかなと思います。
みんなでワイワイ遊べたらいいですね。
よろしくお願いします!