Counter factor(以下CF)は64エミュレータPJ64の設定項目の一つで、デフォルトでは各ロムに対し2という値が設定されています。この設定値のはっきりした定義は調べても見つけられませんでしたが、どうやら実機の処理速度を再現するために設けられている値だそうです。ですが、どうもこの設定によってゲーム中の特定の場面(例えばステージ選択時のカーソル移動)や、対戦中でもPC環境によっては入力遅延を生じてしまっているようです。Counter Factorを1に設定する(以下CF1)とこの調整が行われなくなり、環境によってはゲームが非常にスムーズに動くようになります。エミュレーターの操作感の悪さに悩まされている方は試してみる価値があると思います。
CF1に設定してオンライン対戦をする場合、相手もCF1に設定していないと即ズレます。CF1でネトスマをする場合、ハンネにCF1とつけるなど分かるようにしたほうが良いと思われます。
この設定ではロード時間等は必ず短縮されますが、対戦中の操作感が大きく変化するかどうかはそのPCでのCFの影響の大きさ次第です。入力遅延に関しても変わらなかったという報告もあるので、もともと良い環境でプレイできていた場合は特に変わらないこともあると思います。
今のところCF1に設定したからと言って、ゲームスピードが60FPSを超える等のやばそうな現象は確認されていませんが、もし試してみた中で何か不具合等ありましたら報告していただけると助かります。
1. PJ64でスマブラ64ロムをオフラインで起動。
2. Option -> Settings -> [ロム設定(Rom settings)]または[ロードされたロムのINIファイル項目を編集]のタブで、Counter Factorを2から1に変更する。
3. 一旦エミュレーションを終了する。これをしないと設定が反映されません。
ななきょうさんが対戦部屋に入ったあとでもCFを簡単に変更できるツールを作ってくれました。
ダウンロードリンク (pass:123 )
このファイル全てを、Project64KVE.exeの入っているフォルダに入れます。 Project64.rdbを上書きしますか?と聞かれるので、上書きしてください。 あとはcfを変更するbatファイルを起動することでcfが変わります。 引用元
私のPC環境では何故かPJ64でのスマブラの操作感が異様に悪く、大きな入力遅延と安定しない動作に悩まされてました。モニターを応答速度の早いものに変更したりアダプターを色々試したりしても一向に改善されず困ってたんですが、解決法を探しているときにマリオ64RTAの設定解説動画を見つけ、ダメもとで試したら操作感が目に見えて改善しました。この動画で変更している設定を一個一個試し、Counter Factor=2がラグの元凶であることがわかりました。
入力遅延の検証方法と結果
私の環境の場合、特にステージ選択画面についてはCF2では目に見えて遅延があった(はじいたスティックが戻った後にカーソルが動くレベル)ので、改善されていることはすぐわかりました。しかし、どうもCF2による遅延は対戦画面とメニュー画面等場面ごとに違うらしく、詳しく知るために下記のようなアナログな方法で遅延フレームを検証しました。
実機+ブラウン管とエミュレーター+PCモニターを横に並べ、iPhoneで60FPSで動画撮影しつつ同時に入力を行って、入力が画面に反映される速度をフレーム単位で比較する。これをCF1とCF2で行い、それぞれの入力遅延を比較する。
結果は以下の表のようになりました。縦軸は実機+ブラウン管に対する遅延フレーム数。
このように、私の環境ではステージ選択、対戦中ともに入力遅延がほぼなくなりました。検証を手伝ってもらったRobertも同様の結果を得ました。また、本来1フレームの入力遅延の差はそんなに体感できるものではないはずですが、私の環境では操作感が明らかに違うため、なにかしら別の要素も変わっているはずです。この辺はまだちょっとよくわかっていません。