RPM (NES Driver)

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
Rusty's POKEY Music
Programmers Unknown
Language 6502 Assembly
Formats Unknown (ASM?)

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.

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.

While it is unknown who converted RPM to the NES, it is suspected to be either Rusty Dawe himself of Lisa Ching. Lisa is more likely because not only did Russell never receive credit in an NES game, but Lisa Ching not only programmed the unreleased Xybots, but also converted RPM to the Sega Genesis under the name LSD (Lisa's Sound Driver).

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

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