Common Source Code Project のX1エミュレータをM5Stack FIREに移植しました。起動するためにはX1実機ROMイメージが必要となります。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/src/x1
ビルド済みの bin ファイルも用意してあります。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/bin
x1.bin
動作速度は、実機の1/6ぐらいです。アドベンチャーゲームなら、まあ、何とかプレイできるかなー、ぐらいの速度ですね。
動作速度はこんな感じです。遅いですが、なんとか待てなくもないぐらい…かな。 pic.twitter.com/9DitS5NGiP
— Nochi (@shikarunochi) 2019年4月19日
ROMやフロッピーディスクのイメージファイルはSDカードの /x1ROM/ に入れておいてください。
binファイルをSDカードに入れておけば、LovyanLauncher から読み込み可能です。
LovyanLauncher
https://github.com/lovyan03/M5Stack_LovyanLauncher
キー入力は、M5Stackオプションの CardKBか、シリアルコンソール経由で行います。
M5Stack Official CardKB Mini Keyboard
今回はレゴブロックでX1本体も作りました!本体が四角いので比較的簡単!
偶然にも色がバッチリな感じで、サムネイルで見たら結構それっぽく見えます…!
横から見ると短いことがバレますw
フロッピーディスクイメージは、D88形式のみ対応しています。X1のイメージデータは 2D 形式で所持していることが多いと思いますので、D88形式に変換してから使用してください。変換は、以下のサイトにあるツール「2D Tools Release.1」で可能です。
自作ソフトのお部屋
https://www.jsdi.or.jp/~imp/
作成が古いツールなので、64ビットWindowsでは実行不可能です。
無慈悲なダイアログ。改造自由とのことですので、64ビットでも動作するようにしたものを置いておきます。コマンドプロンプトから実行してください。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/tools
2d88_64bit.zip
2d88_64bit
で使い方が出ます。基本的には
2d88_64bit -d88 {元イメージファイル.2d}
で大丈夫です。
フロッピーディスクドライブは1基のみ搭載です。せっかくなので2基にしてみようとしたところ、メモリ不足で落ちてしまいました…。
テープイメージファイルには対応していません。X1はフロッピーでのデータ運用多かったでしょうから、まあいいですよね…。(MZTの時にかなりしんどかったw)
ちなみに、上の写真に写っているテープベーシック(CZ-8CB01)は、ディスクイメージ化してたやつです。
(2019/05/07 追記)
テープ読み込み対応しました!X1エミュレータでよく使われているTAP形式です。MZ用のMZT形式は、バイナリダンプのファイルで、テープ波形への変更が必要だったので大変だったのですが、TAPファイルは、テープ波形のデータをファイルにしたものでした。なので、ヘッダを読んだ後は、そのままエミュレータに逐次データを渡すだけOKなのでした!
読み込みはかなり遅いですー。
それから、頭出し機能(APSS)には対応してません。せっかくのX1なのにAPSSなしは残念ですが、X1D相当ってことで…。
X1のTAPテープイメージデータ読めました! pic.twitter.com/etP0L8WGDR
— Nochi (@shikarunochi) 2019年5月6日
Zaurus用X1エミュレータ解説ページを見ると、以前に互換IPLイメージデータが公開されていたことがあるみたいですね。今は消えてしまっています。残念。
このエミュレータが実行可能なのは、2019/04/08 時点では M5Stack FIRE のみです!
Amazonリンク貼りつつ、なんですけど、海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。