furnace/papers/doc/7-systems/ym2610b.md
2022-03-01 02:50:26 +09:00

1.9 KiB

Taito Arcade/Yamaha YM2610B

YM2610B is basically YM2610 with 2 extra FM channels used at some 90s Taito Arcade hardwares, it's backward compatible with non-B chip.

effects

  • 10xy: set LFO parameters.
    • x toggles the LFO.
    • y sets its speed.
  • 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.
  • 18xx: toggle extended channel 2 mode.
    • 0 disables it and 1 enables it.
    • only in extended channel 2 system.
  • 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.
  • 20xx: set SSG channel mode. xx may be one of the following:
    • 00: square
    • 01: noise
    • 02: square and noise
    • 03: nothing (apparently)
    • 04: envelope and square
    • 05: envelope and noise
    • 06: envelope and square and noise
    • 07: nothing
  • 21xx: set noise frequency. xx is a value between 00 and 1F.
  • 22xy: set envelope mode.
    • x sets the envelope shape, which may be one of the following:
      • 0: \___ decay
      • 4: /___ attack once
      • 8: \\\\ saw
      • 9: \___ decay
      • A: \/\/ inverse obelisco
      • B: \¯¯¯ decay once
      • C: //// inverse saw
      • D: /¯¯¯ attack
      • E: /\/\ obelisco
      • F: /___ attack once
    • if y is 1 then the envelope will affect this channel.
  • 23xx: set envelope period low byte.
  • 24xx: set envelope period high byte.
  • 25xx: slide envelope period up.
  • 26xx: slide envelope period down.
  • 29xy: enable SSG auto-envelope mode.
    • in this mode the envelope period is set to the channel's notes, multiplied by a fraction.
    • x is the numerator.
    • y is the denominator.
    • if x or y are 0 this will disable auto-envelope mode.