Texas Instruments TMS9918
Encyclopedia
The TMS9918 is a Video Display Controller
Video Display Controller
A Video Display Controller or VDC is an integrated circuit which is the main component in a video signal generator, a device responsible for the production of a TV video signal in a computing or game system...

 (VDC) manufactured by Texas Instruments
Texas Instruments
Texas Instruments Inc. , widely known as TI, is an American company based in Dallas, Texas, United States, which develops and commercializes semiconductor and computer technology...

.

General information

The TMS9918 was used in systems like ColecoVision
ColecoVision
The ColecoVision is Coleco Industries' second generation home video game console which was released in August 1982. The ColecoVision offered arcade-quality graphics and gaming style, and the means to expand the system's basic hardware...

, Memotech MTX, MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...

, Sega SG-1000
SG-1000
The SC-3000 was the computer equivalent of the SG-1000.The SC-3000 sold for ¥29,800 in 1983 and was marketed as a computer for beginners...

/SC-3000, Spectravideo
Spectravideo
Spectravideo, or SVI, was a U.S. computer company founded in 1981 as "SpectraVision" by Harry Fox. They originally made video games for Atari 2600 and VIC-20. Some of their computers were MSX-compliant or IBM PC compatible...

, Sord M5
Sord M5
The Sord M5 , was a Japanese home computer launched by Sord Computer Corporation in 1982.-Internal hardware:* CPU: Zilog Z80 , 3.58 MHz...

, Tatung Einstein
Tatung Einstein
The Tatung Einstein was an eight-bit home/personal computer produced by Taiwanese corporation Tatung, designed in Bradford, England at Tatung's research laboratories and assembled in Bridgnorth and Telford, England. It was aimed primarily at small businesses....

, Texas Instruments TI-99/4 and Tomy Tutor/Pyuuta
Tomy Tutor
The Tomy Tutor was a home computer produced by the Japanese toymaker Tomy. It was architecturally similar- but not identical- to the Texas Instruments TI-99/4A, and used a similar 16-bit CPU. The computer was launched on the UK and European markets in late 1983...

. Modified versions with additional display modes and registers were used in the Sega Master System
Sega Master System
The is a third-generation video game console that was manufactured and released by Sega in 1985 in Japan , 1986 in North America and 1987 in Europe....

, Sega Game Gear
Sega Game Gear
The was Sega's first handheld game console. It was the third commercially available color handheld console, after the Atari Lynx and the TurboExpress....

, and the Mega Drive. (Note that the Mega Drive VDP cannot access any of the TMS9918 display modes discussed below.)

There are several variants called TMS9918A, TMS9928A and TMS9929A, where the 'A' indicates a second version of the chip which added new features, most prominently the addition of a bitmap
Bitmap
In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits, a spatially mapped array of bits. Now, along with pixmap, it commonly refers to...

 mode (Graphic II). The non-A version was only used in the TI-99/4; the TI-99/4A and the other computers had the A version VDC. The TMS9918A and TMS9928A output a 60Hz video signal, while the TMS9929A outputs 50Hz. The difference between '1' and the '2' in 'TMS9918A' and 'TMS9928A' is that the '1' version outputs composite
Composite video
Composite video is the format of an analog television signal before it is combined with a sound signal and modulated onto an RF carrier. In contrast to component video it contains all required video information, including colors in a single line-level signal...

 NTSC
NTSC
NTSC, named for the National Television System Committee, is the analog television system that is used in most of North America, most of South America , Burma, South Korea, Taiwan, Japan, the Philippines, and some Pacific island nations and territories .Most countries using the NTSC standard, as...

 video, while the '2' versions (including the TMS9929A) outputs YPbPr
YPbPr
' is a color space used in video electronics, in particular in reference to component video cables. is the analog version of the YCBCR color space; the two are numerically equivalent, but YPBPR is designed for use in analog systems whereas YCBCR is intended for digital video. cables are also...

