RPM (ARC Driver)
|Rusty's POKEY Music
RPM (Rusty's POKEY Music) was the name of the sound driver program and programming language that the composers at Atari Games used for their arcade and console music. The sound driver was initially coded by Russell "Rusty" Dawe, hence why his name appears in the name of the sound driver. The music had to be written in a special Music Macro Language called Music-V Language (pronounced Music 5).
Brad Fuller went into vast detail in his last interview before his death about RPM and how the sound engine worked, and the following is what Brad stated from the interview. Thanks to the efforts of Earl Vickers, Atari had struck a deal with Yamaha in being the first game company to use the YM2151. Yamaha had sent Atari documentation on how to use their new sound chip, but because it was all in Japanese, Brad had to reverse-engineer the chip himself by "poking" the registers to see what each one did. When Brad's efforts were a success, he was able to implement the chip's use into RPM in 6502 assembly machine code. Paperboy was supposed to be the first game to use the chip, but due to developmental delays, its release was pushed back, and Marble Madness ended up being the first released game to use it.
In the interview, Brad noted the arduous process of creating music; the composers first composed their music on sheet music manuscript paper. When they were finished with their composition, they would go to a VT100 connected to a DEC. Here, they would enter in all of the music data, which, as stated above, required a custom MML. When the user was finished, the code would then be compiled, which took roughly around 5 to 10 minutes. Then, the user would take the compiled code to a Whitebox development system to download the code and so they could hear their composition. If any mistakes were made by the composer inputting the wrong notation or code, they would have to go back and redo the entire process again, making for a very tedious process. Later on, Brad was able to negotiate with the higher-ups of Atari to get the sound team a PC, which made the process more efficient.
According to Fuller, sound effects were made using a special tool provided by Yamaha, and the sound effects were called "instruments". Atari would reuse some of these sound effects in many of their games, namely the credit jingle that plays when a player inserts a coin.
When Atari started developing unlicensed Nintendo NES games under the name Tengen, they converted the whole music engine to make music for the NES. This was probably not too difficult as a process, as both utilized 6502 assembly. It is unknown who did the conversion, but it is likely it was Rusty Dawe himself, as he was credited as such in an unreleased NES version of Millipede. RPM originally used the AY-3-8910, but when Atari began using the YM2151 chip for music in their arcade games, Rusty, Dennis Harper, and Peter Lipson took the existing code and created RPM-2 which added support for the YM2151 chip so the sound quality would improve. Lisa Ching converted RPM to the Sega Genesis, but renamed it to LSD (Lisa's Sound Driver).
According to Brad Fuller, the audio system was designed to be "interactive", in that the music would alter itself in-game depending on the situation the player was in. However, this needed to be coordinated between the composers and programmers. Brad also stated that despite a MIDI conversion tool being made for the driver, it was never used, as the composers preferred the MML data entry as to take advantage of the sound chip, as opposed to MIDI's limited capabilities.
When Atari developed the CAGE audio system, Fuller converted RPM's language to the sound driver.
The Star Wars arcade game's source code was released, and contains the driver and audio files for RPM.