フレームレートの誤り
コンソール系(TVにつないで使うことを前提とした)ゲーム機のエミュではNTSC規格であれば60fpsが基準になっています。ゲーム機のCPUはクロック固定という前提でCPUで何命令実行したらHSYNC(画面の横1ライン)、HSYNCが何ラインでVSYNC(1画面全体)という感じで管理するものが大半です。 ポータブル機の場合にはこれに従う必要はないのですが準拠した作りになっているようです。 つまり、どのようなシーンでも16.666ms以内に1画面分の表示も含めたエミュレーション処理が実行できれば実機同等、これ以下で処理できれば早送りでも再現できるということになります。 「スキップ4で60fps出てるから実機並に動いてる」という感じの発言をよく見るのですが、固定でスキップしているエミュも多く見られ、スキップ4なら12fpsしか描画していないのに60fpsと表示するものもあります。 gpspもmanual-skipであれば固定的にskipするので、1の設定では常に30fps以下、2で20fps以下の描画しか実行しませんが、1で30fps描画できれば60fpsと表示しています。 今回auto-skipのロジックを組み込みましたが、skip数は最低描画数であり、60fps以上描画しないようなリミッターと、処理が遅れていいから最低これだけは描画するというロジックになっています。 fps表示もこれに従った表示に変えていますのでauto:4であれば13-60fps間はほぼ正確な値を指します。”1″キーがリミッターのトグルになっていますので外して常に60fps以上でていれば、そのソフトは実機以上に動いていることになります。
fpsが重要でないソフトも多く、20fps程度でもプレーに支障はないのですが、例えばスーパーロボット大戦OG2の戦闘デモでは1 or 数フレーム毎に表示/非表示を繰り返すことでアルファブレンド的な効果を出しています。描画スキップが多いと、苦労して作られたこの効果が見えませんw 実機でやれば苦労する必要はないのですが「zaurusを隠れ蓑にしたいおじさん」と「ゲームへの愛情がfpsへの拘りへ」が合体した執念だけでエミュに関わっています。
本家gPSP及びgp2x版作者への感謝の気持ちを持って楽しんでくだされば幸いです。
author by suhami 20:03:26