Skocz do zawartości
deton24

Kapitalne pozycjonowanie 3D i jakość dźwięku w grach - customowe biblioteki dsound.dll, x3daudio1_7.dll, OpenAL32.dll

Rekomendowane odpowiedzi

Kapitalne pozycjonowanie 3D i jakość dźwięku w (czasem także nowych) grach -

DSOAL, OpenAL Soft, InditectSound, Creative Alchemy, X3D Audio HRTF (x3daudio1_7.dll), Rapture3D

 

Czyli jak przywrócić efekty dawnej sprzętowej akceleracji audio (i nie tylko)

porzuconej części składowej pakietu DirectX - DirectSound, za pomocą jednej z bibliotek dsound.dll w DSOAL (a do tego wstrzyknąć OpenAL)

a także sprawdzanie zasadności ich stosowania w nowszych tytułach,

przywracanie EAX w starszych grach

+ upgrade EAX do v. 4.0 w dowolnym tytule z EAX.dll w starszej wersji).

Do tego kilka słów o OpenAL, problemach z działaniem, a także odpalaniem HRTF (również za pomocą dsound.dll, czy x3daudio1_7.dll)

W grach z OpenAL obsługujących EAX, na wszystkich kartach dźwiękowych można teraz też użyć tego:

https://github.com/bibendovsky/eaxefx/releases/

A także przywracanie Aureal3D poprzez DSOAL lub Alchemy (oba do użytku razem z A3DLive) lub poprzez inne paczki wrapperów (podobnie jak z EAX - poprzez dsound.dll, wiecej o A3D w moim angielskim wątku w kontekście Raymana 2 i Tonic Trouble na raymanpc.com)

Jak zapewne zorientowani w tematach architektury systemów operacyjnych wiedzą, wraz z premierą Windows Vista, dobrotliwy Micro$oft, pozbył się Hardware Abstraction Layer (HAL), a w konsekwencji przestała działać sprzętowa akceleracja w kartach dźwiękowych. W rezultacie, EAX w grach przestał działać, a posiadacze kart Creative, i nie tylko, problemy te zaczęły się 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. Biblioteki te robią to samo co kiedyś karty dźwiękowe sprzętowo, ale na warstwie programowej, 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).

 

I dla gier nie wspierających OpenAL/DirectSound/X3D Audio - 

HeSuVi (zawiera tablice z OpenAL Soft, a także wielu komercyjnych aplikacji)

 

Duża lista API wykorzystywanych w większości gier:  

http://satsun.org/audio/

lub na PCGamingWiki na stronie danej gry w zakładce Middleware (tam też znajdziecie aby wybrać poprawną wersję biblioteki, czy gra ma 64 czy 32 bity - dzisiaj większość to pierwsze)

Także obszerna lista gier wspierających DirectSound:

https://docs.google.com/document/d/1SyOw7D0H2ecGxzPsCFEFKwupU8LuazUrlkI-gVTpyhc/edit#

Tutaj dla rozjaśnienia jest też tabela starszych gier, gdzie wyszczególnione jest, który tytuł ma wsparcie DirectSound, a który OpenAL. Niektóre mają wsparcie dla obu (czasem np. wtedy dsound z Alchemy działa lepiej). Np. w grach z Miles odpowiednia komenda włącza DirectSound lub EAX (jeśli obecny). Lista zalinkowana zaraz poniżej jest też o tyle istotna, że czasem można tam znaleźć jak w ogóle włączyć w niej DirectSound w danej grze, już nie wspominając że znajduje się tam cała lista ustawień dla Alchemy:

http://web.archive.org/web/20130328011532/http://connect.creativelabs.com/alchemy/Lists/Games/AllItems.aspx

 

A Alchemy i pochodne nie przywracało czasem po prostu EAX?

