H.E.R.O.
HOVERJET EMERGENCY RESCUE OPERATION

Genre: Arcade      Created: September 2024      Language: BASIC     System: Tandy Color Computer 1,2,3  32K RAM,Disk


 My SepTandy 2024  project




The Discovery

A few months ago, L.Curtis Boyle made an interesting discovery that allowed the programmer to utilize several of Extended Color Basic's graphics commands to operate with the Semigraphics modes on all CoCo models. I was particularly interested in the ability to use the GET and PUT commands to move graphics on the screen. These commands are designed to use the standard PMODE graphics modes but by forcing  the activation of a Semigraphics mode without BASIC being aware, some of these commands still operate but with a few changed caveats.

The benefit of being able to use a Semigraphics mode is the ability to display 8 color graphics on a black background and border, all under the control from BASIC.

Click HERE to go to an
episode of  The CoCo Nation's CoCoTech #006 and view a video presentation of this  new  technique.


The Challenge

This capability has been available on the CoCo since 1980 when the CoCo was first released with Extended Color Basic but no one was aware of it. This got me excited and I began thinking of creating a short demonstration to show off this new capability.

Can an arcade game be created that uses this capabilty with no additional machine language subroutines or compilation, only running in standard interpreted BASIC?

A CoCo1 and 2 runs at 0.89 Mhz and this could be a bit slow running a complete game. Switching to the higher clock speed can increase the speed to 1.79 Mhz for the code executing from ROM (the BASIC interpreter itself) but the CoCo drops back to 0.89 Mhz when accessing RAM (the BASIC code and display). On a CoCo3 though, it can maintain 1.79 Mhz all the time.

Of course, if you have an accelerated CoCo such as a CoCo3 with the Ed Snider/Gary Becker GIME-X upgrade, you can run at 2.86 Mhz which is great.

There is also the VCC emulator which lets you set the CPU clock rate to 2.682 Mhz which is almost the same as the GIME-X high speed but for some real fun, you can even set it to 3.576 Mhz that makes the game fly!


Feature Creep

The "short demo" I had originally envisioned blew up and transformed into a major game project. Pressure from various people who kept "egging me on", the upcoming SepTandy month and the fact that "I have a problem" has driven me to treat this BASIC demo game as a full game.

Using the brilliant game of H.E.R.O. on the Atari 2600 by John Van Ryzin, I set out to make a version of this game for the CoCo 1,2,3 programmed entirely in standard Extended Color Basic as came with the CoCo in ROM... no hybrid extra machine language subroutines, no compiling to machine code... just raw BASIC.

The original game was brilliant for the fact it was a game running on a game console created in 1977 that only had 128 bytes of RAM and no actual video display page! It came on an 8K ROM cartridge and featured great sound effects, flicker free colorful graphics and a game that seemed quit complex for such a basic game console originally designed to play games such as Pong and Combat (Tank Battle) from the arcade.

In that spirit, I thought that recreating this game with a similar "handicap" would be fun and gives me a project for this year's SepTandy month.


Can I do it? ... Yes I can!

I have tried to incorporate most of the original game's features but have ommitted a few things in order to make the game run as fast as I could and as best that I could within the performance capability of interpreted BASIC. This game has been recreated on so many other systems using machine language or running on higher spec hardware giving them a huge speed advantage.

For me, it was a challenge to see if an arcade game could be created using the semigraphics mode (SG12) totally in interpretive BASIC. That makes this version unique to all the others.


The Result

Using the graphic commands of GET and PUT definately makes handling the Semigraphics faster, easier and cleaner. The animations are cleaner and look professional but BASIC is inheritantly slow compared to Machine Language. If you choose or design a suitable game that isn't too speed demanding, good results can be had.

H.E.R.O. is probably an ambitious choice to recreate in BASIC due to the speed especially on a CoCo1 & 2 but  on a CoCo3 it's passable. A GIME-X equipped CoCo3 or using the VCC emulator at 2.682 Mhz is best

.
Are there any Bugs?

Of course not! I don't have bugs!

[Off the record] Yes. There will be the occassional graphical glitch appearing on the screen. The collision detection can miss a Magma Wall (magenta) depending on what part of your character hits them. And there are others but nothing severe enough to stop the game.

These are all fixable but for every extra piece of code I add in to fix it, the price I pay is a slow down of the game especially if they are in speed critical areas. It's a balancing act.


