Waarschijnlijk is het voor bijna iedereen bekend dat met de uitkomst van Windows Vista in 2007, en daarna in alle volgende versies van Windows, de geluid API DirectSound3D uit Windows is verwijderd. In plaats van DirectSound en DirectSound3D werden de nieuwe API's XAudio2 en X3DAudio gebruikt. Dit heeft ertoe geleid dat in oude games de geluidseffecten van EAX (omgevingseffecten) niet meer beschikbaar zijn. In dit artikel vertel ik hoe je DirectSound3D/EAX weer kunt terughalen in alle oude games die deze technologieƫn ondersteunen, terwijl je speelt op Windows 7/8/10. Natuurlijk weten ervaren gamers dit allemaal, maar misschien zal dit artikel voor sommigen nuttig zijn.
Oude games zijn niet op de vuilnisbelt van de geschiedenis beland, integendeel, ze zijn enorm populair bij zowel oudere als jongere gebruikers. Oude games zien er beter uit op moderne monitors met een hoge resolutie, voor veel games komen er mods uit die texturen en shaders verbeteren, maar met geluid had men aanvankelijk pech. Met de komst van de volgende generatie Windows Vista, na Windows XP, vonden de ontwikkelaars van Microsoft dat DirectSound3D moreel verouderd was ā het had een beperking tot 6-kanaals geluid, ondersteunde geen geluidscompressie, en was afhankelijk van de CPU, en daarom werd het vervangen door XAudio2/X3DAudio. Aangezien de EAX-technologie van Creative geen zelfstandige API was, zoals A3D in zijn tijd van Aureal, maar slechts een uitbreiding van DirectSound3D ā raakten de geluidskaarten van Creative aan de kant. Als je geen speciale software wrappers gebruikt, zullen de menu-items die EAX inschakelen in oude games niet actief zijn wanneer je speelt op Windows 7/8/10. En zonder EAX zal het geluid in de games niet zo rijk, vol en gepositioneerd zijn.
Om dit probleem op te lossen, heeft het bedrijf Creative de wrapper-applicatie ALchemy ontwikkeld, die DirectSound3D- en EAX-aanroepen omleidt naar de cross-platform API OpenAL. Maar deze applicatie werkt officieel alleen met geluidskaarten van het bedrijf Creative en niet met alle modellen. Bijvoorbeeld, de moderne kaart Audigy Rx met de hardware DSP-processor SA10300 werkt officieel niet. Voor eigenaren van andere geluidskaarten, zoals de ingebouwde Realtek, is er nog een softwaredriver nodig, de Creative Sound Blaster X-Fi MB, die betaald is. Je kunt ook proberen de eigen applicatie 3DSoundBack te gebruiken, maar deze werd niet afgemaakt door het bedrijf Realtek ā het is blijven hangen in de bĆØta-versie, werkt niet goed en niet met alle chips. Maar er is een betere manier, die eenvoudiger in gebruik is en gratis.
De eerste manier
Ik begin met de geluidskaarten van het bedrijf ASUS. De geluidskaarten van ASUS, zoals DGX/DSX/DX/D1/Phoebus, zijn gebaseerd op C-Media-chips en zelfs de ASUS AV66/AV100/AV200-chips zijn simpelweg herschreven C-Media-chips. In de specificaties van deze geluidskaarten staat dat ze EAX 1/2/5 ondersteunen. Al deze chips hebben de software-hardware EAX 1/2 en EAX 5 van hun voorganger CMI8738 geƫrfd.
Eigenaren van de Xonar-serie kaarten hebben het goed; iedereen heeft de GX-knop op het stuurprogramma-paneel gezien, maar niet iedereen weet misschien wat deze doet. Ik laat het zien aan de hand van screenshots uit het programma AIDA64, zo ziet het DirectX-geluid tabblad eruit wanneer de knop niet geactiveerd is en bij eigenaren van ingebouwde Realtek-geluidskaarten in Windows 7/8/10:

Alle geluidsbuffers zijn gelijk aan nul, alle API's zijn niet actief. Maar meteen na het inschakelen van de GX-knop zien we

