昔のゲーム用コントローラでメガドライブミニを楽しみたい その2
メガドライブミニに自作コントローラーを接続するには?(2020/4/19)

戻る

1.メガドライブミニの調査

WEBで調べてみたところ Arduino Leonardoを使って、すでにメガドライブミニにJoystickを接続している
記事メガドライブミニ を ジョイスティック で遊ぶ ジョイスティックアダプターの作成があり、
メガドライブミニの情報やライブラリの設定、不具合対処法など重要な情報が公開されておりました。

またこの記事のリンク先にあるJoystickMDに Arduino Leonardo/Pro Micro専用でメガドライブパッド(3ボタン)を
USBパッドとして利用するスケッチがあり、利用ライブラリや回路図を参考にさせていただきました。

6ボタンパッドの読出し方法については、 こちらの解析情報セガ メガドライブ 6ボタンパッドの読み取り方
参考にさせて頂いています。

これら貴重な情報を公開していただいている方々には感謝の念しかありません。(本当にありがとうございます)


2.メガドライブミニに接続するために必要なもの

調べた情報をまとめてみると、メガドライブミニには特定のVendor ID(以下VID)とProduct ID(以下PID)を
もつ機器しか接続できない事が判りました。具体的にはArduino Leonardo/Pro Microを使うにあたり、開発環境
(Arduino IDE)をインストール後に、「boards .txt」を編集してVID/PIDをメガドライブミニに合わせてやる
必要があります。

以下、Windows版(Arduino IDE 1.8.X)での手順を記載します。

(1)Arduino IDE(1.8.X)のインストール
まず、最新のArduino IDE(現時点で1.8.12)をここからDownloadしてインストールします。
ダウンロードの際に寄付の確認画面が出ますが、「JUST DOWNLOAD」を選択する事で無料でも利用できます。
インストーラ同梱版でインストーラを起動して指示に従うか、zip版を任意のフォルダに展開することでIDEのインストールは完了します。

(2)ボードの指定
Arduino IDE(arduino.exe)を起動して、「ツール」→「ボード」→「Arduino Leonardo」を指定します。


その後、Arduino Pro Micro互換モジュールをUSB接続すると「Arduino Leonardo」が認識して
COMポートから見えることを確認します。(この確認は飛ばしても構いません)


(3)Arduino IDEフォルダ内にある「boards .txt」を編集する
Arduino IDEをインストールしたフォルダをエクスプローラで開きます。
インストール時にzipを展開したフォルダを直接開くか、
インストーラ同梱版の場合は、作成されたアイコンを右クリックして「ファイルの場所を開く」を選択します。


IDEがインストールされたフォルダが開くので、その配下「\hardware\arduino\avr」フォルダ内の
boards .txtを見つけます。



boards .txtをマウスで右クリックして「開く」または「編集」を選択します。


(4)VID/PIDを変更する
メモ帳またはエディタで開いて、以下の文字列を検索/変更します。

○boards .txt内のVID/PID設定(下記文字列)を検索
 leonardo.build.vid=0x2341
 leonardo.build.pid=0x8036

○boards .txt内のVID/PIDを表の(1)、(2)いずれかの内容に変更して保存します。
元の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

あとは、Arduino IDEからArduino Leonardo/Pro Microに対してスケッチ書き込みを行うとVID/PIDが変更されます。


3.メガドライブミニをJoystickで操作するには?

PID/VIDを変更したら、あとは利用するJoystickライブラリに合わせて操作ボタンの指定が必要になります。

(1)Joystick libraryの設定
今回利用したのはArduino Joystick Libraryです。
リンク先の「Installation Instructions」から、「master.zip」を選択して、zipファイルをダウンロードします。
次に、Arduino IDEから「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール...」を選択。
ファイルメニューが開くので先ほどダウンロードしたZIPファイルを指定して、インストールを行っておいてください。


(2)Joystick libraryでの操作指定
メガドライブミニの各操作ボタンに対応する、ライブラリ側のボタン番号は下記表の通りです。
番号メガドライブミニボタン名SEGA純正パッド模擬時の番号DragonRise製パッド模擬時の番号
1A21
2B12
3C54
4Start99
5X30
6Y03
7Z45
8MODE88

(3)方向キー操作指定
方向キーはアナログスティック扱いとなり、上下はY軸、左右はX軸での制御を行います。
値の範囲は0~255でセンター指定は127となりますが、この値だとメガドライブミニに接続に
特定方向に入りっぱなしになる問題が生じる時があり、その場合()内に記載したように0~511の
範囲指定とすると問題が生じなくなるようです。
番号方向キー名制御関数名
1UP(上).setYAxis()押下:0、離した:127(押下:0、離した:255)
2DOWN(下).setYAxis()押下:255、離した:127(押下:511、離した:255)
3LEFT(左).setXAxis()押下:0、離した:127(押下:0、離した:255)
4RIGHT(右).setXAxis()押下:255、離した:127(押下:511、離した:255)

と言うことで概ね準備が整いましたので、実際にメガドライブのパッドを接続してみます。
次は、メガドライブ用パッドをメガドライブミニに接続(2020/4/20)


戻る