在详细介绍之前,我们先定义N64音频子系统的两个端点:
- 我们的起点是卡带ROM,它包含只有CPU才能理解的数据。
- 终点是 数模转换器 或 'DAC' ,它只理解 波形数据。
现在,我们如何连接两端? 主机通常包括为我们服务的专用音频芯片。 不幸的是,Nintendo 64没有这样的专用芯片,因此该任务分布在以下组件中:
- 主CPU: 将音频数据从游戏的ROM传输到内存. 然后初始化将被RSP使用的音频列表 。
- RSP: 通过使用更多的微码,它解释先前存储在内存中的音频列表,并对音频数据执行所需的操作,例如,可以包括:
- 解压缩 ADPCM 采样 并应用效果。
- 使用存储在内存中的音频库对对MIDI数据进行播放和混音。
正如预期的那样,得到的是波形数据。 然后将其发送至音频接口或"AI"模块,然后将其传输至数模转换器。 生成的波形包含两个通道(因为我们的系统是立体声的),每个通道具有16位分辨率。
曲目
是时候检查为N64制作的音轨了。 有太多(好的音轨)需要在这篇文章中提及,所以这里是一些引起我注意的:

Video - 塞尔达传说:魔吉拉的面具 (2000年)。
这个游戏的音乐与它令人畏惧的气氛密不可分。。

Video - Bomberman Hero (1998年):
这款游戏有漂亮而独特的室内配乐。
秘密和限制
由于这种设计,限制将取决于实现方式:
- 采样率可以达到44.1 kHz,但使用最大采样率会占用大量CPU周期。
- 音频声道数量没有严格限制,这完全取决于RSP能够混合多少(如果处理ADPCM,通常为16-24个声道,如果处理PCM,则为大约100个声道)。
- 内存是另一个问题,而竞争对手依赖更大的介质(例如 CD-ROM) 和专用音频内存,Nintendo 64卡带可以容纳的数据要少得多(更不用说音乐数据了),而且必须与其他组件共享内存。
因为这些原因,玩家可能会注意到N64版游戏含有质量较低的音乐或重复乐谱。 尽管一个常见的解决方法是实现一个音乐音序器,该音序器在运行时使用预先填充的一组声音(类似于MIDI音乐)"构造"采样。
