REVIVE USBをアナログXY軸に対応してみた

REVIVE USBという基板をアナログXY軸のゲームパッドに対応してみました。

REVIVE USBのジョイスティック機能のXY軸は0か1の値しか送ることができませんが、-128~127の範囲の値で送るように変更しています。アナログ入力を採用しているゲームには需要があるでしょう。

上記の写真のようなロータリーエンコーダを使用したゲームパッドにも対応しているので、興味がある方はご覧ください。

ただし、レバーをゆっくり倒した/はじいた等の動作には対応していません。内部的にはデジタル入力として受け取ったものをファームウェアでアナログ値に変換しているためです。

まずはREVIVE USBを用意

[Amazon.co.jp] REVIVE USB

REVIVE USBはビットトレードワン社から販売されている基板です。

価格は2500円ほど。

自作のUSB入力デバイスの制作を補助するもので、12個のピンがあり、簡単に言えば12個のボタンを接続できます。

ゲーム用途も考慮されていて、1秒間に1000回の信号を送るので遅延は1ms以下とほぼ意識せずに済みます(通常のキーボードやマウスは1秒間に125回しか送りません)。

ピンごとにマウスとキーボードとゲームパッドの3つの機能を割り当てることができ、常駐ソフトウェアなどもないので自由度が高いです。

ちなみに中身はマイコンで、ArduinoやRaspberry Piを知っている方は今回のような入力デバイスを作ることに特化したものと考えて構いません。


中身は組立キットになっていて、まずは組み立てる必要があります。実は組立済みの基板も売られているのですが、電子工作の経験がない方は自分で組み立てることをおすすめします。親切なマニュアルがありますし、結局半田付けしなければいけないのでこの時点で慣れておくべきです。

組立前と組立後

組み立てたら念のため認識されるかどうか確認するためにPCへ接続しましょう。mini-BタイプのUSBケーブルが必要です。ドライバがインストールされれば成功です。

ファームウェア書き換え

GitHubからファームウェアと設定ツールをダウンロードしてください。

リンク先に導入手順が載っているので、それに従ってファームウェアを書き換えを行うとアナログXY軸に対応したREVIVE USBが出来上がります。

書き換え済みのREVIVE USBをPCへ接続した状態で付属の設定ツールを起動すると各ピンにボタンを割り当てられるので、レバー下/レバー左等を割り当てて実際に動作するか確認してみてください。

設定ツール
値が動くことを確認(画像が一部乱れてますが気にしないでください)

これでアナログXY軸に対応した基盤が完成するので、あとは各ピンへ配線し、実際に使用するコントローラの中なりに入れましょう。

なお、配線作業では各ピンにマイクロスイッチ等をはんだ付けする必要があります。手順はこちらをご覧ください。

beatmania IIDX INFINITAS で使うには

ここから先はbeatmania IIDX INFINITASのコントローラ(プレコン、INFコン)を自作する方向けの内容です。

「beatmania IIDX INFINITAS」ではそのまま使うことができず、INFINITAS用のファームウェアに書き換える必要があります。

GitHubからソースコードを全てダウンロードし、自身でコンパイルすることになります。コンパイルのための環境はREADME.mdの「開発環境・開発言語について」に記載してあるので、そちらを参考にしてください(Visual C#は2010でなくともいいと思います)。

環境が整ったら、ソースコードの書き換え開始です。

ソースコードの書き換え

ここから先はVID/PIDを偽装することになるので、個人利用の範囲に留めてください。なお、INFコンのVID/PIDは各自調べてください。

ファームウェア側の「usb_config.h」、設定ツール側の「Form1.cs」にVIDとPIDを記述されている箇所があるので、それぞれINFコンのVID/PIDに書き換えてコンパイルし、REVIVE USBへファームウェアを書き込んでください。

書き込んだらドライバのインストールが始まります。

デバイスマネージャから該当するゲームコントローラを選択し、[プロパティ]-[詳細]-[ハードウェアID]の値の一部がINFコンのVID/PIDに変わっていれば成功です。

成功したら設定ツールを起動してデバイスが検出されることを確認し、ボタンの割り当てを行います。以下の画像を参考にしてください。

設定ツール

【P1・P2:スクラッチ】【P3~P9:1鍵~7鍵】

INFコンにはE1~E4キーという4つのボタンもありますが、残りのピンがP10~P12の3つしかないので1つ犠牲にすることになります。

対応表もまとめておくので使いたいボタンへ設定してください。

設定INFINITASの認識
レバー下スクラッチ左
レバー上スクラッチ右
B11鍵
B22鍵
B33鍵
B44鍵
B55鍵
B66鍵
B77鍵
B9E1
B10E2
B11E3
B12E4

B8は使われていません。

LR2などで使う場合はスクラッチにレバーではなくボタンを割り当てなければいけないので、その時だけB8と犠牲にしたボタンを割り当てるといいでしょう。

設定を終えたらINFコン互換のREVIVE USBの出来上がりです。

注意点

公式のコントローラを接続したことがあるUSBポートに接続すると正常に動作しないことがあります。ドライバが異なるからです。その場合はインストール済みのドライバを削除してから再接続すると治ります。逆も然りです。

2 件のコメント :

  1. 質問させてください。
    ゲーム用のアナログジョイスティックについても、上記のファームウェアの書き換えで対応するのでしょうか?

    返信削除
    返信
    1. ご質問ありがとうございます。

      通常のゲーム用の2軸アナログジョイスティックの設定は記事内リンク(https://github.com/ushui/REVIVE_USB_RENC_AL_Debounce)のリンク先に従って書き換えるだけで対応できます。
      記事内のごちゃごちゃした話はあくまで「beatmania IIDX INFINITAS」向けの内容です。
      確かに誤解を招きそうな書き方をしているので、土日辺りに記事を書き換えておきます。

      削除