Difference between revisions of "Sound Routine (NES Driver)"

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
m (Release History)
m (Version 3)
 
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Infobox Driver
 
{{Infobox Driver
| Name        = Sound Routine 4 Gou
+
| Name        = Sound Routine
| Released    = 1988-08-06
+
| Released    = 1988-08-06
| Programmers  = [[Michiharu Hasuya]]
+
| Programmers  = [[Unknown]]
| Language    = Unknown
+
| Language    = 6502 Assembly
| Formats      = [[NSF]]
+
| Formats      = Unknown
 
}}
 
}}
  
'''''Sound Routine 4 Gou (サウンドルーチン4ごう)''''' (English: Sound Routine Version 4) is the sound driver used by several composers at [[Advance Communication Company]]. It was used to create music and sound effects for the NES for at least 13 games. It was also used in one Famicom Disk System game, but the FDS expansion channel was not implemented. The name comes from the credits of [[Circus Caper (NES)]]. The program's source code has not been released, but can probably be reverse engineered from the various games it was used in.
+
'''''Sound Routine (サウンドルーチン)''''' is the name of the sound driver used by several composers at [[Advance Communication Company]]. It was used to create music and sound effects for the NES for at least 13 games. It was also used in one [[Famicom Disk System]] game, but the FDS expansion channel was not implemented. The name of the driver was revealed in [[Moeru! Oniisan (FC)]], in which it is listed in the Special Thanks list. (サウンドルーチン 4 ごう)
  
Michiharu Hasuya is assumed to have programmed the sound driver because the similarities the driver has to his earlier sound driver that he used at Tecmo and Vic Tokai. According to Hasuya, he had to write his music in [[assembly]], so it is assumed that is how the driver is used.
+
The code for the sound driver appears to be based on [[Yoshiaki Inose]]'s [[Yoshiaki Inose (NES Driver)|sound driver]]. It is possible Osamu Kasai and Masaaki Harada, two of the main composers at ACC, also helped in programming the driver, as they have been credited for programming in some games. We contacted Michiharu Hasuya to see if he programmed it, but he said he didn't know.
 +
 
 +
Based on the code of the driver, it appears that users wrote music and sound effects in 6502 [[assembly]] machine code. This would make sense, as Hasuya explained he had to write the music in hexadecimal.
  
 
==Release History==
 
