Yoshiaki Tsuruoka (NES Driver)

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
Yoshiaki Tsuruoka
Released 1986-09-18
Programmers Yoshiaki Tsuruoka
Language 6502 Assembly
Formats ASM?

Yoshiaki Tsuruoka (NES Driver) is an unofficial name of the first sound driver used by Bits Laboratory's NES games. The music most likely had to be written in 6502 assembly macros, but it is possible Yoshiaki created a custom form of Music Macro Language.

Yoshiaki's driver would later be replaced by Hiroshi Nakamura's sound driver, most likely due to better sound quality and being easier to use.

Release History

The first game to use the driver was King's Knight. The last game was Magma Project Hacker. The driver was only used in 4 games; all four of which were released in Japan, and only two released for the NES. The Japanese-exclusive titles were for the Famicom Disk System peripheral.

The first two titles on NES used the 2A03's hardware decay instruments. The Famicom Disk System games used very few original instruments. The noise and DPCM channels are never used for music and sound. The only exception to this is Ghostbusters, which has a voice sample that plays once the player presses the Start button at the title screen, as well as the noise channel randomly playing during the Ghostbusters Theme.


The driver outputs to the 2A03 for the NES. The title music for KiKi KaiKai: Dotou Hen uses the Famicom Disk System's RP2C33 expansion audio, but it is never used anywhere else, not even for sound effects.

Because the games that used the driver were only released in NTSC regions, the driver was never optimized for the PAL format, and as a result, has the existential problem of playing a half-step (semitone) flat, and at a slightly slower tempo.


Released Title Sample
1986-09-18 King's Knight (NES) (キングスナイト)
1986-09-22 Ghostbusters (NES) (ゴーストバスターズ)
1987-08-28 KiKi KaiKai: Dotou Hen (FDS) (奇々怪々 怒涛編)
1989-08-10 Magma Project Hacker (FDS) (マグマプロジェクトハッカー)


Frequency Registers

The game uses a formula to divide each frequency by 2 to attain higher octaves. Also, the high and low bytes are stored separately from each other.

B-0 = 6F4
A#0 = 75D
A-0 = 7CE
G#0 = 844
G-0 = 8C2
F#0 = 947
F-0 = 9D5
E-0 = A6A
D#0 = B09
D-0 = BB1
C#0 = C63
C-0 = D0B/D1F (King's Knight/Ghostbusters)
B-0 = DE7

Pitch Macros

A#7 = FB
A-7 = FA
G#7 = F9
G-7 = F8
F#7 = F7
F-7 = F6
E-7 = F5
D#7 = F4
D-7 = F3
C#7 = F2
C-7 = F1
B-6 = F0
A#6 = EB
A-6 = EA
G#6 = E9
G-6 = E8
F#6 = E7
F-6 = E6
E-6 = E5
D#6 = E4
D-6 = E3
C#6 = E2
C-6 = E1
B-5 = E0
A#5 = DB
A-5 = DA
G#5 = D9
G-5 = D8
F#5 = D7
F-5 = D6
E-5 = D5
D#5 = D4
D-5 = D3
C#5 = D2
C-5 = D1
B-4 = D0
A#4 = CB
A-4 = CA
G#4 = C9
G-4 = C8
F#4 = C7
F-4 = C6
E-4 = C5
D#4 = C4
D-4 = C3
C#4 = C2
C-4 = C1
B-3 = C0
A#3 = BB
A-3 = BA
G#3 = B9
G-3 = B8
F#3 = B7
F-3 = B6
E-3 = B5
D#3 = B4
D-3 = B3
C#3 = B2
C-3 = B1
B-2 = B0
A#2 = AB
A-2 = AA
G#2 = A9
G-2 = A8
F#2 = A7
F-2 = A6
E-2 = A5
D#2 = A4
D-2 = A3
C#2 = A2
C-2 = A1
B-1 = A0
A#1 = 9B
A-1 = 9A
G#1 = 99
G-1 = 98
F#1 = 97
F-1 = 96
E-1 = 95
D#1 = 94
D-1 = 93
C#1 = 92
C-1 = 91
B-0 = 90
A#0 = 8B
A-0 = 8A