■ JOYMEGAアダプタとは
MSXでメガドライブ6ボタンパッドを使えるようにするアダプタをJOYMEGAアダプタと呼び
通常は2ボタンのATARIパッドとして使用でき、専用の手続き処理をすると6ボタン+STARTボタンを検出できるようになっています。
例えば、SofaRunでゲームを起動するときにJOYMEGAアダプタサポートを有効にできたりします。
■ FRSさんのジョイメガ回路図&利用法ページ
FRSさんのサイトで回路図が公開されているので誰でも自作可能です。
http://frs.badcoffee.info/hardware/joymega-en.html
昔からある各バージョンや、MSXからの6ボタン利用法、テストツールなどもあります。
JOYMEGAアダプタ自体はかなり昔からあったそうで、昔はトランジスタを利用した簡易的な回路だったのですが、それだとR800高速モードついていけなくなります。
データも微妙に化けやすいとの話なので、最新のRevision-3をお勧めします。
NC7ST04というチップを利用した回路になっているようです。

ダイオード 1N6711 または BAT85
インバータ NC7ST04
コンデンサ100nF
NC7ST04はDigiKeyとかで1個15円とかですから、延長ケーブルが800円で2本のとかあるので、1個当たり500円ぐらいで出来そうです。
■ 超簡易版(非推奨)
私が普段使っているのは、2020年にダイオードと抵抗で作った超簡易版です。
当然ながら高速モードではまともに動きません🤤
コネクタの中に無理やり組み込んでますが、最新回路の方が組み込みやすいかもしれませんンね。



HID-Testでの動作確認動画
https://video.twimg.com/ext_tw_video/1255686979183755265/pu/vid/960x720/gxaTAekGYPtJFftP.mp4
参考:
HRA!さんのJOYMEGAアダプタ実装記録(非推奨版)
https://hra1129.github.io/hardware/joymega/body.html
HRA!さんのトランジスタ版回線図
https://hra1129.github.io/hardware/joymega/files/JoyMega.pdf
FRSさんのJOYMEGAアダプタ解説ページ
http://frs.badcoffee.info/hardware/joymega-en.html
■ USB JOYMEGAアダプタ
Raspberry Pi Pico一個で出来る、USB JOYMEGAアダプタもあります。
こちらも基本は自作です。

(左のもう一個のラズパイピコはデバッガとして使用しているPicoprobeです)
今回は開発用にゲジアシ配線なので、常用には向きませんが、常用向けにもっと工夫することもできるのではないかと思います。
Raspberry Pi Picoは2個で1000円でした。
元はHRA!さんが作られたのですが、私の使用してるパッドに対応していなかったので、ちょっと改造して対応させたものを使っています。
ゲームパッド
BUFFALO BSGP815GY : スーファミタイプ。連射機能付き。利用できました。
ELECOM JC-U1608TBK: スーファミタイプ。連射機能付き。利用できました。
マウス
HP USB光学マウス (型番不明, HP製パソコンの付属品)
ELECOM M-BL27UB
ゲームパッド(MOD版追加)
SEGA メガドラミニ用コントローラー: 対応しました。
SONY PS4純正コントローラー : 対応しました。
HORI HORIPAD mini4 : 対応しました。
HORI FIGHTING COMMANDER for PS4 : PS3/PS4モードのみ対応しました。
XINPUTデバイスにも対応させたかったのですが、PICOのTinyUSBがあまりにもあれで、面倒くさくなってしまい、放置してます。
改造してた頃の日記:
https://t.co/kQD4bGhvn1
— うにの助うに太郎(うにスキー for MSX) (@uniskie2) 2023年10月31日
半田付けついでにRP2020を使用したUSB JOYMEGAも半田付け
抵抗10Ωを+5Vに入れないといけないみたいなんだけど在庫切れ… pic.twitter.com/djFBhSNyTb
■ 参考:JOYMEGA用6ボタンモード手続き
メガドライブでの仕様
https://web.archive.org/web/20240913005100/https://applause.elfmimi.jp/md6bpad.html

MSXでは
① STARTがMD9番→MSX7番
② SELSEL信号がMD7番→MSX8番
③ SEL信号がHigh/Low逆
という点に注意が必要です。
hraさんのJoyMega資料も参考にするとよいかもしれません
https://hra1129.github.io/hardware/joymega/files/JoyMega.pdf

ちなみにこうなっている理由ですが、
MSXではPSGの汎用I/Oポート通信機能を利用してパッドにアクセスしていて
① 読み取りできるのが1番~7番
② 出力が6~8番で、1~7は読み取りに使うので出力専用は8番
③ GNDが9番
④ MSXは未接続時の電圧がMDと逆という仕様になっているからのようです。
FRSさんのJOYMEGAアダプタページにもこれらの情報が書かれています。
https://frs.badcoffee.info/hardware/joymega-en.html
■ 6ボタンモードをMSXから扱う場合
① SEL出力を反転すると次の内部状態に進む
② SEL出力を切り替えて一定時間内に読む
③ 次にSEL出力を切り替える前に一定時間待つ
(SEL出力を切り替えてから一定時間以上経過すると初期状態に戻る)
というのを繰り返す感じです。

※ MSX側ではSEL(TH)のHi/Loは逆になります。
具体的な処理はFRSさんの「HIDtest and HIDlib v0.4 sources」を見てください。
https://frs.badcoffee.info/tools.html にあります。