Sunday, July 17, 2016

Yet another 16-color CGA makeover: Keen 5

After giving Keen 4's CGA version a 16-color composite overhaul, I figured I'd have a go at the next episode, since the code has nearly everything in common with Keen 4, and the composite enhancements detailed in my previous post could be applied without too many essential changes (other than different offsets/addresses, of course).  Let's strap this one to the rack then:




As before, the distribution is a runtime in-memory patch (using CK5PATCH) and you'll need the original KEEN5 CGA files (v1.4 Apogee release).  If you're hardcore enough to go the real hardware route, you'll also need DOS 3.3+, a true blue IBM CGA card (early/'old'-style is best), and a composite monitor/TV.




Naturally, the graphics data for the game had to be completely reworked here too.  Compared to episode 4 this was interestingly different: Keen 4 has a mostly organic-looking, earthy style to its environments, with plenty of curved or irregular shapes and large details; Keen 5 goes for the 'tech' look, with straighter lines and lots of small elaborate mechanistic decor.  Given the limitations of composite video, both were artistically challenging to rework, though in rather different ways.

The only real 'new' piece of code this time is the palette animation for the game over screen; the EGA version messes with the galaxy colors before the particle explosion (which, BTW, is a slideshow on a real XT!), but the vanilla CGA version settles for a boring static image.  The CGA code didn't helpfully hold my hand this time either, since I had no stubs / calls to blank leftover functions to work with, like I had with the fades.

In the end I rolled my own routine, which only kinda-sorta mimics its EGA counterpart visually (EGA can alter individual color registers, while composite CGA in mode 6 may only modify the foreground color, which in turn changes the entire set of 16 artifact colors).  On the other hand, I guess it's pretty neat that these color changes can still be tailored to make *parts* of a particular image disappear/reappear, instead of having a uniform fade.


No comments: