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

本日はMD6ボタンパッドのルーチンを作ってみました。
全然動かない。
あと6ボタン対応ゲームはディスク枚数が多くて、起動に時間がかかりすぎ、いちいちテストをやってらんない。


データ出力のタイミングがズレてるらしく、小パンチ(Xボタン)連打になったしまう。
XYZは三回目のLエッジのあと出力するんで、その前の出力したデータによってX押下となってるくさい。
ウェイトもいれていないので、どうも4MhzPICだけではMD変換は厳しいってことみたいだ。


20MhzのAVR MEGA88に移行しプログラム書きなおそうかと思い、ざっとpdfファイルに目を通し、ピン変化割り込み時のタイミングチャートを見てみたけど、あまり芳しくない。
AVRは、ピン変化を検知してから割り込みが入るまで4クロックを要し、その後に割り込みベクタのアドレスにジャンプなので、picよりも応答性能は8クロック以上はよい*1わけだけど、結局のところピン変化後〜割り込みが入るまでに4クロック遅れることにはかわりがない。っていうかほとんど全てのマイコンでも似たようなもんだと思う。


上の割り込み時のCPUの一連の動作の後で、ようやく記述した割り込み処理を行い、割り込みから抜け、ピン変化が変わるのを待って再度割り込み待ちという処理を8回繰り返すのだけど、X68はそんなの待ってくれずLHLHLHLHと連発してくる。


そういや、市販でもSS/PSパッドのMD変換器がない。無理だったんだな。
どうしてもってなるとと外付けのステートマシン用意するってことになるのかな??
100円500円ですまなくなってくる。ヤメヤメ。




3ボタンモードの対応だけなら出力に74HC157を付け、8bitのデータのうち4bit切り替えれば、バンク切り替えのタイミングの厳しいところはハードが解決してくれるので、全く問題なくなる。


でももともと欲しかったのはMD6ボタンパッドであり....ああもう面倒くさい。
CPSファイター->MD変換機の仕様とかどっかにおちてないかな。

*1:加えてAVRはPICと違って1クロック1サイクル、同クロックなら単純に4倍速です