FACTOID # 4: Just 1% of the houses in Nevada were built before 1939.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Texas Instruments TMS9918


Image File history File links Broom_icon. ...

General information

The TMS9918 Video Display Controller (VDC) was used in systems like MSX, ColecoVision, Texas Instruments TI-99/4, Memotech MTX500/MTX512/RS128 and Sega SG-1000/SC-3000. Modified versions with additional display modes and registers were used in the Sega Master System, Sega Game Gear, and Sega Genesis. Note that the Genesis VDP cannot access any of the TMS9918 display modes discussed below. 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. ... Sony MSX 1, Model HitBit-10-P MSX was the name of a standardized home computer architecture in the 1980s. ... This article does not cite any references or sources. ... The Texas Instruments TI-99/4 was the first 16-bit home computer. ... The Memotech MTX500, MTX512 and RS128 were a series of Zilog Z80A processor-based home computers released by Memotech in 1983 and 1984. ... The Memotech MTX500, MTX512 and RS128 were a series of Zilog Z80A processor-based home computers released by Memotech in 1983 and 1984. ... The Memotech MTX500, MTX512 and RS128 were a series of Zilog Z80A processor-based home computers released by Memotech in 1983 and 1984. ... The SG-1000, which stands for Sega Game 1000, is a cartridge-based video game console manufactured by Sega. ... Sega SC-3000 and joystick The SC-3000 was the computer equivalent of the SG-1000 cartridge-based gaming console manufactured by Sega. ... The Sega Master System ) or SMS for short (1986 - 2000), is an 8-bit cartridge-based video game console that was manufactured by Sega. ... The Sega Game Gear is a handheld game console which was Segas response to Nintendos Game Boy. ... The Sega Mega Drive was a 16-bit video game console released by Sega in Japan (1988), Europe (1990) and most of the rest of the world. ...

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 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 NTSC video, while the '2' versions (including the TMS9929A) outputs YPbPr, more precisely the Y, R-Y and B-Y colour differences (luminance 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 and SECAM. It was more cost-effective to output Y, R-Y and B-Y and encode them into PAL or SECAM in the RF modulator, 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. YPbPr (also referred to as YPrPb, PrPbY, and PbPrY) is a color space used in video electronics. ...

Texas Instruments' TMS9918A was succeeded by Yamaha's Yamaha V9938, which added additional bitmap modes, more colorful sprites, a vertical scroll register and a customizable palette. The V9938 was used in a third-party upgrade to the TI-99/4A — the Geneve 9640 'computer-on-a-card'. The V9938, in turn, was succeeded by the V9958, 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 Video Display Processor (VDP) used in MSX 80s home computers. ... 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. ... The Yamaha V9958 is a Video Display Processor (VDP) used in MSX 80s home computers. ...


The TMS9918 has its own 16k x 8 bit video memory, outside the address space of the CPU. 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. “CPU” redirects here. ...

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, nor a separate border color setting.

Mode 1 (Graphic 1): 32×24 characters (256×192 bitmap), where for each 8 characters in the character set the foreground and background color can be set. The chars "0"-"7" for example all have the same attributes.

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

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

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


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 of which can have its own 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), during 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 the VDC cannot tell the program which two sprites have collided.

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 is non-linear. The framebuffer is a part of RAM in a computer allocated to hold the graphics information for one frame or picture. ...

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 also worked on a character basis. The graphics have to be drawn such that the 8×8 pixel borders are not too obvious, an art where Konami was particularly well known for their excellence. C-64 redirects here. ...

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 (or colour clash) was a display artefact caused by limitations in the graphics circuitry of a number of early colour 8-bit home computers — most notably the Sinclair ZX Spectrum. ...

In comparison, the Commodore 64 limit was 4 colors per 4×8 fat-pixel area. This meant that there was less local color pressure, but more global color pressure: only three of the 4 colors actually could be freely picked out of 16, the other color had to be the same over the entire screen. That color could be redefined every scan line for various results.

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. This was too slow to be feasible, so the game filled the character set with 8 different versions of a single character.

Circus Charlie (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. Circus Charlie is an action/platform game originally released by Konami in which you control a clown named Charlie. ...

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. Pippols is a vertical scroll MSX1 platform game made by Konami. ...

When moving at full speed in Road Fighter (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. Road Fighter is a car-based arcade game developed by Konami and released in 1985 for the MSX home computer system. ...

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 ("R-Type style" horizontal space shooter). On the other hand, the Nemesis 2 backgrounds are really of "16 bit" beauty. Knightmare is a 1986 MSX computer game. ... The Gradius series, first introduced in 1985, is a series of scrolling shooter video games published by Konami for a variety of portable, console and arcade platforms, and has since its inception become synonymous with the phrase Shoot the core! []. In many games in the series the player controls a... R-Type is a horizontally-scrolling shoot-em-up arcade game produced by Irem in 1987. ...


  • 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 to the color clash problem and the limitations of the fixed palette. Floyd-Steinberg dithering is an image dithering algorithm first published in 1976 by Robert W. Floyd and Louis Steinberg. ...

For tools implementing dithering in screen 2 conversion look at: Online screen 2 converter and to Offline screen 2 converter + C sources

See Also

  • List of home computers by video hardware

This is a list of home computers, sorted alphanumerically, which lists all relevant details of their Video Hardware. ...

External links

  Results from FactBites:
Texas Instruments TMS9918 — Википедия (1138 words)
TMS9918 также лежит в основе ряда других, более поздних, видеоконтроллеров.
TMS9918 имеет интерфейс для работы с видеопамятью, имеющей организацию 16K 8-разрядных слов.
Texas Instruments TMS9918A VDP — неофициальная документация по программированию TMS9918A, ориентированная на платформу MSX
Texas Instruments Memory – Web Listings (505 words)
Texas Instruments Memory, Texas Instruments ram, memory, ram, upgrade Texas Instruments.
Texas Instruments' TMS9918A was succeeded by Yamaha's Yamaha V9938,...
Texas Instruments' graphing calculators are very popular among students in high....
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m