Tuesday, November 20, 2007

DirectX 9.0c on Linux with Wine

This Page Has Been Moved: Please Note the New Location Below

We restructured the whole site and this page no longer exists on this location. The page that your looking for has been moved to a different Web address on the new and improved Site:

Click on the link above to go to the new location. (To maintain accessibility, we have not set up automatic redirection to the new page.) If you have a bookmark to the old page, please change it to the new address above. If you followed a link from another Web site to this page, please let the people responsible for that Web site know the new location above. If you are having trouble finding the information you want, do a search on this article at our new site.

Thanks for your understanding and Sorry for the inconvenience.

The Editors at Wine-Reviews

Putty for Mac
Putty for Mac


Danniello said...

Very nice - dxdiag is working...
But could you give some examples what real game will work better (or work at all) with native Microsoft DirectX dlls? Crysis/BioShock/Gears Of War/The Witcher maybe? :)

Anonymous said...

"next up is to install a native mscoree.dll and streamci.dll into /system32 from a windows install and set then to native Windows."

"You will need to set a large number of dlls to native for the install to work properly."

And how are we supposed to know how to do these things? I have no idea where to even start..

Unknown said...

What kinds of programs have you tested in wine with dx9c installed? Have there been any performance issues with running these APIs through the wine interface? I ask as I'm not familiar with how wine works compared with other types of virtualization like dosbox or vmware.

Anonymous said...

I have a problem with this procedure. It install dx without problem but without dxdiag.exe, so i can't do the test.

Anyway thanks for the tutorial!

Anonymous said...

I have a problem with this procedure. DX install without problem but dxdiag.exe is missing. I used the dxsetup of your link.

Anyway thanks for this useful tutorial!

Anonymous said...

Its what really needs to be done. Windows games and apps easily on linux then more people to linux.

twickline said...

Hello Anonymous,

Sorry, you do it in winecfg under "Libraries"

twickline said...

Hello HellBoyz77,

dxdiag.exe is installed in /system32

twickline said...

Hello Danniello,

Ive only tested this with 3DMark 06 thus far... but any game that needs a DX 9 update dll from d3dx9_24.dll up to d3dx9_36.dll can run those dlls as native windows.

Direct Music, Direct Play work as native.. I have used native Quartz.dll in the past (direct show)

Also I just got this box up and going a week ago and have just started installing games on it. I have "Steam" and "Need for Speed Prostreet" howtos done now, and plan many more howtos in the future.

Anonymous said...

bill: Wine Is Not an Emulator. Hence the name "Wine".

twickline said...

You may find this post interesting....

3DMark 05 Score in Wine

bacatta said...

Working directPlay is a great news for me but do you get any compatibility/performance improvements ?
Some benchmarks between wine and wine+directX will be a nice addition to your post !

Ergoen said...

I cant seem to get directx installed properly. The setup says that everything is ok, but lots of files are missing in the end. If i check the console from which i launched DXSETUP i see lots of error messages saying "err:setupapi:do_file_copyW Unsupported style(s) 0x144"
has anyone else experienced this? (or am i a complete idiot? ^^)

Dayosh said...


"...rename...dsound...dsound.vxd...dlls to *.bak"

How are we supposed to rename dsound.dll and dsound.vxd (both) to .bak files?

Or, should we rename dsound.vxd -> dsound.vxd.bak?

(Sorry...I'ma bit of a n00b to Linux)

twickline said...

Hello David,


Anonymous said...

Excellent guide but to ease the setup one can use
the following information:

Simply define DLL overrides using a text editor instead of winecfg
and the file .wine/user.reg at section

[Software\\Wine\\DllOverrides] 1195996825

and after directx installation changing the
necessary ones to "builtin"

[Software\\Wine\\DllOverrides] 1195996825

gm.dls is to be found on native windows\system32\drivers folder
which should be copied to .~/.wine/drive_c/windows/system32/drivers
folder manually

Thanks for the guide,

- Adil

twickline said...


I will update the guide in a couple minutes, I think Ive found a easier way for people to do the install.

twickline said...

If you were having trouble with the old guide... please read the guide again and see if the changes Ive made to it remedy the problems.

Unknown said...

I get this error message when installing DX9
fixme:process:IsWow64Process (0xffffffff 0x33defc) stub!
fixme:reg:GetNativeSystemInfo (0x7d6d36fc) using GetSystemInfo()
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000000,(nil),0x0001,0x00000000,0x7d6d1f10,(nil)): stub
err:eventlog:ReportEventW L".NET Runtime version : 2.0.50727.832 - "
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
err:setupapi:do_file_copyW Unsupported style(s) 0x144

