2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# Microchip AY8930
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a backwards-compatible successor to the AY-3-8910, with increased volume resolution, duty cycle control, three envelopes and highly configurable noise generator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sadly, this soundchip has only ever observed minimal success, and has remained rather obscure since.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								it is best known for being used in the Covox Sound Master, which didn't sell well either. it also observed very minimal success in Merit's CRT-250 machines, but only as a replacement for the AY-3-8910.
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-16 01:53:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								emulation of this chip in Furnace is now complete thanks to community efforts and hardware testing, which an MSX board called Darky has permitted.
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 05:13:21 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								as of Furnace 0.6pre7, AY8930 supports software PCM, where all 3 channels can play 5-bit PCM samples (at the cost of a very high CPU usage)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:07:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# effects
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `12xx` : **set channel duty cycle.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `0` : 3.125%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `1` : 6.25%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `2` : 12.5%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `3` : 25%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `4` : 50%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `5` : 75%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `6` : 87.5%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `7` : 93.75%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `8` : 96.875%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `20xx` : **set channel mode.**  `xx`  may be one of the following: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `0` : square
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `1` : noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `2` : square and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `3` : envelope
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `4` : envelope and square
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `5` : envelope and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `6` : envelope and square and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `7` : nothing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `21xx` : **set noise frequency.**  `xx`  is a value between `00`  and `FF` . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `22xy` : **set envelope mode.**  
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  -  `x`  sets the envelope shape, which may be one of the following:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  `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
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  -  if `y`  is 1 then the envelope will affect this channel.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `23xx` : **set envelope period low byte.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `24xx` : **set envelope period high byte.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `25xx` : **slide envelope period up.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `26xx` : **slide envelope period down.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `27xx` : **set noise AND mask.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `28xx` : **set noise OR mask.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `29xy` : **enable auto-envelope mode.**  
						 
					
						
							
								
									
										
										
										
											2022-01-20 03:23:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  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.
							 
						 
					
						
							
								
									
										
										
										
											2022-02-01 15:15:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  if `x`  or `y`  are 0 this will disable auto-envelope mode.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-04 12:11:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# info
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-04 12:38:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								this chip uses the [AY8930 ](../4-instrument/8930.md ) instrument editor.