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.
 |