Technical
The CPC joystick port is (more or less) based on the Atari-standard, for details on the pin-outs (and differences between Amstrad CPC and normal Atari/Commodore ports), see:
At software side, the joystick port is part of the keyboard matrix, accessed via the general purpose I/O port in the PSG chip, which is itself accessed indirectly via the 8255 chip.
Official Amstrad Joysticks
Amstrad's two-button joysticks. The quality isn't spectacular, so most CPC users tended to use third-party sticks, with only 1-button, but better quality. The JY-2 version contains a connector for a second joystick (equivalent to an Y-cable).
Official CPC+/GX4000 Joypads
The CPC+ and GX4000 were shipped with one or two digital joypads included. Technically, they work same as normal joysticks. But, they have two buttons. And, the GX4000 doesn't have a keyboard which could be used instead of a second fire button. In result, some CPC+/GX4000 games may rely on 2-button hardware, making them incompatible with regular 1-button joysticks.
Compatible Standard Joysticks
All Atari-compatible digital joysticks with Single Fire Button and Four Direction switches should be usually working with the CPC. For example, classic Competition Pro joysticks.
Incompatible Standard Joysticks
- Joysticks that do require 5V/GND supply (eg. for built-in auto-fire circuits) won't work on the CPC.
- Joysticks with 2-3 buttons may also be problematic (in the Atari standard, 2nd/3rd button are wired between POT0/POT1 and 5V).
- And, in lack of the POT inputs, any kind of analog devices (like Atari paddles) won't work on the CPC.
- Newer joysticks with PC-style 15pin or USB connector obviously won't fit to the CPCs 9pin port (unless one eliminates the electronics inside of those joysticks, and re-wires their botton/dirction switches directly to the CPCs joystick port).
Y-Cable
The original CPC models have only one joystick port, but can be used with 2 joysticks when using a Y-cable:
The CPC+/GX4000 have two digital joystick ports (which work equivalent to the Y-cable).
Other hardware that can be connected to the CPC joystick port
The CPCs digital joystick port is occasionally also misused to connect other hardware, known examples are: Some Lightguns: (Gunstick, West Phaser). Amstrad's Lightpen (Amstrad LP-1 light pen). And, various mouse interfaces (AMX Mouse, Atari-ST mouse adapter, Dk'tronics Mouse Interface, CPC-Mousepack 2.0, GEOS mouse).
On the original CPCs, the direction/button inputs can be reprogrammed as outputs (via PSG/PPI config). However, this will NOT work on the CPC+/GX4000's dual joystick ports - which include diodes (like normal joystick Y-cables).
Joystick Related stuff... Sega Controllers...
Other game controller inputs
The CPC+/GX4000 additionaly have an 15pin Analog Joystick Port, and a 6pin Lightgun socket (AUX).