Les versions récentes de Wine propose par défaut plusieurs versions des bibliothèques DirectX, cependant en cas de besoin des versions natives, il est possible d'utiliser l'option d3dx9. En effet la bibliothèque d3dx9_xx.dll est requise pour le fonctionnement de certaines applications avec Wine. Vous trouverez sur cette page une courte liste d'applications necéssitent son installation.
Si vous essayez de lancer une application requérant DirectX sous Wine, vous aurez sûrement l'erreur suivante : Vous utilisez une ancienne version de DirectX. De cette manière vous saurez qu'il vous faut l'installer. Par contre il est fortement déconseillé d'installer DirectX9 en entier, cela risque de perturber votre utilisation de Wine.
Pour des questions de licence, Wine n'intégrera jamais l'API complète de Microsoft, les manipulations qui suivent restent donc d'actualité et ce malgré le travail accompli par les développeurs de Wine!
Si, avec une version récente de DirectX vous avez un problème au début de l'installation de votre application sous Wine, configurez Wine avec "winecfg" en faisant une recherche dans le tableau de bord Unity avec le mot clé Wine, puis choisissez Configurer Wine. Ensuite, choisissez "Windows 7" (ou une version supérieure) comme version de Windows (en bas).
Wine utilise ses propre librairies DirectX. Mais toutes ne sont pas activées par défaut. Pour les activer faites une recherche dans le tableau de bord Unity avec le mot clé Wine, puis choisissez Configurer Wine. Ou lancez l'application via la commande :
winecfg
Ensuite, allez dans l'onglet Bibliothèques → Nouveau remplacement pour → Ajouter → Modifier → Intégré (wine).
Cependant cette opération peut vite devenir lourde car vous avez besoin de préciser un grand nombre de DLL comme natives pour que l'installation fonctionne correctement. C'est pourquoi vous pouvez vous simplifier la tâche en éditant le fichier caché .wine/user.reg dans votre Dossier Personnel.
Cherchez ou créez une ligne similaire à celle-ci :
[Software\\Wine\\DllOverrides] 1195992268
En sachant que 1195992268 est, en version raccourcie, la date d'installation de Wine. Elle sera donc différente pour vous. Puis copiez en-dessous d'elle le contenu suivant qui est la liste complète des bibliothèques dont vous aurez besoin :
"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" "d3dx9_37"="native" "d3dx9_38"="native" "d3dx9_39"="native" "d3dx9_40"="native" "d3dx9_41"="native" "d3dx9_42"="native" "d3dx10_33"="native" "d3dx10_34"="native" "d3dx10_35"="native" "d3dx10_36"="native" "d3dx10_37"="native" "d3dx10_38"="native" "d3dx10_39"="native" "d3dx10_40"="native" "d3dx10_41"="native" "d3dx10_42"="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 les bibliothèques proposé par défaut ne fonctionnent pas, vous pouvez installer les versions natives de DirectX, avec Winetricks. Faites une recherche dans le tableau de bord Unity avec le mot clé Winetricks. Puis choisissez : Select the default wineprefix > Install a Windows DLL or component.
Il ne vous reste plus qu'à cocher les cases des bibliothèques DirectX qui vous intéressent comme : d3dx9 et les lignes qui commencent par d3dx en général.
Plus simplement vous pouvez lancer la commande dans un terminal:
winetricks d3dx9
Lors de l'installation de DirectX il peut vous demander le net framework 2. Dans ce cas installez aussi dotnet20. En ligne de commande :
winetricks dotnet20
Reportez-vous à cette page de la documentation ubuntu pour plus d'informations.
Dans un terminal, tapez : (Créé à partir de rien?)
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 besoins : par exemple pour lancer Command and Conquer 3 avec Wine vous devez changer la valeur UseGLSL en "enabled" sans quoi vous risquez de rencontrer 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ésactiver cette valeur en la passant à "disabled".
Ensuite, de nouveau dans un terminal :
cd ~/.wine/drive_c/ regedit Direct3D.reg
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.