Waarschijnlijk weet bijna iedereen dat met de release van Windows Vista in 2007, en daarna in alle volgende versies van Windows, de DirectSound3D-geluids-API uit Windows werd verwijderd en de nieuwe API's XAudio3 en X2DAudio begonnen te worden gebruikt in plaats van DirectSound en DirectSound3D . Als gevolg hiervan zijn EAX-geluidseffecten (omgevingsgeluidseffecten) niet meer beschikbaar in oudere games. In dit artikel vertel ik je hoe je dezelfde DirectSound3D/EAX kunt teruggeven aan alle oude games die deze technologieën ondersteunen bij het spelen op Windows 7/8/10. Natuurlijk weten ervaren gamers dit allemaal, maar misschien is het artikel nuttig voor iemand.
Oude spellen zijn niet in de vuilnisbak van de geschiedenis beland; integendeel, er is veel vraag naar onder zowel oudere als jongere gebruikers. Oude games zien er beter uit op moderne monitoren met hoge resolutie, voor veel games worden mods uitgebracht die texturen en shaders verbeteren, maar in eerste instantie was er geen geluk met het geluid. Met de release van de volgende generatie Windows Vista, na Windows XP, beschouwden Microsoft-ontwikkelaars DirectSound3D als verouderd: het was beperkt tot 6-kanaals audio, ondersteunde geen audiocompressie, was processorafhankelijk en werd daarom vervangen door XAudio2/X3DAudio . En omdat de EAX-technologie van Creative geen onafhankelijke API was, zoals A3D van Aureal ooit was, maar slechts een uitbreiding van DirectSound3D, bleven de geluidskaarten van Creative achter. Als u geen speciale softwarewrappers gebruikt, zullen bij het spelen op Windows 7/8/10 in oude games de menu-items die EAX bevatten niet actief zijn. En zonder EAX zal het geluid in games niet zo rijk, volumineus of gepositioneerd zijn.
Om dit probleem op te lossen heeft Creative het ALchemy wrapper-programma ontwikkeld, dat DirectSound3D- en EAX-aanroepen omleidt naar de platformonafhankelijke OpenAL API. Maar dit programma werkt officieel met Creative-geluidskaarten, en zelfs niet helemaal hetzelfde model. Een moderne Audigy Rx-kaart met een CA10300 hardware DSP-processor werkt bijvoorbeeld officieel niet. Voor bezitters van andere geluidskaarten, bijvoorbeeld ingebouwde Realtek, moet je ook de Creative Sound Blaster X-Fi MB driversoftware gebruiken, wat geld kost. Je kunt ook het native 3DSoundBack-programma proberen, maar het is nog niet afgemaakt door Realtek - het stopte in de bètaversiefase, het werkt niet goed en werkt niet met alle chips. Maar er is een betere manier: het is gemakkelijker te gebruiken en gratis.
De eerste methode
Ik begin met ASUS-geluidskaarten. ASUS DGX/DSX/DX/D1/Phoebus-geluidskaarten zijn gebaseerd op C-Media-chips, en zelfs ASUS AV66/AV100/AV200-chips zijn dezelfde geherlabelde C-Media-chips. De kenmerken van deze geluidskaarten zeggen dat ze EAX 1/2/5 ondersteunen. Al deze chips hebben van hun voorganger het CMI8738 DSP-software-hardwareblok EAX 1/2 geërfd, EAX 5 is al software.
Bezitters van kaarten uit de Xonar-serie hebben veel geluk: iedereen heeft de GX-knop op het bestuurderspaneel gezien, maar misschien weet niet iedereen wat deze doet. Ik zal je in screenshots van het AIDA64-programma laten zien hoe het DirectX-geluidstabblad eruit ziet als de knop niet actief is en voor bezitters van ingebouwde Realtek-geluidskaarten in Windows 7/8/10:
Alle audiobuffers zijn nul, alle API's zijn inactief. Maar direct na het aanzetten van de GX-knop zien we het
Die. erg handig - u hoeft geen extra programma's zoals Creative ALchemy te starten en het bestand dsound.dll naar elke gamemap te kopiëren. De grote vraag rijst: waarom heeft Creative dit niet gedaan in zijn drivers? Bovendien gebruikt het in alle nieuwe Sound Blaster Z/Zx/AE-modellen geen hardware DSP-processor om EAX te verwerken, maar gebeurt dit in software via een stuurprogramma met behulp van vereenvoudigde algoritmen. Sommige mensen zijn van mening dat op software gebaseerde audioverwerking voldoende is omdat moderne CPU's veel krachtiger zijn dan de geluidskaartprocessors van 10 jaar geleden, die audio in hardware verwerkten. Het is helemaal niet zo. De CPU is geoptimaliseerd om x86-opdrachten te verwerken, en de DSP verwerkt het geluid van de centrale processor veel sneller, net zoals de videokaart sneller rasterisatie produceert dan de CPU. De centrale processor is voldoende voor eenvoudige algoritmen, maar hoogwaardige nagalm met veel geluidsbronnen zal zelfs van een krachtige CPU te veel bronnen in beslag nemen, wat de daling van de FPS in games zal beïnvloeden. Microsoft heeft dit al onderkend en heeft al ondersteuning voor audioverwerking met DSP-processors in Windows 8 teruggegeven, evenals Sony, dat een aparte chip aan zijn PS5-console heeft toegevoegd voor het verwerken van 3D-audio.
De tweede manier
Deze optie is geschikt voor gebruikers van een ingebouwde geluidskaart in het moederbord, wat de meerderheid is. Er bestaat zo'n project
Als dit niet gebeurt en je hebt een afbeelding zoals in de allereerste schermafbeelding, dan is het native Windows dsound.dll staat niet toe dat je de API onderschept, zoals in mijn geval het geval was. Dan zal deze methode helpen: u moet opstarten vanaf een Windows Live-CD-image en het bestand verwijderen dsound.dll niet zonder de hulp van het hulpprogramma Unlocker (na het maken van een kopie in geval van een rollback) uit de map C:WindowsSysWOW64 en schrijf in plaats daarvan dezelfde op dsoal-aldrv.dll и dsound.dll. Ik deed dit en voor mij werkten zowel Windows zelf als alle games zonder fouten en het is zelfs nog handiger - je hoeft deze bestanden niet elke keer naar de mappen met games te kopiëren, in extreme gevallen kun je de originele terugsturen rug dsound.dll in situ. Toegegeven, deze methode is geschikt als je geen andere ASUS- of Creative-geluidskaarten gebruikt, omdat DirectSound3D in dit geval altijd alleen via DSOAL werkt, en niet via de native driver of ALchemy.
Je kunt DSOAL beluisteren in deze video:
→ Downloaden
Toen ik vergeleek hoe EAX klinkt op verschillende geluidskaarten, was ik verrast toen ik ontdekte dat de ingebouwde Realtek EAX beter klinkt dan op Asus of op mijn Audigy Rx. Als je de datasheets leest, ondersteunen bijna alle Realtek-chips DirectSound3D/EAX 1&2. Als u AIDA64 vanuit Windows XP uitvoert, kunt u het volgende zien:
Het blijkt dat Realtek, in tegenstelling tot ASUS- en Creative-geluidskaarten, ook een soort I3DL2 ondersteunt (niet elke Realtek-datasheet zegt dit). I3DL2 (Interactive 3D Audio Level 2) is een open industriestandaard voor het werken met 3D interactieve audio, en is een uitbreiding op DirectSound3D voor het werken met nagalm en occlusie. In principe is het analoog aan EAX, maar het klinkt mooier: aangenamere nagalm bij stappenspellen, wanneer een personage door een grot of kasteel rent, realistischer klinken van surroundgeluid in kamers. Daarom, als het oude spel op Windows XP draait, speel ik alleen op XP, misschien kan de geluidsengine I3DL2 gebruiken. Hoewel DSOAL een open project is en iedereen het kan verbeteren, zal het nooit I3DL2 kunnen gebruiken, omdat OpenAL werkt niet met I3DL2, maar alleen met EAX 1-5. Maar er is goed nieuws: vanaf Windows 8 is I3DL2 inbegrepen
En tot slot wil ik je eraan herinneren dat al deze 3D-geluidstechnologieën zijn ontwikkeld voor hoofdtelefoons; op 2 speakers hoor je nauwelijks 3D-geluid. Om te genieten van een hoofdtelefoon met gedetailleerd geluidsniveau SVEN AP860 past niet, van goedkope koptelefoons waar je mee moet beginnen Axelvox HD241 - er zal al een verschil zijn met SVEN AP860zoals hemel en aarde. Oriënteer jezelf op de een of andere manier zo.
Bron: www.habr.com