以下のサイトで、M5Stack FIRE用の SC-3000 / MSX1 / ぴゅう太 / SORD M5 エミュレータを公開しました。ライセンスはGPLv2です。
TAKEDA, toshiyaさんの Common Source Code Project をM5Stack FIREで動作するように移植したものです。
Common Source Code Project for M5Stack FIRE
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack
動作速度は実機と比較してかなり遅いです。また、サウンドには対応していません。小型端末で動いているのを楽しむ、って感じです。
コンパイル済のbinファイルも置いてあります。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/bin
m5.bin / msx1.bin / pyuta.bin / sc3000.bin
binファイルをSDカードに入れておけば、LovyanLauncher から読み込み可能です。
LovyanLauncher
https://github.com/lovyan03/M5Stack_LovyanLauncher
エミュレータ実行のためには、それぞれの機種の実機ROMイメージが必要となります。実機入手が必要なので、なかなか厳しいところです。
MSXは、フリーで使えるオープンソースのBIOSイメージや、フリーゲームのROMイメージが入手可能です。
なので、これを使ってエミュレータ設定方法を説明します。
C-BIOS Association
http://cbios.sourceforge.net/ダウンロードサイト
https://sourceforge.net/projects/cbios/files/cbios/
上記サイトから、cbios-0.29a.zip をダウンロードしてください。
zipを解凍して「cbios_main_msx1_jp.rom」を「msxj.rom」にリネームしてください。
フリーゲームのROMイメージはこちらからダウンロード可能です。
MSXBLUE-DEV:MSXdev’05
http://msxdev.msxblue.com/?page_id=116
2005年に行われたMSXゲームコンテストの作品ですね。
必要なゲームをダウンロードしたら、SDカードに「msx1ROM」フォルダを作って、そこに入れてください。BIOS ROMもゲームROMも同じフォルダです。
現状は、カートリッジROMのみ対応です。ROMサイズは1MBまでです。(SRAM全部で4MBなのでこれぐらいが限界…。)カセットやディスクは対応してません。
ちなみに「機種名」+「ROM」が、各機種のROMイメージフォルダになります。「sc3000ROM」「pyutaROM」「m5ROM」という感じです。
起動すると、BIOS画面になると思います。C-BIOSは、BASICは含まれてないです。
カートリッジ選択は「Bボタン」です。
さきほど、/msx1ROM/ フォルダに入れたファイル一覧が表示されますので、起動したいイメージを選択してください。
起動できました!
操作は、M5Stack CardKB もしくは、シリアル接続でのシリアルコンソールから可能です。
M5Stack オプションのジョイパッドにも対応しました。ゲーム側もジョイパッド操作に対応している必要があります。
ジョイパッド対応しました。ボタンAを押すと、ジョイパッドモードになります。ボタンB/Cが、エミュレータ側のボタン1/2です。
もう一度Aを押すと、ジョイパッド横向きモードになります。 pic.twitter.com/0zTiaR7eiT— Nochi (@shikarunochi) 2019年3月23日
横向きモードはこういう使い方を想定してます。 pic.twitter.com/zytIABUfae
— Nochi (@shikarunochi) 2019年3月23日
このエミュレータが実行可能なのは、2019/03/20 時点では M5Stack FIRE のみです!
Amazonリンク貼りつつ、なんですけど、海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。