mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-27 15:03:01 +00:00
81ab2acb2c
Trying for more consistency and clarity, especially for quick reference.
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.x
is the operator from 1 to 4.y
is the multiplier.
18xx
: toggle extended channel 3 mode.0
disables it and1
enables 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.xx
may 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.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
:\___
decay4
:/___
attack once8
:\\\\
saw9
:\___
decayA
:\/\/
inverse obeliscoB
:\¯¯¯
decay onceC
:////
inverse sawD
:/¯¯¯
attackE
:/\/\
obeliscoF
:/___
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
ory
are 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.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
: +01
: +12
: +23
: +34
: -05
: -36
: -27
: -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 SSG-EG of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is 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.