2022-01-16 06:10:43 +00: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.
2022-11-07 08:20:03 +00: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 06:10:43 +00:00
2022-10-16 05:53:05 +00: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 06:10:43 +00:00
# effects
2023-06-24 01:13:37 +00:00
- **`12xx`**: set channel duty cycle. `xx` is a value between 00 and 08.
2022-02-01 20:15:05 +00:00
- `00` : 3.125%
- `01` : 6.25%
- `02` : 12.5%
- `03` : 25%
- `04` : 50%
- `05` : 75%
- `06` : 87.5%
- `07` : 93.75%
- `08` : 96.875%
2023-06-24 01:13:37 +00:00
- **`20xx`**: set channel mode. `xx` may be one of the following:
2022-01-16 06:10:43 +00:00
- `00` : square
- `01` : noise
- `02` : square and noise
- `03` : envelope
- `04` : envelope and square
- `05` : envelope and noise
- `06` : envelope and square and noise
- `07` : nothing
2023-06-24 01:13:37 +00:00
- **`21xx`**: set noise frequency. `xx` is a value between 00 and FF.
- **`22xy`**: set envelope mode.
2022-01-16 06:10:43 +00:00
- `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.
2023-06-24 01:13:37 +00: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 08:23:03 +00: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 20:15:05 +00:00
- if `x` or `y` are 0 this will disable auto-envelope mode.