Arduino STM32 MSX/FM TOWNS/PC-6001でスーファミのコントローラーを使う


以前、ATmega8 でスーファミのコントローラーを MSX/FM TOWNS のマウス兼ジョイスティックを製作しましたが、今度はSTM32を使います。

但し全く同じものを作るのは芸がないので、今回はATARI仕様(※本当の意味で)のケーブルを使います。
今まではシリアルポートのD-Sub 9ピンのコネクタを使っていましたが、加工しないとFM TOWNSに刺さりませんし、MSXやPC-6001に至っては殻割りしないと刺さりません。
ATARI仕様のケーブルはメガドライブでも使われているのでケーブル単体が売っていたのは知っていましたが、送料を入れると結構いい値段になってしまうため今まで見送っていました
(送料込みで1本当たりの値段は STM32F103C6T6 1個とほぼ同じです)。

それでは作ってみましょう。
といっても ATmega8 からの移植、かつ他のSTM32からのソースコードのコピペ作業です。
1点 AVR マイコンと違った点は、nointerrupt()を使うとdelay()が無効になるようです。

サクサクっと簡単に作れました。
ちょっと失敗したのは、スーファミのコネクタを固定するのに使ったグルーの熱で電池ボックスが歪んだところでしょうか。

それでは動作確認です。

FM TOWNS でマウスとして使えます。
アフターバーナーⅡは相変わらず操作し難いですね。
もちろん、MSXでも動作します。
PC-6001でもしっかりコネクタに刺さるので、ちゃんと動作します。
AX-7 ザ・アストロディアンは連射があるとかなり先まで進めます。

※本当の意味で

よくD-sub9 ピンのジョイスティックのことをATARI仕様と呼びますが、ATARI仕様は7番Vccで8番GND、MSX仕様は5番Vccで9番GNDでピンアサインが異なります。
もちろん、日本のコンピュータがATARIを真似て同じコネクタを使ったのは確かです。
普通の人はMSX仕様をATARI仕様と呼んでも何ら問題ありませんが、ガチでATARI実機を使う者としては間違えると最悪機器が壊れるので困ります。
まあ、MSX仕様という呼び方もPC-6001ユーザからすれば腹立つのですが...。


















戻る