Project64の低遅延プレイ環境構築

 

追記 (2026/08/30)

現在、スマブラ64のネット対戦では、Project64KVE (Project64k)に代わりRMG-Kというエミュレータを使用するのが主流になりつつある。
そのため、Project64固有の内容である1-32-12-2は、スマブラ64のネット対戦が目的の場合は読み飛ばして問題ない。

 

1-1. raphnet V3コンバータの購入

過去にMAYFLASH (旧版)RetroPortを使用したことがあるが、それらに比べ圧倒的に遅延が少ない。
公式サイトまたはAmazonから購入できる。2つ差し込み口があるものGCコントローラのコンバータと一体になったものもある。それらを選んでも特に支障はない。
Amazonでの購入は割高なため、在庫があれば公式サイトからの購入がおすすめ。

 

1-2. raphnet V3コンバータの設定

初めに、スマブラ64勢のkix氏ブログ記事ファームウェアアップデートをする方法を参考にコンバータのマネジメントツールを導入し、ファームウェアのアップデートを済ませる。2022年1月現在の最新バージョンは3.6.1。

※ 以下の設定は後述する専用インプットプラグイン使用時は影響しないが、損はないため設定を推奨
次に、マネジメントツール上のPoll interval (ms)の値を1に設定。
この項目ではコンバータがコントローラの入力を読み取る間隔がミリ秒単位で設定可能であり、値が小さいほど低遅延となる。

なお、一部のサードパーティ製のコントローラを接続している場合にこの値が小さすぎると動作に不具合が出ることがあるようなので、その際はデフォルト値の5に戻すことを推奨する。

f:id:atmpas:20220109152251p:plain

 

1-3. raphnet V3専用インプットプラグインの導入

raphnet V3コンバータには、Project64向けの専用インプットプラグインが存在する。この専用プラグインを使用することで、Project64とコントローラを直接通信させることができる。

最大のメリットは、スティックの入力値が完全に実機と同じになること。N-Rageなどの通常のインプットプラグインでは、設定を調整しても入力値を完全に実機と同じにはできない。
また、通常のインプットプラグインに比べ入力遅延が少ないというメリットもある。自分の環境で比較したところ、N-Rageより数ミリ秒程度遅延が少なかった。(240 fpsで撮影して比較した結果なのであまり正確ではないかも)

この専用プラグインはそのままではネット対戦に使用できない。これは、同じ部屋にいる全員でRawDataの設定が揃っていなければ、コントローラが動作しないため。日本のスマブラ64のネット対戦ではRawDataオフが一般的だが、通常版の専用プラグインはRawDataオンとして動作するため、対戦相手が普段の設定のままだと使用できない。
そこで、RawDataオフとして動作する派生版を使用する。これにより、対戦相手に設定を変更してもらうことなく専用プラグインを使用できる。なお、オフラインで使用する場合は通常版で問題ない。

導入手順は以下。

  1. コンバータのファームウェアを更新
    1-2の手順を参考に、コンバータのファームウェアを最新版にアップデートする。
  2. 共通ファイルを配置
    このページからpj64raphnetraw-1.0.7.zipをダウンロードし、解凍後にlibhidapi-0.dllをProject64の実行ファイルと同じフォルダに移動する。
  3. 使用するプラグイン本体を配置
    用途に合わせて、以下のプラグイン本体をProject64のPluginフォルダに移動する。
    • スマブラ64のネット対戦で使用する場合
      このページv1.0.7 with NoPak Support (Build 2)の項目からpj64raphnetraw-1.0.7-nopak.zipをダウンロードし、解凍後にpj64raphnetraw_net_nopak.dllを移動する。
    • マリオ64RTAや改造マリオ64で使用する場合
      先ほどダウンロードしたpj64raphnetraw-1.0.7.zipに含まれるpj64raphnetraw_1player.dllを移動する。
      また、2つ差し込み口があるコンバータを使用している場合は、Z + L + Rを押すことで使用するコントローラを切り替えられるこちらの派生版を使用することもできる。
  4. Project64でプラグインを選択
    Project64を起動し、オプション設定プラグインInput (controller) pluginから導入したプラグインを選択。スマブラ64のネット対戦ではraphnetraw 1 player NET version version 1.0.7 (No Pak Support)、マリオ64ではraphnetraw port 1 only version 1.0.7。その他の設定は不要。


なお、一般的な入力表示ソフトは使用できなくなるため注意。ただし、直接エミュレータから入力を読み取るタイプのものは使用可能。
例として、マリオ64向けにはProject64から入力を読み取るProject64Spyが存在する。Project64KVE (Project64k)ではこの派生版が使用できるらしい。(未確認)

 

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フォルダに移動。
マリオ64RTAや改造マリオ64には代わりにこのバージョンを使う。

