Dolphin, the GameCube and Wii emulator - Forums

Full Version: dolphin debug multiple wiimotes
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
I've setup dolphin on a Linux PC, followed https://wiki.dolphin-emu.org/index.php?t...ough#Linux and wrote the udev rule accordingly and tried to launch a game and setup two wiimotes.

It worked perfectly; without issues.

dolphin recognized the two wiimotes and I could play the game.

I wanted to test if this worked reliably, so I rebooted the PC *and* the wiimotes, and now only the first one connects to dolphin.

I tried to click on the sync button, on 1+2, remove the batteries, whatever, nothing works.

How can I troubleshoot the issue?
I've enabled the log for the wiimote, set the log level to info, and enabled all three "write to file/console/window", yet in the window the log output is completely empty, even before and after the first wiimote is found (and works correctly).

Any recommendation?
Hello, so I've managed to find the log file in ~/.local/share/dolphin-emu/Logs/dolphin.log, strangely the UI does not show the same content

----
21:33:011 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 0 in slot 0)
21:33:011 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 1 in slot 1)
21:33:012 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 2 in slot 2)
21:33:012 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 3 in slot 3)
21:33:015 Core/HW/WiimoteReal/WiimoteReal.cpp:885 N[Wiimote]: WiimoteReal::Initialize
21:33:015 Core/HW/WiimoteReal/WiimoteReal.cpp:685 N[Wiimote]: Wiimote scanning thread has started.
21:34:301 Core/HW/WiimoteReal/IOLinux.cpp:78 N[Wiimote]: found a device...
21:34:542 Core/HW/WiimoteReal/IOLinux.cpp:88 N[Wiimote]: device name Nintendo RVL-CNT-01
21:34:542 Core/HW/WiimoteReal/IOLinux.cpp:108 N[Wiimote]: Found Wiimote (00:1F:C5:68:C7:93).
21:53:438 InputCommon/ControllerInterface/Wiimote/WiimoteController.cpp:309 I[Wiimote]: WiiRemote: Returning remote to pool.
21:55:802 Core/IOS/USB/Bluetooth/BTReal.cpp:112 W[IOS_WIIMOTE]: Failed to get string for manufacturer descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
21:55:802 Core/IOS/USB/Bluetooth/BTReal.cpp:125 W[IOS_WIIMOTE]: Failed to get string for product descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
21:55:803 Core/IOS/USB/Bluetooth/BTReal.cpp:138 W[IOS_WIIMOTE]: Failed to get string for serial number descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
21:55:803 Core/IOS/USB/Bluetooth/BTReal.cpp:147 N[IOS_WIIMOTE]: Using device 8087:0029 (rev 1) for Bluetooth: ? ? ?
32:22:154 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 0 in slot 0)
32:22:154 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 1 in slot 1)
32:22:154 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 2 in slot 2)
32:22:155 Core/HW/WiimoteEmu/EmuSubroutines.cpp:186 I[Wiimote]: Attaching Motion Plus (Wiimote 3 in slot 3)
32:22:164 Core/HW/WiimoteReal/WiimoteReal.cpp:885 N[Wiimote]: WiimoteReal::Initialize
32:22:165 Core/HW/WiimoteReal/WiimoteReal.cpp:685 N[Wiimote]: Wiimote scanning thread has started.
32:35:804 Core/IOS/USB/Bluetooth/BTReal.cpp:112 W[IOS_WIIMOTE]: Failed to get string for manufacturer descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
32:35:804 Core/IOS/USB/Bluetooth/BTReal.cpp:125 W[IOS_WIIMOTE]: Failed to get string for product descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
32:35:804 Core/IOS/USB/Bluetooth/BTReal.cpp:138 W[IOS_WIIMOTE]: Failed to get string for serial number descriptor 00 for device 8087:0029 (rev 1): Invalid parameter (-2: LIBUSB_ERROR_INVALID_PARAM)
32:35:804 Core/IOS/USB/Bluetooth/BTReal.cpp:147 N[IOS_WIIMOTE]: Using device 8087:0029 (rev 1) for Bluetooth: ? ? ?
----

