Fix for always firing triggers on some controllers, trigger threshold more universal
This commit is contained in:
parent
e69d715e3d
commit
d00972fce1
|
@ -156,14 +156,12 @@ void Adapter::Read() {
|
||||||
pads[port].axis_value = pads[port].substick_y;
|
pads[port].axis_value = pads[port].substick_y;
|
||||||
pad_queue[port].Push(pads[port]);
|
pad_queue[port].Push(pads[port]);
|
||||||
}
|
}
|
||||||
if (pads[port].trigger_left > pads[port].TRIGGER_CENTER + pads[port].THRESHOLD ||
|
if (pads[port].trigger_left > pads[port].TRIGGER_THRESHOLD) {
|
||||||
pads[port].trigger_left < pads[port].TRIGGER_CENTER - pads[port].THRESHOLD) {
|
|
||||||
pads[port].axis = GCAdapter::PadAxes::TriggerLeft;
|
pads[port].axis = GCAdapter::PadAxes::TriggerLeft;
|
||||||
pads[port].axis_value = pads[port].trigger_left;
|
pads[port].axis_value = pads[port].trigger_left;
|
||||||
pad_queue[port].Push(pads[port]);
|
pad_queue[port].Push(pads[port]);
|
||||||
}
|
}
|
||||||
if (pads[port].trigger_right > pads[port].TRIGGER_CENTER + pads[port].THRESHOLD ||
|
if (pads[port].trigger_right > pads[port].TRIGGER_THRESHOLD) {
|
||||||
pads[port].trigger_right < pads[port].TRIGGER_CENTER - pads[port].THRESHOLD) {
|
|
||||||
pads[port].axis = GCAdapter::PadAxes::TriggerRight;
|
pads[port].axis = GCAdapter::PadAxes::TriggerRight;
|
||||||
pads[port].axis_value = pads[port].trigger_right;
|
pads[port].axis_value = pads[port].trigger_right;
|
||||||
pad_queue[port].Push(pads[port]);
|
pad_queue[port].Push(pads[port]);
|
||||||
|
|
|
@ -63,9 +63,11 @@ struct GCPadStatus {
|
||||||
static constexpr u8 C_STICK_CENTER_X = 0x80;
|
static constexpr u8 C_STICK_CENTER_X = 0x80;
|
||||||
static constexpr u8 C_STICK_CENTER_Y = 0x80;
|
static constexpr u8 C_STICK_CENTER_Y = 0x80;
|
||||||
static constexpr u8 C_STICK_RADIUS = 0x7f;
|
static constexpr u8 C_STICK_RADIUS = 0x7f;
|
||||||
static constexpr u8 TRIGGER_CENTER = 20;
|
|
||||||
static constexpr u8 THRESHOLD = 10;
|
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{};
|
u8 port{};
|
||||||
PadAxes axis{PadAxes::Undefined};
|
PadAxes axis{PadAxes::Undefined};
|
||||||
u8 axis_value{255};
|
u8 axis_value{255};
|
||||||
|
|
Loading…
Reference in New Issue