Project

General

Profile

Emulator Issues #10412

ES_Launch not working with Bluetooth Passthrough.

Added by purechoass over 2 years ago. Updated over 1 year ago.

Status:
Won't fix
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
Windows
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

[Metroid Prime Trilogy]

Game ID? (right click the game in the game list, properties, info tab)

[R3MP01]

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

[735c0d0c16177e3294f5e0faf7a69571]

What's the problem? Describe what went wrong.

[Having Wii Bluetooth Module (WML-C43, BCM2045) in passthrough mode and trying to launch before-mentioned games.
Launcher part works fine, but after selecting what game to launch -- Dolphin sends error "Failed to open Bluetooth device: LIBUSB_ERROR_OTHER (https://puu.sh/uHsUP/eb4af97e53.png) and then that no usable devices was found, aborting (https://puu.sh/uHsZr/5b9c651ca9.png)]

What steps will reproduce the problem?

[Launching Metroid Prime Trilogy, Selecting Metroid Prime 1, Then selecting Load or new game will Take you to a loading screen followed by the error message and a crash.

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?

[5.0-2341 (Works Fine) 5.0-4776, 5.0-3123 and a few other builds released within the last two weeks. (shows the error]

What are your PC specifications? (CPU, GPU, Operating System, more)

[i5 3570k, GTX 970, Windows 10 Creators Update (fully updated) 16gb DDR3 Ram]

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

[I am not sure how to get the relevant logs you may need so please let me know and I will update this report. As far as I can tell this is the exact same issue reported here. https://bugs.dolphin-emu.org/issues/10151 I am using a genuine Wii bluetooth adapter (Wii Bluetooth Module (WML-C43, BCM2045)) That I soldered. Windows showed it as a generic bluetooth adapter that I connected a wiimote to test. Worked fine, installed the libusbk drivers as instructed on here, https://wiki.dolphin-emu.org/index.php?title=Bluetooth_Passthrough#Adapter_test_results Wii remote connects and works fine on all games I tried (Kirbys Epic Yarn, Mario Galaxy, Pikmin 2) but does not on Metroid Prime Trilogy, how ever I do not experience the error on the older build of dolphin mentioned above and Metroid works fine on that revision.]


Related issues

Has duplicate Emulator - Emulator Issues #10413: Two step launching not working with Bluetooth PassthroughDuplicate

Has duplicate Emulator - Emulator Issues #10635: Bluetooth Passthrough crash in Metroid Prime Trilogy (Win)Duplicate

Has duplicate Emulator - Emulator Issues #11327: Rayman Raving Rabbids Party Collection - LIBUSB_ERROR_OTHERDuplicate

History

#1 Updated by JosJuice over 2 years ago

#2 Updated by JosJuice over 2 years ago

  • Subject changed from Two Step Launcher Games not Working with Bluetooth Passthrough. to ES_Launch not working with Bluetooth Passthrough.

#3 Updated by leoetlino over 2 years ago

  • Status changed from New to Questionable
  • Operating system Windows added
  • Operating system deleted (N/A)

Can't reproduce here throughout many IOS reloads. Dolphin does ask libusb to release the adapter, which is working here and for most people, so it looks like something may be taking ownership of your adapter or not releasing it correctly. That would be out of Dolphin's control.

#4 Updated by purechoass over 2 years ago

leoetlino wrote:

Can't reproduce here throughout many IOS reloads. Dolphin does ask libusb to release the adapter, which is working here and for most people, so it looks like something may be taking ownership of your adapter or not releasing it correctly. That would be out of Dolphin's control.

Hi, Thank you for the reply.

Is there anything else I can do to provide you with more information that might help? I actually reinstalled windows to make sure nothing else was interfering. I plugged in the bluetooth adapter (which is a genuine wii one as described earlier), windows recognised it as a generic bluetooth adapter. Then I installed libusbk as mentioned in the dolphin wiki guide.

It's really odd that it works fine with older versions of dolphin. Never get a disconnect or any problems, remember sync after quitting or changing games. And even on the newer dolphin everything works except ES_Launch games like Metroid Prime Trilogy.

I have no other bluetooth devices plugged into the computer and made sure not to after the windows reinstall so no other drivers where installed.

Do you have any recommendations on how I could proceed?

Thanks,

-Amir

#5 Updated by leoetlino over 2 years ago

Have you tried using WinUSB as the driver instead?

#6 Updated by purechoass over 2 years ago

leoetlino wrote:

Have you tried using WinUSB as the driver instead?

Sorry for the late reply, my email notifications where going into my junk folder.

Yes I have just tried WinUSB and I get the exact same error.

#7 Updated by JMC4789 over 2 years ago

Can you try the latest development version and maybe switch to another adapter and go through the process again? This really sounds like a Windows bug we can't control.

#8 Updated by volfye over 2 years ago

I'm having the same issue, except with the Mii channel. The system menu loads fine (and all games load fine) but when I try to load the Mii channel after the system menu, I get the LIBUSB_ERROR_OTHER. I have also soldered my own bluetooth passthrough adapter from a real Wii module. I tried using system restore to see if any drivers were the problem and I tried reinstalling drivers and disconnecting/reconnecting. Nothing helped.

#9 Updated by volfye over 2 years ago

I have no idea, but is this related? https://github.com/daynix/UsbDk/issues/43

#10 Updated by volfye over 2 years ago

I'm imagining that the device gets reset on close and that Dolphin is trying to open it too quickly and not waiting for the right event to know it's ready. I may try to recompile Dolphin and add a sleep to see if that fixes the issue.

#11 Updated by purechoass over 2 years ago

JMC4789 wrote:

Can you try the latest development version and maybe switch to another adapter and go through the process again? This really sounds like a Windows bug we can't control.

Hey,

So I have been using the latest development version. I re download the latest build maybe every couple days.

I tried using a bluetooth adapter I had. It is a finiky one but it did work with bluetooth passthrough but I had the exact same problem as with the wii bluetooth adapter.

I also have tried using all the usb ports on my computer. In case one of them was the culprit (I installed the drivers each time as well). Still no luck.

Thanks for trying to work through this with me :)

#12 Updated by purechoass over 2 years ago

volfye wrote:

I'm imagining that the device gets reset on close and that Dolphin is trying to open it too quickly and not waiting for the right event to know it's ready. I may try to recompile Dolphin and add a sleep to see if that fixes the issue.

Any chance you have an ES_launch game such as wii sports resort or metroid prime trilogy? Just to make sure this is the same issue or whether your problem is exclusive to the mii channel.

If you do manage to fix this with a recompile you will be a god among men! This issue has been driving me nuts! :-)

#13 Updated by purechoass over 2 years ago

Also I know a few of you have said it is a windows issue. But there must be something Dolphin can do to get round this? I say this because as mentioned above Bluetooth Passthrough works perfectly with Revision 5.0-2341 and prior. So I wonder what changed since then that brings this error?

#14 Updated by JMC4789 over 2 years ago

The "bug" was added by that version due to giving the option to use usbdk instead of WinUSB.

If you're still using WinUSB it should work.

Volfye - you're probably correct. If a simple sleep fixes it... that'd be great.

#15 Updated by purechoass over 2 years ago

JMC4789 wrote:

The "bug" was added by that version due to giving the option to use usbdk instead of WinUSB.

If you're still using WinUSB it should work.

Volfye - you're probably correct. If a simple sleep fixes it... that'd be great.

The wiki mentions that you must use libusbk so perhaps that needs to be changed to WinUSB? https://wiki.dolphin-emu.org/index.php?title=Bluetooth_Passthrough#Windows

And yeah I have been using WinUSB since you mentioned it a while back, to no avail.

#16 Updated by JMC4789 over 2 years ago

The bug is outside of Dolphin, as this issue doesn't happen on Linux.

It's just a question of if and how we should work-around this on Windows.

#17 Updated by leoetlino over 2 years ago

The only thing that may have broken some Windows setups is the change to only use a single libusb context, but that was reverted (as it ended up causing issues on some Windows systems), so I really can't see what could go wrong here...

And it doesn't seem like Dolphin is doing anything wrong.

If you are able to build Dolphin yourself, could you enable debug logging in libusb and use a program to view debug messages from libusb?

#18 Updated by mimimi over 2 years ago

It might be an adapter compatibility issue, or some SYSCONF issue? I can run the mii channel with passthrough on windows 7, but i get the error when i exit the mii channel and try to go back to the system menu. My adapter isn't good enough to remember the pairing, or some SYSCONF issue is interfering, and i have to do tricks to get my wiimote to sync at all, and it never remembers the pairing between 2 runs.

I'm using the usbdk driver installed to the system, instead of installing the right driver to the adapter. The adapter is using the ps3 to xinput wrapper driver.

#19 Updated by leoetlino over 2 years ago

Neither, it's really an issue with libusb and how it interacts with the operating system :/

#20 Updated by volfye over 2 years ago

I recompiled Dolphin and got a build that works. I added SendHCIResetCommand and WaitforHCICommandComplete calls:

ReturnCode BluetoothReal::Close(u32 fd)
{
if (m_handle)
{
SendHCIResetCommand();
WaitForHCICommandComplete(HCI_CMD_RESET);

libusb_release_interface(m_handle, 0);
StopTransferThread();
libusb_unref_device(m_device);
m_handle = nullptr;

}

return Device::Close(fd);
}

This fixes the issue but I think the code is wrong because I get warning dialogs about scheduleevent from the wrong thread non-cpu. I'm not sure what to do to get the reset called from the right thread.

Could you try this build purechoass to see if it fixes your issue:

https://drive.google.com/open?id=0B_U2gU3vy1_zWFNTQU4xeFpWaFk

#21 Updated by kiu about 2 years ago

Hi,

I am facing the exact same problem using win10 x64 and a Wii BT Module with passthrough. The last release that works is 5.0-2341.

The version modified by volfye "works" (I also have the warnings about schedule events).
When loading the Mii channel from Menu, I can see in the device manager that the BT module is released and used again. That is not the case with the Master branch.

#22 Updated by kiu about 2 years ago

JMC4789 wrote:

The "bug" was added by that version due to giving the option to use usbdk instead of WinUSB.

If you're still using WinUSB it should work.

So I've cleaned all libusb drivers and removed usbdk.
After a reboot, my Wii BT was recognized as a normal BT device by windows and passthrough was not working anymore.
I went through the Zadig process to replace the Windows BT driver by the WinUSB one and passthrough is not working at all.
Installing Usbdk makes passthrough work again.
I also tried removing any libusbk and winusb driver and having only usbdk installed. Passthrough worked

Using UsbDk does not seems to be an option. Dolphin requires it now and it was not the case till version 2341

#23 Updated by leoetlino about 2 years ago

It's possible libusb is still seeing an incomplete usbdk install in your case. Have you tried uninstalling it using the driver controller instead? https://github.com/daynix/UsbDk/blob/master/Documentation/Uninstallation.txt#L11-L13

A forum user has reported that this is the only reliable way to uninstall usbdk completely.

#24 Updated by kiu about 2 years ago

Hi Leoetlino and thanks for your answer.

You were right, usbDk was not uninstalled correctly. It requires a 2 step uninstall :
1- boot in safe mode and uninstall it with the driver controller
2- boot in normal mode and use uninstaller to clean the remaining files

Then I cleaned all remaining winusb and libusbk drivers (Zadig install a new driver each time you use it) using pnputil. After that step, Windows should identify the BCM2045A as a normal bluetooth device when you plug it.

I replaced the original windows drivers by Libusbk using Zadig for both WiiU controller adapter and BCM2045A... And TADA, it works !

#25 Updated by JosJuice about 2 years ago

#26 Updated by aidenn over 1 year ago

I can confirm that the issue exists (IOGear GBU421). I can also confirm that installing WinUSB over libusbK fixes the issue (proper safe-mode uninstall of usbdk is crucial).

Why is installing libusbK a required step in the wiki?

#27 Updated by JMC4789 over 1 year ago

  • Status changed from Questionable to Won't fix

These issues are all happening outside of Dolphin and don't occur on Linux or various WinUSB drivers. There's nothing we can do besides try to hack around it and there doesn't appear to be anyone interested in banging their head on it.

#28 Updated by JMC4789 over 1 year ago

Also available in: Atom PDF