全部入りの制作後は、各機種用のコントローラーでメガドライブミニを楽しんでいたのですが、
先日の押入れ奥の捜索時には見つからなかったスーパーファミコン(以下SFC)用のコントローラー
が長年空けていなかった収納ボックスから出てきました。
どちらかと言うとPCエンジン/メガドライブ派だったと言うこともあり、正直、SFCは他の機種よりは遊んで
いなかった感じです。(プレステ/プレステ2も似たような記憶)
今回見つかったのは、何とも懐かしい純正品とアスキー製のアスキーグリップおよび、海外サードパーティ製
のSN ProPadの3種類で、それぞれアスキーグリップはダビスタ専用、SN ProPadは連射機能があるので
シューティング系、標準パッドはその他全般と使い分けていました。
再発見された以上は遊ベるようにしてやりたい!というのもまた人情。
再び検討してみることに・・
制作にあたり、利用した部品です
〇必要な材料
・Arduino Pro Micro互換モジュール
・抵抗器4.7KΩ(プルアップ用)
・ブレッドボード、配線用の線材少々
スーパーファミコン コントローラー用コネクタは、ハードオフでジャンク品の本体(330円!)を買って
ばらして流用しました。(さすがに再発見された自宅のSFCを壊すわけにはいきませんので・・)
基板から外して、金切りノコとペンチを使ってコネクタを取り出しました。
可能な限り、他機種(プレイステーション用パッド)と共存できるように組んでいます。
DATA信号線のプルアップ抵抗(4.7KΩ)は必須ではないですが、実装した方が読出しが安定します。
下記のプレイステーション用の配線図と比べると判ると思いますが、Pro Micro側のPin8とPin10
をSFCとプレステとで共用しています。
※注意
プレイステーションは、ATT(ProMicro側Pin9)がLOW(SELECT)以外の状態では、他の出力Pinは
未使用(ハイインピーダンス)とする仕様のため、複数の(プレイステーション向け)デバイス
と共有化が可能です。
この辺り、SFC側の電気的な仕様が今ひとつ不明だったのですが、実際に
「全部入りスケッチ」を
組んで試してみたところ、ATT/DATA用のPinを排他にすればプレステ信号とSFC信号をデバイス間で
共有しても別デバイスとして排他動作が可能でした。
(たまたま動作しているだけかも?ですので混在は推奨しません)
今回は試作レベルでしたが、もし今後、「全部入りパート2」を作るときはTC4053Bなどの
アナログマルチプレクサ等を使って信号を切り替えるなど、まじめな実装を検討しようと思います。
スーパーファミコン対応のスケッチです。
他機種対応時と同様、共通処理にまとめてます。
スケッチファイルのコピーなどの利用はこちらからどうぞ)
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 |