diff --git a/src/input_common/gcadapter/gc_adapter.cpp b/src/input_common/gcadapter/gc_adapter.cpp index f58b0e11c1..b39d2a3fb4 100644 --- a/src/input_common/gcadapter/gc_adapter.cpp +++ b/src/input_common/gcadapter/gc_adapter.cpp @@ -156,14 +156,12 @@ void Adapter::Read() { pads[port].axis_value = pads[port].substick_y; pad_queue[port].Push(pads[port]); } - if (pads[port].trigger_left > pads[port].TRIGGER_CENTER + pads[port].THRESHOLD || - pads[port].trigger_left < pads[port].TRIGGER_CENTER - pads[port].THRESHOLD) { + if (pads[port].trigger_left > pads[port].TRIGGER_THRESHOLD) { pads[port].axis = GCAdapter::PadAxes::TriggerLeft; pads[port].axis_value = pads[port].trigger_left; pad_queue[port].Push(pads[port]); } - if (pads[port].trigger_right > pads[port].TRIGGER_CENTER + pads[port].THRESHOLD || - pads[port].trigger_right < pads[port].TRIGGER_CENTER - pads[port].THRESHOLD) { + if (pads[port].trigger_right > pads[port].TRIGGER_THRESHOLD) { pads[port].axis = GCAdapter::PadAxes::TriggerRight; pads[port].axis_value = pads[port].trigger_right; pad_queue[port].Push(pads[port]); diff --git a/src/input_common/gcadapter/gc_adapter.h b/src/input_common/gcadapter/gc_adapter.h index 161d522ac3..0ea6263ebd 100644 --- a/src/input_common/gcadapter/gc_adapter.h +++ b/src/input_common/gcadapter/gc_adapter.h @@ -63,9 +63,11 @@ struct GCPadStatus { static constexpr u8 C_STICK_CENTER_X = 0x80; static constexpr u8 C_STICK_CENTER_Y = 0x80; static constexpr u8 C_STICK_RADIUS = 0x7f; - static constexpr u8 TRIGGER_CENTER = 20; static constexpr u8 THRESHOLD = 10; + // 256/4, at least a quarter press to count as a press. For polling mostly + static constexpr u8 TRIGGER_THRESHOLD = 64; + u8 port{}; PadAxes axis{PadAxes::Undefined}; u8 axis_value{255};