X68000 for PSPを考える
まぁ、X68000 for AndroidあるいはX68000 for iPhoneでもいいのですが。
ポータブルなX68000エミュレータを作りたいなぁと。
ポータブルというのは、携帯ゲーム機で動作する、でははなくて移植しやすいということです。
具体的には、アセンブリを使わずにC言語のみで書かれていること。
なるべく様々なプラットフォームで動作しているライブラリを使用すること。今考えているのはSDL。
PSPでSDL動くの?というのは調べてみないとわからないが、まぁPSPはSDL使わなくてもいいかも。
また、X68Kの画面って結構特殊で256x256の解像度があったりして、普通に今の液晶で表示すると4:3の画面が1:1の横につぶれた感じで表示されてしまいます。これを回避するために画面の拡大縮小処理も必要か。
SDLには拡大縮小処理はなかったと思うので、OpenGLまたはOpenGL ES辺りを使うのがよいかな。
最悪Cでごりごり書くことになるかもしれないが、処理が重そうなのでできれば避けたいですね。
そんな訳で一番ベースとしてよさそうなX68000エミュレータ、xkeropiのソースを読み始めています。
keropiのMC68000 MPUコアはx86のアセンブリで書かれているので、これをCで書かれたものに置き換える必要があります。
keropiはビッグエンディアンのMC68000 MPUをリトルエンディアンのx86マシンで効率よく動作させるために、おもしろいテクニックを使っていますので、それになじむMPUコアを探さなければなりません。
とりあえずNJ氏作のPSP用CPS2エミュレータのMC68000コアがいけそうなので、これを使う予定です。
MPUコア以外にもグラフィック周り等で、アセンブリで書かれている箇所があります。#ifdefで切られていますが、xkeropiでは一部C言語で書き直してくれているので、これに足りない部分を書き加えていけばよさそうです。
NP2 for PSPを作った時よりは大分手間がかかりそうですね。まぁのんびりやっていこうと思います。
うむ、まずはテラリアしよう。
ポータブルなX68000エミュレータを作りたいなぁと。
ポータブルというのは、携帯ゲーム機で動作する、でははなくて移植しやすいということです。
具体的には、アセンブリを使わずにC言語のみで書かれていること。
なるべく様々なプラットフォームで動作しているライブラリを使用すること。今考えているのはSDL。
PSPでSDL動くの?というのは調べてみないとわからないが、まぁPSPはSDL使わなくてもいいかも。
また、X68Kの画面って結構特殊で256x256の解像度があったりして、普通に今の液晶で表示すると4:3の画面が1:1の横につぶれた感じで表示されてしまいます。これを回避するために画面の拡大縮小処理も必要か。
SDLには拡大縮小処理はなかったと思うので、OpenGLまたはOpenGL ES辺りを使うのがよいかな。
最悪Cでごりごり書くことになるかもしれないが、処理が重そうなのでできれば避けたいですね。
そんな訳で一番ベースとしてよさそうなX68000エミュレータ、xkeropiのソースを読み始めています。
keropiのMC68000 MPUコアはx86のアセンブリで書かれているので、これをCで書かれたものに置き換える必要があります。
keropiはビッグエンディアンのMC68000 MPUをリトルエンディアンのx86マシンで効率よく動作させるために、おもしろいテクニックを使っていますので、それになじむMPUコアを探さなければなりません。
とりあえずNJ氏作のPSP用CPS2エミュレータのMC68000コアがいけそうなので、これを使う予定です。
MPUコア以外にもグラフィック周り等で、アセンブリで書かれている箇所があります。#ifdefで切られていますが、xkeropiでは一部C言語で書き直してくれているので、これに足りない部分を書き加えていけばよさそうです。
NP2 for PSPを作った時よりは大分手間がかかりそうですね。まぁのんびりやっていこうと思います。
うむ、まずはテラリアしよう。
スポンサーサイト