Try to prevent any remaining "stickiness" when you map analog axises to buttons/direction
This commit is contained in:
parent
b24ea4014a
commit
3b4cf31197
1 changed files with 4 additions and 0 deletions
|
@ -330,6 +330,8 @@ void EmuScreen::axis(const AxisInput &axis) {
|
||||||
|
|
||||||
void EmuScreen::processAxis(const AxisInput &axis, int direction) {
|
void EmuScreen::processAxis(const AxisInput &axis, int direction) {
|
||||||
int result = KeyMap::AxisToPspButton(axis.deviceId, axis.axisId, direction);
|
int result = KeyMap::AxisToPspButton(axis.deviceId, axis.axisId, direction);
|
||||||
|
int resultOpposite = KeyMap::AxisToPspButton(axis.deviceId, axis.axisId, -direction);
|
||||||
|
|
||||||
if (result == KEYMAP_ERROR_UNKNOWN_KEY)
|
if (result == KEYMAP_ERROR_UNKNOWN_KEY)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -369,7 +371,9 @@ void EmuScreen::processAxis(const AxisInput &axis, int direction) {
|
||||||
if (result != KEYMAP_ERROR_UNKNOWN_KEY)
|
if (result != KEYMAP_ERROR_UNKNOWN_KEY)
|
||||||
pspKey(result, KEY_UP);
|
pspKey(result, KEY_UP);
|
||||||
} else {
|
} else {
|
||||||
|
// Release both directions, trying to deal with some erratic controllers that can cause it to stick.
|
||||||
pspKey(result, KEY_UP);
|
pspKey(result, KEY_UP);
|
||||||
|
pspKey(resultOpposite, KEY_UP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue