MAYAN ADVENTURE
How To Make SuperGames for the ADAM or ColecoVision

Trapped! While exploring the depths of an ancient Mayan temple, you've become trapped. It all began as a field trip. You had studied Mayan culture, had saved up for a trip, so that you could see the ancient stone monuments in person.

When you arrived in the jungle, your guide lead you to the temple. The text carved into the exterior walls were covered with growth and vines. It is was a simple matter of brandishing a machete. A few hacks and the vines fell away revealing the markings. After examining the markings, you decided to make a rubbing of the message in your notebook. While rubbing over the markings, you pressed a hidden trigger. The trigger opened a trap door under your feet.

Now you are alone in the depth of a maze. With only a torch, machete and your wits. The trap door dumped you unceremoniously in the maze and then resealed. Thinking back you recall that Mayan architects traditionally made balanced rock mechanisms, which would be impossible to reopen. Nothing left now but to solve the dangerous maze ahead.

The adventure awaits...

What You Need

To play the "game" (more a demo of how the game would work if it did): To look at or work with the source, download: If you need a good DOS or Unix based cross assembler (x86 hosted Z80 assembler):
  • zmac.zip Z80 assembler (33k) which comes from Thomas Scherrer's Z80 Family Support Page
Under Windows, you'll need some Unix like tools, like gcc (C compiler), bison (or yacc) and make. Under Linux or other Unicies all of these are normally installed. If not ask your System Administrator (or install them if that's you). Under Windows install the following package, which is your Unix away from Unix. Not that this is a local mirror. The official site is http://sources.redhat.com and look for Cygwin.

What to do with it

First Try It

It is a SuperGame tape image. SuperGames can be almost any length. If you plan to put it on a tape, then the largest you can make is 320k (256k on standard tapes). Often, SuperGames are 128k or less.

To atart the game, you have 3 choices:

  1. Simply download it to your Adam using AdamLink V as a tape image. Reboot, and Voila.
  2. Using the Adam emulator (look at the AdamEm Distribution Site) there are two ways. If the game.img file is in: C:\downloads\game.img, then either:
    1. Start up AdamEmMam, and find the Tape A image entry field, click the "..." button to the right of the field. Select the file in the file dialog. If you are better at typing, highlight the entry field. Type the path to the game.
    2. From an MSDOS prompt (or a shell prompt), cd to the AdamEm directory. Then type:
      adamem -tapea c:\downloads\game.img

How to Play

So now that you have it launched, you can play the game. This version does not have points that you can score, and you can't die. You also can't finish the game or get bonuses. This version is just a simple example of how to start developing a game in assembly language.

The game has 3 screens so far. Screen 1 is loaded from the first 1k of the tape image. It puts up a drab start screen. For a full game that would be enhanced. While that screen is displayed the main portion of the game is loaded. Once that is done (on the emulator very quickly), the level selection screen is displayed. Choose any level. It is recored and ignored for now. Use the joystick keypad. On the emulator, hit 'F9' to enter joystick mode then hit one of the keys from '1' to '8'. Finally the third screen is the game. n a normal game there would also be a "Get ready player 1" screen between levels.

Here are the level's controls so far:

  • use the joystick to move about the maze (you can go up, down, left or right).
  • hold down the fire (left button) plus move the joystick to scroll the view of the maze.
For a game for yourself, there are two special squares. One black (your starting point), and one is filed with green (the "end point"). Try to get from one to the other, and back. "Some fun, huh Bambi?"

Look at the Source

The source is in a ZIP file. You need an unzip utility such as PKZIP, WinZip or my favorites Info ZIP or FreeZip. For Windows look at Tu Cows, which is a great source of tools of all sorts. For Unix look for Info ZIP. Maybe try searching on Yahoo or on Linuxberg. If you have trouble with all of the lines running into each other with Notepad, try the DOS edit program on the files first. When you save them out again, it will add DOS style <CR> <LF> to replace the Unix style <LF> line breaks in the file.

Once you've extracted the source, there are .Z80 assembler files:

  • bootload.z80 -- the boot loader routine
  • main.z80 -- the main line and skeleton
Support files with libraries of definitions or subroutines:
  • eosbase.z -- EOS routines for basic EOS related work
  • eoslib.z -- EOS entry points for the boot program
  • os7def.z -- OS7 game OS entry points
  • datatable.z -- Global data table constants
  • dcompres.z -- decompression for compressed data
  • data.z -- data table with static data
  • status.z -- display the game progress
  • showmaize.z -- does all of the game area display work
  • maize.c -- A C source file that compiles to an executable that creates the maize.z compressed data for imagery.
A planning file that describes how the files work. And of course a Makefile to allow you to rebuild the game.img file.

Compile the Source

To compile your own copy, install the assembler, gcc or Cygwin compiler, start up a bash shell, cd to the proper directory and type make. Some commands will scroll by, and with and luck you will be all set.

The Joy of Discovery

Not all of the aspects of programming games for the Coleco Adam are documented here. There is more information in the planning file, but some things were deliberately left out to allow you to experience "the Joy of Discovery" as Colecovision games always put it. Send me feedback on your experiences at: dmwick@home.com.


This page revised Jan 7, 2000