GAME -> Shoot'Em Up
© _Public_Domain_ (2005)
Zblast Sd

Last Update : Sunday 02 February 2014 at 16 h 37

Manual n° 1

Real size : 1326 * 788 px = 197.65 Ko

Manual n° 2

zblast SD (Amstrad CPC version) ------------------------------- zblast SD is a fairly manic shoot-'em-up. It is a simplified rewrite of a vector-based game for Linux that was originally written in 1993 by Russell Marks (see <http://www.svgalib.org/rus/zblast/>). Russell wrote a version for the ZX Spectrum for the 2003 Minigame competition, in which it was voted 4th in the 4K category (see <http://starbase.globalpc.net/minigame/>) - although in my opinion, it should have won! Nicholas Campbell (that's me) then converted it to the Amstrad CPC. zblast SD is public domain by Russell Marks (<rus@svgalib.org>). Differences between the ZX Spectrum and Amstrad CPC versions ------------------------------------------------------------ - The Amstrad CPC version is a lot slower than the ZX Spectrum version. Unlike the Spectrum version, the sprites on the CPC screen require more memory, and after every frame, they must be cleared from the screen *properly*. The Spectrum version sets the attributes of each cell on the screen to black (therefore making the player think that it has been removed), but it doesn't actually clear the sprite itself from the screen! The CPC version also uses fully transparent sprites, which slows things down even more; the sprites on the Spectrum are transparent in a way, but not fully so. - The lack of speed compared to the Spectrum version means that the game needs to be made more difficult. On the Spectrum version, if the blasters on the left- and right-hand sides of your ships touch a baddie or a bullet, the player does not lose any energy. On the CPC version, if *any* part of the ship touches a baddie or a bullet, the player loses energy. The length of time your shield lasts after being hit has also been reduced considerably. - On the Spectrum version, if the player somehow manages to complete 20 waves, the game restarts at wave 1, but with the game speeded up a lot! Unfortunately, the game is already running at its maximum speed on the CPC version and cannot be speeded up any further. :-( - The file size of the CPC version is a lot larger than the Spectrum version. There are three reasons for this. 1) I have not compressed the CPC version. 2) As mentioned above, the sprites on the CPC version require more memory. Sprites must also be defined for each type/colour of baddie and bullet, whereas the colours of the sprites on the Spectrum version can be changed simply by altering the cell attributes on the screen. 3) The CPC version also has to store a font for the ASCII character set, to allow text to be displayed. The Spectrum version uses and modifies the built-in font. - The CPC version works on all models of Amstrad CPC, whereas the Spectrum version will not work on 16K or 48K machines. :-) Playing the game ---------------- The basic idea of the game is this - shoot everything. That said :-), some other details: - Getting hit loses you energy. But when your ship appears blue (after being hit), it cannot be harmed. If you get hit when your energy is at zero, it's game over. - If you don't get hit at all during a wave, you get 10 extra energy points. You'll probably want to stock up on these in the earlier waves. - The large purple and blue baddies generate smaller baddies, so try to kill off the big baddies first. If you don't, you'll soon be facing a wall of bullets. :-) - There are 20 different waves, only 3 of which are random (and even those remain basically the same). If you finish all 20, you start again at wave 1. - Don't assume that all baddies of the same type take the same number of hits to destroy. It varies. (Though it's preset rather than random, so it'll always be the same on a wave-by-wave basis.) - You have to shoot the main body of the larger ships for it to count as a hit. - The debris which appears when you destroy a baddie is harmless. - The first few levels are a bit dull, because I didn't want it to get hard too early (a mistake that Russell made with another Minigame competition entry, dotathon). Things start getting a bit more interesting at around waves 5 and 6. For control you have the option of either keyboard or joystick control. At the title screen, press 1 to start the game using keyboard control, or 2 for joystick. The keyboard controls are: Q - up A - down O - left P - right SPACE - fire You can hold down fire to get auto-fire, but you should be able to get a faster firing rate by hammering the button. Still, you're best off using auto-fire most of the time, and saving the hammering for when you really need a burst of speed. Finally, in case anyone hadn't realised, the "SD" in "zblast SD" stands for super-deformed; this version feels a bit like that compared to the original. :-) Tools used to program zblast SD for the Amstrad CPC --------------------------------------------------- - Advanced Art Studio by OCP - the best art package for the Amstrad CPC, used to design the sprites (which are stored on the zblast SD development disc as SPRITES.SCR and SPRITES.PAL). - CPCXFS - a command line-based tool for manipulating DSK files, which are used by Amstrad CPC emulators. - Crimson Editor - a text editor for Windows, used to edit C and Z80 source code. - DOSCopy - a utility for the Amstrad CPC to transfer files to and from MS-DOS formatted discs, used to test zblast SD on the real thing. - MinGW and MSYS - used for compiling C programs to generate additional files for zblast SD, and putting all of the files that make up zblast SD together. - Paint Shop Pro - an art package for Windows, used to convert Russell's 24-bit colour, high resolution artwork for zblast SD into a 4-bit colour, low- resolution loading screen for the Amstrad CPC. :-) - zmac - a command line-based Z80 assembler, used for assembling the Z80 code for zblast SD. Of course, many Amstrad CPC emulators were used as well for testing - Arnold, CaPriCe32, CPCE, Multi-Machine, NO$CPC and WinAPE. SPIN and Spectaculator were my ZX Spectrum emulators of choice for comparing my Amstrad CPC version of zblast SD with Russell's original version. Compiling zblast SD for the Amstrad CPC --------------------------------------- I used MinGW and MSYS (see <http://www.mingw.org/>) to compile zblast SD. This is a Windows utility that emulates a Unix shell and includes all sorts of GNU utilities, including the GNU C Compiler (GCC). The makefile that is included with the source code is designed to be used with MinGW. You may need to alter it if you are using a different compiler and/or operating system. You will also need CPCXFS and zmac to be able to compile zblast SD. These can be downloaded from the following locations: CPCXFS - <ftp://ftp.nvg.ntnu.no/pub/cpc/utils/cpc/cpcxfs.zip> zmac - <ftp://ftp.nvg.ntnu.no/pub/cpc/utils/cpc/zmac.zip> Both of these files include source code, and an executable file for use with Windows. CPCXFS is rather buggy when used with MinGW, and I don't know enough about C to be able to fix these problems. :-( However, it works OK in forced batch mode. If you're using MinGW, you will need to use the standard GNU make command rather than mingw32-make; this is CPCXFS's fault again. 1. Once you have set up all of these programs, unzip the source code for zblast SD and note the directory where it is stored. 2. Open the Makefile file that comes with the source code in a text editor and change the variables if necessary. (On MinGW, you can specify the exact location of a file by using e.g. CPCXFS=/c/cpc/cpcxfs/cpcxfs.exe). If you are using an operating system other than Windows, ensure that the variable exec_suffix is blank. 3. Now run MSYS and go to the directory where you have unzipped the source code. You do this by typing e.g. 'cd /c/cpc/zblastsd/src/' (without the quotes). 4. Type 'make' (without the quotes) and hope that everything works. :-) If you are running an Amstrad CPC emulator while compiling zblast SD, you must ensure that it is not currently using either the development or the game discs; otherwise, the make program will be unable to access these discs and the compilation process will fail! List of files in the source code -------------------------------- - zblastsd_dev.dsk - the zblast SD development disc. This is a DSK file for use with Amstrad CPC emulators. It contains the files 'sprites.scr' and 'sprites.pal'. sprites.scr is a standard 16K screen which contains the sprites and font used by zblast SD, and it is used by the 'sprtodat' program. sprites.pal is an OCP Advanced Art Studio palette file which stores the screen mode and inks. - levels.asm, main.asm, music.asm, sound.asm - Z80 source code files for the main game. - loader.asm - a Z80 source code file for the loader, which displays the programming credits, loads the title screen, and then loads the game. - bmptoscr.c, sprtodat.c, tuneconv.c - C source code files to generate programs that convert data into formats that are suitable for use on a CPC or the zmac Z80 assembler. - lilting.csf, macrospec.csf - data for the two tunes used in zblast SD. Russell Marks wrote these, and I don't have a clue how to create my own tunes! These files are used by the 'tuneconv' program. - zblastsd_cover.jpg, zblastsd_logo.png - the cover artwork and logo for zblast SD, used in making the file 'zblastsd.bmp'. - zblastsd.bmp - the bitmap file containing the title screen, showing what it should look like on an Amstrad CPC. This file is used by the 'bmptoscr' program. - Makefile - the makefile used by the 'make' program. Finally... ---------- I hope that you enjoy playing zblast SD on the Amstrad CPC, and appreciate why it is not as fast as the ZX Spectrum version. This is the first time that I have tried to convert a Spectrum game to the CPC, and it is the result of two months of work (as I knew very little about the Spectrum's hardware before converting it). Nicholas Campbell, 17th May 2005

Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2022 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance