GBA具有双声道采样播放器,可与传统的Game Boy音效系统结合使用。
功能
下面以索尼克进化2为例,对每个音频组件进行细分:
PCM
新的声音系统现在可以播放PCM采样,它提供两个称为直接声音(Direct Sound)的通道,使用FIFO队列(以16字节缓冲器的形式实现)接收采样。
采样是8位有符号的(编码值从-128到127)。 默认采样率为32 kHz,但这取决于每款游戏:因为采样率越高,文件大小越大,CPU周期越长,所以并不是每款游戏都会花费同样多的资源在音频芯片上。
因此,必须使用DMA以避免挤占CPU周期。 定时器也可与队列保持同步。
PSG(可编程声音生成器)
虽然Game Boy子系统不会共享其CPU,但它可以访问其PSG。 出于兼容性考虑,这与原始Game Boy上的设计相同。 我以前写过一篇文章,详细介绍了每个通道的具体情况。
大多数GBA游戏都将其用于伴奏或效果。 后期的音频引擎会针对PCM优化音乐设计,通常不再使用PSG。
混合后
最后,所有声音都会自动混合并通过扬声器/耳机插孔输出。
尽管GBA仅有两条PCM通道,您可能会发现游戏实际能同步播放多个采样。 它是如何实现的? 虽然纸面参数显示仅有两条通道,但主CPU可通过分配运算周期对单通道内的采样进行实时编排与混音处理 (由此可窥见ARM7TDMI的强大算力!)。 这并非临时补救方案——在"操作系统"章节中您将发现,BIOS固件已内置音频序列器(audio sequencer)来辅助开发者完成此类任务。
两全其美
有些游戏进一步采用了PCM-PSG双重性,并根据具体情况"交替"使用主导芯片。
在这款游戏(地球冒险3(Mother 3))中,玩家可以进入两个不同的房间,一个是相对正常的房间,另一个是怀旧的房间。 根据角色所处房间的不同,同样的乐谱听起来会偏现代或偏8bit。




