PCエンジンには標準パッドに加え、3ボタンパッドや6ボタンパッドがありますが、後期に
販売された6ボタンパッドは、特定ゲームのみサポートと言うこともあり、解析情報がなかなか
見つからず・・。ようやく、下記まとめサイト(TechWiki)を発見し、パッドの回路図から
ロジックを読み取って制御手順を理解しました。
(1)NEC PC Engine - Tech Wiki
貴重な情報満載です。特に6ボタンパッドの回路図は必見です。
(2)TurboGrafx/Duo/PC-Engine Controller Data
こちらも貴重な情報が満載です。というかこちらを先に読めば良かった・・
○端子ピン情報
○3B/6Bパッド読み取り方法
/Enable信号=L、Select信号をHI/LOWに切り替えて、D0縲廛3の信号を読み取る方式です。
6Bパッドは持っていないので動作確認はできていませんが、回路図を見る限り、連射制御と
同じICを使い、/Enable信号のHI/LOW毎に標準的な3B用ボタン読出しと6B用追加ボタンの
読出しを切替える制御のようです。
/Enable信号の制御が追加されている以外は、メガドライブコントローラーの制御と似ていますね。
〇追加で購入したもの
・miniDIN8pin基板ソケット(8a)
・配線用の線材少々
○配線図
PCエンジンパッド変換器の配線図です。
他機種のパッドと併用できるよう、メガドライブ用およびプレイステーション用に利用している
信号線を避けて配線しています。
また、PinF一回で読み取れるように、Pro Micro側のPFポートにパッド側のD0縲廛3を割り付ける
配置にしています。(ATmega 32U4搭載機種専用スケッチになりますが)
PCエンジン対応のスケッチです。考えなしで対応機種を増やしてたら処理が複雑化したので共通処理にまとめてます。
スケッチファイルのコピーなどの利用はこちらからどうぞ)
VID/PIDについては(1)と(2)をコンパイルスイッチ「__IF_SEGA」で切り替えられるようにしています。
VID/PIDの変更に合わせて、コンパイルスイッチ「__IF_SEGA」を適切に設定してください。
元のVID/PID | (1)SEGA純正パッドを模擬する場合 | (2)DragonRise製パッドを模擬する場合 |
---|---|---|
leonardo.build.vid=0x2341 | leonardo.build.vid=0x0CA3 | leonardo.build.vid=0x0079 |
leonardo.build.pid=0x8036 | leonardo.build.pid=0x0024 | leonardo.build.pid=0x0011 |
こんな感じで組んでみました。(クリックで拡大)
他機種のコントローラーと併用できるよう、残っていたProMicroのピンに配線を追加しています。
(当初の目論見通り3機種変換を1個のProMicroで実装できました)
制作はminiDIN8pinソケットとProMicro側のピンを結線するだけなので、難しくなかったのですが
動作させるのに思ったより苦労しました。
メガドライブと似た制御なのですぐに動作すると思っていたら、方向キーしか読めなかったり、
(+5V供給部の不良)特定方向のボタンが聞かなかったり(PCエンジンパッド側のminiDIN端子の
接触不良)で何度も配線をバラして組み直したり、スケッチの処理順をいじったりと中々完全な
動作には至りませんでした。
結局、miniDIN端子を接点復活材やアルコール使って掃除してスッキリ解決。やはり25年の放置は
長かったようです。
苦労はしましたが、大のお気に入りだったTAKERU製「PCブラスター」がメガドライブミニやPCで使える
ようになり感無量です。久しぶりに沙羅曼蛇とかやりたくなってきました。(実機も掘り出そうかな)