yuzu-emu
/
yuzu
Archived
1
0
Fork 0

Fix for always firing triggers on some controllers, trigger threshold more universal

This commit is contained in:
Ameer 2020-07-04 00:40:48 -04:00
parent e69d715e3d
commit d00972fce1
2 changed files with 5 additions and 5 deletions

View File

@ -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]);

View File

@ -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};