Ricoh 2A03

The Ricoh 2A03 or RP2A03 (NTSC version) / Ricoh 2A07 or RP2A07 (PAL version) is an 8-bit microprocessor manufactured by Ricoh for the Nintendo Entertainment System video game console. It was also used as a sound chip and secondary CPU by Nintendo's arcade games Punch-Out!! and Donkey Kong 3.

Technical details
The Ricoh 2A03 contains an unlicensed derivative of the MOS Technology 6502 core, modified to disable the 6502's binary-coded decimal mode (possibly to avoid a MOS Technology patent ). It also integrates a programmable sound generator (also known as APU, featuring twenty two memory-mapped I/O registers), rudimentary DMA, and game controller polling.

Sound hardware
The Ricoh 2A03's sound hardware has 5 channels, separated into two APUs (Audio Processing Units). The first APU contains two general purpose pulse channels with 4 duty cycles, and the second APU contains a triangle wave generator, an LFSR-based Noise generator, and a 1-bit Delta modulation-encoded PCM (DPCM) channel. While a majority of the NES library uses only 4 channels, later games use the 5th DPCM channel due to cartridge memory expansions becoming cheaper. For example, Super Mario Bros. 3 uses the DPCM channel for simple drum sounds, while Journey to Silius uses it for sampled basslines. An interesting quirk of the DPCM channel is that the bit order is reversed compared to what is normally expected for 1-bit PCM. Many developers were unaware of this detail, causing samples to be distorted during playback.

The output of each channel is mixed non-linearly in their respective APU before being combined. On Famicom and Dendy systems, expansion sound chips may add their own sound to the output via a pin on the game cartridge. Expansion audio capabilities were removed from international NES systems, but can be restored by modifying the expansion port located on the bottom of the system.

Regional variations
PAL versions of the NES (sold in Europe, Asia, and Australia) use the Ricoh 2A07 or RP2A07 processor, which is a 2A03 with modifications to better suit the 50 Hz vertical refresh rate used in the PAL television standard. However, most developers lacked the resources to properly adjust their games' music from NTSC to PAL, leading to many PAL games sounding slower, slightly lower-pitched, and in some cases, out-of-tune compared to their original NTSC releases.