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

Windows XP Support #233

Closed elishacloud closed 8 months ago

Trass3r commented 8 months ago

Just curious about your motivation, a lot of changes for a dead OS?

elishacloud commented 8 months ago

There have been requests for Windows XP support on all my projects (including this one) and this is pretty easy since Visual Studio 2022 has a v141_xp toolkit. I took this opportunity to clean-up some of the code and make it more consistent. If there are specific changes you are concerned about let me know.

Trass3r commented 8 months ago

I see 👍🏼

lorn10 commented 5 months ago

And for the sake of completeness it should be added that this could be perhaps also of some use for Linux/Wine users. :thinking:

Wine may still support some Windows XP "code paths" better than those of the newer NT variants even if the main "target" is for quite some time Windows 7 (which will be raised in Wine 9.0 stable to Windows 10).

(The native Direct3D 9 API implementation in Mesa called Gallium Nine was build along the legacy XDDM/XPDM driver model not the newer WDDM one.)

elishacloud commented 5 months ago

Good point about Linux/Wine users. The Windows XP version may work better for them.

As far as XDDM, XPDM and WDDM models, dxwrapper does not do much with any of these models. Other than DDrawCompat, it only use WDDM for waiting for vsync calls. But if WDDM is not available then it just uses a busy-wait loop. So these models are not needed for dxwrapper.

Squall-Leonhart commented 4 weeks ago

There have been requests for Windows XP support on all my projects (including this one) and this is pretty easy since Visual Studio 2022 has a v141_xp toolkit. I took this opportunity to clean-up some of the code and make it more consistent. If there are specific changes you are concerned about let me know.

There is no functional support for building XP apps with in VS v17, even with the xp toolkit installed, InitializeCriticalSectionEx is thrown on start.

2019 16.7 was the last working version https://learn.microsoft.com/en-us/cpp/build/configuring-programs-for-windows-xp?view=msvc-170#windows-xp-deployment