Difference between revisions of "RP2A03"

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
(Links)
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Infobox Hardware
 
{{Infobox Hardware
| Title    = RP2A03
+
| Title    = RP2A03
| Image    = RP2A03 - On a Famicom.jpg
+
| Image    = RP2A03 - On a Famicom.jpg
| Developer = Ricoh
+
| Developer = [[Nintendo]]
| Released  = 1983
+
| Released  = 1983
| Type      = Chip
+
| Type      = Chip
 +
| Channels  = 1.) Pulse Wave<br />2.) Pulse Wave<br />3.) Triangle Wave<br />4.) Noise<br />5.) PCM
 
}}
 
}}
  
The '''''RP2A03''''' is the CPU of the Famicom and [[Nintendo Entertainment System]] developed in two versions; the NTSC version is designated as RP2A03 or 2A03, while PAL version is designated as RP2A07 or 2A07. The only difference is the refresh rate which was designed to match each region's television refresh rate; 60 Hz for NTSC, 50 Hz for PAL.
+
The '''''RP2A03''''' is the integrated 8-bit CPU used in the [[Famicom]], [[Nintendo Entertainment System]], [[Vs. System]], [[PlayChoice-10]], and various standalone arcade games. It was created for [[Nintendo]] by the circuit manufacturer [[Ricoh]] using a licensed version of the 6502 processor, originally developed by [[MOS Technology]]. In addition to the CPU, the chip contained rudimentary DMA, and, most important to this site, a built-in audio processing unit (APU).
  
The RP2A03 is an integrated 8-bit CPU developed for [[Nintendo]] by the circuit manufacturer [[Ricoh]]. The microprocessor integrates a custom [[MOS Technology]] 6502 processor clocked at 1.79 MHz, rudimentary DMA, and most important to this site is the chip's built in audio processing unit (APU). The APU contains a custom [[Programmable Sound Generator|PSG]] which developers used to make music.
+
The APU was designed by Nintendo engineer [[Yukio Kaneoka]], who also composed music and sound effects for numerous games. The APU contains a 4-channel custom [[Programmable Sound Generator|PSG]] which developers used to make music and a PCM channel for digital sound effects and speech. The chip was originally patented in Japan around 1983. In the USA, it is patent publication number US4783812 A, application number 06/893,341; it was filed on 1986-08-05, and published on 1988-11-08.
  
==APU==
+
Two different versions of the CPU were developed for release in NTSC and PAL regions. The NTSC version is designated as RP2A03 or 2A03, while PAL version is designated as RP2A07 or 2A07. The only difference is the clock speed which was designed to match each region's television refresh rate; 60 Hz for NTSC, 50 Hz for PAL.  
The APU was designed by Nintendo engineer [[Yukio Kaneoka]], who also composed music and sound effects for numerous games. The chip is US patent publication number US4783812 A, application number 06/893,341, it was filed on 1986-08-05, and published on 1988-11-08, though it was patented in Japan around 1983.
 
  
The APU's PSG allowed two square wave channels with four different pulses; 12.5%, 25%, 50%, 75%. The 25% and 75% wave sound so identical it's hard to tell which is which. The third channel was a triangle wave which was usually used for bass, but was also used for flute-like sounds or percussion. The fourth channel was a noise channel, used predominately for percussion, that had two different modes; white noise and periodic noise. The fifth channel was the DPCM (Delta Pulse Code Modulation) which could playback digital 7-bit samples. While the DPCM was mainly used for drum sounds, it was also used for speech, waveforms, and other sound effects.
+
==Channels==
 +
