Es ist wahrscheinlich allgemein bekannt, dass mit der Einführung von Windows Vista im Jahr 2007 und den folgenden Windows-Versionen die Sound-API DirectSound3D aus Windows entfernt wurde. Statt DirectSound und DirectSound3D kommen nun die neuen APIs XAudio2 und X3DAudio zum Einsatz. Dadurch sind in alten Spielen die EAX-Soundeffekte (Umgebungsgeräusche) nicht mehr verfügbar. In diesem Artikel werde ich erklären, wie man DirectSound3D/EAX in allen alten Spielen, die diese Technologien unterstützen, auf Windows 7/8/10 wiederherstellt. Natürlich wissen erfahrene Gamer das alles, aber möglicherweise ist dieser Artikel für einige hilfreich.
Klassische Spiele sind nicht im Müll der Geschichte gelandet; im Gegenteil, sie erfreuen sich großer Beliebtheit sowohl bei älteren als auch bei jüngeren Spielern. Auf modernen Monitoren mit hoher Auflösung kommen alte Spiele besonders gut zur Geltung. Viele Spiele haben Mods, die Texturen und Shader verbessern, doch beim Sound gab es anfangs einige Probleme. Mit der Veröffentlichung der nächsten Windows-Generation, Vista, nach Windows XP, kamen die Entwickler von Microsoft zu dem Schluss, dass DirectSound3D veraltet war – es hatte eine Grenze von 6-Kanal-Sound, unterstützte keine Sound-Kompression, war prozessorabhängig und wurde so durch XAudio2/X3DAudio ersetzt. Da die EAX-Technologie von Creative kein eigenständiges API war, wie es damals A3D von Aureal war, sondern lediglich eine Erweiterung von DirectSound3D, wurden die Soundkarten von Creative außen vor gelassen. Ohne spezielle Software-Wraps sind die Menüpunkte für EAX beim Spielen alter Spiele unter Windows 7/8/10 nicht aktiv. Und ohne EAX wird der Sound in den Spielen weniger reichhaltig, weniger räumlich und nicht optimal positionierbar sein.
Um dieses Problem zu lösen, hat die Firma Creative das Wrapper-Programm ALchemy entwickelt, das DirectSound3D- und EAX-Aufrufe in die plattformübergreifende API OpenAL umleitet. Allerdings funktioniert dieses Programm offiziell nur mit Soundkarten von Creative und das auch nicht mit allen Modellen. So ist beispielsweise die moderne Audigy Rx-Karte, die über einen hardwarebasierten DSP-Prozessor CA10300 verfügt, offiziell nicht kompatibel. Eigentümer anderer Soundkarten, wie der integrierten Realtek, müssen zusätzlich den kostenpflichtigen Softwaretreiber Creative Sound Blaster X-Fi MB verwenden. Es gibt auch die Möglichkeit, das hauseigene Programm 3DSoundBack auszuprobieren, das jedoch von Realtek nicht fertiggestellt wurde – es blieb in der Beta-Phase stecken, funktioniert nur unzureichend und nicht mit allen Chips. Es gibt jedoch eine bessere, einfachere und kostenlos nutzbare Lösung.
Erste Methode
Ich beginne mit den Soundkarten von ASUS. Die Soundkarten ASUS DGX/DSX/DX/D1/Phoebus basieren auf C-Media-Chips, und selbst die Chips ASUS AV66/AV100/AV200 sind lediglich umbenannte C-Media-Chips. In den Spezifikationen dieser Soundkarten wird angegeben, dass sie EAX 1/2/5 unterstützen. Alle diese Chips haben das DSP-Modul CMI8738 geerbt, das hardware- und softwareseitig EAX 1/2 unterstützt, während EAX 5 bereits softwarebasiert ist.
Die Besitzer von Xonar-Karten haben Glück, denn jeder hat die GX-Taste im Treiber-Panel gesehen, aber möglicherweise wissen nicht alle, was sie bewirkt. Ich zeige das anhand von Screenshots aus dem Programm AIDA64; so sieht der Tab DirectX-Sound aus, wenn die GX-Taste bei den Besitzern von integrierten Realtek-Soundkarten unter Windows 7/8/10 nicht aktiviert ist:

Alle Soundpuffer sind gleich null, alle APIs sind deaktiviert. Sobald die GX-Taste jedoch aktiviert ist, sehen wir

