Як увімкнути 3D-звук в іграх у Windows 7/8/10

Як увімкнути 3D-звук в іграх у Windows 7/8/10
Напевно практично всім відомо, що з виходом Windows Vista ще в 2007 році, а слідом за нею і в усіх наступних версіях Windows звуковий API DirectSound3D був видалений з Windows, замість DirectSound і DirectSound3D стали використовуватися нові API XAudio2 і X3DAudio. Внаслідок чого у старих іграх стали недоступні звукові спецефекти ЕАХ (звукові ефекти довкілля). У цій статті я розповім, як повернути цей DirectSound3D/EAX у всі старі ігри, які підтримують дані технології граючи на Windows 7/8/10. Звичайно, досвідчені геймери все це знають, але, можливо, комусь стаття буде корисною.

Старі ігри не пішли на звалище історії, навпаки, вони користуються величезним попитом, як у користувачів старшого покоління, так і у молодшого. Старі ігри краще виглядають на сучасних моніторах з високою роздільною здатністю, для багатьох ігор виходять моди текстури, що покращують, і шейдери, але ось зі звуком спочатку не пощастило. З виходом наступного покоління Windows Vista, слідом за Windows ХР, розробники Microsoft визнали, що DirectSound3D морально застарів — він мав обмеження в 6-канальний звук, не підтримував стиснення звуку, був процесорно залежним і тому прийшов на зміну XAudio2/X3DAudio. А оскільки технологія ЕАХ компанії Creative була не самостійним API, як був свого часу A3D від компанії Aureal, а лише розширенням DirectSound3D — звукові карти компанії Creative опинилися за бортом. Якщо не використовувати спеціальні програмні враппери, то граючи на Windows 7/8/10 у старих іграх пункти меню, що включають EAX, будуть не активні. А без EAX звук в іграх буде не таким соковитим, об'ємним, що позиціонується.

Для вирішення цієї проблеми компанія Creative розробила програму-враппер ALchemy, яка перенаправляє виклики DirectSound3D та EAX в кросплатформний API OpenAL. Але ця програма працює офіційно зі звуковими картами компанії Creative і не зовсім моделями. Наприклад, сучасна карта Audigy Rx, яка має апаратний DSP-процесор СА10300, офіційно не працює. Для власників інших звукових карт, наприклад, вбудованої Realtek, потрібно використовувати ще програмний-драйвер Creative Sound Blaster X-Fi MB, який коштує грошей. Можна ще спробувати рідну програму 3DSoundBack, але вона не була закінчена компанією Realtek - зупинилася на стадії версії beta, працює не якісно і не з усіма чіпами. Але є спосіб краще, він простіше у використанні та безкоштовний.

Перший спосіб

Почну зі звукових карток компанії ASUS. Звукові карти компанії ASUS DGX/DSX/DX/D1/Phoebus базуються на чіпах C-Media і навіть чіпи ASUS AV66/AV100/AV200 - це ті самі перемарковані чіпи C-Media. У характеристиках цих звукових карт написано, що підтримують ЕАХ 1/2/5. Всі ці чіпи одержали у спадок від свого попередника CMI8738 DSP-блок програмно-апаратний EAX 1/2, EAX 5 вже програмний.

Власникам карт серії Xonar дуже пощастило, всі бачили кнопку GX на панелі драйвера, але, можливо, не всі знають, що вона робить. Покажу на скріншотах із програми AIDA64, ось так виглядає закладка DirectX-звук при неактивній кнопці і у власників вбудованих звукових карт Realtek у Windows 7/8/10:

Як увімкнути 3D-звук в іграх у Windows 7/8/10
Усі звукові буфери дорівнюють нулю, всі API не активні. А ось одразу після включення кнопки GX ми бачимо

Як увімкнути 3D-звук в іграх у Windows 7/8/10
Тобто. дуже зручно – не потрібно запускати додаткові програми, як Creative ALchemy та копіювати у кожну папку з грою файл dsound.dll. Ось виникає велике питання, чому так не зробила компанія Creative у драйверах? Більше того, вона у всіх нових моделях Sound Blaster Z/Zx/AE не використовує апаратний DSP-процесор для обробки ЕАХ, а робить це програмно через драйвер за спрощеними алгоритмами. Деякі люди вважають, що програмної обробки звуку достатньо, тому що сучасні ЦП набагато потужніші за процесори звукових карт 10-річної давності, які апаратно обробляли звук. Це зовсім негаразд. ЦП оптимізовано обробляти х86-команди, а DSP набагато швидше обробляє звук центрального процесора, як і відеокарта швидше виробляє розтеризацію, ніж ЦП. Центрального процесора вистачить для не складних алгоритмів, а от якісна реверберація з безліччю джерел звуку забиратиме надто багато ресурсів навіть потужного ЦП, що позначиться на падінні ФПС в іграх. Це вже визнала компанія Microsoft і вже повернула підтримку обробки звуку DSP-процесорами в Windows 8, а також компанія Sony, яка додала до своєї приставки PS5 окремого чіпа для обробки 3D-звуку.