==Release History==
The first known game developed by Advance Communication to use the driver was Patlabor The Mobile Police for the Famicom Disk System. From the sounds of it, the driver was Hasuya's engine that he used at Tecmo and Vic Tokai. In the later games from around 1988+, the instruments became more unique, as they had tremolo and vibrato added to them. Besides that, the most notable difference is that the triangle channel usually plays in octaves, the lower octave being played one frame before the square and noise channels play a note.
+
The first game believed to be developed by Advance Communication to use the driver was Patlabor The Mobile Police for the Famicom Disk System (though it isn't confirmed they developed it). The instrument design is similar to the instrument design used in Hasuya's sound engine. In the later games from around 1988+, the instruments became more unique, as they had tremolo and vibrato added to them. Besides that, the most notable difference is that the triangle channel usually plays in octaves, the lower octave being played one frame before the square and noise channels play a note.
  
There are two versions of the sound driver; one tuned at approximately 449.2 Hz and the other tuned at approximately 440.4 Hz.
+
There are two known versions of the sound driver. While Cycle Race Road Man uses the second variant of the driver, it uses a different frequency table, with only the first octave being programmed. In addition, the second and third versions of this driver have two different versions; one tuned normally, and the other tuned 29 cents up, approximately a ¼ step (microtone) sharp (A=447.4Hz).
  
 
==Games==
 
==Games==
 
+
{| class="wikitable"
{{Table Header
+
! Released
| Color    = FFF0FF
+
! Title
| Caption01 = Released
+
! Sample
| Caption02 = Title
+
! Driver Version
| Caption03 = Sample
+
|-
}}
+
| 1987-08-28
 +
| [[Hikari no Senshi Photon: The Ultimate Game on Planet Earth (FC)]] (光の戦士フォトン 惑星ゾルディアスの戦い)
 +
|  
 +
| 1
 +
|-
 
| 1988-03-17
 
| 1988-03-17
| [[Tsuri Kichi Sanpei Blue Marlin Hen (FC)]] (釣りキチ三平 ブルーマーリン編)
+
| [[Tsuri Kichi Sanpei: Blue Marlin Hen (FC)]] (釣りキチ三平 ブルーマーリン編)
 
|  
 
|  
 +
| 1
 +
|-
 +
| 1988-04-08
 +
| [[Dr. Jekyll and Mr. Hyde (NES)]] (彷魔が刻)
 +
| {{Song-Box|02_-_Dr._Jekyll_and_Mr._Hyde_-_NES_-_Henry_Jekyll.ogg}}
 +
| 1
 
|-
 
|-
 
| 1988-08-26
 
| 1988-08-26
 
| [[Ys (FC)]] (イース)
 
| [[Ys (FC)]] (イース)
|  
+
| {{Song-Box|01 - Ys - FC - Feena.ogg}}
 +
| 2
 
|-
 
|-
 
| 1988-12-17
 
| 1988-12-17
 
| [[Cycle Race Road Man (FC)]] (サイクルレース ロードマン)
 
| [[Cycle Race Road Man (FC)]] (サイクルレース ロードマン)
 
|  
 
|  
 +
| 2
 
|-
 
|-
 
| 1989-01-24
 
| 1989-01-24
 
| [[Kidou Keisatsu Patlabor (FDS)]]
 
| [[Kidou Keisatsu Patlabor (FDS)]]
 
|  
 
|  
 +
| 2 (Modified)
 
|-
 
|-
 
| 1989-02-23
 
| 1989-02-23
| [[Tama & Friends: 3 Choume Daibouken (FDS)]] (3丁目大冒険)
+
| [[Tama & Friends: 3 Choume Daibouken (FDS)]]
|  
+
| {{Song-Box|01 - Tama & Friends - FDS - Title Screen.ogg}}
 +
| 2
 
|-
 
|-
 
| 1989-07-25
 
| 1989-07-25
 
| [[Oishinbo: Kyukyoku no Menu 3bon Syoubu (FC)]] (美味しんぼ 究極のメニュー三本勝負)
 
| [[Oishinbo: Kyukyoku no Menu 3bon Syoubu (FC)]] (美味しんぼ 究極のメニュー三本勝負)
 
|  
 
|  
 +
| 2
 
|-
 
|-
 
| 1989-08-08
 
| 1989-08-08
| [[Circus Caper (NES)]] (燃える!お兄さん)
+
| [[Circus Caper (NES)]]
|  
+
| {{Song-Box|101 - Circus Caper - NES - Title.ogg}}
 +
| 2
 
|-
 
|-
 
| 1989-12-08
 
| 1989-12-08
 
| [[Seirei Gari (FC)]] (聖霊狩り)
 
| [[Seirei Gari (FC)]] (聖霊狩り)
 
|  
 
|  
 +
| 2
 
|-
 
|-
 
| 1990-03-23
 
| 1990-03-23
 
| [[Sansara Naga (FC)]] (サンサーラ・ナーガ)
 
| [[Sansara Naga (FC)]] (サンサーラ・ナーガ)
|  
+
| {{Song-Box|01 - Sansara Naga - FC - Title.ogg}}
 +
| 2
 
|-
 
|-
 
| 1990-04-??
 
| 1990-04-??
 
| [[Dynowarz: The Destruction of Spondylus (NES)]]
 
| [[Dynowarz: The Destruction of Spondylus (NES)]]
|  
+
| {{Song-Box|01 - Dynowarz - NES - Title Screen.ogg}}
 +
| 3
 
|-
 
|-
 
| 1990-05-25
 
| 1990-05-25
 
| [[Ys II (FC)]] (イースⅡ)
 
| [[Ys II (FC)]] (イースⅡ)
|  
+
| {{Song-Box|02 - Ys II - FC - To Make The End of Battle.ogg}}
 +
| 2
 
|-
 
|-
 
| 1990-11-10
 
| 1990-11-10
 
| [[Last Armageddon (FC)]] (ラストハルマゲドン)
 
| [[Last Armageddon (FC)]] (ラストハルマゲドン)
 
|  
 
|  
 +
| 3
 
|-
 
|-
 
| 1991-02-22
 
| 1991-02-22
| [[Niji no Silk Road (FC)]] (虹のシルクロード)
+
| [[Niji no Silk Road: Zigzag Boukenki (FC)]] (虹のシルクロード 〜ジグザグ冒険記〜)
 
|  
 
|  
 +
| 2
 
|-
 
|-
 
| 1991-03-15
 
| 1991-03-15
| [[Fushigi Umi no Nadia (FC)]] (ふしぎ海のナディア)
+
| [[Fushigi no Umi no Nadia (FC)]] (ふしぎ海のナディア)
 
|  
 
|  
 +
| 3
 
|-
 
|-
 
| 1991-07-31
 
| 1991-07-31
 
| [[Otaku no Seiza: An Adventure in the Otaku Galaxy (FC)]] (おたくの星座)
 
| [[Otaku no Seiza: An Adventure in the Otaku Galaxy (FC)]] (おたくの星座)
 
|  
 
|  
 +
| 3
 
|-
 
|-
 
| 1991-09-27
 
| 1991-09-27
 
| [[Ys III: Wanderers from Ys (FC)]] (イースⅢ)
 
| [[Ys III: Wanderers from Ys (FC)]] (イースⅢ)
|  
+
| {{Song-Box|01 - Ys III - FC - Feena.ogg}}
 +
| 3
 
|-
 
|-
 
| 1991-11-15
 
| 1991-11-15
 
| [[Shounen Ashibe: Nepal Daibouken no Maki (FC)]] (少年アシベ ネパール大冒険の巻)
 
| [[Shounen Ashibe: Nepal Daibouken no Maki (FC)]] (少年アシベ ネパール大冒険の巻)
 
|  
 
|  
 +
| 3
 
|}
 
|}
  
 
==Technical==
 
