From Video Game Music Preservation Foundation Wiki
(Redirected from NYNTH (NES Driver))
Jump to: navigation, search
Programmers Gregg Barnett, Neil Brennan, Brian Post
Language 6502 Assembly
Formats .F, .T

NYNTH is the official name of the sound driver used at Beam Software for their NES games. The name of the driver is a portmanteau of the words "Nintendo" and "Synthesizer". The driver had three revisions throughout its use. To create music and sound effects, the user would write the music in Music Macro Language. The file was then either saved as a .F (Sound effects/FX) file for sound effects, or .T (Theme) for music. Those files were then exported to .FX and .THM files.

According to Beam Software composer Gavan Anderson, the driver was likely first programmed by Gregg Barnett, who also programmed games for Beam. At first, Beam did not account the PAL and NTSC differences for the NES, so when games were released in the USA, they originally sounded around the 450 Hz range, rather than 440 Hz. Neil Brennan then reprogrammed the sound engine on December 21, 1988. The instruments were reprogrammed with vibrato, and short pauses before note changes. Brennan had just finished working on the music and sound for a few Beam NES titles. However, he never used this version of the driver. Instead, Beam composers Gavan Anderson and Tania Smith did. Finally, Brian Post, another Beam programmer had programmed the final revision of the sound driver. The changes in this revision included vibrato changes to the instruments, and the pauses before note changes were removed. Brian Post was not a musician, so he didn't do any additional audio work for Beam. Marshall Parker, Tania Smith, and Gavan Anderson had all used this driver. However, Gavan only helped with sound effects and digitized voices.

Release History

The first game to use NYNTH was 720. The first game to use its second revision was Road Runner. And the first game to use its final revision was Back to the Future Part II & III. Aussie Rules Footy and International Cricket were released exclusively in Australia. All of the other games were released in North America, and some of them in Europe. The only game to use the driver that made it in Japan was Lucasfilm Games' Star Wars.

Like many other European-developed sound drivers, the driver was originally made for the PAL format 2A07, even though games released in North America used the 2A03. As a result, this resulted in the sound being shifted up a half-step and 36 cents (A=449.2Hz), approximately a 1 1/4 step sharp. They later corrected the 36 cent raise, but still were unable to fix the half-step raise in their later titles. This fix was made courtesy of Neil Brennan, though, oddly enough, he never used this version of the driver himself and it was instead used by Gavan Anderson and Tania Smith. The driver was later modified by Beam Software programmer Brian Post. This version would be used by both Tania Smith and Marshall Parker, though Gavan would sometimes contribute sound effects as well.

An interesting feature of the driver was that the original version had some note articulation; there were short "pauses" between notes. After Brian Post modified the driver, these were removed.


The driver outputs to the RP2A03 in North America/Japan and the RP2A07 in Europe. The triangle channel was used only as a bassline or for melodic harmonies, and was never used for drums/percussion. The DPCM channel was used, but only for digitized sound effects and speech. Many games used digitized speech such as The Three Stooges, Rocket Ranger, and International Cricket. Aussie Rules Footy is perhaps the best known for its digitized speech, in particular, the phrase "Out of bounds, on the full." This line was spoken by Gavan Anderson.

Music Development

NYNTH utilized Music Macro Language. The code would work as follows:

; Song Title p# (It is unknown what the p values are for.)
i# (Instrument)
a#4e (Note: A#  Octave: 4  E: Eighth Note)


Here is a list of what the definitions found in the driver mean:
c c# d d# e f f# g g# a a# b (Note pitches)

Note Lengths:
w = Whole note
h = Half note
q = Quarter note
s = Sixteenth note
t = Triplet (8th note)
$ = Triplet (16th note)
. = Dotted note (Example: g3e. = Note: G  Octave: 3  e.: Dotted Eighth Note)
! = ???
r = Rest
- = Connected note, for example, a#4q-a#4q would be a A#4 half note, since there are two quarter notes.)


Version 1

Released Title Sample
1988-12-?? Airwolf: Acclaim (NES)
1989-07-?? Defender of the Crown (NES)
1989-09-?? Back to the Future (NES)
1989-09-?? Bad Street Brawler (NES)
1989-10-?? The Three Stooges (NES)
1989-11-?? 720 (NES)

Version 2

