SAM Defender was programmed back in the summer of 1998. The project took about four months from start to finish. The initial goal was to write an accurate version of the Williams classic for the SAM.
The SAM version contains faithful reproductions of the original arcade machine graphics, even down to the planet surface which is almost a pixel-by-pixel reproduction of the original. The original arcade machine has a slightly taller vertical screen resolution, so the SAM landscape is ‘squashed’ a little. However, the contours remain exact.
The font used in the SAM version is an exact reproduction of the original, as are the pulsing palette colours. However, some colour resolution was lost due to the original having a palette of 256 colours opposed to the SAM’s 128.
The movement and actions of the various enemies are also faithful to the original, as is the overall game speed.
Perhaps the most disappointing part of the SAM version is the sound effects. The original arcade machine had a 6809 CPU for the game program and a separate 6808 CPU (with its own ROM/RAM) for the sound effects. This separate sound board also had a DAC to produce some amazing sounds. Sadly, the SAM’s old SAA just doesn’t cut it. It is possible to get the SAA to play samples, so the original arcade machine sounds could have been reproduced. However, the poor old Z80B would have been seriously overloaded trying to cope with the game AND the samples! I’ve tried to get the main sound effects as close to the original as I could, the player laser is almost exact. However, some of the more exotic sounds have been improvised. I’ve tried to keep the actions and priorities of the sounds the same as the original. The original could only play one sound at a time, sounds having priorities. I’ve tried to simulate this.
Performance wise the SAM version is on par with the original, which isn’t bad when you consider the original doesn’t have to worry about generating sound effects!
SAM DEFENDER was due to be published be Persona. This is why the game still contains its Persona references.
Sadly, Malcolm Mackenzie (the boss of Persona) died back in February 1999. At the time, the software business and the SAM Coupé would have been far from his families mind. Persona was left in limbo and the enthusiastic David Ledbury left out on a limb. David was the person who encouraged me to get back into Z80 programming after an absence of some years. He even bought a SAM for me to develop on. David’s enthusiasm for the SAM Coupé remained strong until very recently.
I never had any written contract with Persona, so SAM DEFENDER’S rights have always remained mine. However, even though I was all for releasing the game as freeware I felt it morally wrong to do so until I knew where Persona was heading.
David Ledbury’s sudden leaving of the SAM scene left me in limbo! I e-mailed David telling him about my intentions with regards to releasing SAM DEFENDER and he didn’t object. It’s very sad that someone with David’s enthusiasm towards a dead machine has felt it necessary to leave the scene. However, it’s his decision and I’m not one for politics!
I’ve updated SAM Defender!
Well, basically I did all of the things I should have done back in ‘98. Things that have been annoying me for years!
Below are a list of the things changed, plus any new features and also a link to where you can get this - finally (probably!) final - version!
List of things changed to match the arcade coin-op:
- Hyperspace is now a 25% chance of death on re-entry - was 50% before.
- Homing enemies do not home to the hyperspace re-entry position - they did before!
- Landers appear in groups of five, as they always have. When you shoot the last Lander in the current world state, the next available group is warped in immediately. Before, you could have an empty world while the counters for the next group timed-out. So, now its never an empty world! :-)
- Climbing Landers that once carried a humanoid (which you’ve now shot!) that reach the top of the screen will now warp in at a random world X position. Before, they would warp in at the same world X position they disappeared at.
- Hunting Landers will now pick a new humanoid target if their current target gets captured or destroyed. Before, if their target vanished they would hunt blindly over potential victims and never pick them up… Total pants!
- Humanoids are now scattered randomly over the planet surface. Before, they were put at a uniformed distance apart - depending on the number of humanoids in the world.
- Enemy shots now have a little randomness to their ultimate destination. Before, every shot was deadly accurate to the player’s ship.
- Swarmers - their logic has received a major overhaul. Before, they fired in any direction using the same shot-logic as the rest of the enemies. They also flew around the player like a swarm of bees. This was bollocks - nowhere near the same as the coin-op original, and something that’s annoyed me for years! The coin-op Swarmers will only fire when they are flying toward the player - they also use a different shot style and sound. This means you can let Swarmers fly past you, quickly turn and chase them in the knowledge that they won’t fire at you - providing you keep close to them. They only change direction when they go beyond a certain distance from the player. In SAM Defender it wasn’t possible to use this chasing “trick”… But it is now - as Swarmers now mimic the coin-op. :-)
- Upon player death all screen contents are preserved - including any warping enemies and explosion fragments. Before, all fragments and warpers were erased due to the way their engines worked. Not good - and not like the coin-op! Fixed! :-)
- Baiters and Mutants now mimic the coin-op more closely - slight changes to their logic.
- Background stars now twinkle faster - a closer match to the coin-op’s twinkle speed.
- Some sound priorities rearranged, to closer match the coin-op. Even though the sound is still shite! ;-)
List of (internal) things changed from the last version:
- Faster and more random random number generator.
- Faster processing of the linked-list used to handle the world entities.
- Optimisations of the sprite engines and scanner dots engine.
- Cleaner final stage to the merging “Defender” logo on the attract mode. No empty block!
- Coin-op timing for the appearance/disappearance of the “500” sprite during attract mode.
- General removal of redundant code - such as…
- Removal of light-pen detection code. I doubt this was needed - how many had a light pen!
- High-score table is now 8-slots, and contains the same initials and scores as the coin-op.
List of things removed from the last version:
As both of these were seen once only - at initial game boot-up - their code and data have been removed, saving around 8k on the final program size!
List of things added to this version:
- Coin-op style “rug” test-pattern during initial game boot-up! As per coin-op power on!
- Coin-op style “INITIAL TESTS INDICATE UNIT OK” message! As per coin-op power on!
- An “ALL TIME GREATEST” high-score table! As per coin-op.
- Saving of the “ALL TIME GREATEST” scores to non-volatile RAM if you have Edwin Blink’s Dallas real-time clock interface. The coin-op saved the “ALL TIME” scores to NVRAM.
- Saving of your control key choices to NVRAM too.
See the “readme.txt” file in the Defender .ZIP for information about SAM Defender’s NVRAM saving capabilities.
So, there you go! Some improvements and changes I’ve been meaning to do for years!
Here’s a quick way to tell which version you have:
- Rotating RED “Digital Reality” logo = the original 1998 release, complete with bugs!
- Rotating GREEN “Digital Reality” logo = improved version, released around 2001.
- No “Persona” or “Digital Reality” logos - instead, replaced by a coin-op style “rug” test is the very latest version. Much improved, optimised and closer to the coin-op.
As ever, with major changes, there could be bugs! :-O So, please let me know if anyone finds anything they think shouldn’t be happening!
Finally, have fun!
Anytime during the front-end/attract screens the following keys apply:
1 … Starts a ONE player game.
2 … Starts a TWO player game.
K … Allows you to re-define the main game controls.
DEFAULT GAME CONTROLS:
Q ……. UP
A ……. DOWN
O ……. THRUST
P ……. REVERSE
K ……. FIRE LASER
H ……. HYPERSPACE (Zap to a random point in the world)
SPACE … SMARTBOMB (Kills all enemies on-screen)
ESC ….. ABORT GAME
F9 …… PAUSE GAME
There’s a 25% chance of death on re-entry from hyperspace, so only use it if you have to!
You start the game with 3 lives and 3 smartbombs. An extra life and smartbomb are awarded every 10,000 points.
Basically shoot everything that moves! Except for the humanoids walking along the planet surface, it’s your job to protect them!
If a Lander captures a humanoid you can release its victim by shooting the Lander.
On shooting the Lander the humanoid begins its fall to the planet surface. Don’t let it fall too far - or it will die on impact!
You catch falling humanoid’s by flying into them. 500 points are given for each catch, a further 500 points are awarded for each humanoid you place back on the planet surface. Falling humanoids will survive impact providing they don’t fall too far. A 250 point bonus is awarded for surviving fallers. Beware, you can also shoot your humanoids - this isn’t generally a good idea!
There are no limits to the amount of humanoids you can carry at a given time.
If all the humanoids die the planet explodes, throwing you out into space. Don’t worry, the planet and its population regenerate every five waves… Assuming you survive that long!