- 概要
- 対応ハード
- 組み立て手順
- 初期設定
- コンフィグツール
- 実装している機能・特徴の一覧
- ファームウェア書き込み
- よくある質問
- スティックの遊びが大きい、ジャリジャリする
- スリープの解除、本体の起動ができません。
- ABXY、十字キーが硬いです。
- スティックが正常に動作しません。(動かない、ドリフトする、操作が反転するなど)
- 使用中、接続が切れてしまうことがあります。
- USB接続で遅延は発生しませんか?
- +/-/ホーム/キャプチャ/十字キーが反応しません。
- ファームウェアの書き込みができません。
- FC/SFCに繋げた際にフリーズすることがあります。
- N64に繋げた際に認識しないことがあります。
- GCコン接続タップで繋げるのとUSB接続はどちらが良いですか?
- 有線接続ができません。
- 無線接続ができません。
- PS5用タイトルでも使いたいです。
- おまけ
概要
結構前に作ったコントローラー基板「FireBird For Pro-Controller」について機能説明を殆どしていなかったのでざっくりと纏めます。
この記事に記載している機能は現時点での最新基板(v2.4)・ファームウェア(v2.12)のものです。
対応ハード
一通り動作確認済みです。
ここに記載していない海外版ハード、互換ハードなどでも動作する可能性があります。
・DirectInput、XInputが使用できるほぼ全ての環境(PCやコンバータ類など)
・ファミコン(拡張端子使用)
・ニューファミコン
・スーパーファミコン
・ニンテンドウ64
・ゲームキューブ
・Wii(GCコンとして接続可能)
・GCコントローラ接続タップ
・PlayStation 4
・PlayStation 5(PS4用タイトルのみ)
・Nintendo Switch
・Nintendo Switch 2
組み立て手順
こちらの記事に纏めてあります。
blog.bzl-web.com
初期設定
普通のコントローラーとして使う分には以下の設定だけ押さえておけば基本的には大丈夫です。
細かい所が気になったら他の部分も調整しましょう。
キャリブレーション
初期状態ではスティックのキャリブレーションが一切行われていない為、使用できるようにするにはコンフィグツールでこの設定を行う必要があります。
ツールはこちらからダウンロードしてください。
ツール上の『キャリブレーションを開始』を選択してキャリブレーションを開始します。
後はツール上の手順に従ってスティックの操作を行います。
入力角度の誤差補正
八角ゲートのシェルを使用している場合は『入力角度の誤差補正』も使用した方がいいかもしれません。
ゲートに合わせて入力していても入力値が↓の画像のようにズレてしまう際に補正を行う機能です。
こちらもツール上の手順に従ってスティックを操作すると補正が完了します。
跳ね戻りフィルター
スティックの跳ね戻りを抑制する機能です。
左右のスティックを弾くと弾いた瞬間の入力値がビューアに表示されます。
スライダーを右に動かすとフィルターの強度を上げることができます。
基本的には3くらいで十分だと思います。
振動モーター
組み立て時に振動モーターを接続した場合はこの部分を設定する必要があります。
初期設定ではモーターの種類が『振動なし』に設定されているため、実際に接続したモーターに合わせて変更してください。
コンフィグツール
Windows OS用の専用アプリケーションを使用し、GUI上でコントローラーの各設定を変更することができます。
変更した設定はコントローラー本体に記録されます。
基本キャリブレーション
コントローラーとして使用する上で必須となるスティックのキャリブレーションを行う項目です。
『キャリブレーションを開始』ボタンを押下した後、画面上の指示に従ってスティックを操作してください。
複雑な操作は必要なく、概ね10秒程度で完了します。
また、デッドゾーンの調整もこちらで行います。
この値は0~2047の間で設定可能です。
・内側デッドゾーン
スティックがニュートラル付近にある場合に、どの範囲まで入力を無効にするかを設定します。
値を大きくするとスティックのジッターや軸の緩みによる入力が無視され、意図しない動きを防ぎやすくなります。ただし、繊細な操作がやや難しくなります。
逆に値を小さくすると繊細な操作に敏感に反応しますが、スティックの劣化やノイズによって意図しない動きが起こりやすくなる場合があります。
・外側デッドゾーン
スティックを最大まで倒した際に、どの範囲から最大入力として認識するかを設定します。
この設定値は外周からの距離を基準にしています。
値を大きくすると、スティックを完全に倒し切らなくても最大入力が得られます。
逆に値を小さくすると、スティックを完全に倒し切るまで最大入力になりません。正確な最大入力を必要とする場合に有効ですが、操作がやや鈍く感じることがあります。
角度補正
入力角度の誤差を補正する機能です。
8方向の入力角度を基準に、ツール上で補正値を設定して意図した入力値に近付くようにします。
また、ツール上で自動設定することも可能です。『入力角度の誤差補正』ボタンを押した後、ツール上の指示に従って操作すると自動で適切な値が設定されます。
応答特性
ゲームコントローラーの特性を深く理解している人向けの機能となります。
基本的にデフォルト設定でも問題なく使用可能ですが、細かい部分で操作時の感覚を調整したい場合はこの設定を使用します。
・感度カーブ
物理的なスティック入力に対して、ゲーム上に反映する入力がどのように変化するかの反応曲線を調整する機能です。
デフォルトの設定はリニアで、入力値をそのままゲーム上に反映させるようにしています。
・スケーリング形状
デフォルトは真円形状に設定されていますが、主にFPSなどのゲームでは斜め方向の入力が弱く感じる場合があります。
この値を調整することで、四角形のスケーリングに近付けるような調整が可能となります。PS系コントローラーなどでは縦横25くらいの形状となる場合が多いです。
・RCフィルター
ホールセンサースティックにはジッターを抑えるために抵抗、コンデンサといった電子部品を使用したRCフィルターという回路が内蔵されています。
これは電気的なノイズを入力に反映させないために必要なものですが、機敏なスティック入力を必要とするゲームではこの影響で入力が鈍っているように感じる場合があります。
その場合、このフィルターの値をマイナス方向に設定することで、既に設定されているRCフィルターを打ち消すような効果が得られます。
逆に、スティックのジッターが大きく感じる場合はこの値をプラス方向に大きくすることで、RCフィルターの効果を増幅させることができます。
・マイナスデッドゾーン
デッドゾーンの調整ができない、もしくは0に設定できないようなゲームでもデッドゾーン0時のような入力感覚にしたい場合に使用する設定です。
この値を大きくすると、スティックを倒した際にゲーム内で反映される最低入力値が大きくなるため、ゲーム側のデッドゾーンに合わせて設定することで繊細な入力が反映されるようになります。
ジャイロセンサー
コントローラーに内蔵されているジャイロセンサーの設定を行う機能です。
スティック入力への変換設定もこの項目で行います。
初期状態ではキャリブレーションが行われていないため、ドリフトのような現象が発生する場合があります。
コントローラーを平らな場所に置いた状態で『キャリブレーション』ボタンを押すとLEDが黄色に点灯するので、それが消えるか元の色に変わるまで待機してください。
スティックエミュレート
ジャイロ入力に対応していないゲームでジャイロによる操作を行いたい場合に使用する設定です。
また、XInputといったジャイロ機能が存在しない設定にしている場合にも使用できます。
・使用するスティック
左右どちらのスティックにジャイロ操作を割り当てるかを指定します。
・使用方法
特定キーでのトグル操作か、特定キーを押している最中に使用できる仕様にするかを指定します。
・感度
共通設定の感度とは別に設定可能です。
スティック入力に変換する都合上、実際のジャイロ操作とは入力感度が大きく変わる場合があるため、この設定を使用して意図した入力に近付けることができます。
・デッドゾーン
応答特性のマイナスデッドゾーンに近い機能です。
ゲーム側で設定されているデッドゾーンに合わせて設定することでジャイロ操作時のみ繊細な入力を反映させることができます。
キーコンフィグ
対応しているハード別にキーコンフィグを5つまで設定することができます。
また、キー入力に関係する各種機能の設定もこちらで行います。
・トーナメントモード
主に大会向けの機能となります。
この機能が有効になっている際はプレイヤーランプが点滅し、十字キー/ホーム/キャプチャ/+/-といった一部のキーが無効化されます。
「ホームボタン長押しでトーナメントモード切替」を有効にすることでコントローラー単体でこの機能をON/OFFを切り替えることができます。
・XInput使用時にA/B、X/Yを反転する
Xboxコントローラーと任天堂のコントローラーではこのキーの位置が反転しているため、ゲーム内の表記と実際のボタンの見た目を統一させたい場合に使用する機能です。
・デバウンスタイム
ボタンにマウススイッチやタクトスイッチなどを使用している場合、スイッチの劣化によりチャタリングという現象が発生する場合があります。
数値を大きくすることで、ボタンが押されてからゲーム内で離されるまでの猶予時間を設定することができます。
跳ね戻りフィルター
左右のスティックに対して跳ね戻りフィルターの強度を設定することができます。0に設定した場合フィルターは完全に無効化されます。
また、この画面上でスティックを弾くと入力値が波形で表示されます。この波形を実際に確認しながらフィルターの値を設定することができます。
LEDカラーマップ
LED関連の設定を行う項目です。
ライティングパターンや色、光量などの設定が可能です。
振動モーター
使用している振動モーターの種類、振幅といった振動関連の設定を行う項目です。
デバイス設定
USBデバイス、Switchの認識カラー変更といった設定を行う項目です。
・USBデバイスモード
どのUSBデバイスをエミュレートするかを指定できます。
実際に指定できるのは以下のデバイスとなります。
・Switch Proコントローラー
・XInputコントローラー
・DirectInputコントローラー
・GCコントローラ接続タップ
・PS4コントローラー
※GCコントローラー接続タップに設定した状態ではコンフィグツール上での認識が行えません。また、XInput時は独自のプロトコルでツールとの通信を行うため、ツール側の動作が不安定になる場合があります。
・認識カラー設定
Switch接続時に認識されるカラーを設定できます。
・キーコマンド
コントローラー単体でのキー入力操作で設定変更を行うことができます。
実験的な機能となるため、詳細な説明は省きます。
・L+R+B+Y 追加ボタンへのリマッピング
・L+R+左スティック押し込み+右スティック押し込み スティックキャリブレーション
・L+R+[+]+[-] ジャイロキャリブレーション
実装している機能・特徴の一覧
FireBirdコントローラーに実装している機能です。
ホールセンサースティック搭載
理論上ドリフトが発生しない、磁気で入力値を読み取るホールセンサースティックという部品を使用しています。
ホールセンサースティックにも種類は色々ありますが、検証を行った上で軸の耐久性において最も優れていたメーカーのものを使用しています。
跳ね戻りフィルター搭載
スティックを弾くような操作を行った際、反対側にも入力が入ってしまう「跳ね戻り」という現象を抑制する機能です。
スティックの加速度等を監視して弾き入力を検知し、反対側の入力に対してフィルタリングを行います。
純正コントローラーを改造する跳ね戻りフィルターとは異なり、跳ね戻りと関係のない入力はそのまま操作に反映されるため、弾き入力の出やすさといった操作感の差異はそれらと比べて小さくなります。
スティックキャリブレーション
デフォルト設定でキャリブレーションのみ行った状態では、スティックを回す操作を行った際に綺麗な真円が描けるようになっています。
また、それに加えてデッドゾーン、入力角度の誤差補正、感度カーブ調整、スケーリング形状の調整など、スティック操作の感覚に影響する要素を調整することが可能です。
純正プロコンと同じ精度のジャイロセンサーを搭載
純正プロコンでも使用されているものと同じジャイロセンサーを搭載しています。
制御方法も純正プロコンと同じ方式なので、有線であることを除けばほぼ変わらない操作感で遊べます。
デフォルト設定では純正プロコンとほぼ同感度に設定されていますが、コンフィグツールで縦横の感度を変更することができます。
また、ジャイロ入力を左右どちらかのスティック操作に変換してジャイロ非対応のゲームでもジャイロでのエイムなどが行えるようになる、「スティックエミュレート」という機能を実装しています。
こちらはゲーム側のスティック入力の感度によって操作感が変わってくるので、ジャイロ単体時の感度設定とは別の感度設定を追加しています。
HD振動対応
プロコン型の互換基板で恐らく初めてHD振動に対応しました。
Switchで使用可能なコントローラーとして見ても、純正プロコンと同じモーターを使用してHD振動を再現したものはこれが初だと思います。
ジョイコン/プロコンで使用されているアルプス製のハプティックリアクタが使用可能です。
また、ジョイコン用のモーターであればハンダ付け要らずでコネクタ接続が可能です。
USBデバイスモードを選択可能
XInput/DirectInput/SwitchプロコンといったUSBデバイスとしてPCやSwitchに接続することができます。
PCとSwitchで別々のデバイスモードを割り当てることができるため、PC接続時はDirectInputでSwitch接続時はプロコンといった使い方も可能です。
XInput/DirectInputでPC接続した際はポーリングレート1000Hzで動作するため、Switchプロコンの形状に違和感がなければPC用ゲームパッドとしての性能も悪くないかと思います(参考程度に、Switchプロコンは125Hz、PS系の純正コントローラーは250Hzで動作しています)。
Switch、Switch2接続時はSwitch側のフレーム更新に同期してポーリングを行う機能を実装しています。
これによってフレーム単位の入力が正確に反映されるため、格闘ゲームなどでの操作精度がやや向上しています。
ProGCCのFrame Perfectと同等の機能になります。
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ケーブルを直接接続する「ハードワイヤリング」という改造を施すことでこの問題を解決することができます。
トーナメントモード
+/-/ホーム/キャプチャ/十字キーの無効化を行う機能です。
ホームボタン長押しでトーナメントモードのON/OFFが切り替え可能です。
ホームボタンを3秒間長押しするとプレイヤーランプが点滅してトーナメントモードに入るようになっています
— ぼんじり (@_3z8) 2024年5月12日
解除に関しても同様の手順です pic.twitter.com/jq5aAJdfDX
ファームウェア書き込み
既にファームウェアが書き込まれている場合、ツール側で最新ファームウェアへの自動更新が可能です。
そのため、下記手順は主に旧ファームウェアを使用したい方向けの説明となります。
左スティックを押し込みながらPCに接続すると『RPI-RP2』というドライブが認識されます。
ここに『FireBird vX.XX.uf2』(X.XXの部分はバージョンによって異なります)という名前のファイルをドラッグ&ドロップ等で書き込むとコントローラーとして再接続されます。
ドライブ認識時は基本的に新しいウィンドウが立ち上がりますが、ウィンドウが出てこない場合はエクスプローラーのドライブ一覧から直接開いて書き込んでください。
よくある質問
スティックの遊びが大きい、ジャリジャリする
Gulikitスティックを使用した古い基板の場合、使用による劣化でそのような症状が発生することが多いです。
こちらはスティックボックスを変更することで解決が見込めます。
ABXY、十字キーが硬いです。
完成品を購入した場合に使用されているラバーパッドが純正品でないと感触が変わる場合があります。
殆どは純正品より硬く、よりクリック感の強い押し感になるので違和感を感じた際は購入元のショップ等に相談した方が良いかもしれません。
自分で分解ができる場合は純正品に交換してしまうのも選択肢に入ります。
スティックが正常に動作しません。(動かない、ドリフトする、操作が反転するなど)
スティックのキャリブレーションがされていない初期状態では正常に動作しないため、組み立て後にPCツールを使用してキャリブレーションを行って下さい。
使用中、接続が切れてしまうことがあります。
USBポートの劣化・汚れが原因です。
接点洗浄剤を吹き付けるか、それでも改善しない場合はハードワイヤリングを検討してください。
ポートの劣化は使用環境や操作方法等に強く依存するため、基板買い換えで解決を図るのは推奨しません。(恐らくすぐに再発してしまうかと思われます)
こちらは現状報告がないため断定はできませんが、ハードワイヤリングをしていても問題が起こる場合はドックのUSBポート側が原因である可能性が高いです。
もし異常な頻度で接続が切れる(1分も接続が維持できない、など)場合は他の原因も考えられるため、ハードワイヤリングを施工したショップ等に一度見て頂いた方がよろしいかもしれません。
USB接続で遅延は発生しませんか?
発生しません。
純正有線プロコンに遅延が入ることから、USB接続=遅延があると考えている方が一定数いますが、これは厳密には異なります。
遅延の原因はコントローラー内部でキー入力情報を取得してから送信するまでの処理にあり、純正プロコンの場合はここで1Fの遅延が生じています。
純正プロコンはキー入力情報の取得を含むほぼ全ての処理を無線チップで行っており、有線接続時のみUSB通信処理を別のチップで行う仕様となっています。
そのため、無線チップからUSB通信用のチップにキー入力情報などを送信する必要があり、ここで1Fの遅延が生じているという訳です。
USB通信処理を含む全ての処理を1つのチップで行っているFireBirdでは上記問題は発生しません。
+/-/ホーム/キャプチャ/十字キーが反応しません。
トーナメントモードに切り替わっている可能性があります。
ホームボタンを3秒間長押しすることでこの機能のON/OFFを切り替えることが可能です。
また、トーナメントモードが有効になっているかどうかはプレイヤーランプが点滅しているかどうかを確認すると分かります。(有効時は点滅します)
ファームウェアの書き込みができません。
何もボタンを押さずにPCやSwitchに接続してコントローラーが認識されるのであれば、ファームウェアの書き込みは成功しています。
ブートローダーのストレージに書き込んだファイルが再接続時に見えないのは仕様です。
FC/SFCに繋げた際にフリーズすることがあります。
一部のゲームではコントローラー抜き差し時に挙動が不安定になることがあります。(SFCでは再現できていませんが、画面に一瞬ノイズが入ることがありました)
ゲーム中にコントローラーの抜き差しは行わないようにしてください。
N64に繋げた際に認識しないことがあります。
ゲームによっては起動時にコントローラーを認識しないケースがあることを確認しています。
その場合は本体のリセットボタンを押してください。
GCコン接続タップで繋げるのとUSB接続はどちらが良いですか?
通常のUSB接続の方が良いです。
GC用のRETRO-CケーブルはGC/Wiiなどでの使用を想定しています。
Switchでも使用は可能ですが、理論上は直接のUSB接続の方が遅延が少なくなります。(体感できるほどの差ではないと思います)
有線接続ができません。
デバイスモードが「Proコントローラー」になっている場合、Switch本体設定から「Proコントローラーの有線通信」をONにする必要があります。
もし大会などで不特定多数の本体に繋げて使用する場合は、デバイスモードを「DirectInput」として接続し、振動を使用する場合のみSwitch本体の設定を切り替えてから再度Proコントローラーとして接続することを推奨します。
特定のデバイスモードでの接続は以下の操作で行えます。
DirectInput
Bボタンを押しながらUSB接続
Proコントローラー
Aボタンを押しながらUSB接続
また、上記操作時にHOMEボタンを同時押しすることで根本的なデバイスモード設定を切り替えることが可能です。
設定切り替え後は何も押さずに接続した場合であっても設定したデバイスモードで接続されます。
無線接続ができません。
有線接続のみに対応したコントローラーとなるため、無線接続はできません。
また、今後無線接続に対応する予定もありません。
ProGCCの無線接続対応版が出ていることから気になっている方も多いかと思いますが、現状では充電が2-3時間ほどで切れてしまう、技適違反の無線チップが採用されているといった問題点があります。
後者に関しては工事設計認証を取ることで解決できますが、消費電力が純正プロコンの容量に見合わない問題は残るため、費用に見合う機能と言えるかは怪しい所です。
PS5用タイトルでも使いたいです。
現段階でPS5用の通信プロトコルを実装する予定はありません。
実装しても更新で使い物にならなくなる可能性があるため、対応優先度はかなり低めになると思います。
どうしても使用したい場合はコンバータ類の導入を推奨します。
おまけ
LRボタンのマウスクリック化に関しての質問が最近増えてきたので、私が製作する際に使用していたデータを置いておきます。
プリントしたプラグをLRボタン裏の穴に差し込んで使用します。
使用するプリンターやフィラメント等の相性によっては上手くいかない可能性もありますが、その辺は上手く調整して使ってください。
https://bzl-web.com/file/3d/firebird_d2ls_lr.stl
ABXYボタンのマウスクリック化に関してはボタンの高さをどうするか、遊びをなくすかどうかによって手順が結構変わってきます。
ボタン側の大幅な削り加工が必要になるケースもあるので、こちらに関しては気合でなんとかしましょう。