Installer DirectX sous Wine

Cette manipulation est fortement déconseillée pour la majorité des utilisateurs de Wine. Il est préférable dans la l'ajout de certaines librairies comme DirectX. Si malgré tout PlayOnLinux ne vous convient pas, cette documentation pourra vous être utile.

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"
Les bibliothèques DirectX installées changent avec la version de Windows paramétrée dans winecfg.

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.

FIXME 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".

À propos de la valeur "Multisampling": Si activé, cette valeur permet d'utiliser l'anticrénelage dans les applications 3D et les jeux, mais elle peut-être source de problèmes notamment avec l'utilisation du FBO.

Ensuite, de nouveau dans un terminal :

cd  ~/.wine/drive_c/
regedit Direct3D.reg
Plus d'informations sur les différents paramètres de la base de registre ici
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.

  • wine_directx.txt
  • Dernière modification: Le 11/09/2022, 12:14
  • par moths-art