Il est sans doute connu de presque tout le monde qu'avec la sortie de Windows Vista en 2007, suivie des versions ultérieures de Windows, l'API audio DirectSound3D a été supprimée de Windows. À la place de DirectSound et DirectSound3D, les nouvelles API XAudio2 et X3DAudio ont été utilisées. Cela a conduit à l'impossibilité d'accéder aux effets audio EAX (effets sonores environnementaux) dans les anciens jeux. Dans cet article, je vais expliquer comment restaurer ce fameux DirectSound3D/EAX dans tous les anciens jeux qui supportent ces technologies en jouant sur Windows 7/8/10. Bien sûr, les gamers expérimentés sont au courant de tout cela, mais cet article pourrait être utile à certains.
Les anciens jeux ne sont pas tombés dans l'oubli, au contraire, ils sont très prisés, tant par les utilisateurs de la génération précédente que par les plus jeunes. Les anciens jeux semblent mieux sur les moniteurs modernes à haute résolution, de nombreux mods sortent pour améliorer les textures et les shaders, mais au début, le son était un problème. Avec la sortie de la prochaine génération de Windows Vista, après Windows XP, les développeurs de Microsoft ont jugé que DirectSound3D était obsolète — il avait une limitation à 6 canaux, ne supportait pas la compression audio, était dépendant du processeur, et a donc été remplacé par XAudio2/X3DAudio. Et comme la technologie EAX de Creative n'était pas une API autonome, comme l'était A3D de la société Aureal, mais simplement une extension de DirectSound3D, les cartes son de Creative se sont retrouvées à la traîne. Si l'on ne recourt pas à des wrappers logiciels spéciaux, alors en jouant sur Windows 7/8/10 dans des anciens jeux, les options de menus incluant EAX ne seront pas activées. Et sans EAX, le son dans les jeux ne sera pas aussi riche, immersif, et spatial.
Pour résoudre ce problème, la société Creative a développé le logiciel wrapper ALchemy, qui redirige les appels DirectSound3D et EAX vers l'API multiplateforme OpenAL. Cependant, ce programme fonctionne officiellement uniquement avec les cartes son de la société Creative et même pas toutes les modèles. Par exemple, la carte moderne Audigy Rx, qui a un processeur DSP matériel CA10300, ne fonctionne officiellement pas. Pour les propriétaires d'autres cartes son, comme la Realtek intégrée, il est nécessaire d'utiliser le pilote logiciel Creative Sound Blaster X-Fi MB, qui est payant. On peut aussi essayer le programme natif 3DSoundBack, mais il n'a pas été terminé par Realtek — il est resté à l'état de version beta, ne fonctionne pas bien et n'est pas compatible avec toutes les puces. Mais il existe un moyen meilleur, qui est plus simple à utiliser et gratuit.
Première méthode
Je commencerai par les cartes son de la société ASUS. Les cartes son ASUS DGX/DSX/DX/D1/Phoebus reposent sur des puces C-Media et même les puces ASUS AV66/AV100/AV200 — ce sont toutes des puces C-Media renommées. Les spécifications de ces cartes son indiquent qu'elles prennent en charge EAX 1/2/5. Toutes ces puces ont hérité de leur prédécesseur CMI8738 un bloc DSP EAX 1/2 matériel, EAX 5 étant déjà logiciel.
Les propriétaires de cartes de la série Xonar ont beaucoup de chance, tout le monde a vu le bouton GX sur le panneau du pilote, mais peut-être que tout le monde ne sait pas ce qu'il fait. Je vais le montrer avec des captures d'écran du programme AIDA64, voici à quoi ressemble l'onglet DirectX audio lorsque le bouton est inactif et pour les propriétaires de cartes son intégrées Realtek sous Windows 7/8/10 :

Tous les tampons audio sont à zéro, toutes les API sont inactives. Mais dès que nous activons le bouton GX, nous voyons

