PSPであそぼう(17)

psp/trunk には、SDLSDL のメジャーライブラリである、SDL_image、SDL_mixer、SDL_ttf などが来ている。

http://svn.ps2dev.org/

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で実現されているのでそのままPSPGPUで再現するのもそれほど難しくはない。


などと机上の空論を語っていても仕方ないので、ささっとコードをば。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を作る予定は無いのであしからず)

*1:PSFとは PS1 の実行ファイルをゲーム毎に頑張って解析して、サウンドドライバらしき部分と曲データの部分だけを取り出し、都合の良いようにパッチを当て、CPU + SPU だけの状態で動くようにしたものだ。過程が非常に困難なため、リッピング出来る人は少ない。また、対象を PS2 にした PSF2 もある。