Why the Sinclair ZX Spectrum Was the Best 8 bit Home Computer for Arcade Conversions and Arcade Like Games in General, If You Look at Gameplay Alone (and probably also the best compared to the 16 bit home computers).

The Sinclair ZX Spectrum series of home computers was manufactured from 1982 to 1992 and according to Wikipedia sold around 5 million units (not counting numerous clones primarily from Russia/USSR and various eastern european countries), making it the second most popular 8 bit home computer only behind the Commodore 64 , which according to Wikipedia sold between 12.5 and 17 million units (but with the most educated guesses being around the 12.5 million units sold).

Other popular 8 bit home computers were the Amstrad CPC series of home computers (3 million sold), the Acorn BBC (1.5 million sold) series of home computers and the Atari 8 bit home computers (4 million sold including all models). Of popular 16 bit home computers there were effectively only 2: The Commodore Amiga and Atari ST series of home computers.

The ZX Spectrum was a simple computer even for its time; it basically consisted of only one processor (the Zilog Z80) clocked at around 3.5 MHz and a ULA, a very simple computer chip responcible for generating the display (in conjunction with the UHF modulator) controlling the tape and audio I/O and finally reading the keyboard.

The ZX Spectrum did have colours (hence its name), in fact 8 ranging from white to black, but with the option to add brightness to each colour, effectively making it 15 different colours (bright black was still same old black). It did have a very simple ”sound system” called the ”Beeper”, a tiny speaker built in to the cabinet, which the Z80 processor could make sound at the expense of not being able to do anything else as long as the selected pitch sounded. Despite this it was actually capable of producing quite impressive sound effects and even music in game.

Later models of the ZX Spectrum (from 128k and onwards) had a rather basic, but still competent (and in fact used in many 8 bit home computers plus a couple of home consoles as well), 3 channel sound chip called the AY-3-8912 added, which was utilised in quite a lot of games (especially from 1987 and onwards).

The original ZX Spectrum 16k and 48k versions has mainly 2 things going against them:

First and foremost sound; when a game (the processor) has to pause everytime the programmer of the game had decided to put out the tiniest squeak from the speaker, it is rather obvious that there simply isn't going to be a lot of sound in-game unless the programmer wants the action in a game performed at a snails pace. So expecting tunes playing in a game while the actual game play is going on is wishful thinking except for only a few games (Manic Miner and Jet Set Villy are a couple of examples with actual tunes playing while you're playing the game, but they are quite rare exceptions to the rule).

So all in all we can state that when we're talking about the 16k and 48k versions, the ZX Spectrum is a dwarf when it comes to outputting sound compared to it's biggest competitor the Commodore 64 with it's very advanced SID sound chip, which is basically a small syntheziser (and even the ZX Spectrum 128k model's AY-3-8912 doesn't really compare to the SID chip).

The second thing going against the ZX Spectrum - and that applies to all of the official versions of it, not only the 16 and 48k versions - is the way it adds color to the graphics, and yes, I mean adds, because color on the ZX Spectrum is in a sense not an integrated part of the graphics, but more of an ”afterthought” (but more about that later).

A thing the ZX Spectrum has going for it though, is its screen resoultion of 256x192 pixels, a graphic resolution very close to that of the arcade games from the so called ”Golden Age of Arcade Games” (1978 to 1983), which of course with out saying is an advantage, if you want replicate said arcade games (and the arcade games that came immediately after – from 1984 to around 1986). The colors are as I mentioned earlier more of an afterthought as the actual artwork/graphics are seperated from the ”color coding”, or as Sinclair Research called them, ”The Attributes”, in the video ram.

The ZX Spectrum 48k's memory layout does in fact consist of 64k or 65536 bytes which is the maximum number of memory adresses you can access directly from an 8 bit computer, the ZX Spectrum 48k of course only have 48k of ram, but Sir Clive Sinclair, the inventor of the ZX Spectrum, opted for a quite a clever solution when he designed its memory layout.

