PS3のコントローラはPS4で使えない。
のはいいけど、グランツーリスモのためだけにかったハンドルコントローラを買い直すのも癪なのでどうにかして使いまわしたい。
調べてみたら、ハンドルコントローラの信号とPS4コントローラの認証情報をPCに取り込みながらどうもArduino経由でPS4に送って詐称する方法があるらしいので作って動かしてみたときのメモ。
部品を購入しよう
Arduinoっていうメインボード
USBシリアル変換ボード
それらのボードを繋ぐケーブル(3本だけ使う)
なんとあわせて1200円(送料込)!
しかも、最後のケーブルなんて実はいらないから1100円(送料込)でPS3のハンドルコントローラがPS4で使えちゃうようになるって寸法ですよ!
グランツーリスモ、これでできるね!
というか、要は中国のパチモノで一揃えしたのでクッソ安いって寸法なんだけど、(送料込)で1200円っておかしくない?1200円以下で中国から日本へ国際輸送ってできるの?やばない?
てなわけで、時間はかかったものの、本当に1200円(送料込)で届きました。約2週間かかったのかな。小さい袋が今回のキモの部品、大きい袋はただの変換チップ、ケーブルは3本しか使わないのでほとんどゴミ、あわよくばこの大きさに入らないかな?というケース代わりの空きフリスクの秋の4点セットでございます。
で、今回のキモの部品(小さい袋の方)の正規品サイトでピン配置を確認すると……
こんな感じです。正規品はこのボードだけで2000円(20ドル)+送料するのか。よい子のみんな、あるいはパチもの怖い人は正規品買うのもいいかもしれないな。商品の構成上、ほぼチップからただパッドを引き出しただけの代物なので怖いもクソもない気もするけど……。
さて、この中で今回使用するのは、PCとつなぐための変換ボード(大きい袋の方)を接続するためのTX&RX&GND、および新しいFW(変換ソフト)を焼く際にリセットするためのRST&GNDだけです。リセットする場合は、RST&GNDをショートさせればOK。
TX&RX&GNDは、USBシリアル変換ボード(大きい袋の方)と繋ぐためにケーブルを接続し……もとい、フリスクの箱に無理やり入れるためにはんだ付けしました。
さて、はんだ付け等の泥臭い作業はここまで。あとはもう、優秀なインターネッツピープルたちがgithubとかいう魔窟にアップしてくれてるソフトを利用させてもらうだけです。いい時代だ。
WIndowsの準備
まずArduinoボードの準備をする。
- ここからArduino Leonardo用のドライバとソフトウェアを入手(今回はarduino-1.8.5-windows.exeだった)
- ダウンロードしたソフトをインストールする。その際、USBドライバも忘れずにインストールすること。
- USBドライバがインストールされるとデバイスマネージャ上で
こんな感じで認識される。
今回はCOM3だった。 - ここからArduino Builderを入手する
- ここからGIMX Firmwareを入手する
- Arduino BuilderでGIMX Firmwareを焼き付ける。
Arduino Builderを起動
使うFirmwareは今回は EMUG29PS4\atmega32u4.hex こいつ。
Load Sketch / BinaryでEMUG29PS4\atmega32u4.hexを指定、TargetとしてArduino Leonardoを指定、@16Mhzを指定。その後、COM3ボタンを押す。 - うまくいくと画面に「Uploading completed!」と出ます。やったぜ!成功するとCOM3が消滅するのでそのままPCからArduinoボードを引き抜きます。
- うまくいかない場合はCOM3ボタンをおした後にリセットをしてみましょう(RST&GNDをショートさせればリセット)
ArduinoボードとUSBシリアル変換ボードを接続
互いのTX<->RX、RX<->TX、GND<->GNDで繋ぐ。
こんな感じ。
Windowsのセットアップ