Article History

59% nentennex

2a03 (soundchip)


  1. Pulse Channels
  2. Triangle Channel
  3. Noise Channel
  4. DPCM Channel
  5. See Also
The Ricoh 2a03 is the microprocessor used in the Nintendo Entertainment System/Famicom game console. This chip contains both the CPU (based on the MOS Technology 6502
) and an integrated sound chip. The term "2a03" is often used to refer specifically to this sound chip, as the sound processing portion of the chip itself has no particular name; the term "6502" is used to refer to the CPU portion. The 2a03 uses the nsf format. This format supports expansion chips for extra channels of sound in addition to the channels included in the 2a03.

There is similar chip called the Ricoh 2a07; this chip was used in PAL-region Nintendo Entertainment Systems. It differs from the 2a03 chip in that it outputs 50Hz instead of 60Hz.

Without expansion chips, the 2a03 has five sound channels: two pulse waves, one triangle wave, one noise channel, and one DPCM channel capable of low-quality sample playback. Details on each channel and their capabilities are below.

Pulse Channels

The pulse channels are capable of generating square waves with variable duty cycles of 12.5%, 25%, 50%, and 75%. Volume can be controlled, but there are only 16 volume levels. Pitch bending is supported and is capable of frequencies from 28Hz to 54kHz.

These two channels are commonly used for lead instruments because of the ability to combine the two channels into one lead sound or to create chords. There are many diverse tricks that can be employed in songs due to there being two pulse channels; among them are echo effects and a neat "phasing" effect achieved by playing the same note on both channels with one channel having a slight pitch-bend effect. This trick can create sounds similar to those created with two-oscillator synthesizer (albeit limited to square waves).

Triangle Channel

The triangle channel is a fixed-volume channel capable of sound frequencies from 27Hz to 56kHz. Volume cannot be changed; it can only be turned on or off. Due to a bug, this limitation can be overcome by increasing or decreasing the DC levels of the DPCM channel. An unfortunate side effect of using this trick will be a decrease the overall volume of the noise channel as well, so be careful if you choose to employ this technique in your music.

Like the square wave, the triangle wave produces odd harmonics—however, the triangle's higher harmonics the roll off much faster than the pulse channels, creating a sound closer to even harmonics. This could explain the pleasing sound a triangle has when used as a lead instrument.

Noise Channel

The noise channel can produce two different types of noise: 32767-bit white noise and 93-bit periodic noise. The white noise sounds like a hissing noise at higher frequencies and crunching or rumbling noise at lower ones. Periodic noise is less random, and as a result outputs a more defined sound. The white noise mode is typically used for percussion, but the periodic noise is not seen in music as often due to its harsh sound.

Like the pulse channels, the noise channel has 16 levels of volume. It is incapable of pitch bending and can only output sound at 16 hard-coded frequencies. With the two modes, this makes the noise channel capable of outputting a total of 32 different sounds.

DPCM Channel

The DPCM channel is capable of sample playback. Samples can be played back in two different ways: through one-bit delta modulation, or through seven-bit PCM playback. The former requires less space than the latter, but the sample playback quality is significantly worse. FamiTracker and 0CC-FamiTracker only support DPCM, while DefleMask only supports seven-bit PCM.

DPCM playback uses one-bit delta modulation and has 16 pre-programmed sample rates ranging from 4.2kHz to 33.5kHz. All NES games that used samples in their music used DPCM. The quality of DPCM is poor, but when used for percussion it is not extremely noticeable. Since the playback quality is not ideal, it is rarely (if ever) used for anything other than complementary tones, sound effects, and percussion.

Seven-bit PCM playback is achieved by by writing individual 7-bit values at timed intervals. It uses more space than DPCM does, but the playback quality is significantly better.

See Also

NES Famicom (console)
nsf (format)
nsfplus (format)
nsf_classic (format)
famitracker (format)
0cc (format)
nsf file format specifications

Sound Chips
2a03 · adlib · AY YM · SID · spc · Z80 · zxbeep