2009年11月05日


広告


NP2 for PSP高速化実験(その1)

ということで、そろそろNP2 for PSPの高速化を行って行きたいわけですが、どれくらい高速化できたかを測定するのがなかなか難しい。

PC-9801のベンチマークソフトを動作させても、あまり意味がありません。NP2 for PSPを高速化することにより、NP2 for PSPの中の1秒は実時間の1秒に近づいていきますが、PC-9801のベンチマークソフトにしてみれば、その変化を感知することはできず、ベンチ結果は変化しません。

グラフィック描画を行い、PSPのタイマでフレームレートを測定すれば、ある程度高速化レベルを測定できそうであるが、たとえば15フレームが14フレームになったので、6%の高速化ができた、というのではちょっと精度が低いので、微妙な高速化が実感できません。

そこで、ver0.36では、簡単な処理時間計測ロジックを入れています。バイナリには反映されませんが、Makefileの

#PSPDBG=1

のコメントアウトをはずすか、

make PSPDBG=1

としてmakeを行えば、計測ロジックが有効になり、NP2 for PSPをリセットしてからの実時間を採取可能になります。

これを使い、
NP2 for PSPをリセット -> MS-DOS起動 -> あるゲームの起動 -> あるゲームのオープニング終了
までにかかる時間を計測します。
(この計測表示はGUのアップデートが発生しない場合は更新しないので、ちょうどオープニングが終わり、画面描画が終わると計測表示もとまります。)

測定のための設定は、以下となります。

1. np2.cfgを削除してNP2 for PSPを起動
2. cpuを222 -> 333に変更
3. Auto frame -> Full frameに変更
4. No Waitのチェック、未チェックを両方測定

No Waitをチェックすると、Waitがかからなくなるので早くなりますが、場合によっては実機よりも早くなってしまう場合があります。

では、Ver0.36での測定結果。3回測定しています。単位はmsec。

ver0.36No Wait offNo Wait on
1回目12833689456
2回目12770489122
3回目12636789389


ということでこれが基準となります。
ちなみに十分に早いPC上で計測をおこなったところ、約60秒でしたので、目標は60秒となります。

次に、「NP2 for PSPのキー入力あたりを解析する」でコメントいただいた、sceCtrlReadBufferPositive()をsceCtrlPeekBufferPositive()に変更した場合を測定。ちなみにver0.37として公開予定で、いくつかのバグと機能追加もしています。

ver0.37No Wait offNo Wait on
1回目8687981022
2回目8733781616
3回目8710681109


うわ、結構効果ありました。
では、後ほどVer0.37を公開したいと思います。




タグ:PSP NP2 for PSP
posted by ひっそりぃ at 2009/11/05 16:18 | Comment(1) | TrackBack(0) | NP2 for PSP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
更新お疲れ様です。
日本語ロム表示対応は出来ないでしょうか?
Posted by at 2009年11月06日 18:29
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。