Asi téměř každý ví, že s vydáním Windows Vista v roce 2007 a poté ve všech následujících verzích Windows Rozhraní API pro zvuk DirectSound3D bylo odstraněno z WindowsTechnologie DirectSound a DirectSound3D byly nahrazeny novými rozhraními API XAudio2 a X3DAudio. V důsledku toho již EAX (zvukové efekty prostředí) nejsou ve starších hrách k dispozici. V tomto článku vysvětlím, jak obnovit DirectSound3D/EAX ve všech starších hrách, které tyto technologie podporují. Windows 7. 8. 10. Zkušení hráči tohle všechno samozřejmě vědí, ale třeba se článek někomu bude hodit.
Staré hry nezapadly do smetiště historie; naopak, jsou velmi žádané jak u starší, tak i mladší generace. Staré hry vypadají lépe na moderních monitorech s vysokým rozlišením a mody pro mnoho her vylepšují textury a shadery, ale zvuk byl zpočátku trochu zklamáním. S vydáním další generace Windows Vista, následující Windows V systému XP vývojáři Microsoftu považovali DirectSound3D za zastaralý – byl omezen na 6kanálový zvuk, nepodporoval kompresi zvuku a byl závislý na procesoru – a proto byl nahrazen XAudio2/X3DAudio. A protože technologie EAX od Creative nebyla samostatným API, jako je A3D od Aurealu, ale pouze rozšířením DirectSound3D, zvukové karty Creative zůstaly pozadu. Pokud nepoužíváte speciální softwarové obaly, přehrávání na Windows 8. 7. 10 Ve starších hrách budou položky nabídky, které povolují EAX, deaktivovány. Bez EAX bude zvuk hry méně bohatý, prostorový a méně polohový.
K vyřešení tohoto problému společnost Creative vyvinula program ALchemy wrapper, který přesměrovává volání DirectSound3D a EAX na multiplatformní OpenAL API. Tento program však oficiálně pracuje se zvukovými kartami Creative, a dokonce ne úplně stejným modelem. Například moderní karta Audigy Rx s hardwarovým DSP procesorem CA10300 oficiálně nefunguje. Pro majitele jiných zvukových karet, například vestavěného Realteku, je navíc potřeba použít software ovladače Creative Sound Blaster X-Fi MB, který stojí peníze. Vyzkoušet můžete i nativní program 3DSoundBack, ten však Realtek nedokončil – zastavil se ve fázi beta verze, nefunguje dobře a nefunguje se všemi čipy. Existuje však lepší způsob, je jednodušší a zdarma.
První cesta
Začnu zvukovými kartami ASUS. Zvukové karty ASUS DGX/DSX/DX/D1/Phoebus jsou založeny na čipech C-Media a dokonce i čipy ASUS AV66/AV100/AV200 jsou stejné přeznačené čipy C-Media. Charakteristiky těchto zvukových karet říkají, že podporují EAX 1/2/5. Všechny tyto čipy zdědily od svého předchůdce CMI8738 DSP-software-hardwarový blok EAX 1/2, EAX 5 je již software.
Majitelé karet řady Xonar mají velké štěstí; každý viděl tlačítko GX na panelu ovladače, ale možná ne každý ví, k čemu slouží. Ukážu vám to na screenshotech z AIDA64; takto vypadá záložka zvuku DirectX, když je tlačítko neaktivní. Pro majitele integrovaných zvukových karet Realtek, Windows 7 / 8 / 10:

Všechny audio buffery jsou nulové, všechna API jsou neaktivní. Ale hned po zapnutí tlačítka GX vidíme

