Sunday, May 18, 2014

The Saga of 16 Colors

IBM's original color graphics solution for CGA could display 16 colors.  However, it could not display them all at the same time, except in the text modes.  Otherwise it could display graphics (all points addressable) in limited 320x200 4 color and 640x200 2 color modes. Certain games like Round 42 use the 80 column text mode, tweaked to display an effective 160x100 graphics resolution.  On a real CGA, the 80-column mode would show CGA snow or the graphics would be very slow.

The 1983 PCjr. was IBM's first consumer device that could display all 16 colors on screen at the same time in graphics modes.  Despite the system being much more difficult to upgrade and slower than an IBM PC when equipped with 128KB or less of RAM, its 320x200 16 color and even its 160x200 16 color graphics were far superior to CGA.

The 1984 EGA was IBM's third graphics adapter to see widespread support in games, although the high price of EGA kept it out of reach for most consumers for approximately two years.  It too supported a 320x200 16 color mode and could display 160x200 16 color graphics easily through pixel doubling.

In late 1984, Tandy used a tweaked and modified version of the PCjr.'s graphics adapter in its 1000 series.  The Tandy 1000 supported the same graphics modes as the PCjr.  Games were much more likely to support PCjr. and then Tandy graphics over than EGA in 1985 and 1986.  Even so, there were quite a few budget games and lazy ports even in 1987 and 1988 that supported CGA only, especially in Europe where PCs were expensive and the PCjr and Tandy did not have much of a retail presence (if any).  The Amstrad PC-1512 was one of the best selling PC compatibles of the time, and it supported little beyond basic CGA.  The only advantage it had over regular CGA was a 640x200x16 mode that only a very few games supported.

Games generally would indicate on the box if they supported the PCjr. or the Tandy 1000 series or EGA.  Assuming a game supported all three, like Space Quest III : The Pirates of Pestulon, you could connect the PC with EGA, PCjr. or Tandy 1000 to the same monitor and see identical or nearly identical (Maniac Mansion) graphics.  All these monitors used a digital TTL signal to which was sent a 4-bit RGBI signal.  Thus they could display only 16 colors, and by 1983 IBM had standardized those colors with its 5153 Color Graphics Display.  Outside the digital input, the 5153 was little different than the other RGB monitors non-IBM PCs used, as it used a 15.75KHz horizontal line scan rate and 60Hz frame rate.  TVs also used this scan rate.

EGA could also support 16 colors from a palette of 64 colors, but only using its 350-line modes.  The maximum resolution supported, 640x350 in 16/64 colors, required 128KB of RAM, which was more than the stock IBM EGA card had (64KB).  Relatively few games used this mode, SimCity being the most famous example.  It also required a 5154 Enhanced Color Display or similar monitor, so it was not widely used for games.  The 5154 supported a higher 21.8KHz horizontal line scan rate and 6-bit RrGgBb digital signalling.  The 5154 was backwards compatible with the 5153, with changes on the polarity of the pins telling the monitor whether it would display 200 line or 350 line modes.

EGA also supported a 640x200 16 color graphics mode that saw some use, typically in ports of Japanese PC games like Thexder, Zeliard and Romance of the Three Kingdoms.  Later Tandy systems have an updated graphics adapter that added support for 640x200 16 color graphics, but the mode was very seldom used for games and all games that support it also support EGA.  Additionally, the very popular in Europe Amstrad PC-1512 also supported a similar 640x200 16 color graphics, but only a few games used it.  The Hercules Graphics InColor Card supported a 720x350 16 color graphics mode on an EGA monitor, only a few games used it.

16 color graphics were typically the best quality graphics PC games supported in the 1980s.  256-color VGA graphics did not really become a must-have feature for games until 1990.  Even though EGA was eclipsed by the MCGA and VGA adapters, 16-color games advertised support for these adapters but only displayed their graphics in 16-colors.  However, a few games took advantage of the MCGA and VGA's comparatively vast (256K) palette to display other colors than the canonical 16 colors of CGA.  Moebius : The Orb of Celestial Harmony is a good example.  Thexder is another.

VGA monitors (including MCGA), have a horizontal scan rate double that of a CGA monitor.  To compensate, IBM had these adapters draw each of the 200 scanlines twice.  This gives 320x200 graphics, regardless of color depth, a noticeable "double scanned" look on VGA, with a scanline bisecting each pixel on the line horizontally, regardless of color depth.

16 color graphics typically looked identical whether displayed on a Tandy 1000, an EGA or VGA card or an MCGA card.  EGA was almost always implemented as an expansion card, and VGA could be found integrated into IBM PS/2 systems or cloned on an ISA card.  MCGA never came on a card, like the Tandy 1000 Graphics Adapters and the PCjr. Graphics Adapter.

EGA has the great advantage of being available for any system with an ISA slot.  MCGA and VGA have an even greater advantage by having an output compatible with most modern monitors.  Early Tandy 1000s and the PCjr. also are modern monitor friendly though their composite video output.  While the 16 color output looks good with 160x200 graphics, it looks poor with 320x200 graphics.

VGA is a superset of EGA, and at the 16 color level the cards usually work so similarly that games use the same or almost the same graphics driver.  However, EGA and MCGA function very differently at the hardware level, and a game must support both to provide 16 colors.  MCGA is mostly CGA compatible, and there were games or versions of games that supported only 4 colors with MCGA.  MCGA does not have a true 320x200 16 color mode, so it uses a 320x200 256 color mode, which is slower than EGA.

While Tandy graphics and the PCjr. work very similarly,  there are just enough differences with the adapters and the systems that a game that works on a PCjr. in 16 colors will not work on a Tandy, and vice versa, unless the game was programmed for both or hacked for one or the other.  Tandy graphics work very differently from EGA, so games supporting EGA graphics only tend not to work on a Tandy.  This includes virtually every EGA shareware game of the early 90s (Commander Keen, Duke Nukem, Dangerous Dave).  The Tandy systems, starting with the SX, can be upgraded with an EGA or VGA card, but the software that allows you to switch back to Tandy graphics only works with VGA.

While Tandy graphics (which use a 16-bit data path) are generally faster than EGA graphics (generally put on an 8-bit card) at similar CPU speeds, systems with Tandy graphics max out at a 10MHz 286, while EGA graphics can accompany systems with much faster CPUs.  The IBM systems are stuck with the 8088 PCjr. and the 8086 PS/2 MCGA  Models 25 and 30


  1. what are the best tandy 1000 games?

    is the cm-11 the best cga monitor for tandy 1000?

  2. I would change "a game that works on a PCjr. in 16 colors will not work on a Tandy" to "might" work on a Tandy. Any game that uses only a single video page in 160x200x16, that goes through the CGA standard B800h segment, usually works on both machines regardless of what system it was programmed on/for.

  3. Good point. Some games use the PCjr. BIOS identifier byte to determine whether to use a 16-color mode, and the Tandy 1000s have a PC identifier byte.