メガドライブ用ゲームパッドの修理

f:id:nicotakuya:20191209041908j:plain

謎のスイッチ付きメガドライブゲームパッド

30年くらい前に買ったメガドライブゲームパッドを修理してみました。

当時、自分はメガドラ用のゲームパッドにDub9pinコネクタを付けたり、スライドスイッチを付けたりして遊んでいました。その改造の名残としてスイッチが付いたままになっています。自分で付けたのに、何のスイッチなのか覚えてないのが恐ろしい。

 

f:id:nicotakuya:20191209042208j:plain

ゲームパッドの中身

中身はこんな感じになってました。セロテープで絶縁とか、全然ダメダメですね。

見たところ、コネクタの6番ピンと7番ピンがスイッチにつながっています。

 

f:id:nicotakuya:20191209042321j:plain

基板のオモテ側

切ったリード線が付いたままです。ワイルドすぎです。

スイッチ側のリード線を追いかけると、6番ピン→Aボタン、7番ピン→Bボタンに直結していました。つまり、ATARI仕様への切り替えがやりたかったみたいですね。でも、PC-6001に接続した場合、9番ピン=C/STARTボタン→9番=GNDにつながってしまうので、まったくもって良くありません。

スイッチを取り外して、配線を元の状態に戻しました。

 

f:id:nicotakuya:20191210042346j:plain

接点復活スプレーと導電塗料

さらにボタンの利きが悪くなっているので、導電ゴムに導電塗料を塗りました。導電塗料は秋月で1000円くらいで売ってます。

接点復活スプレーは基板の銅箔に吹きかけます。このクレ製のスプレーはアルコールじゃなくて、謎の油が使われてます。

 

f:id:nicotakuya:20191209042416j:plain

ゲームパッドの修復完了

ホットボンドで穴を塞ぎます。これで修理が完了しました。 

 

(メガドライブゲーム自作)セガタップの読み取り実験


メガドライブ用自作カートリッジ基板でセガタップを入力する実験

メガドライブ用の自作カートリッジ基板でゲームを作ろうと思うのですが、まずはセガタップを読み取る実験から始めてみました。

f:id:nicotakuya:20191207161320j:plain

セガタップ

f:id:nicotakuya:20191207161420j:plain

ゲームパッドを接続

4つゲームパッドを読み取ることは一応、成功しましたが、突然処理落ちしたりするので余裕を持ってゲームを作れません。エミュレータデバッグしていると、実機と挙動が違うことが多々あります。

ATARI仕様ジョイスティックの端子を挿し込めるようにするアダプタ

f:id:nicotakuya:20191201024802j:plain

端子が奥にあるのでコネクタが挿さらない

前回製作したメガドラ用6ボタンパッドをセガタップに挿し込もうとしたら、端子が奥にありすぎて入らないことが判明しました。コネクタの金属部分をペンチで曲げただけでは足りません。

ATARI仕様ジョイスティックの延長ケーブルを付ければ解決できるのですが、最近だとどこにも売ってません。

そこで挿し込むことができるようにするアダプタを作ります。

f:id:nicotakuya:20191201024702j:plain

Dsub9pinコネクタを分解

秋月で50円で売ってる基板取り付け用のDsub9pinコネクタ(メス型)を分解します。ねじを回すだけで、分解できます。

 

f:id:nicotakuya:20191201024940j:plain

ニッパーで切断

端子に入るようにニッパーで小さく切断します。

 

f:id:nicotakuya:20191201025037j:plain

オス型コネクタを付けて完成

端子を90度曲げて、反対側にオス型のDsub9pinコネクタを取り付けます。

これで完成です。

 

f:id:nicotakuya:20191201025152j:plain

コネクタが挿せるようになりました

挿し込むとこうなります。端子部分は露出していると不安なので、ホットボンドで固めました。

セガタップに限らず、PC-6001シリーズやMSXでもジョイスティック端子は奥に付いていますので、このアダプタが活用できると思います。

 

f:id:nicotakuya:20201228125600p:plain

AliExpressにて