I'm running a pretty fresh install of Ubuntu Gutsy 32bit and the nvidia-glx 100.14.19. Winever 0.9.49. Have Tried to run the setup several times. It doesnt say its failed but I can't find the Dxdiag in sys32 on the wine install :s

Giuseppe Gullo said...

i'm really struggling on it... but it doesn't work...

I'm using Wine Snapshot with a clean .wine dir, copied manually some missing DLLs, but when i run dxdiag.exe, it dies when i select the "DISPLAY" tab... WHAT THE HELL!!! AM I MISSING SOMETHING?!?!?!?

(OpenSuse 10.3 / wine-snapshot-

Bollman said...

I'm having the same problem as Hellboyz77. The installation went just fine, but there is no dxdiag.exe to be found neither in the /system32 nor anywhere else.

Any suggestions?

Anonymous said...

Thanks much twickline. Not sure if you want feedback here or the forum, so for now, I did here. I followed your guide on two different PC's. Had the same issues. Your latest guide helped some.

After installing twice, I still have network error and dplay won't work.
Here are my notes:
I needed to manually copy over dxdiag.exe and dxdiagn.dll to even get dxdiag to run.

After it launched, I said no to WHQL message, i got these two still:
Error: Problem Getting network info, result code = 0x80040154 (Class not registered)
Error: Problem Getting DirectShow info, result code = 0x80040154 (Class not registered)

Tests ran fine, no Direct Music tab though, and I did copy the gm.dlls over to the drivers folder. These are reporting missing in teh Dxdiag files list, should I be concerned? Tests still ran fine:

Thanks a bunch!

mizzuri said...

As hellboyz77 noted, dxdiag.exe (and necessary files) were absent, although the install of DXSETUP.EXE prompted success. Thus, I was unable to run the dxdiag.exe to test it out.

Anything I should try out?

This is on Kubuntu 7.10.

P.S. dxdiag.exe is nowhere under the ".wine" directory.

Anonymous said...

Hi, I've tested my favourite game "Rome: Total War" with this howto... and it worked! This was my last link with Windows.

Thank you very much!

Anonymous said...

you are a very good man. thank you very very much.

sathio said...

I had this installed, but don't expect any gain on world of warcraft. it's better on OpenGL with NVIDIA drivers

twickline said...

OK, if your having problems see this post in the forum......

DX in Wine

Anonymous said...


When I try to install DirectX I get the following:
hanspi@KanotixBox:~/.wine/drive_c/DirectX$ wine DXSETUP.exe
err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume' element
fixme:mixer:ALSA_MixerInit No master control found on Brooktree Bt878, disabling
fixme:mixer:ALSA_MixerInit No master control found on MPU-401 UART, disabling mi
fixme:process:IsWow64Process (0xffffffff 0x32db2c) stub!
fixme:reg:GetNativeSystemInfo (0x7cfe277c) using GetSystemInfo()
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000000,(nil),0x0001,0x00
000000,0x7cfe0f8c,(nil)): stub
err:eventlog:ReportEventW L".NET Runtime version : 2.0.50727.253 - ErrorA fatal
error occurred. However, mscorees.dll could not be loaded to display the appropr
iate error message.\n\nPlease reinstall the .NET Framework."

mcdorees.dll is copied to the ..\system32 directory

What am I doing wrong?

Fabiano Shark said...

Hey nice post, the tests worked fine, but a 3D game didn't work... do you know if it's possible to run 3D game in Linux? since now, thank you very much!

Anonymous said...

