Skip to content

Implement dynamic UI aspect ratio scaling, VERT+ and controller icons - #145

Merged
IsaacMarovitz merged 61 commits into
sonicnext-dev:mainfrom
hyperbx:csd-aspect-ratio
Sep 13, 2025
Merged

Implement dynamic UI aspect ratio scaling, VERT+ and controller icons#145
IsaacMarovitz merged 61 commits into
sonicnext-dev:mainfrom
hyperbx:csd-aspect-ratio

Conversation

@hyperbx

@hyperbx hyperbx commented Sep 3, 2025

Copy link
Copy Markdown
Collaborator

This PR makes the UI scale dynamically to the viewport aspect ratio, allowing the game to be played at narrow or ultrawide aspect ratios without it stretching.

The UI Alignment Mode option can be used to change whether or not to keep the UI in 16:9 bounds or expand it to the edges of the viewport, much like Unleashed Recompiled.

As it's in the same ballpark, controller icon detection has also been implemented, allowing the text to display PlayStation icons, should you so choose. More work must be done to swap out the loading screen tips and voice lines, which is not in the scope for this PR.

This also fixes the radar being misaligned at resolutions higher than 1280x720 and implements VERT+ for narrow aspect ratios, allowing gameplay and cutscenes to scale properly.

Known issues:

  • The options menu is not scaled. Bizarrely, this menu completely ignores the CSD modifiers, but it's going to be replaced with an ImGui implementation later on, so this isn't a big deal.

TODOs (optional, may do later):

  • Expand results screen for ultrawide (currently crashes when scaling the bottom panel, pillarboxes for now).
  • Support CSD user data for setting alignment flags in XNCP files.
  • Fix ImGui message window not scaling fully at narrow aspect ratios (apply gameplay scale).

Screenshots (2560x1080)

image image image image

hyperbx and others added 30 commits August 5, 2025 06:30
Lots of stuff here, just pushing everything to keep my changes focused. Will take a cautionary glance at everything before a PR is considered. Unfinished work ahead!!
TODO:
- Make the last two foreground arrows on the left slightly more opaque and fade out later.
- Make the background arrows fade out first before the foreground starts fading.
Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
@hyperbx hyperbx linked an issue Sep 10, 2025 that may be closed by this pull request
9 tasks
@hyperbx hyperbx removed the blocked This should not be merged label Sep 13, 2025
@hyperbx
hyperbx marked this pull request as ready for review September 13, 2025 17:59
@IsaacMarovitz
IsaacMarovitz merged commit 610aead into sonicnext-dev:main Sep 13, 2025
8 of 12 checks passed
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.

Soleanna Map only renders correctly at 720p.

2 participants