Probabilmente quasi tutti sanno che con il rilascio di Windows Vista nel 2007, e successivamente in tutte le versioni di Windows, l'API audio DirectSound3D è stata rimossa da Windows; al suo posto sono stati utilizzati i nuovi API XAudio2 e X3DAudio. Di conseguenza, in molti giochi più vecchi sono diventati inaccessibili gli effetti sonori EAX (effetti sonori ambientali). In questo articolo spiego come ripristinare il vecchio DirectSound3D/EAX in tutti i giochi più vecchi che supportano queste tecnologie su Windows 7/8/10. Certo, i giocatori esperti lo sanno già, ma potrebbe essere utile per qualcun altro leggere questo articolo.
I giochi più vecchi non sono stati spazzati via dalla storia, anzi, sono molto richiesti sia dagli utenti più anziani che da quelli più giovani. I giochi più vecchi appaiono meglio su monitor moderni ad alta risoluzione, per molti giochi vengono rilasciati mod che migliorano le texture e gli shader, ma inizialmente il suono non è stato fortunato. Con il rilascio della nuova generazione di Windows Vista, dopo Windows XP, gli sviluppatori di Microsoft hanno ritenuto che il DirectSound3D fosse obsoleto: aveva il limite del suono a 6 canali, non supportava la compressione audio ed era dipendente dalla CPU, quindi è stato sostituito da XAudio2/X3DAudio. E poiché la tecnologia EAX della Creative non era un API autonomo come lo era un tempo A3D della Aureal, ma solo un'estensione di DirectSound3D, le schede audio della Creative sono rimaste escluse. Se non si utilizzano wrapper software speciali, quando si gioca a giochi più vecchi su Windows 7/8/10, i menu che includono EAX saranno disattivati. Senza EAX, il suono nei giochi non sarà così ricco, spazioso e posizionato.
Per risolvere questo problema, l'azienda Creative ha sviluppato il programma wrapper ALchemy, che reindirizza le chiamate DirectSound3D ed EAX verso l'API OpenAL cross-platform. Tuttavia, questo programma funziona ufficialmente solo con le schede audio della Creative e nemmeno con tutti i modelli. Ad esempio, la moderna scheda Audigy Rx, che ha un processore DSP hardware CA10300, non funziona ufficialmente. Per i proprietari di altre schede audio, come la Realtek integrata, è necessario utilizzare anche il driver software Creative Sound Blaster X-Fi MB, che è a pagamento. Si può anche provare il programma nativo 3DSoundBack, ma non è mai stato completato dalla Realtek — si è fermato alla fase beta, funziona male e non con tutti i chip. Ma c'è un modo migliore, è più semplice da usare e gratuito.
Primo modo
Iniziamo con le schede audio dell'azienda ASUS. Le schede audio ASUS DGX/DSX/DX/D1/Phoebus si basano su chip C-Media e anche i chip ASUS AV66/AV100/AV200 sono sempre gli stessi chip C-Media rinominati. Nelle specifiche di queste schede audio è scritto che supportano EAX 1/2/5. Tutti questi chip hanno ereditato dal loro predecessore CMI8738 il blocco DSP EAX 1/2 hardware, mentre l'EAX 5 è già software.
I possessori delle schede della serie Xonar sono stati fortunati; tutti hanno visto il pulsante GX nel pannello del driver, ma forse non tutti sanno a cosa serve. Mostrerò con degli screenshot del programma AIDA64, ecco come appare la scheda del suono DirectX quando il pulsante non è attivo e per i possessori di schede audio integrate Realtek in Windows 7/8/10:

Tutti i buffer audio sono uguali a zero, tutte le API non sono attive. Ma subito dopo l'attivazione del pulsante GX vediamo