Released Title Sample
1989-11-?? Road Runner (NES)
1990-01-?? RoadBlasters (NES)
1990-02-?? Dash Galaxy in the Alien Asylum (NES) *
1990-03-?? Fisher Price: I Can Remember (NES)
1990-03-?? Fisher Price: Perfect Fit (NES)
1990-06-?? Rocket Ranger (NES)
1990-07-?? Battle Chess (NES)
1990-07-?? Bigfoot (NES)

Version 3

Released Title Sample
1990-09-?? Back to the Future Part II & III (NES)
1990-10-?? Days of Thunder (NES)
1990-11-?? The Punisher (NES)
1991-01-?? The Hunt for Red October (NES)
1991-02-?? The Last Ninja (NES)
1991-05-?? Family Feud (NES)
1991-09-?? Smash T.V. (NES)
1991-10-?? Bo Jackson Baseball (NES)
1991-11-15 Star Wars: Lucasfilm Games (NES)
1991-??-?? Aussie Rules Footy (NES)
1992-01-?? Nightshade (NES)
1992-06-?? Power Punch II (NES)
1992-12-?? George Foreman's KO Boxing (NES)
1992-??-?? International Cricket (NES)
1993-03-?? Mickey's Safari in Letterland (NES)
1993-10-?? Last Action Hero (NES)
1994-03-?? Mickey's Adventures in Numberland (NES)
Unreleased Exploding Fist (NES)
Unreleased Mike Tyson's Intergalactic Power Punch (NES)


Frequency Registers

The first two versions of the sound driver go from a low C to a C note one octave higher. The driver then uses an algorithm to divide each frequency by two to get higher note frequencies.

Version 1 (Gregg Barnett)

C-2 = 342
B-1 = 374
A#1 = 3A9
A-1 = 3E0
G#1 = 41B
G-1 = 45A
F#1 = 49C
F-1 = 4E2
E-1 = 52D
D#1 = 57B
D-1 = 5CF
C#1 = 627
C-1 = 685

Version 2 (Neil Brennan)

C-2 = 354
B-1 = 386
A#1 = 3BC
A-1 = 3F6
G#1 = 430
G-1 = 472
F#1 = 4B4
F-1 = 4FE
E-1 = 54A
D#1 = 59A
D-1 = 5F0
C#1 = 64A
C-1 = 6A8

Version 3 (Brian Post)

This version of the driver lists all notes. Also, the high bytes are separated from the low-bytes.

B-8 = 07
A#8 = 07
A-8 = 07
G#8 = 08
G-8 = 08
F#8 = 09
F-8 = 09
E-8 = 0A
D#8 = 0B
D-8 = 0B
C#8 = 0C
C-8 = 0D
B-7 = 0E
A#7 = 0E
A-7 = 0F
G#7 = 10
G-7 = 11
F#7 = 12
F-7 = 13
E-7 = 14
D#7 = 15
D-7 = 16
C#7 = 18
C-7 = 19
B-6 = 1B
A#6 = 1C
A-6 = 1E
G#6 = 20
G-6 = 22
F#6 = 24
F-6 = 27
E-6 = 29
D#6 = 2B
D-6 = 2E
C#6 = 31
C-6 = 34
B-5 = 37
A#5 = 3A
A-5 = 3E
G#5 = 42
G-5 = 46
F#5 = 4A
F-5 = 4E
E-5 = 53
D#5 = 58
D-5 = 5E
C#5 = 63
C-5 = 69
B-4 = 6F
A#4 = 76
A-4 = 7D
G#4 = 85
G-4 = 8D
F#4 = 95
F-4 = 9E
E-4 = A8
D#4 = B2
D-4 = BD
C#4 = C8
C-4 = D4
B-3 = E1
A#3 = EE
A-3 = FC
G#3 = 10B
G-3 = 11B
F#3 = 12C
F-3 = 13E
E-3 = 151
D#3 = 166
D-3 = 17B
C#3 = 192
C-3 = 1AA
B-2 = 1C3
A#2 = 1DF
A-2 = 1FA
G#2 = 219
G-2 = 23A
F#2 = 25B
F-2 = 27F
E-2 = 2A6
D#2 = 2CE
D-2 = 2F9
C#2 = 327
C-2 = 356
B-1 = 38A
A#1 = 3C0
A-1 = 3F6
G#1 = 430
G-1 = 472
F#1 = 4B6
F-1 = 4FE
E-1 = 54A
D#1 = 59A
D-1 = 5F0
C#1 = 64A
C-1 = 6A8
B-0 = 70D
A#0 = 779
A-0 = 7EE