aboutsummaryrefslogtreecommitdiff
path: root/src/hid_core/frontend/emulated_controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hid_core/frontend/emulated_controller.cpp')
-rw-r--r--src/hid_core/frontend/emulated_controller.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/hid_core/frontend/emulated_controller.cpp b/src/hid_core/frontend/emulated_controller.cpp
index 37a892c37f..604414c470 100644
--- a/src/hid_core/frontend/emulated_controller.cpp
+++ b/src/hid_core/frontend/emulated_controller.cpp
@@ -924,10 +924,20 @@ void EmulatedController::SetButton(const Common::Input::CallbackStatus& callback
lock.unlock();
- if (!is_connected && !controller_connected[player_index]) {
- if (player.connected) {
- Connect();
- controller_connected[player_index] = true;
+ if (!is_connected) {
+ if (npad_type == NpadStyleIndex::Handheld) {
+ if (npad_id_type == NpadIdType::Handheld) {
+ Connect();
+ controller_connected[player_index] = true;
+ }
+ } else if (npad_type != NpadStyleIndex::Handheld) {
+ if (npad_id_type == NpadIdType::Player1) {
+ Connect();
+ controller_connected[player_index] = true;
+ } else if (player.connected && !controller_connected[player_index]) {
+ Connect();
+ controller_connected[player_index] = true;
+ }
}
}