This are all the log lines with "wiimote" in it.

I've tried playing Mario Kart Wii with multiple users, the first wiimote always connects without issues.
The from the add other wiimote interface I try to add the other one without success.

What helped in a couple of tests was pressing the "sync" button in the "controller menu" of dolphin.

I thought this was not necessary if continuous scanning was enabled?

A couple of times pressing on sync helped and the wiimote connected; I was able to connect all three wiimotes I have (3).
The test after that, all wiimotes connected again without any interaction.

The time after it, only two of the three wiimotes connected, pressing the sync button did not help.

(between tests I did not restart dolphin, just the game)


My current version of dolphin is Dolphin 5.0-19368-dadbeb4bae7e7fa23, bluetooth otherwise seems to work correctly (I did not pair the remote outside of dolphin on the computer I'm currently using)
If I'm understanding correctly, you're using Bluetooth Passthrough, right? When using BT Passthrough, the emulated game has full control of the BT adapter while it's running, and that includes the pairing functionality. In other words, Dolphin's Continuous Scanning option has no effect when using BT Passthrough.

Now, regarding your reconnection issues, that's one of the many quirks of BT passthrough. Perfect compatibility is only guaranteed when using the BT module from a real Wii, other adapters are a hit or miss. From your log, you seem to be using the integrated BT adapter of a Intel Wi-Fi card, and they're known for having reconnection issues when using multiple Wiimotes simultaneously. If you use just one Wiimote, the Intel adapters work flawlessly, the moment you add more Wiimotes, they become finicky (including randomly forgetting the previous pairings) ¯\_(ツ)_/¯
Intel bluetooth has lots of issues.

Many are reported here https://community.intel.com/t5/Wireless/...-p/1460592

All ignored by intel. Dont expect two controllers to work. And when using one, only non TR. TR ones doesnt have full support with this bluetooth. Dont waste your time with that trash. It´s unfixable.
Thank you for your answers

@mbc07, yes I am using bluetooth passthough, otherwise the accelerometer (essential for MKW) does not work.

> In other words, Dolphin's Continuous Scanning option has no effect when using BT Passthrough.

Huh? I understood it was the opposite.
Since dolphin is responsible for the bluetooth adapter, it should scan by itself the whole time.
If passthrough is disabled, then the wiimote is connected to the PC outside of dolphin, and dolphin needs no scanning.

@trihy
> And when using one, only non TR. TR ones doesnt have full support with this bluetooth

I'm not sure how to recognize if my wiimotes (all original) are TR or not.

> Dont waste your time with that trash.

I suppose you are referring to Intel bluetooth, and not the TR... ?


Either way, it seems that if I want to use multiple wiimotes, I need an external bluetooth adapter.

Are there any recommendation?
Since I do not have a sensor bar (I mean, I have the original one, but I do not want to turn the wii on only for that...) I'm thinking right now about the Dolphinbar, which is also mentioned in this forum multiple times.

Or does it also have known issues with TR/non-TR and multiple wiimotes?


Since it seems a big limitation where dolphin cannot do much I'm wondering if this issue is explained in some FAQ that I've overlooked, I'm certainly not the first one having those issues...
Most wiimotes nowadays are TR. You can check when connecting them through normal BT, TR will be on the name. Even with a cellphone can be check, it will be on BT list if you hit sync button. For passthrough mode it wont make any difference, both will work.

Intel BT is the problem. It cant handle multiple controllers, doesnt matter if wiimotes or dualshock. And most notebooks and pc are plagued with this trash.

Here you have some recommended BT dongles

https://wiki.dolphin-emu.org/index.php?t...assthrough

Dont think dolphin bar can be used as passthrough, but not sure, never had one.
Thank you @trihy

I searched at https://dolphin-emu.org/docs/guides/reco...s-dolphin/, but it was not that helpful...

I completely overlooked that table, it even mentions that the intel adapters have issues connecting multiple Wii Remotes!!!
(I guess the page could be improved by stating that it is a hardware issue, and that it does not depend on dolphin)

I suppose (hope) that unless otherwise mentioned, the Bluetooth adapters marked green work on GNU/Linux systems.

Still I'm thinking about the DolphinBar, as far as I've read the main disadvantage is that passthroug does not work, but otherwise it would have the advantage that I do not need to buy a bar separately.


In the table there is nothing about other gadgets, like the Wii Balance Board, are there known limitations/issues?
I did not test it yet with my current setup...
If you want to use wii accessories, I guess passthrough is the way to go. Balance board will work. You can always buy a usb sensor bar or cut the cable and solder an usb port to the wii one.

Tplink UB400 and UB500 are cheap and work pretty good on Non passthorugh. Couldnt test them on passthrough.

And yes, the bt dongle list is not up to date sadly.
All my three wiimotes are named "Nintendo RVL-CNT-01" (checked with the phone as you suggested), so it seems I do not have the newer -TR remotes.



> Tplink UB400 and UB500 are cheap and work pretty good on Non passthorugh. Couldnt test them on passthrough.


Are there known cases where an adapter works well in "Non passthorugh", but not in "passthorugh" mode?
(08-30-2023, 05:03 PM)fran Wrote: [ -> ]@mbc07, yes I am using bluetooth passthough, otherwise the accelerometer (essential for MKW) does not work.

> In other words, Dolphin's Continuous Scanning option has no effect when using BT Passthrough.

Huh? I understood it was the opposite.
Since dolphin is responsible for the bluetooth adapter, it should scan by itself the whole time.
If passthrough is disabled, then the wiimote is connected to the PC outside of dolphin, and dolphin needs no scanning.
It's been a while since I last used Dolphin on Linux, but you shouldn't need Bluetooth Passthrough to get the motion sensors working.

Regarding the modes, Dolphin's default "emulate a BT adapter" means Dolphin will manage the communication with the Wiimotes, including discovering/pairing, using the Bluetooth stack from the host OS you're running (Windows, Linux, macOS, etc.) and will feed that into an emulated BT adapter, which is what the Wii titles will see. Since Dolphin is managing the connection, in that mode you can use "Continuous Scanning", "Enable Speaker Data", "Connect Wiimotes to Emulated Controllers" and so on.

In the second mode, "passthrough a BT adapter", Dolphin doesn't emulate a BT adapter anymore and simply gives the running Wii title full control of the physical adapter, entirely bypassing the Bluetooth stack from the host OS. Since the game is managing the connection, all Dolphin can do is send "sync" and "reset" events to the emulated game (when you click the respective buttons in Dolphin's GUI), which will do the discovering and pairing itself, like it would on a real Wii. That's also why it can be finicky when using different BT adapters (other than the custom BCM2045 used on a real Wii), as the BT stack used on a real Wii was made with only that adapter in mind.


