Skip to content

launcher: additional UI functionality (scanlines card, host-shortcut chord labels, TurboToggle) - #48

Merged
mstan merged 1 commit into
RetroPortingToolKit:masterfrom
kerokline:feat/additional-ui-functionality
Sep 26, 2026
Merged

mstan merged 1 commit into
RetroPortingToolKit:masterfrom
kerokline:feat/additional-ui-functionality

Conversation

@kerokline

@kerokline kerokline commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Supersedes #42 (same scanlines commits, plus one more launcher uplift merged on top). Two small PSX launcher additions that touch the same settings/controller surfaces:

1. Scanlines toggle + strength on the Display card

Adds a Scanlines checkbox and a strength slider to the Display settings for consoles that advertise has_scanlines (set in the PSX profile). The strength row appears only once scanlines are on.

ABI (additive):

  • RecompLauncherCSettings.scanlines and .scanline_strength_pct appended at the end of the struct.
  • RecompLauncherCGameInfo.has_scanlines appended at the end of the struct.
  • #define RECOMP_LAUNCHER_HAS_SCANLINES 1 so hosts can #ifdef for source compatibility.

Mirrors the existing screen_kind wiring throughout (model capability, seed/apply, UI row). No behavioural change for any console that leaves has_scanlines at 0.

The scanline effect itself lives in the runtime (companion psxrecomp PR — the present-path shader). Without that runtime support the control is inert but harmless; the two are meant to land together.

image

2. Host Shortcuts: label the implicit Select chord; TurboToggle hotkey

The PSX runtime only matches a host shortcut bound to one button or one trigger direction while Select is also held (hotkey_pad_binding_down). The capture UI already swallows a lone Select for that reason, but the resulting label showed just righttrigger+, so a player who bound R2 pressed R2 alone and saw nothing happen.

  • On the PSX profile, single-button / single-axis bindings now render as select + righttrigger+ in both host-shortcut tables, with a one-line hint under the table (capture two buttons together for a chord without Select). Explicit two-button chords are unchanged.
  • Surfaces the runtime's new [KeyMap] TurboToggle (press-to-latch fast-forward, default F9): LNG_HK_TURBO_TOGGLE, key/default/label tables, and the PSX hotkeys_mask.

Companion runtime PR: RetroPortingToolKit/psxrecomp#318 (feat/fast-forward-toggle): adds the toggle itself and the fourth host-shortcut row, [hotkeys] fast_forward_toggle_pad. Without it the launcher change is harmless: the extra hotkey row is inert and the label prefix is purely cosmetic.

3. Backspace clears a host shortcut / hotkey while listening

There was no way to remove a binding: capture commits any key or button, Esc keeps the old value, Reset restores every default at once. Backspace during a host-shortcut capture now stores 0 (unbound) for the keyboard or controller column; on the Hotkeys list it writes the literal None, which the runtime honours as an explicit unbind via RetroPortingToolKit/psxrecomp#319 (merged #318 does not need it for the toggle itself).

4. Controller column hidden when Player 1 has no connected gamepad

The PSX runtime evaluates controller host shortcuts against Player 1's pad handle only, so with the seat on Keyboard / None or the pad unplugged, nothing bound there can fire. Both tables now drop the Controller column in that state and say why. Other profiles are unchanged.

Verified in a BoF3 build: the host-shortcut table shows select + lefttrigger+ for a seeded axis binding, and stored chords still read select + r3.

🤖 Generated with Claude Code

@kerokline

Copy link
Copy Markdown
Contributor Author

fixed merge issues, bumped to match master.

Squashed rebase of RetroPortingToolKit#48 onto master; scanline Settings/GameInfo fields moved to the struct ends.
@mstan
mstan force-pushed the feat/additional-ui-functionality branch from cf8738e to 714eecb Compare September 26, 2026 03:41
@mstan

mstan commented Sep 26, 2026

Copy link
Copy Markdown
Member

Rebased onto master (b688ca7) as one squashed commit. The merge from master had put scanlines/scanline_strength_pct and has_scanlines in the middle of RecompLauncherCSettings/RecompLauncherCGameInfo; they're now at the struct ends (append-only ABI). LNG_HK_TURBO_TOGGLE comes after master's LNG_HK_OPEN_LAUNCHER. ctest: SDL3 25/25.

🤖 Generated with Claude Code

@mstan
mstan merged commit 812dc9a into RetroPortingToolKit:master Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants