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

Warcraft III #99

Closed avindra closed 3 years ago

avindra commented 3 years ago

Warcraft 3 (Frozen Throne) and (Reign of Chaos) are working (on Linux)! (I was surprised to learn this game uses DirectX 8 before it's 1.31 patch). This has the consequence of the following chain reaction in the graphics pipeline: DirectX8 -> DirectX9 -> Vulkan. My mind is blown.

WINEDLLOVERRIDES="d3d8.dll=n" DXVK_HUD=full wine war3.exe

thro

WINEDLLOVERRIDES="d3d8.dll=n" DXVK_HUD=full wine war3.exe -classic

roc

This are no issues to report :sweat_smile:. Thought I'd log something asdxwrapper proved critical here, especially since the OpenGL backend is so slow and has lighting corruption problems when the window gets resized.

Being able to use the DirectX backend for this game on Linux is a newly possible thing. Didn't think I would ever see the day, but we just had to wait a decade or so! Thanks for your work on this project.

Here is the DXVK side of this:

https://github.com/doitsujin/dxvk/issues/1808#issuecomment-734043638

avindra commented 3 years ago

It's not a real issue so I'm closing this :+1:

mirh commented 3 years ago

d3d8to9 is probably a project more specific to your use case. Wined3d shouldn't be that bad for old games though.

avindra commented 3 years ago

The performance of wined3d seems to be fraught with issues (can't blame them, it's still pretty new). Although, I am not sure if it is just falling back to OpenGL, which has worked since as early as 2006. That's the problem with this game on Linux. You will never hit above 30fps, and it drops below 14fps typically. That's even with high end AMD+NVIDIA hardware.

Not a problem anymore... using the 8 to 9 option of dxwrapper, I am rendering it at 2560x1440@95hz. This makes the old game quite useful, and a good alternative to Warcraft III: Reforged. I think if your project offered that (conversion magic from dx8->9) alone it would be a great service to game preservation efforts, but I can see it hooks into a whole bunch more :open_mouth:

mirh commented 3 years ago

??D3d8to9 is what dxwrapper uses to make the conversion, and if any it's this to have more "stuff" than you'd likely need. Also, wined3d is like possibly more than 20yo.

I wonder if perhaps this bug regressed.

avindra commented 3 years ago

I understand, dxwrapper kind of "puts it together." I think I will still use it anyway, because I can also add Anti-aliasing to the game which was previously impossible.