昔のゲーム用コントローラでメガドライブミニを楽しみたい オマケ
スーパーファミコン用パッドを接続してみました(2020/5/23~5/24)

戻る

1.スーパーファミコン用パッドを追加で発見・・

全部入りの制作後は、各機種用のコントローラーでメガドライブミニを楽しんでいたのですが、
先日の押入れ奥の捜索時には見つからなかったスーパーファミコン(以下SFC)用のコントローラー
が長年空けていなかった収納ボックスから出てきました。


どちらかと言うとPCエンジン/メガドライブ派だったと言うこともあり、正直、SFCは他の機種よりは遊んで
いなかった感じです。(プレステ/プレステ2も似たような記憶)

今回見つかったのは、何とも懐かしい純正品とアスキー製のアスキーグリップおよび、海外サードパーティ製
のSN ProPadの3種類で、それぞれアスキーグリップはダビスタ専用、SN ProPadは連射機能があるので
シューティング系、標準パッドはその他全般と使い分けていました。

再発見された以上は遊ベるようにしてやりたい!というのもまた人情。
再び検討してみることに・・


2.スーパーファミコン情報について

調べてみたところ、SFCコントローラーをUSBに変換する機器は海外で多くの方が実装していること
が判りました。今回、スーパーファミコンコントローラの実装にあたり、参考にしたサイトです。

(1)Arduino Project: Super Nintendo Entertainment System (SNES)
ArduinoでのSFC→USB変換器について実装スケッチを参考にさせていただきました。

(2)スーパーファミコンコントローラの解析
パッド情報読出し時の各信号制御方法など詳細情報の記載があります。通信プロトコルの理解はこちら
が判りやすかったです。

○端子ピン情報(クリックで拡大)


○SFCパッド読み取り方法
Latch信号(初期値LOW)を12μ秒HIGH出力してからLOWに戻すと、その後のCLK信号(初期値LOW)の立ち
上がり(LOW⇒HIGH)毎に、DATA信号にパッド状態が1Bitづつ出力される仕様です。

16回CLK立ち上げ/DATA信号読出しを繰り返すとシーケンス終了です。


3.部品集め

制作にあたり、利用した部品です
〇必要な材料
 ・Arduino Pro Micro互換モジュール
 ・抵抗器4.7KΩ(プルアップ用)
 ・ブレッドボード、配線用の線材少々

スーパーファミコン コントローラー用コネクタは、ハードオフでジャンク品の本体(330円!)を買って
ばらして流用しました。(さすがに再発見された自宅のSFCを壊すわけにはいきませんので・・)


基板から外して、金切りノコとペンチを使ってコネクタを取り出しました。



4.SFCパッド変換器 配線図

可能な限り、他機種(プレイステーション用パッド)と共存できるように組んでいます。


DATA信号線のプルアップ抵抗(4.7KΩ)は必須ではないですが、実装した方が読出しが安定します。

下記のプレイステーション用の配線図と比べると判ると思いますが、Pro Micro側のPin8とPin10
をSFCとプレステとで共用しています。


※注意
プレイステーションは、ATT(ProMicro側Pin9)がLOW(SELECT)以外の状態では、他の出力Pinは
未使用(ハイインピーダンス)とする仕様のため、複数の(プレイステーション向け)デバイス
と共有化が可能です。

この辺り、SFC側の電気的な仕様が今ひとつ不明だったのですが、実際に 「全部入りスケッチ」
組んで試してみたところ、ATT/DATA用のPinを排他にすればプレステ信号とSFC信号をデバイス間で
共有しても別デバイスとして排他動作が可能でした。
(たまたま動作しているだけかも?ですので混在は推奨しません)

今回は試作レベルでしたが、もし今後、「全部入りパート2」を作るときはTC4053Bなどの
アナログマルチプレクサ等を使って信号を切り替えるなど、まじめな実装を検討しようと思います。


5.SFCパッド接続用スケッチ

スーパーファミコン対応のスケッチです。
他機種対応時と同様、共通処理にまとめてます。

スケッチファイルのコピーなどの利用はこちらからどうぞ)

VID/PIDについては(1)と(2)をコンパイルスイッチ「__IF_SEGA」で切り替えられるようにしています。
VID/PIDの変更に合わせて、コンパイルスイッチ「__IF_SEGA」を適切に設定してください。
元のVID/PID(1)SEGA純正パッドを模擬する場合(2)DragonRise製パッドを模擬する場合
leonardo.build.vid=0x2341leonardo.build.vid=0x0CA3leonardo.build.vid=0x0079
leonardo.build.pid=0x8036leonardo.build.pid=0x0024leonardo.build.pid=0x0011
また、方向キーが入りっぱなしになる不具合対策用コンパイルスイッチ「__BugFix」も用意しました。
該当の現象が発生する場合に有効にするようにしてください。(スケッチでは有効化しています)

○スケッチの書き込み/動作確認
Arduino IDEで「ファイル」→「新規ファイル」で新規スケッチを開いて、上記のスケッチを全て貼り付けます。

マイコンが認識していることを確認したら、「マイコンボードに書き込む」をクリックしてコンパイル・書き込みを実行します。


6.制作例

こんな感じで組んでみました。(クリックで拡大)


配線上は「4機種全部入り」になっていますが、上記のSFC単体スケッチでも問題なく動作します。

○感想
やはりNINTENDO標準のSFCパッドは操作しやすいです。
アスキーグリップは片手操作が可能になるのでRPGやシミュレーション等で使うと面白そう。


SN ProPadは記憶してたよりゴツイ・・。連射や格闘ものはHORIのファイティングコマンダーには
かないませんが、これはこれで個性があって良いかも?


他の機種のパッドがメガドラゲームで使えるのは新鮮かつ懐かしい感じで良いです。何と言うか、
昔メガドライブで標準3ボタンパッド(でかい・硬い)を使っていた頃「お気に入りのコントローラー
がメガドラで使えたら良いのに!」と考えていた事を思い出しました。

いずれにせよメガドライブミニが切っ掛けで、押し入れや引き出しの奥でホコリを被っていた
レトロコントローラーが復活出来て嬉しい限りです。

(これで本当に終わり・・のつもり)
戻る