与图形处理能力一样,这款游戏机的音频部分也经历了重大革新。 我甚至可以说,它提供了同代产品中最先进的合成技术。
架构
有些公司与雅马哈合作,有些公司则自行设计解决方案。 任天堂与索尼(索尼是一家电子产品集团,也是_随身听(Walkman)_的发明者)合作,由索尼为其提供先进的合成器。 于是,索尼为他们提供了两个处理器:一个是可以对采样进行排序和混合的DSP,另一个是驱动DSP的CPU。
因此,该游戏机的音频子系统由以下部分组成:
- S-DSP:通过八个不同的通道播放ADPCM采样,然后将它们混合并通过音频输出发送。 DS 能够处理分辨率为16位、采样率为32 kHz的采样,它还提供以下功能
- 立体声平移: 分配通道,提供立体声效果。
- ADSR包络控制: 设置音量在不同时间的变化方式。
- 延时:模拟回声效果。 它还包括一个频率滤波器,用于在反馈过程中切除一些频率。 不要将其与混响混淆!
- 噪音发生器: 产生听起来像白噪音的伪随机波形。
- 音高调制: 允许某些通道扭曲其他通道。 类似于调频合成(其竞争对手使用)。
- SPC700 CPU: 也称为"S-SMP",它是一个独立的8位 CPU,可与DSP通信并接收主 CPU 的指令。
- 64 KB PSRAM:存储音频数据和程序。 主 CPU 负责将其填满。
- 如果激活了"延迟",则会为反馈数据分配一些空间(这实际上是非常危险的,因为如果使用不当,可能会覆盖现有数据!)。
该程序块与主 CPU 并行运行。 当游戏机启动时,SPC700 会启动一个64字节的内部ROM,将其设置为接收来自主CPU的命令。 之后,游戏机将处于空闲状态。
星际火狐(StarFox)(1993)要让 S-SMP 开始执行有用的工作,它需要加载一种称为声音驱动程序的程序。 后者指示芯片如何处理主CPU发送到PSRAM的原始音频数据,以及如何命令S-DSP。
正如您所看到的,与上一代产品相比,声音子系统是一个巨大的进步,但其编程难度也很大。 任天堂提供的文档中包含了许多令人费解的解释,而且完全跳过了重要的功能,因此程序员必须自己进行研究。
因此,市场上出现了大量不同的音效驱动程序,其中一些最终发现了令人印象深刻的功能。
音高控制
音高弯曲可以使用相同的采样产生不同的音符。 S-SMP 包含一个有用的弯音器,可以平滑地改变音高。 请看这个从地球冒险2(Mother 2/Earthbound)中提取的通道,两个例子都来自原声带,不过第一个例子的音高控制被禁用了。
从 NES 开始的演变
为了展示从NES到SNES声音的演变,这里有两段配乐,一段来自NES游戏,另一段来自其SNES续集。 两款游戏都使用了相同的乐谱:

Video - 地球冒险2(Mother 2/Earthbound)(1994)
高级用法
星之卡比3(Kirby's Dream Land 3) (1997)这是一首乐器更为丰富的乐曲,充分发挥了音高弯曲、回声和包络的优势。
这些技术的结合使得音乐总共只需要五个通道,而另外三个通道则留给了音效。
立体声混淆
DSP的音量控制是以有符号的8位数值为单位组织的,这意味着音量可以设置为负值。 但等等,如果"0"表示静音,那么"-1"这样的数字会有什么作用呢? 嗯,它会对信号进行反相。
这特别适用于营造特殊的环绕效果,通过设置立体声通道输出失相立体声(一个通道输出正常信号,另一个通道输出相同信号但反相)来实现。
不幸的是,滥用这一功能会导致非常不愉快的结果(例如,感觉音乐是从你的脑海中传出的),因此你会发现大多数SNES模拟器都完全跳过了这一设置。
此外,失相立体声在单声道设备上会被抵消,因此这些游戏必须包含一个立体声/单声道选择器,以避免自己的配乐失真。








