UnleashedRecomp icon indicating copy to clipboard operation
UnleashedRecomp copied to clipboard

Options: Add custom aspect ratios

Open JaceCear opened this issue 9 months ago • 13 comments

Sometimes you want your game aspect ratio to be different from your monitor. It was already possible to do in windowed-mode by resizing, but this enables it for fullscreen mode as well.

  • This will still need translations for any language that is not English or German.
  • "Portrait" aspect ratios lead to artifacts at the bottom of the screen while boosting. That is also the case in windowed mode.

JaceCear avatar Mar 03 '25 12:03 JaceCear

The change regarding aspect ratios is too large to be considered as part of a typo fix pull request. Could you separate these two topics into different PRs?

DeaTh-G avatar Mar 04 '25 15:03 DeaTh-G

The change regarding aspect ratios is too large to be considered as part of a typo fix pull request. Could you separate these two topics into different PRs?

Sure, will do! Just thought this would be more efficient! ^^

JaceCear avatar Mar 04 '25 19:03 JaceCear

I don't think this is something we should be exposing in the options menu, it seems a bit too advanced for that when the amount of people looking to input a custom aspect ratio is probably quite slim.

This could just be exposed in config.toml instead using a single float called CustomAspectRatio, which you'd set to the result of (width / height), for example:

AspectRatio = "Custom"
CustomAspectRatio = 1.777777777777778 # (16 / 9)

hyperbx avatar Mar 07 '25 09:03 hyperbx

I don't think this is something we should be exposing in the options menu, it seems a bit too advanced for that when the amount of people looking to input a custom aspect ratio is probably quite slim.

This could just be exposed in config.toml instead using a single float called CustomAspectRatio, which you'd set to the result of (width / height), for example:

AspectRatio = "Custom"
CustomAspectRatio = 1.777777777777778 # (16 / 9)

Hmm, it's a bit inconvenient to only have it in a config file, I'd say.

Usage-wise I've seen myself edit it multiple times during single play sessions, and having to edit a config file by calculating a float is much more cumbersome than just quickly editing them in the menu.

People who have no use for it can just ignore the fields, right?

Jon from GVG had to use his VR Headset in his video to get a widescreen aspect ratio, a menu option would remove the need for his "hack".

JaceCear avatar Mar 07 '25 12:03 JaceCear

Usage-wise I've seen myself edit it multiple times during single play sessions

For what reason do you need to change the aspect ratio multiple times like this?

People who have no use for it can just ignore the fields, right?

We've had internal discussions about this and didn't think it should be part of the menu itself for simplicity sake.

Dynamic aspect ratio is plenty enough for the vast majority of people, this is more of a power user setting.

Jon from GVG had to use his VR Headset in his video to get a widescreen aspect ratio, a menu option would remove the need for his "hack".

No, he used a virtual desktop with an ultrawide aspect ratio. It's less of a hack than it is a novelty, he's done this before with other games.

hyperbx avatar Mar 07 '25 12:03 hyperbx

I agree that such a niche option does not need to be in the options menu, especially not in the front page where it would hide more important video options.

blueskythlikesclouds avatar Mar 07 '25 13:03 blueskythlikesclouds

I maintain the philosophy that the UI shouldn't get more cumbersome to use to cover a very small percentage of the use cases that people want. The proposed UI design is not good. It's not easy to understand and it just looks very confusing to have three options entirely dedicated to the aspect ratio.

I've rarely seen requests for custom aspect ratios and having it as a configurable option in the toml would be preferrable. You don't want to expose things front and center that the vast majority of people won't need and make the process of using the UI more cumbersome for them.

DarioSamo avatar Mar 07 '25 13:03 DarioSamo

Alright, I retreat! ^^

Should I try to add it in a way @hyperbx proposed it, or do you want to close to PR?

I feel like in the future it wouldn't hurt to have an "Advanced" graphics settings menu to expose "unexposed" settings for people who want to change them with having to go to a config.

For what reason do you need to change the aspect ratio multiple times like this?

Sometimes for improving framerate by choosing a wider aspect ratio, sometimes just wanting a portrait aspect-ratio instead of a langscape one, giving Daytime stages a different feel.

You don't want to expose things front and center that the vast majority of people won't need and make the process of using the UI more cumbersome for them.

I guess one way to get around that would be to disable the fields while non-custom ratios are set?

JaceCear avatar Mar 07 '25 13:03 JaceCear

Should I try to add it in a way @hyperbx proposed it, or do you want to close to PR?

It'd be good to have it accessible from the configuration file for sure!

I feel like in the future it wouldn't hurt to have an "Advanced" graphics settings menu to expose "unexposed" settings for people who want to change them with having to go to a config.

We can expose certain tweaks and knobs like this in the F1 menu, like the FPS toggle that is already there.

I guess one way to get around that would be to disable the fields while non-custom ratios are set?

Sadly that'd still take up visual space when disabled. And making them show up only when the custom option is used would cause some awkward menu shifting that doesn't adhere to what the game usually does on these menus.

DarioSamo avatar Mar 07 '25 13:03 DarioSamo

It'd be good to have it accessible from the configuration file for sure!

Alright, I will do that, then!

We can expose certain tweaks and knobs like this in the F1 menu, like the FPS toggle that is already there.

Yeah, that makes sense!

JaceCear avatar Mar 07 '25 13:03 JaceCear

Applied the changes!

I don't really like that the game needs to be restarted for value changes to take effect, so in the future it'd be cool if the config file could be reloaded at runtime, when any changes were done to it, while you're still in the options menu. Or is there a function I can call once for the same effect?

JaceCear avatar Mar 07 '25 14:03 JaceCear

By the way, this PR is currently on hold right now because it's a bit awkward that the user can switch to custom aspect ratio from the options menu, but you need to edit values in config.toml to configure it. This is weird UX.

A better option might be that the aspect ratio option in the options menu gets disabled entirely if a custom aspect ratio gets specified in the config.toml.

blueskythlikesclouds avatar Apr 04 '25 12:04 blueskythlikesclouds

By the way, this PR is currently on hold right now because it's a bit awkward that the user can switch to custom aspect ratio from the options menu, but you need to edit values in config.toml to configure it. This is weird UX.

A better option might be that the aspect ratio option in the options menu gets disabled entirely if a custom aspect ratio gets specified in the config.toml.

I just did what was told me! ^^

One other idea I had was adding a slider with a 1.0x in the middle and the user could adjust that to their liking, either going landscape or wide(r) screen. That slider could be disabled when other ratios are selected.

Though the best case would be an extra menu pop-up when selecting the Custom aspect ratio, I guess, and the slider being in there, instead of an extra row in the regular settings.

JaceCear avatar Apr 06 '25 17:04 JaceCear