For the Tandy Color Computer 3

Montezuma’s Revenge

A CoCo 3 port of the 1984 classic.

Panama Joe is somewhere near the top of Montezuma’s pyramid, with ninety-nine rooms of locked doors, fire pits, vanishing floors and things that bite between him and the bottom. This is a from-scratch 6809 port for the CoCo 3 — free to download, and it runs on real hardware.

The game's title screen: an orange brick room with the Montezuma's Revenge logo in red, credits to Robert Jaeger and Mark Sunshine, and Panama Joe standing on a ledge beside a rope.

Download the disk image montrev.dsk · 157 KB · v0.9 Watch it play

The game

You start at the top of the pyramid and work your way down. Every room hands you some combination of ladders, ropes, fireman’s poles, conveyor belts and floors that blink out from under you, then asks you to cross it without touching a snake, a spider, a rotating skull or a pit of fire.

Keys open doors, and there are only ever three colours of them, so what you unlock first matters. A sword lets you take exactly one creature with you. A torch is the only way to see in the deepest rooms — without one, they are simply dark. Fall out of the bottom of the pyramid and you land in a bonus stage, catching jewels against a countdown, and then the whole pyramid starts again one difficulty higher.

  • 99 rooms across a nine-row pyramid
  • Nine difficulties — start at 1, 2 or 3, and it climbs every time you clear the pyramid
  • Five lives, and an extra one every 10,000 points
  • Three key colours and the doors they open
  • Jewels, amulets, swords and torches to collect
  • Dark rooms you cannot cross without a lit torch
  • Animated fire pits and blinking floors that disappear underfoot
  • Conveyor belts, swinging chains, ropes, poles and ladders
  • Snakes, spiders and skulls that stalk their room
  • Jewel-catch bonus stages under the clock
  • Twelve sound effects, and an attract mode that plays itself
  • A ten-place high-score table, saved back to the disk

Who you will meet

Panama Joe Panama Joe: a small figure in a wide yellow hat and red shirt, mid-stride.
Snake A green snake, coiled at the base with its head raised.
Spider A purple spider, body in the middle and legs splayed to both sides.
Skull A white skull, the kind that rolls along a floor or spins in place.

What you will find

  • A blue key. Blue key
  • A red key. Red key
  • A cyan key. Cyan key
  • A yellow jewel. Jewel
  • A sword with a cyan blade and red hilt.Sword
  • An amulet: an upright cross banded in blue.Amulet
  • A lit torch: a red flame over a blue bracket.Torch
  • A fire pit: red flames licking up from a bed of embers.Fire

See it running

Just over two minutes of play across a handful of rooms, hosted on YouTube.

Screenshots

Click any screenshot to see it full size.

Controls

Walk, and climb ladders, ropes and poles
SPACE Jump. Hold a direction as you jump to leap that way, or to let go of a rope or pole. There is no fire button — if you are carrying a sword it deals with the first creature you walk into.
PPause and resume
QQuit back to BASIC

Joystick

Either joystick works. At the title screen, press K to play on the keyboard, or press the button on whichever stick you want to use. In play, the stick moves Joe and its button jumps.

Starting a game

The title screen asks for your input device first, then for a difficulty: press 1, 2 or 3 and the game begins straight away. Leave it alone for twenty seconds and it shows you the high-score table and a demo instead.

After a game

At GAME OVER, any key or the joystick button carries on. If your score makes the table, type your name with the letter keys, to correct a mistake, and ENTER to save it to the disk.

Getting it running

Download the disk image montrev.dsk · 157 KB · v0.9

What you need

  • A CoCo 3 with 512K. This is not optional — the game uses the whole 512K and will not run on a 128K machine.
  • A disk drive, or an emulator with disk support. VCC, XRoar and MAME all run it; mount the disk image as drive 0.
  • An RGB or composite monitor. The loader has a palette for each, so the colours are right either way.
  • A joystick, if you like. The keyboard is a first-class option, not a fallback.

Loading it

Put the disk in drive 0 and type:

RUN"MONTREV"

Press R or C for RGB or composite — the screen recolours as you press, so you can pick whichever looks right — then ENTER. A loading bar fills while the sprites, tiles and rooms stream into memory, and the title screen follows.

One thing worth knowing: high scores are written back to the disk image, so leave it un-write-protected. If the game cannot write to it you will see SCORES NOT SAVED on the high-score table, and that session's scores are forgotten when you switch off.

About the port

This is not a conversion of anyone else's code. It is a fresh implementation in 6809 assembly, built on a sprite and tile engine written to imitate the Commodore 64's hardware sprites and character tiles. The CoCo 3 has no sprite hardware at all, so the engine has to supply it — and once it behaves like the C64's, other games of that era get a good deal easier to bring across.

Underneath, it runs in the GIME's 320×200 sixteen-colour mode with two screen buffers and a dirty-cell renderer, so only the parts of a room that actually changed get redrawn. Joe's movement and your input are sampled sixty times a second, while rendering and the creatures' logic run on a slower cadence spread across three frames. The ROMs are switched out at startup and all 512K is banked in and out through the MMU as sprites, tiles, room data and save buffers are needed.

Rooms are stored as bytecode rather than as bitmaps, the palette is chosen at load time from two hand-tuned sets, and the sound engine drives twelve effects. It has been tested on real hardware throughout, not only in emulation.

Every sprite and glyph on this page was extracted from the game's own source rather than drawn again: the tiles are its 4-bit pixel data, the sprites come from running its draw routines, and the colours are the real palette values the GIME is handed.