Sinclair ZX Spectrum Joysticks Explained
This page serves as a brief overview of the various types of joystick that were available for the Sinclair ZX Spectrum. A lot of games supported multiple joystick interfaces, such as Kempston, Interface II, Protek, Fuller, Cursor, and more.
Perhaps the most popular joystick interface, the Kempston interface does not map directly to the keyboard (unlike most of the other interfaces), instead using hardware port 31 (1Fh). This means the software must be programmed to directly support this interface, although this was a trivial task for programmers. The most popular joysticks such as the Competition Pro and Quickshot range used the Kempston interface.
The Kempston interface supported what was commonly known as the 'Atari' standard joystick - these had a female 9-pin DSUB plug, and supported 5 basic instructions: Up, Down, Left, Right, and Fire.
This interface came out as the clear winner against other standards such as Protek and AGF's cursor-based solution and the Fuller standard during the days of the 48K Spectrum. It lasted right up until the Amstrad buyout of Sinclair, with the introduction of the Spectrum +2 and beyond, which had two built-in joystick ports that were Sinclair/Interface 1-compatible only. Still, the name Kempston lived on well into the latter years of the Spectrum's life, with even very late games supporting it.
Sinclair / Interface 2
Released in September 1983 for a retail price of £19.95, Sinclair's own Interface 2 was a peripheral that combined a ROM cartridge slot with two joystick ports. These joystick ports were configured in games by choosing either the 'Sinclair' or 'Interface 2' option. The 'left' joystick port maps directly to the keys 1-5 on the keyboard and can therefore be read via port F7FEh. The 'right' joystick port maps directly to keys 6-0. By mapping directly to the keys, a player can of course just use the keys instead if they so choose.
The interface also provided a 'pass-through' expansion bus, which in theory meant that if you had more than one expansion unit you could daisy-chain the second off the back of the Interface 2. In reality, this pass-through was a cut-down version which only allowed the connection of the ZX Printer. The ROM cartridge slot was added to try and ensure the Spectrum kept up with games consoles, and permitted the use of compatible software titles on ROM to be instantly usable. However this was a commercial failure, as each cartridge could only hold 16KB, and most games were 48KB. Only 10 titles were commercially released on ROM.
The one benefit that was realised with the Interface 2 was its support of two joysticks simultaneously. Other interfaces such as Kempston only supported a single joystick.
A 'cursor' joystick maps to the cursor keys on the Spectrum keyboard (keys 5-8 and 0 for fire). To read a cursor joystick requires reading of bit 4 on port F7FEh, and bits 0,1,2 and 3 on port EFFEh. Two companies, Protek and AGF, both produced interface boards that supported a cursor joystick option.
The key advantage of this interface was when used with games that didn't directly support a joystick, but had an option to redefine the keys used to play the game. You could then'map' the cursor keys by moving the joystick in a certain direction, and play the non-joystick game with a joystick! The electronics for the Cursor interface were more complex due to the fact that the Spectrum keyboard had to be read in groups of 5 at a time, and so manufacturing a cursor interface was more expensive.
It didn't last long against the competition once joystick gaming was a recognised 'must have' in titles.
In 1983, Fuller released the 'Audio Box', or just 'Fuller Box', for an RRP of £29.95. This was primarily an enhancement to the ZX Spectrum's somewhat inadequate piezo electric buzzer. It had a Yamaha AY-3-8912 sound chip (as later found in the ZX Spectrum 128K) which produced 3 channel sound for any supported software and you could even buy an optional speech chip for it. But it also included a joystick port and a pass-through port to connect further peripherals to the Spectrum..
This joystick port used port 7Fh, which returned F--RLDU, whose active bits were low (0=triggered, 1=untriggered). It supported standard Atari-style joysticks just as with the Kempston, Interface 2, and Cursor joystick interfaces. The Fuller interface is quite a rare item these days as they didn't sell in great numbers.
The Timex-Sinclair TS2068 and TC2068 computers came with a built-in joystick interface which was a little different. To read from these, you had to read from register 14 of the AY-3-8912 sound chip. Address bits A8 and A9 determine which joystick to read (01=JOY1, 10=JOY2, 11=both OR'd). As a result, port 01F6h is mainly used to read joystick 1, and 02F6h is used to read joystick 2. The Timex-Sinclair TC2048 came with a Kempston-compatible joystick interface.
The 'Amstrad' Spectrums: Spectrum +2 (grey with cassette), +3/+3B (black with disk drive), +2A/+2B (black with cassette)
When Amstrad bought Sinclair in 1987, they enhanced the Spectrum 128 into the +2, giving it two built-in joystick ports. These used priorietary pinouts which prevented Atari-style joysticks from working, so they could sell their own joystick - the Sinclair SJS1. You could buy the joystick separately for £14.95, but one was often bundled with the purchase of a +2 or +3 model, and it wasn't particularly highly regarded.
Third-party manufacturers soon produced conversion adapters to allow owners of Atari-style joysticks to work with the +2 and +3. You can still purchase these adapters new today from online auction sites or create your own!