-
Notifications
You must be signed in to change notification settings - Fork 55
DXMT Installation Guide for Geeks
NOTE: This guide is not for everyone. The reader is expected to know:
- Good terminal commands skills
- Wine concepts e.g.
WINEPREFIX, dll overrides - To launch Windows executable through Wine from terminal If you only get used to a GUI wrapper like CrossOver or Whisky, this guide is not for you. Otherwise, keep reading.
You need the wine binary that fulfils certain specifications, A FOSS CrossOver Wine 24+ built from the sources is sufficient.
If you want to build your own Wine (assuming you know how to do that), firstly make sure the Wine source version is no earlier than Wine 8. Then you need to expose all the API declared here from Wine's winemac.drv module, since by default these symbols are hidden.
How DXMT should be installed depends on how it is built.
-
winemetal.sogoes to<wine>/lib/wine/x86_64-unix/winemetal.so -
winemetal.dllgoes to<wine>/lib/wine/x86_64-windows/winemetal.dlland<wineprefix>/drive_c/windows/system32/winemetal.dll -
d3d11.dllgoes to<wine>/lib/wine/x86_64-windows/d3d11.dll -
dxgi.dllgoes to<wine>/lib/wine/x86_64-windows/dxgi.dll - (Optionally)
d3d10core.dllgoes to<wine>/lib/wine/x86_64-windows/d3d10core.dll
Ensure these dlls are NOT set overrides native,builtin.
To CrossOver 25+ users: you can replace the files in /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib/dxmt with files from the Github Actions artifact. However DO NOT open a support ticket to CodeWeavers if you have replaced these files.
-
winemetal.sogoes to<wine>/lib/wine/x86_64-unix/winemetal.so -
winemetal.dllgoes to<wine>/lib/wine/x86_64-windows/winemetal.dlland<wineprefix>/drive_c/windows/system32/winemetal.dll -
d3d11.dllgoes to<wineprefix>/drive_c/windows/system32/d3d11.dll -
dxgi.dllgoes to<wineprefix>/drive_c/windows/system32/dxgi.dll - (Optionally)
d3d10core.dllgoes to<wineprefix>/drive_c/windows/system32/d3d10core.dll
And don't forget to configure dll overrides. Normally setting environment variable
WINEDLLOVERRIDES="dxgi,d3d11,d3d10core=n,b;"should be enough, although you can also do that inwinecfg.
Now you can launch your program/game with DXMT. With the best wishes it runs flawlessly, but sometimes we have to face another reality: it doesn't work.
Well, at this stage it is kinda expected since we don't even offer a release of DXMT, so what you are experiencing is truly a bleeding-edge technology (so it may cut you!). There is one thing you can do: let the developer acknowledged.
At the moment we don't make use of Github Issues for public issue reporting, as we consider it too easy to be abused.
We have hosted a Discord Server where you can post your results & logs and help developer to triage and investigate them in depth.