Skip to content

Implement a new UI settings screen - #22272

Open
NABN00B wants to merge 1 commit into
hrydgard:masterfrom
NABN00B:new-ui-settings-screen
Open

NABN00B wants to merge 1 commit into
hrydgard:masterfrom
NABN00B:new-ui-settings-screen

Conversation

@NABN00B

@NABN00B NABN00B commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #16877, I think.
Hopefully improves #21223. @Domiiniik

  • Moves all of the UI settings (except Language) into a new "UI settings" screen.
  • UI and achievement sound settings are made a copy of.
  • Added custom file picker for each UI sound.
  • Moved the definition of AudioFileChooser from RetroAchievementScreens.h / .cpp to MiscView.h / .cpp
  • Current tab is now stored for RetroAchievementsScreen (and also the new UISettingsScreen).

This isn't fully fleshed out for a release version, but I think it's good enough to be merged.
I've left a 'todo' in UISettingsScreen.cpp.

I heavily recommend renaming the string for the setting:
Transparent UI background
to:
Transparent pause menu background
because currently it's very vague / confusing.

Screenshots:
image
image
image
image

Tree of settings:

  • General UI
    • General UI settings
      • UI size adjustment (DPI)
        • App switching mode [iOS]
        • Hide status bar [iOS]
        • Hide navigation bar [Android]
      • Mid-game UI settings
        • Transparent UI background
          • Show indicator when saving/loading
          • Notification screen position
          • RetroAchievements notification [links to RetroAchievements -> Customize tab]
  • UI sound
    • UI volume
      • UI sound [checkbox]
        • UI volume
        • Achievement sound volume
        • Game preview volume
      • Customize sound effects
        • Select
          • Confirm
          • Back
          • Toggle on
          • Toggle off
          • Achievement unlocked
          • Leaderboard score submission
  • Customize GUI
    • Background
      • Set UI background... / Clear UI background
        • UI background animation
      • Theme
        • Theme
          • Color tint
          • Color saturation
  • Accessibility [empty]

AI disclaimer:
AI was used to generate the skeleton of the new UISettingsScreen class based on DeveloperSettingsScreen, to move the AudioFileChooser class and to help with includes (missing / redundant). No new logic was invented.

@hrydgard

hrydgard commented Sep 9, 2026

Copy link
Copy Markdown
Owner

This seems like a good step in the right direction. I'll look at this again later, considering merging.

Unrelated: I'm wondering if we should think about supporting 3- or N-level hierarchy in the settings UI directly somehow.. it's kinda strange to go from 2 levels to the next 2 levels. Although I'm not really sure what that would look at. Maybe should look at the settings hierarchy for Android settings for example, problem is that they don't have a sidebar tab thing... Well. For later.

@NABN00B

NABN00B commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

UI and achievement sound settings are made a copy of.

I don't know whether we should remove those from the original Audio tab and add a link to the new "UI settings ->UI sound tab" instead. (I definitely don't want to add all the custom SFX selection to the original Audio tab, way too much baggage.)

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.

Reorganize "System" settings - plans

2 participants