Blog (15)
Komentarze (756)
Recenzje (0)
@deton24Lepsza jakość dźwięku i pozycjonowania w grach — wstrzykujemy OpenAL/HRTF, i/lub odzyskujemy DirectSound 3D i/lub EAX

Lepsza jakość dźwięku i pozycjonowania w grach — wstrzykujemy OpenAL/HRTF, i/lub odzyskujemy DirectSound 3D i/lub EAX

23.07.2018 06:09, aktualizacja: 01.05.2020 08:23

Biblioteki: Creative Alchemy, DSOAL, Inditect Sound, 3D SoundBack, Xear3D EX, x3daudio1_7_hrtf, Rapture3D,

dla obsługi:

DirectSound, Aureal3D, XAudio2, OpenAL we współczesnych systemach.

Czyli (min.) jak przywrócić efekty dawnej sprzętowej akceleracji audio części składowej pakietu DirectX - DirectSound, za pomocą bibliotek dsound.dll (i wstrzyknąć OpenAL/+HRTF) a także jak, i czy stosować te biblioteki (i które) w nowszych tytułach.

Przywracanie EAX w starszych grach + upgrade eax.dll do wersji 4.0 w dowolnym tytule z EAX wersji starszej). Używanie Rapture3D w grach OpenAL. Zastępowanie bibliotek OAL. Kilka słów o HRTF i wstrzykiwaniu.

Aktualna wersja wpisu (proszę tu czytać): 

http://forum.pclab.pl/topic/1239496-Kapitalne-pozycjonowanie-3D-i-jako...

_______________________________________________________________________________________

Jak zapewne zorientowani w temacie rozwoju architektury systemów operacyjnych wiedzą, wraz z premierą Windows Vista, dobrotliwy Micro$oft, pozbył się Hardware Abstraction Layer (HAL), i w konsekwencji przestała działać sprzętowa akceleracja w kartach dźwiękowych. EAX w grach przestał działać, a posiadacze kart Creative, i nie tylko, mieli z tym mały problem od premiery Windows Vista. Poradzono sobie z tym na bardzo wiele sposobów, a dokładniej, różnych implementacji bibliotek dsound.dll na potrzeby przywrócenia dawnych utraconych funkcjonalności - które robią to samo co kiedyś hardware, ale na warstwie softwarowej, z małym narzutem na CPU (problem ponoć na kartach X‑Fi potrafi rozwiązać w jakimś stopniu włączenie Game Mode, przynajmniej w niektórych tytułach). Niewykluczone, że jeśli dany tytuł wspiera natywnie OpenAL, większość, lub wszystkie z wymienionych implementacji bibliotek dsound.dll nie będą miały w tym wypadku zastosowania. Poza tym, też warto wspomnieć, że w każdym z tytułów, poszczególne biblioteki mogą działać inaczej.

W razie problemów w grach z natywnym OpenAL, zapraszam tutaj (zwłaszcza po sprawdzeniu działania wymienionej niżej w punkcie 2. biblioteki dsoal). https://steamcommunity.com/sharedfiles/filedetails/?id=1185662247 (tutaj w pewnych przypadkach pomaga też w starszych tytułach, usunięcie openal32.dll z folderu gry, aby włączyć wsparcie sprzętowe, lub nawet instalacja Alchemy i pochodnych). W kwestii OpenAL w grach, polecam jeszcze spojrzeć na ten poradnik https://steamcommunity.com/sharedfiles/filedetails/?id=220526081&i...

Polecam też zagłębić się w temat poszczególnych implementacji samego OpenAL. Jest OpenAL soft, jest oficjalna zamknięta od Creative (podobno mniejsza latencja), i jest też Adalin AeonWave 3.40, i zaawansowana, płatna - Rapture3D, która charakteryzuje się jeszcze lepszymi efektami 3D od dsoal z HRTF (bazowane na OpenAL soft). Darmowo dostępna jest edycja game, którą można ściągnąć, ale nie wiem czy umieszczenie biblioteki (i ew. instalacja softu) w grze manualnie wystarczy: https://yadi.sk/d/aKOCwwY33aJgYR

Tutaj dla rozjaśnienia jest też tabela starszych gier gdzie wyszczególnione jest, który tytuł ma wsparcie Dsound, i który OpenAL. Niektóre mają wsparcie dla obu (czasem np. wtedy dsound z Alchemy działa lepiej). Niektóre gry nie korzystają z żadnego, i siedzą na mikserze Windows. Innym razem odpowiednia komenda załatwia sprawę. Lista zalinkowana zaraz poniżej jest też o tyle istotna, że czasem można znaleźć jak w ogóle włączyć dsound (w dsoal i Alchemy zatem też OpenAL) w danej grze, już nie wspominając że znajduje się tam cała lista ustawień dla Alchemy. http://web.archive.org/web/20130702030043/http://connect.creativelabs....

https://gbatemp.net/threads/kouens-custom-creative-alchemy-settings.34...

Co większość wie, owe przywrócenie dawnych funkcjonalności przez odpowiednią bibliotekę dsound.dll równa się przywróceniu EAX. Ponieważ praktycznie żadne nowe gry nie wspierają EAX, to i zainteresowanie tematem bibliotek DirectSound przycichło. Ale mało osób wie, że aplikacja odpowiedniej biblioteki dsound.dll, równa się też w różnych przypadkach, z przywróceniem dźwięku przestrzennego 3D (z kapitalnym efektem - również w stereo) w grach które obsługiwały w momencie premiery DirectSound, a także same odwołania DirectSound (czyli prawie wszystkie tytuły DirectX), mimo że np. nie mają EAX. Czyli nawet do względnie nowych gier jak GTA V, z powodzeniem można używać np. Alchemy, pomimo iż sam EAX od początku nie był wspierany przez silnik RAGE, ale który posiadał, i posiada nadal wsparcie dla DirectSound, bo pierwsze GTA które wyszło na tym silniku (IV), zostało przystosowane do działania na Windows XP; przy czym DirectSound jest niczym innym jak częścią pakietu DirectX, stąd jej umieszczenie w katalogu gry, analogicznie do bibliotek Reshade/SweetFX w postaci d3d9/dxgi, przynosi swój efekt, a biblioteka zostaje wstrzyknięta, i jest widoczna np. w wykazie bibliotek w wypadku błędu aplikacji, w logach systemowych dziennika zdarzeń. Do dziś dsound.dll znajduje się w systemach, tylko że mikser współcześnie zachowuje się inaczej przy próbie jej użycia niż przy 9.x.

