ZX Spectrum 发声之旅:从BEEPER到AY-3-8910

ZX Spectrum System Tour: Sound

在完成了射击游戏后,我继续探索 ZX Spectrum 的声音系统。这台经典机器提供了两种发声方案:所有机型都有的 1-bit beeper,以及 128K 机型标配的 General Instrument AY-3-8910 合成芯片。文章深入剖析了如何利用 BIOS 的 BEEPER 例程生成精确音调,并尝试手写汇编代码直接控制 I/O 端口。过程中我们遭遇了视频电路导致的 CPU 等待状态(类似 C64 的 badline 现象),这迫使我们将代码从 $4000-$7FFF 内存区迁移。最终,通过精细的循环展开和全局变量优化,我们成功在 Z80 架构上实现了稳定的 C 大调音阶播放,展现了复古硬件编程的独特魅力。

本质上,我在初篇文章中面临的那些权衡取舍在这里完全不存在,我们拥有了专用 PSG 该有的那种控制力,这确实非常棒。
  1. moomin

    这大大低估了基础 1 位发声方案能做到的事情。人们甚至在游戏过程中实现了音乐播放(我想《Manic Miner》是第一个),甚至做到了双声道音乐加打击乐(据我记忆是《Robin of the Wood》)。

  2. Razengan

    Spectrum 连同 C64、NES、SNES 等等,依然在我“通过为这些开创性的平台开发游戏来补上计算机/游戏历史”的待办清单上 ;")

同日更多故事

2026-08-03