* * * * *

              Sometimes, you just gotta go back to the 8-bit era

> In the pages that will follow, I will be documenting the various stages in
> the design of a new arcade game that I hope to create for my classic Tandy
> Color Computer 3 sold internationally by the Radio Shack Corporation during
> the 80's and early 90's. This game will largely be created the old school
> way utilizing as much as possible the same setup that I used to develop
> games back then.
>

“[PopStar Pilot] [1]”

As a teenager with a computer during the 80s I always had the idea of writing
a computer game in the back of my mind, but I never did know how to write
one. It perhaps didn't help that I had a Tandy Color Computer [2] at the
time. I know, it's a bad craftsman that blames his tools, but in this case, I
think there's something to it. The Color Computer had no hardware graphics
[3] to speak of (the Color Computer 3 [4] did, but I had moved on to the PC
(Personal Computer) world by the time it came out) so it was up to the
programming to do all the bit shifting, masking and drawing which isn't as
easy as it sounds (or rather, making it fast isn't that easy).

I never did write a game.

But it is a simple computer. Unlike modern systems [5], the entire computer
is documented in a 70-page book [6] and games were written for it. So feeling
a bit nostalgic, I fired up an emulator (I'm nostalgic, not masochistic) and
spent a few hours getting a simple graphic program going.

[The UFOs are coming to take me away! Aaaaaah!] [7]


Yeah, not that easy. That running man? (bonus points if you recognize where
he comes from) There're eight images in the animation, and each image is
repeated four times, each one shifted right one pixel to avoid having to do a
massive amount of shifting at runtime (it's a classic “memory vs. time”
tradeoff here). Then I had to align the images so it looks smooth (image one,
then image two shifted right one pixel, then image three shifted right two
pixels, then image four shifted right three pixels and that takes us through
a full byte of pixels) which complicated the animation loop since it ends
with image one shifted one pixel to the right, which has to carry over to the
next loop (image one shifted right one pixel, then image two shifted right
two pixels, then image three shifted right three pixels, then image four not
shifted but starting one byte over, etc).

That's not to mention that I had to draw the running man over the background
image which requires merging the image data of the man with the background
image. And to avoid really weird drawing artifacts, I used a double-buffer
method (show one frame while drawing into a non-visible frame, then show the
updated frame and use the previous frame to draw and repeat).

It was fun though. I don't think this will end up as a game any time soon,
but it was nice to work on a computer that is so easily comprehensible by one
person and where hitting the hardware is very easy to do (I think the last
time I programmed to the hardware was in the mid-90s). I think my nostalgia
has been sated for now.

[1] http://www.members.optusnet.com.au/nickma/PopstarPilot/
[2] http://en.wikipedia.org/wiki/TRS-80_Color_Computer
[3] http://prog21.dadgum.com/173.html
[4] http://users.axess.com/twilight/sock/
[5] http://prog21.dadgum.com/129.html
[6] https://archive.org/details/Trs-
[7] gopher://gopher.conman.org/IPhlog:2015/05/23/UFO.png

Email author at [email protected]