chipvoice

MACHINE

Famicom Ricoh 2A03

Thin, bright square waves and a gritty noise channel - the sound of the earliest home consoles.

ITS VOICES

How it makes sound.

The Ricoh 2A03 has five voices: two pulse (square) wave channels, one triangle wave channel, one noise channel, and one channel that plays short sampled hits.

chipvoice uses the two pulse channels for melody and chords, the triangle for bass, and the noise and sample channels for drums.

HEAR EVERY PRESET

Its instruments.

Every preset a user can pick for this chip - played as one fixed probe, measured, never typed by hand.

Melody

GM programs 0-15

Pulse, 50% duty

Envelope
Spectrum
Attack
3 ms
Decay
98.8 ms
Release
1.9 ms
Peak / RMS
-14.1 / -37.1 dBFS
Spectral centroid
1028 Hz
Noise vs. tone
tonal

GM programs 16-127

Pulse, 25% duty

Envelope
Spectrum
Attack
4.5 ms
Decay
97.3 ms
Release
0.4 ms
Peak / RMS
-14.4 / -37.3 dBFS
Spectral centroid
1109 Hz
Noise vs. tone
tonal

GM programs 32-39

Tone

Envelope
Spectrum
Attack
3 ms
Decay
3 ms
Release
3.4 ms
Peak / RMS
-15.5 / -28.2 dBFS
Spectral centroid
1036 Hz
Noise vs. tone
tonal

GM programs 40-87

Pulse, 25% duty

Envelope
Spectrum
Attack
4.5 ms
Decay
1.5 ms
Release
0.4 ms
Peak / RMS
-15.7 / -28.4 dBFS
Spectral centroid
1109 Hz
Noise vs. tone
tonal

GM programs 56-63

Pulse, 12.5% duty

Envelope
Spectrum
Attack
3 ms
Decay
3 ms
Release
0.4 ms
Peak / RMS
-15.9 / -29.3 dBFS
Spectral centroid
1392 Hz
Noise vs. tone
tonal

Chords

GM programs 0-15

Pulse, 50% duty

Envelope
Spectrum
Attack
3 ms
Decay
98.8 ms
Release
1.9 ms
Peak / RMS
-14.1 / -37.1 dBFS
Spectral centroid
1028 Hz
Noise vs. tone
tonal

GM programs 16-127

Pulse, 25% duty

Envelope
Spectrum
Attack
4.5 ms
Decay
97.3 ms
Release
0.4 ms
Peak / RMS
-14.4 / -37.3 dBFS
Spectral centroid
1109 Hz
Noise vs. tone
tonal

GM programs 32-39

Tone

Envelope
Spectrum
Attack
3 ms
Decay
3 ms
Release
3.4 ms
Peak / RMS
-15.5 / -28.2 dBFS
Spectral centroid
1036 Hz
Noise vs. tone
tonal

GM programs 40-87

Pulse, 25% duty

Envelope
Spectrum
Attack
4.5 ms
Decay
1.5 ms
Release
0.4 ms
Peak / RMS
-15.7 / -28.4 dBFS
Spectral centroid
1109 Hz
Noise vs. tone
tonal

GM programs 56-63

Pulse, 12.5% duty

Envelope
Spectrum
Attack
3 ms
Decay
3 ms
Release
0.4 ms
Peak / RMS
-15.9 / -29.3 dBFS
Spectral centroid
1392 Hz
Noise vs. tone
tonal

Bass

GM programs 0-127

Tone

Envelope
Spectrum
Attack
6 ms
Decay
0 ms
Release
4.9 ms
Peak / RMS
-20.2 / -26.5 dBFS
Spectral centroid
363 Hz
Noise vs. tone
tonal

Drums

Kick

Tone

Envelope
Spectrum
Attack
7.5 ms
Decay
142.2 ms
Release
0.4 ms
Peak / RMS
-17.8 / -39.6 dBFS
Spectral centroid
3914 Hz
Noise vs. tone
mixed

Snare

Tone

Envelope
Spectrum
Attack
9 ms
Decay
157.1 ms
Release
0.4 ms
Peak / RMS
-18.4 / -40.9 dBFS
Spectral centroid
2504 Hz
Noise vs. tone
mixed

Hi-hat

Noise

Envelope
Spectrum
Attack
7.5 ms
Decay
109.3 ms
Release
0.4 ms
Peak / RMS
-23.4 / -52.8 dBFS
Spectral centroid
1460 Hz
Noise vs. tone
mixed

Open hi-hat

Noise

Envelope
Spectrum
Attack
18 ms
Decay
181.1 ms
Release
0.4 ms
Peak / RMS
-21.9 / -44.4 dBFS
Spectral centroid
1541 Hz
Noise vs. tone
mixed

The full instrument catalogue, every chip

HOW WE CHECK

Its evidence.

How closely this chip's emulation matches the real hardware, from the conformance harness that runs before each release.

Digital parity

Compared with Nes_Snd_Emu 0.1.7 (blargg): 3.9 % identical (3,577,340 of 92,173,307 cycles), 13 of 13 logs with any divergence.

First divergence: script-dmc, cycle 0, tri - ours 15, the oracle's 0.

Compared with Mesen 2 (b9fa69d, 2026-06-04): 65.8 % identical (60,662,173 of 92,173,307 cycles), 13 of 13 logs with any divergence.

First divergence: script-dmc, cycle 0, tri - ours 15, the oracle's 0.

Test ROMs

29 of 29 test ROMs pass.
  • apu_test/1-len_ctr: pass
  • apu_test/2-len_table: pass
  • apu_test/3-irq_flag: pass
  • apu_test/4-jitter: pass
  • apu_test/5-len_timing: pass
  • apu_test/6-irq_flag_timing: pass
  • apu_test/7-dmc_basics: pass
  • apu_test/8-dmc_rates: pass
  • apu_reset/4015_cleared: pass
  • apu_reset/4017_timing: pass
  • apu_reset/4017_written: pass
  • apu_reset/irq_flag_cleared: pass
  • apu_reset/len_ctrs_enabled: pass
  • apu_reset/works_immediately: pass
  • dmc_tests/buffer_retained: pass
  • dmc_tests/latency: pass
  • dmc_tests/status: pass
  • dmc_tests/status_irq: pass
  • apu_2005/01.len_ctr: pass
  • apu_2005/02.len_table: pass
  • apu_2005/03.irq_flag: pass
  • apu_2005/04.clock_jitter: pass
  • apu_2005/05.len_timing_mode0: pass
  • apu_2005/06.len_timing_mode1: pass
  • apu_2005/07.irq_flag_timing: pass
  • apu_2005/08.irq_timing: pass
  • apu_2005/09.reset_timing: pass
  • apu_2005/10.len_halt_timing: pass
  • apu_2005/11.len_reload_timing: pass

Analog stage

The mixer is measured against a real console's own recordings; the output filters are not measured yet.

  • square: -32.7 dB (console -32.2 dB)
  • triangle: -33.0 dB (console -30.9 dB)
  • noise: -13.8 dB (console -16.2 dB)
  • dmc: -31.0 dB (console -27.2 dB)

Driver coverage

The shipped driver reaches 4 of the chip's 5 voices.

Full sheet on GitHub ↗ · Every chip's accuracy