セガタップの読み取り実験


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

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

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コネクタを分解

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

 

f:id:nicotakuya:20191201024940j:plain

ニッパーで切断

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

 

f:id:nicotakuya:20191201025037j:plain

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

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

これで完成です。

 

f:id:nicotakuya:20191201025152j:plain

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

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

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

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

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

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

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

f:id:nicotakuya:20191127233529j:plain

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

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

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

 

f:id:nicotakuya:20191127233230j:plain

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

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

「joytest」特有の仕様なのかどうかわかりませんが、一定時間内にメガドラと通信を行わないとメガドラからSEL信号が出力されなくなってしまいます。そのため、立ち上がりに時間のかかるArduinoを使うことができません。今回はAtmel Studioを使っています。

 

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ボタンに割り振ってしまったので、わけがわからなくなってしまいました。ボタンの配置はファームウェアを書き換えることで自由に変更することができます。

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

https://sites.google.com/site/yugenkaisyanico/diy-megadrive-gamepad
 

 

 

日経ソフトウエア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号と連載を続けてきましたが、今回初めての試みとして、公開キーを誌面に載せるようになりました。打ち込まないでネットからダウンロードするだけで済むようになってます。

f:id:nicotakuya:20191125002555j:plain

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

 

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


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

スーパーファミコンのゲーム パッドをメガドライブ(ミニじゃない)に接続する

f:id:nicotakuya:20191122125713j:plain

スーファミゲームパッドメガドラに接続する

ミニじゃないメガドライブスーパーファミコンのゲーム パッドを接続するアダプタを作ってみました。

f:id:nicotakuya:20191122150507j:plain

74HC157

メガドラの3ボタンパッドに入っているのが「74HC157」です。千石電商で70円で売ってます。

 

f:id:nicotakuya:20191122130042j:plain

Arduinoで信号をパラレル化しています

こちらに回路図を公開しました。

https://sites.google.com/site/yugenkaisyanico/connect-sfc-gamepad-to-md