Repository navigation
Feature request: render aspect ratio override (wider viewport / FOV) #2128
keepitahundred
started this conversation in
Ideas
Replies: 1 comment
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi,
Requesting support for overriding the game’s render aspect ratio so the 3D scene is drawn with a wider viewport instead of a fixed 16:9 frame.
System
01007300020FA00001006A800016E000Current behavior
DM_FULLSCREEN=1is correctly applied fromenv.txt(log confirms it, launcher can be skipped).front_mac.mthe present path deliberately fits the game’s picture to the drawable with black bars to keep the game’s aspect ratio.DM_RENDER_SCALEonly scales the existing render targets (documented asrender_base); it does not change the aspect ratio.Request
Ability to change the aspect ratio used by the game’s render targets / viewport so more of the world is drawn.
Possible approaches (easiest first)
DM_RENDER_SCALEcould also adjust the aspect ratio of the main color/depth targets (or the viewport passed to the game), controlled by something likeDM_RENDER_ASPECT=1.6orDM_ASPECT_RATIO=16:10.A single environment variable that works with approach 2 would already solve the problem for most games and users.
This would let the Metal host render a true wider FOV on non-16:9 displays instead of letterboxing or stretching the final frame.
Happy to test any experimental builds or patches.
Thanks!
What you propose
Override the game’s render aspect ratio so the 3D scene is drawn with a wider viewport instead of a fixed 16:9 frame.
How it could work
Present-path option (lowest effort)
front_mac.m, the present path currently fits the game’s picture to the drawable with black bars to preserve aspect ratio.DM_PRESENT_STRETCH=1) that skips the letterboxing and simply scales the final texture to the full drawable size.Extend the existing render-scale stub (best balance)
DM_RENDER_SCALEhave a stub on the function that decides the main view / render-target size (render_basein the game notes).DM_RENDER_ASPECT=1.6orDM_ASPECT_RATIO=16:10) and adjust only the width of the color/depth targets before they are created.patches.py/ per-game patches) and the host’s render-target creation path innvn_mtl.m.Projection / FOV hook (higher effort)
patches.pystyle as the current frame-rate and render-scale stubs.Any of these would be controlled by a single environment variable so users can enable it from
env.txtwithout rebuilding.Platforms
Mac
All reactions