From 7025bb5f88fcdbded7efa51b14383f99665ade94 Mon Sep 17 00:00:00 2001 From: Matthew Stanley <1379tech@gmail.com> Date: Sun, 13 Sep 2026 14:16:20 -0700 Subject: [PATCH] Fix rewind keyboard load conflicting with cancel aliases --- runtime/src/main.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runtime/src/main.cpp b/runtime/src/main.cpp index 4f9b2eed..e19f8d7d 100644 --- a/runtime/src/main.cpp +++ b/runtime/src/main.cpp @@ -6285,11 +6285,11 @@ static void rewind_poll_nav(uint32_t now_ms) { const Uint8 *keys = SDL_GetKeyboardState(NULL); int left = keys[SDL_SCANCODE_LEFT] ? 1 : 0; int right = keys[SDL_SCANCODE_RIGHT] ? 1 : 0; - /* Overlay: A/Cross load, B/Circle close. Also Enter/Space/Esc. */ - int acc = (keys[SDL_SCANCODE_RETURN] || keys[SDL_SCANCODE_SPACE] || - keys[SDL_SCANCODE_Z] || keys[SDL_SCANCODE_A]) ? 1 : 0; - int can = (keys[SDL_SCANCODE_ESCAPE] || keys[SDL_SCANCODE_BACKSPACE] || - keys[SDL_SCANCODE_X] || keys[SDL_SCANCODE_B]) ? 1 : 0; + /* Direct menu keys supplement the configured pad bindings below. Letter + * aliases conflict with remaps: X is Cross by default, so treating X as + * Cancel sets both edges and silently cancels every keyboard load. */ + int acc = (keys[SDL_SCANCODE_RETURN] || keys[SDL_SCANCODE_SPACE]) ? 1 : 0; + int can = (keys[SDL_SCANCODE_ESCAPE] || keys[SDL_SCANCODE_BACKSPACE]) ? 1 : 0; /* Honor remapped Cross/Circle (and Select/R3) via the same pad path as * gameplay — GameController A/B alone miss keyboard-as-pad and remaps. */ uint16_t btn = pad_buttons_for(g_players[0], 1, true);