Skip to content

FullscreenUI: Add analog control to big picture mode#14228

Open
jasaaved wants to merge 5 commits intoPCSX2:masterfrom
jasaaved:Big-Picture-Mode-Analog-Control
Open

FullscreenUI: Add analog control to big picture mode#14228
jasaaved wants to merge 5 commits intoPCSX2:masterfrom
jasaaved:Big-Picture-Mode-Analog-Control

Conversation

@jasaaved
Copy link
Copy Markdown

Description of Changes

Enables analog stick navigation in Big Picture Mode by mapping left and right stick axis events to ImGui D-pad inputs. While ImGui provides analog navigation, I did not use them due to unintended behavior (e.g., affecting sidebar navigation).

Diagonal navigation has been disabled for smoother, more predictable movement, aligning behavior more closely with Steam’s Big Picture Mode.

Rationale behind Changes

Some users may prefer using an analog stick over a D-pad for navigating menus and game titles.

Disabling diagonal inputs helps prevent accidental movement, especially with analog sticks.

Suggested Testing Steps

  1. Navigate Big Picture Mode using the left analog stick and verify it moves the selection up/down/left/right.
  2. Hold the analog stick diagonally and verify the selection does not move.
  3. Do the same with a D-pad capable of diagonal inputs and verify the same behavior.
  4. Verify D-pad navigation still works as before.

Did you use AI to help find, test, or implement this issue or feature?

Yes. I used AI to learn about and implement ImGui navigation events.

Removing diagonal navigation makes moving across titles feel smoother and works closer to Steam's big picture mode.

Fixed some coding style issues.
analog movement felt a bit too fast.
Analog inputs are now read as single event once it passes the deadzone / threshold.
@jasaaved jasaaved force-pushed the Big-Picture-Mode-Analog-Control branch from 8f22b0f to 9724fcf Compare March 29, 2026 10:09
@Mrlinkwii Mrlinkwii added this to the Release 2.8 milestone Apr 2, 2026
Copy link
Copy Markdown
Contributor

@Mrlinkwii Mrlinkwii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

works as intended ( did not check the code )

Copy link
Copy Markdown
Contributor

@SternXD SternXD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be added to the other input sources.

-Moved most navigation to InputManager for preprocessing so if the user has bindings, we can use those instead. If not, we can use the fallback navigation bindings in the respective classes.

-DInput has less standard layout so Big Picture Mode navigation is handled via InputManager and relies on the user's bindings to remove guesswork.

-Fixed bug where releasing the analog stick sometimes caused unwanted navigation
@jasaaved
Copy link
Copy Markdown
Author

jasaaved commented Apr 5, 2026

This needs to be added to the other input sources.

I added analog control to XInput and DInput for Big Picture Mode.

I moved navigation to InputManager's preprocessor so we can use the user's bindings for Big Picture Mode. If the user doesn't have any bindings set up, it will fall back to the default mapping tables in the SDL and XInput source classes.

Since there's no standard layout for DInput, I didn't alter DInput's class. That one needs bindings from the user to work. But if there are bindings, navigation in Big Picture Mode now works where before all inputs were ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants