Project64の低遅延プレイ環境構築
- 1-1. raphnet V3コンバータの購入
- 1-2. raphnet V3コンバータの設定
- 1-3. raphnet V3専用インプットプラグインの導入
- 2-1. GLideN64の導入
- 2-2. GLideN64の設定
- 3. その他の設定
- 4. 高リフレッシュレート対応モニタの購入
- 5. むすび
1-1. raphnet V3コンバータの購入
過去にMAYFLASH、RetroPortを使用したことがあるが、それらに比べ圧倒的に遅延が少ない。
公式サイトまたはAmazonから購入できる。2つ差し込み口があるものやGCコントローラのコンバータと一体になったもの (Amazon)もある。それらを選んでも特に支障はない。
Amazonでの購入は届くのは早いが割高なため、すぐに必要でなければ公式サイトからの購入がおすすめ。
1-2. raphnet V3コンバータの設定
初めに、スマブラ64勢のkix氏のブログ記事のファームウェアアップデートをする方法
を参考にコンバータのマネジメントツールを導入し、ファームウェアのアップデートを済ませる。2022年1月現在の最新バージョンは3.6.1。
※ 以下の設定は後述する専用インプットプラグイン使用時は反映されないが、損はないため設定を推奨
次に、マネジメントツール上のPoll interval (ms)
の値を1
または2
に設定。
この項目ではコンバータがコントローラの入力を読み取る間隔がミリ秒単位で設定可能であり、値が小さいほど低遅延となる。
ツールの表示上では最小値の1まで設定できるが、公式サイトによるとこのコンバータで設定可能な最小値は2とのことなので、1と2のどちらの値に設定しても実際の動作に違いはないと思われる。
なお、サードパーティ製のコントローラを接続している場合にこの値が小さすぎると動作に不具合が出る可能性があるようなので、その際はデフォルト値の5に戻すことを推奨する。
1-3. raphnet V3専用インプットプラグインの導入
そのうち書きます。今のところはこのスレッドを参考にどうぞ。
そのうち詳しくブログ記事を書くつもりですが、分かる方向けに対戦相手にRawDataのチェックを入れてもらわなくても使えるraphnet専用プラグインを紹介します。 [1/6]
— atmpas (@atmpas) 2022年1月23日
2-1. GLideN64の導入
Windows 8以降のOSでのゲーム画面の表示遅延やフレームレートが低下していないにも関わらずゲーム画面がカクカクして見える現象はDesktop Window Manager (DWM)と呼ばれるシステムが原因。
このシステムは全てのウィンドウ表示のアプリケーションに干渉するため、それを回避するには排他的フルスクリーンでProject64の画面を表示する必要がある。
排他的フルスクリーン表示にはProject64に同梱されているビデオプラグインでは都合が悪いため、GLideN64というビデオプラグインを導入する。名前のよく似たGlide64というビデオプラグインは別物なため注意。
このページからGLideN64_Public_Release_4.0.7z
をダウンロード、解凍後にbin\Zilmar-specs\GLideN64.dll
をProject64のPlugin
フォルダに移動。
改造マリオ64やマリオ64RTAには代わりにこのバージョンを使う。
※ 以下の手順はネトスマなどのネット対戦を行う場合のみ必要
Project64KVE (Project64k)ではネット対戦時に強制的にJabo_Direct3D7.dll
というファイル名のビデオプラグインが使用されるため、先程移動したGLideN64.dll
をJabo_Direct3D7.dll
にリネーム。
元々入っていたものは、Jabo_Direct3D7.dll.bak
のように拡張子に.bak
などを付け足して残しておく。
注意点だが、Public Release 4.0ではゲーム終了時にProject64がクラッシュしてしまう問題があるらしい。Public Release 2.0なら一部の描画の不具合はあるがその問題は解決するようなので、気になる方はそちらを使うと良いかもしれない。
参考: スマブラ64勢の丈助氏のNotion
2-2. GLideN64の設定
Project64を開き、オプション
→設定
→プラグイン
→Video (graphics) plugin
からGLideN64 Public Release 4.0
を選択。
次に、オプション
→ビデオプラグインの設定
を開き、Video
タブに移動後、任意のFull screen resolution
とWindowed resolution
を選択。Full screen resolution
に関しては、配信をする際に都合が良いため1280 x 960
などのアスペクト比が4:3の解像度がおすすめ。Refresh rate
は144 Hzや240 Hzなどの高リフレッシュレート対応モニタを使用している場合は最大値に設定、それ以外の60 Hzや75 Hzなどが最大値のモニタの場合は60 Hz
に設定。自分の環境では165 Hz
に設定。この設定はフルスクリーン時のみ適用される。
そのままFrame buffer
タブに移動し、Emulate frame buffer
のチェックを外す。チェックを入れたままだと表示遅延が発生する。
GLideN64の設定は以上、以下は補足や注意点。
- Project64KVE (Project64k)では、フルスクリーンの切り替えはゲーム起動後に
Alt + Enter
で行える。 - フルスクリーン時はゲーム画面はメインディスプレイに表示されるため、必要に応じてWindowsの設定を変更する。変更後は必ずビデオプラグインの設定を再確認する。
- プレイ中は常にProject64をアクティブにする。Kailleraや12キャラツールなど他のウィンドウをクリックした後は必ず再度ゲーム画面をクリックし、Project64をアクティブに戻すようにする。非アクティブだとフルスクリーン表示であっても(おそらく)前述したDWMが干渉してしまい、表示遅延などが発生するため。
- OBSで画面を取り込む場合は、
ゲームキャプチャ
または画面キャプチャ
を使用する。ウィンドウキャプチャ
を使用してフルスクリーンのProject64を取り込んだ際、Project64がアクティブであるとOBS上の画面が固まってしまうため。画面キャプチャ
はアクティブウィンドウの切り替え時に画面が暗転してしまう、他のウィンドウも取り込まれてしまうなどの問題があるため非推奨。
3. その他の設定
Project64の実行ファイルのプロパティから全画面表示の最適化を無効にする
にチェックを入れることでパフォーマンスが改善されるらしい。
NVIDIAのGPUを使用している場合は、NVIDIA コントロールパネルの3D 設定の管理
から表示遅延やパフォーマンスに関係しそうな項目の設定を変更する。
ドライバのバージョンによって設定項目が異なるが、自分の環境ではトリプル バッファリング
をオフ
、低遅延モード
をウルトラ
、垂直同期
をオフ
、電源管理モード
をパフォーマンス最大化を優先
に変更。
他社のGPUやCPU内蔵グラフィックスを使用している場合は似た項目を探して変更。
フルスクリーン表示時に画面が引き伸ばされて横長に表示される場合は、デスクトップのサイズと位置の調整
でスケーリングを実行するデバイス
をGPU
に変更後、縦横比
もしくはスケーリングなし
を選択する。縦横比
はアスペクト比を維持したまま画面を拡大する設定、スケーリングなし
は設定解像度そのままのサイズで画面を表示する設定。
これらはモニタごとの設定なので、必ず1. 変更するディスプレイを選択します。
でゲーム画面を表示するモニタ (メインディスプレイ)を選択してから設定を変更する。
4. 高リフレッシュレート対応モニタの購入
これまで紹介した設定以外にも、144 Hzや240 Hzなどの高リフレッシュレート対応モニタを使用することで表示遅延を軽減することができる。
60 fpsのゲームでも高リフレッシュレートの恩恵を受けられるというのは少し前に格闘ゲーム界隈でも話題になっていたようなので、気になる方は調べてみてほしい。
また、それに加えティアリングやウィンドウ表示時にフレームレートが低下していないにも関わらずゲーム画面がカクカクして見える現象が緩和されるなどのメリットも存在するため、快適なゲーム体験を望む方には購入を強くおすすめする。
購入するモニタを選ぶ際には、0.5 msや1 msなどの表記はモニタの最終的な表示遅延とは直結しないということを念頭に置く必要がある。
これらの値はパネルの応答速度を示しており、モニタの最終的な表示遅延にはその応答速度の値に加えモニタの内部処理にかかる時間 (内部遅延)も影響する。
しかし、残念なことにほとんどのメーカーは内部遅延の値を公表していない。
そのため、モニタ選びの際には有志が様々なモニタの遅延を測定した結果を載せているRTINGS.comのようなサイトを参考にすると良いだろう。
本筋から少し外れるが、Nintendo SwitchやPlayStation 4などのコンシューマ機でも同じモニタを使うのであれば、モニタの表示遅延は解像度やリフレッシュレートごとに変わるという点にも注意が必要。高リフレッシュレート駆動時に低遅延だからといって、コンシューマ機を接続した際の60 Hz駆動時も低遅延とは限らない。
例として、自分が使用しているASUSのVG258QRという165 Hz対応のモニタは、60 Hz駆動時の遅延が低遅延の60 Hzモニタに比べ大きいため、コンシューマ機での使用には適していない。
パソコンに接続した後は忘れずにWindowsの設定とビデオプラグインの設定でリフレッシュレートを変更する。
参考: スマブラDX勢のカジャ氏のブログ記事
5. むすび
紹介した項目を全て行えば、ゲームタイトルによってはオフラインプレイ時の遅延が実機+ブラウン管より少なることも見込めるはず。実際に、自分の環境でマリオ64とスマブラ64の遅延が実機+ブラウン管より少ないのは確認している。
それでは、良きゲームライフを。