M5Atom + 1.3インチLCD + 6×8フォントで MZ-80C エミュレータ

M5Atom 単体で MZ-700/MZ-80C エミュレータが動作するようになりましたので、以前に作った MZ-80C ミニチュアフィギュアの 1.3インチLCDに表示するようにしてみました。


320 x 200 でスプライトに描画して、アンチエイリアス付き拡大縮小(pushRotateZoomWithAA)で 0.75 倍表示(320 → 240)を行いました。全画面をスプライトで保持するにはメモリが足りなかったので 320×40で5回描画です。

まあまあ読める。


すると、3Dプリントモデルデータでお世話になりまくりのシノラボさんから、自作の 6×8 ドットMZ風フォントがあります、との連絡が!

240×200ドットで 40×25 行表示するために作成されていて、MZ-80K/C の独特の記号まで完全収録とのこと!すばらしいです。


ということで、さっそく組み込ませていただきました。フォントデータは横6ドットx縦8ドットが横向きで入ってましたので、40×240 のスプライトに90度傾けた状態で描画して、その後、90度戻して pushRotateZoom で画面描画しています。ドット数ぴったりなのでアンチエイリアスしなくても大丈夫!そのぶん描画速度も速くなります。

めっちゃクッキリ!!!!すごい!


プログラムはこちらです。M5Atom はバイナリデータでの配布は難しいので、ソースのみ公開です。PlatformIO でビルド&実行してください。

MZ-700 Emulator for M5Atom + AtomDisplay +Bluetooth Keyboard
https://github.com/shikarunochi/m5z80/tree/master/m5z700AtomHDMI

platform.ini で -D USE_EXT_LCD を有効にすると、AtomDisplayではなく 240×240 LCDに描画するようになります。
PCGは8×8フォントになるので、PCG切り替えはできないようにしています。

接続は SCK:G23 / SDA:G33 / RES:G19 / DC:G22 です。ピンを変更したい時は mz700lgfx.h を修正してください。

配線については、こちらも参考にしてみてください。

LCD 配線アダプタ
https://shikarunochi.matrix.jp/?p=4414

上のピン接続、AtomMate 付属のピンになるべく合うようにしているのですが、AtomMateと同等の配線を自分でやろうとすると結構めんどくさいんですよね。M5Atom 本体のピン並びに合わせて、SCK:G22 / SDA:G19 / RES:G23 / DC:G33 にしたほうが簡単だと思います。GNDだけ持ってくればいいだけなので。


シノラボさんのフォントデータに 6×8 ひらがなを追加し、英小文字フォントを英語フォントから移植して、MZ-700のフォントセットを作成しました!ひらがなは6×8はさすがに無理があるところもありますが、文章になってれば結構読めますね!


M5Atom に PC からの画面を転送表示して、エミュレータが動作してるっぽく見せかけてたことはあるのですが、ホントに動作できるようになるとは…。驚きです。