Jump to page content

Evil Invaders

Evil Invaders is a space invaders clone for the BBC Micro. It started life as IJK Invaders back in 1982, and is a pretty fast-paced implementation of the game. The bombs dropped by the aliens are tricky to dodge, and by the end of each level the aliens are breaking the sound barrier with their horizontal movement. Despite the crude graphics, this game is fun to play.

The Evil Invaders title screen 1Title screen in BeebEm Another alien is about to bite the dust in a classic-mode game • Title screen in BeebEm

I do not know whether the copy I found on a disc years later was a beta copy or the finished product, but it was a bit shabby either way, so I set about making some modifications to the game to smooth out all the rough edges. The end result was rather successful, and you can download a copy to try out yourself under emulation (single-sided DFS disc image). Thanks go to Chris Richardson of 8-bit software for converting the BBC disc to SSD format.

Note that both LSAIT and Imagen are aliases of mine (Imagen Tech is the IT in LSAIT), which explains the seemingly contradictory credits. David Mills (Lightning Software) was the other half of LSAIT and as far as I can recall, he had nothing to do with this game so I have no idea why I used the name LSAIT in the intro screen.

I have no record of the exact modifications I made to the game, but the list below probably covers most of them:

The game has a number of customisation options; the new Classic mode is a configuration preset that looks like Amoeba Invaders/Super Invaders complete with the shields, as shown in the screenshot. However, by default these are turned off to get them out of the way.

The strange thing about the game is the way that it is implemented. IJK typically used BBC BASIC for their games. This game is composed of a strange BASIC/machine code hybrid – the BASIC code is followed in RAM by some machine code. The game loop is written in BASIC, but all the animation is dealt with in machine code for the extra speed. This made working on the code a little tricky, as I had to make sure I didn’t ever disturb the machine code block (which must be loaded into a fixed location of RAM – most BBC Micro machine code is non-relocatable). Oh well, it is all done now, so you can get to play with it and enjoy it.

Footnotes

1 The really astute will wonder why the two screenshots are not the same size. This is because the first one is Teletext (mode 7, 1 kB text screen mode using a special SAA 5050 generator chip) and has a different number of scan lines (250 pixel rows, 500 scan lines after character rounding) to all the bitmapped modes (0-6) with 256 scan lines. So the emulator window changes size to match the scan line count. Horizon does not attempt to emulate the SAA 5050’s character rounding.