Skip to content
Permalink
Browse files
Merge pull request #8963 from jordan-woyak/gcpad-gate-adj
HW/GCPadEmu: Adjust gate radius values to more closely match the real hardware.
  • Loading branch information
lioncash committed Jul 19, 2020
2 parents 487cd7a + ae44f17 commit d48056c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
@@ -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")));
@@ -46,8 +46,9 @@ class GCPad : public ControllerEmu::EmulatedController

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;

0 comments on commit d48056c

Please sign in to comment.