Free Download

You can download the game for free and try it yourself. There are 2 versions of the program on the disk.

HERO.BAS is the play copy of the game with the REM lines removed and renumbered in line increments of one, to help speed up the game execution.

HERO-SRC.BAS is the development copy of the game with the REM lines labeling the sections of code and the lines numbered by intervals of 10.

People are welcome to optimize the code if extra performance can be achieved to speed up the game. One thing that I may do at a later date is allow it to run in the 6309 native mode if it finds that CPU installed.

WARNING: My code will look like spagetti code and be very hard to follow. It wasn't meant to look elegant, structured or be easy to read. I was going for speed as best that I could achieve.



UPDATE! VERSION 1.1

I have done an update of H.E.R.O. to Version 1.1. This includes a few "irregularities" fixed (ok...bugs!) and a small speedup that switches a 6309 CPU (if installed) into native mode. This had to be done by adding a small M/L subroutine that could be called. This offers a small speed increase in the execution of BASIC on any CoCo that has a 6309 CPU installed. The problem with it though is that BASIC will hang if it tries to do any disk I/O or play a sound using the PLAY or SOUND commands. I therefore need to turn off 6309 native mode before BASIC tries executing the commands.

I also drop the CPU speed back down to the slow 0.89 Mhz speed during these commands to avoid disk errors or audio pitch increased and then return to high when done. Messy but in the end, a slight speed boost.
 
CLICK HERE
TO DOWNLOAD BOTH VERSIONS 1.0 & 1.1





HOW TO PLAY

Volcanic activity has trapped 20 miners in the mineshafts of a mine. Using special equipment you must rescue each miner from deep in the mine.
  • You start with 4 life reserves and can acquire extra life reserves (up to a maximum of 6) for every 7,000 points earned. Game ends when all life reserves are depleted.
  • At the start of each level, you also have your power reserve filled up. Power is consumed when you are off the ground and when you use your helmet mounted micro-laser.

  • You begin each level with 6 sticks of Dynamite. Place a stick of Dynamite at the foot of destructible rock and move back from the blast so you don't lose a life. A solid RED or MAGENTA rock wall cannot be demolished but the porous walls can. Do not walk into either of the MAGENTA  rocks as this is hot volcanic magma that can kill you.
  • If you have used up all your Dynamite but require a rock removed to make passage, you can destroy it with your laser. Keep firing your laser at the rock and it will eventually burn down but this will use a lot of your fuel.

  • In many of the mine passages, you will see lanterns used to light the way. If you bump into any of these, the light will go out and you will have to navigate that room in the dark. The creatures in the mine and hot Magma walls glow in the dark. You can explode a Dynamite that will temporarily illuminate the passages with the blast.
  • Beware of moving Magma walls. Time yourself to pass through these when the walls open.
  • Lava Rivers will harm you if you step into them. You must carefully fly over them or if available, ride a heat resistant Raft which will take you to the other side.


Level 01 - Cavern 01


Rescue Equipment
  • Hoverjet-pack................................... Allows you to fly within the mine to move between areas.
  • Microlaser beam............................. A helmet mounted laser for killing dangerous creatures and can blast rock.
  • Dynamite.......................................... Used to demolish certain rock barriers.
  • Raft...............................,,,.................... A heat resistant Raft for travelling over Lava Rivers.

Controls
  • FLY up............................................ Up arrow key. When you release the key, you will remain in hover mode.
  • WALK or FLY left or right......... Left or right arrow keys. Also turns off hover mode.
  • FLY down a shaft......................... Step off a ledge and gravity does the rest. Press Down arrow to go slightly faster.
  • Drop BOMB...................................  Stand next to destructable rock and press SPACE. Move away before blast occurs.

Scoring
  • Shoot a critter................................................................................... 50 points
  • Each remaining unit of power after a rescue........................... 10 points
  • Each remaining dynamite after a rescue................................... 50 points
  • Dynamite a destructible rock barrier......................................... 75 points
  • Rescue Miner......................................................................................1000 points
  • Extra life reserve awarded............................................................ Every 7000 points





Buck Owens levels 1-14 playthrough running on VCC at 6.258 Mhz

PREVIOUS PROJECT

BACK TO HOME PAGE

NEXT PROJECT