Co za tym idzie, z powodzeniem można używać bibliotek do przywrócenia EAXu, i efektów dawnej akceleracji sprzętowej w nowych grach (tutaj DirectSound), ale od teraz, kiedy EAX już nie jest wspierany, a wyparły go zaawansowane silniki dźwiękowe poszczególnych gier, to we współczesnych tytułach często z efeketem uzyskania kapitalnego efektu przestrzennego kiedy gra wspiera natywnie DirectSound, a także lepszej jakości dźwięku, lub w określonych przypadkach tylko to drugie. I pozostaje tutaj bez znaczenia czy gra w ogóle wspiera EAX, bo biblioteka będzie nadal działać tłumacząc same odwołania z gry (z pewnymi wyjątkami, o których niżej). Pierwotnie przywrócenie EAX było głównym celem popularnego oprogramowania Creative Alchemy, które jest jedną z implementacji bibliotek dsound.dll dla współczesnych systemów). Alchemy, lub my, kopiujemy po prostu dsound.dll do folderu z grą (+ew. dodatkowe dll czy ini, czasem edytując je) i to wszystko. Jeśli w danym tytule nie działa prawidłowo (błędy, lub przekłamania) po prostu warto sprawdzić inną z wymienionych niżej bibliotek. Czasami też trzeba włączyć EAX w opcjach gry (niektóre gry wymagają tego by dopuścić do nadawania odwołań DirectSound), czasami trzeba dopisać jakąś linijkę czy zmienić wartości jakiejś komendy w pliku konfiguracyjnym gry czy jej konsoli. We współczesnych tytułach nie ma na ogół takiej potrzeby. Za to spotkałem się nawet, że gra potrafi wyłączyć wsparcie sprzętowe gdy nie będzie w trybie kompatybilności z Windows XP SP2 (WOW, Timeshift). Czasami też, (jak np. w IndirectSound) można zagłębić się w readme, i plik konfiguracyjny dsound.ini (również w przypadku Creative Alchemy).

Generalnie wujek Google potrafi wiedzieć o każdym ze starszych przypadków wykorzystywania DirectSound całkiem sporo. Ale jeszcze więcej możesz dowiedzieć się z tego kanału: https://www.youtube.com/channel/UCGrS-9TNYTo-gp3pjrA6VDg/videos W opisach filmów są zazwyczaj szczegółowe instrukcje co zrobić by odpalić dany (z reguły starszy) tytuł z dsoal.

Zanim przejdziemy do rzeczy, polecam odwiedzić stronę z polecanymi słuchawkami do gier: https://www.audiofanatyk.pl/najlepsze-sluchawki-dla-gracza/

Lista różnych implementacji bibliotek DirectSound, wraz z krótkim nakreśleniem różnic:

1. Creative Alchemy - przywraca dźwięk 3D (przez tłumaczenie odwołań DirectSound na OpenAL), i EAX. Zasadniczo tylko dla posiadaczy kart Creative, ale jak zajrzycie tutaj, to dowiecie się że ktoś sprytny opracował jak odpalić Alchemy na wszystkich kartach: http://forums.thedarkmod.com/topic/18249-tutorial-how-to-setup-eax-for... Alternatywnie zobaczcie jeszcze tutaj: http://forum.halomap...c&topicID=50211

Dla użytkowników kart Creative, tutaj znajduje się najnowsza wersja 1.45.20, nowsza niż oficjalnie na ich stronie:

https://fichiers.touslesdrivers.com/61925/Creative_ALchemy_1.45.20.zip

Zasadniczo mój najczęstszy wybór spośród także dsoal i IndirectSound. Zapewnia najwyższą jakość dźwięku, choć słabsze pozycjonowanie niż wymienione dwa, a zwłaszcza od dsoal + HRTF, choć nadal wiele lepszy dźwięk niż domyślny np. w GTA V - a w wypadku tej gry, zauważalnie ciekawszy z nawet starym dsoal niż na Alchemy.

Ktoś np. kiedyś zgłaszał problemy z dźwiękiem z Alchemy w CS:GO. W takim wypadku, warto spróbować innej biblioteki niż Alchemy. Alchemy ma swoje własne .ini konfiguracyjne, kopiowane razem z biblioteką przez loader - dedykowaną aplikację. Dla niektórych tytułów zalecana jest edycja ini lub parametrów loadera wg. zaleceń stąd: http://web.archive.org/web/20130328011532/http://connect.creativelabs....

Uzyskałem informacje że EAX 5.0 nie działa poprawnie na kartach innych niż Creative, ale możliwe że 4.0 działa poprawnie.

Warto też uprzedzić, że po instalacji Alchemy w systemie, mogą pojawić się jakieś problemy w ew. wykorzystywaniu innych bibliotek wymienionych w następnych punktach, w późniejszym czasie. Czasem przestawały działać, i już, a czasem w przypadku tytułu natywnie obsługującego OpenAL, jeden z potencjalnych problemów miał dotyczyć wymuszania zmieniania pliku soft_oal.dll na ct_oal.dll od momentu instalacji Alchemy. Zaś w innym poradniku kazali to samo zmieniać na OpenAL32.dll. Warto poczytać zalinkowane niżej wątki w razie problemów. Ale jak dobrze pójdzie, to unikniecie wszelkich problemów. Na aktualnym W10 na obecną chwilę wszystkie biblioteki działają na zmianę, bez zarzutów. Nie sprawdzałem tylko żadnych tytułów z natywnym OpenAL, ale przy tych zasadniczo nie stosuje się bibliotek Alchemy/dsoal/IndirectSound i innych, tylko najwyżej aktualizuje stare wersje bibliotek OpenAL. W starszych grach czasem trzeba uaktualnić OpenAL dla włączenia HRTF: https://amp.reddit.com/r/oculus/comments/1fzonq/psa_for_games_using_op...

