Texas Instruments SN76489


The Texas Instruments SN76489 is a programmable sound generator chip released in 1979, used to create music and sound effects on computers and video game systems. Initially developed by Texas Instruments for its TI-99/4A home computer, it was later updated and widely adopted in systems like the BBC Micro, ColecoVision, IBM PCjr, Sega's Master System and Game Gear, and the Tandy 1000.
The SN76489 offered three tone generators for musical notes and a noise generator for sound effects like static and explosions, all with adjustable frequencies and volume levels. It competed with the General Instrument AY-3-8910; it lacked some of the 8910's more advanced features, like an envelope generator, but was inexpensive and easy to implement. TI had released the more powerful Texas Instruments SN76477 in 1978, but this was difficult to implement and did not see widespread use.

Overview

The SN76489 was originally designed to be used in the TI-99/4 computer, where it was first called the TMS9919 and later SN94624, and had a 500 kHz max clock input rate. A version was made for sales outside TI, the SN76489, which added a divide-by-8 to the clock input, allowing a clock input rate up to which allowed it to use the crystal for the NTSC colorburst which many machines of the era already included. A version of the chip without the divide-by-8 input was also sold outside of TI as the SN76494, which had the original max clock input rate.
It contains:
  • 3 square wave tone generators
  • * A wide range of frequencies
  • * 16 different volume levels
  • 1 noise generator
  • * 2 types
  • * 3 different frequencies
  • * 16 different volume levels

    Tone Generators

The frequency of the square waves produced by the tone generators on each channel is derived from two factors:
  1. The speed of the external clock
  2. A 10-bit value provided in a control register for that channel
Each channel's frequency is arrived at by dividing the external clock by 4, and then dividing the result by N. Thus the overall divider range is from 4 to 4096. At maximum clock input rate, this gives a frequency range of 122 Hz to 125 kHz. Or typically 108 Hz to 111.6 kHz, with an NTSC colorburst clock input – a range from roughly A2 to 5–6 times the generally accepted limits of human audio perception.

Noise Generator

The pseudorandom noise feedback is generated from an XNOR of bits 12 and 13 for feedback, with bit 13 being the noise output. The pseudorandom generator is cleared to 0s on writes to chip register 6, the noise mode register.

Product family

There are two versions of the SN76489: the SN76489 and the SN76489A. The former was made around 1980–1982 and the latter from 1983 onward. They differ in that the output of the SN76489 is the inverse of the expected waveform, while the SN76489A waveform is not inverted.
The SN76496 seems to be totally identical to the SN76489A in terms of the outputs produced, but features an "AUDIO IN" pin for integrated audio mixing.
Chip variantFreq Audio in
TMS9919 / SN94624500 kHzNo
SN76489 / SN76489A4 MHzNo
SN76494 / SN76494A500 kHzYes
SN76496 / SN76496A4 MHzYes

Clones and successors

used real SN76489AN chips in their SG-1000 game console and SC-3000 computer, but used SN76489A clones in their Master System, Game Gear, and Sega Genesis game consoles. These modified sound chips were incorporated into the systems' video display processor. Although basic functionality is almost identical to that of the original SN76489A, a few small differences exist:
  • The randomness for the noise channel is generated differently.
  • The Game Gear's version includes an additional flag register that designates which speaker each audio channel are output.
  • The periodic noise is 16 stages long rather than 15; this makes a significant difference for music/programs which use periodic noise, as sounds will play at 6.25% lower pitch than on the TI-made chips.
Another clone is the NCR 8496, used in some models of the Tandy 1000 computer. Later Tandy 1000 machines integrated the SN76496's functionality into the PSSJ ASIC.

Usage

Arcade video games