3.6 KiB
3.6 KiB
Yamaha YM2203 (OPN)
a cost-reduced version of the YM2151 (OPM). it only has 3 FM channels instead of 8 and removes stereo, the LFO and DT2 (coarse detune).
however it does contain an AY/SSG part which provides 3 channels of square wave with noise and envelope.
this chip was used in the NEC PC-88/PC-98 series of computers, the Fujitsu FM-7AV and in some arcade boards.
several variants of this chip were released as well, with more features.
effects
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.xis the operator from 1 to 4.yis the multiplier.
18xx: toggle extended channel 3 mode.0disables it and1enables it.- only in extended channel 3 chip.
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.xxmay be one of the following:0: square1: noise2: square and noise3: nothing (apparently)4: envelope and square5: envelope and noise6: envelope and square and noise7: nothing
21xx: set noise frequency.xxis a value between 00 and 1F.22xy: set envelope mode.xsets the envelope shape, which may be one of the following:0:\___decay4:/___attack once8:\\\\saw9:\___decayA:\/\/inverse obeliscoB:\¯¯¯decay onceC:////inverse sawD:/¯¯¯attackE:/\/\obeliscoF:/___attack once
- if
yis 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.
xis the numerator.yis the denominator.- if
xoryare 0 this will disable auto-envelope mode.
30xx: enable envelope hard reset.- this works by inserting a quick release and tiny delay before a new note.
50xy: set AM of operator.xis the operator (1-4). a value of 0 means "all operators".ydetermines whether AM is on.
51xy: set SL of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
52xy: set RR of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
53xy: set DT of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value:0: +01: +12: +23: +34: -05: -36: -27: -1
54xy: set RS of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
55xy: set SSG-EG of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value (0-8).- values between 0 and 7 set SSG-EG.
- value 8 disables it.
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.