[SFC]SFC GAMEPAD DECORDER

スーパーファミコン用のゲームパッドをメガドライブ(ミニじゃない)に接続するアダプタです。
・メガドライブ用のゲームパッドを持っていないがスーパーファミコン用のゲームパッドを持っている、という場合に役立ちます。
・ゲームパッドの12ボタンのうち8ボタンのデータをメガドラに送信します。SELECT、Y、L、Rボタンは無視されます。
・メガドライブ3ボタンパッドと同じIC(74HC157)を使っています。


回路図
・回路はスーファミゲームパッドデコーダとメガドラのエンコーダの2つに分かれています。
デコーダ側ではゲームパッドから出力された信号をシリアル→パラレルに変換します。
・デコーダの出力は次のとおりです。
 ボタンOFF=ハイインピーダンス(切断した状態)
 ボタンON=Low出力(通電している状態)
・エンコーダ側ではボタンの信号をメガドラに送信します。
・メガドライブのジョイスティックポートはATARI仕様と端子の機能がかなり違ってます。たとえば、7番ピンはATARI仕様ではBボタンの入力に割り振られていますが、メガドラではICを制御するための出力信号に割り振られています。

部品リスト
   個数 
 U1 ATmega168 1 
 U2 74HC157 1 千石電商で売ってます
 X1 16MHz発振子 1 
 R1/R2 10k ohm 抵抗 2 
 R3 8x10k集合抵抗 1 
 CN1 1x6ピンヘッダ 1 シリアルUSBの接続用
 CN2 スーパーファミコン用コネクタ メス 1 コントローラの延長ケーブルを切断します
 CN3 Dsub9pinメス型コネクタ 1 
 C1 積層セラミックコンデンサ 1 
 C2 電解コンデンサ 1 100μFくらい
 C3 積層セラミックコンデンサ
または電解コンデンサ
 1 
  2x8ピンヘッダ 1 
  2x8ピンソケット 1 



スーパーファミコンゲームパッドのデコーダとメガドラのエンコーダです。接続の組み合わせを自由に変更できるように、基板を着脱できるようにしています。

メガドラに接続した様子です。Dsub9pinコネクタはそのままだと衝突してメガドラに挿すことができないので、コネクタの両端をペンチで曲げます。

SGDKに収録されているサンプルプログラム「joytest」を実行した様子です。「3 button」と認識されています。
たとえば、Bボタンを押すと、「B」の文字が黒く表示されます。
ゲームパッドの検出する周期は1/60秒(16ミリ秒)に設定します。このため、最大で1/60秒のタイミングのずれが生じる可能性があります。気になる場合はプログラムを修正して、周期を短くしてみてください。

Program(Arduino IDE)

(関連)6ボタンに対応させた改良版はこちら
Comments