Skip to content

feat: session menu with PlayStation pads, horizontal layout, start-of-session toast - #64

Merged
lippdev merged 1 commit into
mainfrom
fix/session-menu-controller-layout-toast
Sep 24, 2026
Merged

lippdev merged 1 commit into
mainfrom
fix/session-menu-controller-layout-toast

Conversation

@lippdev

@lippdev lippdev commented Sep 24, 2026

Copy link
Copy Markdown
Owner

A user said the Select + Y menu opened in-game but the controller did nothing in it.

1. Controller in the menu

Cause: SessionMenuWindow navigation (GamepadNavigator → ControllerInput) read PlayStation pads only through Windows.Gaming.Input, which delivers input to the foreground window. The game usually keeps the foreground even with the menu on top, and the navigator was also gated on our window being foreground.
Fix: ControllerInput.ReadSonyHid feeds SonyHidReader into navigation; ControllerMapping.SonyButtons now decodes the whole pad (✕ ○ □ △, hat, left stick, Options, Create, PS) into XInput-style bits. The session menu turns HID on and drops the foreground gate. The main window is unchanged.

2. Horizontal layout

Tiles in a wrap panel (back to game, volume, resolution, audio, FPS, HDR, record) and Back to the PC / Exit Console Mode side by side. Window 1100×620 DIP. Since Left/Right now move between tiles, on the volume tile A enters adjust mode (◀ ▶ shown, Left/Right change it, X/□ mutes, A or B leaves).

3. Toast

5 s after a session starts, SessionHintWindow shows in the top-right corner of the game screen for 7 s: Hold Select + Y to open the panel over the game (Create + △ on PlayStation). Shown with activateWindow: false and WS_EX_NOACTIVATE, so the game keeps the focus. Strings in pt-BR, en-US, es-ES. Like the menu, it can't cover exclusive-fullscreen games.

Build OK, 133 tests pass (21 new for the Sony report decoding). Not tested with a real pad or in-game.

🤖 Generated with Claude Code

… a start-of-session toast

- Controller dead in the menu: its navigation read PlayStation pads only through
  Windows.Gaming.Input, which needs our window in the foreground, and the game usually keeps
  it. The menu now reads Sony pads over HID (full pad: D-pad, stick, face buttons) and no
  longer requires the foreground.
- Layout: horizontal tiles (back to game, volume, resolution, audio, FPS, HDR, record) with
  the two ways out side by side. On the volume tile A enters adjust mode (Left/Right),
  X/Square mutes, A or B leaves.
- Toast: 5 s into a session, a corner toast on the game screen says which combo opens the
  menu (Select + Y, or Create + Triangle on PlayStation). It never takes the focus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lippdev
lippdev merged commit 7ec2c7b into main Sep 24, 2026
@lippdev
lippdev deleted the fix/session-menu-controller-layout-toast branch September 24, 2026 18:12
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.

1 participant