Dla kart Creative które są bazowane na Host OpenAL (HSOAL) (wszystkie po X‑Fi, które nie mają już możliwości wykonywania akceleracji sprzętowej) zmiana nazwy pliku z sens_oal.dll na ct_oal.dll w c:\windows\syswow64 (64 bit) lub c:\windows\system32 (32 bit) wymusi na Alchemy używanie sterownika Host OpenAL zamiast domyślnej biblioteki, w rezultacie zapewniając lepszą jakość dźwięku w grach.

Rozwiązanie to nie działa na Audigy, X‑Fi i X‑Fi Titanium. Lista wspieranych kart przez Host OpenAL jest tutaj:

https://www.touslesdrivers.com/index.php?v_page=23&v_code=56040

Podmiana wersji EAX gry

W tym miejscu warto wspomnieć, że mało osób wie, ale biblioteki EAX od conajmniej wersji 2.0 da się "po chamsku" podmienić na wersje nawet 4.0 w obrębie folderu gry, np. stąd: https://www.dll-files.com/eax.dll.html (v. 4.0.1.0 - nowszej v.4 nie znalazłem nigdzie, od v.5 nie ma już kompatybilnej wstecz biblioteki eax.dll którą by tak po prostu można podmienić). W konsekwencji podmiany dostajemy już EAX Advanced HD 4.0, co oznacza że od teraz, wszystkie reverby będą w znacznie wyższej jakości. Testowałem co prawda na razie w jednym tytule, ale nic nie stoi na przeszkodzie by sprawdzić ten sposób w innych.

2. dsoal - download (stara wersja): http://kcat.strangesoft.net/dsoal.zip Wątki autora: http://www.gamesas.com/restoring-surround-sound-and-eax-t82876.html http://forums.bethsoft.com/topic/1192376-relz-restoring-surround-sound...

Wersja 2018 http://kcat.strangesoft.net/dsoal-bin.zip

2018 + tablice HRTF: https://yadi.sk/d/z9ub_Pbj3aQgXz

Alternatywny link z instrukcją:

https://www.nexusmods.com/newvegas/mods/65094/

(możemy tu także wyczytać że dla poprawnego działania HRTF ustawienia próbkowania w Panelu Sterowania powinny pokrywać się z używanym HRTF [choć to też nie jest tak, że przy ustawienieniu np. 192kHz całkowicie 3D przestaje działać - jest sporo słabsze, choć w efekcie dźwięk może mieć mniej efektu studni

])

Żródła DSOAL:

http://repo.or.cz/w/dsound-openal.git

Aktualizacja dsoal-aldrv.dll plikiem BIN\Win32\soft_oal.dll na aktualny, po zmianie nazwy, zawsze stąd:

https://openal-soft.org/#download

DSOAL to prawdziwy killer.

