TAKEDA, toshiyaさんの作られているエミュレータ群がとても気になっていました。国産マシンの網羅を目指し、続々とエミュレータが公開されています。
TAKEDA, toshiya’s HOME PAGE
http://takeda-toshiya.my.coocan.jp/
これがもし、M5Stackで動作できたなら、数十種類のエミュレータの移植ができるのでは…!
でも、ソースはWindowsに特化されてて、他の環境で動作させるのは難しいのだろう…と、勝手に思ってあきらめていました。
そんなとき、偶然、Androidに移植されている方のページにたどり着きました。見てみると、元ソースへの大きな変更なしで移植できている!すごい!
tanamの日記:Qt 4.8 和製MESS その1
https://tms9918.hatenablog.com/entry/2013/05/19/233702
移植時の日記を順に読んでいって、少しずつ理解を進めていきました。ソースは、エミュレータGUI部分、ハードウェアエミュレート部分、各機種固有の部分でキレイに分割されていて、対応機種の追加が行いやすい作りになってます。
エミュレート処理の部分は移植性が高く、Windows以外の環境でもほぼそのままコンパイル可能!Windows依存の部分は隔離されていて、ここだけ入れ替えれば、他の環境にも比較的簡単に移植できるっぽい…!
これは!やってみるしかないですね!
ということで、たなむさんの情報を頼りにしつつ、M5Stack(Arduino)へと移植開始しました。たなむさんの移植順にあわせて、まずはSC-3000から。移植元は、Common Source Code Project 2/19/2019-2版です。
うおおー!TAKEDA, toshiyaさんのSC-3000エミュレータを移植して起動できた~!https://t.co/AFfKeVAnT6 pic.twitter.com/oMhxyw7XHA
— Nochi (@shikarunochi) 2019年3月16日
元ソースですでにRGB565端末での実行が考慮されてて、フラグ指定するだけで、色変換処理しなくても色がバッチリだ。すごい。
今のところは2秒に1回程度の画面更新。実際に遊ぶには厳しい感じです。 pic.twitter.com/bD5il0PALI— Nochi (@shikarunochi) 2019年3月16日
できた!
次は、ハードウェア構成がほぼSC-3000と同じのMSX!
SC-3000のハードウェア構成は、MSX1とほぼ同じ…ということでTAKEDAさんエミュレータソースからMSX1のロジック部分も移植。動いた~!
ハードウェアエミュレートのロジックが共有できるので、すばらしいです。 pic.twitter.com/naMFk7oQ3U— Nochi (@shikarunochi) 2019年3月17日
ワオー!
日本語ベーシック搭載の16ビット、特異な存在、ぴゅう太!
ぴゅう太もVDPはSC-3000と同じTMS9918A。CPUロジックTMS9995を追加して動作できました!
カーソルキーはまだ効かないのでメニュー選択はできず。 pic.twitter.com/suAlbIeXKG— Nochi (@shikarunochi) 2019年3月18日
CPUロジックを追加して、いけました!
さらに、いつの日か実現したかったM5Stack で SORD M5!
誰もが考えたであろう、
「M5Stack」 で 「SORD M5」が、ついに実現できました!
M5 (コンピュータ) – Wikipedia https://t.co/34KDCeLW5Q pic.twitter.com/DFFE3GDkan— Nochi (@shikarunochi) 2019年3月18日
いけました!
移植内容の詳細については、後日また書きます!
エミュレータ作者の武田さんから、GPLv2で公開すれば問題ないとの連絡いただきましたので、ソース公開します!
Common Source Code Project for M5Stack FIRE
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack
このエミュレータが実行可能なのは、2019/03/20 時点では M5Stack FIRE のみです!
Amazonリンク貼りつつ、なんですけど、海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。