runtime: fast-forward toggle shortcut (TurboToggle / fast_forward_toggle_pad) + document the implicit Select chord - #318
Merged
mstan merged 1 commit intoSep 4, 2026
Conversation
…chord
Turbo (Tab / [hotkeys] fast_forward_pad) is hold-to-run only. Add a
press-to-latch twin that feeds the same manual fast-forward block:
- host_keymap: HOST_KEYMAP_TURBO_TOGGLE, [KeyMap] TurboToggle, default F9.
- main.cpp: g_manual_turbo_latched flipped by the key edge or by a fourth
host shortcut, PSX_ASSIST_BIND_FAST_FORWARD_TOGGLE ("Fast-forward
toggle", [hotkeys] fast_forward_toggle_pad, unbound by default), polled
next to Rewind / Save states through hotkey_pad_binding_down(). OSD shows
"Fast forward: Nx (locked)" / "Fast forward: off". Threaded through every
settings hop (settings.toml -> globals -> launcher seed -> LauncherSettings
-> back), mirroring fast_forward_pad.
- config_loader: [hotkeys] fast_forward_toggle_pad read/write.
- README: describe the toggle and state that a single-button / trigger host
shortcut is an implicit chord with Select (hotkey_pad_binding_down), which
the launcher now labels as "select + ..." (recomp-ui companion change).
- test_rewind_toggle_combo.py guards the new sites.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
kerokline
force-pushed
the
feat/fast-forward-toggle
branch
from
September 4, 2026 01:01
07095d7 to
3b8b98f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #307 (controller host shortcut for fast-forward). Two things a player hit on Breath of Fire III:
hotkey_pad_binding_down()treats any non-chord binding as an implicit Select + X and nothing told the player that.Fast-forward toggle
host_keymap: newHOST_KEYMAP_TURBO_TOGGLE,[KeyMap] TurboToggle, default F9.main.cpp:g_manual_turbo_latched, flipped on the key edge or by a fourth host shortcut,PSX_ASSIST_BIND_FAST_FORWARD_TOGGLE("Fast-forward toggle",[hotkeys] fast_forward_toggle_pad, unbound by default), polled next to Rewind / Save states through the samehotkey_pad_binding_down()matcher. While latched the existing manual fast-forward block runs exactly as if Turbo were held, so thePSX_FAST_FORWARD_SPEEDcap and presentation cadence are unchanged. OSD:Fast forward: 4x (locked)on,Fast forward: offwhen released. The hold shortcut's own edge message is suppressed while latched so the two never double-post.fast_forward_pad;config_loaderreads/writes[hotkeys] fast_forward_toggle_padunder the samepad_bind_value_okbound.test_rewind_toggle_combo.pyguards the new sites (including that the toggle appears at every hop the hold binding does).Implicit Select chord, documented
README now states that a controller host shortcut bound to one button or one trigger direction is a chord with Select, and that only a two-button capture replaces the implicit Select. The launcher companion (RetroPortingToolKit/recomp-ui#48) renders such bindings as
select + …and adds the fourth "Fast-forward toggle" row. Without #48 this PR is still complete: the extraassist_binding_labelsentry is simply drawn by the launcher's generic host-shortcut loop, and the keyboard F9 path needs no launcher support.Verified (BoF3, RelWithDebInfo)
fast_forward_toggle_pad = 109survives the launcher round-trip and is written back to settings.toml.… (locked)), second F9 showsFast forward: off.python runtime/tests/test_rewind_toggle_combo.pypasses.🤖 Generated with Claude Code