メガドライブ6ボタンパッドのパラレル出力化

  • 2012/10/17(水) 23:32:01

ゲームギアのRGB化に伴って、以前はセガサターンパッドを接続できるように改造しましたが、今回はメガドライブのパッドを接続できるようにしました。

メガドライブは3ボタンも6ボタンも内部的にはセレクト信号がL、Hで出力されるデータが異なっているようでした。
詳細はApplauseこと寺川 愛印のこちらのサイトに公開されておられる「セガ メガドライブ 6ボタンパッドの読み取り方」を参考にさせていただきました。

で、この信号を変換してそれぞれ個別のボタン押下に対応できるようにATtiny2313で作成したのがこちら。


動作はこんな感じ

出力を変換できます。
3ボタンのパッドでも動作します。
残念ながらATtiny2313が20pinで入出力に使用できるピン数がリセットを無効にしても18ピンしかないので、modeスイッチだけは使用できません。

以下、コードなどを置いておきます。

ちなみにメガドライブのピンは通常のD-sub9ピンで


  1. D0   
  2. D1   
  3. D2   
  4. D3 
  5. +5V
  6. D4 
  7. Sel
  8. GND 
  9. D5
です。

ATtiny2313との接続および出力ですが、

こんな感じです。若干変則的なのはコードを簡単にするため。
ソースコードはこちら
#冗長的なので適当に改良してください。拡張子の.txtを.cへ変更してください。
Hexはこちら
#こちらも拡張子.txtを.hexに変更してください。
出力は押下でLになります。
書き込むときの注意ですが、Cのソースを見てもらうとわかると思いますが、FUSEビットが、
Extend 0xFF
High    0xFE
Low 0x64
となっており、リセットとISPを使用できなくしています。
そのためAVRISPなどのISPで書き込む場合は、はじめに



などのようにプログラムメモリー部分を書き込み、次に


のようにFUSEを設定しないと、書き込めなくなってしまうので注意です。
間違ってしまった場合は+12Vを利用してリセットを行う必要があります。
やり方は「ATtiny2313 リセット」などでググってください・
ATtiny2313は秋月なんかで100円ですし、特に追加の回路も要らないので、メガドライブの6ボタンパッドが好きな人は、これを使うと色々と変換できますよ。
#360のパッドにつないだりとかね。

これをゲームギアに取り付けることで、6ボタンパッドでプレイできます。
ちなみに1ASICのものは、

このように、コントローラ部分を乗っ取れます。


小ネタでした。
では〜

この記事に対するコメント

この記事にコメントする

管理者にだけ表示を許可する