PC-8001 エミュレータで作ったジョイパッドの処理をMZ-700エミュレータにも追加しました。
ソースはこちらです。
M5Z-700
https://github.com/shikarunochi/m5z80/tree/master/m5z700
MZ-700の場合、ジョイスティック上下左右は、カーソルキー割り当てでいいと思うのですが、A/Bボタンをどのキーに割り当てるか迷うところです。
丁寧にやるには、キーコンフィグ作るべきではあるのですが、違うゲームをするたびにコンフィグ変更するのも、煩雑ですよね。なので、力技ですが「使いそうなキーを全部押す」という方式にしてみました。
ビルディングホッパーを見てみたところ、使用するキーは
左ジャンプ:1 / 右ジャンプ:3
ああー、独特の操作!
タイニーゼビウスは
ブラスター:シフトキー / ザッパー:CTRLキー
こちらも独特。
ということで、
Aボタン:スペース & 「1」 & 「シフト」
Bボタン:「3」&「CTRL」
にします。
ビルディングホッパーはスタート時に「S」キー押下が必要なので、これをジョイスティック押下に割り当てておきます。あと、スタートで使うことの多そうな「CR」キーも。
ジョイスティック押下:「S」&「CR」
処理は void checkJoyPad() 関数です。押す、戻すのベタな処理。
カーソルは押したままを考慮。ボタンは自動連射。(連続で順にキーを押すことになるので、連射にならざるを得ないところでもあります。)
キーコードは、こちらのサイトに資料がありますので、ソース修正で好きなキーに変更するのがいいと思います。
MZ-700/1500 I/Oマップ
http://www.maroon.dti.ne.jp/youkan/mz700/mzioframe.html
MZ-80C は独立カーソルキーが無く、ゲームによって操作キーがバラバラですので、MZ-80Cモードになっている場合には、ジョイパッドは動作しないようにしてます。スイマセン。
ビルディングホッパー
MZ-700 for M5Stack ジョイパッドでコントロールできるようにしました。 pic.twitter.com/xj8DBkdwTk
— Nochi (@shikarunochi) 2018年11月23日
タイニーゼビウス
ザッパーもブラスターも撃てます。 pic.twitter.com/7ciIFlCpLJ
— Nochi (@shikarunochi) 2018年11月23日
このエミュレータが実行可能なのは、2018/11/18 時点では M5Stack FIRE のみです!
Amazonリンク貼りつつ、なんですけど、海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。