Game Boy Color Audio
The Game Boy Color's sound is the Game Boy's, unchanged: one sound unit with four channels, two pulse-wave squares, a programmable wave channel and a noise channel, mixed to two output sides under a shared master control. The colour hardware and the faster processor do not change the audio, so a Game Boy tune plays the same. See the Game Boy Audio page for the full channel detail.
Overview
Four channels play at once, each written through its own registers: two square channels, one of them with a frequency sweep, a wave channel that plays a 32-sample waveform held in RAM, and a noise channel for percussion and effects. Each channel has a length counter and a volume envelope, and every channel can be sent to the left, the right or both outputs.
| Property | Value |
|---|---|
| Channels | 4 |
| Square channels | 2 (channel 1 has a sweep) |
| Wave channel | 1, a 32-step 4-bit waveform |
| Noise channel | 1, a pseudo-random generator |
| Output | Two sides, per-channel panning |
The four channels
The channels match the Game Boy one for one. Channel 1 is a square wave with a duty cycle, a volume envelope and a pitch sweep; channel 2 is the same square without the sweep; channel 3 plays a short wave table loaded into wave RAM; channel 4 is noise with a selectable clock.
| Channel | Kind | Extra |
|---|---|---|
| 1 | Square | Duty, envelope, sweep. |
| 2 | Square | Duty, envelope. |
| 3 | Wave | 32-sample 4-bit table. |
| 4 | Noise | Envelope, clock divider. |
Master control
Three master registers sit over the channels: one sets the left and right output volume, one routes each channel to each side, and one powers the sound unit on and reports which channels are sounding. Turning the power off clears the channel registers, so a driver enables the unit before writing any voice.
Sequencer commands
A tune is stored as a stream of sequencer commands that set a channel's pitch, volume, duty or wave and trigger a note, stepped in time. The stored format is shared across the chiptune machines; see the Sequencer storage for the command layout.