なるほどえたきちのブログじゃねーの

チラ裏雑記帳

ポケモン過去作の解析とか乱数調整とかそこら辺。不定期更新。

FireBirdコントローラーの取説みたいなやつ

概要

結構前に作ったコントローラー基板FireBirdについて機能説明を殆どしていなかったのでざっくりと纏めます。
この記事に記載している機能は現時点での最新基板(v2.0)・ファームウェア(v2.01)のものです。

実装している機能・特徴の一覧

FireBirdコントローラーに実装している機能です。

Ginful製ホールセンサースティック搭載

理論上ドリフトが発生しない、磁気で入力値を読み取るホールセンサースティックという部品を使用しています。
ホールセンサースティックにも色々な種類があり、主にGulikit、K-Silver、Ginfulといったメーカーがプロコンスティックの形状に互換のあるものを販売しています。
Gulikit製のスティックボックスはK-Silver製のOEM品と見られ、ホールセンサー周りの設計のみ自社で行っているようです。
Gulikit製、K-Silver製のスティックは純正プロコンで使用されているアルプス製のスティックより若干背が高く、耐久性に関しても劣る部分が見られたため、FireBird v2からはスティック自体の耐久性も大幅に向上したGinful製のスティックを採用しています。

跳ね戻りフィルター搭載

スティックを弾くような操作を行った際、反対側にも入力が入ってしまう「跳ね戻り」という現象を抑制する機能です。
スティックの加速度等を監視して弾き入力を検知し、反対側の入力に対してフィルタリングを行います。
純正コントローラーを改造する跳ね戻りフィルターとは異なり、跳ね戻りと関係のない入力はそのまま操作に反映されるため、弾き入力の出やすさといった操作感の差異はそれらと比べて小さくなります。

高精度スティックキャリブレーション

スティックのスケーリング処理をかなり細かく行い、スティックを回す操作を行った際に綺麗な真円が描けるようになっています。
内側・外側のデッドゾーンの広さも調節可能です。

純正プロコンと同じ精度のジャイロセンサーを搭載

純正プロコンでも使用されているものと同じジャイロセンサーを搭載しています。
制御方法も純正プロコンと同じ方式なので、有線であることを除けばほぼ変わらない操作感で遊べます。

HD振動対応

プロコン型の互換基板で恐らく初めてHD振動に対応しました。
Switchで使用可能なコントローラーとして見ても、純正プロコンと同じモーターを使用してHD振動を再現したものはこれが初だと思います。
GulikitのKK3など、HD振動に関連する通信内容を読んで振動強度の調整を行っているものはありますが、実際の感触は大きく異なります。
ジョイコン/プロコンで使用されているアルプス製のハプティックリアクタが使用可能です。
また、ジョイコン用のモーターであればハンダ付け要らずでコネクタ接続が可能です。

USBデバイスモードを選択可能

XInput/DirectInput/SwitchプロコンといったUSBデバイスとしてPCやSwitchに接続することができます。
PCとSwitchで別々のデバイスモードを割り当てることができるため、PC接続時はDirectInputでSwitch接続時はプロコンといった使い方も可能です。
XInput/DirectInputでPC接続した際はポーリングレート1000Hzで動作するため、Switchプロコンの形状に違和感がなければPC用ゲームパッドとしての性能も悪くないかと思います(参考程度に、Switchプロコンは125Hz、PS系の純正コントローラーは250Hzで動作しています)。

RETRO-Cケーブル対応・FC/SFC/N64/GCの自動識別が可能

RetroSix、HandHeldLegendによって開発されているRETRO-Cケーブルに完全対応しています。
また、ハードウェアの自動識別機能も実装しているため、文字通り挿すだけで動きます。
ハードウェア毎に最大5種類のキーコンフィグを設定可能です。

ボタン・スティックLED搭載

各ボタンをフルカラーLEDで光らせることができます。
他の互換基板に搭載されているLEDと比べて薄いものを使用しているため、ラバーにLEDが干渉して操作感が変わるといった問題の対応も行っています。
単色だけでなく、ゲーミングデバイスによくありそうな様々なエフェクトで光らせることが可能です。

十字ボタンの誤反応対策

ゲームボーイ等のレトロハードで使用されているボタン接点の形状を参考にしてパッドの形状を見直し、純正プロコン等でも発生していた「単純な上下左右の操作が意図していない斜め入力に化ける」といった症状が起きづらくなっています。
Switchでゲームを遊ぶ際はそこまで気にならないかもしれませんが、RETRO-Cケーブル等でスティックが存在しない時代のゲームを遊ぶと斜め入力の誤反応は大きなストレスに繋がります。
但し、誤反応の起きやすさはラバーやボタンによって変わる部分なので、全く起きないことを保証することはできません。
純正のボタンとラバーを使用する分にはまず問題ないと思います。

純正ボタン基板との互換

