From ae44f17667ed5d5f43921dc5181cde048b9b2eb2 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 19 Jul 2020 09:40:46 -0500 Subject: [PATCH] HW/GCPadEmu: Adjust gate radius values to more closely match the real hardware. --- Source/Core/Core/HW/GCPadEmu.cpp | 8 ++------ Source/Core/Core/HW/GCPadEmu.h | 5 +++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/HW/GCPadEmu.cpp b/Source/Core/Core/HW/GCPadEmu.cpp index c8e7016ace..8b16173312 100644 --- a/Source/Core/Core/HW/GCPadEmu.cpp +++ b/Source/Core/Core/HW/GCPadEmu.cpp @@ -64,14 +64,10 @@ GCPad::GCPad(const unsigned int index) : m_index(index) } // sticks - constexpr auto main_gate_radius = - ControlState(MAIN_STICK_GATE_RADIUS) / GCPadStatus::MAIN_STICK_RADIUS; groups.emplace_back(m_main_stick = new ControllerEmu::OctagonAnalogStick( - "Main Stick", _trans("Control Stick"), main_gate_radius)); - - constexpr auto c_gate_radius = ControlState(C_STICK_GATE_RADIUS) / GCPadStatus::C_STICK_RADIUS; + "Main Stick", _trans("Control Stick"), MAIN_STICK_GATE_RADIUS)); groups.emplace_back(m_c_stick = new ControllerEmu::OctagonAnalogStick( - "C-Stick", _trans("C Stick"), c_gate_radius)); + "C-Stick", _trans("C Stick"), C_STICK_GATE_RADIUS)); // triggers groups.emplace_back(m_triggers = new ControllerEmu::MixedTriggers(_trans("Triggers"))); diff --git a/Source/Core/Core/HW/GCPadEmu.h b/Source/Core/Core/HW/GCPadEmu.h index 9134ba9eee..daf7b04243 100644 --- a/Source/Core/Core/HW/GCPadEmu.h +++ b/Source/Core/Core/HW/GCPadEmu.h @@ -46,8 +46,9 @@ public: void LoadDefaults(const ControllerInterface& ciface) override; - static const u8 MAIN_STICK_GATE_RADIUS = 87; - static const u8 C_STICK_GATE_RADIUS = 74; + // Values averaged from multiple genuine GameCube controllers. + static constexpr ControlState MAIN_STICK_GATE_RADIUS = 0.7937125; + static constexpr ControlState C_STICK_GATE_RADIUS = 0.7221375; private: ControllerEmu::Buttons* m_buttons;