3.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.4 KiB
		
	
	
	
	
	
	
	
Yamaha YM2203 (OPN)
a cost-reduced version of the YM2151 (OPM). it only has 3 FM channels instead of 8 and removes the LFO.
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 PC-88/PC-98 series of computers, 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 (1-4).yis the mutliplier.
18xx: toggle extended channel 3 mode.- 0 disables it and 1 enables it.
 - only in extended channel 3 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.xxmay be one of the following:00: square01: noise02: square and noise03: nothing (apparently)04: envelope and square05: envelope and noise06: envelope and square and noise07: 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.
51xyset SL of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
52xyset RR of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
53xyset DT of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value:- 0: +0
 - 1: +1
 - 2: +2
 - 3: +3
 - 4: -0
 - 5: -3
 - 6: -2
 - 7: -1
 
54xyset RS of operator.xis the operator (1-4). a value of 0 means "all operators".yis the value.
55xyset 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.