company_banner

Как включить 3D-звук в играх в Windows 7/8/10

  • Tutorial

Наверное практически всем известно, что с выходом 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:


Все звуковые буферы равны нулю, все API не активны. А вот сразу после включения кнопки GX мы видим


Т.е. очень удобно — не нужно запускать дополнительные программы, как 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 в папку программы:



Если же этого не произошло и у вас картинка, как на самом первом скриншоте, значит родной Windows dsound.dll не даёт перехватить API, как это было и в моём случае. Тогда поможет такой метод — нужно будет загрузиться с какого-нибудь Windows Live-CD образа и удалить файл dsound.dll не без помощи утилиты Unlocker (предварительно сделав копию на случай отката) из каталога С:\Windows\SysWOW64 и записать вместо него те самые dsoal-aldrv.dll и dsound.dll. Я так сделал и у меня, как сама Windows, так и все игры работали без сбоев и так даже удобней — не нужно каждый раз копировать эти файлы в папки с играми, в крайнем случае, можно будет вернуть обратно родной dsound.dll на место. Правда такой способ подойдет, если вы не будете пользоваться другими звуковыми картами ASUS или Creative, потому что в этом случае у вас всегда DirectSound3D будет работать только через DSOAL, а не через родной драйвер или ALchemy.

Послушать DSOAL можно в этом видео:



→ Скачать готовую библиотеку последней версии можно отсюда

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


Оказывается, Реалтеки в отличии от 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, как небо и земля. Вот как-то так ориентируйтесь.



RUVDS.com
VDS/VPS-хостинг. Скидка 10% по коду HABR

