2020-07-26

Alternate CGA Colors, Part 2

Swapping Real Life Palettes

A while back I started what I intended to be a series on CGA colors and then a pandemic and other forms of real life intervened! Well, after a delay from what was supposed to be some sort of a timetable I'm finally returning to CGA graphics and how they can possibly be improved. In the first chapter, I considered an alternate universe where IBM had made a minor change to the hardware allowing for a different color. This time around, I wanted to keep the possibilities in the real world; given the actual options, what if developers had made a different choice? While many games have chosen a palette that looks pretty decent (at least as much as is possible with only 4 colors), I find other games use a less than ideal selection. As before, what constitutes “better” is highly subjective, and I'm sure not everyone will agree with my opinion. Also, why didn't developers spend a lot of time tweaking CGA graphics? Part of the problem was likely the fact that early on PC's didn't have as much gaming market share as systems such as the Commodore 64 so ports were given minimal time and resources. These days it's hard to imagine just how expensive computers were in the era (especially IBM and compatibles), so even when newer standards (such as EGA) were available the lower price of CGA cards meant that quite a few people either hadn't yet upgraded or those just entering the PC market chose the cheaper options which made dropping support not viable from a sales point of view. There were some games that supported CGA well into the 1990's even, roughly a decade after the card was initially released which isn't too shabby for computer hardware! But as the CGA userbase decreased, developers likely put less and less effort into making games look decent as long as the results had the game playable. Eventually, support would be dropped in favor of EGA, VGA, and more.

But before we get started, lets first take a quick look at what our color options are. With an RGBi monitor, it was only possible to display 4 colors at at time from a total of 16 colors. Additionally, each color couldn't be set individually; there was a limited number of palettes available. Officially, there are two palettes (as part of graphics mode 4) each of which have high and low intensity options. Although undocumented, a third palette is possible (mode 5); setting this is a little counterintuitive and accomplished by disabling the color burst bit. On a composite monitor, this changes the image to black and white but with an RGBi monitor you still have color and magically magenta is changed to red. Altogether, This gives us the options shown below:

CGA Color Palettes
Mode 4: Palette 0, Low Intensity: CGA Mode 4 Palette 0 Low Intensity
Mode 4: Palette 0, High Intensity: CGA Mode 4 Palette 0 High Intensity
Mode 4: Palette 1, Low Intensity: CGA Mode 4 Palette 1 Low Intensity
Mode 4: Palette 1, High Intensity: CGA Mode 4 Palette 1 High Intensity
Mode 5: Low Intensity: CGA Mode 5 Low Intensity
Mode 5: High Intensity: CGA Mode 5 High Intensity
Color 0, which defaults to black, could also be changed to any of the available 16 colors offering even more possibilites than shown above. This doesn't provide unlimited flexibility, but does offer enough variations to be creative.

As mentioned in the last article, depending on your actual hardware some of these options may not be available or colors may be slightly different. Some CGA clones did not support changing magenta to red with color burst disabled, and some 3rd party monitors did not support the intensity bit so you could only see the low intensity colors. I'm sure for at least a few games the developers were using one of these oddball hardware options and thus the color decisions were made based around one or more of these limitaitons and not based on what the full range of possibilities was. I should also note that changing the CGA palette may, of course, drastically change the artifact colors you'd get with a composite monitor. For this article, I'm only worried about how things look on RGBi displays and not if the composite colors are better or worse.

One of the most commonly used palettes by games seems to be the Cyan/Magenta/White/Black option in either low or high intensity. To my eye, the color combination appears very pale making it an unattractive choice. However, if we switch to mode 5 magenta is changed to either red or light red reducing the paleness a bit. As a bonus, having the light red available provides a better flesh tone for graphics featuring people. Given the 16 RGBi colors, nothing is truly accurate, so most EGA or Tandy games go with light red as the best option. Switching to this palette brings CGA a little closer! Shown below are few samples, starting with Indianna Jones and the Temple of Doom. Not a huge change and you might need to squint a bit for in-game graphics, but I find the light red makes our characters look just a little better...

Indianna Jones and the Temple of Doom
Actual CGA Palette Hypothetical CGA Palette
Indianna Jones and the Temple of Doom actual CGA palette Indianna Jones and the Temple of Doom hypothetical CGA palette
Indianna Jones and the Temple of Doom actual CGA palette Indianna Jones and the Temple of Doom hypothetical CGA palette
Ghostbusters II is a bit of an oddity; overall, it does make good use of different CGA palettes and uses different colors for different scenes. But, for many of the digitized graphics it uses magenta instead of red! The developers were clearly aware of mode 5 colors as the game uses it elsewhere; why they didn't for faces and other scenes is a mystery to me. Here's how the difference would look...
Ghostbusters II
Actual CGA Palette Hypothetical CGA Palette
Ghostbusters II actual CGA palette Ghostbusters II hypothetical CGA palette

Sky Shark in CGA is particularly difficult to play; while at times it's not bad, in other areas the colors and textures make enemy planes and bullets difficult to see since the limited number of colors ends up having the foreground and background clashing. This turns an already tough game into something that's downright frustrating! If we were to switch the colors to palette 0 it would at least make things moderately better aesthetically; I find the earthy green/brown/red colors make for a better jungle. If we really wanted a bonus, a blue background instead of the default black could provide an improved water color where we instead have cyan patterns and, worse, the occasional magenta. Ideally, the game should probably have completely redone the graphics to use a higher contrast theme of some type; instead of automatically trying to (sort of) match the colors of the EGA/Tandy version, intentionally altering important objects (planes, bullets) so they stand out would have helped. Or perhaps have some larger borders around objects to make them clearer. Really, anything that prevented those ocassional cyan planes against a cyan background firing cyan bullets would have been an improvement! But assuming a brand new set of graphics isn't possible, here's how the game looks with low intensity palette 0...

Sky Shark
Actual CGA Palette Hypothetical CGA Palette
Sky Shark actual palette example 1 Sky Shark actual hypothetical example 1
Sky Shark actual palette example 2 Sky Shark actual hypothetical example 2

Operation Wolf supports a wide variety of display hardware; it's one of only a handfull of games that make use of Boca and Paradise EGA card's ability to support the full EGA palette at 320x200 resolution. It also allows CGA owners to choose between black and white or 4 color modes. The 4 color mode, however, defaults to our familiar cyan, white, and magenta palette making it another great candidate for switching to brown, red, green for a more jungle-like appearance! For other games I have here I've just been showing mocked up screenshots where I simply simulate what a different palette selection would look like, however for Operation Wolf you may also notice that I swapped attributes 1 and 2 (cyan/magenta). This allowed the green color in my hypothetical palette to be used for the uniform instead of peoples faces; It's not a perfect color combination, but for faces I think the red/brown combination looks better than the combination used by the actual game. Here's the comparison...

Operation Wolf
Actual CGA Palette Hypothetical CGA Palette
Operation Wolf actual CGA palette example 1 Operation Wolf hypothetical CGA palette example 1
Operation Wolf actual CGA palette example 2 Operation Wolf hypothetical CGA palette example 1
I should also note that Operation Wolf does allow you to select any of the six possible palette combinations by pressing the F4 key; this isn't documented, so it's easy to miss, but if you prefer something other than the default it's possible. Also, unlike my mockups, it does just change the palette without the attribute 1/2 swap giving you blue or green faces. Here's two actual screenshots with different options selected:
Operation Wolf
Alternate CGA Palette Alternate CGA Palette
Operation Wolf alternate palette option 1 Operation Wolf alternate palette option 2

The original Atari 8-bit version of Miner 2049er is quite colorful; aside from the frequent use of horizontal gradients, everytime a new level begins or the player loses a life a new set of colors is chosen for the game screen. The PC version of the game has no hope of matching that with only CGA graphics, however a huge opportunity was missed! Although it does use different colors and dithering patterns for the platforms, overall only one palette was used when instead all six options could have been alternated between to provide a similar color changing effect. A few differing background colors could optionally be thrown is as well to provide even more combinations! There's a huge number of possibilities, so here's just a few combinations showing Miner 2049er with some of these alternate palettes.

Miner 2049er
Actual CGA Palette Hypothetical CGA Palette
Miner 2049er actual CGA palette example 1 Miner 2049er hypothetical CGA palette example 1
Miner 2049er actual CGA palette example 2 Miner 2049er hypothetical CGA palette example 2
Miner 2049er actual CGA palette example 3 Miner 2049er hypothetical CGA palette example 3
I find the mix of palettes and background colors brightens up what is an otherwise dull color combination. Some of the possible combinations aren't useful, of course, as there are either duplicate colors or there isn't enough contrast between colors. There are still plenty of possibilities, however, and if some varied dithering patterns were used the PC version of the game could have really looked much better than it did!

With golf games, using a palette that has blue in the background and green as one of the foreground colors (palette 0 with low or high intensity) seems like a natural choice to me; you get blue water and some earthy colors for grass, trees, and so on. And yet, a few golf games didn't do that. World Tour Golf is a great example that did some odd things with color. It is one of only a handful of games that supported 16 colors, but only on the Tandy 1000 (EGA was 4 color only). With CGA, you were stuck with the common cyan/magenta/white palette. Shown below is how the game would look if we switched this to green/red/brown and chose blue instead of black as the background color. I prefer this over the actual palette, and if the game had taken these colors into account it could have been even better by using the background (blue) for water and the sky instead of the brightest color (white in the actual game, or brown in our alternate palette).

World Tour Golf
Actual CGA Palette Hypothetical CGA Palette
World Tour Golf actual CGA palette example 1 World Tour Golf hypothetical CGA palette example 1
World Tour Golf actual CGA palette example 2 World Tour Golf hypothetical CGA palette example 2
Jack Nicklaus' Unlimited Golf & Course Design is so close, but misses a minor tweak that would have improved things; instead of using a blue background, it goes with black! This gives us black water, and instead of a blue sky a yellow/red dithered pattern is used. The game was optimized for 256 color MCGA/VGA, so CGA was at best an afterthought, however it's too bad they didn't make that minor palette change for everyone who couldn't afford the latest and greatest. A true bonus would have been using the blue for the sky instead of red/yellow. Either the high or low intensity blues could work well, I went with high intensity; take a look at the difference below...
Jack Nicklaus' Unlimited Golf & Course Design
Actual CGA Palette Hypothetical CGA Palette
Jack Nicklaus' Unlimited Golf & Course Design actual CGA palette example 1 Jack Nicklaus' Unlimited Golf & Course Design hypothetical CGA palette example 1
Jack Nicklaus' Unlimited Golf & Course Design actual CGA palette example 2 Jack Nicklaus' Unlimited Golf & Course Design hypothetical CGA palette example 2
With golf decent results could be had with other combinations as well; an option that comes to mind is palette 1 with a green background that can be used for grass and trees while the cyan foreground color makes up the water and sky. CGA may have been limited, but a little creativity could go a long way for sports!

Up next, Arkanoid: this game is a little more abstract; when you're battling space blocks, who knows what the real color should be?! Being realistic isn't a worry, and yet a few palette tweaks could have been nice to give a small hint of being close to the original arcade version. The game is similar to Breakout, however unlike Breakout the arcade version of the game used various geometric patterns for the background instead of solid black. The PC version left these out (probably a wise decision, with the limited colors making the game clear and playable would be tough if they were included). However, each of the original backgrounds was largely monochromatic; using CGA's varied background colors would be nicely reminiscent of the original design while still keeping things simple and clear. The original game used the cyan, white, magenta palette option which I also updated to instead use red to make for a warmer color combination. Here's the results of my tinkering...

Arkanoid
Actual CGA Palette Hypothetical CGA Palette
Arkanoid actual CGA palette example 1 Arkanoid hypthetical CGA palette example 1
Arkanoid actual CGA palette example 2 Arkanoid hypthetical CGA palette example 2
Arkanoid actual CGA palette example 3 Arkanoid hypthetical CGA palette example 3
The EGA and Tandy versions of the game could also have done something similar. Despite having 16 colors at a time possible, they both leave the background black; Adding a solid color to the background would have been a nice improvement while adding little complexity and overhead to the game.

And now for our final game, Boulder Dash. Like Miner 2049er this is one that used varied colors for each level in the original Commodore 64 version. On an IBM PCjr, it did the same; but if all you had was CGA, all levels used our common cyan, white, magenta palette! Switching between different palette choices wouldn't perfectly recreate the original but the changes would have been nice to keep it closer. Any of the six palettes is fair game, so here's two samples showing what is possible...

Boulder Dash
Actual CGA Palette Hypothetical CGA Palette
Boulder Dash actual CGA palette example 1 Boulder Dash hypothetical CGA palette example 1
Boulder Dash actual CGA palette example 2 Boulder Dash hypothetical CGA palette example 1
Besides simply altering the palette for each level, Boulder Dash could have also switched the attributes around for each element to provide even more variety. Too bad a little more effort wasn't put into this port; it's overall pretty good, especially on an IBM PCjr where the system's extra colors and sound capabilities are utilized. Even on an IBM PC with CGA it plays pretty well, but I think some minor changes with the CGA version could have made it even better.

That's all, folks...

No more alternate reality ideas for the day! A number of the games I chose this time around were released later in CGA's life and also featured 16 color graphics with EGA and/or Tandy (and possibly supported MCGA/VGA as well) so making the CGA version look good was probably a low priority. CGA might not have been the most impressive graphics option ever created, but with so many games paying little attention to the palette possibilities it often ends up looking worse than it should have. I intentionally, for the most part, kept the changes limited to simply changing the palette as this would have been a simple programming addition that wouldn't involve the developer expending a huge amount of resources. This article represents a small handfull of games and just one or two potential alternatives; there's certainly more games where better colors could have been used and I'm sure some creative developers could have cooked up even better results than I did; it's too bad so many CGA games didn't make better use of the hardware! And that concludes my alternate CGA universe, part 2. At some point I'd like to do part 3; what if each of the 4 colors was individually selectable? This was a feature the IBM PCjr, Tandy, and pretty much all following graphics standards allowed, but I do wonder what pre-IBM PCjr developers would have done had this been a real opportunity. When time allows, this series will also likely morph into a what if EGA allowed the complete palette to be used in 200 line graphics modes. And meanwhile, back in real life here in the U.S., this pandemic is not getting better. But wherever you may be, hopefully you're healthy and staying safe; So until the next update becomes reality, take care!