[Coco] Converting from coco 1 / 2 artifact graphics to color coco 3

Steve Bjork 6809er at bjork-huffman.net
Sun Mar 18 10:35:29 EDT 2007


At 02:03 AM 3/18/2007, you wrote:
>Hi all,
>
>What's normally involved in converting a game that runs using 
>artifact graphics for coco 1 / 2 into a game that runs using 
>16-color coco 3 graphics modes? I've seen it done with a few games, 
>and I'm curious as to what the process would involve.
>There's quite a few interesting games out there that run in 
>fake-colour mode, and such colour modes aren't available here in 
>Australia (due to using the PAL system).. all we get is muddy grey 
>and some freaky pinks and greens occasionally :)
>Anyone actually done such a conversion?
>--
>Kind Regards,David Roper

Believe it or not, I've done one of these conversions in one of my 
last CoCo projects.  The creation of Z-89, a CoCo 3 version of Zaxxon 
is a good case study of the problems involved in moving from 4 color 
NTSC to a 16 color graphics mode.

First, let us talk about why this graphics mode that was so popular 
with programmers in the States.

1) This mode creates the only black, blue, red and white palette 
sets.  Very important for the type of games being created back in the 
80's.  (Mostly space games.)

2) While being 4 color, it was twice the dot resolution of the 
standard 4-color mode of the graphic system.  This makes the images 
in the games less blocky than the other standard 4-color modes with 
128 dots per line.

Now on to what's involved in the conversion.

A typical CoCo 1 game used a two color, 256 by 192 screen with a 
memory size of 6,144 bytes of ram.  In most games (like my Zaxxon), 
we switch between two screens, viewing one while create the game 
image on the other. Because of this, we double the memory needed for 
screen memory.

That's 12,288 bytes of our 32k of system memory already gone. Most of 
the other 20k or so of ram is used to hold the graphics data and run 
time game information.  (The actual code to most CoCo games was only 
a few thousand bytes, if that)

Let's plug in the requirements of a CoCo 3 running in a 16 color 256 
by 192 graphics mode.  Right off the bat, we jump in screen memory 
size from 6,144 to 24,576, a increase of a factor of four.  Add in 
the effect of paging the screens and now we are using over 49,000 
bytes just to hold the display screens!

But that's not all that gets larger.  The images used in the game 
also go up by a factor of four.  In the case of Zaxxon, the graphics 
data also jump from about 15k to over 60k.

While it is true the CoCo 3 has extra memory and switching hardware 
to handle it, you will need to patch the game code to "teach it" on 
how to use it.  No small task by any means.

But it goes from bad to worst with the last problem in the 
conversion, the speed.  Doing this extra work takes time does take 
time.  Wait a minute, the CoCo 3 can run twice as fast, 
right?  Surely that extra speed could handle it the extra work?  Well 
the short answer is no.

Remember, we did not increase the screen memory size by factor of 
two, but by four.  While the CoCo 3 can work twice as hard, the game 
will still runs twice as slow.

How did I overcome this speed problem with Z-89?  The six years 
between the projects I did learn a thing or two about writing fast 
graphics code, but I also cheated too. The first cheat was to use a 
256 by 192 screen, forgoing the mach larger 320 by 200 screen mode of 
the CoCo3.  The second cheat was to keep the part of the screen got 
update every frame as small as possible.  This "Graphics Window" was 
used on a few other CoCo 3 projects like Super Pitfall and Mine 
Rescue when the whole screen need to be updated every game frame 
because of scrolling.  (Since Rampage and Arkanoid did not scroll, we 
could used a 320 by 224 mode without slowing down the game.)

As you know, many CoCo games have a "PAL" mode.  (This became a 
requirement of Tandy once they started to sell the CoCo 
overseas.)  You should be able to change the palettes used in the 
four color 128 dot "PAL" mode version of the game before you run it.

The only other hope is to have someone completely re-write the game 
like I did with Zaxxon and Z-89.

Steve "6809er" Bjork

Please visit my new CoCo website at: http://coco.etechwds.com
Thanks to L. Curtis Boyle (at:http://nitros9.lcurtisboyle.com) for 
the use of his game photos and helping to fill in my CoCo memory gaps.


-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.13/725 - Release Date: 3/17/2007 12:33 PM





More information about the Coco mailing list