C'est-à-dire que c'est très pratique — pas besoin de lancer des programmes supplémentaires comme Creative ALchemy et de copier le fichier dsound.dll dans chaque dossier de jeu. La grande question qui se pose est pourquoi Creative ne l'a pas fait dans ses pilotes ? De plus, dans tous les nouveaux modèles Sound Blaster Z/Zx/AE, elle n'utilise pas de processeur DSP matériel pour le traitement EAX, mais le fait par logiciel via le pilote avec des algorithmes simplifiés. Certaines personnes pensent que le traitement logiciel est suffisant car les processeurs modernes sont beaucoup plus puissants que les processeurs de cartes son d'il y a 10 ans, qui traitaient le son matériellement. C'est tout le contraire. Le CPU est optimisé pour traiter les commandes x86, alors qu'un DSP traite le son beaucoup plus rapidement que le processeur central, tout comme une carte graphique effectue la rastérisation plus vite qu'un CPU. Le processeur central sera suffisant pour des algorithmes peu complexes, mais une réverbération de qualité avec de nombreuses sources de son demandera trop de ressources même d'un CPU puissant, ce qui affectera la baisse de FPS dans les jeux. Cela a déjà été reconnu par Microsoft, qui a réintroduit le support du traitement audio par les processeurs DSP dans Windows 8, tout comme Sony, qui a ajouté dans sa console PS5 une puce séparée pour le traitement audio 3D.
Deuxième méthode
Cette option conviendra aux utilisateurs de la carte son intégrée à la carte mère, qui sont la plupart. Il existe un projet — c'est une émulation logicielle de DirectSound3D et EAX grâce à OpenAL (OpenAL doit obligatoirement être installé dans le système) qui ne nécessite pas d'accélération matérielle. Si votre chip audio a des fonctions matérielles pour le traitement du son, elles seront utilisées automatiquement. Le programme fonctionne si bien qu'EAX a fonctionné pour moi dans tous les vieux jeux où l'option EAX est cochée dans les paramètres. Voici à quoi ressemble la fenêtre AIDA64, si vous copiez les fichiers DSOAL dans le dossier du programme :

Si cela ne s'est pas produit et que vous avez une image comme sur la première capture d'écran, cela signifie que la version native de Windows dsound.dll ne permet pas d'intercepter l'API, comme cela a été le cas pour moi. Une méthode utile serait de démarrer à partir d'une image Windows Live-CD et de supprimer le fichier dsound.dll avec l'aide de l'utilitaire Unlocker (en faisant d'abord une copie au cas où vous auriez besoin de revenir en arrière) du répertoire C:WindowsSysWOW64 et d'y écrire à la place le fichier dsoal-aldrv.dll et dsound.dllJ'ai fait cela et tant Windows que tous les jeux fonctionnaient sans problèmes, et c'est même plus pratique — il n'est pas nécessaire de copier ces fichiers dans les dossiers des jeux à chaque fois, au pire, on peut toujours les remettre à leur place d'origine. dsound.dll Cependant, cette méthode ne convient que si vous n'utilisez pas d'autres cartes son ASUS ou Creative, car dans ce cas, DirectSound3D ne fonctionnera toujours que via DSOAL, et non via le pilote d'origine ou ALchemy.
Vous pouvez écouter DSOAL dans cette vidéo :

→ Télécharger
En comparant le son de EAX sur différentes cartes son, j'ai été surpris de constater que sur le Realtek intégré, EAX sonne mieux que sur les ASUS ou ma Audigy Rx. Si l'on lit les fiches techniques, pratiquement toutes les puces Realtek prennent en charge DirectSound3D/EAX 1&2. En lançant AIDA64 sous Windows XP, on peut voir :

Il s'avère que les Realtek, contrairement aux cartes son ASUS et Creative, prennent en charge un certain I3DL2 (ce qui n'est pas mentionné dans chaque fiche technique de Realtek). I3DL2 (Interactive 3D Audio Level 2) est une norme industrielle ouverte pour le traitement du son 3D interactif, une extension pour DirectSound3D pour travailler avec la réverbération et l'occlusion. C'est en principe un équivalent d'EAX, mais cela sonne mieux — une réverbération plus agréable dans les jeux des pas lorsque le personnage court dans une grotte ou un château, un son stéréo plus réaliste dans les pièces. Ainsi, si un vieux jeu fonctionne sous Windows XP, je joue uniquement sous XP, au cas où le moteur sonore pourrait utiliser I3DL2. Bien que DSOAL soit un projet ouvert et que tout le monde puisse l'améliorer, il ne pourra jamais utiliser I3DL2, car OpenAL ne fonctionne qu'avec I3DL2, et uniquement avec EAX 1-5. Mais il y a une bonne nouvelle — à partir de Windows 8, I3DL2 est inclus dans . Donc le son dans les nouveaux jeux sous Windows 10 sera meilleur que sous Windows 7.
Enfin, je tiens à rappeler que toutes ces technologies de son 3D ont été développées pour des écouteurs ; sur 2 haut-parleurs, vous n'entendrez pratiquement pas de son 3D. Pour apprécier un son détaillé, des écouteurs de niveau SVEN AP860 ne conviennent pas, parmi les écouteurs bon marché, il faut commencer avec Axelvox HD 241 — la différence sera déjà manifeste avec SVEN AP860, comme le ciel et la terre. Voilà comment vous orienter.
Source : habr.com
