久しぶりにWiiリモコンhackを弄っている。
Wiiリモコンを分解して、IRセンサーを取り外して残った基板をBluetooth→I2C変換用のモジュールとして利用するというhackだ。
Wiiリモコンhackには1つ問題があり、Windows PCとWiiリモコンをBluetoothでペアリングする手順でトラブってしまうケースが多いということだ。
Windows7の時代は、WindowsPC用のBluetoothドングルにはそのメーカー独自のドライバやサポートソフトが同梱されているというのが多く、そういったソフト毎にWiiリモコンをペアリングする手順が異なるという問題があった。
さらにWiiリモコンのペアリングは普通にペアリングしようとするとPINを要求されるのだが PINを入力するとペアリングができないという困った挙動をするので、Bluetoothのドライバやサポートソフトの種類によってはどんなにがんばってもペアリングができないという少し深刻な問題を抱えていた。
Windows7でもBluetoothのドングルをPCに繋いだ時にMicrosoftの標準のドライバが自動でインストールされるというタイプのBluetoothドングルの製品もいくつかあり、これを使う場合には一応ペアリングができるので、自分の場合にはそういうBluetoohドングルを選んでそれだけを使うようにして問題を回避していた。
Windows 7でMicrosoftのBluetoothドライバを使う場合、Bluetoothでサポートされる機能が他のメーカー製のものに比べて貧弱なので、Wiiリモコン以外の目的でBluetoothを使う人があえてMicrosoft標準のドライバのままで使うということは少ないので、上記の問題回避方法はあまり受け入れて貰えないのが難点だった。
逆にWindows 7でMicrosoftのBluetoothドライバを使うメリットは、Microsoft純正のWindowsでのBluetooth機器用APIが使えるというのがあった。
Ogaという方が、WiiバランスボードをPCに繋いで使うhackを作っており、Wiiリモコンと同じような仕組みのペアリングをするWiiバランスボードをPCに繋ぐのを自動化させていた。
このソースコードは公開されていなかったが、作者によるblogに出ていた解説の記事とかを見て、自分もWiiリモコンをWindows PCに自動で接続するというのを作ってみたのだった。(wii_remote_connect.exe)
自分の作ったWiiリモコンをPCに接続するソフト(wii_remote_connect.exe)は、ちょっと動作が不安定で正直言って出来が悪かった。
MicrosoftのBluetooth HIDドライバの挙動で、ペアリング開始時にはなぜか毎回HIDドライバのインストールが行われて、そのインストールにやたらと時間が掛かってしまうことがあり、そのせいでWiiリモコン接続ソフトの処理がタイムアウトしてしまって接続できないということがよく起こった。
特に動作の遅いPCで時間の掛かることが多かったし、普通のPCでも時々なぜか処理に時間が多く掛かってしまうことがあった。
自動的にリトライをするようにWiiリモコンを接続するソフトを改良しようかと考えていたのだが、結局ずっと放置してしまった。
これが、これまでの状況だ。
Windowsのバージョンは今はもうWindows 10が主流になっている。
Windows 10だと自作のこのWiiリモコンを接続するソフトは安定して動作するようになってしまった。
Windows 10だとBluetoothのMicrosoft純正のドライバなどが改善されており、BluetoothのHIDのペアリング時に毎回ドライバがインストールされることが無くなり、ペアリングに極端に時間が掛かることが無くなったようだ。そのおかげで安定してWiiリモコンが接続できるようになった。
逆にWiiリモコン接続ソフトを使わずに、Windows 10のMicrosoftの純正のBluetooth機能のデバイスの追加からWiiリモコンをペアリングすることができなくなってしまっている。
ネットで調べたところ、一応はペアリングの方法があるようだ。
→ WiiリモコンをWindows10でペアリングする- 調べたストック
「Bluetoothデバイスの追加」ではなく、「パーソナルエリアネットワークへ参加」でWiiリモコンを追加させるという方法だとなぜかうまくいくらしい。
しかし、毎回これをやるのはちょっと面倒だ。
自分の作ったWiiリモコン接続ソフトの方が簡単なのでお薦めしたい。
いまどきWiiリモコンをPCに繋げてhackに使う人は少ないのかもしれないが、需要はあるのだろうか。
需要があるなら、ちょっとだけ改良して、ソースコードとかも公開しようかと考えているのだが、どうだろう?
—
追記
公開した。
→ WiiリモコンやJoyConをWindows10とBluetoothでペアリングして接続するためのソフト(ライブラリ)「tiny_bd_hid.dll」を公開する
ソフトの配布予定はありますか?
Windows10とつなげたいので欲しいです
欲しいという需要があるようなので(1人だけみたいですが)、ちょっとソースコードを整理して、最新のVisual Studioでビルドできるようにしてから公開しようと思います。
時期は、1か月~2か月以内になんとかしたいです。
配布お願いします!