きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

GP2040-CEをUSBパススルー認証で接続解除されずにPS4本体で使用できるやり方をようやく理解した(気がする)

GP2040-CEはv0.7.4で特定の機器を接続することで「未認証機器は8分間で接続解除」する制限をクリアできる機能が追加されました。 しかしながら私はPS5は持っておらずまたPS4もほぼVO専用機になってるせいもあり、今まで特に必要性を感じていなかった為スルーしていました。

しかしv0.7.6*1にてXBOX SX/SS/OneについてもUSBパススルーで認証突破できる機能が付いたこともあり、ちょっと試してみようかという気になったので新しくGP2040-CE内蔵のアダプタを作るついでに検証してみました。

結果として以下2点を確認しました。

  • USBパススルー機能を利用することで8分間制限のない状態でPS4でGP2040-CEが利用できる
  • 認証用に接続できる機器に制限がある
    • Mayflash MagicBoots FPS v1.1 では期待通り動作した
    • 手元にあった別のコントローラーでは8分で接続が切れた(期待通り動かなかった)

少し悩んだこともあったため、確認した手順や設定内容について以下にメモを残しておきます。

注意点

ここに記載しているのは、現状の v0.7.6-RC2を用いて私の手元で検証した結果です。機器のバージョンやGP2040-CEのバージョンやビルドの差で結果が変わる可能性はあります。 またこの内容にそって同じように検証した結果、機材や部品を破損他なんらかの損害が発生した場合も私は一切責任を取ることはできない点ご了承ください。

またオフィシャルのドキュメントの内、特に以下については参照したうえで実行するのが良いのではないかと思います

使用機材やソフトウェアについて

以下のものを利用しました。

接続について

USBコネクタとRaspberry Pi Picoの接続は、使用する予定のないGPIO26と27を利用しました。

USB Raspberry Pi Pico
Vcc VBUS
D+ GPIO 26
D- GPIO 27
GND GND

公式ドキュメントのサンプルではGPIO0と1をD+/D-としてアサインしていますが、私は0と1はOLEDに使用したかったので26と27にしました。 なお、D+/D-にアサインするGPIOは必ず連番である必要があるようです。

Web Configuratorによる設定について

いくつかWeb Configuratorでの設定が必須となります。恐らく以下の順序で設定することになるかと思います。

※それぞれの設定ページで都度Saveをすること

  • USBコネクタを利用する端子の設定
    • メニューの Configuration - Peripheral Mapping にて設定
      • D+ に 26 を選択
      • 5VはGPIOからではなくVBUSから取得することにしたため Unsetを選択
      • Pin Orderは 'D+/D- -0' を選択(27をD-に割り当てるため)
  • USBパススルーを有効にする設定 -Configuration - Add-Ons Configuration より、PS Passthroughを有効に
    • 直上のPS4 Mode とは排他のようなのでそちらは無効にしておくこと
  • 入力モードの設定
    • Settings-Settingsより設定
    • Input ModePS4を選択し、表示されるプルダウンリストで Arcade Stick を選択

PS4との接続

PS4との接続については特にそのままです。 事前にUSBコネクタにMagicBoots を接続した上でPS4と接続し、PSボタン(…に相当するA1ボタン)をクリックして、しばらくするとOLEDの左上部分のモード表示が PS5 から PS5:AS に変化すればOKです。

あまりPS4用のコントローラを持っていないので他に試せたのは純正の『DUALSHOCK 4』とHORI製の『ワイヤードコントローラーライト for PlayStation 4』だけなのですが、それらではOLEDの表示がPS5:ASとならず、実際に8分経過で接続が解除され使用できなくなりました。

いくつかサイトやオフィシャルのdiscordのチャンネルなどでDUALSHOCK 4でも認証が通るような記述も見たと思うのですが、とりあえず手元ではうまくいきませんでした。

現状のまとめ

とりあえず私の手元では、特定の機器との組み合わせにおいてUSBパススルー機能を利用することでPS4本体で8分の制限を受けることなくGP2040-CEを利用することができることを確認しました。

v0.7.6で対応となったXBOX系については、XBOX Oneについてはそのうち動作確認をしたいと思っていますが、持っているはずの対応機器(MAGIC-X)が見当たらないので少し後回しになると思います。

(なおPS5は所持しておらずまた購入予定もないことから当面検証の予定はありません。またSeries X/Sは所指示しておらず購入予定もありませんので検証の予定もありません。)

*1:このエントリを執筆している2023/12/26現在はv0.7.6-RC2