見出し画像

GP2040のボタン配置をAPIを直に叩いて変える。

2022/7/28 追記:curl での実行時に --http0.9 パラメータの追加
あと、説明はない記事を追加した。

はじめに

レバーレスコントローラーの基板を UFB から GP2040 に換装して、格ゲーの時は格ゲーのボタン配置、音ゲーの時は音ゲーのボタン配置、って変更しつつ遊べるようになって、うわー今までボタン配置の都合上遊べなかったゲームも遊べて楽しいなーって思ってたわけです。ですが。いちいち Web Config の画面を開いて、ちまちま入力するのが面倒くさい。という気持ちになってきました。

Web Config画面から設定を変えられるってことはきっと裏では最終的に一個 httpリクエストを送って変更してるだけだよね。と、思ったので、ちまちま調べました。

もしかするともっとわかりやすいやつがどこかにまとめられているのかもしれませんが、見つからなかったので DIY の精神です。

API を叩くのには curl を使ったので、この記事を参考にする人はインストールしてください。

以下、調べた結果です。が、自分が使いそうなやつしか調べてないので、他も細かく知りたい人は自分で調べましょう。また、以下コマンド中のピンアサインは自分の環境(一応、Pico Fighting Board を使ってます)での話なので、流用せずにきちんと確認してください。

API コマンド

コマンドは START を押下しながら GP2040 を起動して、Web Config画面が起動する状態で実行するようにしてください。あと、何か問題が発生してもれいによって自己責任でお願いします。

SOCD上優先

デフォルトは SOCD が上下入力でニュートラルになるようになっているので、リセット時などは後続で以下を実行して上優先に設定を変更します。

curl --http0.9 http://192.168.7.1/api/setGamepadOptions -XPOST -d "{"dpadMode": 0,"inputMode": 0,"socdMode": 0}"

キー配置(格ゲー)

デフォルトです。

格ゲー配置
curl --http0.9 http://192.168.7.1/api/setPinMappings -XPOST -d "{"Up":1,"Down":2,"Left":0,"Right":3,"B1":11,"B2":12,"B3":7,"B4":8,"L1":10,"R1":9,"L2":14,"R2":13,"S1":5,"S2":6,"L3":21,"R3":22,"A1":4,"A2":20}"

キー配置(音ゲー)

左側のボタンにて SOCD が入力に関わらないようにした配置です。

音ゲー配置
curl --http0.9 http://192.168.7.1/api/setPinMappings -XPOST -d "{"Up":1,"Down":12,"Left":11,"Right":13,"B1":0,"B2":2,"B3":7,"B4":8,"L1":10,"R1":9,"L2":14,"R2":3,"S1":5,"S2":6,"L3":21,"R3":22,"A1":4,"A2":20}"

設定のリセット

実行後自動で再起動するので、再度 Web Config画面を開きたい場合は START を押しっぱなしにしておきましょう。

curl --http0.9 http://192.168.7.1/api/resetSettings

さいごに

注意点として、設定を変更した際に、再度コントローラーを接続してから認識が遅れることがあります。待っていれば、正常に接続されますが、その前に慌てて繋ぎ直したりするとファームウェアを入れ替えないとコントローラーが認識されなくなるので注意しましょう。(何度かやった)

事前準備した設定にて、一瞬で間違えることなくボタン配置を変更できるので、ゲームやキャラによってボタン配置を変更したい人には重宝するのではないでしょうか。シェルなんかにまとめておくとより便利かと思います。以上です。

おわり。

この記事が気に入ったらサポートをしてみませんか?