From 918a419131f45199c03d361a19c406a9ec107282 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 3 Jan 2026 04:59:55 -0600 Subject: [PATCH] WiimoteReal: Immediately disconnect balance boards when disabled rather than placing them in the temporary pool. --- Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp index 603ad9ed0f..639e467bd6 100644 --- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp @@ -1052,7 +1052,13 @@ void HandleWiimoteSourceChange(unsigned int index) { const Core::CPUThreadGuard guard(Core::System::GetInstance()); - if (auto removed_wiimote = std::move(g_wiimotes[index])) + auto removed_wiimote = std::move(g_wiimotes[index]); + + // The Wiimote pool isn't currently designed to handle Balance Boards. + // Refactoring will be needed to differentiate between remotes/boards. + const bool is_balance_board = index == WIIMOTE_BALANCE_BOARD; + + if (removed_wiimote != nullptr && !is_balance_board) AddWiimoteToPool(std::move(removed_wiimote)); } g_controller_interface.PlatformPopulateDevices([] { ProcessWiimotePool(); });