mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-23 21:51:36 +02:00

This adds the option to configure real Wiimotes by specifying their Bluetooth addresses in the configuration file. This allows off-brand Wiimotes to work without using the Bluetooth Passthrough option, if you know their Bluetooth addresses beforehand. Despite correctly setting the LAP to `0x9e8b00` in `WiimoteScannerLinux::FindWiimotes` while scanning, which is indeed enough to make off-brand / knock-off Wiimotes respond to a Bluetooth Inquiry, some (several? all?) bluetooth adapters seem to override and ignore this given LAP value when performing the Inquiry, and actually use the `0x9e8b33` value as if a null pointer have been given to `hci_inquiry`, as inspection of USB/Bluetooth packets by Wireshark indicate. Off-brand Wiimotes don't respond to inquiries with this LAP. If one happens to know the Bluetooth address of their Wiimote (for example, by checking `BluetoothPassthrough.LinkKeys` after using Bluetooth Passthrough, or other means such as directly using `libusb` to force the adapter to use the correct LAP in the Inquiry), then it's enough to add those addresses to the vector of found Wiimotes. Since this a niche use case and I only happen to know and have tested in Linux, this change only affects the `WiimoteScannerLinux` backend. It's likely that it could be added to other backends, but I'm unfamiliar with these. If no addresses are given or this config section does not exist, behavior is completely unchanged.