Dat wil zeggen, het is erg handig ā je hoeft geen extra programma's zoals Creative ALchemy te starten en het dsound.dll-bestand naar elke spelmap te kopiĆ«ren. Een grote vraag rijst, waarom heeft Creative dit niet gedaan in zijn stuurprogramma's? Bovendien gebruikt het in alle nieuwe modellen Sound Blaster Z/Zx/AE geen hardware DSP-processor voor het verwerken van EAX, maar doet dit via de stuurprogramma's met vereenvoudigde algoritmes. Sommige mensen denken dat softwarematige geluidsverwerking voldoende is, omdat moderne CPU's veel krachtiger zijn dan de geluidskaarten van 10 jaar geleden die geluid hardwarematig verwerkten. Dit is absoluut niet waar. Een CPU is geoptimaliseerd voor het verwerken van x86-instructies, terwijl een DSP veel sneller geluid verwerkt dan de centrale processor, net zoals een videokaart sneller rasteriseert dan een CPU. Een centrale processor is voldoende voor niet al te complexe algoritmes, maar kwalitatieve reverb met meerdere geluidsbronnen zal veel te veel middelen vereisen, zelfs van een krachtige CPU, wat zal leiden tot een daling van de FPS in games. Dit heeft Microsoft al erkend en heeft de ondersteuning voor DSP-geluidverwerking in Windows 8 hersteld, net als Sony, die een aparte chip voor 3D-geluidverwerking aan zijn PS5-console heeft toegevoegd.
De tweede manier
Deze optie is geschikt voor gebruikers van de geĆÆntegreerde geluidskaart op het moederbord, waar de meeste mensen gebruik van maken. Er is zo'n project ā dit is een software-emulatie van DirectSound3D en EAX met behulp van OpenAL (OpenAL moet noodzakelijkerwijs op het systeem zijn geĆÆnstalleerd) die geen hardwareversnelling vereist. Als je geluidschip enige hardwarematige functies voor geluidsverwerking heeft, zullen deze automatisch worden gebruikt. Het programma werkt zo goed dat EAX bij mij op alle oude spellen werkte waar de EAX-optie in de instellingen is aangevinkt. Zo ziet het AIDA64-venster eruit als je de DSOAL-bestanden in de programmamap kopieert:

Als dit niet is gebeurd en je hebt een afbeelding zoals op de allereerste screenshot, betekent dit dat de originele Windows dsound.dll je niet toestaat om de API te onderscheppen, zoals het ook in mijn geval was. Dan helpt de volgende methode ā je moet opstarten vanaf een Windows Live-CD-image en het bestand dsound.dll verwijderen met behulp van het hulpprogramma Unlocker (maak eerst een back-up voor het geval je terug wilt) uit de map C:WindowsSysWOW64 en schrijf in plaats daarvan diezelfde dsoal-aldrv.dll en dsound.dllIk heb het zo gedaan en zowel Windows als alle spellen werkten zonder problemen, en het is zelfs handiger ā je hoeft deze bestanden niet elke keer naar de spelmappen te kopiĆ«ren, in het uiterste geval kun je ze weer terugzetten. dsound.dll Dit werkt echter alleen als je geen andere geluidskaarten van ASUS of Creative gebruikt, want in dat geval zal DirectSound3D altijd alleen via DSOAL werken en niet via de originele driver of ALchemy.
Je kunt DSOAL beluisteren in deze video:

ā Download
Bij het vergelijken van hoe EAX klinkt op verschillende geluidskaarten ontdekte ik tot mijn verbazing dat EAX beter klinkt op de ingebouwde Realtek dan op de ASUS of mijn Audigy Rx. Als je de datasheets leest, ondersteunen praktisch alle Realtek-chips DirectSound3D/EAX 1&2. Door AIDA64 op Windows XP te draaien, kun je zien:

Blijkbaar ondersteunen Realtek in tegenstelling tot ASUS en Creative geluidskaarten ook nog een soort I3DL2 (niet in elke Realtek datasheet staat dit vermeld). I3DL2 (Interactive 3D Audio Level 2) is een open industriestandaard voor het werken met 3D interactieve audio, het is een uitbreiding voor DirectSound3D voor het werken met reverb en occlusie. In principe is het een analoog van EAX, maar het klinkt prettiger ā aangenamere reverb in spellen van stappen, wanneer een personage door een grot of kasteel rent, en een realistischere klank van ruimtelijk geluid in kamers. Dus als een oude game draait op Windows XP, speel ik alleen op XP, misschien kan de geluidsengine I3DL2 inschakelen. DSOAL, hoewel het een open project is en door iedereen kan worden verbeterd, zal nooit I3DL2 kunnen gebruiken, omdat OpenAL niet met I3DL2 werkt, alleen met EAX 1-5. Maar er is ook goed nieuws ā met Windows 8 is I3DL2 inbegrepen in Dus het geluid in nieuwe games op Windows 10 zal beter zijn dan op Windows 7.
Ten slotte wil ik je eraan herinneren dat al deze 3D-geluidstechnologieĆ«n zijn ontwikkeld voor hoofdtelefoons, je hoort praktisch geen 3D-geluid op twee luidsprekers. Om te genieten van gedetailleerd geluid zijn hoofdtelefoons van niveau SVEN AP860 niet geschikt, als we kijken naar goedkope hoofdtelefoons moet je beginnen met Axelvox HD 241 ā er zal al verschil zijn met SVEN AP860, als de lucht en de aarde. Zoiets dus, oriĆ«nteer je daar op.
Bron: habr.com