He placed the 16k rom (Read Only Memory) containing the ZX Basic and other routines vital to the system at address 0, and then the video ram immediately after at address 16k or 16384 (one k in computer terminology being 1024 bytes) and as each of the 192 lines of pixels of the screen/display are stored as 32 8 bit bytes (hence the ZX Spectrum being a 8 bit computer), the graphics (excluding colors) thus took up 32x192 = 6144 bytes starting from the aforementioned address 16384, but in a rather odd succession (but that's another matter). The attributes values for telling the ULA what ”colour scheme” for each of the 768 ”characters” to output to the TV followed immediately after.

These ”Attributes” and the "Attribute Clash" (or "Color Clash") they often caused is the biggest drawback of the ZX Spectrum when it comes to graphics, but at the same time one of the main reasons why the ZX Spectrum in the hands of the most clever programmers, is the best 8 bit home computer when it comes to arcade conversions and arcade style games IMO (and probably also better than the 16 bit Amiga and Atari ST home computers when it comes to frame rate and playability of the games in general).

Skrmbillede 4png

An example of attribute clash in the 1983 ZX Spectrum game "Ah Diddums". Notice how the magenta color of the ball bleeds into part of the the teddy bear's original yellow color.

Skrmbillede 7png

The 1986 ZX Spectrum version of Green Beret. A game with almost no noticeable attribute clash, despite it being a side scroller. Watch the Youtube video in the link beneath if you want to see how it looks in motion.

https://www.youtube.com/watch?v=NTP0_tlDkI4


Basically each of the Attributes determins what 2 colors a given charater space on the screen will consist of (in ZX Basic terminology, a background color ”Paper” and foreground color ”Ink” - with ”Ink” determining the colour of the graphics applied to the background), with a ”Character” being an 8x8 pixel large area consisting of for instance the uppercase letter ”A” in ZX Basic mode.

The ZX Spectrum screen consists of 32x24 = 768 of these ”Characters” all in all in ZX Basic mode (with the ”24” coming from 192 divided with 8 as each character consists of 8 pixel lines), which means that the Attributes takes up 768 memory addresses (or bytes), one for each character space.

All in all the way the video ram on the ZX Spectrum is laid out means that it only uses 6144 bytes for the graphics/artwork (32 bytes for each of the 192 pixel lines on the screen) plus 768 bytes for the attributes (or ”colour coding”) of the character spaces all in all 6912 bytes or 6.75k, a significantly lower amount compared to all of its contemporaries.

This ”smallish” video ram paired with the fact that the Zilog Z80 processor was the fastest of the 8 bit processors available at the time, meant that the ZX Spectrum was very fast when it comes to building the next display image before ”sending” it to the ULA for it in conjunction with the UHF modulator to send it to the TV (the ZX Spectrum doesn't actually send the display image to the ULA, it is rather the ULA that scans the video ram every 1/50 of a second and then displays on the TV whatever is in the video ram exactly at that moment).

And when action games generally requires a lot of data to be sent to the video ram as scrolling routines demands the playing field to be updated constantly and many sprites on screen at the same time also requires a steady stream of data to the video ram (the more sprites on the screen, the more time it also takes for the processor to calculate the different sprites movement patterns - that is if their movement patterns are not predetermined - but is actually the result of an algorithm determining their ”next move”), you can probably begin to understand that the ZX Spectrum in the hands of a skilled programmer has the ”upper hand” compared to its direct competitors when it comes to the smoothness and playability of action games in particular.

The Commodore 64 in particular is not to far by behind the ZX Spectrum when it comes to smoothness and playability of action games though (provided it's programmed by a skilled programmer of course) as it has an other advantage over the ZX Spectrum besides the SID sound chip.

The Commodore 64 has a dedicated graphic chip that does some of the work the ZX Spectrum's Z80 processor has to do all by itself. This graphic chip is among other things capable of something called ”Hardware Scrolling” which basically means that it calculates how the background graphics is going to look in the next ”frame” when scrolling the screen, while the main processor attends to other tasks.

The Commodore 64's graphics chip is also capable of displaying a set amount of sprites on the screen, also here taking work load of the main processor, while the ZX Spectrum's humble Z80 must also do this by itself (and the ZX Spectrum programmer must make his own masked sprite routines, something the Commodore 64 is born with).

The main disadvantage of the Commodore 64 though, is that its main processor, the Mos Technology 6510, is very slow compared to the ZX Spectrum's Z80 processor. The PAL versions of the Commodore 64's 6510 processor only have a clock frequency of 0.985 MHz compared to the ZX Spectrum's Z80s 3.5 Mhz (the ZX Spectrum was never released in the US, which is why I compare it to the PAL version of the Commodore 64).

It has to be said though that while the 6510 processor is almost 4 times slower than the Z80 processor, the fact that it uses fewer cycles (the ZX Spectrum's Z80 performs around 3.5 million cycles per second having a clock frequency of approximately 3.5 MHz) per machine code instruction than the Z80, means that in reality the ZX Spectrums´s Z80 processor is around twice as fast as the Commodore 64´s 6510 processor.

Another disadvantage the 6510 has compared to the Z80 is that the instruction set of the Z80 is much more versatile than the 6510's instruction set, which means that it easier to program more complex routines on a Z80 than a 6510 – also the 6510 in general uses around 20% more memory when programming a routine compared to the Z80, but that's not really a big issue when it comes to the Commodore 64, as it has 64 kb ram compared to the ZX Spectrum's 48 kb.

The video ram on the Commodore 64 has several modes it can be set to, but the most commonly used in action games is the ”MultiColor” mode in which the Commodore generates a display with a resolution of 160x200 pixels each with 4 colors to choose from (although one of them has to be the background color). To store one of these 4 colors you need 2 bits of an 8 bit byte per pixel, which means that the amount of bytes you store the display in is 160 x 200 / 4 (only a quarter of an 8 bit byte is needed per pixel) = 8000.

But the Commodore 64's MultiColor mode, like the ZX Spectrum, also has attributes to deal with, in fact 40x25 (one for each its characters in its Basic mode), though they are a bit different compared to those of the ZX Spectrum as each attribute space is 4 x 8 pixels that can contain 4 different colors (one of them the background color), which means that the Commodore 64's attributes is stored in the memory as 40 x 25 / 4 (2 bits per attribute space) = 250 bytes.

All in all we can conclude that the Commodore 64's video ram consists of 8000 + 250 = 8250 bytes or just over 8 kb when in MultiColor mode, while the ZX Spectrum's video ram, as stated earlier in this article, is 6.75k, which means that the Commodore 64's video ram is just short of 20% larger than the ZX Spectrum's. Not an extreme amount but put together with the fact that the Z80 processor is around twice as fast as its 6510 equivalent and the fact that the program code on the 6510 takes up more memory (which also means it takes more processor cycles to execute), means that the best examples of the action games genre on the ZX Spectrum simply plays a bit better (basically has better frame rates, but also sometimes has more sprites on screen at once) than their Commodore 64 counterparts.

I will go as far as to claim that there are a few ZX Spectrum arcade conversions that plays better than even their arcade ancestors, especially the conversions from the hands of the two gentlemen Jonathan M. "Joffa" Smith and Keith Burkhill (Green Beret, Space Harrier, Commando, Ghost 'n' Goblins, Terra Cresta amongst others), but also the conversions of Bomb Jack and Chase H.Q. stand out in this regard.

You may say, no way, but the fact is that the above mentioned arcade conversions are those I always return to on the ZX Spectrum when it comes to arcade conversions, simply because they are a lot of fun to play and in fact none of these game's arcade ancestors belong on my list of my favourite arcade games (don't get me wrong they're all good arcade games, but personally I'm more into the arcade games from the so called ”Golden Age of Arcade Games" - 1978 to 1983 - for example Frogger, Galaxians, Gyruss, Tutankham, Pengo, Xevious and Dig Dug), but their ZX Spectrum versions just play so extremely well and are at the same time very well presented given the limitations of the hardware, that I feel they surpass them gameplay-wise.

I don't know if I'm right in my last assumption as it is based on my own personally experiences with said arcade games (not so much in the actual arcades, but mainly on a platform like Mame and through various compilations and downloadable games on gaming platforms such as the Nintendo 3DS, Playstation Vita and Gameboy Advance) but my initial claim that the ZX Spectrum is the best 8 bit home computer (and probably also generally better than the two popular 16 bit home computers) when it comes to gameplay in arcade conversions and arcade like games, I stand by.

Home: http://yupeeter.com