Skip to content

Qt: Add controller navigation for the game list#14220

Open
jasaaved wants to merge 6 commits intoPCSX2:masterfrom
jasaaved:UI-Improvements-2
Open

Qt: Add controller navigation for the game list#14220
jasaaved wants to merge 6 commits intoPCSX2:masterfrom
jasaaved:UI-Improvements-2

Conversation

@jasaaved
Copy link
Copy Markdown

@jasaaved jasaaved commented Mar 27, 2026

Description of Changes

Adds controller D-pad and left analog stick navigation to the game list and game grid. Pressing Cross/A or Start launches the selected game.

Rationale behind Changes

Improves usability for users who prefer to navigate the game library with a controller without needing to switch to a mouse.

Suggested Testing Steps

  • Use the D-pad or left analog stick to navigate between games in list or grid view
  • Verify the first controller input highlights the first game in the list
  • If a game has a suspended state, verify that the controller can navigate the pop dialogue options and is not still navigating the games on the list menu
  • Launch a game and verify no unintended button inputs carry over into the game (easier to verify with a suspended game since splash screen usually ignore input)
  • Guide Button enters and exits Big Picture Mode directly

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

Yes. I used AI to help implement the feature. Since Qt does not natively translate controller input, AI helped figure out how to hook into PCSX2's existing input pipeline to bridge controller events to Qt's navigation system.

User can now navigate the game list via their controller using the d-pad or left analog stick.
If there exists a saved state for a game, the user can now use a controller to select the options. Controller stops scrolling through the game titles in the main window.

Fixed issue where the first game title wasn't highlighted after first controller input.
When a game was being launched input from the menu was still being carried over into the game. This has been fixed now.
If the user scrolls first before using a controller, the window wouldn't scroll to the top. This is now fixed.
@SternXD
Copy link
Copy Markdown
Contributor

SternXD commented Mar 27, 2026

Why is this needed if we have FullscreenUI (Big Picture Mode) which can easily be accessed?

@jasaaved
Copy link
Copy Markdown
Author

I apologized to that. I didn't even notice there was big picture mode. I guess it's a preference thing as this point. You can use a controller without needing to use big picture mode. The only issue I saw with the other implementation is I didn't see a quick and obvious way to go into big picture mode without restarting the application. We can close out this PR if we don't want to implement this.

I can work on improving FullscreenUI by adding analog control and a quick way of entering it, if possible.

@kamfretoz
Copy link
Copy Markdown
Contributor

The only issue I saw with the other implementation is I didn't see a quick and obvious way to go into big picture mode without restarting the application.

You can go to the big picture mode from Qt by either:

  • System -> Start Big Picture Mode
  • View -> Toolbar, and then clicking on Big Picture button.

-Big Picture mode can now be launched directly from the controller's guide button. User no longer needs to have the toolbar on and use the big picture mode button.

-Fixed issue where Qt menu was still processing input while the imgui menu was running
@jasaaved
Copy link
Copy Markdown
Author

I will push back slightly here, since some users may want to use a controller without switching to Big Picture Mode.

I also think Big Picture Mode has some discoverability issues, since accessing it requires going into interface settings or enabling the toolbar via the View menu. There is also a small usability concern, as it depends on the toolbar being enabled to make it a one-click option.

That said, if there is disagreement on this direction, I am fine with closing this PR. I also submitted another PR that adds analog control support to Big Picture Mode. In addition, I updated this PR so Big Picture Mode can be launched directly using the guide button on a controller.

@Mrlinkwii
Copy link
Copy Markdown
Contributor

I would recommend not using the guide button as away to enable big picture due to the fact the guide button is usually mapped to the analog button and for some games pressing said button removes analog control

@jasaaved
Copy link
Copy Markdown
Author

jasaaved commented Mar 29, 2026

I did disable the functionality while a game is running. So it won't enter/exit big picture mode.

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.

4 participants