zocker-160 / Soldiers-HoWW2-widescreen-fix

Widescreen and Resolution fix for Soldiers: Heroes of World War 2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use widescreen fix along with dgvoodoo2

Lrflx opened this issue · comments

commented

Hello, is there any way to do it? Among other things it'll allow to completely circumvent d3d8 shims and use exclusive fullscreen instead.
Right now you can't do it cause both use same d3d8.dll filename. I tried other common variants like dsound and dinput, but no luck so far

while possible, this is not going to be easy sadly, since I need to apply the patch for the Texture or surface size is too big issue before the game creates the main window and I would need to rewrite my entire d3d8.dll hook, which is not trivial.

commented

I understand, if it'd be that easy we could just create a simple wrapper chain of something like it. Still, I'll keep my fingers crossed, cause it'd help in long run, in event when d3d8 will become even less suppored on modern hardware. And dgvoodoo2 would help with badly scaled UI in high resoutions too

@Lrflx I have created an experimental version using dinput8.dll instead of d3d8.dll.

Please let me know if that works for you or not.

commented

Ok, tested it with the steam version and it does work as it supposed to, no crashes and enhancements like AA forcing seem to work as well! One thing I didn't get to work is resolution forcing, I tried to set the game to 1080p and then force resolution in dgvoodoo to 2x to get 4K with more readable fonts, but game still started in real 1080p. I couldn't manage to achieve upscaling with any other combination of settings.
Btw, another thing I noticed in this game is that in-mission cutscenes play in kinda jerky fashion, looks like there's some form of framelimiting being engaged, and only during cutscenes. Is it possible to remove it as well? Or it's beyond the scope of this project

@Lrflx nice glad to hear it works for you

TL;DR: resolution problem is very hard to fix, jerky cutscenes should be fixable and I will look into it

I tried to set the game to 1080p and then force resolution in dgvoodoo to 2x to get 4K with more readable fonts, but game still started in real 1080p.

Yeah so the game does request exclusive access to the graphics pipeline and enforces the resolution on a GPU driver level, which is probably why you don't see any effect when trying to use any kind of upscaling on a software level. So I don't think I can do much here sadly.
I actually managed to get FSR working using gamescope, but that is working on a GPU driver level.

As for the jerky cutscenes, I currently do not know what exactly is causing that (I investigate more tomorrow) but I would guess that the game uses some kind of frame limiter to sync with the framerate of the video and does that in a poor way causing bad frametimes.

Fixing the bad frame limiter would be the best option, but that is now impossible to me, since I am not hooking into d3d8.dll anymore, so I don't have any access to the graphics pipeline. Sadly dgvoodoo is a black box, so I have no idea what it is doing and I also cannot do any changes to it.

An alternative solution might be to try to get rid of the limiter all together (not sure if that is possible) or fake the framerate of the cutscene in order to trick the limiter in the game.

commented

Yes, I think major problem is solved with this fix already, now that we can skip all that d3d8 forced borderless stuff how it was natively. I agree, resolution problems probably should be readressed to dgvoodoo author, I guess there's something very specific going on under the hood. FSR might help in some cases, but is not exactly on the same level of quality as true resolution override.
In any case it'd be really nice if framelimiting issues could be improved, but the main problem is fixed so far, thank you!

Since there was no further feedback regarding this, I will close this issue.

If you still have anything to report, then feel free to reopen.

EDIT: the problem with the cutscenes seems very tricky sadly, because the game is picky about the video format and just crashes as soon as I try to manipulate or change anything regarding the resolution of framerate.