The Sinclair ZX
Spectrum is one of my 3 favourite gaming platforms of all time (the
other 2 being the Playstation Vita and the *New* Nintendo 3DS XL)
and I have always dreamt of making my own machine code powered action
game for it (I did make a simple Space Invaders clone in the early
80's in ZX Basic).
And around 3 years
ago I had a bit of time on my hands and nothing else I wanted to do
at the time, and at the same time I had gotten a good idea for a 2D
action game I wanted to make, and as I know a fair bit about how the
ZX Spectrum's ”internals” are structured (and have a general
affection for the machine) I opted for trying to make the game on the
ZX Spectrum.
I had never
programmed any machine code programs before and had only read a bit
about how it was done back in the day, so I didn't know much about
how to approach doing it, and therefore I started to search the
internet for resources that could help me in my ”quest”.
First of all I found a very good free utility for making games for the ZX Spectrum (and other 8-bit home computers aswell) in machine code/assembler language, called ”TommyGun – a retro development toolkit”, made by a guy called Tony Thompson, in which you can make your own graphics (sprites and tiles), install an assembler program (I use the Pasmo Z80 assembler myself), make screens/maps, see an overview of the memory layout, edit strings and make music for the games you are developing.
TommyGun's "dashboard".
I'm not entirely
sure if music making and editing strings is working at this stage, as
I haven't used these functions yet, but it's easy to make your own
sprites and see them animated at different speeds and making tiles,
and screen and game map building is also very well implemented.
All in all it is a
very usefull and well made 8 bit development tool (although I'm not
sure if the other 8 bit platforms are as well supported as the ZX
Spectrum one yet) and then it's free, so I certainly recommend any
budding 8 bit games programmer to check it out.
TommyGun (and a
newer version I haven't checked out yet) can be found at:
http://www.worldofspectrum.org/utilities.html
I
also found what is practically a goldmine of information for any
budding ZX Spectrum games developer on a blog called ”Bytes:
Chuntey - R Tape loading error". It contains about 20 long articles by
a guy called ”Arjun” (edit: in fact it seems that most - if not all - of the articles are written by Jonathan Cauldwell, creater of the Egghead games among others) that covers just about everything worth
knowing about programming games for the ZX Spectrum in machine
code/assembler language (and by everything I mean just about every
trick in the book – from fast scrolling routines, making sprites,
music and AY effects to collision detection, interrupts etc., etc.).
These articles can
be found at:
https://chuntey.wordpress.com/category/z80-assembly/
Another really
useful ressource is an online (although it can be saved and used
offline as well) tutorial for Z80 assembly programming in general by a
guy called Patai Gergely.
It's an excellent
tool for someone who has never programmed in Z80 assembler language
before, as it's very easy to use and much, much better than looking
through the manual for the Z80 processor or some old books on the subject
(which by the way CAN be found on the internet if anybody is
interested).
The tutorial can be
found at:
http://sgate.emt.bme.hu/patai/publications/z80guide/
And is highly recommended.
There is also an
indepth article about making sprites (masked) on the ZX Spectrum at:
http://oldmachinery.blogspot.dk/2014/04/zx-sprites.html
Lastly I will
recommend using the Spectaculator ZX Spectrum emulator for Windows
when developing games for the ZX Spectrum, as it supports all of the
official ZX Spectrums as well as the 2 most popular Russian clones.
It also has a debugger built-in which could become handy when testing
games.
The Spectaculator is
something I will recommend in general if you like playing or
programming ZX Spectrum games, as it's just such a well-rounded
product; it can mimic an old CRT television (with scanlines and all)
for example and in general just have a lot of options for
”personalizing” your experience. And then it runs really well;
there is no flickering or other oddities not supposed to be there
when you are playing the games.
The only ”downside”
is that it's not free (I think it is about 15$ if you don't want to
have access to future upgrades, else it's about the double). In my
opinion it's well spent money though, and if you're in doubt
that ZX Spectrum gaming and programming really is your thing, there
is a 30 day trial version for you to download for free (just to
clarify: I have no connections whatsoever to the people behind
Spectaculator, but bought it myself about 10 years ago and have never
regretted doing so).
The Spectaculator
can be downloaded at:
Ok, I think this about it, but if you have gotten further appetite for information about the ZX Spectrum, lastly I would like to recommend the ”mother” of all ZX Spectrum websites:
http://www.worldofspectrum.org/
Here you can find everything from games and forums to emulators and information on remakes of classic ZX Spectrum games
Home: http://yupeeter.com