Damian Walker

Personal Web Pages

My Journey into CGA Graphics

Planet X3 in CGA mode

Saturday, 1st August 2020

Part 1 of a blog series on CGA palettes.

One aspect of computing that has been fading from the collective consciousness is that of CGA graphics. Gamers of the early 1990s will remember that many PC games had support for multiple graphics standards: often the list was CGA, EGA and VGA. CGA was the oldest of the three, having been launched with the original PC in 1981. In capability it struggled to compete with the home computers of its time, as comparing screenshots of period titles on a site like MobyGames will make clear.

CGA now has a kind of cultural legacy. The combination of black, cyan, magenta and white, forms CGA's most common palette. Some would say it's also the ugliest, and unfortunately it was also the default. You can see it in the image above, a screenshot of David Murray's relatively recent Planet X3 game. But many people look at these colours now with a kind of nostalgic fondness. The colours have been the subject of various community competitions. One notable one from recent years is 2017's CGA Jam, a game development competition where participants strived to make the best of one of CGA's two default palettes. This wasn't a competition to make a game that would run on CGA hardware, but one that brought the once hated aesthetic to modern systems.

I've always been fascinated by CGA Graphics. Maybe it's because I'm not much of an artist, and having a limitation of four colours in a low resolution suits my level of artistic skill. But ever since I first started programming for PCs, I've been interested in how game developers could get decent results out of this ancient graphics hardware, and equally confused by why they so often didn't.

The next few blog posts will talk about what CGA is capable of in general, before focussing on the most common graphics mode for gaming. The emphasis will be on making the best use of the limited colour capabilities, and I hope that it will be useful or interesting for those who enjoy writing new games for old systems like I do.