Bluetooth Passthrough: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
Line 89: Line 89:
| Asus BT-211
| Asus BT-211
| ? || ? || ?
| ? || ? || ?
| bgcolor="#6f6"|Yes || ? || ?
| bgcolor="#afa"|Yes || ? || ?
| ?
| ?
| ?
| ?
Line 95: Line 95:
| Asus BT-400 (BCM20702A0)
| Asus BT-400 (BCM20702A0)
| 0B05 || 17CB || ?
| 0B05 || 17CB || ?
| bgcolor="#fa6"|Yes <sup>[1]</sup> || bgcolor="#6f6"|Yes || bgcolor="#f66"|No
| bgcolor="#fda"|Yes <sup>[1]</sup> || bgcolor="#afa"|Yes || bgcolor="#faa"|No
| Good
| Good
| ?
| ?
Line 101: Line 101:
| Asus BT-400 (BCM20702A0)
| Asus BT-400 (BCM20702A0)
| 0B05 || 17CF || ?
| 0B05 || 17CF || ?
| bgcolor="#fa6"|Yes <sup>[1]</sup> || bgcolor="#6f6"|Yes || bgcolor="#fa6"|Limited to 1 remote
| bgcolor="#fda"|Yes <sup>[1]</sup> || bgcolor="#afa"|Yes || bgcolor="#fda"|Limited to 1 remote
| Good
| Good
| Very long
| Very long
Line 107: Line 107:
| Atheros AR3012
| Atheros AR3012
| 0CF3 || 3004 || 0001
| 0CF3 || 3004 || 0001
| bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes <sup>[2]</sup> || bgcolor="#6f6"|Yes
| bgcolor="#afa"|Yes || bgcolor="#afa"|Yes <sup>[2]</sup> || bgcolor="#afa"|Yes
| Good
| Good
| Very long
| Very long
Line 113: Line 113:
| Atheros AR9462
| Atheros AR9462
| 0B05 || 17D0 || 0001
| 0B05 || 17D0 || 0001
| bgcolor="#6f6"| Yes || bgcolor="#6f6"|Yes || bgcolor="#f66"|No
| bgcolor="#afa"| Yes || bgcolor="#afa"|Yes || bgcolor="#faa"|No
| Good
| Good
| Very long
| Very long
Line 119: Line 119:
| Azio BTD-V201
| Azio BTD-V201
| 0A12 || 0001 || ?
| 0A12 || 0001 || ?
| bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes
| bgcolor="#afa"|Yes || bgcolor="#afa"|Yes || bgcolor="#afa"|Yes
| Good
| Good
| Long
| Long
Line 125: Line 125:
| Azio BTD-V401
| Azio BTD-V401
| ? || ? || ?
| ? || ? || ?
| bgcolor="#6f6"|Yes || ? || ?
| bgcolor="#afa"|Yes || ? || ?
| ?
| ?
| Short
| Short
Line 131: Line 131:
| CSL BSN23996
| CSL BSN23996
| 0A12 || 0001 || 8891
| 0A12 || 0001 || 8891
| bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes
| bgcolor="#afa"|Yes || bgcolor="#afa"|Yes || bgcolor="#afa"|Yes
| Good
| Good
| Long
| Long
Line 137: Line 137:
| CSR 8510 A10 (Generic)
| CSR 8510 A10 (Generic)
| 0A12 || 0001 || 8891
| 0A12 || 0001 || 8891
| bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes || bgcolor="#f66"|No
| bgcolor="#afa"|Yes || bgcolor="#afa"|Yes || bgcolor="#faa"|No
| Good
| Good
| Long
| Long
Line 143: Line 143:
| Generic Adapter
| Generic Adapter
| 0A12 || 0001 || 3164
| 0A12 || 0001 || 3164
| bgcolor="#6f6"|Yes || bgcolor="#f66"|No || bgcolor="#f66"|No
| bgcolor="#afa"|Yes || bgcolor="#faa"|No || bgcolor="#faa"|No
| Good
| Good
| ?
| ?
Line 149: Line 149:
| Intel Dual Band Wireless-AC 7260
| Intel Dual Band Wireless-AC 7260
| 8087 || 07DC || 0001
| 8087 || 07DC || 0001
| bgcolor="#6f6"|Yes || bgcolor="#f66"|No || bgcolor="#6f6"|Yes
| bgcolor="#afa"|Yes || bgcolor="#faa"|No || bgcolor="#afa"|Yes
| Good
| Good
| Long
| Long
Line 155: Line 155:
| ISSC EDR Bluetooth Adapter
| ISSC EDR Bluetooth Adapter
| 1131 || 1004 || 0373
| 1131 || 1004 || 0373
| bgcolor="#6f6"|Yes || bgcolor="#f66"|No || bgcolor="#fa6"|Yes <sup>[3]</sup>
| bgcolor="#afa"|Yes || bgcolor="#faa"|No || bgcolor="#fda"|Yes <sup>[3]</sup>
| Short range
| Short range
| Average
| Average
|-
|-
| Mayflash DolphinBar
| Mayflash DolphinBar
| colspan="8" style="text-align: center;background:#f66" | Not supported  
| colspan="8" style="text-align: center;background:#faa" | Not supported  
|-
|-
| Plugable USB 2.0 Bluetooth Adapter (BCM20702A0)
| Plugable USB 2.0 Bluetooth Adapter (BCM20702A0)
| 0A5C || 21E8 || 0112
| 0A5C || 21E8 || 0112
| bgcolor="#fa6"|Yes <sup>[1]</sup> || bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes
| bgcolor="#fda"|Yes <sup>[1]</sup> || bgcolor="#afa"|Yes || bgcolor="#afa"|Yes
| Good
| Good
| Very long
| Very long
Line 170: Line 170:
| StarTech.com USBBT1EDR4 (Class 1)
| StarTech.com USBBT1EDR4 (Class 1)
| ? || ? || ?
| ? || ? || ?
| bgcolor="#6f6"|Yes || ? || ?
| bgcolor="#afa"|Yes || ? || ?
| Short range
| Short range
| ?
| ?
Line 182: Line 182:
| Trendnet TBW-105UB
| Trendnet TBW-105UB
| ? || ? || ?
| ? || ? || ?
| bgcolor="#6f6"|Yes || bgcolor="#f66"|No || ?
| bgcolor="#afa"|Yes || bgcolor="#faa"|No || ?
| Garbage
| Garbage
| ?
| ?
Line 188: Line 188:
| Trendnet TBW-106UB
| Trendnet TBW-106UB
| 0A12 || 0001 || 8891
| 0A12 || 0001 || 8891
| bgcolor="#6f6"|Yes || ? || bgcolor="#f66"|No
| bgcolor="#afa"|Yes || ? || bgcolor="#faa"|No
| Average
| Average
| ?
| ?
Line 194: Line 194:
| Wii Bluetooth Module (WML-C43, BCM2045)
| Wii Bluetooth Module (WML-C43, BCM2045)
| 057E || 0305 || ?
| 057E || 0305 || ?
| bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes || bgcolor="#6f6"|Yes
| bgcolor="#afa"|Yes || bgcolor="#afa"|Yes || bgcolor="#afa"|Yes
| Good
| Good
| Very long
| Very long

