RetroArch音频优化五步指南:从驱动选型到延迟压榨 模拟器圈子里有个挺有意思的现象大家愿意花几百上千块折腾手柄、显示器、甚至专门配一台小主机却很少有人认真对待声音。RetroArch 默认的音频配置能出声但离“好听”还差着一段距离——延迟偏高、低频发闷、爆音偶发尤其是玩节奏类或者动作类老游戏时那种声音慢半拍的感觉非常影响手感。这篇内容就是把我这几年在不同设备上反复调音频参数的经验整理出来围绕 RetroArch 的音频体验优化拆成五个可以照着做的步骤从驱动选型到延迟压榨再到音质微调一步步把声音这块短板补上。不管你是刚装好 RetroArch 的新手还是已经玩了一阵但总觉得声音不对劲的老玩家下面这些内容都能直接拿去用。1. 先搞清楚 RetroArch 音频链路是怎么走的动手调参数之前得先明白声音在 RetroArch 里经过了哪些环节。很多人一上来就改采样率、调缓冲区结果越调越乱根本原因是没弄清楚每个参数作用在哪一层。RetroArch 的音频链路大致可以分成四段核心Core产生音频采样、前端Frontend接收并缓冲、音频驱动Audio Driver输出到系统、最后由系统混音送到声卡。每一段都有自己的参数改错层级的参数往往白费功夫。1.1 四层链路各自负责什么核心层是最源头。不同的模拟器核心输出的采样率并不统一有的按原始主机规格来比如某些老主机是 32000Hz 左右有的核心内部会重采样到 48000Hz 或 44100Hz。这一层 RetroArch 提供了“音频同步”和“核心提供的采样率”之类的选项但普通用户一般不需要在这里动刀除非你明确知道某个核心的音频输出有问题。前端层是 RetroArch 自己的音频缓冲管理。这里的关键参数是音频延迟Audio Latency和音频缓冲区大小。延迟设得太低会爆音甚至卡顿设得太高声音就明显滞后于画面。这一层是优化的主战场后面会重点讲。驱动层决定声音通过什么接口交给操作系统。Linux 下有 ALSA、PulseAudio、JACK 等选择Windows 下有 WASAPI、DirectSound、XAudio2macOS 上是 CoreAudio。不同驱动的延迟特性和稳定性差别很大选对了驱动等于成功了一半。系统层则是操作系统自己的混音器和声卡驱动。这一层 RetroArch 管不着但你可以通过关闭系统音效增强、独占模式输出等方式减少干扰。提示调音频参数时一次只改一个变量改完立刻进游戏听效果。同时改三四个参数出了问题你根本不知道是哪个引起的。1.2 为什么默认配置“能听但不好听”RetroArch 的默认配置走的是“最大兼容性”路线音频延迟通常设在 64ms 左右缓冲区也比较保守。这个设定在绝大多数设备上都不会爆音代价就是声音明显滞后。对于回合制 RPG 这类游戏无所谓但玩格斗、射击、音乐游戏时几十毫秒的延迟是能感觉出来的。另一个原因是默认往往启用了系统的共享混音模式。声音要经过系统混音器再送到声卡中间多了一道处理既增加延迟又可能引入重采样失真。老游戏的音频采样率本来就五花八门系统混音器再插一脚音质自然打折扣。还有一点容易被忽略RetroArch 默认的音频重采样器质量是“普通”档。这个档位在低配设备上跑得动但重采样算法比较粗糙高频细节容易糊掉。对于追求音质的场景换成高质量重采样器是性价比很高的一步。1.3 优化前先做一次基线测试我的习惯是动手之前先记录当前状态方便对比。具体做法是进一个你非常熟悉的游戏比如某个你玩了无数遍的动作游戏第一关注意听几个点背景音乐的低频是否浑浊、打击音效是否干脆、菜单切换音是否和画面同步。心里有个基准后面每改一步都能判断是变好还是变坏。更严谨一点的做法是用 RetroArch 自带的音频同步测试或者录屏对比。录一段游戏画面加声音用播放器逐帧看音画是否对齐能直观看出延迟大小。这个办法虽然土但比凭感觉靠谱得多。2. 音频驱动选型选对出口比调参数更重要驱动选型是整条链路里影响最大的一步却最容易被跳过。很多人装完 RetroArch 就用默认驱动从来没想过换。实际上不同驱动之间的延迟差距可以达到几十毫秒稳定性也天差地别。这一步选对了后面的调参才有意义。2.1 各平台驱动对比与推荐先给一张对照表把常见驱动的基本特性列清楚方便你对号入座。平台驱动选项延迟表现稳定性推荐场景WindowsWASAPI低高首选支持独占模式WindowsXAudio2低高游戏场景表现好备选WindowsDirectSound中高中老设备兼容用不推荐LinuxALSA最低中追求极限延迟需手动配置LinuxPulseAudio中高桌面环境省心之选LinuxJACK最低中有专业音频需求时用macOSCoreAudio低高默认首选无需折腾Windows 平台上我强烈建议用WASAPI并且开启独占模式。独占模式的意思是声音绕过系统混音器直接交给声卡处理延迟能压下来一大截同时避免系统重采样带来的音质损失。代价是游戏运行时其他程序听不到声音但玩模拟器时这反而是好事减少干扰。Linux 桌面用户如果不想折腾PulseAudio 够用稳定性好。但如果你的设备支持 ALSA 直出而且你愿意花时间配置ALSA 的延迟表现是最好的。JACK 适合同时有音频制作需求的用户普通玩家没必要上。macOS 用户基本不用选CoreAudio 就是最优解延迟低、稳定性好苹果在这块的系统级优化确实到位。2.2 切换驱动与独占模式的具体操作在 RetroArch 里切换驱动很简单进设置菜单找到“驱动”分类里面有一项“音频驱动”点进去就能看到当前系统支持的所有选项。选中你想要的退出设置重启 RetroArch 让配置生效。Windows 下开启 WASAPI 独占模式需要多一步。切到 WASAPI 驱动后回到音频设置找到“独占模式”开关打开。有些版本的菜单里叫“WASAPI 独占模式”位置可能在“音频”分类下的高级选项里。打开后进游戏测试如果其他程序的声音被静音了说明独占生效了。注意独占模式开启后如果游戏过程中切出去看网页可能会遇到声音设备被占用导致切回来没声音的情况。解决办法是切回来时暂停一下再继续或者干脆别切。2.3 驱动选错会踩的坑我见过最常见的问题是 Windows 用户用了 DirectSound然后抱怨延迟大。DirectSound 是上世纪的接口经过多层封装延迟天然就高除非你的声卡驱动只支持它否则没有任何理由选它。另一个坑是 Linux 下同时装了 PulseAudio 和 ALSARetroArch 选了 ALSA 但系统里 PulseAudio 还占着声卡结果就是没声音或者声音断续。这种情况要么在 RetroArch 里切回 PulseAudio要么把 PulseAudio 服务停掉再用 ALSA。判断方法很简单切到 ALSA 后完全没声音八成就是设备被占了。还有一种情况是蓝牙耳机。蓝牙传输本身有编码延迟再怎么调 RetroArch 参数也压不下去。玩对延迟敏感的游戏时老老实实用有线耳机或者音箱这是物理层面的限制软件优化救不了。3. 延迟与缓冲区把声音滞后压到无感驱动选好之后接下来就是调延迟和缓冲区。这两个参数是一对矛盾体延迟越低声音越跟手但缓冲区不够就容易爆音缓冲区越大越稳但延迟上去了。优化的目标是在不爆音的前提下把延迟压到人耳无感的程度。一般来说音频延迟控制在 20ms 以内大部分人已经感觉不到音画不同步了。3.1 延迟参数的计算逻辑RetroArch 里的“音频延迟”单位是毫秒它决定前端缓冲多长时间的声音再送出去。这个值和采样率、缓冲区帧数之间有换算关系。举个具体例子假设采样率是 48000Hz音频延迟设 20ms那么缓冲区里存的采样点数量大约是 48000 × 0.02 960 个。如果延迟设 64ms就是 3072 个采样点。缓冲的采样点越多抗抖动能力越强但声音滞后越明显。实际调的时候不用自己算RetroArch 会根据你填的延迟值自动分配缓冲区。但理解这个换算有助于判断参数是否合理。比如你把延迟设到 5ms在 48000Hz 下只有 240 个采样点稍微有点系统调度抖动就会爆音除非你的设备性能很强且驱动延迟极低否则不建议这么激进。3.2 分档位实测与推荐值我在几台不同档次的设备上做过对比测试下面这组数据可以作为起点参考。设备档次音频延迟建议缓冲区表现说明高性能台式机16-24ms稳定可尝试更低注意听爆音主流笔记本24-32ms稳定平衡延迟与稳定性低功耗小主机32-48ms较稳别贪低稳定优先老旧设备48-64ms稳定延迟换稳定可接受调的方法是逐步下探先从 64ms 开始进游戏听有没有爆音和卡顿没有就降到 48ms再听然后是 32ms、24ms、16ms。每次降完至少玩两三分钟因为爆音有时候是偶发的短时间听不出来。一旦出现爆音或者声音断续就退回上一档那个值就是你这台设备的稳定下限。提示不同核心对音频延迟的敏感度不一样。同一个延迟值轻量核心跑得稳重量级核心可能就爆音。所以最终确定的值要拿你最常玩、最吃性能的核心来测。3.3 音频同步方式的取舍RetroArch 提供了几种音频同步方式常见的有“音频同步”和“动态音频同步”。前者是固定节奏输出后者会根据系统负载动态调整。动态同步在设备性能波动大时更稳但可能引入轻微的音高变化固定同步音高稳定但对系统抖动更敏感。我的建议是设备性能稳定、延迟压得比较低时用固定同步音质最干净设备性能一般或者后台有其他程序在跑时用动态同步牺牲一点音准换稳定。这个选项在音频设置里能找到切换后同样要进游戏实测。4. 重采样与音质微调让老游戏的声音更干净延迟压下去之后接下来处理音质。这一步的收益不像延迟那么立竿见影但对听感的影响是实打实的尤其是高频细节和低频干净程度。核心思路是减少不必要的重采样环节并提高必要重采样的质量。4.1 采样率匹配的原则理想情况下核心输出的采样率和音频设备支持的采样率一致这样中间不需要任何重采样音质损失最小。但现实是老主机核心的原始采样率五花八门声卡又通常只认 44100Hz 或 48000Hz重采样不可避免。RetroArch 里有个“音频采样率”设置默认可能是自动。自动模式下 RetroArch 会尽量匹配但有时候匹配得并不理想。我的做法是手动把它设成声卡原生支持的采样率通常是 48000Hz。这样核心输出先重采样到 48000Hz再直接送给声卡中间不再经过系统混音器的二次重采样前提是开了独占模式。为什么优先选 48000Hz 而不是 44100Hz因为现在绝大多数声卡和耳机在 48000Hz 下工作状态最好而且很多核心内部也是按 48000Hz 处理的选它能减少一层转换。当然如果你的设备明确标注只支持 44100Hz那就选 44100Hz别硬来。4.2 重采样质量档位的选择RetroArch 的重采样质量有几个档位从低到高大致是“最低”“较低”“普通”“较高”“最高”。档位越高重采样算法越精细高频混叠和失真越少但 CPU 占用也越高。实测下来“普通”档在高频密集的场景比如某些游戏的镲片声、电子音效能听出轻微的毛刺感换到“较高”档就干净很多而 CPU 占用的增加在现代设备上几乎可以忽略。所以我一般直接设“较高”除非你用的是性能非常吃紧的设备才考虑退回“普通”。“最高”档的收益递减明显除非你有专业监听设备否则听不出和“较高”的区别反而白白增加负载。这里的原则是够用就好别为了心理安慰把档位拉满。4.3 关闭系统音效增强这一步在 RetroArch 之外但影响不小。Windows 的声卡属性里通常有“音效增强”“响度均衡”“空间音效”之类的选项这些功能会对声音做额外处理玩模拟器时弊大于利。响度均衡会压缩动态范围让老游戏本来就不宽的音场更平空间音效会给立体声游戏加上虚假的环绕感听起来很怪。具体操作是进系统声音设置找到当前输出设备进属性把所有增强类选项关掉格式设为和 RetroArch 一致的采样率。Linux 下如果用的是 PulseAudio可以在配置里关掉相关的模块macOS 相对干净一般不需要额外处理。注意关掉系统增强后其他日常应用的声音可能听起来“素”了一点这是正常的。想要两全其美可以给 RetroArch 单独配置输出设备或者接受这个取舍。5. 实战排查那些调音频时绕不开的问题参数调得再细实际用起来还是会遇到各种意外。这一节把我踩过的坑和排查思路整理出来遇到问题可以对照着查。5.1 常见问题速查表现象可能原因排查与解决声音断续、卡顿延迟设太低或设备性能不足逐步提高音频延迟退回稳定档位偶发爆音缓冲区不足或系统调度抖动提高延迟关闭后台高负载程序完全没声音驱动选错或设备被占用换驱动测试检查独占模式冲突音画不同步明显延迟过高或视频同步干扰降低音频延迟检查视频同步设置高频发闷、细节糊重采样质量低或系统增强干扰提高重采样档位关闭系统音效增强声音变调动态同步或采样率不匹配改用固定同步手动统一采样率5.2 爆音问题的深度排查爆音是调音频时最烦人的问题因为它偶发不好复现。我的排查顺序是这样的先确认延迟是不是设得太低把延迟临时拉高到 64ms 看爆音是否消失如果消失就说明是缓冲不足逐步往下找稳定值如果拉高后还有爆音那就不是延迟的问题可能是驱动和设备的兼容性问题换一个驱动试试换了驱动还有就要怀疑系统层面了比如后台有程序在抢音频设备或者声卡驱动本身有 bug。还有一种容易被忽略的爆音来源是核心本身的音频实现。个别核心在某些场景下会产生超出正常范围的采样值导致削波爆音。这种情况调 RetroArch 参数没用只能换核心或者等核心更新。判断方法是同一个游戏换个核心跑爆音消失那就锁定是核心的问题。5.3 蓝牙与无线音频的现实妥协前面提过蓝牙延迟的问题这里展开说。蓝牙音频的编码延迟通常在 100ms 以上即使是最新的低延迟编码也很难压到 40ms 以内。这意味着玩动作游戏时你听到的声音比看到的画面慢一截手感会很别扭。如果非要用蓝牙能做的是选支持低延迟编码的耳机和发射端、在系统里关闭蓝牙音频的其他处理、把 RetroArch 的音频延迟设到最低因为蓝牙本身已经贡献了大头延迟前端再省一点是一点。但说实话这些都是补救玩对延迟敏感的游戏时有线连接是唯一靠谱的选择。这不是 RetroArch 的问题是无线音频技术的现状。5.4 多设备切换时的配置管理很多人会在台式机、笔记本、掌机之间切换着玩每台设备的音频稳定下限不一样配置不能照搬。RetroArch 支持多套配置文件我的做法是给每台设备单独存一份音频配置切换设备时加载对应的那份省得每次重新调。具体操作是在配置菜单里用“保存新配置”而不是覆盖默认配置命名上带设备标识比如按设备类型区分。加载时从配置菜单里选对应的文件。这样每台设备都能用上自己最优的参数不用互相迁就。6. 我的实操心得与几个容易忽略的细节调了这么多设备有几个心得是文档里不会写的但实际用起来很关键。第一别迷信极低延迟。网上有些教程鼓吹把延迟设到 5ms、8ms那是特定高端设备加特定驱动的结果照搬到普通设备上只会换来一堆爆音。延迟优化的目标是“无感”不是“最低”20ms 左右对绝大多数人已经足够没必要为了数字好看牺牲稳定性。第二每次只改一个参数。这条前面提过但值得再强调。音频参数之间相互影响同时改多个变量出了问题根本没法定位。我的习惯是改一个、测一个、记一个虽然慢但不会乱。第三用熟悉的游戏做测试基准。测试音频不要随便开个游戏听两耳朵就下结论要用你玩了几百遍、每个音效位置都烂熟于心的游戏。这样任何细微的变化你都能察觉判断起来准确得多。第四配置文件要备份。调出一套满意的参数不容易调好之后立刻备份配置文件。RetroArch 更新或者误操作导致配置丢失的情况我遇到过不止一次有备份就能快速恢复。第五接受设备的上限。每台设备的音频能力是有天花板的老设备再怎么调也达不到新设备的水平。与其死磕参数不如认清设备定位在它的能力范围内调到最好就行。玩模拟器图的是游戏本身的乐趣音频优化是锦上添花别本末倒置。这套流程走下来大部分设备的声音表现都能有明显改善延迟降下来、爆音消掉、高频细节也清楚了。剩下的就是根据自己设备和常玩游戏微调找到那个最适合你的平衡点。