Ceci est une ancienne révision du document !
Installer DirectX sous Wine
Si vous essayez de lancer un programme requérant DirectX sous Wine, vous aurez sûrement l'erreur suivante :
Vous utilisez une ancienne version de DirectX
Cette page vous propose d'installer DirectX sur votre ordinateur afin de pouvoir installer et utiliser ces programmes.
Pré-installation
Téléchargez les DLL mscoree.dll, streamci.dll et ddrawex.dll nécessaires à l'installation.
Il faut copier les DLL mscoree, streamci et ddrawex dans le répertoire « /home/votre_login/.wine/drive_c/windows/system32 » et les préciser en tant que native à Windows dans l'onglet « Bibliothèques » de winecfg (c'est fait de manière manuelle dans les lignes qui suivent).
Vous avez besoin de préciser un grand nombre de DLL comme native pour que l'installation fonctionne correctement. Voici la liste ci-dessous.
Éditez le fichier /home/$USER/.wine/user.reg. Cherchez une ligne similaire à celle-ci ou créez-la (1195992268 est, en version raccourcie, la date d'installation de wine. Elle sera donc différente pour vous) :
[Software\\Wine\\DllOverrides] 1195992268
Copiez en dessous d'elle le contenu suivant :
"d3d8"="builtin" "d3d9"="builtin" "d3dim"="native" "d3drm"="native" "d3dx8"="native" "d3dx9_24"="native" "d3dx9_25"="native" "d3dx9_26"="native" "d3dx9_27"="native" "d3dx9_28"="native" "d3dx9_29"="native" "d3dx9_30"="native" "d3dx9_31"="native" "d3dx9_32"="native" "d3dx9_33"="native" "d3dx9_34"="native" "d3dx9_35"="native" "d3dx9_36"="native" "d3dxof"="native" "dciman32"="native" "ddrawex"="native" "devenum"="native" "dinput"="builtin" "dinput8"="builtin" "dmband"="native" "dmcompos"="native" "dmime"="native" "dmloader"="native" "dmscript"="native" "dmstyle"="native" "dmsynth"="native" "dmusic"="native" "dmusic32"="native" "dnsapi"="native" "dplay"="native" "dplayx"="native" "dpnaddr"="native" "dpnet"="native" "dpnhpast"="native" "dpnlobby"="native" "dsound"="builtin" "dswave"="native" "dxdiagn"="native" "msdmo"="native" "qcap"="native" "quartz"="native" "streamci"="native" "mscoree"="native"
Si vous n'êtes pas sûr, créer le premier override (surclassage) de la bibliothèque "d3d8" grâce à winecfg (Configure Wine dans le menu de Wine ou winecfg via la console), dans l'onglet « Bibiliothèques ». Mettez là en "inclue".
Puis, afin de vous simplifiez la vie, éditer le fichier /home/$USER/.wine/user.reg. Trouvez-y la section [Software\\Wine\\DllOverrides]
et copiez-y la liste précédente ("d3d8"="builtin" devrais déjà existé).
Installation
Téléchargez la dernière version de DirectX d'ici, puis exécutez le fichier.
Lisez la licence affichée, puis cliquez sur "Yes" si vous l'acceptez1). Choisissez le chemin d'extraction des fichiers et cliquez encore sur "Yes".
Rendez-vous au chemin d'extraction et exécutez « DXSETUP.EXE ». À ce moment-là, suivez les instructions.
Relancez « DXSETUP.EXE » une seconde fois. Si vous ne le faîtes pas, une erreur de réseau sera affichée et DPlay ne fonctionnera pas correctement.
Test
Exécutez le fichier /home/$USER/.wine/drive_c/windows/system32/dxdiag.exe afin de tester les différents composants de Wine.
Vous pouvez maintenant tester ddraw, ddraw 3D, D3D8, et D3D9.
Si le fichier « dxdiag.exe » n'apparaît pas c'est que l'extraction n'a pas fonctionné. Modifiez alors dans winecfg la version de Windows (2003/XP/2000) et recommencer l'extraction.
Paramètres Direct3D
Dans un terminal, tapez :
gedit ~/.wine/drive_c/Direct3D.reg
Mettez-y le contenu suivant:
REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "DirectDrawRenderer"="OpenGL" "Multisampling"="enabled" "OffscreenRenderingMode"="fbo" "PixelShaderMode"="enabled" "UseGLSL"="disabled" "VertexShaderMode"="hardware" "VideoMemorySize"="xxx"
Ou xxx représente votre quantité de mémoire vidéo. Faites variez vos paramètres direct3d en fonction de vos besoin: par exemple pour lancer Command and Conquer 3 avec wine vous devez changer la valeur UseGLSL en "enabled" sans quoi vous risquez de rencontrez de sérieux problèmes d'affichage une fois le jeu lancé; par contre pour améliorer les performances des jeux steam comme Counter Strike Source vous devez désactivez cette valeur en la passant à "disabled".
Ensuite, de nouveau dans un terminal:
cd ~/.wine/drive_c/ regedit Direct3D.reg
Note
Vous notez que sont installées dans « system32 », « d3dx9_24.dll » à « d3dx9_36.dll ». Cela aide beaucoup pour faire fonctionner des jeux requérants ces DLL DirectX additionnelles.
Maintenant vous pouvez lancer la plupart des dll DirectX comme « native » ou « builtin ». Par exemple, si un jeu pose problème à cause de « quartz.dll » en « builtin », vous pouvez le tester en mode « native ».
Gardez à l'esprit que d3d8, d3d9 et ddraw fonctionnent seulement en "builtin ». Essayez au maximum d'utiliser dsound et dinput en « builtin » ; même si cela fonctionne parfois. La raison de ce mode est le besoin de ces DLL d'accéder directement au matériel. Direct Music et Direct Play peuvent s'utiliser en « native » dans la plupart des cas.
D'autres configurations de Wine & DirectX semble nécessaire pour certains jeux, voir par exemple :
- Pour AACW : Voir cette page
- Pour Civ4 :