Atari ST でUSBマウスとUSBゲームパッドを使う


さて、久しぶりにAtari STを使用したのですが、そういえばマウス/コントローラー変換機を最後に製作したのはAVRマイコンでした。
入力コネクタがシリアル用のDsub9ピンむき出しだったので、Atariコネクタに変えるついでにSTM32でUSBマウス変換機を製作することにします。


Atari STのマウスはPC-9801と同じバスマウスで、仕様もほぼ同じでピンアサインが異なるだけです。
PC-9801のバスマウスを見れば分かるように、玉が中のX/Y軸のローラーを回転させることで方向を感知します。
光学マウスと違って相対座標を拾うのではなく、回転回数で移動量を測定します。
コントローラーで方向ボタンを常に連射しているイメージです。


STM32F401でサクッと作りました。
USBマウスとUSBゲームパッドを接続できるようにしたのですが、スイッチでマウスモードとジョイスティックモードを切り替えるようにしました。



[マウスモード]
 ・USBマウスを接続した場合、マウスとして動作します
 ・USBゲームパッドを接続した場合、疑似マウスとして動作します(スペースハリアー用)
 ・USBゲームパッドを接続した場合、X/ZがL/Rの秒間12.5連射、Yがカーソル1/2倍速移動、Bがカーソル2倍速移動になっています
[ジョイスティックモード]
 ・USBマウスを接続した場合、何も起きません
 ・USBゲームパッドを接続した場合、ジョイスティックとして動作します(通常のゲーム用)
 ・X/Y/Zボタンを秒間12.5連射/秒間6.25連射/秒間3.125連射に割り当てています





それでは動作確認です。

マウスモードでUSBマウスが使用できました。
それほど違和感はありません。



マウスモードでUSBゲームパッドを使用し、スペースハリアーをプレイしました。
連射機能付きなので、プレイも楽ちんです。


ジョイスティックモードでUSBゲームパッドを使用し、ストリートファイターをプレイしました。
秒間3.75連射ぐらいが丁度いい感じです。


ジョイスティックが2ポートあるのでもう一個作らないといけないのですが、結構工数がかかってしまうので当分はAVRマイコン版のスーファミコントローラー変換機と併用します。


[追記]

もう一つ作りました。 連射が微妙ですね。
秒間15連射だと速すぎるし、秒間7.5連射だと遅い感じがします。



[追記]
コードを見直して、マウスカーソルがヌルヌル動くようにしました。


戻る