Note: Some platforms warn you about “active content” that could access your computer. If you don’t trust me not to give your computer a virus, you can browse this website without allowing the active content. The only difference is that the buttons below would not be highlighted when the cursor moves over them.
Towards the end of my time at school and during my first couple of years at university, I designed and implemented a fairly large number of computer games, collaborating with my brother Sean in the implementation of many of them. Some of these were sold commercially, by Kuma Computers, on the Sharp MZ-80K/MZ-80A/MZ-700, Amstrad CPC-464 and MSX platforms.
There are several CPC emulators now available on the web, including Caprice32. This emulator is probably the best currently available for Windows platforms, but other emulators have been written for alternative platforms and Caprice32 may be ported to other platforms in the future. There are also several MSX emulators available; I recommend openMSX, which works on other platforms as well as Windows. The first thing you need to do to try out any of the games is to download and install the emulator.
To try one of the games out, download a compressed directory (zipped folder), or a Caprice32 snapshot which I have created to simplify starting the games up, by clicking on one of the appropriate links below:
Fruity Frank (zipped CPC, as a Caprice32 snapshot or zipped MSX)
– Push apples onto monsters, move under apples to let them drop onto the monsters or throw a ball at monsters, and eat other fruit on the screen to progress to the next level. For a big score at an early level, you need to fill in the hole so that five bonus monsters appear one at a time; if you get the final one with an apple rather than the ball, you get 800 points, or even more if the apple has hit another monster first on its way down the screen. At higher levels, you can sometimes get very big scores by pushing an apple onto a big stack of monsters. Beware of the vicious strawberry monster, which appears if you take too long! Sean provided the graphics, but otherwise I wrote the game completely. It was based on (but better than in my opinion) an arcade game I saw called Dig Doug. Fruity Frank is extremely addictive, and I recently received a huge complement from someone on the internet who said that Fruity Frank is the best game ever. I disagree; in my opinion, Buster Block is better.
Buster Block (zipped CPC, as a Caprice32 snapshot or zipped MSX)
– Push blocks onto monsters before they come and get you or even push blocks at you. Your energy decreases when you collide with a monster or moving block, and gradually all the time so you have to be quick! Complete one of 25 levels (arranged via four different routes which you can navigate in either order) and you gain back some energy plus bonus points. I based Buster Block on two games for the BBC Micro, Pingu and Rubble Trouble (which are really addictive), but provided 16 different kinds of block (including both kinds from those two games plus others which go round corners) and six kinds of monster, and designed a maze of 400 rooms rather than having random screens as in those games. The MSX platform, on which I implemented Buster Block first, had very limited graphics (only two colours in a row of eight pixels apart from a small number of monochrome sprites), but they were well-suited to this game since blocks are easier to make multi-coloured than other objects. I did virtually the entire graphics for Buster Block, unlike our other games, because accommodating to the limitations of MSX graphics required a different kind of skill to simply being very good at art (which Sean was). [Sean’s only contributions to this game were the ASCII character set and logos.] The MSX platform provided the choice of pixel or (multi-coloured) character-mapped display facilities, which meant that there were fewer problems of slow-downs on the MSX in screens with a lot of monsters and blocks moving at once. The more limited memory capacity of the CPC-464 (64K in total) meant that I had to use up some of the screen memory for data and shrink the screen size, and the graphics on the top of the screen is only stored in the screen memory. The limit of four colours also affects the graphics quality, but I was so proud of this game that I didn't have the motivation to finish writing any more games afterwards.
Star Avenger (zipped CPC, as a Caprice32 snapshot or zipped MSX) – If you navigate your spaceship above and inside an alien landscape, shooting at will (subject to the limitation that you can only fire four missiles at a time) then do not be too surprised that the aliens want you dead! The name of the game implies that those same aliens have done somthing terrible to the Earth that needs avenging, but I am of the opinion that all alien races that have achieved interstellar travel are good beings and that conspiracy theories about alien abductions are made up to justify beliefs that our world leaders should be trusted rather than loathed for the wars they start and poverty they inflict on ordinary people across the planet. Have no fear, mere mortals will not have too much success on avenging whatever these aliens are supposed to have done, since even level 1 (supposed to be easy) is fiendishly difficult with missiles often aiming at you! This is the only one of our games that we had previously implemented on Sharp platforms. It was primarily written by Sean, in BASIC like all these computer games, but I wrote the compiler from BASIC to Z-80 machine code (understood by the Amstrad and now the emulator) as well as implementing bits of code requiring particularly efficient implementation (specifically those involving graphic operations) in Z-80 assembly language.
Galaxia (zipped CPC, as a Caprice32 snapshot or zipped MSX)
– Get past the alien fleet (shooting as many of the spaceships you feel like) and dock with your starship. Sean wrote this game (with me providing the BASIC compiler and Z-80 assembly language code, and porting it to the MSX platform) and
– obviously deliberately
– named it after the very left-wing future of the galaxy at the end of Isaac Asimov’s Foundation series to undermine that series by associating the ending with violence towards aliens. I discovered much later the reason that he had been able to get away with this – he read Foundation’s Edge (which introduced the term Galaxia) before me, unlike Isaac’s other books which I bought, because he received that book as a prize for doing well at school. He did this because he was and still is (partly at least) on the side of big business in the conspiratorial organisations underneath the surface of society. [He is now a member of the Socialist Workers Party in London (an organisation whose leadership has always been dominated by agents of big business but is now improving) and is the unelected maintainer of the national website of the Stop the War Coalition.] I have since reused “Galaxia” as the name of a revolutionary socialist band. For more information, visit the Galaxia page on this website or the Galaxia website.
Rock Raid (zipped CPC or as a Caprice32 snapshot)
– Shoot asteroids to split them in two (or destroy them if they are already small) and various kinds of alien spacecraft. There are six options, including hyperspace and shields, one of which can be used in emergencies. Sean wrote this game with a friend of his called Sam Evans, with me once again providing the BASIC compiler and Z-80 assembly language code.
Hyperviper (zipped MSX) – Move around the scrolling maze eating the snakes from behind, or splitting them in two if you eat them in the middle. Avoid getting eaten by the snake heads, and beware of the little heads which hatch out of the eggs. This was my first game on the MSX platform.
Spooks & Ladders (zipped MSX) – Pick up the objects scattered around the mine and escape up the ladders at the top of the screen. Dig holes to trap the spooks and then fill them in to exorcise them. I can't remember implementing this rather unexciting game, despite my name being included in it as well as Sean’s, so I presume he did most of it.
Advice for using the Caprice32 emulator
The method for loading games into CPC emulators will vary from emulator to emulator, so consult the documentation if you have any problems. The method used for Caprice32 (whose documentation will probably be at C:\Program Files\Caprice32\docs) is described below.
Start up Caprice32 and a blue screen should appear, with yellow text, ready to type commands in. If you have downloaded a Caprice32 snapshot, simply drag and drop it onto the emulator window (or select the Load Snapshot... menu option or press F2) and the game should load immediately. Otherwise, drag and drop the zipped folder (or the .dsk file after uncompressing) onto the emulator window (or select the Insert Disk... menu option or press F6), and you then have to load the game from a virtual floppy disk. You must then load the program by typing RUN" in (use SHIFT-2 for the " character) followed by the program’s name and press the ENTER key. The documentation advises you to use the CAT command to find the name of the file to load – the smallest with the .BAS, .BIN or no extension, but for our games the name is the same as the real filename, except for Buster Block for which busterbshould be entered instead of bustblk.
There is one complication to using an emulator – some of the keys are in different places on modern keyboards to their location on the machines being emulated. Decent emulators like Caprice32 map keys on the respective keyboards so that most of them are in the same relative positions as they were on the original one. There were three slightly different keyboard layouts used on CPC machines (original, French and Spanish) and these are shown in the Caprice32 documentation. Therefore, typing commands to load one of the games or playing a game itself may require pressing a different key to the indicated one. If the indicated key does not work, experiment with others until you can control the character/spaceship. However, two of our games (Buster Block and Rock Raid) allow the user to press K to redefine the keys used in the games.
I have some hints to get the best from the Caprice32 emulator. Firstly, override the default option to display
“scanlines” and use
“line doubling” instead, either using hardware or (if specifying that makes the game run very slowly because it is not available on your graphics card) using software
– this makes the display look a lot better and should not noticeably affect performance on modern PCs. To do this, select the Options... menu option or press F8, and modify the “rendering style” which is one of the Video options. Secondly, you may like to use the option to switch between full-screen mode and displaying in a window. The key to do this is ~ according to the documenation, but it is actually ` (below the Esc key) on my laptop keyboard. Thirdly, select the Save Snapshot... menu option or press F4 if you want to save a game part-way through or simply the high score table, and load the snapshot again later as specified above.
Most of the games have a joystick option which should be compatible with game controllers available with modern computers. Ensure that the controller is plugged in before starting Caprice32. Select the Options... menu option or press F8, click on Input, select the controller in the “input device” pull-down menu, click on Configure... and configure the controller to correspond to joystick 1.
Advice for using the openMSX emulator
There were many different MSX machines and it is necessary to download the contents of appropriate read-only memory (ROMs) as well as the openMSX emulator. The people who converted our games from cassette to disk did not do a very good job and some of the games do not work with every machine. To run all of our games, you will need to download the ROMs for Philips NMS 8250, and Toshiba HX-10 with a Sony HBD-F1 disk drive. [Hyperviper does not work for the Philips and Fruity Frank does not work for the Toshiba.] Place the ROMs in the share/systemroms directory (unzipping for the Philips).
It is easiest to use the Catapult user interface that comes with openMSX. Select Philips NMS 8250 in the “MSX type” pull-down menu, or Toshiba HX-10 in that menu plus Sony HBD-F1 in the list of “Extensions”. Click on the floppy disk icon next to “Disk A” and select the game file (which you can leave zipped or uncompress to yield a .dsk file). Click on Start to load and run the game; you may need to hold down the left Ctrl key until you hear a beep.
There is an option under “Video Controls” to switch to “Full Screen” mode; on Windows platforms at least, pressing F12 or holding down Alt while pressing Tab should switch back to showing multiple windows.
Most of the games have a joystick option which should be compatible with game controllers available with modern computers. Ensure that the controller is plugged in before starting Catapult and select joystick1 in the “Joystick port 1” pull-down menu under “Misc Controls”.
Note that we had a policy of putting Copyright notices in most of our games to one particular person, even if more than one of us was involved in the design and implementation of a particular game, and that I used the name Steven Wallis at that point in my life (even though I had started preferring the name Steve during the sixth form at school). I have now changed my name by deed poll to Steve Wallis, the name I have used during my political and academic lives (leading up to the development of my modelling language SDML).