クロックアップ

  • xclkcfg_03をダウンロード
  • http://w-zero3.org/uploader/index.html
  • [es]では下記のような報告あり。編集者本人も598まで上げた際に同様の憂き目に会いました。クロックアップはあくまで自己責任でね!

調子に乗って570まであげたら、ハングアップ→ハードリセット→なんか[es]のレジストリ全て初期化されてたよ
アプリファイルとかデータファイルは全て残っているのにWMのレジストリ上では無い事になってるよ
フォーマットされてないだけましだけど、OPERAのブックマーク消されたのイタイなぁ

みんな、手を抜かずちゃんとバックアップとってからクロックアップしようね

  • [es]と同様に、何らかの常駐ツールで継続的な負荷をかけない限り、標準クロックに戻ってしまうので注意
  • [es]でのオススメ常駐ツールは「MultiKeyHook(ホーミン氏作)」もしくは「CustomClock(seri氏作)」。アドエスでの動作報告募集中


クロックアップ維持の動作検証のためのテスト詳細


[準備]
「\windows\スタートアップ」フォルダの内容を、全て一時フォルダに退避。Todayメニューからも全アイテムを外す
ACアダプタを接続し、サスペンド無効に設定。その他、パワーマネジメントは連続稼働可能な状態に設定
念のため、W-SIMをオフにするなど、可能な限り全ての常駐を除外できる状態で再起動(ソフトリセット)

[比較用予備検証]
常駐ゼロの状態でxclkcfg_03を使い520MHzにクロックアップを試行するも、ほぼ実行直後に標準(416MHz)に戻る現象の再現を確認
※間隔を開けず複数回連続実施後の計測/ソフトリセット後の計測なども含め、各種20回程度の試行で全て再現した

[高クロック維持検証結果(PHMのCPU負荷メータにより、実際の負荷を計測しつつ検証)]
「TCPMP起動」→「バックグラウンドでMP3ファイルをリピート再生(負荷100%)」→「クロックアップ(520MHz)」
※数分~数十分間隔で5回程度の状態チェックをソフトリセット含めて10回試行し、全て高クロック状態の維持を確認
「上記ファイル再生しつつエミュレータ(MorphGear/PocketSNESの2種を個別に調査)起動」→「TCPMPの終了」
※ROM読み込み以前の状態でも最低50%以上のCPU負荷があり、TCPMP終了後も高クロック状態を維持していた
※「メニュー表示」「ダイアログ表示」等エミュレータ本体から他のモジュールに処理が移行した際、負荷が10%以下程度に落ちたタイミングでクロックが標準に戻ることを確認
※上記メニュー/ダイアログ表示等を行なう間TCPMPを再生状態のままとし、ROM読み込み後に>TCPMPを終了したところ、エミュレータ終了orダイアログ等再表示まで高クロックが維持できていることを確認

[考察]
以上の結果より、継続的にCPU負荷が発生する環境下では高クロック状態を維持できると判断した。
いずれのエミュレータにおいても、「Pause状態」では一定の負荷が発生しているため高クロック状態の維持が可能。
しかし、メニュー表示等によりCPUアイドル状態となり標準クロックに戻ってしまうため、実運用時には何らかの常駐ツールによる負荷継続が望ましい。
尚、CPU負荷計測の精度がそれほど高くないため、標準クロックに戻る際の閾値は判別できず。
※エミュレーション開始後に、必要に応じ「xclkcfg_03」を実行することで、再クロックアップ及び維持は可能。
また、MorphGear(572MHz駆動)のみの検証になるが、「MultikeyHook」等の常駐によるクロック維持状態で30fps程度だったものが、常駐ゼロでの検証下では「32~33fps」となり、10%弱の性能向上が見られた。
キー入力時の負荷が大きい(上記常駐ゼロ状態で20fps強まで低下)ため誤差程度の性能向上だが、USBパッド等を利用するケースではそれなりに寄与すると思われる。

WS007SHにおける、クロックアップ&キー入力周り最適化のためのスクリプト


kagura-yさんのR.A.M.(単純レジストリ書換ツール) http://kaguray.hp.infoseek.co.jp/を使うと、キーボード押しっぱなしの際の内部動作としてのシステム内での連打が遅くなり、負荷が少なくなる。(エミュレーターの動作が実機に近くなる)

  • R.A.M.等によるレジストリ書き換えのみでは、本来リセットをしないとキーリピート変更が有効にならないが、下記引用の通り回避策あり

[es]のキー入力時のフレームレート低下を緩和するレジストリ「RepeatRate」の値は、
「スタート」→「設定」→「個人用タブ」:「ボタン」→「上/下コントロールタブ」
で指定する「ハイライトの移動速度」と同じだと言う事に今頃気が付きました。
※ゲージを左端(最遅の状態)にすると、RepeatRate=0に設定される。

TREでレジストリ書換→該当部をエクスポートしておけば、起動パラメータでファイル指定してインポート可能なのですが、リセット必須なのがちょいと痛かったっす。
しかし、レジストリファイルをインポートしてから上記コントロールパネルを開くと、値が設定されているだけでなく、OKボタンを押せばリセット無しで反映される事を確認。

  • 下記スクリプト内でコントロールパネルを呼び出し→OKボタンを(仮想的に)押すことで、キーリピート変更を無理やり有効にする
  • アドエスではキーバインド及びxclkcfg_03の引数が変わっている可能性があるので、動作報告募集中!
  • 利用者によりファイルの置き場などが異なるため、各自の環境に合わせて適宜書き換えしてください

「キーリピートオフ→クロックアップ→エミュ起動→入力モード変更→エミュ終了後にキーリピート戻す→ノーマルクロックに戻す」
これら一連の作業をワンアクションで可能にしてみました。他のエミュでも応用可能。


※「execmulti」の起動引数は「HyperModeSet」

[default]
[HyperModeSet]
execSync=\Program Files\RAM.exe
exec=\Windows\ctlpnl.exe|\Windows\cplmain.cpl,12,1
sleep=1000
execSync=\Program Files\KeyInputEmulator\KeyInputEmulator.exe|↓<HEX:5C> >↓<HEX:75> <sleep:0> ↑<HEX:75> ↑<HEX:5C>
execSync=\Program Files\xclkcfg_03.exe|-f8
exec=\Program Files\execmulti\execmulti.exe|ExecAndClose
sleep=2000
execSync=\Program Files\ChgInputMode\ChgInputMode.exe|-1 -aw

[ExecAndClose]
execSync=\miniSD\Program Files\ゲーム\MorphGear\MorphGear.exe
execSync=\Program Files\xclkcfg_03.exe|-d
execSync=\Program Files\RAM.exe
exec=\Windows\ctlpnl.exe|\Windows\cplmain.cpl,12,1
sleep=1000
execSync=\Program Files\KeyInputEmulator\KeyInputEmulator.exe|↓<HEX:5C> >↓<HEX:75> <sleep:0> ↑<HEX:75> ↑<HEX:5C>


「execmulti.ini」内
execSync=\Program Files\xclkcfg_03.exe|-f8

この最後の引数「-f8」は、572MHzに設定するためのものです。
私の環境(Premium)では、たまたま572MHzで安定稼動していますが
システムクラッシュの危険性もありますから、
引数は「-f6」の520MHzぐらいでテストしたほうが安全です。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年06月06日 09:02