Your Spectrum
Issue 8, October 1984 - TLL - Tornado Low Level
Home Contents KwikPik
L O W   L E V E L
YS announces the last call for flight TLL. Your captains are Ross Holman and Dave Nicholls. We hope you have a smooth flight ...
Imagine you're in a swing-wing fighter bomber on a training mission to seek out and destroy enemy targets around an air base. That's right, if you've ever fancied being a Tornado pilot, now's your chance to start training.
The aim of Tornado Low Level (TLL) is to swoop in low over the 'enemy targets' (seen to you as ground markers) and destroy them. Sounds pretty easy, eh? But think again, because your eyes and hands have to work overtime making sure you're on target, at the right height, and that you're not going to hit any of the many hazardous objects which have an annoying habit of getting in your way.


TLL doesn't go for the in-flight realism of Fighter Pilot, but rather it's a cross between an arcade game and a simulation. Whichever category it falls into there's no denying that it's graphically superb. Author Costa Panayi has carried on developing the graphic techniques he used in Android 2; now, with new heights of perfection, you'll find the area of land over which you fly is simulated in incredible detail.
An isometric perspective is used to depict the scenery - the player seeing only a part at any one time. We look down on a landscape of trees, buildings and cliffs which plunge into large areas of water ... and the plane is superimposed over them. Clever use of colour - normal and bright - gives the buildings, walls and cliffs a feeling of width, depth and height. The view below scrolls continuously as you fly, wrapping around in all directions; cursor control has been used, presumably to alleviate attribute corruption problems and maintain speed.
And there's more, for not only can your plane bank in either direction, but it can also climb and dive. You don't so much fly over the landscape as through it. The best visual clue to your height is the shadow of your plane on the ground - which behaves very realistically, climbing walls and passing over roofs as you jet over them.
TLL is a slickly-presented piece of software; it's both nicely packaged and offers reasonable instruction options from loading. One minor irritation is that it only caters for keyboard and Interface
2 control, and violently objects to Kempstons and some other peripherals. Vortex reminds everyone to remove these, not on the cassette sleeve but (rather irritatingly) by interrupting loading and sticking up a suitable message.


The instructions are brief and to the point - you're given your mission and a run- down of the instruments. Start the game and for a few seconds you'll see a complete map of the playing area, showing the runway and five flashing blocks that indicate the positions of the targets. The view cuts to the main screen where a region of 22 by 23 cursors act as your window on to the world. Offset to the right are the instruments. Top right is the radar which actually shows a larger area than you'll see through the playing window; here any targets will appear as single pixels. The area currently under surveillance is depicted by a bright square and the whole region scrolls in unison with the main map. Below the radar is an altimeter which shows height above ground level, and completing the gadgetry line-up there's a fuel gauge, 'targets destroyed' counter, and current and high scores.
Controlling the plane is simple - just up, down, left and right, plus another key that doubles as a take-off and swinging wings control. The 'M' key can be used to re-examine the map showing your targets, but only while you're sitting on the

TLL map
When you start each level of the game, you'll he presented with a full size map, showing the positions of the five targets you must destroy. Be quick though, it's only on-screen for a few short seconds!
This area of the screen contains a cut-down version of the main map shown at the beginning of the game. Once you've got the lay of the land, you probably won't refer to this much, except to find out when you're approaching a target.

An altimeter, giving you and indication of your height above land. You'll need to watch this closely when you're swooping low over targets.
The main playing area of the game. Each time you destroy one of the five targets, a symbol is blanked out.
TLL screen
The high score of the day. The current score.
An indicator of time - you must destroy all five targets before the level sinks to zero.

Your fuel gauge - you can re-fuel your Tornado by landing back on the runway.

You have three lives to complete your task; as you lose a life, one of these symbols is blanked out.
Confusing at first, after a few hours in the air you'll soon get the hang of the gauges on the right of the screen.

L O W   L E V E L
runway. Pressing a swing-wing key and 'P' together will abort the current game.
To begin with your plane sits at the end of the runway waiting for take-off. Power on and, as it starts to accelerate down the runway, you'll hear the roar of the engines (simulated by a fairly standard beep) which changes in pitch to indicate that you've reached take-off speed and it's time to leave terra firma. Once in the air, you'll delight in your new-found freedom - climbing, banking and diving; in fact, the plane will only line up on 45 degree bearings, though it animates through 16 phases in rotating through 360 degrees. The keyboard response is very good, allowing the fighter to turn in comically tight circles; it may not be realistic, but it's necessary if you want to avoid the obstacles. Pixel by pixel height adjustment allows you to skim at zero feet above the ground - if you dare!
For a while, I was quite happy to just get a feel for the controls and learn how to judge the height of buildings; then I got a bit more adventurous and swung the wings back. This makes things move much more quickly and, although the plane is just as maneuverable, your fuel tank runs dry in what seems like no time.
The sensation of flying in three dimensions
is even more incredible and the shadow thrown by your plane dramatically adds to the visual impact. This really is a very clever piece of programming - disappearing behind buildings, breaking up over trees and dropping down to appear on the water surface as you go over cliffs.