Co większość wie, owe przywrócenie dawnych funkcjonalności charakterystycznych dla dawnej akceleracji sprzętowej dźwięku z systemów 9x i XP, przez użycie odpowiedniego wrappera dsound.dll w nowych systemach 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 zastosowanie wrappera dsound.dll, równa się też w różnych przypadkach, z przywróceniem funkcjonalności DirectSound3D czyli efektu przestrzennego 3D (z kapitalnym efektem - również w stereo) w grach które obsługiwały w momencie premiery DirectSound, mimo że np. nie mają EAX; a także same odwołania DirectSound (choć to de facto prawie wszystkie tytuły DirectX, ale w przypadku nowszych tytułów, nie używające DirectSound w równym stopniu co dawniejsze gry). W praktyce, nawet do względnie nowych gier jak Battlefield 3, Max Payne 3 (w mniejszym stopniu 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 tam wsparcie dla DirectSound, orzy czym warto zauważyć, że pierwsze GTA które wyszło na tym silniku (IV), zostało wypuszczone w czasach gdy Windows XP miał się całkiem dobrze - gra na XP może brzmieć inaczej niż na Vista+; 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/D3D10/D3D11/DXGI.dll, może być nadal używane (choć z różnym powodzeniem) a biblioteka gdy zostaje wstrzyknięta, może być widoczna np. w wykazie bibliotek w wypadku błędu aplikacji, w logach systemowych dziennika zdarzeń, lub nie mogąc dać się usunąć podczas działania aplikacji w tle (choć jest wyjątek w postaci GTA V gdzie Process Explorer pokazuje odwołania do dsound.dll, a biblioteka może zostać usunięta w trakcie działania gry, przy czym sama gra używa głównie XAudio2, i odwołuje się do x3daudio2_7.dll, której implementacji w postaci x3daudio1_7_hrtf można używać równolegle po zmianie nazwy biblioteki (która również może zostać usunięta w trakcie gry). Dlaczego w obecnej sytuacji spektogramy pokazują różnice w dźwięku w porównaniu do zwykłej wersji gry, i w dodatku je słyszę, choć bibliteki dają się usunąć... Mogę wysnuć hipotezę, że biblioteka jest ładowana do pamięci, przynajmniej w części, w momencie pierwszego uruchomienia dźwięku w grze, lub po maksymalizacji (na własne oczy doświadczyłem błędu podczas wstrzykiwania SweetFX, gdy działał on pomimo usunięcia biblioteki, choć usunięcie takie po włączeniu aplikacji jest na ogół zawsze niemożliwe). Warto też wiedzieć, że czasami dsound.dll bywał w grach wykorzystywany do wstrzykiwania innych bibliotek (np. w modach do SA). Generalnie dziś dsound.dll nadal znajduje się w systemach, tylko że mikser współcześnie zachowuje się inaczej przy próbie jej użycia niż przy systemach 9.x. Brak wykorzystania wrappera w grach z DSound na nowych systemach wiąże się z generowaniem dźwięku 2D, więc jest wtedy większy problem z lokalizacją źródeł pozornych, co daje też w kość różnym systemowym narzędziom wirtualizacji dźwięku.

Z powodzeniem można używać odpowiedniego wrappera, implementacji biblioteki dsound.dll do przywrócenia EAXu (np. Alchemy), i efektów dawnej akceleracji sprzętowej w nowych grach, ale również do przywrócenia 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 z efeketem uzyskania trochę lepszego efektu przestrzennego, lub kosmetycznie innej lub lepszej jakości dźwięku; lub kiedy gra wspiera natywnie DirectSound - z ogromnym zyskiem dla przestrzenności i często jakości dźwięku, 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 DirectSound 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óra jest jedną z implementacji bibliotek dsound.dll dla współczesnych systemów). Aplikacja Alchemy, lub my, kopiujemy po prostu dsound.dll do folderu z grą (+ dodatkowe dll, czy ini, czasem stosownie 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 niż Alchemy (które nawiasem nie implementuje własnego HRTF jak DSOAL, a jedynie przywraca EAX i DirectSound).

Czasami też trzeba włączyć EAX w opcjach gry (niektóre gry wymagają tego by dopuścić do nadawania odwołań DirectSound), rzadziej trzeba dopisać jakąś linijkę czy zmienić wartości jakiejś komendy w pliku konfiguracyjnym gry czy jej konsoli żeby EAX zadziałało. W większości, i 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, czy prawidłową obsługę wstrzykiwania dsound.dll 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), czy przy DSOAL - alsoft.ini. Generalnie wujek Google potrafi wiedzieć jak we współczesnych systemach zmusić do działania w danym starszym tytule DirectSound.

 

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

a potem lekturę tego poradnika naszego zaprzyjaźnionego forumowicza:

https://web.archive.org/web/20180621183110/https://pokazywarka.pl/3d-sound-in-games/

pod kątem poprawnej konfiguracji karty dźwiękowej w grach na przykładzie SBZ.

Gwoli dobrego startu z tematem dobrego pozycjonowania w grach.

 

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

 

1. Creative Alchemy - przywraca DirectSound3D, a więc dźwięk 3D, a także EAX (tłumaczy odwołania DirectSound na OpenAL). 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-tdm-on-any-soundcard/

Alternatywnie zobaczcie jeszcze tutaj:

http://forum.halomaps.org/index.cfm?page=topic&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 innych bibliotek jak DSOAL i IndirectSound, jeśli nie mam zamiaru używać HRTF z DSOAL. Zapewnia wtedy najwyższą jakość dźwięku, choć trochę słabsze pozycjonowanie niż wymienione dwa, choć nadal wiele lepsze niż domyślny dźwięk w wielu, niekoniecznie najstarszych grach uruchamianych na współczesnych systemach opartych na Dsound.

 

Ktoś np. kiedyś zgłaszał problemy z dźwiękiem z Alchemy w CS:GO. W podobnym wypadku, warto spróbować innej biblioteki niż Alchemy.

Alchemy ma swoje własne .ini konfiguracyjne, kopiowane razem z biblioteką przez dedykowaną aplikację Alchmy. Dla niektórych tytułów zalecana jest edycja ini lub parametrów wg. zaleceń stąd:

http://web.archive.org/web/20130328011532/http://connect.creativelabs.com/alchemy/Lists/Games/AllItems.aspx

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

 

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 jak ja. 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_openal_including_minecraft/cagd3lb

http://kcat.strangesoft.net/openal.html#download (odnowiony link z wpisu).

W grach z natywnym OpenAL można zamienić sterownik na wspaniały Rapture3D z Dirt 3 z własnym HRTF.

 

HOAL

Dla kart Creative, które są bazowane na Host OpenAL (HSOAL) (wszystkie po X-Fi, które nie mają już wykonywania akceleracji sprzętowej) zmiana nazwy pliku z sens_oal.dll na ct_oal.dll w lokalizacji 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, czy też - bardziej uwydatni efekt 3D, zwłaszcza na słuchawkach. Trick potrafi też działać na kartach Realteka, a w np. Unreal II z EAX 3 zapewniać lepszą jakość niż domyślne ct_oal w starszych kartach, np X-Fi.

Notatka stąd:

https://pcgamingwiki.com/wiki/Glossary:Sound_card#Creative

Rozwiązanie to ma 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

Jest jednak jeden filmik, gdzie typ odpala jednak HSOAL na X-Fi Xtreme Gamer:

Trochę tam widać jakie pliki są, i co robi. Wychodzi jednak na to, że na tych kartach HSOAL działa wtedy tylko gdy gra jest na OpenAL. Chyba nie zadziała to na Alchemy.

 

Gdyby ktoś miał problemy na HSOAL z nieprawidłowym, znikającym dźwiękiem, należy użyć wersji 2.17. Wszystkie od 2.40 są wadliwe w niektórych grach. Instrukcja po angielsku znaczyła mniej więcej tyle co:

- pobierz SB X-Fi Series Support Pack 4.0, tylko nie instaluj zawartych sterowników. Zainstaluj z tego pakietu tylko XFTI_PCDRV_LB_2_17_0009.exe

 

Podmiana wersji EAX gry

W tym miejscy warto wspomnieć, że mało osób wie, ale biblioteki EAX od co najmniej 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 dwóch tytułach (Max Payne 2, Far Cry 2), ale nic nie stoi na przeszkodzie by sprawdzić ten sposób w innych.

 

2. DSOAL

Download: http://vaporeon.io/hosted/dsoal-builds/

Download 64 bit: (eksperymentalne dla gier 64-bit - w większości przypadków nie powinieneś tego używać, bo nie ma zbyt wielu gier 64-bit z obsługą DSound)

https://github.com/kcat/dsoal/files/8773408/DSOAL.zip

Starsza wersja naprawiająca problemy w niektórych grach: 

https://github.com/kcat/dsoal/files/8784257/POPT2T-DSOAL.zip

Do pary z dsoal używanie najnowszego OpenAL Soft może naprawiać inne problemy z kompatybilnością. Zmień soft_oal.dll na dsoal-aldrv.dll z folderu Win32.

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

Jeśli w ogóle DSOAL u Ciebie nie działa (niektóre kompilacje W10 lub czasem W11) użyj tego:

https://github.com/kcat/dsoal/files/8783736/DirectSound.wrapper.registry.patcher.v1.0.zip

 

Wątek autora:

http://www.gamesas.com/restoring-surround-sound-and-eax-t82876.html

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

(możesz po prostu podmienić nowsze DLL OpenAL Soft z góry na tej pobranej wersji)

 

DSOAL łumaczy odwołania DirectSound na OpenAL. To drugie jest zasadniczo spadkobiercą EAXa, i w założeniu posiada sporo efektów z tego pierwszego (ale nie emuluje wszystkich efektów). Ponieważ OpenAL jest nadal wspierany, i do tego otwarty (no może poza samym EAX, które może, ale nie musi być w danej grze z OpenAL, najczęściej nie jest), to i w konsekwencji lepszy. DSOAL opiera się na OpenAL Soft, który jest aktywnie rozwijany. 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.com/r/oculus/comments/1fzonq/psa_for_games_using_openal_including_minecraft/cagd3lb)

