furnace/papers/doc/7-systems/ym2151.md

2.3 KiB

Yamaha YM2151

the sound chip powering several arcade boards and the Sharp X1/X68000. Eight 4-op FM channels, with overpowered LFO and almost unused noise generator.

it also was present on several pinball machines and synthesizers of the era, and later surpassed by the YM2414 (OPZ) present in the world-famous TX81Z.

effects

  • 10xx: set noise frequency of channel 8 operator 4. 00 disables noise while 01 to 20 enables it.
  • 11xx: set feedback of channel.
  • 12xx: set operator 1 level.
  • 13xx: set operator 2 level.
  • 14xx: set operator 3 level.
  • 15xx: set operator 4 level.
  • 16xy: set multiplier of operator.
    • x is the operator (1-4).
    • y is the mutliplier.
  • 17xx: set LFO speed.
  • 18xx: set LFO waveform. xx may be one of the following:
    • 00: saw
    • 01: square
    • 02: triangle
    • 03: noise
  • 19xx: set attack of all operators.
  • 1Axx: set attack of operator 1.
  • 1Bxx: set attack of operator 2.
  • 1Cxx: set attack of operator 3.
  • 1Dxx: set attack of operator 4.
  • 30xx: enable envelope hard reset.
    • this works by inserting a quick release and tiny delay before a new note.
  • 50xy: set AM of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y determines whether AM is on.
  • 51xy set SL of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y is the value.
  • 52xy set RR of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y is the value.
  • 53xy set DT of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y is the value:
      • 0: +0
      • 1: +1
      • 2: +2
      • 3: +3
      • 4: -0
      • 5: -3
      • 6: -2
      • 7: -1
  • 54xy set RS of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y is the value.
  • 55xy set DT2 of operator.
    • x is the operator (1-4). a value of 0 means "all operators".
    • y is the value.
  • 56xx: set DR of all operators.
  • 57xx: set DR of operator 1.
  • 58xx: set DR of operator 2.
  • 59xx: set DR of operator 3.
  • 5Axx: set DR of operator 4.
  • 5Bxx: set D2R/SR of all operators.
  • 5Cxx: set D2R/SR of operator 1.
  • 5Dxx: set D2R/SR of operator 2.
  • 5Exx: set D2R/SR of operator 3.
  • 5Fxx: set D2R/SR of operator 4.