Original ZX Spectrum 128+2/+3 uses SINCLAIR joystick, incompatible with AMIGA / C64/ ATARI standard. Also, original the 'left' Sinclair joystick maps the joystick directions and the fire button to the 1 (left), 2 (right), 3 (down), 4 (up) and 5 (fire) keys on the ZX Spectrum keyboard, and can thus be read via port 0xf7fe; Right one uses 6,7,8,9,0 respectively. For any of the joystick interfaces which map to keys, any game offering the appropriate form of joystick control can instead be played with the listed keys. Others ZX spectrum do not have any joystick ports at all...
My interface is based on CPLD but initial idea from VELESOFT. Expansion works in two modes (selectable joystick activity in port 1). Until ZX spectrum is on, CPLD stores configuration of interface. Device is designed for all zx spectrums with Z80 CPU in DIP40 package.
and the most important:
YOU CAN USE AMIGA/ATARI/C64 compatible joysticks ! no tricky rewirings needed anymore.