From 798fff86feb8127011119522af61c71e4c5168d9 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 5 Apr 2026 16:45:31 -0500 Subject: [PATCH] HW/GBPlayer: Fix swapped L/R triggers. --- Source/Core/Core/HW/HSP/HSP_DeviceGBPlayer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceGBPlayer.cpp b/Source/Core/Core/HW/HSP/HSP_DeviceGBPlayer.cpp index 5f41359bf2..1785db751b 100644 --- a/Source/Core/Core/HW/HSP/HSP_DeviceGBPlayer.cpp +++ b/Source/Core/Core/HW/HSP/HSP_DeviceGBPlayer.cpp @@ -533,8 +533,9 @@ void CHSPDevice_GBPlayer::Write(u32 address, std::span } case GBPRegister::Keypad: { - const u16 value = Common::swap16(data.data() + 0x1e); - m_gbp->SetKeys(value & 0x3FF); + const u8 value_hi = data[0x1e]; // L/R triggers (need to be flipped). + const u8 value_lo = data[0x1f]; // All other buttons. + m_gbp->SetKeys(u16(((value_hi & 0x01u) << 9) | ((value_hi & 0x02u) << 7) | value_lo)); break; } default: