diff --git a/shell/android-studio/flycast/src/main/jni/src/android_gamepad.h b/shell/android-studio/flycast/src/main/jni/src/android_gamepad.h index c649d02c3..97e2e7417 100644 --- a/shell/android-studio/flycast/src/main/jni/src/android_gamepad.h +++ b/shell/android-studio/flycast/src/main/jni/src/android_gamepad.h @@ -247,6 +247,9 @@ public: static void AddAndroidGamepad(std::shared_ptr gamepad) { + auto it = android_gamepads.find(gamepad->android_id); + if (it != android_gamepads.end()) + GamepadDevice::Unregister(it->second); android_gamepads[gamepad->android_id] = gamepad; GamepadDevice::Register(gamepad); };