General Instrument AY-3-8910

TheAY-3-8910is a 3-voiceprogrammable sound generator(PSG) designed byGeneral Instrument(GI) in 1978, initially for use with their16-bitCP1610or one of thePIC1650 series of8-bitmicrocomputers. The AY-3-8910 and its variants were used in manyarcade games—Konami'sGyrusscontains five[1]—and Ballypinballmachines as well as being thesound chipin theIntellivisionandVectrexvideo game consoles,and theAmstrad CPC,Oric-1,Colour Genie,Elektor TV Games Computer,MSX,Tiki 100and laterZX Spectrumhome computers. It was also used in theMockingboardand Cricket sound cards for theApple IIand the Speech/Sound Cartridge[2]for theTRS-80 Color Computer.

AY-3-8910 chip DIP 40
AY-3-8910die

After GI's spinoff ofMicrochip Technologyin 1987, the chip was sold for a few years under the Microchip brand. It was also manufactured under license byYamaha(with a selectableclock dividerpin and a double-resolution and double-rate volume envelope table) as theYM2149F;theAtari STuses this version. It produces very similar results to theTexas Instruments SN76489and was on the market for a similar period.

The chips are no longer made, but functionally-identical clones are still in active production. An unofficialVHDLdescription is freely available for use withFPGAs.

Description

edit

The AY-3-8910 is a simplefinite-state machine.Itsstateof sixteen 8-bitregistersare programmed over an 8-bitbus(used both for addressing and data) by toggling one of the external pins. For instance, a typical setup cycle puts the bus into "address mode" to select a register, and then switches to "data mode" to set the contents of that register. This bus was implemented natively on GI's own CPUs, but it had to be recreated inglue logicor with the help of an additional interface adapter such as theMOS Technology 6522when the chip was used with the much more commonMOS Technology 6502orZilog Z80CPUs.

Six registers control the pitches produced in the three primary channels. The frequency to generate is held in two 8-bit registers dedicated to each channel, but the value is limited to 12-bits for other reasons, for a total of 4095 (the register value is used as thefrequency dividerand 0 is treated as 1) different pitches. Another register controls the period of a pseudo-random noise generator (a total of 31 different cycle times), while another controls the mixing of this noise into the three primary channels.

Channel volume is controlled by three additional registers or by turning on or off the optional envelope controls on them. Finally the last three registers control the times of theenvelopecontroller, by setting the envelope type and envelope cycle time. A total of eight envelope types include sawtooth shape or triangle shape, starting on either maximum or minimum. The shape can also be set to repeat for a cycling effect. A total of 65535 different cycle times can be set. As there is only one envelope shared between all three channels, many programmers ignored it and programmed their own envelope controllers in software (controlling volume directly). A well known trick was to run the hardware envelope at cycle times above 20 Hz to produce sawtooth or triangle-wave like bass sounds.

Although there are only 16 registers, the four MSB bits of the 8-bit bus must be set to the factory default '0000' value when selecting a register. Incorrectly setting the MSB bits causes the chip to ignore the register change. GI did take orders for customized MSB bits (factory set to other than '0000'). The chips made with customize-set MSB register bits allow the same processor to control more than one AY chip on the same bus (e.g. TurboSound for ZX Spectrum). There are many new-old-stock (NOS) chips on the secondary market with MSB bits factory set to a non-'0000' value. The non-'0000' value can cause significant developmental troubles for designers and repair technicians. Software must be written to identify the correct value of the MSB bits on any given chip. Also, software must be changed or hardware added to allow these factory-set-MSB chips to be used in place of the default '0000' chips.

The AY-3-8910 generates tones withfundamental frequenciesof up to 125 kHz (4 MHz input clock, or 6 MHz with the YM2149F), well beyondhuman hearing rangeand into theultrasonicrange. The existence of ultrasonic values is a consequence of the frequency-divider design; in order to have adequate resolution at audible frequencies it is necessary for the overall clock rate (and thus the output at small divisors) to be considerably higher than the audible range. Only divisors below 5 give entirely-ultrasonic output frequencies. Frequencies equivalent to the top octave of a piano keyboard can be defined with reasonable accuracy versus the accepted note values for the even-tempered scale, to nearly 1 Hz precision in theA440range and even more finely at lower pitches. Despite the high maximum frequency, the ability to divide that figure by 4096 means the lowest directly definable output frequency is 30.6 Hz, roughly equal to B0, the third lowest note on a normal 88-key piano, and as good as subsonic with everyday speaker systems. In essence, the chip is able to produce decently musical output at all reasonable pitches found in most compositions.