Once you've marvelled at all these wonderful effects and discovered (the hard way) the height at which you can skim the rooftops or dive under the power cables, it's time to try a mission proper. Here's how my first sortie went.
Having first mentally noted the positions of most of the targets I set off down the runway - tally ho! Pulling back on the stick, I took off, made a sharp bank right over the pylons and saw an enemy target at one o'clock. I needed some practise at swooping in low, circling and lining up on target ... finally, I got it right, and my great achievement was marked by an appropriate explosive sound effect. You really do have to be low to destroy them, and the lower you get the more points you score. The targets on level one stay in much the same place each time and gradually I discovered the best way of approaching each of them.
If you begin to run short of fuel - or can't find one of the targets - then you'll need to land; you automatically get re- fuelled and, of course, you can use 'M' to look at the map again. Landing is tricky
and requires some practise. Rule one is never try and land (or take off for that matter) with the wings swept back or you'll crash for sure. Secondly, line your shadow up with the centre of the runway; because of the wrap-around effect, you'll re-appear before in the starting position if you carry on. Don't forget though that precious time is ticking away - so don't hang about, you've got five targets to destroy before you can return to base successfully.
As you get more proficient and progress to new levels, the targets are laid in more difficult positions - near trees or even on the water (which demands some rapid manipulation of the controls). By level four it starts to get really tough, and route planning is necessary if you're to get anywhere near the target. In one instance, you have to fly low over a large lake, zoom under a bridge, bank sharp left between the coast and a small island - and there, at close hand, is the objective. For later levels, targets are placed under pylons, closer to trees and houses, and even in narrow channels between cliffs; for some reason, it all gets easier after level eight or nine. Last thing, beware the objects that you can't fly over ... a tower and some tall thin poles are strategically placed to catch the unwary.
TLL not only shows that British software leads the world in quality and innovation, it's also a salutary lesson on just what can be done on the not-so- humble Spectrum.

Dave Nicholls, software champ, hacks into TLL and comes up with some interesting observations.
The standard way of describing games that use 3D effects is to say that they have 'perspective' graphics. But, in fact, there are three basic types of perspective: vector (Battlezone), vanishing point (Zzoom), and isometric (TLL, Android 2), and each of these poses its own problems, for programmer and hacker alike.
The first difficulty to be overcome is the fact that the game's author has had to pack a lot of information into a relatively small amount of memory, and working out what's going on turned out to be nothing but a mighty headache. In TLL the data is stored in a large array, with one byte stored for each character position; a character position in this case is one screen character wide and one 'deep' (that is 'into' the screen). This byte contains information giving the height, colour and pixel pattern that will eventually end up on the screen. The map is 160 by 140 characters and thus it takes up almost 22K of memory space.
Of course, the main reason for using 3D graphics is to provide a greater sense of reality in the games; to this end TLL allows your plane not only to fly over the landscape but behind it as well! It does this in the usual way whereby the objects furthest away from the players' viewpoint are drawn first - so that the closer objects can overwrite them if necessary. Thus, if
your fighter is flying behind a building, the plane will be drawn first and the building printed over it. There is, of course, an exception to this rule - the plane's shadow - which has to be handled by a special and more complicated algorithm.
There's one thing about the program that had annoyed me from the first time I loaded it - the fact that it uses interrupts to produce the continuous sound (all of which, incidentally, is produced using the same Beeper routine in ROM that Basic uses). This is the reason why the program crashes when certain peripheral devices are connected (in my case, the Kempston joystick interface).
Having found the usual 'infinite lives' POKE and an 'infinite time' POKE, I discovered a Kempston decoding routine already embedded and evidence that the option menu at the beginning has been changed! It seems that Vortex had to patch the code at the last minute, presumably because the company only tested it using an Interface 2 or the keyboard up until the final stages. This is a pity because it takes only fairly minor changes to allow the Kempston to be used properly, even with interrupts. I say 'properly' because I managed to convert my version by switching off the interrupts and calling the sound routine explicitly so that I could use my joystick (see accompanying listing); the only side-effect of this is a degradation in sound quality, because the sound routine is not being called as often.
TLL is an excellent program, its only real failing (and one that it shares with many others, for example Jet Set Willy) being a dearth of proper testing early on in its production. Please, please, software producers, take the time to play/test your games properly; nothing hits sales harder than frustrated users.
Finally, before you ask, the
disassembler I used was an excellent offering, soon to be published by Cameron Else of Jet Set Willy bug fixing fame. Watch out for it! And in answer to the second obvious question ... to use a Kempston Joystick you must first MERGE in the Basic loader and then edit the following lines. Remember there's some degradation in sound quality when using this method but 'you pays yer money and you takes yer choice!'

20 DATA 55, 62, 255, 221, 33, 0, 64, 17, 156, 191, 205, 86, 5, 33, 179, 255, 17, 198, 118, 1, 3, 0, 237, 176, 33, 182, 255, 17, 210, 132, 1, 5, 0, 237, 176, 201, 0, 0, 0, 205, 105, 254, 24, 63
50 FOR n=65423 TO 65466
3000 RANDOMIZE USR 65423

To get infinite lives and time, MERGE the program and stop the tape when you get the OK message. Now LIST the Basic loader and edit lines 20, 50 and 3000 to match the lines shown below. Now type RUN and start the tape from where you left off.

20 DATA 55, 62, 255, 221, 33, 0, 64, 17, 156, 191, 205, 86, 5, 62, 0, 50, 190, 136, 50, 15, 132, 201
50 FOR n=65423 TO 65444
3000 RANDOMIZE USR 65423
Home Contents KwikPik