Revision as of 00:17, 30 October 2016

Since 5.0-910, Dolphin has the ability to passthrough a Bluetooth adapter for emulated Wii software. This gives emulated Wii software full control of a Bluetooth adapter, which, provided a decent, working adapter, notably allows pairing Wii Remotes to Dolphin, third-party Wii Remote support, working Wii Remote audio and more accurate connectivity.

Setting up

Linux

A udev rule has to be installed so Dolphin can use a Bluetooth adapter without having to get root privileges.

SUBSYSTEM=="usb", ATTRS{idVendor}=="YOURVID", ATTRS{idProduct}=="YOURPID", TAG+="uaccess"

Dolphin should be able to automatically unload the USB Bluetooth kernel module (assuming you have permission to; you typically need to be in the plugdev group). If not, unload it with modprobe -r btusb.

Windows

Download and open Zadig, then:

1. In the "Options" menu in Zadig, make sure "List All Devices" is enabled.

2. Select your Bluetooth adapter in the device list.

3. On the right column, select "WinUSB" then click "Replace Driver". Select "Yes" to modify the system driver.

Dolphin will be able to use the adapter after the driver is successfully installed, and until you revert back to the default Bluetooth driver.

macOS

There is currently no way to use this feature on versions newer than 10.9, because Apple removed the ability to unload the Bluetooth kernel module.

A potential solution would be to force the OS to ignore the adapter with a codeless .kext, but this hasn't been tried yet.

Android

This feature is not supported on Android.

Using passthrough mode in Dolphin

In Dolphin, open the Controller Configuration dialog, then select the "Passthrough a Bluetooth adapter" option in the Wii Remotes section.

While a game is running:

  • Wii Remotes can be synced and paired to Dolphin by using the Sync button.
  • All saved Wii Remote pairings can be reset by using the Reset button. This will also disconnect all currently connected Wii Remotes.