, more precisely the Y, R-Y and B-Y colour differences (luminance
Luma (video)
In video, luma, sometimes called luminance, represents the brightness in an image . Luma is typically paired with chrominance. Luma represents the achromatic image without any color, while the chroma components represent the color information...

 and colour difference signals). The need for the latter was predominant in the 50Hz world, including Europe, due to the different video signal standards PAL
PAL
PAL, short for Phase Alternating Line, is an analogue television colour encoding system used in broadcast television systems in many countries. Other common analogue television systems are NTSC and SECAM. This page primarily discusses the PAL colour encoding system...

 and SECAM
SECAM
SECAM, also written SÉCAM , is an analog color television system first used in France....

. It was more cost-effective to output Y, R-Y and B-Y and encode them into PAL or SECAM in the RF modulator
RF modulator
An RF modulator is a device that takes a baseband input signal and outputs a radio frequency-modulated signal....

, than to try and have a different console for every different color standard. All of the ICs in this family are usually referred to by the TMS9918 name, sometimes with an 'A' postfix.

Texas Instruments' TMS9918A was succeeded by Yamaha's V9938
Yamaha V9938
The Yamaha V9938 is a Video Display Controller used in the Geneve 9640 enhanced TI-99/4A clone, as well as MSX 80s home computers ....

, which added additional bitmap modes, more colorful sprites
Sprite (computer graphics)
In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...

, a vertical scroll register and a customizable palette
Palette (computing)
In computer graphics, a palette is either a given, finite set of colors for the management of digital images , or a small on-screen graphical element for choosing from a limited set of choices, not necessarily colors .Depending on the context In computer graphics, a palette is either a given,...

. The V9938 was used in a third-party upgrade to the TI-99/4A — the Geneve 9640
Geneve 9640
-Geneve 9640:The Geneve 9640 is an enhanced TI-99/4A clone which was built by Myarc as a card to fit into the TI Peripheral Expansion System and used an IBM PC XT detached keyboard as well as a mouse. Released in 1987, it was in many ways similar to the earlier TI-99/8 which was in prototype form...

 'computer-on-a-card'. The V9938, in turn, was succeeded by the V9958
Yamaha V9958
The Yamaha V9958 is a Video Display Controller used in MSX 80s home computers. More specifically, the "TIM" upgrade to the TI-99/4A, MSX 2+ and MSX turbo R....

, which added some additional high-colour modes and a horizontal scroll register. These chips were used in the "TIM" upgrade card for the TI-99/4A, as well as on the MSX 2 and MSX 2+/turboR systems, although rumor has it that the V9958 was also used in a generation of the Photo Play arcades. Yamaha also produced a V9990, which is considered the follow-up of the V9958 by some, but it is not backwards compatible. A graphic chip extension utilizing the V9990 exists for the MSX in the form of the 'Graphics9000' cartridge by Sunrise.

A later variant of the TMS9918 series chips, the TMS9118, TMS9128, and TMS9129, were released in the mid-late 1980s, but were never very popular. The function of one pin is changed, and a different mapping of the 16k x 8 bit block of video memory is supported. Otherwise the chips are completely identical to the TMS9918A, TMS9928A and TMS9929A respectively.

Interface

The TMS9918 has its own 16k x 8 bit block of video memory, outside the address space of the CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

. This memory is not mapped onto the CPU memory space - the VDC's data memory bus is a private (although external) bus, separated from that of the CPU. A separate addressing space means that the CPU has to write a two-byte command word to the VDC's control port to set the address register, but it also means that the VDC doesn't slow the main processor down when it reads data out of its memory, and since the memory is not mapped onto the CPU's addressing space, there is more address space available for other memory and memory-mapped hardware.

The CPU communicates with the VDC through an additional 8-bit port on the VDC, and data is transferred between the two via port writes. As a byte is written, the TMS9918 increments its internal address register - this is important, because the CPU does not have to send an address update for every byte access. This facilitates quicker reads and writes of blocks of data. Writes to other ports can set various internal registers.