※ 以下の手順はネトスマなどのネット対戦を行う場合のみ必要
Project64KVE (Project64k)ではネット対戦時に強制的にJabo_Direct3D7.dllというファイル名のビデオプラグインが使用されるため、先程移動したGLideN64.dllJabo_Direct3D7.dllにリネーム。
元々入っていたものは、Jabo_Direct3D7.dll.bakのように拡張子に.bakなどを付け足して残しておく。

注意点だが、Public Release 4.0ではゲーム終了時にProject64がクラッシュしてしまう問題があるらしい。Public Release 2.0なら一部の描画の不具合はあるがその問題は解決するようなので、気になる方はそちらを使うと良いかもしれない。

参考: スマブラ64勢の丈助氏Notion

f:id:atmpas:20220110101025p:plain
f:id:atmpas:20220110101039p:plain

 

2-2. GLideN64の設定

Project64を開き、オプション設定プラグインVideo (graphics) pluginからGLideN64 Public Release 4.0を選択。

次に、オプションビデオプラグインの設定を開き、Videoタブに移動後、任意のFull screen resolutionWindowed 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のチェックを外す。チェックを入れたままだと表示遅延が発生する。

f:id:atmpas:20220110155456p:plain
f:id:atmpas:20220110174706p:plain
f:id:atmpas:20220110174713p:plain


GLideN64の設定は以上、以下は補足や注意点。

  • Project64KVE (Project64k)では、フルスクリーンの切り替えはゲーム起動後にAlt + Enterで行える。
  • フルスクリーン時はゲーム画面はメインディスプレイに表示されるため、必要に応じてWindowsの設定を変更する。変更後は必ずビデオプラグインの設定を再確認する。
  • プレイ中は常にProject64をアクティブにする。Kailleraや12キャラツールなど他のウィンドウをクリックした後は必ず再度ゲーム画面をクリックし、Project64をアクティブに戻すようにする。非アクティブだとフルスクリーン表示であっても(おそらく)前述したDWMが干渉してしまい、表示遅延などが発生することがあるため。
  • OBSで画面を取り込む場合は、ゲームキャプチャまたは画面キャプチャを使用する。ウィンドウキャプチャを使用してフルスクリーンのProject64を取り込んだ際、Project64がアクティブであるとOBS上の画面が固まってしまうため。画面キャプチャはアクティブウィンドウの切り替え時に画面が暗転してしまう、他のウィンドウも取り込まれてしまうなどの問題があるため非推奨。


参考: スマブラ64勢の丈助氏Notion

 

3. その他の設定

Project64の実行ファイルのプロパティから全画面表示の最適化を無効にするにチェックを入れることでパフォーマンスが改善されるらしい。

f:id:atmpas:20220110182646p:plain

NVIDIAのGPUを使用している場合は、NVIDIA コントロールパネルの3D 設定の管理から表示遅延やパフォーマンスに関係しそうな項目の設定を変更する。
ドライバのバージョンによって設定項目が異なるが、自分の環境ではトリプル バッファリングオフ低遅延モードウルトラ垂直同期オフ電源管理モードパフォーマンス最大化を優先に変更。
他社のGPUやCPU内蔵グラフィックスを使用している場合は似た項目を探して変更。

f:id:atmpas:20220110221925p:plain
f:id:atmpas:20220110221948p:plain


フルスクリーン表示時に画面が引き伸ばされて横長に表示される場合は、デスクトップのサイズと位置の調整スケーリングを実行するデバイスGPUに変更後、縦横比もしくはスケーリングなしを選択する。
縦横比はアスペクト比を維持したまま画面を拡大する設定、スケーリングなしは設定解像度そのままのサイズで画面を表示する設定。
これらはモニタごとの設定なので、必ず1. 変更するディスプレイを選択します。でゲーム画面を表示するモニタ (メインディスプレイ)を選択してから設定を変更する。

f:id:atmpas:20220111000327p:plain

 

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の遅延が実機+ブラウン管より少ないのは確認している。
それでは、良きゲームライフを。

VG258QR設定メモ

VG258QRを買ったので自分の設定をメモ

- 解像度/リフレッシュレート
1920×1080
165Hz (DisplayPort)

- GameVisual
FPSモード

- ブルーライト低減
レベル0

- 色
明るさ: 75
コントラスト: 75
彩度: 45
カラー: 冷たい
肌の色合い: 自然
Smart View: オフ

- 画像
鮮明度: 50
Trace Free: 60
アスペクトコントロール: 4:3
VividPixel: 50
ASCR: オフ
Adaptive-Sync/FreeSync: オフ
ELMB: オフ

- サウンド
ボリューム: 適宜調整
ミュート: オフ
音声入力: HDMI

- 入力選択
DisplayPort / DVI / HDMI

- システム
GameVisual Demo Mode: オフ
ECO Mode: オフ
メニュータイムアウト: 30
DDC/CI: オフ
透明: 20
言語: 日本語
キーのロック: オフ
電源インジケータ: オン
電源キーロック: オフ