SSG

The SSG (Software-controlled Sound Generator as Yamaha calls it) is part of the sound chip. It provides 3 square wave channels and 1 LFSR noise channel. It is very closely related to the Atari ST's [YM2149].

Given its limited capacities, the SSG is more often used for simple sound effects (coin sound, cursors in menus...) rather than music.

=Envelope generator=

The Envelope generator (EG) is an unique low-frequency signal generator which can be used to modulate the output of the tone channels.

Envelope shape register ($0D):


 * CONT: Should always be 1 ?
 * ATT: Counter direction (0:Down, 1:Up)
 * ALT: Alternate direction each period
 * HOLD: Hold value after first period (depends on ALT)

Envelope frequency = 8M / 2 / (256 * value)

Note that each period is 32 analog steps (5-bit internal counter).

=Synthesis=

If the Mode bit in the volume registers is 1, the EG's output is used instead of the fixed 4 bit value.

Tone frequency = 8M / 2 / (16 * (Coarse * 256 + Fine)) = 250000 / value

Example: Note A4 (440Hz) would be 250000 / 440 =~ 568 = $238.

Each channel is an AND (?) sum of both the channel's tone generator (if enabled) and the unique noise generator (if enabled).

=Registers=

Note that the YM2149 I/O registers $E and $F were removed in the YM2610.