diff --git a/Ryujinx.HLE/Input/Hid.cs b/Ryujinx.HLE/Input/Hid.cs index c35fb07c..0154fc63 100644 --- a/Ryujinx.HLE/Input/Hid.cs +++ b/Ryujinx.HLE/Input/Hid.cs @@ -39,7 +39,7 @@ namespace Ryujinx.HLE.Input PrimaryController.Connect(controllerId); } - private HidControllerButtons UpdateStickButtons( + public HidControllerButtons UpdateStickButtons( HidJoystickPosition leftStick, HidJoystickPosition rightStick) { diff --git a/Ryujinx.HLE/Input/HidNpadController.cs b/Ryujinx.HLE/Input/HidNpadController.cs index 90cffbdd..45dee3ca 100644 --- a/Ryujinx.HLE/Input/HidNpadController.cs +++ b/Ryujinx.HLE/Input/HidNpadController.cs @@ -81,6 +81,12 @@ Device.Memory.WriteInt64(controllerOffset + 0x28, (Connected ? (uint)HidControllerConnState.ControllerStateConnected : 0) | (_currentLayout == HidControllerLayouts.HandheldJoined ? (uint)HidControllerConnState.ControllerStateWired : 0)); + + controllerOffset = WriteInput(buttons, leftStick, rightStick, HidControllerLayouts.Main); + + Device.Memory.WriteInt64(controllerOffset + 0x28, + (Connected ? (uint)HidControllerConnState.ControllerStateWired : 0) | + (uint)HidControllerConnState.ControllerStateWired); } } } diff --git a/Ryujinx.HLE/Input/HidProController.cs b/Ryujinx.HLE/Input/HidProController.cs index f08fb085..e30e9172 100644 --- a/Ryujinx.HLE/Input/HidProController.cs +++ b/Ryujinx.HLE/Input/HidProController.cs @@ -39,6 +39,12 @@ Device.Memory.WriteInt64(controllerOffset + 0x28, (Connected ? (uint)HidControllerConnState.ControllerStateConnected : 0) | (_wired ? (uint)HidControllerConnState.ControllerStateWired : 0)); + + controllerOffset = WriteInput(buttons, leftStick, rightStick, HidControllerLayouts.Main); + + Device.Memory.WriteInt64(controllerOffset + 0x28, + (Connected ? (uint)HidControllerConnState.ControllerStateWired : 0) | + (uint)HidControllerConnState.ControllerStateWired); } } } diff --git a/Ryujinx/Ui/GLScreen.cs b/Ryujinx/Ui/GLScreen.cs index 02335999..e3a6d299 100644 --- a/Ryujinx/Ui/GLScreen.cs +++ b/Ryujinx/Ui/GLScreen.cs @@ -174,6 +174,8 @@ namespace Ryujinx Dy = rightJoystickDy }; + currentButton |= _device.Hid.UpdateStickButtons(leftJoystick, rightJoystick); + bool hasTouch = false; //Get screen touch position from left mouse click