Комментарии 36

    +4
    В последнем обновление Windows 10 исчезли драйвера на старые звуковые Creative Audigy2. Microsoft против 3D звука. В Unreal Tournament 99 необходимо для каждой карты докачать специальные файлы и тогда стены начинают отражать.
      +1
      при обновлении винды часто удаляются неподдерживаемые драйвера тк они могут вызвать синий экран. у меня при каждом обновлении винда сносит скайп.
      • НЛО прилетело и опубликовало эту надпись здесь
        +1

        Тут скорее компания Микрософт против Креатив

          +2
          На самом деле — креатив против поддержки старых карт. Иронично, но они делают современные карточки ровно на том же чипе, что и Audigy. Но чтобы их покупали, официально старые карты не поддерживают. При этом драйвера от новых звуковых после небольшого допиливания работают спокойно (см. ниже мой комментарий)
            +4
            Ничего подобного! Современные карточки Creative Sound Blaster Recon3D/Z/Zx/ZxR/AE-5/7/9 делаются на чипе Sound Core3D, корторый не имеет аппаратных блоков ЕАХ! Ничего общего с Audigy.
            forums.overclockers.ru/viewtopic.php?f=33&t=452647
              +1
              Согласен, я отстал от жизни. Тем не менее, еще в Audigy RX использовался чип E-MU, драйверы от которого совместимы со старыми картами Audigy
          +1
          Audigy Support Pack (https://danielkawakami.blogspot.com/) в помощь. Не так давно вышел свежий. Если не поможет — то подменяется драйвер из свежих креативовских, можно нагуглить по «windows 10 audigy no sound»
          +3
          Windows 7: Realtek ALC887 + DSOAL
          image
            +5
            Не так много современных игр заморачиваются поддержкой EAX/DS3D. Зато многие поддерживают 5.1-звук.

            И вот очень простой способ этот 5.1 звук превратить в «объемный» для наушников.
            support.microsoft.com/en-us/windows/how-to-turn-on-spatial-sound-in-windows-10-ca2700a0-6519-448d-5434-56f499d59c96

            Проверял, работает.

            Для более продвинутых есть такая вещь, как sourceforge.net/projects/hesuvi, которая с помощью Equalizer APO (сам по себе крутая вещь, system-wide эквалайзер с поддержкой VST и прочего) имитирует различные системы превращения 5.1 звука в 2.0 объемный (CMSS, Dolby, DTS и т.д.)
              0
              Не всем играм нужен 5.1-звук. Для 3D-шутеров будет достаточно для позиционирования, для домашнего кинотеатра, киношки смотреть, а вот слешерам, диблойдам, всяким Dark Souls`ам нужен звук объемного звучания, т.е. реверберация различных помещений. Для разных типов игр нужны различные технологии 3D-звука, да и в 3D-шутерах для идеального позиционирования нужен wavetracing с ранними отражениями, а эту технологию не заменят ни 5.1-звук, ни 9.1-звук.
              5.1-звук — идеален для кинотеатров.
                0
                В последних билдах убрали галочку Turn on 7.1 virtual surround sound при включении Windows Sonic for Headphones. Но я вижу опцию Virtual Surround в соседней вкладке Enhancements. Это одно и то же?
                  0
                  В моей версии винды Settings -> Sound -> Sound Control panel, там два раза клик по нужному устройству, и там последняя вкладка Spatial Sound. Еще оно у меня доступно по правому клику по иконке динамика в панели задач
                0
                Вот бы ещё подобный проект, который на всех встроенных звуковых картах включал бы режим караоке без задержки. Потому что полный бардак, где-то в via/realtek он есть в драйверах в виде кнопки «прослушивать с этого микрофона», а где-то такой кнопки совсем нет, и никакие драйвера не помогают.
                Например на Realtek ALC892 ничего не удалось найти для прослушивания с микрофона без задержек. (без всяких ASIO2ALL).
                  0
                  В свое время Creative Live!/Audigy2 в реальном времени накладывала эффекты. Во времена ХР одно время нравились эффекты для микрофона Special FX Voice — Zeus, Male to Female.
                    0
                    На картах с нормальным ASIO, даже на sb live с драйверами kx project, во времена XP можно было навесить кучу vst эффектов на микрофон в реальном времени в любой аудио-программе, в том же Cakewalk.

                    Сейчас же хочется хотя бы просто режим караоке на встройке, без танцев с бубнами, но увы. Никогда не знаешь, на какой встроенной есть режим прослушивания микрофона, а на какой его нет.
                    Вот например продают простые внешние usb-звуковушки за $2 для микрофонов на али, каждый второй влоггер их советует, но умеют ли они звук микрофона выводить в реальном времени без задержки (на другую звуковую), или их используют только для записи?
                      0
                      В RightMark у звуковых за 2$ жуткие характеристики. Их можно улучшить впаяв конденсаторы большой емкости, но для какого-то качества там далеко. Зачем они влоггерам?
                        +1
                        Для фантомного питания микрофона. Например BM-800 за $10 + такая звуковая за $1 — довольно популярная недорогая связка.
                        www.youtube.com/watch?v=Yiv-kPam65Y здесь например даже с петличкой за $1 звук становится довольно хорошим, в разы лучше чем на встроенной. Качество вполне нормальное для озвучивания ютуба, не для записи вокала конечно.
                        +2

                        kx дрова могли обходится и без asio, там была куча готовых модулей, плюс можно было писать свой код для dsp.
                        Я перетащил тогда много всякого с emulator-а.
                        А в играх читерил невешивая ядрёный компрессор, слышал шаги за версту.

                        +1
                        До сих пор сижу на Audigy 2 из-за возможности без задержки слышать микрофон и прочие воткнутые в карту инструменты
                      0
                      А как правильно играть на многоканальной системе (5.0 / 7.0)? Делать по инструкции для наушников и давать A/V ресиверу разложить сигнал на имеющиеся в системе каналы?
                        0
                        из недорогих наушников нужно начинать с Axelvox HD 241

                        Axelvox, он же Superlux, он же ещё кто-то там…
                        Копия AKG, жёсткое изголовье из алюминиевых трубок, которые потрескались при попытке их разогнуть. Наушники ещё живы, но как-то не очень. За такую цену можно купить AKG, Audio-Technica, Numark, Behringer,…
                          0
                          Но там динамики 50мм хорошо звучат
                            0
                            Динамики там отличные не спорю, но вот качество самих ушей такое себе.
                          0
                          Если же этого не произошло и у вас картинка, как на самом первом скриншоте, значит родной Windows dsound.dll не даёт перехватить API, как это было и в моём случае.
                          Лечится созданием пустого файла с именем приложения и расширением .local, напр. game.exe.local.
                            0
                            интересно, а все эти звуковые движки учитвают стены там всякие, скорость или только позицию ушей и источника звука?
                              +1
                              EAX 3.0:
                              Аппаратная поддержка 64 индивидуальных каналов.
                              Контроль за ранними реверберациями и отражениями для каждого источника звука.
                              Динамический переход между окружающими моделями.
                              Улучшенная дистанционная модель для автоматического управления реверберацией и начальными отражениями в зависимости от положения источников звука относительно слушателя.
                              Расчёты Ray-Tracing (отражение лучей) для получения параметров отражения для каждого источника звука.
                              Отдельные отражения для дальних эхо.
                              Улучшенное дистанционное представление, призванное заменить статические реверберационные модели.
                              EAX 3.0 совмещает вторую версию с более мощными возможностями. Новый уровень реализма достигается за счёт поддержки местных отражений, изолированных отражений, «бесшовных» переходов между звуковыми сценами и другими особенностями.
                              0
                              В целом EAX крут но сейчас сомнителен. Максимально он используется в не таком большом числе игр. И для многих разница в звуке не существенна, ну он же есть. А вот его поддержка на современном железе ну такая себе. Особенно камень в лагерь креатива. Как результат с учетом косяков в драйверов и ряда решений карточки превращаются в тыкву и у меня большое желание заменить X-FI Titanium HD на что то более современное в виде AE-5 Plus там хотя бы можно переключаться между линейным выходом и наушниками.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  0

                                  А есть какая-нибудь демка или тулза чтобы достоверно услышать разницу с EAX и без? А то вот так натанцуешься с бубном, галочку включишь в игре, а какой с этого профит, не понятно..

                                    +5
                                    Самая простая тулза для теста — это RightMark3DSound. Нужно закинуть в папку программы файлы dsoal-aldrv.dll и dsound.dll и станут активны уровни ЕАХ в меню System (у меня на скриншоте аппаратный ЕАХ 2, если использовать DSOAL то будут доступны и EAX 3/4)
                                    image
                                    Но лучше всего в играх слушать, где есть в настройках галочка ЕАХ. Из стоящих старых игр могу посоветовать «Warcraft 3», «Requiem — Avenging Angel», «F.E.A.R.», «Diablo 2», «Dungeon Siege 2», «Space Siege», «Shadowgrounds». Есть целый список игр с ЕАХ, но в этом списке я не видел потрясающей стратегии «Star Wars Empire at War», которая предлагает выбрать любой ЕАХ 1-4
                                    image
                                    0
                                    Sound Blaster Z/Zx/AE не использует аппаратный DSP-процессор для обработки ЕАХ, а делает это программно через драйвер по упрощенным алгоритмам.

                                    EAX 5.0 на Sound Blaster Z лучше вообще не включать: в Battlefield 2 с профилем X-Fi появились щелчки и как будто срезали половину частотного диапазона.
                                      +2
                                      У меня Audigy Rx странно работает — в некоторых приложениях, которые используют ASIO или ЕАХ хрипит сильно, а вот на Асусах DGX/DS вообще не встречал проблем. Про звуковые карты компании Креатив можно забыть — ужасное качество, ужасная совместимость со старыми играми. Похоже там уже давно не работают те увлеченные люди, которые разрабатывали Sound Blaster`ы в 90х годах. Наверное там сейчас работают маркетологи, которые хотят извлечь максимум прибыли при минимальных затратах.
                                        0
                                        А на Xonar SE есть поддержка EAX или тоже выпилили?
                                          +1
                                          Xonar SE не пробовал, не знаю и на сайте нет мануала пользователя. Нужно брать такую звуковую Асус, у которой будет кнопка GX в панели драйвера
                                          image
                                            0
                                            Спасибо, эта штука называется «GX Game Audio Engine» и в новых картах отсутствует.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое