From 4a3bf069a6466cec127cff03b3d5be5b98b50caa Mon Sep 17 00:00:00 2001 From: Nintorch <92302738+Nintorch@users.noreply.github.com> Date: Fri, 3 Oct 2025 11:35:09 +0500 Subject: [PATCH] Fix invalid reported joypad presses --- drivers/sdl/joypad_sdl.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/sdl/joypad_sdl.cpp b/drivers/sdl/joypad_sdl.cpp index cc4ef837992..b92a1fe915c 100644 --- a/drivers/sdl/joypad_sdl.cpp +++ b/drivers/sdl/joypad_sdl.cpp @@ -228,6 +228,12 @@ void JoypadSDL::process_events() { case SDL_EVENT_JOYSTICK_BUTTON_DOWN: SKIP_EVENT_FOR_GAMEPAD; + // Some devices report pressing buttons with indices like 232+, 241+, etc. that are not valid, + // so we ignore them here. + if (sdl_event.jbutton.button >= (int)JoyButton::MAX) { + continue; + } + Input::get_singleton()->joy_button( joy_id, static_cast(sdl_event.jbutton.button), // Godot button constants are intentionally the same as SDL's, so we can just straight up use them