Screen modes

There are 4 different screen modes available in the TMS9918A (as mentioned before, the TMS9918 lacks mode Graphic II):

Mode 0 (Text): 40×24 characters monochrome. As the display is 256 pixels width, the character set is only 6 pixels wide. This mode doesn't support sprites.

Mode 1 (Graphic 1): 32×24 characters. Each 8 characters in the character set has a foreground and background color. The chars "0"-"7" for example all have the same color attributes.

Mode 2 (Graphic 2): 32×24 characters or 256×192 bitmap, with a 2-color limitation for each 8 pixel wide line inside a character. Popular hybrids exists.

Mode 3 (Multicolor): 64×48 mode, very blocky and rarely used. Each 'pixel' can have its own color defined though, hence the name. Sprites are available as in screen modes 1 and 2.

The TMS9918 has a fixed 16-color palette (actually 15 colors + transparent).

Sprites

In modes 1, 2, and 3, the VDC can render sprites. There can be 32 monochrome sprites of either 8×8 or 16×16 pixels on screen, each sprite can have its own one color. There can be no more than 4 sprites on a single scanline; any additional sprites' horizontal pixels are dropped. Sprites with a higher priority are drawn first. The VDP reports in a status register the number of the first dropped sprite. The CPU can get around this limitation by rotating sprite priorities so that a different set of sprites is drawn on every frame. Instead of disappearing entirely, the sprites will flicker. This technique is known as sprite multiplexing.

Automatic sprite movement is not handled by the VDC. What is done, in practice, is that the CPU will pick up on the VDC's 'vertical interrupt' - a standard VDC output, which is triggered automatically once every 50th or 60th of a second (depending on chip variant), at the start of the VBI (vertical blanking interval). The CPU then jumps to some sprite-handling routine in software, which in turn tells the VDC where to reposition the sprites.

When two non-transparent pixels in any pair of sprites collide, the sprite collision flag is set. This is useful for triggering more advanced collision detection routines inside the software which can then determine the exact location and act upon it. Note that unlike the Atari 2600's Television Interface Adapter
Television Interface Adapter
The Television Interface Adaptor is the custom computer chip that is the heart of the Atari 2600 game console, generating the screen display, sound effects, and reading input controllers. Its design was widely affected by an attempt to reduce the amount of RAM needed to operate the display...

 and the Commodore 64's VIC-II
MOS Technology VIC-II
The VIC-II , specifically known as the MOS Technology 6567/8562/8564 , 6569/8565/8566 , is the microchip tasked with generating Y/C/composite video graphics and DRAM refresh signals in the Commodore 64 and C128 home computers.Succeeding MOS's original VIC , the VIC-II was one of the two chips...

, the VDC cannot tell the program which two sprites have collided, just that individual sprites have been involved in a collision.

Screen mode 2 detail

Technically, mode 2 is a character mode with a colorful character set. The screen is vertically divided into three 256×64 pixel areas, each of which gets its own character set. By sequentially printing the characters 0 through 255 in all three areas, the program can simulate a graphics mode where each pixel can be set individually. However, the resulting framebuffer
Framebuffer
A framebuffer is a video output device that drives a video display from a memory buffer containing a complete frame of data.The information in the memory buffer typically consists of color values for every pixel on the screen...

 is non-linear.

The program can also use three identical character sets, and then deal with the screen like a text mode with a colorful character set. Background patterns and sprites then consist of colorful characters. This was commonly used in games, because to fill/scroll the entire screen, only 32×24 bytes had to be moved. Games on other home computers such as the Commodore 64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...

 also worked on a character basis. The graphics can be drawn such that the 8×8 pixel borders are not too obvious, an art where Konami
Konami
is a Japanese leading developer and publisher of numerous popular and strong-selling toys, trading cards, anime, tokusatsu, slot machines, arcade cabinets and video games...

 was particularly well known for their excellence.

