M5Stack:X1エミュレータ

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ぐらいです。アドベンチャーゲームなら、まあ、何とかプレイできるかなー、ぐらいの速度ですね。

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相当ってことで…。


Zaurus用X1エミュレータ解説ページを見ると、以前に互換IPLイメージデータが公開されていたことがあるみたいですね。今は消えてしまっています。残念。



このエミュレータが実行可能なのは、2019/04/08 時点では M5Stack FIRE のみです!


Amazonリンク貼りつつ、なんですけど、海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。