W brzmieniu biblioteki, w odniesieniu do Alchemy, dostajemy jeszcze lepsze pozycjonowanie, zdarza się najczęściej, że i lepszą jakość dźwięku.

 

Kwestią otwartą pozostaje również to, jak wymusić ew. użycie WASAPI przez system w trakcie używania tej biblioteki. W readme jest napisane, iż rzekomo 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ć. Może też ew. dziać się różnie przy Exclusive i Shared WASAPI:

https://github.com/ThreeDeeJay/openal-soft/releases/tag/1.22.2-WASAPI-exclusive

Warto też zwrócić uwagę, że na różnych kartach, tryby 5.1 i 2.0 potrafią się lekko różnić w kwestii dźwięku; oczywiście poza samą zmiana sposobu pozycjonowania dźwięku na wszystkie kanały, co np. w GTA V, można zmienić niezależnie od ustawienia w Panelu Sterowania, w opcjach gry, że nie będziemy mieli wyciętej części zawartości dźwięku, a ustawienie w systemie będzie nadal 5.1.

W przypadku starszych gier, biblioteka DSOAL sama w sobie ma nie wspierać wersji EAX powyżej 2.0 (choć tu mogło się coś już zmienić), 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ą) i ew. HRTF wstrzyknąć za pomocą HeSuVi, jeśli samo EAX nie będzie wystarczać.

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 porównując bez HRTF w DSOAL.

 

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

 

