Color Graphics Adapter
The Color Graphics Adapter (CGA) is a graphics display adapter developed by IBM and released in 1981. It gives IBM personal computers limited color graphics capabilities. It was superseded in 1984 by the Enhanced Graphics Adapter (EGA) which added superior color graphic capabilities. Though the card was developed and sold by IBM, competing companies quickly reverse-engineered it and sold clones.
By the time I got into computers, EGA was already standard, and VGA graphics had just been introduced, so the MS-DOS games I played that used CGA looked pretty dated to me, and I wasn't very interested in them. However, there were some that were just so fun, I saw past the poor color quality.
I did a little bit of programming with CGA graphics in QuickBASIC where it was screen 1, but I mostly preferred the superior screens I had access to, 7, 12, and 13.
The CGA supported four display modes, both using RGB or composite output. RGB was usually sent to computer monitors while composite was usually sent to televisions. It is actually possible to simulate additional colors using composite output, but by sacrificing visual clarity.
Text Mode 80x25, 4-bit Color
Text Mode 40x25, 4-bit Color
Graphic Mode 320x240, 2-bit Color
This was the most popular CGA mode for graphics. The display resolution is 320x200 pixels with a pixel ratio of 1:1.2 (visually 320x240). When displayed on a CRT monitor, the display was stretched in height, scanlines would be present, and a curved distortion would be noticeable near the edges of the display.
A programmer could switch between one of two palettes, each with four colors. Palette 0 is black, green, red, yellow, palette 1 is black, cyan, magenta, white. Neither is very useful for displaying realistic images, but each color effectively contrasts with each other. Each palette could be displayed at high or low intensity, shifting the entire image's brightness.
In either palette mode, color 0 is customizable and can be replaced with any of the 16 colors from the text mode. This gives the benefit of adding a custom color, provided all the graphics on the screen don't need black, however, color 0 is always the background color which displays in the overscan region (border), so changing the color may cause unwanted results near the edge of the screen.
Through a simple trick, an alternate palette can be attained. This is possible by changing settings on the board outside of its normal specifications. The result is a palette using the colors black cyan, red, and white. This palette also supports high and low intensity, but it only on RGB monitors.
Graphic Mode 640x200, 1-bit Color
Far fewer programs used this higher resolution mode because it only supported monochrome graphics, but the larger resolution made more detailed interfaces. Games like SimCity supported this mode. The resolution is 640x200 pixels, but has a dramatic pixel ratio of 1:2.4 (visually 640x480). When displayed on a CRT monitor, the display was visibly stretched in height, scanlines would be present, and a curved distortion would be noticeable near the edges of the display.
In this mode, color 0 must remain black, but color 1 can be customized to any of the 16 text mode colors. For example:
Graphic Mode 160x100, 4-bit Color
This is not technically a graphic mode, but a creative tweak of text mode 80x25. It changes the 80x25 text display to be a 80x100 by only displaying the top 2 pixels of reach text row. By drawing character 222 (which is half the fore color and half the back color), and changing the foreground and background colors after each character, you effectively get 160x100 pixels, each with any color from the palette of 16.
- All software that used 2-bit Color
These are programs that I think made good use of CGA graphics:
- 4x4 Off-Road Racing
- King's Quest III: To Heir Is Human
- Space Quest I: The Sarien Encounter
- Space Quest II: Volhaul's Revenge
- Where In the U.S.A. Is Carmen Sandiego?
- Where In the World Is Carmen Sandiego?
- You Have to Win the Game (Simulated)
- en.wikipedia.org/wiki/Color_Graphics_Adapter - Wikipedia.
- shikadi.net/moddingwiki/Raw_CGA_Data - Modding Wiki.
- mobygames.com/attribute/sheet/attributeId,1 - MobyGames.
- trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-emulators - 8088 MPH CGA demo.