62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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.
 | |
| it is known for being used in the Covox Sound Master, which didn't sell well either.
 | |
| 
 | |
| emulation of this chip in Furnace is now complete thanks to community efforts and hardware testing, which an MSX board called Darky has permitted.
 | |
| 
 | |
| Furnace is able to do software PCM on AY8930, where all 3 channels can play 5-bit PCM samples (at the cost of a very high CPU usage).
 | |
| 
 | |
| ## effects
 | |
| 
 | |
| - `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.**
 | |
|   - `x` sets the envelope shape, which may be one of the following:
 | |
|     - `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
 | |
|   - 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.**
 | |
| - `27xx`: **set noise AND mask.**
 | |
| - `28xx`: **set noise OR mask.**
 | |
| - `29xy`: **enable 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` or `y` are 0 this will disable auto-envelope mode.
 | |
| 
 | |
| ## info
 | |
| 
 | |
| this chip uses the [AY8930](../4-instrument/ay8930.md) instrument editor.
 | 