Zainstaluj EAX4Unified_redist_4001 & Creative Alchemy 1.45.03

Skopiuj CreativeALchemy14503RestrictionRemover-MST.exe do Twojego folderu z Alchemy (C:\Program Files (x86)\Creative\ALchemy), uruchom potem jako administrator i kliknij "patch".

Skopiuj dsound.dll, dsound_aldrv.dll i alsoft.ini do Twojego katalogu z grą obok głównego pliku wykonywalnego gry.

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])

 

Kod źródłowy DSOAL:

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

 

 

Lista gier z wbudowanym HRTF:

https://docs.google.com/document/d/1uAklgDNC_LBOYSBbIzBeso6I4laForovIWiTYx6Ss8k/edit

Dolby Atmos jest słabe w kwestii obsługi HRTF (tak nawiasem, polecam testy IDrinkLava na YT w Overwatch).

 

 

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, tylko XAudio2. Brzmieniowo ustępuje Alchemy, a następnie dsoal, ale zapewnia lepsze pozycjonowanie od Alchemy, ustępując temu w dsoal który wyposażony jest w HRTF. IS 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.org/viewtopic.php?f=8&t=36870&sid=8c18e9820570c5bbd680081be9a5cae8

 

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.pcgamingwiki.com/files/file/75-realtek-3d-soundback/

Bodaj nie udało mi się odpalić tego na karcie która nie była Realtekiem.

 

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 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 trybie multiplayer. Zwłaszcza że tam bana można dostać za byle co obecnie (albo za nic).

 

Wątpię co prawda by były jakieś cheaty oparte na dsound.dll w CS:GO, ale tutaj analogicznie zalecam ostrożność, i poczytać we własnym zakresie. Bo sam nie wiem. Swego czasu chodziły słuchy że nawet za Reshade/SweetFX można było wyłapać bana.

Doczytałem że musi być jeszcze w config.cfg w C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg\cfg

wklepane:

snd_legacy_surround="1" żeby gra nadawała DirectSound. [ta komenda tyczy się ponoć każdej gry na silniku Source]

Dobrą robotę robi(ło) kiedyś też ponoć snd_occlusion="1"

dsp_enhance_stereo="1"

Potem config.cfg ustawiamy we właściwościach tylko do odczytu. Bo inaczej gra go resetuje przy każdym uruchomieniu.

 

W ogóle jakiś czas temu w CS:GO włączono HRTF, ale przyznam że nie wiem czy zaimplementowano to na 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ś niby lepszego od CMSS-3D, choć przy poprawnej konfiguracji karty, i dobrych słuchawkach, stosowanie tych systemów może być zbędne). 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, choć efekt był. HRTF zasadniczo nie działa poprawnie na głośnikach - został zaprojektowany pod kątem słuchawek, ale zdarza się że i na głośnikach pomaga. W wypadku CSGO nie wiem tylko, czy brak pojawienia się jako takiej opcji HRTF (pomimo że działał) nie był związany z brakiem wybrania słuchawek w opcjach gry i/lub w Panelu Sterowania.

 

 

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 lub link (nie wszystkie gry na UE4 muszą używać XAudio2, zobacz)

 

https://github.com/kosumosu/x3daudio1_7_hrtf (usunięte oryginalne repozytorium)

