セガマウスの互換品を作る

まだ開発途中ですが、「セガマウス」として認識するパッド変換器を作ってみました。需要が全くないので、たぶん世界初の試みです。

 

www.youtube.com

 

セガマウス」というのは、その昔、セガが発売したメガドライブ専用のマウスです。あまり出回っていないのか、中古品はプレミア価格になっています。

 

[セガハード大百科] メガドライブ対応ソフトウェア(セガ発売)

公式ページの情報によると、セガマウスの対応ソフトは全部で15本

そのうち、メガCD用のマウス対応ソフトはこちら。

  1. ライズ オブ ザ ドラゴン
  2. シムアース
  3. スイッチ
  4. 笑ゥせぇるすまん
  5. 夢見館の物語
  6. モンキー・アイランド ユーレイ海賊大騒動!
  7. マイト アンド マジックⅢ
  8. 真・女神転生
  9. ダンジョンマスターⅡ スカルキープ
  10. うる星やつら ディア マイ フレンズ
  11. スターブレード

カートリッジ形式のマウス対応ソフトは以下の通り。

  1. マーブルマッドネス
  2. 信長の野望 全国版
  3. 雀皇登竜門
  4. ロードモナーク とことん戦闘伝説

、、、たった4本。少なすぎる。ここで、一番有名なのは「マーブルマッドネス」ですが、結構なプレミアソフトです。

この他、海外のGENESIS用でマウス対応のソフトがあるかもしれません。

 

f:id:nicotakuya:20210124224759p:plain

雀皇登竜門

動作チェック用として「雀皇登竜門(1993)」を買ってみました。セガマウスに対応させる遊び心が、さすがゲームアーツという感じ。

 

セガマウスのプロトコルはSGDKの「joy.c」が参考になります。おそらく、世の中にある資料はコレしかないです。

1フレームあたりに、メガドラに対して、10ニブルを送ればいいだけなのですが、、、

 

ソースを読んでいると、ポートの入出力を変更している箇所を発見。

なんと、セガマウスの通信時に限り、ゲームパッド用ポートの9番ピンが出力(メガドラ→マウス)に変わります。通常時は入力です。間違って信号が衝突したら回路が壊れそう、と思うかもしれませんが、それを見越してか、メガドラ本体の9番ピンと7番ピンには抵抗が入っています。

 

joy.cを元にタイミングチャートを書いてみました。同期の方法が複雑です。

最初の2ニブル(0x0、0xB)でメガドラは接続デバイスが「セガマウス」であると判断できるようです。

2ニブル目の最初だけ7番ピンの変化を合図に送信します。

それ以降は9番ピンの変化を合図に送信します。

6番ピンを反転する(9pinと同じ論理にする)ことで、データの格納が終わったことを伝えます。実際に試した感じでは、データ格納から1マイクロ秒くらい待ってから、反転しないとデータ化けが起きてしまいます。

7番ピンは得に役割が無くて、それなら、7番ピンと9番ピンは1つにまとめることができるのでは? と思ってしまう。これだけだと謎ですが、マルチタップへの応用を考えた仕様だと思います。

 

SGDKに付属する「joy-test」というサンプルプログラム。これをROMに焼けば、実機でセガマウスを検出できます。SGDKのデバイスドライバは優秀で、マウスの認識も自動的に行ってくれます。マウスカーソルの累積的な座標を自動的に算出してくれます。

megamouse」に誤植しているのはご愛敬。、、、って、思ったら、GENESISだとMegamouseが正式名だそうです。

 

変換器を使ってみた感じでは、デュアルショック2のアナログレバーだとマウスカーソルは操作しにくいです。ゲームパッドじゃなくて、マウスで入力できたらいいですね。当たり前ですが。

 

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com