Advanced usage

Sync button hotkey

It is possible to use the Press Sync Button hotkey as an alternative to the buttons in the controller configuration dialog. It is designed to work just like the Wii's red sync button:

  • Pressing the hotkey will trigger a sync.
  • Holding the hotkey for 10 seconds will clear all saved pairings.

Forcing a specific adapter

If you need to use a specific adapter, instead of using the first Bluetooth adapter that is found, you can force Dolphin to use it by editing Dolphin's configuration file (Config/Dolphin.ini). In the BluetoothPassthrough section, set "VID" and "PID" to your adapter's vendor ID and product ID (that you previously converted from hex to decimal).

Troubleshooting

"Failed to open Bluetooth device: LIBUSB_ERROR_ACCESS"

This error means that Dolphin doesn't have permission to use the Bluetooth adapter.

If on Linux, make sure the udev rule is set up correctly.

"Failed to open Bluetooth device: LIBUSB_ERROR_NOT_SUPPORTED"

On Windows, this typically means that the libusb/WinUSB driver was not installed for the adapter.

"Failed to detach kernel driver for BT passthrough"

Dolphin tried to automatically unload the Bluetooth USB kernel module and failed to. Unload the module manually before starting a game to avoid this issue.

Wii Remotes do not stay paired after closing the game

This means that your adapter is likely broken and does not remember Wii Remote link keys properly. Use a different adapter to avoid this issue.

Black screen on boot

Games send a reset command to the Bluetooth adapter when they start and wait for it to be acknowledged. If you are getting a black screen for a long time (more than 10 seconds), your adapter may be stuck in a broken state and is unable to respond to any commands. Unplug the adapter and try again.

No usable adapter found

This can happen with some adapters. PR 4385 is currently needed to make such adapters work. You'll also need to force your adapter to be used.

Limitations

  • The functionality and quality of the connections heavily depend on the quality of the adapter.
  • Even though most adapters work fine in passthrough mode, the only perfect adapter is the Wii's Bluetooth module (so far).
  • Save states are not very useful in passthrough mode, since loading a state will break Bluetooth connectivity.
  • Because Bluetooth Passthrough Mode skips Dolphin's emulated Bluetooth and Wii Remote code entirely, it is not possible to mix passthrough mode and emulated/real/hybrid Wii Remote. This means that netplay, TAS input, input display, etc. cannot work.

Adapter test results

Adapter VID PID Revision Works Stable Remembers pairings Audio Range
Asus BT-211 ? ? ? Yes ? ? ? ?
Asus BT-400 (BCM20702A0) 0B05 17CB ? Yes [1] Yes No Good ?
Asus BT-400 (BCM20702A0) 0B05 17CF ? Yes [1] Yes Limited to 1 remote Good Very long
Atheros AR3012 0CF3 3004 0001 Yes Yes [2] Yes Good Very long
Atheros AR9462 0B05 17D0 0001 Yes Yes No Good Very long
Azio BTD-V201 0A12 0001 ? Yes Yes Yes Good Long
Azio BTD-V401 ? ? ? Yes ? ? ? Short
CSL BSN23996 0A12 0001 8891 Yes Yes Yes Good Long
CSR 8510 A10 (Generic) 0A12 0001 8891 Yes Yes No Good Long
Generic Adapter 0A12 0001 3164 Yes No No Good ?
Intel Dual Band Wireless-AC 7260 8087 07DC 0001 Yes No Yes Good Long
ISSC EDR Bluetooth Adapter 1131 1004 0373 Yes No Yes [3] Short range Average
Mayflash DolphinBar Not supported
Plugable USB 2.0 Bluetooth Adapter (BCM20702A0) 0A5C 21E8 0112 Yes [1] Yes Yes Good Very long
StarTech.com USBBT1EDR4 (Class 1) ? ? ? Yes ? ? Short range ?
StarTech.com USBBT2EDR4 (Class 2) ? ? ? ? ? ? ? ?
Trendnet TBW-105UB ? ? ? Yes No ? Garbage ?
Trendnet TBW-106UB 0A12 0001 8891 Yes ? No Average ?
Wii Bluetooth Module (WML-C43, BCM2045) 057E 0305 ? Yes Yes Yes Good Very long
Wii Bluetooth Module (J27H002, BCM2045) 057E 0305 ? ? ? ? ? ?
Wii U Bluetooth Module (BCM20702) ? ? ? ? ? ? ? ?

[1] Needs to force Dolphin to use the adapter
[2] May stop working after HCI resets (stopping, resetting emulation or going back to the system menu)
[3] Has issues with several Wiimotes