summaryrefslogtreecommitdiff
path: root/src/core/hid/emulated_controller.cpp
diff options
context:
space:
mode:
authorGravatar german772023-01-14 11:53:43 -0600
committerGravatar german772023-01-14 11:53:43 -0600
commit50c86b3c2ac55c474208681494ec458d24850ae7 (patch)
treefba0b624578adad571e81490e53ada1b14be363a /src/core/hid/emulated_controller.cpp
parentMerge pull request #9605 from german77/mouse_mapping (diff)
downloadyuzu-50c86b3c2ac55c474208681494ec458d24850ae7.tar.gz
yuzu-50c86b3c2ac55c474208681494ec458d24850ae7.tar.xz
yuzu-50c86b3c2ac55c474208681494ec458d24850ae7.zip
core: hid: Fix stick minimum range
Diffstat (limited to 'src/core/hid/emulated_controller.cpp')
-rw-r--r--src/core/hid/emulated_controller.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 7a01f3f4c..a959c9db9 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -10,6 +10,7 @@
10 10
11namespace Core::HID { 11namespace Core::HID {
12constexpr s32 HID_JOYSTICK_MAX = 0x7fff; 12constexpr s32 HID_JOYSTICK_MAX = 0x7fff;
13constexpr s32 HID_JOYSTICK_MIN = 0x7ffe;
13constexpr s32 HID_TRIGGER_MAX = 0x7fff; 14constexpr s32 HID_TRIGGER_MAX = 0x7fff;
14// Use a common UUID for TAS and Virtual Gamepad 15// Use a common UUID for TAS and Virtual Gamepad
15constexpr Common::UUID TAS_UUID = 16constexpr Common::UUID TAS_UUID =
@@ -798,9 +799,16 @@ void EmulatedController::SetStick(const Common::Input::CallbackStatus& callback,
798 return; 799 return;
799 } 800 }
800 801
802 const auto FloatToShort = [](float a) {
803 if (a > 0) {
804 return static_cast<s32>(a * HID_JOYSTICK_MAX);
805 }
806 return static_cast<s32>(a * HID_JOYSTICK_MIN);
807 };
808
801 const AnalogStickState stick{ 809 const AnalogStickState stick{
802 .x = static_cast<s32>(controller.stick_values[index].x.value * HID_JOYSTICK_MAX), 810 .x = FloatToShort(controller.stick_values[index].x.value),
803 .y = static_cast<s32>(controller.stick_values[index].y.value * HID_JOYSTICK_MAX), 811 .y = FloatToShort(controller.stick_values[index].y.value),
804 }; 812 };
805 813
806 switch (index) { 814 switch (index) {