(08-31-2023, 03:45 AM)trihy Wrote: [ -> ]Intel BT is the problem. It cant handle multiple controllers, doesnt matter if wiimotes or dualshock. And most notebooks and pc are plagued with this trash.
That's not entirely accurate, while their adapters are finicky with Dolphin's BT passthrough mode, normal usage (with Intel's official drivers) is very stable.

It's not a coincidence the majority of laptops nowadays uses Intel cards (either that or the Mediatek-branded card normally found on AMD Ryzen laptops, but people usually replace that with an Intel one as it's very bad). Intel, however, does not make standalone BT adapters, they're always integrated on a M.2 Wi-Fi card (or soldered directly in the mainboard in some laptops), so the OEM is solely responsible for the antenna design. Get a laptop or PC with a bad antenna design (common on the lower end), Bluetooth will suffer, that's all.

For reference, my previous laptop had serious trouble maintaining connection with more than 2 BT devices (it came with a different card, before I replaced it with an Intel 9260), yet my current one (came with an Intel AX201 from factory) already managed 8 BT devices simultaneously (a mix of DualShock 4's, Wiimotes and also a smartphone and a mouse), without any lag or dropouts.


(09-01-2023, 07:53 PM)fran Wrote: [ -> ]Are there known cases where an adapter works well in "Non passthorugh", but not in "passthorugh" mode?
That's the most common case. Nearly any BT adapter will work in regular mode, but most will have trouble with passthrough mode...
Pages: 1 2