※2022/01/09追記
この連射パッドは数分に一回数秒間コントロールが効かなくなる現象が起きます。
※2023/01/10追記
私が作ったこの連射パッドより高機能で、コントロールが効かなくなる現象が起きない物を @jiikko さんが作られました。以下のURLからご参照ください。
https://github.com/splaplapla/procon_bypass_man
jiikkoさんが作られた物も私のと同じくラズベリーパイ4を使用されているので、私の記事を見てラズベリーパイ4を買ってしまったという方も無駄にはならないことでしょう。
デモ動画
これのやり方を説明していきます。
用意するもの
- 一般的なスプラトゥーン2をする為の環境
- Switchをドックにセットして、外部ディスプレイを使用、
コントローラーはProコントローラーを使用、ネットはWi-Fiまたは有線LANでスプラトゥーン2をプレイしているものとします。
- Switchをドックにセットして、外部ディスプレイを使用、
連射パッドを作成するためにさらに必要なものを書きます。
- パソコン(WindowsかMac)
- MicroSDカードにラズパイ用OSをインストールするのに必要です。
- 僕はWindowsなのでこの記事はWindows用の説明になります。
- (パソコンにMicroSDカードスロットが無い場合は)MicroSDカードリーダー
- Raspberry Pi 4 Model B
- 僕はメモリ4GB版を使用しています。
- MicroSDカード32GB
- これにラズパイのOSをインストールします。
- 3A(アンペア)、5V(ボルト)流せるUSB Type-A to Type-C ケーブル
- ドックとラズパイを繋ぐ為のケーブルです。ラズパイとプロコンを繋ぐケーブルも必要です(つまりUSB Type-A to Type-Cケーブルは2本必要です)がプロコン付属の物がある事でしょう。USBのバージョンはUSB2.0のケーブルを使用していますが、多分USB3.0でも大丈夫でしょう。参考商品
- ディスプレイ
- ラズパイの画面を表示するためのディスプレイです。
- HDMI接続ができるもの。コンセントから電力が取れるもの。
- Micro HDMI端子を持つHDMIケーブル
- ラズパイの映像出力ポートはMicro HDMIなのでこれが必要です。参考商品
- キーボード
- ラズパイに接続するためのものです。USB接続、有線接続のもの。
- マウス
- ラズパイに接続するためのものです。USB接続、有線接続のもの。
やり方
MicroSDカードにOSをインストールする
パソコンでの作業です。
MicroSDカードにインストールするOSは「Raspberry Pi OS」です。最近の公式的なインストール方法は「Raspberry Pi Imager」を使うことですが、僕がこれを使ってインストールしても、エクスプローラーを開いたり、パイソンコードを編集しようとしたりするとラズパイの電源が落ちてしまうなど不具合がありました。NOOBSを使ってインストールする方法もありますがこれも不具合がありました。
うまくいった方法はbuster版Raspberry Pi OSを「balenaEtcher」を使ってMicroSDカードにインストールする方法でした。その方法を書いていきます。
MicroSDカードをパソコンに接続する
MicroSDカードをパソコンに接続してください。パソコンにMicroSDカードのスロットがない場合、MicroSDカードに対応しているカードリーダーを使用してください。
「SDメモリーカードフォーマッター」をパソコンにダウンロードする
まずパソコンで↓このリンク先を開きます。
https://www.sdcard.org/ja/downloads-2/formatter-2/
Windowsの人は「Windows用ダウンロード」、Macの人は「Mac用ダウンロード」をクリックします。
(以下Windows用の説明になります)
パソコンにSDメモリーカードフォーマッターのzipファイルがダウンロードされたと思います。
そのzipファイルを展開するため、そのzipファイルを右クリックして「すべて展開」をクリックします。
展開されたフォルダが生成されるのでそれをダブルクリックして中に入ります
このexeファイルをダブルクリック。SDメモリーカードフォーマッターをインストールする手順に入りますが、途中パソコン(Windows)の管理者のパスワードの入力を求められますので、入力してください。
「I accept the terms in the license agreement」をクリックしてNextをクリック。
MicroSDカードをフォーマットする
SDメモリーカードフォーマッターが起動しますので、「カードの選択」でRaspberry Pi OSをインストールするためのMicroSDカードを正しく選択してください。
「カード情報」で種類がSDカードであることや、容量が(32GBのMicroSDカードを使う場合は)だいたい32GBであることを確認してください。
(USBで外付けハードディスク等がパソコンに接続されていると間違ってそれを選択してフォーマットしてしまうと大事なデータが消えてしまいますので間違えないようにして下さい)
フォーマットをクリックしてください。
これでMicroSDカードがフォーマットされて、ラズパイOSをインストールする準備ができました。
Raspberry Pi OSをパソコンにダウンロードする
↓このリンク先から「2021-12-02-raspios-buster-armhf.zip」をダウンロードするのでリンクを開いてください。
http://ftp.jaist.ac.jp/pub/raspberrypi/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2021-12-02/
「2021-12-02-raspios-buster-armhf.zip」をクリックしてダウンロードしてください。
balenaEtcherをパソコンにダウンロードしインストールする
↓このリンク先をパソコンで開いてください。
https://www.balena.io/etcher/
「Download for Windows (x86|x64)」をクリックしてダウンロードしてください。
(Macの方は「Download for MacOS」ボタンになっているんじゃないかと思います)
balenaEtcherをインストールする為のexeファイルをダブルクリックしてbalenaEtcherをインストール開始します。
(今回もパソコンの管理者パスワードの入力が必要になる場面があると思いますのでパスワードを入力してください)
MicroSDカードにOSをインストールする
balenaEtcherがインストールされて、balenaEtcherが起動したので「Flash from file」をクリック。
先程ダウンロードした「2021-12-02-raspios-buster-armhf.zip」をクリックして選択し、「開く(O)」をクリック。
真ん中がSDカードで(32GBのMicroSDカードを使っている場合は)ほぼ32GBの物が選択されていることを確認し、右の「Flash!」をクリック。
MicroSDカードにRaspberry Pi OSがインストールされます。
MicroSDカードにRaspberry Pi OSがインストールされると、このようなものが表示されることがあると思いますが、「キャンセル」をクリックしてください。
右上の「×」をクリックしてbalenaEtcherを終了してください。
パソコンからMicroSDカードを取り出してください。
SwitchとSplatoon2の設定をする
Switchを起動してください。
Proコントローラーの有線通信をONにしてください。
Splatoon2を起動してジャイロ操作をONにしてください。
Switchは電源はつけたままこの画面で待機させておいてください。
Raspberry Piをセットアップする
先程Raspberry Pi OSをインストールしたMicroSDカードを「Raspberry Pi 4 Model B」のMicroSDカードスロットに差し込んでください。
ケーブルはこのように接続してください。
接続されずポートのそばに置かれているだけのケーブルは後ほどそのポートに接続することを示しているだけなので、まだ接続しないでください。
マウスとキーボードをUSB Type-Aポートに接続してください。
MicroHDMIケーブルでラズパイのHDMIポート0とディスプレイのHDMIポートを繋いでください。
プロコントローラーはまだUSB Type-Aポートに接続しないでください。(これからラズパイをセットアップするので、その際に電力不足によって電源が落ちるのが怖いので)
セットアップ作業の前にもう少し分かりやすくと思い模式図を作りました。こんな感じでケーブル類は接続してください。(模式図ではプロコンとラズパイが接続されていますが今はまだ接続しないでください。)
SwitchドックとラズパイUSB Type-Cポートを繋ぐケーブルは3A(アンペア)5V(ボルト)流せるケーブルを使ってください。そしてType-A側をドックに接続し、Type-C側をラズパイのUSB Type-Cポートに接続してください。するとラズパイが起動します。
ここからはラズパイでの作業になります。
ラズパイの初回起動時にはこのようなウィンドウが表示されます。これを設定していってセットアップ作業を完了させます。
この画面ではNextをクリック。
この画面ではCountryの右の逆三角形をクリックして、Japanをクリックします。
Nextをクリック。
パスワードを決めてくださいとのことです。使いどころは分かりませんがとりあえず決めて入力そしてNextをクリック。
Wi-Fiに接続してくださいとのことですが、今このセットアップ時に無駄に電力を消費することは避けたいのでSkipをクリック。
電力を使いたくないのでBluetoothをオフにします。右上のBluetoothマークをクリック。
ラズパイをガジェットモードにするためにターミナルを開いて操作をします。
左上のターミナルアイコンをクリック。
ターミナルに
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
と入力してEnterキーを押します。
さらに
echo "dwc2" | sudo tee -a /etc/modules
と入力してEnterキーを押します。
そして
echo "libcomposite" | sudo tee -a /etc/modules
と入力してEnterキーを押しますとこうなります。
以上の設定を有効にするために一旦再起動させるので、
sudo shutdown -r now
と入力しEnterキーを押します。するとラズパイが再起動します。
再起動したら、Wi-Fiに繋ぐ為右上のネットのアイコンをクリックします。
(以下の作業でWi-Fiに繋げられなかったという方は、ラズパイのLANポートに有線LANケーブルを接続してネットに接続しても良いでしょう)
(有線LANも無いよ、繋がらないよという方も大丈夫。ラズパイがネットに繋がっていなくてもプロコン連射は出来ます)
アクセスポイントのパスワードを入力。OKをクリック。
パスワードはアクセスポイントであるルーターの裏側などに書かれている事でしょう。
右上のネットのアイコンがネットに繋がっていることを示しています。
とここで、プロコンをラズパイのUSB Type-Aポートに接続してしまいましょう。電力不足が怖いですが、
ラズパイの電源は落ちないはずです。僕の環境では落ちませんでした。
プロコン連射化プログラムをダウンロードするために左上のウェブブラウザアイコンをクリックしてウェブブラウザを起動しましょう。
ブラウザが起動しました。そしたら右上にLow voltage warningが出ました。ハラハラしながら作業を続けます。
URLを入力する欄に
https://gist.github.com/Bokuchin
と入力、Enterキーを押します。
右のほうの「Raw」を右クリックして「Save link as...」をクリック。
デフォルトではDownloadsフォルダにadpg.shを保存しようとさせてきますが、「ホーム」をクリック。
ホームフォルダが表示されますので、右下の「保存(S)」をクリック。
/home/pi
フォルダに「adpg.sh」ファイルが保存されました。
(ラズパイがネットに繋がってないよって方は別のパソコンでファイルをダウンロードしてUSBメモリでラズパイにコピーしてください)
ブラウザでhttps://gist.github.com/Bokuchin に戻り
「rapid.py」をクリック。
「保存(S)」をクリックして、ホームフォルダに「rapid.py」を保存します。
ホームフォルダ「/home/pi」に2つのプログラムが保存されました。これでプログラムは揃いました。
プロコンを連射パッド化する
ブラウザは閉じてしまいましょう。
そして左上のターミナルアイコンをクリックしてターミナルを開きます。
ターミナルに
chmod 755 adpg.sh
と入力しEnter。
sudo sh adpg.sh
と入力しEnter。(これをすると/dev
フォルダにhidg0
ファイルが生成されます)
sudo dmesg | grep -A7 057e
と入力しEnter。
hidraw
の文字の次の数字を確認してください。この画像の場合hidraw3
がプロコンを表すファイルです。
rapid.py
をダブルクリックしてソースコードを開いてください。
rapid.py
のソースコードの13行目のhidraw3
と書いてあるところの数字を先程確認したhidrawの数字に書き換えてください。(この記事では先程確認して3
だったので書き換える必要はありませんでした)
書き換えた方は、上のSaveアイコンをクリックしてソースコード変更の保存をしてください。
このソースコードを表示しているThonnyというエディタは×をクリックして閉じちゃってください。
いよいよプロコンが連射パッド化します。
ターミナルに
sudo python3 rapid.py
と入力してEnterを押してください。
連射パッド化プログラムが実行されます。
すると写真を撮るのを忘れましたが、白い直方体のカーソルが一段下に行って、何も起きてないように見えますが、rapid.py
は実行され続けています。
Switchの画面を見てください、プロコンの電池マークの上に「USB」と表示されていれば成功です。
(先程のsudo python3 rapid.py
を実行してから「USB」と表示されるまでに2,3秒程かかります)
プロコンは連射パッド化されています。
プロコンを操作して、Splatoon2でボトルガイザー等を装備し試し撃ちをしてみてください。
ZR長押しでボトルの長射程モードが連射され、Lボタンで短射程モードができるはずです。
連射プログラムを終了するには
連射プログラムを終了するにはrapid.py
実行中のターミナルでCtrl + z
(Ctrl
キーを押しながらz
キーを押す)をして下さい。
連射プログラムが終了します。
再び連射パッド化するには
再び連射パッド化するにはsudo python3 rapid.py
を単に実行してもエラーが出て連射できませんでした。
一度プロコンをUSBケーブルから外し、Switchに無線で接続後、再びプロコンをUSBケーブルに繋げ、ラズパイと接続、そしてsudo dmesg | grep -A7 057e
をターミナルに入力しEnter。
hidraw
の数字を確認してください。ほぼ確実にはじめとは数字が変わっています。ほとんどの場合、数字が1つ大きくなっている事でしょう。
そして、rapid.py
の13行目のhidraw
の値を書き換えて、Save。エディタを閉じる。
ターミナルで
sudo python3 rapid.py
を入力、Enterで再びプロコン連射パッド化できることでしょう。
Raspberry Piのシャットダウンのしかた
ラズパイの電源を消す時、USB Type-Cポートのケーブルを引っこ抜いて電源を落とすのはMicroSDカードのデータが壊れることがあるので、電源を消す時は、左上のラズベリーのアイコンをクリック。
ログアウトをクリック。
Shutdownをクリック。これでラズパイの電源を消せます。
その後は、Type-Cポートに繋がれているケーブルを引っこ抜いてください。
再びプロコン連射パッド化するには今までの工程を再び全部しないといけないのか?
いいえ、そんなことはありません。今までの工程の一部だけを行えばよいです。
・Switchを起動する。
・ドックとラズパイをケーブルでつないでラズパイを起動する
・ターミナルを開く
・sudo sh adpg.sh
を実行
・sudo dmesg | grep -A7 057e
を実行、hidrawの数字を確認。
・「rapid.py」の13行目のhidrawの数字を上で確認した数字に書き換え。
・sudo python3 rapid.py
を実行
・連射パッド化プログラムを終了するにはCtrl + z
(Ctrl
キーを押しながらz
キーを押す)
参考
https://www.mzyy94.com/blog/2020/03/20/nintendo-switch-pro-controller-usb-gadget/
https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering
https://github.com/splaplapla/procon_bypass_man/blob/master/docs/setup_raspi.md
https://mtosak-tech.hatenablog.jp/entry/2020/08/22/114622