こちらの続きです。
前回はメガドラ専用でしたが、それをPCエンジンとかX68000でも使えるように考えてみました。上の図はアイデア段階のメモです。PC/ゲーム機からはXE-1APとして認識する予定です。
そこから欲が出てしまって、
セガマウスにも対応させて、さらにファミコンやスーファミのコネクタも追加しました。機能選択用のディップスイッチを足して、液晶パネルを足して、、、収集が付かなくなってしまいました。
基板にするとこんな感じ。XE-1APはスイッチでPCかメガドラかを切り替える仕様ですが、手間がかかりそうなのでコネクタを別にしました。一度に一台のハードにしか接続できません。
マイコンはいつものATmega328P。SCL/SDA端子には秋月製のAE-AQM1602Aという液晶を接続する予定です。
下にある「74HC157」はマイコンソフトの「XHE-3」相当の回路です。XHE-3は入手が難しく、大変なプレミア価格になっていますが、中に70円のICが1つ入っているだけです。
PCエンジンから来るSEL信号のタイミングがわからないので、ICで解決しています。ソフト的に解決できたら、ICが不要になるのですが。
コネクタが並ぶように修正したバージョン。
この段階で全11種類のパッドとして認識できるようになってます。
1: MD-DPAD(メガドラの3/6BUTTONゲームパッド)
2: MD-ANALOG(メガドラのXE-1AP)
3: MD-MOUSE(セガマウス)
5: PCE-ANALOG(PCエンジンのXE-1AP)
6: PCE-MOUSE(PCエンジンのマウス)
メガドラ用ゲームパッドやスーファミ用ゲームパッド、マウスは過去に作ったので技術的には問題なし。
PCエンジン用XE-1APとX68000用XE-1APは内部の処理は全く同じです。
セガマウスの通信仕様はSGDKのreadmouse関数を読めばわかるはず。「雀皇登竜門」がセガマウス対応です。
PCエンジンマウスの通信仕様が一番の謎ですね。測定器で調べないといけません。
最後にCN6の9番ピンをつないで、ファミコン用のアルカノイドコントローラとして認識できるようにしてみました。アナログスティックの傾きでバウスを動かすことになります。果たして快適に遊べるのか?
これで12種類目。
そのかわり、シリアルポートの受信ができなくなってしまいました。完全にArduino非対応です。
便利で使い勝手のいいものは世の中に一杯売ってますので、そうじゃないものを作りたいです。
デュアルショック2以外にも、こういうアナログスティックを接続すれば、サイバースティックっぽくなるかもしれません。
(2021/05/30追記)
プレステパッドの受け側となるコネクタを買ってみました。ピンが抜けているのですが、これは8番ピンで、使用しません。CADデータと8番ピンの位置が逆だ? と思ったら、CADのほうが間違ってました。
というわけで、プレステパッドのピンアサインをひっくり返しました。何か月もミスに気が付かなかったです。
(2021/6/1)
見直すたびにミスが出てきて終わらなかったのですが、今度こそ最終版です。
複数の機器を接続した時、VCCが逆流しないように対策してみました。もう5mmくらい基板を小さくできますが、1円も安くならないので、このままにします。