By contrast, the SN76489 only has 10 bits of precision for its frequency dividers. Having the same base frequency of 125 kHz, it should in theory lack the two lowest octaves of the PSG. To get around this, the SN76489 plays its tone generators one octave lower than their calculated frequency, giving it one octave less in the bass and one octave less in the top compared to the PSG.

Variants

edit
AY-3-8912 chip, 28-pin DIP package with computer case screw for scale
YM2149F chip, 40-pin DIP package

The 8910 silicon chip was sold in three different packages.

TheAY-3-8910has two general-purpose 8-bit parallelI/Oports, A and B, and these are available in the 40-pin package of the same name.

TheAY-3-8912is the same chip in a 28-pin package, with parallel port B simply not connected to any pins. Smaller packages save cost and board space. The 8912 was the most widely used variant.

TheAY-3-8913is the same chip in a 24-pin package, with both parallel ports not connected. Some users thought the small reduction in pin count over the 8912 made it less interesting; however, the I/O registers were rarely used by designers so GI created this fully functional 24 pin alternative and released it approximately 6 months after the 8910 and 8912 chips. The goal was to reduce complexity for the designer and reduce the foot print on the PCB.

TheYamahaYM2149FSSG (Software-controlled Sound Generator) chip has the same pinout as the AY-3-8910, with the minor difference that pin 26 could halve the master clock if pulled low. If left unconnected, as it would be if replacing an AY-3-8910 chip, an internal resistor pulls the pin high, so the master clock is not halved.

The YamahaYM3439is a CMOS version of the YM2149F. It is available in two packages: 40-pin DIP (YM3439-D) and 44-pin QFP (YM3439-F).

The YamahaYMZ294is one of the newest variants of the YM2149, but in an 18-pin package. Has no parallel ports and only one sound output with the three channels mixed.

The YamahaYMZ284is an even smaller variation of the YM2149, in a 16-pin package. It's basically YMZ294 without the 4/6 MHz selection pin and the /TEST pin.

The YamahaYMZ285has a 28-pin package and features a built-in PCM. Has no parallel ports and two sound outputs: one with the three SSG channels mixed, other with the PCM output.

The ToshibaT7766Ais a compatible chip that has the same pinout as the AY-3-8910 and was used in someMSXmodels.

TheWinbondWF19054,JFC95101and the FileKC89C72have the same pinout as the AY-3-8910 and are also 100% software compatible. They're still in production and used on manyslot machines.

TheAY-3-8914has the same pinout and is in the same 40-pin package as theAY-3-8910,except the control registers on the chip are shuffled around, and the 'expected input' on the A9 pin may be different. It was used inMattel'sIntellivisionconsole andAquariuscomputer.

TheAY-3-8930,also known asAY8930,is an enhanced but mostly-backwards-compatible version of theAY-3-8910.The function of the BC2 pin is changed (it is ignored and assumed to be 0 regardless of the pin state), otherwise the pinout is the same as theAY-3-8910.This variant of the chip adds a number of major enhancements, such as separate envelopes for the three channels (as opposed to one shared envelope), variable duty-cycles, more bits of precision for note frequency, volume, and envelope frequency, and a much more configurable noise generator. It was used on theCovoxSound Master sound card for the IBM-PC. Very few games took advantage of it beyond the normalAY-3-8910features. This chip may have only been produced byMicrochip Technology.

edit

Yamaha used the YM2149 core to produce a whole family ofmusic chipsused in mobile phones, home computers, home and arcade video game systems, etc. For example, the OPN series of YamahaFM synthesischips are noteworthy for including the YM2149 core alongside their 4-operator FM synthesis sound generators. TheYM2203(also known as OPN) was the first chip in the series to include the core of the YM2149 on the chip itself alongside its three-channel FM sound generator. Its far more advanced successors: theYM2608(also known as OPNA) and theYM2610(also known as OPNB), also included the YM2149 core and retained all previous features while greatly expanding upon those, with the YM2610 excluding the I/O ports among other minor changes. TheYM2612(also known as OPN2), itself an upgraded derivative of the YM2203, removed the YM2149 portion completely among other changes, including the removal of all YM2149 sound channels and I/O ports, but retained the YM2149's envelope generators on the chip's core.

Usage

edit

Arcade games

edit

Home hardware

edit

Pinball

edit
  • Flash Gordon
  • Frontier
  • Hotdoggin'
  • Mystic
  • Nitro Ground Shaker
  • Rolling Stones (Bally)
  • Skateball
  • Silverball Mania
  • Space Invaders
  • Viking
  • Xenon
  • Jeutelfrench compagny: Papillon, Le King, Olympic games

References

edit
  1. ^"Gyruss".Arcade History.
  2. ^"Radio Shack Speech/Sound Cartridge Technical Reference Manual".archive.org.
edit