==Technical==
 +
It is unknown what native formats were used to store the music, but, like all NES games, the machine code can be logged to [[NSF]]. The driver doesn't appear to have the ability to use the DPCM channel of the [[RP2A03]].
 +
 
===Frequency Registers===
 
===Frequency Registers===
 
(Note: While most of the engine's games use these frequency registers, there are a few games such as Ys III which have a different frequency set.)
 
(Note: While most of the engine's games use these frequency registers, there are a few games such as Ys III which have a different frequency set.)
  
====Old Version====
+
Interestingly, Version 2 uses the same exact frequency table as [[Takayuki Iwabuchi (TG16 Driver)|Hudson's TurboGrafx-16 sound driver]]. Because ACC developed games for Hudson Soft, it is likely Hudson provided a frequency table for them to use.
 +
 
 +
====Version 2====
 
  B-7 = 0E
 
  B-7 = 0E
 
  A#7 = 0F
 
  A#7 = 0F
Line 195: Line 227:
 
  C-0 = D10
 
  C-0 = D10
  
====New Version====
+
====Version 3====
 
  B-7 = 0E
 
  B-7 = 0E
 
  A#7 = 0F
 
  A#7 = 0F
Line 293: Line 325:
 
  C-0 = D10
 
  C-0 = D10
  
====Addresses====
+
Interestingly, the "0th" octave has the same frequency registers as the 2nd version, making them out of tune. This proved to be a problem with the soundtrack CD ''[[Niji no Silkroad Image Album: Windy Road]]'', in which the music was changed from A=450Hz to A=440Hz, as the developers did not account for the octave below, resulting in an undesirable sound with the bass in the title music.
Here are the ROM addresses for each game that uses the sound driver where the frequency registers can be located:
 
 
 
Circus Caper = $0104E3 - $0105DA
 
 
 
Fushigi no Umi no Nadia = $0728 - $081F
 
 
 
Last Armageddon = ???
 
 
 
Niji no Silk Road = $01C4E3 - $1C5DA
 
 
 
Oishinbo = $04E3 - $05DA
 
 
 
Otaku no Seiza = $07A8 - $089F
 
 
 
Sansara Naga = $04E3 - $05DA
 
 
 
Seirei Gari = $0204E3 - $0205DA
 
 
 
Ys = $0184CF - $0185C6
 
 
 
Ys II = $04E3 - $05DA
 
  
Ys III = $C7B8 - $C8AF
+
====FDS====
 +
B-0 = 714
 +
A#0 = 780
 +
A-0 = 7F2
 +
G#0 = 86B
 +
G-0 = 8EB
 +
F#0 = 973
 +
F-0 = A02
 +
E-0 = A9B
 +
D#0 = B3C
 +
D-0 = BE7
 +
C#0 = C9C
 +
C-0 = D5D
  
 +
Cycle Race Road Man: $104A8<br>
 +
Patlabor: $4D8B<br>
 +
Tama & Friends: $5DD3<br>
  
[[Category: Drivers]]
+
==Links==

Latest revision as of 16:32, 24 January 2024

Sound Routine
Released 1988-08-06
Programmers Unknown
Language 6502 Assembly
Formats Unknown

Sound Routine (サウンドルーチン) is the name of the sound driver used by several composers at Advance Communication Company. It was used to create music and sound effects for the NES for at least 13 games. It was also used in one Famicom Disk System game, but the FDS expansion channel was not implemented. The name of the driver was revealed in Moeru! Oniisan (FC), in which it is listed in the Special Thanks list. (サウンドルーチン 4 ごう)

The code for the sound driver appears to be based on Yoshiaki Inose's sound driver. It is possible Osamu Kasai and Masaaki Harada, two of the main composers at ACC, also helped in programming the driver, as they have been credited for programming in some games. We contacted Michiharu Hasuya to see if he programmed it, but he said he didn't know.

Based on the code of the driver, it appears that users wrote music and sound effects in 6502 assembly machine code. This would make sense, as Hasuya explained he had to write the music in hexadecimal.

Release History

The first game believed to be developed by Advance Communication to use the driver was Patlabor The Mobile Police for the Famicom Disk System (though it isn't confirmed they developed it). The instrument design is similar to the instrument design used in Hasuya's sound engine. In the later games from around 1988+, the instruments became more unique, as they had tremolo and vibrato added to them. Besides that, the most notable difference is that the triangle channel usually plays in octaves, the lower octave being played one frame before the square and noise channels play a note.

There are two known versions of the sound driver. While Cycle Race Road Man uses the second variant of the driver, it uses a different frequency table, with only the first octave being programmed. In addition, the second and third versions of this driver have two different versions; one tuned normally, and the other tuned 29 cents up, approximately a ¼ step (microtone) sharp (A=447.4Hz).

Games

Released Title Sample Driver Version
1987-08-28 Hikari no Senshi Photon: The Ultimate Game on Planet Earth (FC) (光の戦士フォトン 惑星ゾルディアスの戦い) 1
1988-03-17 Tsuri Kichi Sanpei: Blue Marlin Hen (FC) (釣りキチ三平 ブルーマーリン編) 1
1988-04-08 Dr. Jekyll and Mr. Hyde (NES) (彷魔が刻)
1
1988-08-26 Ys (FC) (イース)
2
1988-12-17 Cycle Race Road Man (FC) (サイクルレース ロードマン) 2
1989-01-24 Kidou Keisatsu Patlabor (FDS) 2 (Modified)
1989-02-23 Tama & Friends: 3 Choume Daibouken (FDS)
2
1989-07-25 Oishinbo: Kyukyoku no Menu 3bon Syoubu (FC) (美味しんぼ 究極のメニュー三本勝負) 2
1989-08-08 Circus Caper (NES)
2
1989-12-08 Seirei Gari (FC) (聖霊狩り) 2
1990-03-23 Sansara Naga (FC) (サンサーラ・ナーガ)
2
1990-04-?? Dynowarz: The Destruction of Spondylus (NES)
3
1990-05-25 Ys II (FC) (イースⅡ)
2
1990-11-10 Last Armageddon (FC) (ラストハルマゲドン) 3
1991-02-22 Niji no Silk Road: Zigzag Boukenki (FC) (虹のシルクロード 〜ジグザグ冒険記〜) 2
1991-03-15 Fushigi no Umi no Nadia (FC) (ふしぎ海のナディア) 3
1991-07-31 Otaku no Seiza: An Adventure in the Otaku Galaxy (FC) (おたくの星座) 3
1991-09-27 Ys III: Wanderers from Ys (FC) (イースⅢ)
3
1991-11-15 Shounen Ashibe: Nepal Daibouken no Maki (FC) (少年アシベ ネパール大冒険の巻) 3

Technical

It is unknown what native formats were used to store the music, but, like all NES games, the machine code can be logged to NSF. The driver doesn't appear to have the ability to use the DPCM channel of the RP2A03.

Frequency Registers

(Note: While most of the engine's games use these frequency registers, there are a few games such as Ys III which have a different frequency set.)

Interestingly, Version 2 uses the same exact frequency table as Hudson's TurboGrafx-16 sound driver. Because ACC developed games for Hudson Soft, it is likely Hudson provided a frequency table for them to use.

Version 2

B-7 = 0E
A#7 = 0F
A-7 = 10
G#7 = 11
G-7 = 12
F#7 = 13
F-7 = 14
E-7 = 15
D#7 = 16
D-7 = 18
C#7 = 19
C-7 = 1A
B-6 = 1C
A#6 = 1D
A-6 = 1F
G#6 = 21
G-6 = 23
F#6 = 25
F-6 = 27
E-6 = 29
D#6 = 2C
D-6 = 2F
C#6 = 31
C-6 = 34
B-5 = 37
A#5 = 3B
A-5 = 3E
G#5 = 42
G-5 = 46
F#5 = 4A
F-5 = 4E
E-5 = 53
D#5 = 58
D-5 = 5D
C#5 = 63
C-5 = 69
B-4 = 6F
A#4 = 75
A-4 = 7C
G#4 = 84
G-4 = 8C
F#4 = 94
F-4 = 9D
E-4 = A6
D#4 = B0
D-4 = BA
C#4 = C5
C-4 = D1
B-3 = DD
A#3 = EB
A-3 = F9
G#3 = 107
G-3 = 117
F#3 = 128
F-3 = 139
E-3 = 14C
D#3 = 160
D-3 = 174
C#3 = 18B
C-3 = 1A2
B-2 = 1BB
A#2 = 1D5
A-2 = 1F1
G#2 = 20F
G-2 = 22E
F#2 = 24F
F-2 = 272
E-2 = 298
D#2 = 2BF
D-2 = 2E9
C#2 = 315
C-2 = 344
B-1 = 376
A#1 = 3AB
A-1 = 3E2
G#1 = 41D
G-1 = 45C
F#1 = 49E
F-1 = 4E5
E-1 = 52F
D#1 = 57E
D-1 = 5D2
C#1 = 62A
C-1 = 688
B-0 = 6EC
A#0 = 755
A-0 = 7C5
G#0 = 83B
G-0 = 8B8
F#0 = 93D
F-0 = 9CA
E-0 = A5E
D#0 = AFC
D-0 = BA4
C#0 = C55
C-0 = D10

Version 3

B-7 = 0E
A#7 = 0F
A-7 = 10
G#7 = 11
G-7 = 12
F#7 = 13
F-7 = 14
E-7 = 15
D#7 = 16
D-7 = 18
C#7 = 19
C-7 = 1A
B-6 = 1C
A#6 = 1D
A-6 = 1F
G#6 = 21
G-6 = 23
F#6 = 25
F-6 = 27
E-6 = 2A
D#6 = 2C
D-6 = 2F
C#6 = 32
C-6 = 35
B-5 = 38
A#5 = 3B
A-5 = 3F
G#5 = 43
G-5 = 47
F#5 = 4B
F-5 = 4F
E-5 = 54
D#5 = 59
D-5 = 5F
C#5 = 64
C-5 = 6A
B-4 = 71
A#4 = 78
A-4 = 7F
G#4 = 86
G-4 = 8E
F#4 = 97
F-4 = A0
E-4 = A9
D#4 = B3
D-4 = BE
C#4 = CA
C-4 = D6
B-3 = E2
A#3 = F0
A-3 = FE
G#3 = 10D
G-3 = 11E
F#3 = 12F
F-3 = 141
E-3 = 154
D#3 = 168
D-3 = 17E
C#3 = 194
C-3 = 1AC
B-2 = 1C6
A#2 = 1E1
A-2 = 1FD
G#2 = 21C
G-2 = 23C
F#2 = 25E
F-2 = 282
E-2 = 2A9
D#2 = 2D1
D-2 = 2FC
C#2 = 329
C-2 = 359
B-1 = 38C
A#1 = 3C2
A-1 = 3FB
G#1 = 439
G-1 = 479
F#1 = 4BC
F-1 = 504
E-1 = 54E
D#1 = 59E
D-1 = 5F5
C#1 = 64E
C-1 = 6AF
B-0 = 6EC
A#0 = 755
A-0 = 7C5
G#0 = 83B
G-0 = 8B8
F#0 = 93D
F-0 = 9CA
E-0 = A5E
D#0 = AFC
D-0 = BA4
C#0 = C55
C-0 = D10

Interestingly, the "0th" octave has the same frequency registers as the 2nd version, making them out of tune. This proved to be a problem with the soundtrack CD Niji no Silkroad Image Album: Windy Road, in which the music was changed from A=450Hz to A=440Hz, as the developers did not account for the octave below, resulting in an undesirable sound with the bass in the title music.

FDS

B-0 = 714
A#0 = 780
A-0 = 7F2
G#0 = 86B
G-0 = 8EB
F#0 = 973
F-0 = A02
E-0 = A9B
D#0 = B3C
D-0 = BE7
C#0 = C9C
C-0 = D5D

Cycle Race Road Man: $104A8
Patlabor: $4D8B
Tama & Friends: $5DD3

Links