2018年3月22日木曜日

うちのアーケード基板用コントローラの話

公私共に忙しくなってきて、ちょっと暫くはアップデートできそうにないので。この辺りで一度整理しておこうかと。ウェブで色々公開している人達は仕上げも凄い綺麗なんだけど、僕はそっち方面にはズボラなのでご容赦。ものすごーく雑です。

まず、コントローラの基本的な部分。


Xbox360向けのコントローラを安く入手して改造してあります。この辺りの詳しい解析結果なんかはQiitaの記事Xbox360のコントローラをばらして*Piに繋げるにまとめてあります。


で、裏面を見るとこの通り。電源刺すと単体でHDMI出力できて、そのままゲームが遊べたりする(笑)。X68000のエミュレータが動くので超連射68kとか結構快適。実体はRetrOrangePi / OrangePi ONEですが、追加で色々とドライバが突っ込んであります。この辺りはGitHubでopipadとして公開しているもの。GPIOに繋いだコントローラがそのままjoystickに見えたり、モードを切り替えるとキーボードエミュレーションしてくれたり。あと、ドライバ自体に連射サポート機能がついてます。Xboxボタン押しながら各ボタンを押すと連射ON/OFFみたいな感じで。連射が入ってるボタンはLEDでわかったりします。ドナーの機能をフル活用してる!またUSBでPCに繋げる事でUSBコントローラとしても認識されるようになってます。


でまぁ、我が家の場合、JAMMA用電源側にUSBコントローラ挿せるようにしちゃってたんで、そっちにUSBで挿せばそのまま使えはしたんですが。JVSに繋げる時に直接あった方が便利かなーってのと、電源側には1Pしか刺せなかったので。2P側として挟めると便利かなーとか思って。いつもボッチで遊んでるけど!でも2P側で入ったほうが簡単なシューティングってそこそこあるし。って事でJAMMAコネクタ用のブリッジが2種類ついてます。

ここはちょっと配線……ってわけにはいかなくて、Orange PiのGPIO側と共通で繋がっているためにちょっと面倒な事に。整流なりしときゃよかったんですが直結しちゃってるんで、Orange Piの電源が入ってないとGND側に1kΩくらいで吸い込まれる。なので、わりとで電気もったいないなーって思うくらいの値でpull-upしてあげる必要がありました。忘れないうちに……って書いてるのにもう忘れてる!たぶん100とか200Ωくらい。でもまぁ、このおかげで、ほとんどのケースはこのコントローラで用が足りちゃってます。


あと使ってるうちにどうしても欲しくなって付けちゃったもう1つの便利回路がコレ。連射装置+α。高橋くんと命名してGitHubに公開してあります。ATMEGA-88があれば作れるので数百円くらい。主に3つ機能があって、

  • ボタン1〜4の連射
  • 4ボタン・6ボタン配置の変更
  • 2ボタン時に連射ボタンを別割り当て
という。あまり融通は利かないんですが、よくあるユースケースはカバーしてる感じの機能になってます。まぁ、完全に自分の好みに合わせて作ってますね。

連射については速度切替がついていて毎秒10/15/20/30連射の切り替えが可能。

4ボタン・6ボタン配置の変更ってのは分かりにくいんですが……コントローラのボタン配置って

         (X)    (Y)
   (B)
        (L)    (R)
  (A)
みたいになってて。これを通常は
         (3)    (4)
   (2)
        (5)    (6)
  (1)
この配置で使ってる。これだとNEOGEO系の4ボタンで遊びやすいし、シューティングで2ボタン、3ボタンでもこっちの配置の方が手の形に馴染む。

で、6ボタンモードをONにすると
         (2)    (3)
   (1)
        (5)    (6)
  (4)
こっちの配置に切り替わる。CPS2で6ボタンのゲームやろうと思うとこっちの配置でないと辛い。Atomiswave系で使いやすいのはケースバイケースかなぁ……5ボタンはほとんどやり込んでなかったので特に好みはないし、BAXLYみたいな配置だと今の作りじゃ実現できない。そもそもその時期ゲーセン行ってないので、本物がどう配置されてたのか知らない。

で、これらの機能とは独立して2x2ボタンモードってのがあって。このモードをONにすると、ボタン3/4の入力がボタン1/2にも反映される。利用方法としては2ボタンで手連射が必要なシューティング対策。2x2ボタンモードONでボタン3の連射をONにすれば、ボタン3が連射付きボタン1として機能する。作戦名ラグナロクとかGダライアスVer.1向けにどうしても欲しくて……。

とまぁ、そんな感じ。


あとオマケ。麻雀用のコントローラ。配線面倒だった。麻雀コネクタからJAMMAへの変換ブリッジも兼ねてる。

だいたいコントローラ回りでやるべき事は尽きてきた感じで。あとは麻雀コネクタをJVSの変換ボードに繋げるようにするくらいかな。そうそう、JVS変換ボードのionaも、少しアップデートして特殊なコントローラを要求しないnaomiのゲームなら試した限りは通るようになってます。思った以上にデバイス名のSEGA〜をチェックしてるゲーム多いみたいだったけど。あと2Pがないと駄目とか。なので他社のJVS基板では弾かれる可能性は高いなー。まぁ、そこはArduinoになってるんで、カジュアルにデバイス名を修正して対処、と。

0 件のコメント: