From ca39e3a46f4af1976b576b9a75870a7a63f4c6e0 Mon Sep 17 00:00:00 2001 From: Albert Herranz Date: Mon, 15 Jul 2024 00:36:02 +0200 Subject: [PATCH] XBOXOLD: fix analog hat readings Properly read left and right analog hat values as 16bit little endian integers. Signed-off-by: Albert Herranz --- XBOXOLD.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/XBOXOLD.cpp b/XBOXOLD.cpp index bd5a2ce1..186621dc 100644 --- a/XBOXOLD.cpp +++ b/XBOXOLD.cpp @@ -343,10 +343,10 @@ void XBOXOLD::readReport() { for(uint8_t i = 0; i < sizeof (buttonValues); i++) buttonValues[i] = readBuf[i + 4]; // A, B, X, Y, BLACK, WHITE, L1, and R1 - hatValue[LeftHatX] = (int16_t)(((uint16_t)readBuf[12] << 8) | readBuf[13]); - hatValue[LeftHatY] = (int16_t)(((uint16_t)readBuf[14] << 8) | readBuf[15]); - hatValue[RightHatX] = (int16_t)(((uint16_t)readBuf[16] << 8) | readBuf[17]); - hatValue[RightHatY] = (int16_t)(((uint16_t)readBuf[18] << 8) | readBuf[19]); + hatValue[LeftHatX] = (int16_t)(((uint16_t)readBuf[13] << 8) | readBuf[12]); + hatValue[LeftHatY] = (int16_t)(((uint16_t)readBuf[15] << 8) | readBuf[14]); + hatValue[RightHatX] = (int16_t)(((uint16_t)readBuf[17] << 8) | readBuf[16]); + hatValue[RightHatY] = (int16_t)(((uint16_t)readBuf[19] << 8) | readBuf[18]); //Notify(PSTR("\r\nButtonState"), 0x80); //PrintHex(ButtonState, 0x80);