Tłumaczy odwołania DirectSound na OpenAL. To drugie jest zasadniczo spadkobiercą EAXa, i w założeniu posiada sporo efektów z tego pierwszego. Ponieważ standard jest nadal wspierany, i do tego otwarty (no może nie tak do końca), to i w konsekwencji lepszy. Wspiera np. HRTF który można użyć do spersonalizowanej kalibracji dźwięku przestrzennego na swoich słuchawkach (HRTF zaprojektowano głównie z myślą o słuchawkach - manualna kalibracja HRTF. - https://amp.reddit.c...ecraft/cagd3lb W brzmieniu biblioteki, w odniesieniu do Alchemy, dostajemy jeszcze lepsze pozycjonowanie, zdarza się najczęściej, że i lepszą jakość dźwięku, choć w odniesieniu do Alchemy, kosztem pewnej ingerencji w poziom jakości dźwięku, ale zyskujemy kapitalny dźwięk 3D na słuchawkach.

Dla nerdów. Kwestią otwartą pozostaje również to, jak rzekomo wymusić ew. użycie WASAPI przez system w trakcie używania tej biblioteki. W readme jest napisane, iż niby zależy to od ustawienia 2.0 lub 5.1 w systemie, ale nie zauważyłem by coś to zmieniało. Przy wykorzystaniu WASAPI nie ma sygnalizacji o sygnale w Windows. A w każdym z dwóch przypadków tę sygnalizację (zielone paski w Panelu Sterowania) podczas gry jest widać. Inna sprawa, że na różnych kartach 5.1 i 2.0 potrafi się lekko różnić dźwięk; oczywiście poza samą zmiana sposobu pozycjonowania dźwięku, które w niektórych grach można zmienić niezależnie od ustawienia w Panelu Sterowania, w opcjach gry. W przypadku starszych gier biblioteka sama w sobie ma nie wspierać wersji EAX powyżej 2.0, ale emuluje 2.0, używając na wyjściu OpenAL ("EAX 2.0 calls will also be appropriately translated"). Nie wiem co prawda, co będzie na wypadek użycia wersji 3.0 i wyższych przez grę, ale entuzjaści EAXa w starych grach mogą też pokombinować z linkiem na forum thedarkmod z punktu 1 - Alchemy dla wszystkich, i uzyskać działanie również nowszych wersji EAX (zwłaszcza w grach opublikowanych ze starszą wersją biblioteki niż 4, do której można podmienić każdą starszą). Generalnie autor pisał te biblioteki głównie z myślą o Wine i Linuxie, i zaznaczał że kompletnie nie jest w stanie przewidzieć jej działania pod Windowsem... ale jak widać na załączonym obrazku - działa, i jest moją ulubioną biblioteką zaraz po Alchemy które ma lepszą jakość dźwięku, choć słabsze pozycjonowanie.

Zobacz jak działa dsoal na przykładzie MoH AA z natywną obsługą DirectSound na nowych systemach (porównanie z i bez dsoal):

https://www.youtube.com/watch?v=31gVvMGIlaM

Użytkownik ma wiele gier na swoim kanale nagrywanych z dsoal w porównaniu z wynikiem bez.

Używa osobnej tabeli HRTF, która dodatkowo poprawia pozycjonowanie w porównaniu do starej wersji dsoal bez zaplikowanych tablic HRTF:

"I use a customized HRTF table I created from following a Reddit post, called IRC_1037. A full collection of these tables can be found in the v1.2 New Vegas mod I uploaded here: https://www.nexusmods.com/newvegas/mods/65094 Watch the video linked in the textfile, and follow the instructions."

PS. Na Windows 10 1809, DSOAL może sprawiać problemy. Alternatywnie w razie problemów można spróbować tej solucji (nawet jeśli masz już kartę Creative i oficjalną obsługę Alchemy):

  1. Install EAX4Unified_redist_4001 & Creative Alchemy 1.45.03
  2. Move the CreativeALchemy14503RestrictionRemover-MST.exe to your installed Creative ALChemy directory (C:\Program Files (x86)\Creative\ALchemy), run it as administrator and click "patch".
  3. Drag and drop dsound.dll, dsound_aldrv.dll and alsoft.ini into your game directory

Obszerna lista gier wspierających DirectSound:

https://docs.google.com/document/d/1SyOw7D0H2ecGxzPsCFEFKwupU8LuazUrlk...

Lista gier z wbudowanym HRTF:

https://docs.google.com/document/d/1uAklgDNC_LBOYSBbIzBeso6I4laForovIW...

Dolby Atmos jest w tym słabe BTW.

3. IndirectSound - otwarta konkurencja dla Creative Alchemy, z wyłączonym póki co wsparciem EAX, choć, tak jak powyższe biblioteki, wykorzystuje trick, który sprawia że gra myśli że ma do czynienia z urządzeniem ze wsparciem EAX, i często dzięki temu otwiera swoje podwoje dla tego standardu (oczywiście w tym wypadku również obliczenia przebiegają programowo - stąd w grach z problemami z płynnością, może pojawić się do pewnego stopnia zauważalny narzut na CPU, ale na ogół znikomy). IndirectSound od dsoal odróżnia to, że jest stworzone do pracy w sposób nie wykorzystujący OpenAL, a tylko DirectSound, którego odwołania tłumaczy już potem do XAudio2. Brzmieniowo ustępuje Alchemy, a następnie dsoal, ale zapewnia lepsze pozycjonowanie od Alchemy, ustępując temu w dsoal. Może posiadać lepsze wsparcie dla pewnych tytułów, w których powyższe nie działają (choć Alchemy działa niemal zawsze). Biblioteka jest nadal rozwijana przez autora, który zbiera różne zastrzeżenia i udziela aktywnego supportu, np. w tym wątku: https://www.vogons.o...680081be9a5cae8

4. Realtek 3D SoundBack - biblioteka działająca na podobnej zasadzie co Alchemy. Po prostu przywraca DirectSound, i najprawdopodobniej znów stara się emulować w swój własny sposób EAX, (z tego co pamiętam) dając OpenAL na wyjściu. Wrzucam gdyby te powyższe nie działały, lub ktoś był spragniony testów. Biblioteka jest od dawna porzucona w wersji 0.1 beta. https://community.pc...k-3d-soundback/

5. Xear3D EX - dla kart na chipsecie C‑Media (czyli także trochę Asusów, np. co najmniej niektóre Xonar). Dostępne w sterownikach danej karty, w panelu: "Open the Asus control panel Tick "GX" mode In games configuration files, force native implementation name as reported by ALC_ENUMERATION_EXT in EnumerateWin32 Notes Turning off GX mode after playing games is advised to avoid glitches in other applications"

UWAGA Na samym końcu wspomnę o fakcie, że biblioteka dsound.dll była w przeszłości wykorzystywana do różnych celów, np. przez moderów w GTA V. W niektórych poradnikach znajdziecie instrukcje, by usuwać min. dsound.dll przed wejściem do GTA Online. Nie mogę zagwarantować że nie wyłapiecie za tą bibliotekę bana w grach multiplayer. Zwłaszcza że tam bana można dostać za byle co obecnie (albo za nic). Nie wolno też używać dsound.dll w grach używających VAC. Swego czasu chodziły słuchy że nawet za Reshade/SweetFX można było wyłapać bana w CS GO. Po prostu zabronione jest wstrzykiwanie bibliotek. Co prawda doczytałem że musi być jeszcze w configu snd_legacy_surround="1" żeby gra nadawała DirectSound (tyczy się to każdej gry na silniku Source). Dobrą robotę robi(ło) kiedyś też ponoć snd_occlusion (?1) dsp_enhance_stereo 1 W ogóle jakiś czas temu w CS:GO włączono HRTF, ale przyznam że nie wiem czy zaimplementowano to normalnie przez OpenAL, czy jakoś inaczej. Po prostu jeszcze nie tak dawno mówiono, że taki był silnik gry - pozycjonowanie było jak w CS:S, i w przypadku jak komuś nadal było za mało, to bardzo dobrze sprawował się tryb Scout w nowszych kartach od Creative (np. SoundBlaster Z) - to takie coś lepszego od CMSS3D. Ale generalnie obecnie dźwięk w CS:GO słychać że jest trochę przebajerzony pod względem pozycjonowania, i mnie się obecnie w miarę podoba, choć jest jest pewien efekt studni. W opcjach CS:GO niektórzy mają HRTF. Ja np. nie miałem. I pamiętajcie jak coś, że HRTF nie działa poprawnie na głośnikach. Został zaprojektowany pod kątem słuchawek.

(OpenAL) Rapture3D -

Jest chyba najwspanialszą implementacją OpenAL, i w grach z co najmniej tej listy powinna działać (są tam wyszczególnione instrukcje instalacji):

http://blueripplesound.com/compatible-games

Otrzymujemy kapitalny HRTF (Amber) do włączenia w Speaker Layout>Headphone Stereo (Compat.). W Dirt 3 brzmi kapitalnie. Instrukcja instalacji dla Dirt 3:

https://pcgamingwiki.com/wiki/DiRT_3#Install_Rapture3D_for_3-dimension...

Demonstracja w UT3 i S.T.A.L.K.E.R.:

https://www.youtube.com/watch?v=lqqiIR017SQ

https://www.youtube.com/watch?v=zx4k8qewC_8

Download:

http://www.blueripplesound.com/downloads/qw3d4gt/rapture3dgame_2.7.4_w...

https://yadi.sk/d/1DGrbOde-Ana0g (to samo + wypakowane dll do ew. wrzucenia obok exe gry)

Na przykładzie S.T.A.L.K.E.R.a ktoś może stwierdzić, że dźwięki z Rapture3D mocno odbiegają od oryginału, ale są różne HRTF do wyboru. Niemniej nie możemy używać własnych plików mhr. Możemy też wyłączyć całkowicie HRTF, używając samej tylko tej implementacji OpenAL, wybierając głośniki w Layout (domyślne ustawienie po instalacji).

Warto jeszcze spojrzeć tutaj:

http://satsun.org/audio/

Gdzie jest napisane, że gry z Miles przechodzą również czasem przez OpenAL, głównie tytuły na silniku Source (gdzie obsługę dsound.dll włącza się komendą snd_legacy_surround 1).

Jest też informacja że gry na Unreal Engine 2.5 też używają OpenAL (lista gier: https://pcgamingwiki.com/wiki/Engine:Unreal_Engine_2.5) ale należy wyłączyć w opcjach audio w grze używany sterownik systemowy (odznaczyć opcję "system driver"). Wtedy gra zamiast dsound.dll używa OpenAL.

Warto zajrzeć na wyżej wymienioną stronę. Jest sporo ciekawych informacji pod tamtejszą listą gier odnośnie różnych problemów.

X3D Audio HRTF - 

Implementacja x3daudio1_7.dll wstrzykująca HRTF w grach bazujących na Unreal Engine 4 lub innych używających X3dAudio, XAudio2, takich jak Arma 3, Skyrim, Fallout 4 ( i z tego co wiem PUBG). Lista znajduje się tutaj: link (nie wszystkie gry na UE4 muszą używać XAudio2, zobacz)

Download: https://github.com/kosumosu/x3daudio1_7_hrtf

Polecam używać jeśli podmiana którejś z dsound.dll powyżej nie przyniesie oczekiwanych rezultatów.

Aby użyć innego profilu HRTF z mojego linka z dsoal (tam jest cała paczka, w tym nawet dwa profile 24 bit 48000 lub 44100, które potrafią brzmieć lepiej, gdy dźwięk ma za dużo efektu studni, choć lepsze pozycjonowanie) wystarczy podmienić wewnątrz katalogu HRTF wybrany preset na tą samą nazwę, stary w folderze usuwając (w razie crasha w danej aplikacji, można sprawdzić czy pomoże przywrócenie domyślnego HRTF, lub biblioteki dla innej architektury 32/64).

___________________________________________________________________________________________

Dorzucam jeszcze bardzo fajny artykuł o technikaliach dot. pozycjonowania dźwięku w grach, i o rozmaitych efektach. Archiwalny, co prawda. http://ixbtlabs.com/...und-technology/

Lista gier, w tym kilku nowszych tytułów z min. wsparciem DirectSound:

http://satsun.org/audio/

http://members.optusnet.com.au/kirben/3dsoftware.html

Lista gier z FMOD:

https://www.fmod.com/

https://www.fmod.com/games

Dodatkowa lista kompatybilnościowa starszych gier (także z OpenAL):

http://web.archive.o...s/AllItems.aspxhttps://en.m.wikiped...ith_EAX_support

(niektóre tytuły na powyższej liście tak na prawdę nie mają EAX, ale mają wsparcie dsound lub OpenAL)

Np. Miles, RWAudioCore i inne silniki dźwiękowe wykorzystywane już w grach w czasach Windows 9.x/XP miewają najlepszą kompatybilność z bibliotekami powyżej, gdyż były pisane z myślą o istnieniu działającego poprawnie DirectSound, do tego są czasem wymagane do przywrócenia dźwięku 5/7.1, ale czasami też wpływają trochę na brzmienie w tych grach które są nowsze, a raczej DirectSound na pozór nie wykorzystują (a przynajmniej gdzie DirectSound nie stanowi głównego API renderującego dźwięk), jednak wywołania biblioteki przez wrzucenie jej do folderu z grą i tak następuje, bo dsound.dll jest po prostu częścią pakietu DirectX. (np. tak jest w The Crew). Co za tym idzie, Creative Alchemy, dsoal, IndirectSound, można przetestować we właściwie każdej grze z DirectX. Załadowanie biblioteki z lokalizacją można sprawdzić np. crashując grę, i przeglądając dziennik zdarzeń. Odwrotnym przykładem gdzie fabrycznie dźwięk jest lepszy niż na dsoal i Alchemy to Need For Speed 2015. Po prostu gra z dobrym własnym silnikiem dźwiękowym która poprawnie wykorzystuje XAudio, a wstrzyknięcie OpenAL i domyślnych ustawień dsoal nie poprawia sytuacji, a wręcz przeciwnie. Jednak podążając za instrukcją z pliku 00README2, natrafiamy na ten film, z którego wybieramy swoją najlepszą dla nas tablicę HTRF, i ustawiamy ją w pliku ini (nie obsługiwany w wersji 2011 dsoal).

https://www.youtube.com/watch?v=WiAqXW1zsWk

Tutaj znajdziecie sterowniki dla gier Aureal 3D:

http://www.worknd.ru/ Sterowniki mogą być niekompatybilne z niektórymi grami z A3D 1.x.

Do działania np. na kartach Creative wymagane nadal jest dsound.dll, przynajmniej w przypadku wersji 1.x. Spotkałem się że załadowana poprawnie biblioteka przed włączeniem gry odsyłała na stronę producenta celem aktualizacji biblioteki. Oczywiście strona A3D.com nie istnieje.

Mała lista wspieranych tytułów przez wrappery dsound.dll:

GTA (od III wzwyż) Sniper Elite (prawdopodobnie wszystkie części, choć SE4 ma natywną opcję HRTF), Max Payne (prawdopodobnie wszystkie części; w jedynce dzięki temu następuje naprawa znikających dźwięków, niekompatybilne z dsoal, w MP3 też, a dźwięk oszałamiająco na plus na Alchemy - gra na silniku RAGE - obsługuje natywnie DirectSound, 1 i 2 bez dsoal), NFS ProStreet (i wszystkie NFS poniżej chyba do dwójki lub trójki włącznie). Fallout 3, New Vegas, Battlefield 3 (tylko IndirectSound).

Odnośnie dsoal:

"Some games like Max Payne and Far Cry have no audio, some like Riddick just crash outright, and some like Halo 2 and Half-Life 1 WON get no HRTF whatsoever. It seems that in most games, you have to set the 3D sound provider to "DirectSound3D Hardware". Setting it to "EAX" will crash the game. So far, I have been able to get MoHAA, Halo 1, Call of Duty 1 and 2, Painkiller, and Necrovision working perfectly this way."

PS. Znalazłem też ciekawy poradnik autorstwa ReznoR dot. ustawień Sound Blaster Z, Zx, ZxR pod kątem pozycjonowania w grach. Niektóre rady mogą być pomocne: http://pokazywarka.pl/3d-sound-in-games/

Co jeśli chcemy HRTF w grze która nie wspiera DirectSound (DSOAL) lub XAudio2 (x3daudio1_7_hrtf) lub nie posiada go natywnie?

Aby użyć HRTF w takiej grze, należy użyć systemu wirtualizacji dźwięku.Polecanym narzędziem dostępnym dla wszystkich kart jest HeSuVi, min. ze względu na obsługę tablic HRTF z DSOAL/OpenALSoft.Inne podobne znane narzędzia to CMSS3D i Scout Mode (Creative), Xear 3D Virtual (ASUS, C‑Media), Pure Virtual 7.1/5.1 (ASUS Xonar, Creative Sound BlasterX series).I dla wszystkich kart: Windows Sonic, Dolby Atmos, Razer Surround. https://pcgamingwiki...irtual_surround

FAQ

Q: "W nowych grach niczego nie poprawisz oraz nie przywrócisz, bo nie ma czego. EAX został prawie od razu po wprowadzeniu Visty zapomniany, więc aktywować go można tylko w starych grach które go posiadają. To samo z dźwiękiem 3D, po wprowadzeniu Visty gry zaczeły przechodzić na WASAPI przez co nie ma problemu z dźwiękiem wielokanałowym. CMSS-3D w przypadku posiadania starej karty możesz sobie aktywować w każdej gdzie bez problemu, nie trzeba robić żadnych sztuczek. Dzisiaj i tak ma to mniejsze znaczenie, bo windows 10 posiada 2 algorytmy do HRTF, własny windows Sonic oraz płatny Dolby Atmos, co nie zmienia faktu, że większość kart i tak posiada własne algorytmy.

"(...)"

To tak jakbyś powiedział, że do Wiedzmina 3 wprowadzisz DX9 wraz z jego nowinkami graficznymi jakie wprowadzał kopiując pliki DLL do folderu z grą."

A: Wraz z premierą Visty, DirectSound został odcięty przez wprowadzenie UAA. Od tamtej pory nie ma już bezpośredniej, niskopoziomowej ścieżki dojścia do sterowników audio z poziomu aplikacji. Dopiero zalinkowane biblioteki, zajmują się ponowną implementacją DirectSound (w Alchemy i dsoal - tłumacząc dodatkowo dsound na OpenAL), występując w formie końcowej w systemie jako WASAPI, który jest ostatnim ogniwem niskiego poziomu, który pozostał w systemie, poprzez który aplikacja 3D bez natywnej implementacji OpenAL, jest w stanie działać na potrzeby dsound/openal. Ale ponieważ jest to nadal tłumaczenie - translacja, emulacja procesów DirectSound zachodzących dawniej natywnie w systemie (dzięki dsound dziejących się bezpośrednio na karcie), to od teraz CPU liczy to co wiąże się z ponownym przywróceniem działania dsound, gdzie Alchemy nawet potrafi liczyć na CPU takie efekty jak EAX (działa nawet na Realtekach, i najprawdopodobniej nie jest przez nie emulowany jak było kiedyś, ale to biblioteka zajmuje się od teraz również translacją odwołań EAX). Dopiero bardzo niedawno MS próbowało naprawić swój błąd, wprowadzając w Windows 8 sprzętowe wyładowanie wielostrumieniowego stosu WASAPI na potrzeby miksowania i DSP, ale działa to tylko w aplikacjach UWP, i nawet nie wiem specjalnie z jakim skutkiem, a samo to, też może wymagać odpowiednich implentacji po stronie gry. MS, najprawdopodobniej z przyczyn kompatybilnościowych i wizerunkowych, nigdy nie napisał sam podobnej biblioteki, która z powodu ich własnych wewnętrznych zmian w systemowej architekturze audio, emulowała by od teraz swoje stare API, bo z potencjalnym narzutem obliczeniowym i możliwością wielu problemów kompatybilnościowych z każdą aplikacją z osobna, a to kolejne urwanie głowy. Nikomu z MS nie opłacało się ciągnąć dalej tematu. Zasadniczo OpenAL załatwia sprawę, ale jak zwróciłem uwagę, wiele gier go po prostu nie używa. Stąd nadal biblioteki będące przedmiotem tego tematu - nadal mają zastosowanie w najnowszych grach (to jest tak niedorzeczne, że aż ciężko uwierzyć, ale właśnie w taki sposób MS spaprał ludziom robotę na wiele lat, dziś o dsound mało kto pamięta). Nie wszystkie nowe gry (mniejszość) będzie korzystała natywnie z OpenAL, że nie łykną zalinkowanych bibliotek dsound (lub dsound->OpenAL). Próba zakotwiczenia biblioteki, jeśli pomyślna, ma natychmiastowy skutek w działaniu i odsłuchu, bez względu na wsparcie EAX. No i jeszcze dlaczego z nowymi grami można robić takie rzeczy?Generalnie możesz sobie hookować dll'ki do woli w każdej aplikacji, o ile dana aplikacja z niej (s)korzysta. Wystarczy sobie ją wrzucić do katalogu z exe, i będzie miała pierwszeństwo przed tymi w Windzie. Na tej samej zasadzie działa SweetFX, i dzięki temu można odpalać gry w nowszych wersjach API DirectX (przynajmniej z takimi się zgłaszają w np. Afterburnerze). Jedynie graficznie zaraz po podmianie biblioteki dxgi/d3dx się nic nie zmienia, bo nie ma po stronie gry jak na razie żadnych załadowanych efektów, i sama nie wykorzystuje nowo dostępnych odwołań, bo nie wie o ich istnieniu. Dopiero reshade/sweetFX robi z nich pożytek. Tak w dużym uproszczeniu. Inaczej jest z dsound. Bo tutaj chodzi o to co dawniej było wykorzystywane w systemie, a obecnie nie jest. dsound.dll, zmusza Windowsa do zmiany sposobu miksowania, np. wiem że przy IndirectSound jest używane XAudio2. Tak jest w dokumentacji. Więc skoro tak piszą w źródłach, to nie musisz mieć racji, że Winda pod względem dźwięku w grach jest już współcześnie pod tym względem cacy. O szczegółach poczytasz w załączonych plikach tekstowych i zalinkowanych stronach projektów. Twierdzenie że gry od czasów Visty, i zlikwidowania HAL, korzystają z WASAPI i temat zakończony, jest wierutną bzdurą. Sprawdzisz to w prosty sposób. Odpal Foobara z wtyczką WASAPI, ustaw ją w output i zobacz, że w Panelu Sterownia->dźwięk, przestają się poruszać paski obok urządzenia głośniki. Zmień teraz znów na DS (systemowe źródło domyślne) i brawo - paski znów wracają. Teraz odpal bez żadnej biblioteki z wymienionych, jakąś grę - brawo, paski się poruszają. Nie używa WASAPI. W takim razie, jak najprościej usłyszeć zmiany wprawadzane przez DirectSound/OpenAL?Prosty test. Wrzuć sobie dsoal do jakiejś gry. Znajdź sobie jakieś jednorodne źródło dźwięku w jednym punkcie. Rusz kamerą o 180 stopni. Teraz to samo, bez dll'ki. Brawo - dźwięk robi się kompletnie zbity, a odczuwalność lokalizacji źródła dźwięku, gdy jesteś do niego obrócony tyłem, jest dużo gorsza. Wszystko jest zbite ze sobą. CMSS-3D np. w muzyce jest pewną wydmuszką. Tam polega głównie na zmianie barwy dźwięku, i agresywnej ingerencji w sygnał, tak aby dodać przestrzeni, głównie kosztem wierności sygnału wejściowego. Potrafi to brzmieć często źle. Ale co ciekawe, CMSS-3D potrafi osiągać bardzo podobne efekty w grach co biblioteki, ale nie aż tak dobre. Dla porównania odpal sobie którąś z zalinkowanych tutaj bibliotek zamiast CMSS-3D. Zauważysz że dźwięk jest czystszy, a nie ma jakiś dziwnych reverbów, zapiaszczenia - a zwłaszcza w muzyce dodanie przestrzeni w scenie, nie dzieje się kosztem zmiany całego sygnału, aby za wszelką cenę brzmiał przestrzennie. Bo to tego jest najczęściej wykorzystywany CMSS-3D i inne efekty jak Dolby Atmos, i Windows Sonic, czy SRS, które działają z reguły na wyższej warstwie, choć w grach na dobrą sprawę włączone Alchemy może stanowić pewien pomost dla CMSS-3D. Nie tylko HRTF robi całą robotę ale również cały łańcuch na którego jest końcu. Bo np. IndirectSound nie wiem czy w ogóle go ma, bo nie wykorzystuje wcale OpenAL, a działa na dźwięk, w zbliżony sposób do reszty bibliotek, i może też działać na niższym poziomie (tu głównie mam na myśli zmiany w mixie i obróbkę od aplikacji przez odwołania z dsound.dll na wejściu). Czyli w dużej mierze mamy przepaść w pozycjonowaniu. HRTF jest częścią składową OpenAL. CMS3D korzysta z funkcji HRTF, i do starszych gier bez pozycjonowania 3D też daje radę, ale za to np. zobacz z jakimi skutkami ubocznymi w muzyce, i też nie ma dostępu do aplikacji jako takiej. Choć muzykę sobie możemy zawsze odpalić przez WASAPI, ale to nie to samo co dostęp do części składowej pakietu DirectX przez silnik gry, jakim jest wykorzystywanie odpowiedniego dsound.dll. Stąd też różne efekty z i bez dsoal vs CMSS-3D. Dźwięk przez biblioteki DirectSound/OpenAL zmienia się min. przez zmianę sposobu mixu na poziomie aplikacji. Jak biblioteka dokonuje translacji odwołań dsound, jak to się dokładnie wszystko dzieje - poczytaj, masz opasłe pliki readme różnych bibliotek, albo znajdź sobie innego jelenia który będzie Ci tłumaczyć jak działają. Bo się chłopie wypowiadasz o rzeczach, o których nie masz żadnego, nawet najmniejszego choćby pojęcia, myląc je ze sobą, i mieszając co tylko się da, i powielając kompletne, wierutne bzdury. Twoja wypowiedź jest całkowitą kompromitacją, albo otwartą prowokacją. Jedyne czego nie zaneguję w tej wypowiedzi, to że jak gra nie miała w ogóle oryginalnie EAXa, to nie da się go ponownie umieścić w grze. Jedyna rzecz zgodna z prawdą. Z tym że jedyną funkcją bibliotek(i) z tematu nie jest dodanie EAXa, ale również zmiana sposobu mixu dźwięku na poziomie aplikacji, kiedy gra wysyła swoje odwołania do dsound.dll.Głównym punktem wyjścia w mojej wypowiedzi jest to, że to nie jedynie HRTF, na wzór CMSS-3D, SRS, Atmos, Sonic, w przypadku dsound robi robotę, ale mówiąc dla laików, ogólnopojęta zmiana sposobu odtwarzania dźwięku przez system uzyskana dzięki jednemu z dawniej działających na warstwie sprzętowej, elementów składowych pakietu DirectX, z którego korzystają gry. Te "ulepszacze" wymienione wyżej, działają na wyższej warstwie. Nie mają bezpośredniego dostępu do gry. Możesz je włączać i wyłączać niezależnie od aplikacji - działają zawsze nałożone na sygnał końcowy, ale nie mają dostępu do tego, co się dzieje wcześniej - na poziomie aplikacji, do jej odwołań. Jaki by HRTF nie był, choćby i działał, cenię go bardziej niż CMSS3D, a zdecydowanie dzięki samemu wykorzystaniu OpenAL, choć to są systemy o dwóch różnych zastosowaniach, i mogą się równocześnie uzupełniać. Wykorzystanie wspomnianych bibliotek dsound.dll jest kolejnym krokiem do uzyskania lepszego pozycjonowania. Czy z "polepszaczami" czy bez. Na przykładowe potwierdzenie zasadności używania Alchemy i pochodnych dla gier bez EAX, ale wykorzystujących DirectSound, niech posłuży ta wypowiedź z niegdyś oficjalnej listy wsparcia Alchemy, jako przykład reprezentatywny dla wielu współczesnych tytułów:NFS Carbon"While this games is not EAX, NFS‑Carbon is surround, and a basser/fuller sound is produced when Creative ALchemy is used." I to samo dzieje się z tuzinem innych tytułów. Znajdzie się tam u źródła też więcej wypowiedzi w podobnym tonie. W przypadku części z tych tytułów, i tak nie ma EAX, do samego wykorzystania np. Alchemy to nie gra roli.Można narzekać na wprowadzone zmiany przez UAA, ale z perspektywy zwykłego odtwarzania muzyki w systemie, jej niektóre założenia mają uzasadnienie, bo miały z różnych przyczyn technicznych pozytywny wpływ na brzmienie. Jednak z do dziś dotkliwymi konsekwencjami w grach. HAL przepadło. Zamknięty rozdział. Warto nawet po 10 latach o tym przypominać, bo MS w tej kwestii tak zamieszało, że mało kto już dzisiaj pamięta o co w tym wszystkim tak na prawdę z perspektywy zwykłego gracza czy słuchacza chodzi. A DirectSound, czy OpenAL, do dziś można zmusić do działania, w wielu, czy to w nowszych, czy to starszych tytułach, a to jest bardzo cenna wiedza dla ludzi lubiących dobry dźwięk w grach.

Q: "Ale jak chcesz wprowadzać obsługę directsound kiedy gry używają innych API? Nawet sami autorzy programów które podałeś napisali, że chodzi o stare gry. Trafiły się GTA V oraz CS GO które z jakiś przyczyn posiadają to stare API(domyślnie nieaktywne), ale to tylko wyjątki. Sprawdź na innych grach(ja sprawdziłem)."

A: Wspominałem już wcześniej że przy tytułach z natywnym wsparciem OpenAL z założenia nie ma co grzebać. Np. biblioteka OpenAL32.dll może znajdować się wtedy w katalogu głównym gry, obok binarki. Wszystkie inne gry używające DirectX można wypróbowywać z Alchemy czy dsoal i IndirectSound. Najlepsze efekty może to przynieść w starszych grach, i silnikach, które natywnie wykorzystywały DirectSound. Efekty mogą się różnić od aplikacji.Generalnie można powiedzieć, że dzięki translacji na OpenAL w Alchemy lub dsoal, można osiągnąć wyższą jakość dźwięku, niż pierwotnie osiągano w danej grze w czasach Windows XP, ale i ogólnie lepszą w np. tych nowszych tytułach, które nadal nie wspierają OpenAL, a dzięki wstrzykiwaniu odpowiedniej biblioteki dsound.dll, będą mogły. Nic też nie zaszkodzi zalinkowaniu małej listy. (Post #2)Warto też gdzieś poszukać aktualnej listy gier z natywnym OpenAL. Poza tym, nie tylko najnowszymi grami człowiek żyje. A także nie tylko kiedyś żył samym EAXem (i w tym temacie nie głównie o niego się rozchodzi - sam fun z lepszego dźwięku mimo braku EAXu w wielu tytułach jest bezcenny).Stąd nadal można się tutaj czegoś ciekawego dowiedzieć, bo temat wykorzystywania bibliotek dsound pod katem współczesnych gier zupełnie nie umarł. Jedynie UWP kwestia bibliotek nie dotyczy, bo nie da się wstrzyknąć żadnej własnej konwencjonalnymi metodami (chyba że podmiana w katalogu Windows). No i warto uświadamiać ludzi co do OpenAL i HRTF, bo nie zawsze od razu działa prawidłowo po instalacji gry.

Więcej do poczytania o EAX, DirectSound, DirectSound3D:

https://pclab.pl/art17707-8.html

Więcej do poczytania o dźwięku przestrzennym, i rozmaitych rozwiązaniach odnośnie wirtualizacji dźwięku:

https://pcgamingwiki.com/wiki/Glossary:Surround_sound#Virtual_surround

Na sam koniec ciekawostka. Podobno posiadacze kart dźwiękowych Creative mogą odciążyć CPU w trakcie słuchania muzyki, przechodząc w Game Mode w Creative Console Launcher i używając Alchemy. Normalne obciążenie dla Foobar z kilkoma DSP i Izotope wynosi 11‑14% na C2Q @3GHz. Może ono się zmniejszyć, lub tak jak tutaj w Winamp, spaść nawet do zera! Jedna z customowych wersji Alchemy dla Audigy w okolicach 2008 (Creative ALchemy 1.00.03 for Live!), naprawiała akcelerację sprzętową dla wszystkich trybów karty dźwiękowej - normalnie działa to tylko w Game Mode.

http://forum.pclab.pl/topic/270039-Sprz%C4%99towe-DSP-kart-SB-Live-Aud...

Możliwe że konieczna jest instalacja całej paczki po wcześniejszym odinstalowaniu, bo wklejony dsound.dll z ini crashuje Foobara, lub zwraca błąd odtwarzania, a z normalnym Alchemy działa bez zarzutów (dsound.dll w katalogu odtwarzacza po włączeniu muzyki w trybie DS jest wtedy chroniony przed usunięciem - dla ASIO i WASAPI odciążenie raczej nie będzie miało zastosowania).

Wybrane dla Ciebie
Komentarze (14)