(2020/12/28追記)ここまで書いておいてなんですが、ゲームコントローラ用の延長ケーブルを切断したほうが見た目がよさそうですね。AliExpressで「genesis cable」とかで検索すると出てきます。

メガドライブ用6ボタンパッドの自作

メガドライブ(ミニじゃない)用の6ボタンパッドを自作してみました。

こちらで回路図とプログラムを公開しています。

sites.google.com

メガドライブゲームパッドは今でもサードパーティから発売されていますので、自作する必要は全くないのですが、前回作った「スーファミパッド→メガドラ変換アダプタ」が6ボタンパッドとして認識されなかったのが心残りだったので作りました。

今回はきちんと6ボタンパッドとして認識されます。

f:id:nicotakuya:20191127233529j:plain

6ボタンパッドのエンコーダ

ボタンを取り外した状態の基板です。ボタンの情報をコード化してメガドラに送信しますので、エンコーダと呼んでいます。

3ボタンパッドの場合は回路がIC1個で済んでいたのですが、6ボタンパッドの場合は通信方式が複雑なのでマイコンが必要になります。

 

f:id:nicotakuya:20191127233230j:plain

メガドライブの6ボタンパッド(ジョイスティック)を自作

レバーとボタンを接続した様子です。SGDKのサンプルプログラムの「joytest」を実行するとこうなります。「6 button」と認識されています。成功です。

「joytest」特有の仕様なのかどうかわかりませんが、一定時間内にメガドラと通信を行わないとメガドラからSEL信号が出力されなくなってしまいます。そのため、立ち上がりに時間のかかるArduinoを使うことができません。一応、メガドラの電源をオンにして、少し待ってからメガドラのリセットを押せば解決できると思います。

 

f:id:nicotakuya:20191127233915j:plain

コントロールボックスの中身

この回路はエンコーダとボタン類を分離できます。ボタン側の回路を「コントロールボックス」と呼んでいます。回路は非常にシンプルで、ボタンを押すとGNDにショートするだけです。このため、容易にアタリ仕様に変換できます。

レバーは秋月で購入しました。ボタンは千石電商で購入しています。

 

f:id:nicotakuya:20191128010328j:plain

スーファミパッドのデコーダと合体

コントロールボックスをエンコーダから切り離して、前回作ったスーファミ用パッドのデコーダを接続すると、こうなります。

 

f:id:nicotakuya:20191127232639j:plain

SELECTボタンに反応します

「joytest」の実行結果です。

前回は3ボタンパッドだった都合上、L/R/Y/SELECTボタンは検出できませんでしたが、今回はすべてのボタンを検出できます。たとえば、SELECTボタンと押すと、MODEボタンが反応しました。

機種間の違いが悩むところです。X→Cボタン、Y→Xボタンに割り振ってしまったので、わけがわからなくなってしまいました。ボタンの配置はファームウェアを書き換えることで自由に変更することができます。

 

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com

日経ソフトウエア2020年1月号

日経ソフトウエア2020年1月号でRoboMaster S1プチコンの記事を書かせて頂きました。

f:id:nicotakuya:20191124164844j:plain

robomaster s1

RoboMaster S1の記事は書くにあたって、DJIさんから実機を貸して頂きました。カメラで画像認識ができたり、Pythonでコードが書けて動かすことができたり、とにかく高性能で驚きました。日経BPさんの会議室で撮りましたが、ゲル弾が速すぎて写真にうまく撮れなかったのが惜しいところです。ゲル弾は大量に余りました。

f:id:nicotakuya:20191124165745j:plain

プチコン4連載一回目

プチコンの連載が始まりました。プチコンmkII、プチコン3号と連載を続けてきましたが、今回初めての試みとして、公開キーを誌面に載せるようになりました。打ち込まないでネットからダウンロードするだけで済むようになってます。


日経ソフトウエア2020年1月号「プチコン4入門1」掲載プログラム

f:id:nicotakuya:20191125002555j:plain

日経ソフトウエア2020年1月号

 

ついでに、スマイルブームさんのプチコン4の紹介映像をご紹介。


『プチコン4 SmileBASIC』プロモーションビデオ【Nintendo Switch】