PSPであそぼう(17)
psp/trunk には、SDLやSDL のメジャーライブラリである、SDL_image、SDL_mixer、SDL_ttf などが来ている。
SDLを使用したメジャータイトルがPSPに移植されるのは、もはや時間の問題だろう。
あと、PSPに家庭用ゲーム機のエミュレータは数多く移植された。NES(ファミコンエミュレータ),SNES(スーファミ),GB/GBA,GameGear,メガドラ、PCエンジンなどがあるが、このへんは(フルフレーム出るかどうかは別として)ある意味出来て当たり前の世界。入力とサウンドをいじって、あとは仮想画面から実画面へのbliterを書いてやれば移植はとりあえず出来る。だもんで、私としてはあまり面白みがない。
やねう解析チームとしては、遊びがてらにPS1のemulationの可能性について調べていた。PS1で使われている石(プロセッサ)は、PSPのものと非常に近く、dynamic recompileもしやすそうだし、SPU(=Sound Processing Unit。Sonyの用語。音源DSP)も、PSPはPS1からpolyphonic(≒同時発声数)を増やしただけのような仕様だ。またPS1の3D表示は比較的粒度の粗いAPIで実現されているのでそのままPSPのGPUで再現するのもそれほど難しくはない。
などと机上の空論を語っていても仕方ないので、ささっとコードをば。PSP上でPSF*1を再生できるソースとバイナリを置いておく。要するに、PS1のCPUとSPUのエミュレーションをしている。ただし、dynamic recompileはしていない。
http://yaneu.com/yaneurao/hatena/sexypsf-0.4.5-r1-psp-bin.zip
http://yaneu.com/yaneurao/hatena/sexypsf-0.4.5-r1-psp.tar.bz2
ちなみにソフトウェアエミュレーション + ソフトウェア描画だと222MHzで5FPSで動いているらしい。
http://forums.ps2dev.org/viewtopic.php?p=19939#19939
ということは333MHzならば7.5FPS。この人は「GPUを使って書き換えるゼ!」と言っている。おそらくその場合は30FPS前後になると思うので十分遊べる速度になると思う。PSPでPS1が動くようになるのが楽しみだ。(ちなみにやねう解析チームではPS1の完全なemulatorを作る予定は無いのであしからず)