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
|
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.
|
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
| |