WiiリモコンやJoyConをWindows10とBluetoothでペアリングして接続するためのソフト(ライブラリ)「tiny_bd_hid.dll」を公開する

WiiリモコンやJoyConをWindows10とBluetoothでペアリングして接続するためのソフト(ライブラリ)「tiny_bd_hid.dll」を公開する。

ここからダウンロードできる。

WiiリモコンなどのBluetooth HIDデバイスのペアリング処理と接続(HIDサービス起動)処理を簡単に行うためのライブラリとなっている。

これは前に書いたblogエントリで言及していたソフトだ。(なぜいまさらという話も前に書いた。)
前にそのblogエントリを書いたのは去年(2018年)の11月なのだが、その後の今回の公開までだいぶ遅くなってしまった。
久しぶりにWiiリモコンhackを弄っている – WiiリモコンとWindows PCのペアリング問題について


以下、README.txtの内容をそのままここに書いておく。

tiny_bt_hid.dll について

WiiリモコンなどのBluetooth HID機器をペアリングして接続するのに作った関数を
ライブラリ(DLL)化したものです。

ソースコードについて
srcフォルダーにソースコードがあります。
ソースコードとしては、tiny_bt_hid.cppというファイル1つだけです。
build_vs2019_x64.batというバッチファイルでVisualStudio2019のC/C++のCLI環境を使ってビルドします。

バイナリについて
bin(dll-lib)フォルダーに、ビルド済みのものがあります。
dllといっても、ちゃんとしたdllではないのでdllをロードするAPIなどには対応していません。
dllを呼び出すためのlib(tiny_bt_hid.lib)ファイルを使ってdllの中身を呼び出す形になっています。
呼び出し方はヘッダファイル(tiny_bt_hid.h)に定義しています。
これだけでは使い方が分からないですので、使用例のサンプルコードも用意しました。

サンプルコードについて
exampleフォルダーに一式を入れています。
HID機器を使うための自作のライブラリ(DLL)であるtiny_hid_dllも使っており、一緒に入れておきます。
ソースコードとしては、wii_remote_connect.cppとwii_remote_test.cppとうファイル2つだけです。
前者で、tiny_bt_hid.dllを使ってWiiリモコンのBluetoothペアリングと接続をします。
後者で、tiny_hid_dll.dllを使ってWiiリモコンのLEDを点灯させたり振動機能を短時間振動させたりしてます。
build_vs2019_x64.batというバッチファイルでVisualStudio2019のC/C++のCLI環境を使ってビルドします。

(一応ビルド済みのexeファイルも入れておきます。しかし、ネットからダウンロードしたzipファイル内の
実行ファイルは、Windows10のセキュリティ機能により あたかもウイルスかのような扱いで実行がブロック
されますので、ご注意ください、)

このサンプルコードでライブラリの関数の使い方は分かるのではないかと思います。
反響とかあるようなら、あとでblogで もう少し親切な使い方の記事を書いていきたいと思います。

7 thoughts on “WiiリモコンやJoyConをWindows10とBluetoothでペアリングして接続するためのソフト(ライブラリ)「tiny_bd_hid.dll」を公開する

  1. なな

    ここ一週間ほどWiiリモコンを接続する方法をあれこれ試して頭抱えていたのでソフトの公開本当にありがとうございます!
    もう少し機械オンチにもわかる解説をぜひお願いします

    返信
  2. 工科大学の学生

    素晴らしいプログラムをありがとうございます.
    windows 10でのWiiRemoteの接続がうまく行かず,Unityとの連携が取れずで困っていたところで,
    検索でヒットしたこちらのプログラムを使わせていただいたところ一発で接続OKとなり大変助かりました.

    現在こちらの配布されているプログラムをもとに複数個のWiiRemoteを接続できるように改変しようとしたですが,私の知識不足によりどうしても2個以上のWiiRemoteを接続するようにプログラムを書き換えられませんでした.

    厚顔無恥なお願いで大変申し訳無いのですが,プログラムの書き換えるべき場所をご教授をいただけると大変嬉しいです.
    何卒よろしくお願いいたします.

    返信
    1. kako 投稿作成者

      複数のWiiリモコンを自動ペアリングするのには対応していないです。すみません。

      これは、MicrosoftのBluetooth APIでPCの周囲のBluetooth機器を検索するときに名前を使ってWiiリモコンを探して、見つかった1つめのWiiリモコンに対して自動接続するようにプログラムが書かれているためです。

      直すとすれば、
      検索時に全部のWiiリモコンを探すようにすることと、
      WiiリモコンのBluetoothのアドレス情報とかを調べて、見つかったWiiリモコンの個体を区別するようにすること。
      でしょう。
      具体的にソースコードのどこかをちょっと書き換えるというレベルでは直せないと思います。
      あまり助けにならない回答ですみません。

      返信
  3. 工科大学の学生

    迅速なご返答ありがとうございます.

    なるほど… tiny_bt_hid.dllの中身を変更,追記しないと対応できないとお見受けいたします.
    Koko様のプログラム,ご回答を参考に自作ライブラリの作成等,色々試行を重ねたいと思います.

    返信
  4. Daniel

    Hello,thank you for your program and make their sources availables.
    I think it has a bug : i am trying to use it with the right joycon using your program “joycon_music_test_v01.zip” .
    .If i use the files included on it ,the sound works fine,but if i remplace the library with the one included here,the sound go faster.
    Yours
    Dani

    —-
    こんにちは、あなたのプログラムに感謝し、それらのソースを利用可能にします。
    私はそれがバグだと思う:私はあなたのプログラム「joycon_music_test_v01.zip」を使用して適切なjoyconでそれを使用しようとしています。
    含まれているファイルを使用すると、サウンドは正常に機能しますが、ライブラリをここに含まれているものと交換すると、サウンドは速くなります。
    あなたのもの
    ダニ

    返信
    1. kako 投稿作成者

      joycon music testのサウンドの再生速度の問題は自分でも気がついていました。
      このソフトで時間制御ができていないのが原因なのですが、tiny_hid_dllで内部でウェイト処理をしていたという問題もあり、
      修正したtiny_hid_dllというのを作っていました。
      修正したdllと修正したサウンド再生というのができたら、また公開しようと思います。

      返信
  5. Daniel

    Hello again. Thanks for answering so fast.
    Then the problem was on the version of the
    tiny_hid_dll you used on music test?
    I am trying to understand plenty the Nintendo vib format (it seems they are some little questions than homebrew scene has no found for make it to vibrate exactly as it happens on the Switch games), and collecting
    this files of the games I own.
    At last, I would be love recreate some using homebrew(as kazuake balls counting) and create my own vibration files,also convert them to run on other devices as the wonderful Steam Controller, (and others as the future ps5 or VR controllers).
    I think this technology will be really surprising when it would be more developed and mixed with things as real time raytracing audio as the one could be performed on current pc (with Steam Audio API) and future video game machine as ps5

    For finish, I have been reading your blog(using Google translate) and I am very surprised with lot of your proyects (I love this kind of stuff), congratulations.

    Thanks

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

+ 41 = 48