| 16-Aug-04 |

Atari XL/XE Space Harrier Conversion Project

| Home | Diary | Movies | Download | FAQ |

| Latest | Feb-09 | Mar-08 | Mar-07 | Aug-06 | May-05 | Feb-05 | Oct-04 | Aug-04 |
| Dec-03 | Jul-03 | Mar-03 | Jan-03 | Dec-02 | Jun-02 | Apr-02 |

31st July 2003

It's been a while, so what's been happening?

Most of the changes done since March are to do with getting the dragon riding bonus stage to work. The dragon's called "Uriah", and you control his left and right movement. The idea is to steer him into as much of the scenery as possible, and smash it up - makes a change from shooting everything I suppose. You get extra bonus score added at the end, depending on how many things you managed to hit. It's a good place to really boost your score as each item hit gets 50,000 points bonus added. This screenshot is from the original:

Before starting Uriah, there were a few visual touches to add to the floor, and the top grid in Stage 4. The colours blend nicely from one colour to another on the floor and top grid, during the stage. Initially I hadn't planned on adding this, as it's purely cosmetic, and I thought it only happened on the three top grid stages; then I noticed there is actually a colour change in the floor during the Uriah stage too. So, what the heck, it wasn't too difficult to add some colour changing code and make some room in my stage overlay file (this is the set of data that gets loaded at the start of every stage, and describes every aspect of it). Just a list of colours and a timer. The colour blending isn't as good as the original, but this is something the Atari is quite good at compared to its peers. There's a choice of 128 colours in the mode I'm using, and you only have to write colour registers instead of redrawing everything to make it a different colour.

Initially I wasn't quite sure how I was going to do Uriah, but luckily things soon started to gel when I really got down to thinking about different approaches. Normally your player, the "Space Harrier" himself, is built from all 4 of the Atari's hardware sprites (called player/missiles by Atari). They're quick and easy to move around the screen, as opposed to having to draw and erase things yourself with a software routine. Naturally, because of this it's wise to use them wherever possible - but they have quite a few limitations. You'll notice in the screenshots, Space Harrier is sitting on Uriah's head, and the other "segments" or tail pieces of Uriah get drawn over the top of him - simply because they're behind him. Obvious to you or me, but not to the Atari. The hardware sprites can only be made to go over or behind certain colours - they know nothing about real 3D on their own. So did I try and work out where Uriah was going to be over Space Harrier, and then redraw the sprite armed with this information? Well...No. The way sprites are drawn is very different to how the rest of the screen is drawn, and mixing the two would mean creating some fairly slow code to do it. I decided to have Space Harrier represented by normal screen graphics for this stage. You'll notice he has slightly different colours because of this. It also meant that the jumping on and off of Uriah could be dealt with by the existing pattern handler. Also there was the added bonus of being able to use the sprites for something else. Originally, I wasn't going to have the overlaid tree counters that pop up on the screen as you hit more and more bits of scenery - but it turns out the hardware sprites are quite well suited to this task.

There were a few things that I hadn't realized were going to be a problem with this approach of representing Space Harrier by normal screen graphics instead of sprites. For one, the animation routine I had built into the pattern handler for animating the aliens couldn't make him run without a serious limp! So that had to be made better. I also had to go back on my self imposed limit of no more than 4 colours per object (to save disk space). I could have drawn Space Harrier and Uriah's head as separate objects of 4 colours each, but it is much more efficient to treat them as one object - which would break my 4 colour file format. It seems a little wasteful, but Uriah has got his own file format now! However, if a cartridge version is done, there will be none of these 4 colour limitations. In fact, at the end of the day, I may just do a cartridge version, and not bother with the disk one at all. It won't need a 130XE to run it either, any 64K XL/XE machine will do.

I thought getting Uriah's undulating up and down motions, combining with the left and right control and the tail segments following on, was going to be one of the trickiest parts. But when I thought about it, I realized I had the right routines already in place. The normal alien patterns can do exactly this - they follow each other, and undulating them up and down is no problem. All I had to do was to add left/right control. This was very simple too. A function I added to my pattern handler (which I didn't expect to use as much as I am), is the ability to run a predefined piece of code when required from within an alien attack pattern. So I just created a piece of code that overrides the x direction of the pattern, depending on where the joystick is. Hey presto! One Uriah coming up. A few more little pieces of code like this (which I call "pattern commands" if you're looking through the source code), allow you to control Space Harrier while you're waiting for Uriah, and to make sure you jump onto Uriah in the right place, amongst a few other things that have to be done just before you hop onto him.

For those of you who managed to read this far, congratulations - even I got bored writing all that. But what did it all mean? They say "actions speak louder than words", so how about I give you a little demo of Uriah? This is not the same as what will be in the real game. In fact any die hard Space Harrier fan will recognize that Uriah is smashing up stuff from stage 4, instead of his usual haunts. I've trimmed him down a bit too from the original - he's lost several tail segments. That's all because of the pink flashes on the side of the screen in the demo - they're a note to me to say I've overrun the time allowed for drawing the screen - I.E.when it slows down. Uriah's a bit niftier on his feet losing a couple of tail pieces!

URIAH.ATR (removed due to bugs)

Top