« GameCube架构 (index)

GameCube架构

Chapter 5: 音频


目录

  1. 压缩与自由
    1. 其他资料

任天堂终于提供了一些专用音频电路,以卸载CPU-GPU的繁重任务,并提供更丰富的音效。 他们的新解决方案是在Flipper中运行旺宏(Macronix)公司生产的独立数字信号处理器(Digital Signal Processor,"DSP")

DSP的工作包括对原始音频数据执行不同的操作(如音量变化、采样率转换、3D音效、滤波、回声、混响等),然后输出2通道PCM信号。 然而,DSP并不是单独工作的,它还需要其他组件的帮助来提供音频。

它的第一个伙伴是音频接口(Audio Interface,"AI"),这是一个16位立体声数模转换器,负责通过音频信号将最终样本发送到电视上。 AI每0.25毫秒只能处理32字节的音频数据,因此,如果考虑到每个声音样本多达2字节,而我们需要两个样本来创建立体声,那么AI将能够混合多达8个采样率高达32 kHz的立体样本!

最后,我们还有音频RAM(ARAM)区块,这是一个很大(16 MB)但速度很慢的备用存储器,可用于存储原始声音数据。 由于空间很大,GPU也可以用它来存储额外的素材(如纹理)。 CPU无法直接访问该内存,因此需要借助DMA来移动内容。

无论好坏,DSP都可以通过使用微码进行编程(哎呀),但不用担心,因为官方SDK已经捆绑了一个通用微码,除了游戏机的启动序列和一些任天堂游戏外,几乎所有游戏都使用了这个微码(真方便,因为任天堂没有记录DSP,所以只有他们知道如何编程)。

话虽如此,声音的产生过程如下:

  1. CPU命令DMA将原始采样移动到ARAM。
  2. CPU发送一系列指令,指示DSP如何操作这些采样。 换句话说,CPU上传微码程序(官方只向开发人员提供一个)。
  3. DSP从ARAM中获取采样,应用所需的操作并将它们混合到两个通道中。 最后,它将得到的数据存储在RAM中。
  4. AI从RAM中获取经过处理的采样,并通过音频信号输出。

压缩与自由

虽然我们已经进入采样时代,不再受限于特定的波形,但新的声音系统仍然是一个巨大的进步。 首先,强制音乐排序的传奇已经一去不复返了。 现在,系统可以将预先制作好的音乐流畅地传输到音频终端,就像多年前的土星PS1一样。

让我以两款游戏为例,一款是在任天堂64上发布的游戏,另一款是在GameCube上发布的续集。 两款游戏的配乐不同,但背景(与敌战斗)相同。 考虑到每个系统的设计(共享与专用),看看这两首曲子的音质有何不同。

Video
Video - N64的纸片马里奥(Paper Mario)(2000)
由RSP实时排序。

Video
Video - NGC的纸片马里奥:千年之门(Paper Mario: The Thousand-Year Door)(2004)
DSP音频流传输

如你所听,DSP最终为音乐作曲家提供了他们一直要求的灵活性和丰富性。

其他资料

为了进行更直接的横向对比,我准备了这个互动式小工具,显示作曲家们最终是如何为GameCube及其前身改编乐曲的。 在这里,任天堂64和GameCube都使用了相同的欢快配乐,通过对比,我再次展示了GameCube DSP的技术优势。

Nintendo 64: Click to listen
GameCube: Click to listen
"现代版本"中的互动播放器
音频采样
N64:星之卡比64:水晶碎片(Kirby 64: The Crystal Shards)(2000)
NGC:星之卡比:空中竞速(Kirby Air Ride)(2003)

现在,为了直观地了解每条音轨背后发生了什么,下面是两张各自的频谱图。 在开始之前,如果您对这类图表不熟悉,我建议您阅读我之前的NES文章,尤其是音频部分(我在那里介绍了这些图表)。

Image
星之卡比64:水晶碎片的PCM通道的频谱图

Image
星之卡比:空中竞速的PCM通道的频谱图

公平地说,混合音轨很难在频谱图中分解,但我相信我可以尝试从中推断出一些规律。

首先,在GameCube曲目中,几乎所有频谱都得到了均匀的利用,这可能是由于伴奏中使用了额外的乐器(增加了谐波,因此填补了频谱图上的更多区域)。

最后,GameCube频谱图上的振幅看起来分布更均匀。 换句话说,每种乐器的音量都有不同程度的平衡,并包含混响等效果。 我猜测后者是作曲家在制作这首乐曲时的初衷,而GameCube支持音频流这一事实使得这类控制成为可能。 因此,作曲家可以使用任何工具对音乐进行排序和混音,而不是严格依赖游戏机(及其局限性)在运行时进行排序和混音。

我不敢说任天堂64完全无法实现同样的效果。 但有一点可以肯定的是,在任天堂64的世界里,每一个音频功能都会耗费额外的周期和/或内存,而这会对游戏的其他方面产生影响。 因此,需要对资源进行合理分配。 另一方面,由于GameCube支持更大的采样,因此可以直接流式传输制作的全部乐谱。


Previous: 4. 图形

Next: 6. I/O


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

主页 · 文章 · 支持 · 关于作者 · 关于此网站