mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-26 14:33:01 +00:00
2.2 KiB
2.2 KiB
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 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.
emulation of this chip in Furnace is now complete thanks to community efforts and hardware testing, which an MSX board called Darky has permitted.
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)
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
: square1
: noise2
: square and noise3
: envelope4
: envelope and square5
: envelope and noise6
: envelope and square and noise7
: nothing
21xx
: set noise frequency.xx
is a value between00
andFF
.22xy
: set envelope mode.x
sets the envelope shape, which may be one of the following:0
:\___
decay4
:/___
attack once8
:\\\\
saw9
:\___
decayA
:\/\/
inverse obeliscoB
:\¯¯¯
decay onceC
:////
inverse sawD
:/¯¯¯
attackE
:/\/\
obeliscoF
:/___
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
ory
are 0 this will disable auto-envelope mode.