We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

H-Sound Engine

From SnesLab
Revision as of 19:20, 13 October 2020 by KungFuFurby (talk | contribs) (Create Sol's H-Sound engine page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

H-Sound is a sound engine created by Tsutomu Hagiwara of Sol for the SPC700 [1] [2]. The sound driver was used in five games.

Only one version, 0.5, was ever used. However, there are technically three different builds, each with very minor differences:

  • Yuujin no Furi Furi Girls, compared to Kamen Rider SD, has extra valid drumkit note slots and a single extra opcode that overwrites the timer value to use at the start, thus almost not even qualifying as a build variant.
  • The other three games, compared to Kamen Rider SD, are missing an optional inversion operation for the echo volume. This is not controlled by a VCMD within the song.
Game Name Build ID VCMD Table Location ($E0 and up) ROM Offset
Kamen Rider SD 1 0x0C3D 0x0C9B91
Yuujin no Furi Furi Girls 2 0x0C45 0x888000
Hisshou Pachi-Slot Fun 3 0x0C69 0x088000
Honkakuha Igo - Gosei 3 0x0C69 0x0C8000
Janyuuki Gokuu Randa 3 0x0C69 0x1D8000

Instrument Format

The instrument format is N-SPC/Kankichi-kun compatible minus noise support for SRCN values above 127.

The instrument format is defined as direct writes to DSP registers for the first four bytes, followed by two pitch-related bytes. They are defined in this order, from top to bottom...

  • SRCN
  • ADSR1
  • ADSR2
  • GAIN
  • Pitch Base Multiplier
  • Pitch Base Fractional Multiplier (in 256ths)

Header Format

Each song's header is a series of eight four byte entries, one per channel. Each entry contains the following bytes in order...

  • Two-byte little endian track pointer
  • Master track ID (Zero for music, non-zero for SFX)
  • Unused byte

Voice Command Format

TODO VCMD format