USB Passthrough: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
(Undo revision 188680 by DandelionSprout (That's a guide page, not a regular game page. The Problems template logic currently doesn't handle that, messing up with some of the hidden maintenance categories))
 
(54 intermediate revisions by 10 users not shown)
Line 1: Line 1:
Since [https://dolp.in/v4.0.2 Dolphin 4.0.2], Dolphin has the ability to passthrough a USB_HID devices designed for user with Wii software. This gives emulated Wii software full control of a hardware device connected to your PC. This is very useful for devices not currently emulated by Dolphin and games that highly depend on extra hardware.
Since {{revision|4.0.2}}, Dolphin has the ability to passthrough USB HID devices designed for use with Wii software. {{revision|5.0-2352}} enables USB passthrough for all devices. This gives emulated Wii software full control of a hardware device connected to your PC. This is very useful for devices not currently emulated by Dolphin and games that highly depend on extra hardware.


== List of Devices and IDs ==
== List of Wii Devices and IDs ==
Some of these currently show up as "Unknown" in the Settings dialog but it does not affect functionality. You can use them anyway.
{|class="wikitable sortable width=100%"
! Device !! VID !! PID !! Type !! Compatibility
|-
|Wii LAN Adapter (RVL-015)
|0B95
|7720
|?
|Unsupported, Wii networking is emulated using the host's default network connection
|-
|[[:Category:Headbanger Chat Headset (Input supported)|Headbanger Chat Headset]]
| rowspan="2" | 0E6F
|010B
|?
|?
|-
|[[Disney Infinity]] Reader (Portal Device)
|0129
| rowspan="2" | HID
|Supported. Can also be emulated since {{revision|5.0-19334}}.
|-
|[[:Category:Active Heart Rate Monitor (Input supported)|EA Active Dongle]]
|21A4
|AC40
| rowspan="16" | Supported
|-
|[[:Category:USB Microphone (Input supported)|Logitech Vantage USB Microphone]]
|046D
|0A03
|OH0/VEN
|-
|[[:Category:Speed Force Wireless (Input supported)|Logitech Speed Force Wireless]]
|046D
|C29C
|?
|-
|Harmonix Guitar Controller for Nintendo Wii
| rowspan="7" | 1BAD
|0004
| rowspan="11" | HID
|-
|Rock Band Drum Set
|3110
|-
|Harmonix Drum Controller for Nintendo Wii
|3138
|-
|Harmonix RB3 Keyboard for Nintendo Wii
|3330
|-
|Harmonix RB3 MIDI Keyboard Interface for Nintendo Wii
|3338
|-
|Harmonix RB3 Mustang Guitar for Nintendo Wii
|3430
|-
|Harmonix RB3 MIDI Guitar Interface for Nintendo Wii
|3538
|-
|Skylanders Giants Portal
| rowspan="4" | 1430
| rowspan="3" | 0150
|-
|Skylanders Swap Force Portal
|-
|Skylanders Wireless Receiver for Wii
|-
|[[:Category:Ride Controller (Input supported)|Tony Hawk Ride/Shred Skateboard]]
|0100
|-
|[[:Category:Wii Speak (Input supported)|Wii Speak (RVL-029)]]
| rowspan="3" | 057E
|0308
|OH0
|-
|[[:Category:Ubisoft Camera (Input supported)|Ubisoft Camera]]
|030A
|VEN
|-
|Internal Bluetooth Module
|0305
|OH1
|See [[Bluetooth Passthrough]]
|-
|Cyberbike Adapter
| colspan="3" style="text-align: center;" | N/A
|The adapter connects as a Wii Remote via Bluetooth. It does not need USB Passthrough. The USB connector is only used for power.
|}


Tony Hawk Ride Skateboard - VID_1430 PID_0100
== Setting up ==
=== Linux ===
Linux support does not require any special drivers. However, a udev rule must be created to allow access to the devices. Note, the Vendor ID and Product ID SHOULD be verified from the device itself before creating the rule.


Skylanders Wireless Receiver for Wii - VID_1430 PID_0150
1. Paste the following into '''/etc/udev/rules.d/52-dolphin.rules''' (/lib/udev/rules.d/52-dolphin.rules if making a package). Do not forget to replace the XXXX with the appropriate Vendor and Product IDs.
 
<code>SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="XXXX", MODE="0666"</code>


Skylanders SwapForce Portal - VID_1430 PID_0150
2. Reload udev rules with:
<code>sudo udevadm control --reload-rules</code>


Skylanders Giants Portal - VID_1430 PID_0150
3. Reinsert the accessory.


Rockband 3 Guitar Dongle - Supported - Unverified IDs
=== Windows ===


Rockband Drumset - Supported - Unverified IDs
For users wishing to use the USB Microphone, USB Camera, or Wii Speak, it is highly recommended to use {{revision|5.0-10617}} or newer. It contains important fixes to both libusb and Dolphin that fix crashes and fix support in devices across many games.


EA Active Dongle - Supported - Unverified IDs
==== Install Dedicated Driver ====


EA Active NFL Training Camp Dongle - Supported - Unverified IDs
===== Single Interface Devices =====


Wii Speak Module - NOT SUPPORTED
Download and open [https://zadig.akeo.ie/ Zadig], then:


Karaoke Joysound Wii Microphone - NOT SUPPORTED
1. In the "Options" menu in Zadig, make sure "List All Devices" is enabled.


USB Microphone for Wii - NOT SUPPORTED
2. Look through the devices for the device to passthrough.


Ubisoft Motion Tracking Camera - NOT SUPPORTED
3. On the right column, select "libusbk" then click "Replace Driver". Select "Yes" to modify the system driver.


== Setting up ==
===== Multi Interface Devices =====
 
For Microphone, Wii Speak, and USB Camera Passthrough, installing over the composite parent device is required.
 
Download and open [https://zadig.akeo.ie/ Zadig], then:
 
1. In the "Options" menu in Zadig, make sure "List All Devices" is enabled and "Ignore Hubs or Composite Parents" is disabled.
 
2. Look through the composite parent of the device you wish to passthrough.


== Linux ==
3. On the right column, select "libusbk" then click "Replace Driver". It may warn you that you're modifying a kernel driver, but, this is normal. Select "Yes" to modify the kernel driver.


Linux support does not require any special drivers. However, a udev rule must be created to allow access to the devices.  Note, the Vender ID and Product ID SHOULD be verified from the device itself before creating the rule.
==== Uninstalling Dedicated Driver ====


Paste the following in the '''/etc/udev/rules.d/52-dolphin.rules''' file (/lib/udev/rules.d/52-dolphin.rules if making a package):
If for some reason you wish to restore the default driver to the device, open up "Device Manager."  In the last, expand "libusbK devices" and find the device you wish to restore. Uninstall the device, then unplug the device and plug it back in. It will now be restored to its original state.


<code>SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="XXXX", MODE="0666"</code>
If you were using the WinUSB driver, the device will be located under "Universal Serial Bus Devices" instead, but the instructions are identical otherwise.


Replace the XXXX with the appropriate Vendor and Product IDs.
==== usbdk driver ====


Reload udev rules with:
usbdk is no longer supported nor recommended. While it provides the ability to simply install a driver without any further instructions, usbdk suffers severe instability issues. For legacy purposes, you can still use the [https://github.com/daynix/UsbDk/releases x64 usbdk driver] in older builds.
<code>sudo udevadm control --reload-rules</code>


Then reinsert the accessory. When the game is booted it should be able to access the accessory as if it were plugged into a Wii.
=== macOS ===
While this can be done in macOS, there is currently no easy to use guide for it. A modified variant of the Native GameCube Adapter for Wii U guide should work, but what needs to be changed is not immediately apparent.


If you want to change the rule, links for instructions are available on the [https://github.com/libusb/libusb/wiki/FAQ#Can_I_run_libusb_applications_on_Linux_without_root_privilege libusb FAQ].
=== Android ===
This feature is not supported on Android.


=== Windows ===
== Configuring Dolphin ==
Download and open [http://zadig.akeo.ie/ Zadig], then:


1. In the "Options" menu in Zadig, make sure "List All Devices" is enabled.
In {{revision|5.0-2352}}, an additional step was added for USB Passthrough. Because some devices being plugged into your computer can potentially hang or crash a game, you now must whitelist the emulated Wii so it can access this device. This is not required for Bluetooth Passthrough.


2. Look through the devices and find the devic
=== Guide to Whitelist a USB Device in Dolphin ===


3. On the right column, select "WinUSB" then click "Replace Driver". Select "Yes" to modify the system driver.
1. Open Dolphin's configuration dialog.


The game will then be able to detect the device on next boot.
2. Click on the Wii tab.


=== macOS ===
3. In the "Whitelisted USB passthrough devices", click on the "Add..." button.


While this can be done in MacOS, there is currently no easy to use guide for it. A modified variant of the Native GameCube Adapter for Wii U guide should work, but what needs to be changed is not immediately apparent.
4. Select the device you wish to passthrough.


=== Android ===
[[Category: Tutorials]]
This feature is not supported on Android.

Latest revision as of 00:22, 19 March 2024

Since 4.0.2, Dolphin has the ability to passthrough USB HID devices designed for use with Wii software. 5.0-2352 enables USB passthrough for all devices. This gives emulated Wii software full control of a hardware device connected to your PC. This is very useful for devices not currently emulated by Dolphin and games that highly depend on extra hardware.

List of Wii Devices and IDs

Some of these currently show up as "Unknown" in the Settings dialog but it does not affect functionality. You can use them anyway.

Device VID PID Type Compatibility
Wii LAN Adapter (RVL-015) 0B95 7720 ? Unsupported, Wii networking is emulated using the host's default network connection
Headbanger Chat Headset 0E6F 010B ? ?
Disney Infinity Reader (Portal Device) 0129 HID Supported. Can also be emulated since 5.0-19334.
EA Active Dongle 21A4 AC40 Supported
Logitech Vantage USB Microphone 046D 0A03 OH0/VEN
Logitech Speed Force Wireless 046D C29C ?
Harmonix Guitar Controller for Nintendo Wii 1BAD 0004 HID
Rock Band Drum Set 3110
Harmonix Drum Controller for Nintendo Wii 3138
Harmonix RB3 Keyboard for Nintendo Wii 3330
Harmonix RB3 MIDI Keyboard Interface for Nintendo Wii 3338
Harmonix RB3 Mustang Guitar for Nintendo Wii 3430
Harmonix RB3 MIDI Guitar Interface for Nintendo Wii 3538
Skylanders Giants Portal 1430 0150
Skylanders Swap Force Portal
Skylanders Wireless Receiver for Wii
Tony Hawk Ride/Shred Skateboard 0100
Wii Speak (RVL-029) 057E 0308 OH0
Ubisoft Camera 030A VEN
Internal Bluetooth Module 0305 OH1 See Bluetooth Passthrough
Cyberbike Adapter N/A The adapter connects as a Wii Remote via Bluetooth. It does not need USB Passthrough. The USB connector is only used for power.

Setting up

Linux

Linux support does not require any special drivers. However, a udev rule must be created to allow access to the devices. Note, the Vendor ID and Product ID SHOULD be verified from the device itself before creating the rule.

1. Paste the following into /etc/udev/rules.d/52-dolphin.rules (/lib/udev/rules.d/52-dolphin.rules if making a package). Do not forget to replace the XXXX with the appropriate Vendor and Product IDs.

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="XXXX", MODE="0666"

2. Reload udev rules with: sudo udevadm control --reload-rules

3. Reinsert the accessory.

Windows

For users wishing to use the USB Microphone, USB Camera, or Wii Speak, it is highly recommended to use 5.0-10617 or newer. It contains important fixes to both libusb and Dolphin that fix crashes and fix support in devices across many games.

Install Dedicated Driver

Single Interface Devices

Download and open Zadig, then:

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

2. Look through the devices for the device to passthrough.

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

Multi Interface Devices

For Microphone, Wii Speak, and USB Camera Passthrough, installing over the composite parent device is required.

Download and open Zadig, then:

1. In the "Options" menu in Zadig, make sure "List All Devices" is enabled and "Ignore Hubs or Composite Parents" is disabled.

2. Look through the composite parent of the device you wish to passthrough.

3. On the right column, select "libusbk" then click "Replace Driver". It may warn you that you're modifying a kernel driver, but, this is normal. Select "Yes" to modify the kernel driver.

Uninstalling Dedicated Driver

If for some reason you wish to restore the default driver to the device, open up "Device Manager." In the last, expand "libusbK devices" and find the device you wish to restore. Uninstall the device, then unplug the device and plug it back in. It will now be restored to its original state.

If you were using the WinUSB driver, the device will be located under "Universal Serial Bus Devices" instead, but the instructions are identical otherwise.

usbdk driver

usbdk is no longer supported nor recommended. While it provides the ability to simply install a driver without any further instructions, usbdk suffers severe instability issues. For legacy purposes, you can still use the x64 usbdk driver in older builds.

macOS

While this can be done in macOS, there is currently no easy to use guide for it. A modified variant of the Native GameCube Adapter for Wii U guide should work, but what needs to be changed is not immediately apparent.

Android

This feature is not supported on Android.

Configuring Dolphin

In 5.0-2352, an additional step was added for USB Passthrough. Because some devices being plugged into your computer can potentially hang or crash a game, you now must whitelist the emulated Wii so it can access this device. This is not required for Bluetooth Passthrough.

Guide to Whitelist a USB Device in Dolphin

1. Open Dolphin's configuration dialog.

2. Click on the Wii tab.

3. In the "Whitelisted USB passthrough devices", click on the "Add..." button.

4. Select the device you wish to passthrough.