RPM (NES Driver)
| Rusty's POKEY Music | ||||||
| ||||||
RPM (Rusty's POKEY Music) is the official name of the sound driver used by Tengen for their NES games. The driver is named after their arcade sound driver of the same name. According to Brad Fuller, an unknown programmer converted their arcade sound driver to the NES. Brad also confirmed that RPM was the name of the NES sound driver. It is unknown who coded the sound driver. While an unreleased NES version of Millipede credits Dawe with the sound driver, Dawe told the VGMPF that he did not work on the NES version of the driver.
The music was written in Music Macro Language, or as Fuller described, Music-V Language. Though the driver is a conversion of Atari's arcade sound driver, the NES conversion is arguably superior, as the 2A03 of the NES supports more square waves than the original POKEY chip. However, it is not known if the sound driver is based off the first RPM, or RPM2, which added support for the YM2151's FM synthesis. If the NES RPM was converted from the latter, then the arcade version would have superior sound quality. The conversion process would have probably been easy, as both the original sound driver and NES used 6502 assembly language, but the converter had to account the differences between the arcade's POKEY and/or YM2151 chips, and the NES's 2A03.
Release History
Only 9 games in the NES library used RPM, and one of them went unreleased. The first game to use the driver was Gauntlet, which most likely means Hal Canon was the first to use the sound driver. However, a majority of Tengen's NES games were worked on by Brad Fuller. R.B.I. Baseball 3 was the last game to use the sound driver, which credits a handful of composers. It is unknown when exactly Xybots was slated to be released, but the year in the game is 1990, so it would have most likely released before R.B.I. Baseball 3.
Output
The driver outputs to the 2A03 of the NES. The DPCM channel is only used for occasional sound effects. For example, the grunt made by the thugees in Indiana Jones and the Temple of Doom, as well as the various vocal effects in R.B.I. Baseball 2 and 3.
Games
| Released | Title | Sample | Version |
|---|---|---|---|
| 1988-07-?? | Gauntlet (NES) | |
1 |
| 1988-12-?? | Indiana Jones and the Temple of Doom (NES) | |
1 |
| 1989-05-?? | Tetris: Tengen (NES) | |
2 |
| 1989-07-?? | Super Sprint (NES) (スーパースプリント) | |
1.5 |
| 1989-12-?? | Toobin' (NES) | |
2 |
| 1990-??-?? | R.B.I. Baseball 2 (NES) | ? | |
| 1990-??-?? | Skull & Crossbones (NES) | 2 | |
| 1991-??-?? | R.B.I. Baseball 3 (NES) | ? | |
| Unreleased | Xybots (NES) | |
1 |
| Unreleased | Police Academy (NES) | SFX only | 1 |
| Unreleased | Millipede: Namco (NES) | Game has no audio | Unknown |
Technical
Frequency Registers
v2 v1/1.5
C-7 = 1A/1B
B-6 = 1B/1C
A#6 = 1D/1E
A-6 = 1F/20
G#6 = 21/22
G-6 = 23/24
F#6 = 26
F-6 = 28
E-6 = 2A
D#6 = 2D
D-6 = 30
C#6 = 32
C-6 = 35
B-5 = 39
A#5 = 3C
A-5 = 40
G#5 = 43
G-5 = 47
F#5 = 4C
F-5 = 50
E-5 = 55
D#5 = 5A
D-5 = 5F
C#5 = 65
C-5 = 6B
B-4 = 71
A#4 = 78
A-4 = 7F
G#4 = 87
G-4 = 8F
F#4 = 97
F-4 = A0
E-4 = AA
D#4 = B4
D-4 = BE
C#4 = CA
C-4 = D6
B-3 = E2
A#3 = F0
A-3 = FE
G#3 = 10D
G-3 = 11D
F#3 = 12E
F-3 = 140
E-3 = 153
D#3 = 168
D-3 = 17D
C#3 = 194
C-3 = 1AC
B-2 = 1C5
A#2 = 1E0
A-2 = 1FC
G#2 = 21B
G-2 = 23B
F#2 = 25D
F-2 = 281
E-2 = 2A7
D#2 = 2CF
D-2 = 2FA
C#2 = 327
C-2 = 357
B-1 = 38A
A#1 = 3C0
A-1 = 3F9
G#1 = 435
G-1 = 475
F#1 = 4B9
F-1 = 501
E-1 = 54D
D#1 = 59E
D-1 = 5F4
C#1 = 64E
C-1 = 6AE
Gauntlet/Indiana/Xybots:
B-0 = 714
A#0 = 780
A-0 = 776
Skull & Crossbones/Super Sprint/Tetris/Toobin'
B-0 = 714
A#0 = 780
A-0 = 7F6