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.15k stars 82 forks source link

Braveheart #234

Open Raa2020740 opened 8 months ago

Raa2020740 commented 8 months ago

I posted this already, but I guess it's worth an own thread...

Hello elishacloud,

I have been tinkering with Braveheart (the game) for quite a while now but nothing works quite like it should. The best result I got was with DXWND and dgvoodoo2 (using the glide-version (Braveheart has 3 exe-files: Software-mode, Glide & DirectX) yet the movies still dont work in that constellation.

I tried every setting imaginable - with DXWND and dxwrapper and/or dxcompat (another wrapper), yet they all have problems. My last hope was dxwrapper, yet it doesnt work either. Foremost problem is the menue. Explanation: The "background" flickers like crazy and it has a weird "afterimage" problem: If you click in the menue (highlighted items are fine weirdly enough), the "backgrounds" stay like an echo and flicker like mad. Same effect occurs ingame in the strategy mode of the game.

I tried dxwrapper with many different ddraw-options but it all flickers or I get only a blackscreen etc.

I really would like to try out the Dd7to9 option, hoping it would solve these issues (maybe), yet it crashes if I start the game, sadly. I added my logfile for inspection (1680x1050 is my native resolution). Maybe you have an idea or could help any other way? I tried Dd7to9 troubleshooting but it doesnt work either. Only Software-mode works but flickering again.

As far as I can see Braveheart uses DirectX6.1 (and ddraw.dll). I'm out of ideas by this point.

For testing the game, it can be "found" online. dxwrapper-bhd3d.iconfix.log

elishacloud commented 8 months ago

The "background" flickers like crazy

I have seen this on other games, like Arx Fatalis and Knight Rider. I have not looked into it to see what is causing it. But, it is often fixed by enabling FullscreenWindowMode in dxwrapper.

it has a weird "afterimage" problem the "backgrounds" stay like an echo

Yeah, I have seen this with other games, such as Star Trek: Starfleet Command III. It has to do with how dxwrapper handles 2D images on top of the 3D rendering. Basically the game keeps rewriting the same graphic to the surface, expecting the surface to be cleared between frames. It is fixable, but will require a bit more work in dxwrapper.

it crashes if I start the game, sadly.

The crash is caused by the line below. I would need to debug why the primary surface is not deleted when the game tries to create another one. This is fixable.

4104 16:52:54.495 m_IDirectDrawX::CreateSurface2 Error: primary surface already exists!

Unfortunately, the Direct3D support is still limited. I will add this to the list of fixes for the project.