Cioè, è molto comodo: non è necessario avviare programmi aggiuntivi, come Creative ALchemy, e copiare il file dsound.dll in ogni cartella di gioco. Rimane quindi una grande domanda: perché l'azienda Creative non ha fatto così nei suoi driver? Inoltre, in tutti i nuovi modelli Sound Blaster Z/Zx/AE non utilizza il DSP hardware per l'elaborazione EAX, ma lo fa tramite driver con algoritmi semplificati. Alcune persone ritengono che l'elaborazione audio software sia sufficiente, dato che le moderne CPU sono molto più potenti dei processori delle schede audio di dieci anni fa, che elaboravano il suono hardware. Ma non è affatto così. La CPU è ottimizzata per elaborare comandi x86, mentre il DSP elabora il suono molto più rapidamente rispetto alla CPU, proprio come la scheda video effettua la rasterizzazione più velocemente della CPU. La CPU basta per algoritmi non complessi, ma una riverberazione di qualità con molteplici fonti sonore richiederà troppe risorse anche a una CPU potente, il che si tradurrà in un calo degli FPS nei giochi. Questo è stato già riconosciuto dall'azienda Microsoft, che ha ripristinato il supporto per l'elaborazione audio tramite DSP processori in Windows 8, così come l'azienda Sony, che ha aggiunto un chip separato per l'elaborazione audio 3D nella sua console PS5.
Secondo modo
Questa opzione è adatta per gli utenti con scheda audio integrata nella scheda madre, che sono la maggior parte. Esiste un progetto chiamato che è un'emulazione software di DirectSound3D e EAX utilizzando OpenAL (OpenAL deve essere installato nel sistema), non richiedendo accelerazione hardware. Se il tuo chip audio ha delle funzioni hardware per l'elaborazione audio, queste verranno utilizzate automaticamente. Il programma funziona così bene che attraverso di esso l'EAX ha funzionato in tutti i miei giochi più vecchi, dove c'era l'opzione EAX nelle impostazioni. Ecco come appare la finestra AIDA64, se copi i file DSOAL nella cartella del programma:

Se ciò non è avvenuto e hai un'immagine come nello screenshot iniziale, significa che il file dsound.dll non permette di catturare l'API, come è successo nel mio caso. Allora aiuterà questo metodo: dovrai avviarti da un'immagine di Windows Live-CD e rimuovere il file dsound.dll con l'aiuto dell'utility Unlocker (facendo prima una copia di riserva nel caso di ripristino) dalla directory C:\Windows\SysWOW64 e scrivere al suo posto i seguenti dsoal-aldrv.dll e dsound.dll. Ho fatto così e sia Windows che tutti i giochi hanno funzionato senza problemi, ed è anche più comodo: non devi copiare questi file nelle cartelle dei giochi ogni volta; in caso estremo, puoi sempre ripristinare il file originale. dsound.dll Questo metodo è valido, però, se non usi altre schede audio ASUS o Creative, perché in quel caso DirectSound3D funzionerà sempre solo tramite DSOAL, e non con il driver nativo o ALchemy.
Puoi ascoltare DSOAL in questo video:

→ Scarica
Confrontando come suona EAX su diverse schede audio, ho scoperto con sorpresa che su Realtek integrato EAX suona meglio che su Asus o sulla mia Audigy Rx. Se leggi le schede tecniche, praticamente tutti i chip Realtek supportano DirectSound3D/EAX 1&2. Avviando AIDA64 da Windows XP è possibile vedere:

Si scopre che i Realtek, a differenza delle schede audio ASUS e Creative, supportano anche qualche I3DL2 (non tutte le schede tecniche Realtek lo menzionano). I3DL2 (Interactive 3D Audio Level 2) è uno standard industriale aperto per lavorare con il suono 3D interattivo; è un'estensione per DirectSound3D per lavorare con risonanza e occlusione. È, in pratica, un equivalente di EAX, ma suona meglio: la risonanza nei giochi come i passi quando il personaggio corre in una grotta o in un castello è più piacevole, e il suono spaziale è più realistico negli ambienti. Quindi, se un vecchio gioco funziona su Windows XP, gioco solo su XP; magari il motore audio riesce a utilizzare I3DL2. Anche se DSOAL è un progetto aperto e chiunque può migliorarlo, non sarà mai in grado di utilizzare I3DL2, poiché OpenAL non supporta I3DL2, ma solo EAX 1-5. Ma c'è una buona notizia: a partire da Windows 8 I3DL2 è incluso nella . Quindi il suono nei nuovi giochi su Windows 10 sarà migliore che su Windows 7.
E per finire, voglio ricordare che tutte queste tecnologie sonore 3D sono state sviluppate per le cuffie; su due casse quasi non sentirai il suono 3D. Per godere di un suono dettagliato le cuffie di livello SVEN AP860 non sono adatte; tra le cuffie economiche si dovrebbe iniziare con Axelvox HD 241 — ci sarà già una differenza con SVEN AP860, come il cielo e la terra. Ecco come orientarsi.
Fonte: habr.com
