mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-27 15:03:01 +00:00
2.6 KiB
2.6 KiB
General Instrument AY-3-8910
this chip was used in many home computers (ZX Spectrum, MSX, Amstrad CPC, Atari ST, etc.), video game consoles (Intellivision and Vectrex), arcade boards and even slot machines!
it is a 3-channel square/noise/envelope sound generator. the chip's powerful sound comes from the envelope...
the AY-3-8914 variant was used in Intellivision, which is pretty much an AY with 4 level envelope volume per channel and different register format.
as of Furnace 0.6pre7, AY-3-8910 supports software sample playback, where all 3 channels can play 4-bit PCM samples (at the cost of a very high CPU usage)
effects
20xx
: set channel mode.0
: square1
: noise2
: square and noise3
: envelope4
: envelope and square5
: envelope and noise6
: envelope and square and noise7
: nothing
21xx
: set noise frequency. range is0
to1F
.22xy
: set envelope mode.x
sets the envelope shape: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.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.
2Exx
: write to I/O port A.- this changes the port's mode to "write". make sure you have connected something to it.
2Fxx
: write to I/O port B.- this changes the port's mode to "write". make sure you have connected something to it.
chip config
AY derivative modes
AY-3-810 was an absurdly popular chip that was blessed with many third-party clones, licensed or not.
- the AY-3-8914 variant was used in Intellivision, which is pretty much an 8910 with 4 level envelope volume per channel and different register format.
- Yamaha YM2149 was an AY-3-8910 clone released in 1983. it's almost identical to AY with minor differences being: higher hardware envelope step resolution (16 vs 32), half-clock mode when voltage level is low, much stronger DC offset and cleaner, but softer output.
- Sunsoft 5B is YM2149 clone with half-clock mode forced on.