Das heißt, es ist sehr praktisch – man muss keine zusätzlichen Programme wie Creative ALchemy starten und die dsound.dll-Datei in jeden Spielemappen kopieren. Es stellt sich die große Frage, warum das Unternehmen Creative das in seinen Treibern nicht gemacht hat. Darüber hinaus verwendet es in allen neuen Modellen der Sound Blaster Z/Zx/AE keinen Hardware-DSP-Prozessor zur Verarbeitung von EAX, sondern erledigt dies softwareseitig über den Treiber mit vereinfachten Algorithmen. Einige Menschen glauben, dass die softwaregestützte Klangverarbeitung ausreichend ist, da moderne CPUs viel leistungsfähiger sind als die Soundkartenschips von vor 10 Jahren, die den Sound in Hardware verarbeitet haben. Das ist jedoch nicht der Fall. Die CPU ist darauf optimiert, x86-Befehle zu verarbeiten, während ein DSP viel schneller den Sound als die zentrale Prozessoreinheit bearbeitet, wie auch eine Grafikkarte schneller das Rasterisieren übernimmt als die CPU. Die zentrale Prozessoreinheit reicht für einfache Algorithmen aus, aber qualitativ hochwertige Hall-Effekte mit zahlreichen Klangquellen würden selbst bei einer leistungsstarken CPU zu viele Ressourcen beanspruchen, was zu einem Rückgang der FPS in Spielen führen würde. Das hat bereits Microsoft anerkannt und die Unterstützung für die Verarbeitung von Sound durch DSP-Prozessoren in Windows 8 zurückgebracht, ebenso wie Sony, das einen separaten Chip zur Verarbeitung von 3D-Sound in seiner Konsole PS5 hinzugefügt hat.
Die zweite Methode
Diese Option ist für Benutzer der integrierten Soundkarte auf dem Motherboard geeignet, von denen die meisten sind. Es gibt ein Projekt namens — das ist eine Softwareemulation von DirectSound3D und EAX mithilfe von OpenAL (OpenAL muss im System installiert sein), die keine hardwarebeschleunigte Verarbeitung erfordert. Wenn Ihr Soundchip über hardwareseitige Funktionen zur Audioverarbeitung verfügt, werden diese automatisch verwendet. Das Programm funktioniert so gut, dass EAX bei mir in allen alten Spielen, in denen EAX in den Einstellungen aktiviert ist, funktioniert hat. So sieht das Fenster von AIDA64 aus, wenn Sie die DSOAL-Dateien in den Programmordner kopieren:

Wenn dies nicht passiert ist und Sie das Bild sehen, wie auf dem allerersten Screenshot, dann blockiert die originale Windows dsound.dll die API-Abfrage, so wie es in meinem Fall war. Dann hilft diese Methode — Sie müssen von einem Windows Live-CD-Image booten und die Datei dsound.dll mit Hilfe des Tools Unlocker (vorher eine Sicherungskopie zur Sicherheit anlegen) aus dem Verzeichnis C:\Windows\SysWOW64 löschen und stattdessen diese dsoal-aldrv.dll und dsound.dll. Ich habe es so gemacht und sowohl Windows als auch alle Spiele liefen einwandfrei, und es ist sogar bequemer – man muss diese Dateien nicht jedes Mal in die Spielordner kopieren, im Notfall kann man sie einfach zurückgeben. dsound.dll Allerdings ist dieser Ansatz nur sinnvoll, wenn Sie keine anderen ASUS- oder Creative-Soundkarten verwenden, da in diesem Fall DirectSound3D immer nur über DSOAL und nicht über den Originaltreiber oder ALchemy funktioniert.
Sie können DSOAL in diesem Video anhören:

→ Herunterladen
Als ich verglich, wie EAX auf verschiedenen Soundkarten klingt, stellte ich erstaunt fest, dass EAX auf dem integrierten Realtek besser klingt als auf Asus oder meiner Audigy Rx. Wenn man die Datenblätter liest, unterstützen nahezu alle Realtek-Chips DirectSound3D/EAX 1&2. Wenn man AIDA64 unter Windows XP startet, kann man Folgendes sehen:

Es stellt sich heraus, dass Realtek im Gegensatz zu den Soundkarten von ASUS und Creative auch eine Art I3DL2 unterstützt (nicht jeder Realtek-Datenblatt erwähnt dies). I3DL2 (Interactive 3D Audio Level 2) ist ein offener Industriestandard für die Verarbeitung von interaktivem 3D-Sound, ein Erweiterung für DirectSound3D, um mit Reverberation und Okklusion zu arbeiten. Im Grunde genommen ist es vergleichbar mit EAX, klingt aber angenehmer – realistischere Hall-Effekte in Spielen, wenn der Charakter durch eine Höhle oder ein Schloss läuft, und ein echteres Klangbild in Räumen. Daher spiele ich alte Spiele unter Windows XP, falls der Sound-Engine I3DL2 nutzen kann. DSOAL, obwohl es ein offenes Projekt ist, das von jedem verbessert werden kann, wird niemals I3DL2 nutzen können, da OpenAL nicht mit I3DL2 funktioniert, sondern nur mit EAX 1-5. Aber es gibt auch gute Nachrichten – ab Windows 8 ist I3DL2 in . Der Sound in neuen Spielen unter Windows 10 wird also besser sein als unter Windows 7.
Zum Schluss möchte ich daran erinnern, dass all diese 3D-Sound-Technologien für Kopfhörer entwickelt wurden; mit zwei Lautsprechern wird man 3D-Sound kaum hören. Um detaillierten Klang zu genießen, sollten die Kopfhörer der Klasse SVEN AP860 nicht geeignet, für günstige Kopfhörer sollte man mit Axelvox HD 241 — wird es bereits einen Unterschied geben zu SVEN AP860, wie Tag und Nacht. So ungefähr sollten Sie sich orientieren.
Quelle: habr.com