The APU's PSG consisted of two [[Sound Wave#Pulse_Wave|pulse wave]] channels each with a customizable duty cycle; 12.5%, 25%, 50%, and 75%. The 25% and 75% wave sound so identical it's hard to tell which is which. The third channel is a [[Sound Wave#Triangle_Wave|triangle wave]] which was usually used for bass, but was also used for flute-like sounds or percussion. The fourth channel is a noise channel predominately for percussion, that had two different modes; [[Sound Wave#White_Noise|white noise]] and periodic noise. It was generated by a pseudo-random sequence repeating up to 32,737 values. The fifth channel was the DPCM (Delta Pulse Code Modulation) which could playback digital 7-bit samples. While the DPCM was mainly used for drum sounds, it was also used for speech, bass, and other sound effects.
  
==RP2A07==
+
Part of the innovation of the APU was the triangle wave. Most audio chips of the time (like the [[AY-3-8910]] and [[SN76489]]) used three pulse waves, but Yukio Kaneoka had the foresight to modify one pulse wave channel into a triangle wave channel. The sacrifice not only cost a third pulse channel, but also eliminated volume control for the channel, but doing so gave the NES a much richer bass sound. This is be heard by comparing bass-heavy songs released on the NES and another platform without a triangle wave.
 +
 
 +
{| align="center" |
 +
|
 +
{{Song-Preview
 +
| Title = NES (2 Pulse, 1 Triangle Wave)
 +
| Song  = 04 - Ultima Exodus - NES - A Peaceful Town.ogg
 +
}}
 +
{{Song-Preview
 +
| Title = MSX (3 Pulse Waves)
 +
| Song  = 04 - Ultima - Fear of Exodus - MSX2 - A Peaceful Town.ogg
 +
}}
 +
|}
 +
 
 +
==Variants==
 +
===RP2A03===
 +
The RP2A03 is the original design of the chip and was used for all NTSC releases. Most games were designed to accommodate this chip which ran at 60 Hz. The RP2A03 could go from a value of $07FF (low A) to $0000.
 +
 
 +
===RP2A07===
 
PAL versions of [[Nintendo Entertainment System]] use the '''RP2A07'''. It is identical to the RP2A03, except that it uses a refresh rate of 50 Hz to match the PAL television standard. This slower clock rate results in the music playing a half-step lower and a little slower than the 2A03. Audio programmers were expected accommodate this difference in speed by altering their music slightly, but many just left the music slower.
 
PAL versions of [[Nintendo Entertainment System]] use the '''RP2A07'''. It is identical to the RP2A03, except that it uses a refresh rate of 50 Hz to match the PAL television standard. This slower clock rate results in the music playing a half-step lower and a little slower than the 2A03. Audio programmers were expected accommodate this difference in speed by altering their music slightly, but many just left the music slower.
  
==RP2C33==
+
===RP2C33===
 
The RP2C33 was the sound hardware used in the Famicom Disk System channel. It contained only one expansion sound channel that used wavetable synthesis.
 
The RP2C33 was the sound hardware used in the Famicom Disk System channel. It contained only one expansion sound channel that used wavetable synthesis.
  
==Revisions==
+
===Revisions===
 
The original 1983 Famicom used the original version of the chip, as well as the [[Vs. System]] and [[PlayChoice-10]] arcade systems. The North American toaster model NES used revision G. Early versions of the top-loader NES design also used the G revision, but later models used the H revision.
 
The original 1983 Famicom used the original version of the chip, as well as the [[Vs. System]] and [[PlayChoice-10]] arcade systems. The North American toaster model NES used revision G. Early versions of the top-loader NES design also used the G revision, but later models used the H revision.
  
 
==Picture Gallery==
 
==Picture Gallery==
 
<gallery>
 
<gallery>
File:RP2A03 - On a Famicom.jpg|An RP2A03 soldered onto a Famicom motherboard.
+
RP2A03 - On a Famicom.jpg|An RP2A03 soldered onto a Famicom motherboard.
File:RP2A03G - On an NES.jpg|An RP2A03, G revision, soldered onto an NES motherboard.
+
RP2A03G - On an NES.jpg|An RP2A03, G revision, soldered onto an NES motherboard.
File:RP2A03G - Chip Photo - Front.jpg|A high-resolution photo of the G revision circuit (front).
+
RP2A03G - Chip Photo - Front.jpg|A high-resolution photo of the G revision circuit (front).
File:RP2A03G - Chip Photo - Back.jpg|A high-resolution photo of the G revision circuit (back).
+
RP2A03G - Chip Photo - Back.jpg|A high-resolution photo of the G revision circuit (back).
File:RP2A03 - PSG - Patent Diagram - 1.png|RP2A03 US patent diagram, page 1.
+
RP2A03 - PSG - Patent Diagram - 1.png|RP2A03 US patent diagram, page 1.
File:RP2A03 - PSG - Patent Diagram - 2.png|RP2A03 US patent diagram, page 2.
+
RP2A03 - PSG - Patent Diagram - 2.png|RP2A03 US patent diagram, page 2.
File:RP2A03 - PSG - Patent Diagram - 3.png|RP2A03 US patent diagram, page 3.
+
RP2A03 - PSG - Patent Diagram - 3.png|RP2A03 US patent diagram, page 3.
File:RP2A03 - PSG - Patent Diagram - 4.png|RP2A03 US patent diagram, page 4.
+
RP2A03 - PSG - Patent Diagram - 4.png|RP2A03 US patent diagram, page 4.
File:RP2A03 - PSG - Patent Diagram - 5.png|RP2A03 US patent diagram, page 5.
+
RP2A03 - PSG - Patent Diagram - 5.png|RP2A03 US patent diagram, page 5.
File:RP2A03 - PSG - Patent Diagram - 6.png|RP2A03 US patent diagram, page 6.
+
RP2A03 - PSG - Patent Diagram - 6.png|RP2A03 US patent diagram, page 6.
File:RP2A03 - PSG - Patent Diagram - 7.png|RP2A03 US patent diagram, page 7.
+
RP2A03 - PSG - Patent Diagram - 7.png|RP2A03 US patent diagram, page 7.
File:RP2A03 - PSG - Patent Diagram - 8.png|RP2A03 US patent diagram, page 8.
+
RP2A03 - PSG - Patent Diagram - 8.png|RP2A03 US patent diagram, page 8.
File:RP2A03 - PSG - Patent Diagram - 9.png|RP2A03 US patent diagram, page 9.
+
RP2A03 - PSG - Patent Diagram - 9.png|RP2A03 US patent diagram, page 9.
File:RP2A03 - PSG - Patent Diagram - 10.png|RP2A03 US patent diagram, page 10.
+
RP2A03 - PSG - Patent Diagram - 10.png|RP2A03 US patent diagram, page 10.
 
</gallery>
 
</gallery>
  
 
==Emulation Status==
 
==Emulation Status==
Most NES emulators and [[NSF]] players emulate the sound capabilities of the RP2A03. [[FamiTracker]] also emulates the chip.
+
Most NES emulators and [[NSF]] players emulate the sound capabilities of the RP2A03, as do most arcade emulators. [[FamiTracker]] also emulates the chip.
  
 
==Formats==
 
==Formats==
There are two ways of ripping NES music. The first and hardest way is [[NSF]] ripping which involves extracting the audio code from the game's ROM. Depending on the sound driver and the way the game's programmed, it can be either an easy or extremely difficult task. The second and easier way of ripping NES music is by logging [[VGM]] files. So far, the only way to do this is to use MESS VGM Mod. The problem with VGM ripping is that sound effects that intrude a song during gameplay must be hacked out of the game. Also, unused songs that can be ripped from an [[NSF]] file cannot be ripped into VGM since the game won't play said unused songs, unless the game is hacked. Like NSF ripping, VGM logging can be either very easy or very difficult depending on the game's coding and sound engine. Another problem with VGM logging is that the files must be trimmed to loop properly since VGM doesn't look for looping points.
+
There are two common ways of ripping NES music. The first and hardest way is [[NSF]] ripping which involves extracting the audio code from the game's ROM. Depending on the sound driver and the way the game's programmed, it can be either an easy or extremely difficult task. The second and easier way of ripping NES music is by logging [[VGM]] files. So far, the only way to do this is to use MESS VGM Mod. The problem with VGM ripping is that sound effects that intrude a song during gameplay must be hacked out of the game. Also, unused songs that can be ripped from an [[NSF]] file cannot be easily ripped into VGM since the game won't play said unused songs, unless the game is hacked. Like NSF ripping, VGM logging can be either very easy or very difficult depending on the game's coding and sound engine. Another problem with VGM logging is that the files must be trimmed to loop properly since VGM doesn't look for looping points.
  
 
==Links==
 
==Links==
 
* [https://en.wikipedia.org/wiki/Ricoh_2A03 en.wikipedia.org/wiki/Ricoh_2A03] - Wikipedia.
 
* [https://en.wikipedia.org/wiki/Ricoh_2A03 en.wikipedia.org/wiki/Ricoh_2A03] - Wikipedia.
 
* [http://nesdev.com/2A03%20technical%20reference.txt nesdev.com/2A03%20technical%20reference.txt] - Programmers technical reference.
 
* [http://nesdev.com/2A03%20technical%20reference.txt nesdev.com/2A03%20technical%20reference.txt] - Programmers technical reference.
 +
* [https://www.youtube.com/watch?v=mJnz6dEWwIw youtube.com/watch?v=mJnz6dEWwIw] - Displaced Gamers describes the PCM channel.
 
* [http://www.google.com/patents/US4783812 google.com/patents/US4783812] - US patent information.
 
* [http://www.google.com/patents/US4783812 google.com/patents/US4783812] - US patent information.
 
* [http://famitracker.com/wiki/index.php?title=2A03 famitracker.com/wiki/index.php?title=2A03] - Nintendo sound chips.
 
* [http://famitracker.com/wiki/index.php?title=2A03 famitracker.com/wiki/index.php?title=2A03] - Nintendo sound chips.
 
* [http://gdri.smspower.org/wiki/index.php/Famicom/NES_Sound_Driver_List gdri.smspower.org/wiki/index.php/Famicom/NES_Sound_Driver_List] - Famicom/NES Sound Driver List
 
* [http://gdri.smspower.org/wiki/index.php/Famicom/NES_Sound_Driver_List gdri.smspower.org/wiki/index.php/Famicom/NES_Sound_Driver_List] - Famicom/NES Sound Driver List

Revision as of 10:09, 13 November 2020

RP2A03
RP2A03 - On a Famicom.jpg
Developer: Nintendo
Released: 1983
Type: Chip
Channels:

1.) Pulse Wave
2.) Pulse Wave
3.) Triangle Wave
4.) Noise
5.) PCM

The RP2A03 is the integrated 8-bit CPU used in the Famicom, Nintendo Entertainment System, Vs. System, PlayChoice-10, and various standalone arcade games. It was created for Nintendo by the circuit manufacturer Ricoh using a licensed version of the 6502 processor, originally developed by MOS Technology. In addition to the CPU, the chip contained rudimentary DMA, and, most important to this site, a built-in audio processing unit (APU).

The APU was designed by Nintendo engineer Yukio Kaneoka, who also composed music and sound effects for numerous games. The APU contains a 4-channel custom PSG which developers used to make music and a PCM channel for digital sound effects and speech. The chip was originally patented in Japan around 1983. In the USA, it is patent publication number US4783812 A, application number 06/893,341; it was filed on 1986-08-05, and published on 1988-11-08.

Two different versions of the CPU were developed for release in NTSC and PAL regions. The NTSC version is designated as RP2A03 or 2A03, while PAL version is designated as RP2A07 or 2A07. The only difference is the clock speed which was designed to match each region's television refresh rate; 60 Hz for NTSC, 50 Hz for PAL.

Channels

The APU's PSG consisted of two pulse wave channels each with a customizable duty cycle; 12.5%, 25%, 50%, and 75%. The 25% and 75% wave sound so identical it's hard to tell which is which. The third channel is a triangle wave which was usually used for bass, but was also used for flute-like sounds or percussion. The fourth channel is a noise channel predominately for percussion, that had two different modes; white noise and periodic noise. It was generated by a pseudo-random sequence repeating up to 32,737 values. The fifth channel was the DPCM (Delta Pulse Code Modulation) which could playback digital 7-bit samples. While the DPCM was mainly used for drum sounds, it was also used for speech, bass, and other sound effects.

Part of the innovation of the APU was the triangle wave. Most audio chips of the time (like the AY-3-8910 and SN76489) used three pulse waves, but Yukio Kaneoka had the foresight to modify one pulse wave channel into a triangle wave channel. The sacrifice not only cost a third pulse channel, but also eliminated volume control for the channel, but doing so gave the NES a much richer bass sound. This is be heard by comparing bass-heavy songs released on the NES and another platform without a triangle wave.

NES (2 Pulse, 1 Triangle Wave)
MSX (3 Pulse Waves)

Variants

RP2A03

The RP2A03 is the original design of the chip and was used for all NTSC releases. Most games were designed to accommodate this chip which ran at 60 Hz. The RP2A03 could go from a value of $07FF (low A) to $0000.

RP2A07

PAL versions of Nintendo Entertainment System use the RP2A07. It is identical to the RP2A03, except that it uses a refresh rate of 50 Hz to match the PAL television standard. This slower clock rate results in the music playing a half-step lower and a little slower than the 2A03. Audio programmers were expected accommodate this difference in speed by altering their music slightly, but many just left the music slower.

RP2C33

The RP2C33 was the sound hardware used in the Famicom Disk System channel. It contained only one expansion sound channel that used wavetable synthesis.

Revisions

The original 1983 Famicom used the original version of the chip, as well as the Vs. System and PlayChoice-10 arcade systems. The North American toaster model NES used revision G. Early versions of the top-loader NES design also used the G revision, but later models used the H revision.

Picture Gallery

Emulation Status

Most NES emulators and NSF players emulate the sound capabilities of the RP2A03, as do most arcade emulators. FamiTracker also emulates the chip.

Formats

There are two common ways of ripping NES music. The first and hardest way is NSF ripping which involves extracting the audio code from the game's ROM. Depending on the sound driver and the way the game's programmed, it can be either an easy or extremely difficult task. The second and easier way of ripping NES music is by logging VGM files. So far, the only way to do this is to use MESS VGM Mod. The problem with VGM ripping is that sound effects that intrude a song during gameplay must be hacked out of the game. Also, unused songs that can be ripped from an NSF file cannot be easily ripped into VGM since the game won't play said unused songs, unless the game is hacked. Like NSF ripping, VGM logging can be either very easy or very difficult depending on the game's coding and sound engine. Another problem with VGM logging is that the files must be trimmed to loop properly since VGM doesn't look for looping points.

Links