続きです。
「DUALSHOCK2」をメガドライブに接続して、「XE-1AP」として認識させる装置です。パッド変換器と言ったほうが早いかもしれません。
XE-1APが中古で高額販売されていて、腹が立ったので自作しました。
こちらで回路図とソースを公開中です。
前回作った「DIY AnalogPad」は操作しづらいという致命的な欠点がありましたので、今度は操作性に優れたDUALSHOCK2(PlayStation2用パッド)を使うことにしました。DUALSHOCK2は安くて入手しやすいです。初代プレステ用アナログコントローラとか初代DUALSHOCKでも大丈夫だと思います。
これによって、ブレッドボード上のアナログスティックとボタンが不要になり、580円ほどコストダウンできました。ATmega328搭載Arduinoやプレステパッド用コネクタをうまく入手できれば、1000円未満で自作できると思います。ポートは半分も使っていないので、ATtinyに移植してもいいですね。
プログラム内にpadtestというデバッグ用の関数を入れておきました。これを呼び出すと、DUALSHOCK2との通信結果をシリアルポートに出力します。1回あたりの通信で9バイトのデータをやり取ります。
2バイト目が0x73だと、アナログモードです。
4~5バイト目がボタンの状態です。
6~9バイト目が2本のアナログスティックの位置です。
ボタンの割り振りはXE-1APにできるだけ似せました。アフターバーナーIIで動作チェックしました。
・R1→A(ミサイル)
・R2→B(バルカン砲)
・L1→C
・L2→D
・SELECT→SELECT
・START→START
・右スティックY→スロットル(スピード)
・右スティックX→未使用
・左スティックX&Y→スティックX&Y(上下左右移動)
CとDボタンも割り当ててみましたが、この動作テスト時しか確認できません。ゲームプレイ中には押しても意味ないんですよね。
DIY AnalogPad(DUALSHOCK2 Version)
これで、XE-1APと同じような操作感が得られるようになりました。
好みの問題だと思いますが、バルカンとミサイルはL1/L2とかに割り振った方が使いやすいかもしません。R2のモゴっとした押し心地が苦手な場合は丸ボタンかバツボタンのほうがいいかも。
ソースを修正するだけで、ボタンの割り付けは簡単にカスタマイズできます。