前回はDebian Linuxを動かすところまでやってみた。
今回は手元にあるいくつかのエミュレータを動かしてみたよ!(^^)
RetroArch
RetroArch、過去にDM200でも動かしてみた事がある!
無茶かな……無茶かもね…と思いつつも再挑戦してみた!
DM250でもメニューを表示するだけで激重状態!(T-T)
オプションを調整しつつ動かしてみると、まぁ表示はそれなりに動くようになった。
サウンドはUSBサウンドアダプタからの出力だけど、ノイズ乗りまくり(T-T)
明らかにサウンドが間に合ってない感じだけど、CPUパワー的にはまだ余裕がある。
うーん、この謎をいつか解明してみたい…(-_-;;
XM8(PC-8801エミュレータ)
RetroArchが全体的に重たいので、PC-8801エミュレータはRetroArchから独立したものを動かしてみた。
↑のURLからソースが含まれたアーカイブをダウンロードしてビルド!
エミュレータ画面の右下を見ると、そこにはフレームレート2.0fpsと…orz
いやいや…さすがに遅いでしょ(T-T)
CPUの動作クロックが216MHzのままなのかな……?
調べてみると、XM8が動くと同時にCPUが816MHz動作になる事が確認出来た。
むしろCPUの処理自体は余裕がある事が分かった。
ここにきて表示系が遅いと理解し始めた。
FM-7エミュレータ
具体的に何がどのくらい遅いのかを確認してみたくて、拙作FM-7エミュレータを動かしてみることに。これは表示にSDL2を用いているので、表示の仕組みはXM8と同じだ。
自分で作ったものであればソースの改造も楽ちんだ(^^)
動かしてみたところ……うーん、びっくりするくらい遅い(^^;;
最初、動いてないのかと思っちゃうほどの反応悪さ(T-T)
さっそく調べてみたところ、SDL_RenderPresent(..)という関数が100msくらい掛かっていた。ということは、どんな頑張っても秒間10回書き換えが限度だ。
↑このページの一番最後に書かれいるGPU利用を読むと、どうやらアクセラーションが効いていないらしい。なるほど。
xf86-video-armsocで対応するという事らしいので、ちょいとソースを手元に持ってきてあれこれやってみたが、さすがに一筋縄ではいかなかった(^^;;
X68000再び!
過去にSHARPの電子辞書Brainで、X68000を動かした事がある。
この時は、RetroArch上で動くpx68k_libretroを改造してチャレンジしていた。
ぜひ「その1」から読んでみてほしい(^0^)
最後までまともな速度は出なかったものの、3段階で高速化に挑戦した!
最後に作ったのがフレームバッファ直描き版。
これ、途中でポメラDM200で動作確認をしていたんだけど、この時はあくまでも動作確認だけであったので、ポメラに特化した何かをしたわけでもなかった。
なんか、気持ち的にやり残した感が強かったので、今回DM250で動かす事にした!
前回の作業で、Brainで動かすためにRetroArch対応のpx68kを改造した。
具体的には
RetroArch対応だったのを、X-Window + SDL2対応に改造
X-Window + SDL2対応だったのを、フレームバッファ直描きに改造
という2段階を経て、Brainで動くようにしていった。
このSDL2対応→フレームバッファ対応の改造はポメラDM200上で行っていた!
今回、ポメラDM250では以下の事にチャレンジしてみた!
サウンドはPulseAudioで出力
ゲーム画面を縦横2倍表示
フレームバッファへの書き込みは、/dev/fb0をmmapする事で高速に行っている。
プログラムはmemcpyするだけという単純なものだ(^^)
※実際には16bit→32bitの変換をしたのちにmemcpy
今までチャレンジした事がなかったので、少し勉強するハメにはなったが…汗
px68k側からステレオ44.1KHzの16bit PCMデータが送られてくるので、これをPulseAudioに出力するだけの簡単なコードだ。
近々、それっぽいスピーカーを手に入れてみようと思う(^^)
ゲーム画面はそのままだと256x256ドットの小さい画面になってしまうので、縦横を2倍で表示している。
ゲーム起動時に一瞬表示されるHuman68kは倍角無し、その後で表示されるゲーム画面は2倍で描画してる。
ポメラDM250の底力!(^^)
— PocketGriffon (@GriffonPocket) 2022年9月1日
X68000エミュレータPX68kを全力で動かしてみた!
画面は/dev/fb0への直描き、サウンドはPulseAudioで出力(スピーカーを持ってないので動画は無音)。
CPUパワーもメモリも余りまくり(^^)#ポメラ #DM250#X68000 pic.twitter.com/eDH0k8GN4m
かなりそれっぽく動くようになったよ!(^-^)
最後に
この改造版PX68k、いまのところはジョイパッドの入力もマウスにも対応が出来ていない。
あくまでもX68000を立ち上げるだけの機能しかないのだ(^^;;
せっかくなのでゲームが遊べるところまで動かしてみようかなーという気になってる!
ポメラじゃなくてもいいじゃん…と言われそうだが、実はその通りだ(^^;
でもせっかくなので、力の限りポメラDM250の使い方を踏み外してみたい!
ではまた次回!(^-^)ノ