Saturday, 11 January 2014

The Pharaoh's Tomb

Last year I worked on a game called "Penguino" for the Retrospectiva 2012 Basic programming competition.  That game used a basic 4 X 4 character matrix for each of the "sprite" characters in the game.  In the case of Penguino this was 5 or 6 "Snow Bee" blobs and the main character.  I was able to get quite a bit of speed for the animation of all those characters and this got me thinking, perhaps, with a slightly smaller number of characters I could also include some animation of the characters themselves.  All I needed was a premise.  The main point of my retrocomuting hobby is to fill out the software complement of my favourite little orphan 8-bit micro, the TRS-80 MC-10, so I'm always thinking about the classic arcade games that I played as a kid.  One game I remembered playing was called Tut's Tomb, or Tutankahmen, or something like that.

It involves an archaeologist character loosely based on "Indiana Jones" venturing into an Egyptian tomb in search of treasure.  He has to avoid all the nasties that he meets there including bats and snakes and mummies.  The distinctive feature that I remember most about the game was that your character could only fire on the horizontal.  This meant the game required some strategy and timing when taking on the baddies.  I thought this might also simplify some of the problems of making a game in Basic, as I would only have to work out firing on the horizontal.  I had also made a Q-Bert game, in which I had included a snake character, so I thought it would be easy to make an animated snake.  I also had used a fly in my Frogger game, which with a little tweaking, would make a nice bat.
So I had my premise.  Now I just needed the code.  It took quite a bit of work to get the animation fast enough on the MC-10, but I think I have the workings of a game with an animated bat, snake and shuffling mummy.  Unlike Penguino, this game has 12 pre-made mazes.  Each maze presents different challenges.  To up the ante, there is a time limit as your "air" runs out. 

The Coco version ( really flies with the double speed poke, although the Dragon version was a little sticky in its key input until Zephyr helped me out with a "speed keys" routine for that computer (  I have to admit that another inspiration for the game was seeing a game called "Pyramid" for the NEC PC-6001 32K.  I was exploring the NEC PC because it also uses the Motorola 6847 VDG graphic chip.  I was hoping to find inspiration for some games, or possibly even some code for porting.  One of the things I found was a YouTube video for Pyramid.

I also have made some other discoveries for programs to port to the MC-10 (and the Coco and Dragon). One of these is NukeWar.  Although I found graphic images for games, I found it impossible to get at the original code for the NEC PC version.  I just can't navigate the language barrier to get a working emulator, and no one is simply posting the code directly on-line.  However, once I saw the images, it did make me aware of games that could possibly be ported to the screen size of the MC-10.  One of these was the Avalon Hill simulation NukeWar, which I stumbled across a NEC PC image for.
Then I simply had to find a TRS-80 Model 1/3 version of the code.  The screen re-sizing work has been simplified because I have the NEC PC image to help me figure out how to do it.  Notice the Japanese characters being generated by the VDG.  The NEC PC takes advantage of the hardware character re-definition abilities of the chip, which, unfortunately, were not enabled in the MC-10, Coco or Dragon.  It's neat to learn about all these interconnections between machines from the early 1980's.  That's part of the charm of the retrocomputing hobby!


  1. Wonderful Design Blogs, Such a great list. Thanks for sharing all these blogs all are very useful to every one.

    Nec phone system Mississauga