Другий спосіб

Цей варіант підійде для користувачів вбудованої звукової карти до материнської плати, яких більшість. Є такий проект DSOAL — це програмна емуляція DirectSound3D і ЕАХ за допомогою OpenAL(OpenAL має бути обов'язково встановлений у системі), що не потребує апаратного прискорення. Якщо ваш звуковий чіп має якісь апаратні функції для обробки звуку, то вони будуть використовуватися автоматично. Програма настільки добре працює, що через неї ЄАХ заробив у мене на всіх старих іграх, де є галочка ЄАХ у налаштуваннях. Ось так виглядає вікно AIDA64, якщо скопіювати файли DSOAL у папку програми:

Як увімкнути 3D-звук в іграх у Windows 7/8/10

Якщо ж цього не сталося і у вас картинка, як на першому скріншоті, значить рідний Windows dsound.dll не дає перехопити API, як це було в моєму випадку. Тоді допоможе такий метод - потрібно буде завантажитися з якогось Windows Live-CD образу та видалити файл dsound.dll не без допомоги утиліти Unlocker (попередньо зробивши копію на випадок відкату) з каталогу З:WindowsSysWOW64 і записати замість нього ті самі dsoal-aldrv.dll и dsound.dll. Я так зробив і в мене, як сама Windows, так і всі ігри працювали без збоїв і так навіть зручніше - не потрібно щоразу копіювати ці файли в папки з іграми, у крайньому випадку можна буде повернути назад рідний dsound.dll на місце. Правда такий спосіб підійде, якщо ви не користуватиметеся іншими звуковими картами ASUS або Creative, тому що в цьому випадку у вас завжди DirectSound3D буде працювати тільки через DSOAL, а не через рідний драйвер або ALchemy.

Послухати DSOAL можна у цьому відео:

→ Завантажити готову бібліотеку останньої версії можна звідси

Порівнюючи як звучить ЕАХ на різних звукових картах, я з подивом виявив, що на вбудованому Realtek ЄАХ звучить краще, ніж на Асусах або на моїй Audigy Rx. Якщо почитати датішити, то практично всі чіпи Realtek підтримують DirectSound3D/ЕАХ 1&2. Запустивши AIDA64 з-під Windows XP можна побачити:

Як увімкнути 3D-звук в іграх у Windows 7/8/10
Виявляється, Реалтеки, на відміну від ASUS і Creative звукових карт, підтримують ще якийсь I3DL2 (не в кожному Реалтеківському датасіті про це написано). I3DL2 (Interactive 3D Audio Level 2) – це відкритий промисловий стандарт для роботи з 3D інтерактивним звуком, це розширення для DirectSound3D для роботи з реверберацією та оклюзією. У принципі аналог ЕАХ, але звучить приємніше — приємніша реверберація в іграх кроків, коли персонаж біжить печерою або замком, реалістичніше звучання об'ємного звуку в приміщеннях. Тому якщо стара гра працює на Windows XP, то я граю тільки на ХР, раптом звуковий двигун зможе задіяти I3DL2. DSOAL хоч і відкритий проект та його будь-який може вдосконалити, але він ніколи не зможе задіяти I3DL2, т.к. OpenAL не працює з I3DL2, лише з ЕАХ 1-5. Але є і хороша новина - починаючи з Windows 8 I3DL2 включений бібліотеку XAudio 2.7. Тож звук у нових іграх під Windows 10 буде кращим, ніж під Windows 7.

Ну і насамкінець хочу нагадати, що всі ці технології 3D-звуку розроблялися для навушників, на 2х колонках ви практично 3D-звуку не почуєте. Щоб насолодитися детальним звуком навушники рівня SVEN AP860 не підійдуть, з недорогих навушників потрібно починати з Axelvox HD 241 — вже буде різниця з SVEN AP860як небо і земля. Ось якось так орієнтуйтеся.

Як увімкнути 3D-звук в іграх у Windows 7/8/10

Як увімкнути 3D-звук в іграх у Windows 7/8/10

Джерело: habr.com

Додати коментар або відгук