From 8ba44162fa774ca8b516202bad6f5ae147eb05d6 Mon Sep 17 00:00:00 2001 From: GalaxisBeast Date: Wed, 26 Aug 2026 15:55:57 -0400 Subject: [PATCH] Update wup028_adapter.cpp --- runtime/src/wup028_adapter.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runtime/src/wup028_adapter.cpp b/runtime/src/wup028_adapter.cpp index 4331386..d205f41 100644 --- a/runtime/src/wup028_adapter.cpp +++ b/runtime/src/wup028_adapter.cpp @@ -239,6 +239,7 @@ bool RefreshInputStream(Device& device) { void ClearConnectedPorts(const char* reason) { std::lock_guard lock(g_mutex); + g_rumble.fill(0); for (size_t port = 0; port < g_info.ports.size(); ++port) { if (g_info.ports[port]) { g_info.ports[port] = false; @@ -387,7 +388,11 @@ bool Read(std::array& statuses) { bool SetRumble(uint32_t port, bool enabled) { if (port >= g_rumble.size() || !g_connected.load(std::memory_order_acquire)) return false; std::lock_guard lock(g_mutex); - if (!g_connected.load(std::memory_order_acquire) || g_statuses[port].err != PAD_ERR_NONE) return false; + if (!g_connected.load(std::memory_order_acquire)) return false; + if (g_statuses[port].err != PAD_ERR_NONE) { + g_rumble[port] = 0; + return false; + } g_rumble[port] = enabled ? 1 : 0; return true; }