Didn't worked for me. I copied the 2 files in the ~/.wine/drive_c/windows/system32 and edited the ~/.wine/user.reg file as explained at the article. When I run the installer all seems to be OK at the installer window but in console I obtain the next error messages:
wine DXSETUP.exe
fixme:process:IsWow64Process (0xffffffff 0x32defc) stub!
fixme:reg:GetNativeSystemInfo (0x7d4246fc) using GetSystemInfo()
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000000,(nil),0x0001,0x00000000,0x7d422f10,(nil)): stub
err:eventlog:ReportEventW L".NET Runtime version : 2.0.50727.832 - .NET Framework Initialization ErrorPlease set registry key HKLM\\Software\\Microsoft\\.NETFramework\\InstallRoot to point \nto the .NET Framework install location"
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
err:setupapi:do_file_copyW Unsupported style(s) 0x144
err:setupapi:do_file_copyW Unsupported style(s) 0x144
.... and so on for 41 more lines

After that it seems nothing is installed and there is no dxdiag.exe in the entire drive_c

Anonymous said...

"next up is to install a native mscoree.dll and streamci.dll into /system32 from a windows install and set then to native Windows."

I also do not understand this line. How to install those two? What I did is just googl-ing them instead and copy them to $/.wine/drive_c/windows/system32. I saw the mscoree in the list but not streamci in the libraries tab. What did I miss here?

twickline said...

streamci isnt in the list because Wine doesnt have its own streamci dll... So just put the dlls in system32 and set them to native. streamci is going to be native anyway as there isnt a builtin to fall back to ....

Sorceror said...

As a regular supporter of the Wine project (find me in #winehq on Freenode as man_in_shack), I am aghast at the number of new Linux and Wine users who follow these instructions and have to be told "that won't work", "you've broken it" or something similar.

As you SHOULD be aware but apparently aren't, the majority of Microsoft DirectX WILL NOT function in Wine, partly because Wine doesn't let it and partly because Linux doesn't let it (by not providing the appropriate hardware access).

Furthermore, these instructions are NOT recommended by any developers of the Wine project, or any member of the user support community (see #winehq again). In fact, the user support community explicitly recommends not following these instructions or any others that include installing Microsoft DirectX in Wine.

I ask you to please adjust your blog to state that it is NOT a recommended procedure, and that it should only be performed by people who know exactly what they're doing. One excellent reason for not installing MS DirectX in Wine is the difficulty involved in removing it completely should something go wrong, or should the user decide for whatever reason to remove it later.

Anonymous said...

does halo work by doing this?

twickline said...

Halo should work if you install DX 9 or if you dont, The demo works, do a search on wine-review at the top of the page for Halo and you can find the post.

Anonymous said...

ok i have followed these instructions to the letter i have even tried updating wine to latest version(0.9.52) when i get to the stage to run "dxdiag.exe" i get following error :
wine: could not load L"c:\\windows\\system32\\dxdiag.exe": Module not found

it seems that directx is not installing properly if at all as the file is not even in the .wine/windows/system32 folder. Hense the reason for wine turning out that error.

Any help will be much appreciated.

Trying desperately to get this working in the hope that i may able to get my fav game working. I know the game might not work at all, but i'd still like to get directx working in some respect .

i will cross the next bridge when i come to it :)

thx for reading , moE

twickline said...

If you have trouble installing DX there is more info on the wine-forum... please go there and read the follow up on this.

Anonymous said...

I installed DirectX9.0c, but I do not have dxdiag.exe in system32 folder. What's going on?

Anonymous said...

nevermind, setting windows to 2000 version solved the problem.

Anonymous said...

I got DX9 installed properly and i have dxdiag.exe in system32 folder, but when i try to launch it, it says that dxdiagn.dll in not actual. I tried downloading another one from internet, but it didnt work. What's the problem?

Anonymous said...

I really appreciate your 3rd-person reports on Wine, and this is especially useful. Thank you!

PS People, when he talks about "installing" dlls/drivers/etc, he means to copy them from the WINDOWS/system32 directory of a windows installation into your equivalent Wine directory.

Also, you have to run dxdiag from within the directory it is installed in.

Diego Jacobi said...

Excelent guide but i had have some differences.

Some dlls where not on my WindowsXp:
any d3dx8* or d3dx9*, also not in wines system32 before installing dx9c

I have an Spanish Windows Xp installed on VirtualBox, from i have copied the files.

Also i want to note, i have not tested dxdiag before on wine, but dx7 and 8 cube test runs very very quickly (i cant distinguish the dx logo, way too fast) and dx9 cube test runs slower than 8 or 7, not like in your video.

GeForce 7025 onboard

a question, can i also install dx10?


twickline said...

Hello diego,

No, you cant install DX 10...



Anonymous said...

Note: It is important that wine be in W2k mode for the installer to work properly.

I found that out the hard way on my second system...

For some reason, everything works fine except testing D3D. That locks the dxdiag with a white screen on my newer system. I sure hope I can get it working.

Anonymous said...

im not sure if im doing something something wrong first of all i got a patched version of wine with 3dmark patch.
on installation of dx im getting an error that msccores.dll could not loaded but installation looks run correct.also on dxdialog im getting ddrawex.dll missing.. i just copied to system32 folder. Directdraw works great but direct3d dont window goes white and im getting
1 0x7c012398 (0x6b0d1dc0)
2 0x6af0d731 ActivateContext+0x421() in wined3d (0x6b0d1f80)
3 0x6af3e1dd drawPrimitive+0x15d() in wined3d (0x6b0d2270)
4 0x6af196f4 in wined3d (+0x296f4) (0x6b0d22c0)
5 0x6a9b420c in ddraw (+0x2420c) (0x6b0d2310)

and some more of thouse... any clue ??

twickline said...

and some more of thouse... any clue ??

put a native msccores.dll in /system32

ddraw, d3d8/9 HAS to be set to builtin Wine..

Anonymous said...

Hello. Nice guide, but i have some problems. I've installed that DirectX like you said, bet when i test DirectDraw and Direct3D, it doesn't look like yours. Direct3D is spining faster, and it's impossible to see that logo. Did i do something wrong? Please, help me.

twickline said...

Nope, seems as if you did it right.. the cude spins here at about 10k FPS it seems.. just a blur :D

Anonymous said...

"landry said...

Note: It is important that wine be in W2k mode for the installer to work properly."


YES, THAT IS IMPORTANT. I wasn't getting dxdiag.exe either, until I did that.

Will said...

i did everything nice, the dxdiag runs, no files missing, nativities set etc.,
But i get 2 error codes:

"Problems were found in the system registry. Details are available in the saved text file.
You should reinstall DirectX to get the latest version.
DirectDraw test results: Failure at step 3 (DirectDrawCreate): HRESULT = 0x887600de (No DirectDraw support)
Direct3D functionality not available. You should verify that the driver is a final version from the hardware manufacturer."


"0x80004005" (generic failure)

CyberCowboy said...

Anyone find out a solution to the white screen on Direct3d test? I've got it on two machiens, I've put the native mscorees.dll into system32 (there's a posts talking about msccores.dll but I believe this is a typo? can't find that DLL)

Anonymous said...

look people, it's not that hard. you can take any native or builtin .dll from the list, go to the library tab, add the .dll. (you'll be changing this later so pick whatever. native, builtin, both, cheeseburger, whatever) click apply or click ok to close winecfg. now you vi/nano/pico/whatever .wine/drive_c/user.reg. find the .dll you added. replace the single .dll with the long list of dll's on this page from d3d8 to streamci. save the file. pat yourself on the back.