This is the TMS9918 screen mode 2 challenge: every 8×1 pixel area has two colors, foreground and background. They may be freely picked out of the 16 color palette. But within each 8×1 pixel area, only two different colors can exist. When manipulating the screen in BASIC with the LINE command, one easily could exceed the limit of max 2 colors per 8×1 area and end up with "color spill
Attribute clash
Attribute clash was a display artifact caused by limits in the graphics circuitry of a number of early color 8-bit home computers, most notably the Sinclair Research ZX Spectrum, where it meant that only two colors could be used in any area of 8×8 pixels...

".

In comparison, the MOS Technology VIC-II
MOS Technology VIC-II
The VIC-II , specifically known as the MOS Technology 6567/8562/8564 , 6569/8565/8566 , is the microchip tasked with generating Y/C/composite video graphics and DRAM refresh signals in the Commodore 64 and C128 home computers.Succeeding MOS's original VIC , the VIC-II was one of the two chips...

 used in the Commodore 64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...

 limited programmers to 4 colors per 4×8 fat-pixel area. This meant there was less local color pressure, but more global color pressure: while three of the 4 colors could be freely picked out of palette of 16, the remaining fourth was a universal background color.

The TMS9918 does not have any scroll registers. Scrolling must be done in software.

Tradeoffs used in games

Some games tried to get around the 8 pixel scroll limitation, by scrolling the character set itself. Parsec (TI-99/4A) does this.

Circus Charlie
Circus Charlie
is an action/platform game originally released by Konami in which you control a clown named Charlie. The game was a hit arcade game in 1984, which also had a successful release on the MSX in 1984, the Nintendo Famicom in 1986 by Soft Pro and on the Commodore 64 in 1987...

 (MSX) scrolled horizontally, and hence bumped into the maximum of 2 colors per 8×1 area limit. The graphics were "monochrome-ish" and there were some glitches halfheartedly covered by sprites.

Pippols (MSX) scrolled vertically. Because this isn't affected by the 8×1 area limit, the player character could walk along smoothly scrolling colorful flowers and other such graphical fourishes. However there aren't many distinct objects onscreen, because the character set is cut down by factor 8. Pippols seems to be even below that limit by some factor.

When moving at full speed in Road Fighter
Road Fighter
is a car-based arcade game developed by Konami and released in 1984. It also was the first car racing game from Konami. The goal is to reach the finish line within the stages without running out of time, hitting other cars or running out of fuel...

 (MSX, vertically scrolling racing game), the screen moves 8 pixels each frame. This results in a smooth scroller in spite of the 8 pixel jumps. For many games this scrolling speed is not feasible, though.

In Knightmare (MSX), the scene scrolls vertically so slowly that the 8 pixel jump doesn't disturb much. Zanac scrolls vertically fairly fast, but due to the soft backgrounds which you never collide with it is a minor issue. It is most problematic in Nemesis
Gradius
The Gradius games, first introduced in 1985, make up a series of scrolling shooter video games published by Konami for a variety of portable, console and arcade platforms. In many games in the series, the player controls a ship known as the Vic Viper...

 ("R-Type
R-Type
is a side scrolling shoot-em-up arcade game produced by Irem in 1987. The player controls a space fighter named R-9a "Arrowhead" to defend humanity against a mysterious but powerful alien life-form known as "Bydo", which was later discovered to be not entirely alien in origin...

 style" horizontal space shooter).

Specifications

  • Video RAM: 16 KB
  • Text modes: 40 × 24 and 32 × 24
  • Resolution: 256 × 192 (15 colours + transparent)
  • Sprites: 32, 1 colour, max 4 per horizontal line

Amateur's Tool

TMS9918 still has plenty of fans who nowadays create lots of PC tools for character design, sprite design and for converting true color images to screen 2. With respect to this latter application, it is worth to underline the use of dithering algorithms (e.g. Floyd-Steinberg) in order to overcome the color clash problem and the limitations of the fixed palette.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK