Doom on CGA (4-color and composite/colorburst mode) and EGA
Bisqwit Bisqwit
147K subscribers
37,933 views
356

 Published On Jan 20, 2011

This video illustrates running the PC game Doom on the CGA* display.
See also part 2 (CGA monochrome, EGA hires and the NES) at:    • Doom on CGA (monochrome), 16-color EG...  

The CGA, as featured on original PCs, is capable of two graphical display modes:
320x200 4-color mode and a 640x200 monochrome mode. This page lists all the details of how the colors can be selected in those modes: http://en.wikipedia.org/wiki/List_of_...

The different display modes featured in this video are listed below. The first three of them are the same as QBASIC's SCREEN 1, but with different palette selections:
-- 1: CGA palette 0 in Low intensity setting: Black, Red, Green, Yellow.
-- 2: CGA palette 1 in Low intensity setting: Black, Cyan, Magenta, White. (Almost as useful as monochrome!)
-- 3: CGA palette 2 in Low intensity setting and Background color changed: BLUE, Cyan, Red, White.
-- 4: CGA monochrome 640x200 mode (QBASIC's SCREEN 2) on Composite Color Display. All colors are colorburst artifacts arising from deliberately chosen monochrome pixel patterns, yielding a color resolution of 160x200. The rendering algorithm was copied from DOSBox-0.74; I don't know whether it is accurate or not.
-- 5: EGA 320x200 16-color mode (QBASIC's SCREEN 7). Provided for comparison.
-- 6: 16 arbitrarily chosen colors (with NeuQuant algorithm, sadly it seemed to neglect blue tones completely).

Range-compensated = Input colors were linearly scaled from the 00..FFh range to a 00..AAh range to better match the range of normal-intensity CGA palette. The proportion of black in the scene also increases as a side effect.
Artificially colored = Means nothing. During the production I tried to tone dark input colors towards blue to better utilize the palette features, but as I developed the color comparison function further, I found this step unnecessary.

Or rather, it is a recording of shareware Doom being played on VGA mode 13h earlier, that I postprocessed to conform to the hardware constraints of the CGA. It contains the same video clip six times, rendered with different color features. It is NOT a palette hack on 256-color Doom; no extra WADs or TSRs were loaded.

All the colorization, quantization and dithering was done with animmerger, https://bisqwit.iki.fi/source/animmer...
I used positional dithering, because it is very well suited for animation, and because I like its appearance. Non-positional error-diffusion dithering methods, such as floyd-steinberg, produce massive amounts of jittering garbage.

P.S. I think Doom's sound effects, especially the monster sounds, are awesome.

Here is the explanation of new the original dithering algorithm that I use in this video: https://bisqwit.iki.fi/story/howto/di...

show more

Share/Embed