Archive.org: https://web.archive.org/web/20201104070837/https://github.com/kosumosu/x3daudio1_7_hrtf/releases/tag/v2.3

(jak przy próbie pobieranie pokaże Error 302 po prostu zaczekaj chwilę i za chwilę rozpocznie się przekierowanie do pobierania)

Zachowałem nowszą wersję xaudio_hrtf_2.4_Win32.7z 

oryginalnego x64 v.2.4 nie mam, ale zaufany user zrobił kopię/forka https://github.com/ThreeDeeJay/x3daudio1_7_hrtf/releases/

 

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) 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).

 

Dokopałem się też do ciekawej informacji.

Na przykładzie Wiedźmina 3, mod "x3daudio1_7_hrtf" zdaje się działać, pomimo że gra jest na Wwise, a nie Xaudio2. Tak jakby XAudio2 działało nadal na wyższej warstwie.

Wedle Process Monitor gra ładuje nawet nie x3daudio1_7.dll jak większość gier, tylko x3daudio2_7.dll (choć zazwyczaj głównie do odtwarzanych filmów), ale ludzie piszą, że to działa normalnie w grze:

https://www.nexusmods.com/witcher3/mods/2152?tab=posts

 

Póki co to tutaj zostawię, jakby ktoś chciał poeksperymentować. Lista gier z Wwise:

http://satsun.org/audio/

lub sprawdzając sekcję Middleware danej gry na PCGamingWiki.

Nie w każdej grze z Wwise musi to działać.

 

 

(OpenAL) Rapture3D -

Jest chyba najbaradziej naturalną implementacją HRTF we wrapperze OpenAL, i w grach z co najmniej tej listy (używających natywnego OpenAL) powinna działać (są tam też wyszczególnione instrukcje instalacji):

Mój link

Otrzymujemy kapitalny HRTF (Amber) do włączenia w Speaker Layout>Headphone Stereo (Compat.).

W Dirt 3 brzmi nieziemsko. Instrukcja instalacji dla Dirt 3:

PCGamingWiki

 

Demonstracja:

 

Download:

http://www.blueripplesound.com/downloads/qw3d4gt/rapture3dgame_2.7.4_win.exe (strona producenta) 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.

 

______

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 większości przypadków zastosowania (aczkolwiek może się zdarzyć, że dana gra wspiera więcej niż jedno API - czy to w menu gry, czy to w pliku konfiguracyjny, choć dziś to już rzadkość). Poza tym też warto wspomnieć, że w każdym z tytułów, poszczególne biblioteki mogą działać inaczej (lub nie działać wcale). W razie problemów w grach z natywnym wsparciem OpenAL, zapraszam tutaj (zwłaszcza po sprawdzeniu działania wymienionego niżej w punkcie 2. - 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&insideModal=1

Dla gier używających natywnego OpenAL. Do użycia customowej biblioteki w takiej grze, można po prostu na stałe podmienić bibliotekę soft_oal.dll stąd http://openal-soft.org/#download w katalogu Windows:

"Na komputerze z systemem 64-bitowym, skopiuj DLL z \openal\bin\Win32 do Windows\SysWOW64 i tą z \openal\bin\Win64 do Windows\system32.

Na 32-bitowym systemie, tylko DLL z \openal\bin\Win32 do Windows\system32." Tylko polecam przynajmniej kopię sobie wcześniej zrobić.

Albo ew. podmienić soft_oal/OpenAL32 wewnątrz katalogu gry.

Tutaj jeszcze trochę więcej informacji:

https://www.systemshock.org/index.php?topic=8371.0

 

Polecam zagłębić się w temat poszczególnych implementacji samego OpenAL. Obecnie raczej najlepszy jest OpenAL Soft (na którym oparty jest DSOAL), oficjalne OpenAL 1.1 (czyli zamknięta implementacja Creative), i jest też Adalin AeonWave 3.40, i zaawansowana, płatna - Rapture3D, która w niektórych przypadkach może charakteryzować się jeszcze lepszymi efektami 3D od DSOAL i tam dostępnymi tablicami HRTF (bazowanymi na OpenAL Soft). Darmowo dostępna jest edycja Game, którą można ściągnąć z linku powyżej.

 

Zasadniczo nic też nie stoi na przeszkodzie, aby przetestować w danej grze z OpenAL, zarówno natywny plik OpenAL32.dll w naszym katalogu Windows (czyli implementację od Creative) vs implementację OpenAL Soft. Warto tylko wiedzieć, że wersje 32 i 64 bit tych bibliotek używają tej samej nazwy, zatem OpenAL32.dll z katalogu SysWOW64 będzie raczej wersją 64 bit. Z katalogu System32 - 32 bit.

 

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

https://web.archive.org/web/20200702120724/https://pclab.pl/art17707-8.html

 

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

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

 

Na koniec ciekawostka.

dsound.dll z Alchemy w trybie Game Mode odciąża CPU np. w Winamp lub Foobar używając wsparcia sprzętowego karty dźwiękowej jak to dawniej działo się w XP i 9.x. Wystarczy wkleić dsound.dll (Alchemy) wraz z .ini obok głównego exe w lokalizacji zainstalowanego odtwarzacza (lub użyć do tego aplikacji Alchemy).

 

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-Audigy-2-4-XFi-w-Windows-Vista/

 

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).

