Share on Facebook Share on Twitter Email
Answers.com

Television Interface Adapter

 
Wikipedia: Television Interface Adapter

The Television Interface Adapter (TIA) is the custom chip that is the heart of the Atari 2600 game console and was created by Jay Miner of Amiga fame.

The TIA is responsible for generating the picture on the television set as well as providing access to features in hardware for the purpose of generating the game graphics, tones and noises. Due to the cost of memory at the time, the TIA has no video RAM and only generates a single line of video at a time. The video is created from data in registers that control a background color, a playfield made up of a small amount of pixel data which is stretched across half the video line and may be duplicated or mirrored across the other half, and 5 graphics objects consisting of:

  • Two 8-pixel lines which make up the 'sprites' Player 1 and Player 2. These are single color and can be stretched by a factor of 2 or 4.
  • A 'ball' - a line that is the same color as the playfield. It can be one, two, four, or eight pixels wide.
  • Two 'missiles' - a line that is the same color as its respective player. It can be one, two, four, or eight pixels wide.
Pressure Cooker changes the color every scanline. The chef and tomato use the "players", or "sprites" in more common terminology.

The TIA could only change the color of the ball/playfield, the background, and each player/missile once per scanline. This resulted in the distinct appearance and style of most Atari 2600 sprites. Often programmers would change the color to create gradients and other visual effects to enhance the appearance of the game.

The TIA has hardware collision detection for all of these objects and stores a bitmap of collisions, that are typically read during the VBLANK period. Registers in the TIA allow the programmer to control the positioning of the graphical objects and their color.

The TIA is also responsible for generating two channels of sound from which the programmer can control pitch, volume and type of sound generated.

Lastly, the TIA has inputs for reading an analogue paddle controller that uses a potentiometer and for joystick triggers.

Programming for the TIA is very hard work. Such huge limitations as the lack of a framebuffer, the symmetric playfield, and the fact that 3 pixel clocks elapse for every CPU clock make life hard for the programmer. On the other hand, the highly software-oriented approach also presents many opportunities for programming tricks. Many of these tricks became routine programming practice in the 1980s during the Atari 2600's heyday. Some examples include: modifying the playfield mid-line to generate asymmetric patterns, changing sprite and playfield colors at the end of a line, and repositioning and changing player sprites mid-screen in order to generate additional sprites on screen. These tricks allowed, in many cases, more graphically rich games than the hardware designers originally anticipated. Programming the TIA remains a real challenge which many homebrew programmers still enjoy today.

Atari later expanded on the design of the TIA for the Atari 400 and Atari 800 with the Color Television Interface Adapter, and again with George's Television Interface Adapter.

Contents

TIA Color Capabilities

The TIA uses different color palettes depending on the television signal format used. For NTSC format, a 128-color palette is provided, while only 104 colors are available for PAL. Additionally, the SECAM palette consists of only 8 colors.

NTSC palette

hue / luminance 0 2 4 6 8 10 12 14
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

PAL palette

hue / luminance 0 2 4 6 8 10 12 14
0,1,14,15
2
3
4
5
6
7
8
9
10
11
12
13

SECAM palette

0 2 4 6 8 10 12 14

Noise/Tone Generator (AUD0/1)

The TIA is capable of generating different flavors of pulse and noise out its two oscillators (or channels) AUD0 and AUD1. Each oscillator has a 5-bit frequency divider and a 4-bit audio control register which manipulates the waveform. There is also a 4-bit volume control register per channel.

Frequency Divider (AUDF0/1)

Frequencies are generated by taking 30kHz and dividing by the 5-bit value supplied. The result is a cheap frequency divider capable of detuned notes and the odd tuned frequency. The TIA is not a musical chip unless the composer works within the frequency limits or modulates between two detuned frequencies to create a vibrato tuned note.

Audio Control (AUDC0/1)

The Audio Control register generates and manipulates a pulse wave to create complex pulses or noise. The following table (with designed duplicates) explains how its tones are generated:

  D7 D6 D5 D4 D3 D2 D1 D0  
HEX     Type of noise or division:
0 0 0 0 0 Set to 1 (volume only)
1 0 0 0 1 4 bit poly
2 0 0 1 0 ÷ 15 bit poly --> 4 bit poly
3 0 0 1 1 5 bit poly --> 4 bit poly
4 0 1 0 0 ÷ 2
5 0 1 0 1 ÷ 2
6 0 1 1 0 ÷ 31
7 0 1 1 1 5 bit poly --> ÷ 2
8 1 0 0 0 9-bit poly (white noise)
9 1 0 0 1 5-bit poly
A 1 0 1 0 ÷ 31
B 1 0 1 1 Set last 4 bits to 1
C 1 1 0 0 ÷ 6
D 1 1 0 1 ÷ 6
E 1 1 1 0 ÷ 93
F 1 1 1 1 5-bit poly ÷ 6

External links


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Television Interface Adapter" Read more