Je to tedy velmi pohodlné – nemusíte spouštět další programy jako Creative ALchemy a kopírovat soubor dsound.dll do každé složky s hrou. Velká otázka zní, proč Creative toto neimplementoval do svých ovladačů? Navíc ve všech nových modelech Sound Blaster Z/Zx/AE nepoužívají hardwarový DSP procesor pro zpracování EAX, ale místo toho to dělají softwarově prostřednictvím ovladače s využitím zjednodušených algoritmů. Někteří lidé se domnívají, že softwarové zpracování zvuku je dostatečné, protože moderní CPU jsou mnohem výkonnější než procesory ve zvukových kartách z doby před 10 lety, které zvuk zpracovávaly hardwarově. To je zcela nepravdivé. CPU je optimalizováno pro příkazy x86 a DSP zpracovává zvuk mnohem rychleji než CPU, stejně jako grafická karta provádí rastrizaci rychleji než CPU. CPU je dostatečné pro jednoduché algoritmy, ale vysoce kvalitní dozvuk s více zdroji zvuku spotřebuje příliš mnoho zdrojů, a to i pro výkonný CPU, což ovlivní FPS ve hrách. Toto již uznal i Microsoft a již vrátil podporu pro zpracování zvuku DSP procesory. Windows 8, stejně jako Sony, která do své konzole PS5 přidala samostatný čip pro zpracování 3D zvuku.
Druhá cesta
Tato možnost je vhodná pro uživatele vestavěné zvukové karty v základní desce, kterých je většina. Existuje takový projekt je softwarová emulace DirectSound3D a EAX pomocí OpenAL (OpenAL musí být nainstalován v systému) a nevyžaduje hardwarovou akceleraci. Pokud má váš zvukový čip nějaké hardwarové funkce pro zpracování zvuku, budou použity automaticky. Program funguje tak dobře, že jsem díky němu zprovoznil EAX ve všech mých starých hrách, které měly v nastavení zaškrtávací políčko EAX. Takto vypadá okno AIDA64, když zkopírujete soubory DSOAL do složky programu:

Pokud se tak nestalo a máte obrázek jako na úplně prvním snímku obrazovky, pak je nativní Windows dsound.dll Neumožňuje zachycení API, jako to bylo v mém případě. Pak vám tato metoda pomůže - budete muset bootovat z nějakého Windows Obraz Live-CD a smazání souboru dsound.dll ne bez pomoci nástroje Unlocker (po vytvoření kopie v případě vrácení zpět) z adresáře C:WindowsSysWOW64 a místo toho zapište ty samé dsoal-aldrv.dll и dsound.dllUdělal jsem to samé pro sebe, jako pro sebe. Windowsa všechny hry fungovaly bez problémů a je to ještě pohodlnější - nemusíte tyto soubory pokaždé kopírovat do složek hry, v extrémních případech můžete vrátit původní dsound.dll na místě. Je pravda, že tato metoda je vhodná, pokud nepoužíváte jiné zvukové karty ASUS nebo Creative, protože v tomto případě bude DirectSound3D vždy fungovat pouze přes DSOAL, nikoli přes nativní ovladač nebo ALchemy.
DSOAL si můžete poslechnout v tomto videu:

→ Stáhnout
Při porovnávání zvuku EAX na různých zvukových kartách mě překvapilo, že integrovaný Realtek EAX zní lépe než karty Asus nebo moje Audigy Rx. Pokud si přečtete datasheety, téměř všechny čipy Realtek podporují DirectSound3D/EAX 1 a 2. Spuštění AIDA64 z Windows XP lze vidět:

Ukazuje se, že Realtek, na rozdíl od zvukových karet ASUS a Creative, také podporuje něco, co se nazývá I3DL2 (ne každý datový list Realteku to zmiňuje). I3DL2 (Interactive 3D Audio Level 2) je otevřený průmyslový standard pro interaktivní 3D zvuk; je to rozšíření DirectSound3D pro reverb a okluzi. Je to v podstatě stejné jako EAX, ale zní to hezčeji – příjemnější dozvuk ve hrách, jako kroky, když postava běží jeskyní nebo hradem, a realističtější prostorový zvuk v místnostech. Takže pokud starší hra běží na Windows XP, hraji jen na XP. Možná, že zvukový engine bude schopen používat I3DL2. DSOAL, ačkoli je to open source projekt a kdokoli ho může vylepšit, nikdy nebude schopen používat I3DL2, protože OpenAL nefunguje s I3DL2, pouze s EAX 1-5. Ale je tu dobrá zpráva: počínaje... Windows 8 I3DL2 zahrnuto v Takže zvuk v nových hrách je pod Windows 10 bude to lepší než pod Windows 7.
A na závěr připomínám, že všechny tyto technologie 3D zvuku byly vyvinuty pro sluchátka, na 2 reproduktorech 3D zvuk téměř neuslyšíte. Chcete-li si vychutnat podrobnou úroveň hlasitosti sluchátek SVEN AP860 nevejde, z levných sluchátek musíte začít Axelvox HD 241 - již bude rozdíl s SVEN AP860jako nebe a země. Nějak se takto orientujte.
Zdroj: www.habr.com