Generalnie też odsłuch z plikiem dsound.dll z działającego Alchemy, nie przyniósł jak dla mnie zbyt pozytywnych rezultatów brzmieniowych. A przypominam że używamy na wyjściu w Foobarze wtedy DS, czyli DirectSound. Generalnie do użycia w Foobarze OpenAL jest zupełnie inna wtyczka - Crystal Mixer, i ona rzeczywiście robi porządną robotę.

 

Co jeśli chcemy HRTF w grze która nie wspiera OpenAL (OpenAL Soft) lub XAudio2 (x3daudio1_7_hrtf) lub DirectSound (DSOAL) lub dana gra nie wspiera żadnego (dobrego) systemu wirtualizacji dla słuchawek 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/OpenAL Soft, a także wielu zgranych z licznych komercyjnych aplikacji min. wymienionych niżej. 

Podobne znane narzędzia wirtualizacji to CMSS-3D i Scout Mode (Creative), Xear 3D Virtual (ASUS, C-Media), Pure Virtual 7.1/5.1 (ASUS Xonar, Creative Sound BlasterX series), Dolby Headhone, Dolby Home Theater, Dolby Virtual Speaker, DTS Headphone:X, SBX Pro Studio (a.k.a. BlasterX Acoustic Engine, THX TruStudio Pro; Creative), Waves NX, Spatial Sound, Nahimic 3, Sennheiser GSX 7.1,

(i np. te działające dla wszystkich kart:) Windows Sonic, Dolby Atmos, Razer Surround.

Więcej informacji o wymienionych systemach wirtualizacji:

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

Na ogół tablice z OpenAL Soft potrafią zwracać lepsze efekty od Dolby Atmos (na przykładzie np. Overwatch na kanale IDrinkLava), ale ponieważ w HeSuVi jest i to drugie, program można wykorzystać do licznych porównań różnych tablic by sprawdzić, która zadziała najlepiej na naszej karcie dźwiękowej/DAC i słuchawkach. Analogicznie jak zmieniając tablice HRTF w pliku konfiguracyjnym OpenAL Soft i/lub jego wrapperach. 

Edytowane przez deton24
edycja 2023

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Lista gier, w tym kilku nowszych tytułów, ze wsparciem DirectSound i wykaz silników dźwiękowych w grach:

http://satsun.org/audio/

 

Dodatkowa lista starszych gier (& OpenAL):

http://web.archive.org/web/20130702030043/http://connect.creativelabs.com:80/alchemy/Lists/Games/AllItems.aspx

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

 

https://en.m.wikipedia.org/wiki/List_of_games_with_EAX_support (niektóre tytuły na liście tak na prawdę nie mają EAX, ale mają wsparcie dsound lub OpenAL)

 

RWAudioCore, Miles i inne silniki dźwiękowe na liście, wykorzystywane w grach jeszcze w czasach Windows 9.x/XP miewają najlepszą kompatybilność z bibliotekami powyżej, gdyż z myślą o istnieniu działającego poprawnie DirectSound były pisane, czasami są też niezbędne do przywrócenia 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 przetestować np. crashując grę, i przeglądając dziennik zdarzeń.

 

...

Dodatkowe tytuły spoza listy Creative Alchemy:

GTA V (prawdopodobnie wszystkie części; V może też działać z x3daudio1_7_hrtf i dsound.dll, choć żaden nie wstrzykuje HRTF jako takiego, ale coś tam się w dźwięku zmienia - https://yadi.sk/d/L1o9RhAI3aiFdJ)

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 trójce też)

NFS Pro Street, Hot Pursuit 2010 (i wszystkie NFS poniżej chyba do dwójki lub trójki włącznie, w tym Most Wanted, i Carbon, Undercover)

The Crew, Battlefield 3 (tylko IndirectSound), Battlefield Bad Company 2 (tylko IS), Rayman 2, Total Overdose (po ustawieniu DirectSound w opcjach), CS GO (po zmianach w konsoli/configu).

