Super Sound Machine
|Super Sound Machine|
Super Sound Machine is the official name of the sound driver used at Tecmo for the NES games. It was created by their main composer, Keiji Yamagishi and written in 6502 assembly. Yamagishi had composed music for some of Tecmo's previous NES titles, and composed his first NES game Tsuppari Oozumou using Yoshiaki Inose's NES driver. After which, his boss asked him to program his own driver. In the later years, other composers joined Tecmo and used Yamagishi's driver.
The name of the driver comes from the Japanese version of Tecmo World Wrestling (NES), which credits Super Sound Machine Version 2 (スーパーサウンドマシーン２ごう Supa Saundo Mashin 2-Go), indicating the driver had at least two versions.
The first game to use the driver was Star Force, the USA/European versions. The driver later got better instrument design, and supported DPCM drums. The last game to use the driver was Fire 'N Ice, which Yamagishi did not work on.
The driver outputs to the RP2A03. Yamagishi later implemented digitized drums into the driver for use with the DPCM channel. In Europe, the driver's speed was optimized for the RP2A07, but not the frequencies.
|1987-11-??||Star Force: Tecmo (NES)|
|1988-04-28||Tecmo Cup Soccer Game (NES) (キャプテン翼)|
|1988-12-09||Ninja Gaiden (NES) (忍者龍剣伝)|
|1989-02-??||Tecmo Baseball (NES)|
|1989-02-??||Tecmo Bowl (NES)|| |
|1989-09-01||Tecmo World Wrestling (NES) (激闘プロレス！！闘魂伝説)|
|1989-12-15||Bad News Baseball (NES) (激闘！！スタジアム)|
|1990-04-06||Ninja Gaiden II: The Dark Sword of Chaos (NES) (忍者龍剣伝Ⅱ 暗黒の邪神剣)|
|1990-07-20||Captain Tsubasa II: Super Striker (FC) (キャプテン翼Ⅱ スーパーストライカー)|
|1990-12-07||Tecmo World Cup Soccer (NES) (テクモ ワールド カップ サッカー)|
|1991-06-21||Ninja Gaiden III: The Ancient Ship of Doom (NES) (忍者龍剣伝Ⅲ 〜黄泉の方船〜)|
|1991-07-19||Cat Ninden Teyandee (FC) (キャッ党忍伝てやんでえ)|
|1991-11-15||Radia Senki: Reimeihen (FC) (ラディア戦記 黎明編)|
|1991-12-13||Tecmo Super Bowl (NES) (テクモスーパーボウル)|
|1992-01-24||Fire 'n Ice (NES) (ソロモンの鍵２ クールミン島救出作戦)|
Only the first octave is programmed. The driver then uses an algorithm to divide each value by 2 to attain higher frequencies. The high and low bytes are together.
B-1 = 389 A#1 = 3BF A-1 = 3F8 G#1 = 435 G-1 = 475 F#1 = 4B9 F-1 = 501 E-1 = 54D D#1 = 59E D-1 = 5F3 C#1 = 64E C-1 = 6AE