几乎所有人都知道,随着发布…… Windows Vista 系统早在 2007 年就出现了这个问题,之后的所有版本也都出现了这个问题。 Windows DirectSound3D 音频 API 已从系统中移除。 WindowsDirectSound 和 DirectSound3D 已被新的 XAudio2 和 X3DAudio API 取代。因此,EAX(环境音效)在老游戏中不再可用。本文将介绍如何为所有支持这些技术的老游戏恢复 DirectSound3D/EAX。 Windows 10年7月8日。当然,经验丰富的玩家都知道这些,但或许这篇文章对某些人会有所帮助。
老游戏并没有被历史遗忘;恰恰相反,它们在老玩家和年轻玩家群体中都备受欢迎。老游戏在现代高分辨率显示器上画面更佳,许多游戏的MOD也提升了纹理和着色器的效果,但音效最初却略显逊色。随着新一代游戏机的发布,这种情况正在得到改善。 Windows Vista,紧随其后 Windows 在XP系统中,微软开发人员认为DirectSound3D已经过时——它仅限于6声道音频,不支持音频压缩,并且依赖于处理器——因此被XAudio2/X3DAudio所取代。由于创新科技的EAX技术并非像Aureal的A3D那样是一个独立的API,而仅仅是DirectSound3D的扩展,因此创新科技的声卡被淘汰了。除非使用特殊的软件封装程序,否则在XP系统中播放音频时,EAX技术将无法正常工作。 Windows 10年7月8日 在较旧的游戏中,启用EAX的菜单项将被禁用。禁用EAX后,游戏音效将不够丰富、宽广和精准。
为了解决这个问题,Creative 开发了 ALchemy 包装程序,它将 DirectSound3D 和 EAX 调用重定向到 OpenAL 跨平台 API。 但这个程序正式适用于 Creative 声卡,甚至不完全适用于型号。 例如,带有硬件 DSP CA10300 的现代 Audigy Rx 卡正式无法工作。 对于其他声卡(例如内置Realtek)的用户,还需要使用Creative Sound Blaster X-Fi MB驱动软件,这需要花钱。 您还可以尝试原生的 3DSoundBack 程序,但 Realtek 尚未完成它 - 它停留在测试版本阶段,它不能很好地工作并且不适用于所有芯片。 但还有更好的方法,它更容易使用而且免费。
第一种方法
我将从华硕声卡开始。 华硕DGX/DSX/DX/D1/Phoebus声卡都是基于C-Media芯片的,甚至华硕AV66/AV100/AV200芯片也是同样重新贴标的C-Media芯片。 这些声卡的规格表明它们支持EAX 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 处理器进行 EAX 处理,而是通过驱动程序使用简化的算法进行软件处理。有些人认为软件音频处理就足够了,因为现代 CPU 比 10 年前声卡中的处理器强大得多,而 10 年前的声卡是使用硬件进行音频处理的。这种说法完全错误。CPU 针对 x86 命令进行了优化,而 DSP 处理音频的速度比 CPU 快得多,就像显卡进行光栅化处理的速度比 CPU 快一样。CPU 足以处理简单的算法,但即使是强大的 CPU,处理具有多个声源的高质量混响也会消耗过多资源,从而影响游戏的帧率。微软已经意识到了这一点,并已恢复了对 DSP 处理器音频处理的支持。 Windows 8,还有索尼,它在其 PS5 游戏机中添加了一个单独的芯片来处理 3D 音效。
第二个方法
此选项适合主板内置声卡的用户,占大多数。 有这样一个项目 - 这是使用 OpenAL(系统上必须安装 OpenAL)的 DirectSound3D 和 EAX 软件模拟,不需要硬件加速。 如果您的声音芯片具有一些用于声音处理的硬件功能,那么它们将被自动使用。 该程序运行得非常好,通过它,EAX 为我赢得了所有设置中有 EAX 复选标记的旧游戏。 如果将 DSOAL 文件复制到程序文件夹,AIDA64 窗口如下所示:

如果这种情况没有发生,而你得到的图片像第一张截图那样,那么它就是原生的。 Windows 声音.dll 它不允许 API 被拦截,就像我遇到的情况一样。那么这个方法会有帮助——你需要从某个地方启动。 Windows LiveCD 镜像并删除文件 声音.dll 必须借助目录中的 Unlocker 实用程序(在进行回滚时制作副本之后) 与:WindowsSysWOW64 并写下非常 dsoal-aldrv.dll и 声音.dll我也为自己做了同样的事情。 Windows所有游戏都能正常运行,而且更加方便——你不需要每次都把这些文件复制到游戏文件夹里,在极端情况下,你还可以恢复到原来的文件。 声音.dll 到位。 确实,如果您不使用其他 ASUS 或 Creative 声卡,则此方法是合适的,因为在这种情况下,DirectSound3D 将始终仅通过 DSOAL 为您工作,而不是通过本机驱动程序或 ALchemy。
您可以在此视频中收听 DSOAL:

→ 下载
对比不同声卡的 EAX 音质,我惊讶地发现集成的 Realtek EAX 音质竟然比华硕声卡或我的 Audigy Rx 还要好。如果你阅读数据手册,就会发现几乎所有 Realtek 芯片都支持 DirectSound3D/EAX 1&2。启动 AIDA64 Windows XP 可见:

原来,与华硕和创新声卡不同,瑞昱声卡也支持一种名为 I3DL2 的技术(并非所有瑞昱声卡的数据手册都会提及这一点)。I3DL2(Interactive 3D Audio Level 2,交互式 3D 音频级别 2)是一个开放的 3D 交互式音频行业标准;它是 DirectSound3D 的扩展,用于实现混响和遮挡效果。它与 EAX 基本相同,但音质更好——游戏中混响效果更悦耳,例如角色在洞穴或城堡中奔跑时的脚步声,以及房间内更逼真的环绕声。因此,如果一款老游戏在…… Windows 我只在 XP 系统上玩游戏。也许声音引擎能用上 I3DL2。DSOAL 虽然是开源项目,任何人都可以改进它,但它永远无法使用 I3DL2,因为 OpenAL 不支持 I3DL2,只支持 EAX 1-5。不过也有好消息:从……开始 Windows 8 I3DL2 包含在 所以,新游戏中的音效处于低谷。 Windows 10 这会比……更好 Windows 7.
最后,我想提醒您,所有这些 3D 声音技术都是为耳机开发的,您实际上不会在 2 个扬声器上听到 3D 声音。 享受耳机细致的声级 斯文AP860 不适合,您需要从便宜的耳机开始 阿克塞尔沃克斯 HD 241 - 会有差异 斯文AP860就像天地一样。 以下是如何确定自己的方向。
来源: habr.com