Battlefront II (2005) - problemy z dźwiękiem może naprawić to i lub wyłączenie bass management i ustawienie 5.1 lub 7.1 w systemie lub na karcie.

 

PS. Znalazłem też ciekawy poradnik naszego forumowicza ReznoR-a 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/

 

Dorzucę jeszcze bardzo fajny artykuł o technikaliach dot. pozycjonowania dźwięku w grach, i o rozmaitych efektach.

Archiwalny, co prawda.

http://ixbtlabs.com/articles2/sound-technology/

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Słyszysz, że dzwonią ale nie wiesz w którym kościele. Czekałeś z publikacją artykułu 10lat?

 

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.

 

 

Czyli z powodzeniem można używać bibliotek do przywrócenia EAXu, i akceleracji sprzętowej w nowych grach, od teraz głównie celem uzyskania kapitalnego efektu przestrzennego, i bez znaczenia jest czy gra w ogóle wspiera EAX, bo biblioteka będzie nadal działać (z pewnymi wyjątkami, o których niżej). Loader, lub my, kopiujemy po prostu dsound.dll do folderu z grą (+ew. dodatkowe dll czy ini) i to wszystko.

No tutaj to już poleciałeś. 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ą.

Edytowane przez patrykvel

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Cytat
W nowych grach niczego nie poprawisz oraz nie przywrócisz, bo nie ma czego.

Witam pierwszego śmiałka w temacie!

Miło Cię poznać.

 

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 np. 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. Tak jest w dokumentacji. Więc skoro tak piszą w źródłach, to nie musisz mieć racji, że Winda jest 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, 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 jest tylko wydmuszką. Testowałem, wiem jak działa. 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. Np. muzyka brzmi w tym często źle. Dla porównania odpal sobie którąś z zalinkowanych bibliotek. Zauważysz że dźwięk jest czystszy, a nie ma jakiś dziwnych reverbów, zapiaszczenia - a dodanie przestrzeni w scenie, nie dzieje się kosztem zmiany całego sygnału, aby za wszelką cenę brzmiał przestrzennie. Bo to jest jedyne co CMSS-3D i inne efekty jak Dolby Atmos, i Windows Sonic, czy SRS, które działają z reguły na wyższej warstwie, mogą robić. To nie tylko HRTF robi całą robotę.

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, ale za to zobacz z jakimi skutkami ubocznymi, i 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.

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.

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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).

Edytowane przez patrykvel

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

edit. Wspominałem już wcześniej że przy tytułach z natywnym wsparciem OpenAL z założenia nie ma co grzebać. (edit. czasem trzeba wyłączyć system diver w opcjach audio, lub inaczej).

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.

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mały update i TL;DR zarazem.

 

Chciałbym streścić ten długi wpis do jednego krótkiego.

W wielu starszych grach, i nie tylko, najoptymalniejszym wyborem biblioteki na poprawę dźwięku, który przy np. obecności DirectSound w danej grze, powoduje opad szczęki, jest

dsoal + tablice HRTF: https://yadi.sk/d/JfWiYFTT3ZebL6

Efekt jest jeszcze lepszy niż myślałem początkowo tworząc ten temat. Zatem, tam gdzie EAX nie jest potrzebne, zupełnie wystarczy dsoal zamiast Alchemy. Efekty 3D z odpowiednią wybraną przez nas tablicą HRTF są kapitalne. Jeśli coś nie działa, używacie Alchemy (nawet na integrach - http://forums.thedarkmod.com/topic/18249-tutorial-how-to-setup-eax-for-tdm-on-any-soundcard/) lub IndirectSound.

To są główne trzy biblioteki które mogą pomóc wycisnąć ostatnie soki z dźwięku w Waszych grach.

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

99 procent użytkowników PC używa zintegrowanej karty dźwiękowej + słuchawki marnej jakości.

Producenci gier bardzo dobrze o tym wiedzą.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To nie do końca w tym rzecz.

Bo te trzy główne biblioteki są w pewnej mierze własnościowe. Tzn. często open source, ale do zastosowań komercyjnych bez pytania nie mogą takiego czegoś użyć. Muszą pewnie wynegocjować jakąś zgodę.

Do tego jest kwestia interesów podmiotów trzecich których technologia jest w bibliotece. Tutaj może być podobnie

Poza tym, ostatnimi czasy już coraz mniej słyszalne są zmiany wprowadzane przez te biblioteki, nawet ta z HRTF, bo na przykładzie ostatnich iteracji Frostbite jest na tyle dobry dźwięk, że tylko właśnie dsoal z HRTF nie czynił go gorszym, niekoniecznie lepszym, a trochę innym, zaś np. Indirect Sound (jedyne co działało akurat w BF3) + poszerzone stereo w BF3 to kompletny opad szczęki. Ale to trochę inne silniki dźwiękowe stąd inna reakcja. Dlatego pisałem głównie pod kątem starszych gier lub silników, ale i dziś można w nie grać, lub znaleźć coś co powinno dobrze, lub bardzo dobrze z podobnymi działać. Np. najprawdopodobniej najnowszy Sniper Elite.

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nowe informacje do tematu zostały dodane:

 

 

 

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).

 

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ć tam innego profilu HRTF z mojego linka z dsoal (tam jest cała paczka, w tym nawet dwa profile 24 bit 48000 lub 44100 - najlepiej brzmi w GTA V gdzie dźwięki są nagrane w 44100) wystarczy podmienić wewnątrz katalogu HRTF wybrany preset na tą samą nazwę, stary w folderze usuwając.

 

