Procházet zdrojové kódy

HID: Fix SL and SR buttons for right joycon

german77 před 5 roky
rodič
revize
eaf0c4af11
1 změnil soubory, kde provedl 6 přidání a 2 odebrání
  1. 6 2
      src/core/hle/service/hid/controllers/npad.cpp

+ 6 - 2
src/core/hle/service/hid/controllers/npad.cpp

@@ -413,12 +413,16 @@ void Controller_NPad::RequestPadStateUpdate(u32 npad_id) {
         lstick_entry.y = static_cast<s32>(stick_l_y_f * HID_JOYSTICK_MAX);
         lstick_entry.y = static_cast<s32>(stick_l_y_f * HID_JOYSTICK_MAX);
     }
     }
 
 
-    if (controller_type == NPadControllerType::JoyLeft ||
-        controller_type == NPadControllerType::JoyRight) {
+    if (controller_type == NPadControllerType::JoyLeft) {
         pad_state.left_sl.Assign(button_state[SL - BUTTON_HID_BEGIN]->GetStatus());
         pad_state.left_sl.Assign(button_state[SL - BUTTON_HID_BEGIN]->GetStatus());
         pad_state.left_sr.Assign(button_state[SR - BUTTON_HID_BEGIN]->GetStatus());
         pad_state.left_sr.Assign(button_state[SR - BUTTON_HID_BEGIN]->GetStatus());
     }
     }
 
 
+    if (controller_type == NPadControllerType::JoyRight) {
+        pad_state.right_sl.Assign(button_state[SL - BUTTON_HID_BEGIN]->GetStatus());
+        pad_state.right_sr.Assign(button_state[SR - BUTTON_HID_BEGIN]->GetStatus());
+    }
+
     if (controller_type == NPadControllerType::GameCube) {
     if (controller_type == NPadControllerType::GameCube) {
         trigger_entry.l_analog = static_cast<s32>(
         trigger_entry.l_analog = static_cast<s32>(
             button_state[ZL - BUTTON_HID_BEGIN]->GetStatus() ? HID_TRIGGER_MAX : 0);
             button_state[ZL - BUTTON_HID_BEGIN]->GetStatus() ? HID_TRIGGER_MAX : 0);