Wictor said...

Would there be ANY way at all to get AGP to work? I'm trying to get the infamous Lineage II working. Need it for it to run, as far as I know.

Anonymous said...

Incase You Don't Have gm.dls (And I Spent 3 Days Googling To Find This) Heres A Download Link:


(0) JOKesTER (0)

Anonymous said...

Before running direct3d tests check this:

$ glxinfo | grep rendering
direct rendering: Yes
(If it says "No", you don't have 3D acceleration.)

Anonymous said...

Okey my problem is this: I did all like you say but when i try to run dxdiag.exe wine just say "dxdiagn.dll" is out of date. And then nothing happened. Can you say what is wrong?

Andy said...


dxdiag gives no errors only I cannot get anything to work in the dplay tab

please some help?

I cannnot get trackmania nations forever to work properly, and I'm quite sure it's because of this ...

thx in advance!

Anonymous said...

hey man thanks for this but when i tried opening from the system32 folder it said something about a missing modual i dunno if i done it right i hope so i did all the dlls but i noticed one dll wasnt there streamic or w/e its called

i hope you know what i mean lol i dont

twickline said...

Hello johnc,

Yea you will need to get that dll from a windows box or dll server :)

Hey can everyone start posting comments to the new site???

DirectX 9.0c March 2008 redistributable on Linux with Wine

This blog in the near future will be rm -rf