SSパッド->X68変換器を作ってみる(その3)

MD3ボタン用の変換だが、予めX68側の出力を想定してデータを用意しておくように改良した。


たとえば、X68側の出力がHのときは、マイコン側はL時の入力データを用意しておく。
これだと出力がLになったときにはX68はきちんとLのデータが読める。
マイコン側は、ピン変化割り込みが入ったら、こんどはH時のデータを用意しておく。
これをH/L交互に繰り返す。


ただし、これだときちんと交互にH/L/H/Lとデータを読んでくれるゲームでないと、きちんと動いてくれない。
また、こんどはSEGAパッドの検出に失敗している*1
困ったものである。


上記の制限がつくものの、DiveOnではきちんとMD3ボタンパッドモードの変換で遊べるようになった。
昨日よりちょっと改良..なのかも。


あんまり時間かけてもしょうがないので、3ボタンモードはここで終わらせて6ボタンモードにとりかかる。
メガドラの6ボタンパッドは、3ボタンパッドの拡張になっていて、HLHLHLHLとクロックを4回上げ下げすることで、4bitx4で16bitのデータを吐き出すようになっている。
また、こちらはそれなりにウェイトをかけないと、拡張されたXYZのデータがきちんとでこないようだ。
つまりゲーム側のポーリング処理でウェイトをいれないと、いくらHLを繰り返そうと3ボタンパッドの2バンクのデータしか出てこないらしい。


X68で6ボタンパッドに対応しているゲームで、ポーリングにウェイトをそれなりにいれていてくれてることに期待してみる。
それならば3ボタンパッドよりも変換処理に余裕があるってことだ。

*1:だから最初はMDパッドをつけて起動して、わざわざ交換するというめんどうくさい方法でテストした