見出し画像

VisualSpy【低遅延USBコントローラー入力可視化デバイス】

皆さんお久しぶりです、ゲーム好きの和菓子 a.k.a. みずようかん(@AT12806379)です。
久しぶりのnote更新、かつ新しいデバイスのリリース告知となります。
久々すぎて文章を書く力が衰えており…拙い文章となりますが、ご容赦ください。
今年のアドベントカレンダーもいくつか書きたいと思っているのでそちらも乞うご期待!

前置き

皆さんは、RetroSpyをご存知でしょうか?
RetroSpyとは、コンソールゲーム機のコントローラーの入力をpc上に表示するプログラムです。

対応ハードはレトロゲーム機から最新世代まで多岐にわたりますが、主にGCコンのそれは多くのストリーマーが使っており、見たことがある人も多いのではないでしょうか。

ZETA DIVISION スマブラ部門のTeaさんの切り抜き(使用しているスキンはTron-Style Gamecube)

今回は、このRetroSpyというプログラムで使用できるデバイスを作ってみました。その名も…

VisualSpy

VisualSpyは、新しい通信キャプチャ方式で(RetroSpyデバイス起因の)遅延を極限まで少なくしたUSBコントローラー入力可視化デバイスです。
USBの端子があるほとんどの世代のゲーム機に対応し、USBケーブルを用意すれば電子工作不要でRetroSpyを使用できます。
USBコントローラーとありますが、例外的にGCコントローラー接続タップにも対応しています(一番左のポートのみ)。
ただ、私の環境ではSwitchProコン、GC接続タップ、dualshock4以外の接続は確認していません(Atariとかまで買い揃えられる財力ない…😂)

現時点での対応ゲーム機一覧(同構造のRetroSpy Vision USB Liteより)

ここまで読んだ方には、「新しい通信キャプチャ方式とは何なのか?」と思われたかもしれません。
今までのキャプチャ方式と比較して何が良いのか、使い方も含めて解説します。

遅延が0!?

まず、USBコントローラーのRetroSpyを旧来の方法で行う場合の手法を解説すると…

従来のUSBコントローラーのキャプチャ手法

画像のようになります。
一度SBCという小さなコンピュータがコントローラーの信号を受け取り、再度ゲーム機に送信しています。
一見合理的な手法に見えますが、
・リアルタイムでの処理に強いわけでは無く、コントローラーの信号を再送信する際に1~2フレームの遅延が乗る
・OSが走っているため、抜き差し等の電源断に弱い
と、ゲーマー的に嬉しい要素(導入したくなる理由)が薄いです。

では、VisualSpyはどうなのか…?

VisualSpyの新しい手法

VisualSpyは、通信を信号レベルでパススルー(改変せずそのままゲーム機へ流す)しつつRP2040というマイコンでキャプチャを行います。
そのため、
遅延が理論上ない
プラグ&プレイ(電源断に強く、線を繋ぐだけですぐ使用できる)
と、先程のSBCの弱点を解消しています。

Dualsenseのキャプチャ対応?

余談ですが、VisualSpyの中にはUSBハブが入っています。
これは将来的にPS5のコントローラーであるDualsenseに対応するために搭載されており、遅延には影響しません。(ソース)
RetroSpy側がまだ対応していない(開発者には要望済)ので、確約はできませんがもしかしたらそのうち対応されるかもしれません…!

使いかた

VisualSpyのケース上面にプリントされたマークの真下に、それぞれに対応するUSBポートがあります。
このUSBポートをそれぞれ正しく接続すれば動作します。
ただしPCマークのポートは一番最後に接続してください。

左からコントローラー、PC、USB

コントローラーマークはUSB TypeA、PCとUSBマークはTypeC端子になっています。

どれもメス(レセプタクル)端子

PCやゲーム機の端子が各々の環境で異なるかと思いますので、必要なケーブルを調達してもらう必要があります。
PCと接続する端子がTypeA、接続対象をNintendo Switch(&Proコントローラー)とすると接続図は画像のようになります。

接続図(Nintendo Switch)

また、RetroSpy側は最新バージョンを使用して、下の画像のオプションの有効化が必要です。

Options→Use USB Lite
RetroSpy USB Liteと表記されているCOMポートを選択

VisualSpyはステータスLEDが搭載されており、通常動作の時は緑点滅、エラー発生時は赤点滅となります。
赤点滅が起きた際は、PCマークのポートを挿し直すと改善する場合があります。

使用に際して、各種ハードの有線接続を使用するオプションを必ず有効化してください。

https://support-jp.nintendo.com/app/answers/detail/a_id/34532

販売リンク

せっかく作ったので、様々な方に使ってもらいたい…
ということで、下記Boothに11月26日から並べようと思います。
詳細な販売開始日時、リンクは私のX(旧Twitter)からご確認ください。

https://twitter.com/AT12806379

ケースのバリエーションは白と黒の2種類用意しました。
家庭用3Dプリンターで印刷した自家製ケースなので、印刷痕はご了承ください。

ロゴなどはマルチカラー印刷

白のケースはステータスLEDが透けてケース全体が淡く光ります。
黒は透けないので、PCマークのポート横にステータス確認用の穴が開いています。
どうしてもLEDを光らせたくない方もいるかと思いますので、LED消灯版のファームウェアも近日公開予定です。

ステータスLEDの穴

最初は限定合計10台の出品ですが、要望が多ければ追加生産を行うかもしれません。
品切れの際は是非、Boothの入荷お知らせリクエストを押して待っていてください!

最後に

構想からこの記事を出すまで実に半年以上かかってしまいましたが、ようやく発表することができました。
これが様々な方の役に立つことを願っています。
それでは。

いいなと思ったら応援しよう!