使用する方は殆どいないかと思いますが、純正プロコンのボタン基板をそのまま使用したりFireBirdのボタン基板を純正プロコンで使用したりすることも可能です。
LED周りは動かないのでその点はご了承ください。
その為、eXtremeRateのLEDキットや背面パドルをFireBirdで使用することも可能です。
背面パドルとFireBirdのボタンLED制御を同時に使用することは基本的にできませんが、ここに関しては将来的に対応を検討しています。

ABXYボタンのマウスクリック化対応

ボタン基板にマウスクリック用のパッドを配置しているため、GCコン改造でよくある(?)ABXYボタンマウスクリック化を行うことが可能です。
ボタンの加工は少し大変だと思います。

ハードワイヤリング対応

コネクタに負荷を掛けたり激しい動きを続けたりした際にコネクタの接点部分が劣化し、接続切れという症状が発生する場合があります。
こちらはアルコール洗浄で一時的に改善することが殆どですが、同じような使い方を続けていれば再度発生してしまうため、根本的な解決は困難です。
この場合、基板とUSBケーブルを直接接続する「ハードワイヤリング」という改造を施すことでこの問題を解決することができます。

こちらは私個人でも改造代行を行っています。
シェルの大幅な加工やハンダ付けが必要な作業となるため、自身で行うのが不安な方は依頼して頂くことを推奨します。
bzl.booth.pm

スティックキャリブレーション

初期状態ではスティックのキャリブレーションが一切行われていない為、使用できるようにするにはコンフィグツールでこの設定を行う必要があります。
ツール上の『スティックキャリブレーション』を選択してキャリブレーションを開始します。

後はツール上の手順に従ってスティックの操作を行います。
初期状態では青い丸が動きませんが仕様です。




入力角度の誤差補正

八角ゲートのシェルを使用している場合は『入力角度の誤差補正』も使用した方がいいかもしれません。
ゲートに合わせて入力していても入力値が↓の画像のようにズレてしまう際に補正を行う機能です。

こちらもツール上の手順に従ってスティックを操作すると補正が完了します。


跳ね戻りフィルター

スティックの跳ね戻りを抑制する機能です。
左右のスティックを弾くと弾いた瞬間の入力値がビューアに表示されます。
スライダーを右に動かすとフィルターの強度を上げることができます。
基本的には3くらいで十分だと思います。

USBデバイスモード

PCやSwitch等の機器に接続した際、どのようなUSBデバイスとして認識されるかを変更することができます。
また、特定のボタンを押下しながら接続すると任意のモードで接続することが可能です。
何もボタンが押されていない際はコンフィグツールで設定したモードで接続します。

以下は使用できるモードの一覧です。
・Switch Proコントローラー
・XInputコントローラー
DirectInputコントローラー
GCコントローラ接続タップ


Switch Proコントローラー

おすすめ
Aボタンを押しながら接続
ポーリングレート:125Hz

Switchのプロコンと同じ方式で接続します。
振動の制御やジャイロセンサー等、有線プロコンで利用できる機能は一通り使用可能です。
振動の感触は純正とは異なりますが、ジャイロセンサーは純正プロコンと同じセンサーを利用しているため、ケーブルさえ気にならなければほぼ同じ感覚で遊べると思います。
純正プロコンで起こる有線接続時の遅延は発生しない為、GCコンやホリコンに近い感覚で使用できます。

DirectInputコントローラー

おすすめ
Bボタンを押しながら接続
ポーリングレート:1000Hz

殆どのPCゲームで使用可能なモードです。
コンフィグツールも動くので一番安定している説はあります。

XInputコントローラー

Xボタンを押しながら接続
ポーリングレート:1000Hz

稀にXInputしか対応していないゲームがあるので、その際はこちらを使用すると良いと思います。
XInputしか対応していないソフトよりもDirectInputにしか対応していないソフトの方が遙かに多いので、基本的にはDirectInputを使用する方が良いかと思います。
バイスとしての仕様上このモードで繋がっているとコンフィグツールで認識しません。
とはいえコンフィグツール使うのは初期設定時くらいなのであんまり問題にはならないかも?

GCコントローラ接続タップ

Yボタンを押しながら接続
ポーリングレート:125Hz

GCコン接続タップに繋がったGCコンとして認識します。
これを使用するケースは殆どないと思います。
ドライバによってはコンフィグツールで認識しません。

ファームウェア書き込み

左スティックを押し込みながらPCに接続すると『RPI-RP2』というドライブが認識されます。
ここに『FireBird vX.XX.uf2』(X.XXの部分はバージョンによって異なります)という名前のファイルをドラッグ&ドロップ等で書き込むとコントローラーとして再接続されます。

ドライブ認識時は基本的に新しいウィンドウが立ち上がりますが、ウィンドウが出てこない場合はエクスプローラーのドライブ一覧から直接開いて書き込んでください。