Bluetooth Passthrough: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
Line 55: Line 55:


== Limitations ==
== 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 cannot be used at all with passthrough mode. As of 5.0-993, loading a state will break Bluetooth connectivity.
* Because Bluetooth Passthrough Mode skips the emulated Bluetooth and Dolphin's Wiimote code entirely, it is not possible to mix passthrough mode and emulated/real/hybrid Wiimote. This means that netplay, TAS input, input display, etc. cannot work.

Revision as of 20:47, 6 October 2016

This is a work in progress

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 Wiimotes to Dolphin, third-party Wiimote support, working Wiimote 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"

Also, the USB Bluetooth kernel module should be unloaded, or Dolphin will not be able to use the adapter.

modprobe -r btusb

Note: it is also possible to unbind only a specific adapter from the btusb module, but for simplicity, unloading the whole module works too. Additionally, unloading can be automated by tweaking the udev rule.

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.

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.

Wiimotes do not stay paired after closing the game

This means that your adapter is likely broken and does not remember Wiimote 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.

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 cannot be used at all with passthrough mode. As of 5.0-993, loading a state will break Bluetooth connectivity.
  • Because Bluetooth Passthrough Mode skips the emulated Bluetooth and Dolphin's Wiimote code entirely, it is not possible to mix passthrough mode and emulated/real/hybrid Wiimote. This means that netplay, TAS input, input display, etc. cannot work.