_________

 

Do dsoala dodałem dwa nowe profile HRTF - 24 bit 44100 i 48000 - ten pierwszy w GTA V daje najlepszy dźwięk ze wszystkich. Bo gra jest nagrana w 44100. (pomimo tylko jednego profilu 24 i drobnego pogorszenia pozycjonowania - jeden profil).

W końcu dźwięki samochodów brzmią tak jak trzeba.

_________

 

 

Jeszcze ciekawe info znalazłem dla gier używających natywnego OpenAL. Do użycia customowej biblioteki od dsoala (czyli tej opartej na OpenAL soft) w takiej grze, można po prostu na stałe podmienić bibliotekę soft_oal.dll stąd http://openal-soft.org/#download w katalogu Windows:

"On a 64-bit machine, copy the DLL from \openal\bin\Win32 to Windows\SysWOW64 and the one from \openal\bin\Win64 to Windows\system32.

On a 32-bit machine, only copy the DLL from \openal\bin\Win32 to Windows\system32." Tylko polecam przynajmniej kopię sobie zrobić.

Tutaj trochę więcej informacji:

https://www.systemshock.org/index.php?topic=8371.0

 

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nowe informacje do tematu zostały dodane:

(OpenAL) Rapture3D

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nowe informacje do tematu zostały dodane:

 

Dla kart Creative, które są bazowane na Host OpenAL (HSOAL) (wszystkie po X-Fi, które nie mają już wykonywania akceleracji sprzętowej) zmiana nazwy pliku z sens_oal.dll na ct_oal.dll w lokalizacji 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, czy też - bardziej uwydatni efekt 3D, zwłaszcza na słuchawkach.

 

Notatka stąd:

https://pcgamingwiki.com/wiki/Glossary:Sound_card#Creative

 

Rozwiązanie to ma 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

 

 

Jest jednak jeden filmik, gdzie typ odpala jednak HOAL na X-Fi Xtreme Gamer:

Trochę tam widać jakie pliki są, i co robi. Wychodzi jednak na to, że na tych kartach HSOAL działa wtedy tylko gdy gra jest na OpenAL. Chyba nie zadziała to na Alchemy.

 

Gdyby ktoś miał problemy na HSOAL z nieprawidłowym, znikającym dźwiękiem, należy użyć wersji 2.17. Wszystkie od 2.40 są wadliwe w niektórych grach. Instrukcja po angielsku znaczyła mniej więcej tyle co:

- pobierz SB X-Fi Series Support Pack 4.0, tylko nie instaluj zawartych sterowników. Zainstaluj z tego pakietu XFTI_PCDRV_LB_2_17_0009.exe który jest interesującą nas wersją sterownika HSOAL.

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dokopałem się do ciekawej informacji.

Na przykładzie Wiedźmina 3, mod "x3daudio1_7_hrtf" zdaje się działać, pomimo że gra jest na Wwise, a nie Xaudio2. Tak jakby XAudio2 działało nadal na niższej warstwie.

Wedle Process Monitor gra ładuje nawet nie x3daudio1_7.dll jak większość gier, tylko x3daudio2_7.dll (choć zazwyczaj głównie do odtwarzanych filmów), ale ludzie piszą, że to działa normalnie w grze:

https://www.nexusmods.com/witcher3/mods/2152?tab=posts

 

Póki co to tutaj zostawię, jakby ktoś chciał poeksperymentować. Lista gier z Wwise:

http://satsun.org/audio/

 

Spróbuję potem to sprawdzić w różnych grach z Wwise. Nie w każdej musi to działać.

 

___________

edycja 2023

- dodano trochę o A3D

- więcej o HeSuVi

- dodano trochę więcej o listach API

- poprawiono trochę składnię zdań i trochę informacji

- dodano OpenAL Soft WASAPI Exclusive

Edytowane przez deton24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...