elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.16k stars 83 forks source link

Maintaining aspect ratio in d3d9 section #73

Open BadAd84 opened 4 years ago

BadAd84 commented 4 years ago

Would it be possible to add a way to maintain the correct aspect ratio for 4:3 resolutions?

You can do this if the game is <d3d8 by using options in the dd7to9 section. However, if the game is DX8 or DX9, you cant do it, unless you run in a window. This is one of the main usecases for using dgvoodoo2 over dxwrapper, where dxwrapper works fine for all other problems with the game.

Thanks!

mirh commented 4 years ago

Why wouldn't aspect ratio be maintained in fullscreen? Did you check your gpu/monitor scaling settings?

BadAd84 commented 4 years ago

By default, its stretched to fit the screen. The option in dgovoodoo2 will stretch but add borders to maintain the correct aspect ratio.

This is to allow people who have no idea how to change graphics settings to use the game "out of the box".

Please see dgvoodoo2 and its options to see how it would work. You can do this already with dxwrapper but only with dx7 or before, as theres maintain aspect ratios in the [Dd7to9] section (DdrawUseNativeResolution + DdrawMaintainAspectRatio gives desired effect).

For full disclosure, I am part of zoom platform - a gog competitor. I am aware how to make games work etc. I do not need information regarding changing graphics cards settings etc.

elishacloud commented 4 years ago

@BadAd84, yes, by default dd7to9 should keep the current games resolution. The aspec ratio depends on how your monitor/video card handle this resolution.

There are setting to change this though. dd7to9 can overwrite the default game's resolution. See here for all settings.

The settings you probably want to set are: DdrawMaintainAspectRatio and DdrawIntegerScalingClamp.

BadAd84 commented 4 years ago

Yes, I know how to do it when a game isn't directx 8 or 9. This request is for dx8 and dx9 games, which the Dd7to9 section doesn't apply. This is handled with dgvoodoo2, but not with dxwrapper. I would much prefer to use dxwrapper for the task due to the better licensing terms. If I can help in anyway, provide examples etc, please let me know. You could always make an account on our site and I can add games to your account for testing.

BadAd84 commented 4 years ago

I could add to your account some specific games that dxwrapper worked for everything except the issue I'm describing too if that helps.

elishacloud commented 4 years ago

how to do it when a game isn't directx 8 or 9.

For dx8 and dx9 games it will always keep the game's current resolution. The aspect radio is determined by how your monitor and video card handle that resolution.

I could add to your account some specific games that dxwrapper worked for

Sure, that would be great. It would also be good to know what version of DirectX these game use.

ZOOM-Platform commented 4 years ago

Probably better I comment from this account than my personal one.

Yes, what you describe is the problem. With dgvoodoo2, you can force the game to stretch to fill the screen, but keep aspect ratio. This means there's no need to mess with graphics card settings, which better for users who don't know anything about this topic.

Create an account on our site - zoom-platform.com and let me know your username. I'll provide some examples over the next couple of days.

elishacloud commented 4 years ago

With dgvoodoo2, you can force the game to stretch to fill the screen, but keep aspect ratio.

Yeah, that is a great feature. But not something I will likely add very soon. Currently, I have a lot of other things I am working on. For these newer versions of DirectX it is probably better to let your video card and monitor handle it.

I created an account on the zoom-platform.com. My account name is the same as it is on GitHub.