27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | # OKI MSM5232
 | ||
|  | 
 | ||
|  | a rather primitive (but powerful) sound generator chip used in some arcade boards and even synthesizers (like Korg Poly-800). | ||
|  | 
 | ||
|  | it has 8 channels in 2 groups (of 4 channels each). each group can be configured with an envelope and the ability to produce 2', 4', 8' and/or 16' square/noise overtones on 8 outputs (four (2', 4', 8' and 16') per group). | ||
|  | 
 | ||
|  | however, this chip cannot entirely produce sound alone. it has to be paired with either an external envelope generator or capacitors to assist the internal envelope generator. | ||
|  | 
 | ||
|  | it also has no fine tune whatsoever. the frequency resolution is exactly a semitone. | ||
|  | 
 | ||
|  | Furnace implements this chip in a way that allows the following features: | ||
|  | - internal (capacitors) or external (volume macro) envelope modes per group | ||
|  | - the ability to change the volume of each output (this can be used to generate saw waves if you set each part/overtone's volume to exactly half of the previous one) | ||
|  | - global fine tune | ||
|  | - global vibrato (some arcade boards played with the clock input to simulate vibrato) | ||
|  | 
 | ||
|  | # effects
 | ||
|  | 
 | ||
|  | - `10xy`: set group control. | ||
|  |   - `x` sets sustain mode. | ||
|  |   - `y` is a 4-bit mask which toggles overtones. | ||
|  | - `11xx`: set noise mode. | ||
|  | - `12xx`: set group attack (0 to 5). | ||
|  |   - only in internal (capacitor-based) envelope mode. | ||
|  | - `13xx`: set group decay (0 to 11). | ||
|  |   - only in internal (capacitor-based) envelope mode. |