summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authortommywaaf <tommywaaf@users.noreply.github.com>2026-06-05 12:37:30 -0400
committertommywaaf <tommywaaf@users.noreply.github.com>2026-07-06 19:58:42 -0400
commit342115806beb93a1f14dd9e40b6839148d70b986 (patch)
treed73a117c51863a6679ff61978f880d13f3bea334 /Source
parentaabea5b1e3f13177aa302f99b435a70ad6a9b0b1 (diff)
Android: Route DolphinBar Balance Board to the Balance Board slot
WiimoteScannerAndroid::FindAttachedWiimotes() added every device connected through the DolphinBar to the Wii Remote results, with a TODO noting that balance boards were not differentiated. As a result, a Wii Balance Board connected through the DolphinBar was always assigned to a Wii Remote slot (Player 1), and games that request a Balance Board never detected it. Use Wiimote::IsBalanceBoard() to route balance boards into the balance_boards results, matching the Linux and Windows scanner backends. Tested on an AYN Thor (Android 13) with a Mayflash DolphinBar in Mode 4 running Wii Fit Plus: the board is now detected in the Balance Board slot.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp b/Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp
index e82f389a21..5e201d6ac2 100644
--- a/Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp
+++ b/Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp
@@ -46,10 +46,12 @@ auto WiimoteScannerAndroid::FindAttachedWiimotes() -> FindResults
if (!wiimote->ConnectInternal())
continue;
- // TODO: We make no attempt to differentiate balance boards here.
- // wiimote->IsBalanceBoard() would probably be enough to do that.
-
- results.wii_remotes.emplace_back(std::move(wiimote));
+ // Differentiate balance boards so they are routed to the balance
+ // board results rather than being treated as a regular Wii Remote.
+ if (wiimote->IsBalanceBoard())
+ results.balance_boards.emplace_back(std::move(wiimote));
+ else
+ results.wii_remotes.emplace_back(std::move(wiimote));
}
}