Difference between revisions of "Digital Joysticks"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Compatible Standard Joysticks)
(Using the Keyboard as Joystick Replacement)
Line 54: Line 54:
 
* [[Digital Joystick Related]]
 
* [[Digital Joystick Related]]
  
== Using the Keyboard as Joystick Replacement ==
+
== Developing programs that use joystick ==
  
Most games (should) also support keyboard controls for users who don't own joysticks. Most commonly used keys are:
+
In the CPC world it is more common that a game supports both keyboard and digital joystick for those users who don't own joysticks.
* '''Cursor keys & SPACE''' - This is '''not''' good for CPC 464 and 664 (which have uncomfortably arranged cursor keys) (only the 6128 and CPC+ do have modern cursor keys; as do emulators with PC keyboards)
+
In addition, it is also nice if the keys could be redefined but that is not necessary.
* '''Q,A,O,P,SPACE''' - This is a good solution, and it's sorts of standard (used by many games)
+
 
Best would be to implement both of the above solutions. Q-A-O-P is of course for english QWERTY keyboards, on french AZERTY it'd be A-Q-O-P (either way, the bits in the keyboard matrix are the same).
+
There are some common keyboard configurations used:
 +
 
 +
* '''Cursor keys & SPACE''' - This configuration is often used and is great for the CPC6128 and Plus and playing using emulators. This is '''not''' good for CPC 464 and 664 (which have uncomfortably arranged cursor keys)
 +
 
 +
* '''Q,A,O,P,SPACE''' - (Q up, A down, O left, P right, SPACE fire) This is a good solution, and it's a sort of standard (used by many games). It is best for english QWERTY keyboards, on french AZERTY it'd be A-Q-O-P (but because the decoding of the keys is done in software, normally by the OS, the bits in the keyboard matrix are actually the same).
  
 
== Other game controller inputs ==
 
== Other game controller inputs ==

Revision as of 05:45, 5 February 2010

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

Jy2.jpg

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 a built-in Y-cable).

Official CPC+/GX4000 Joypads

Gx4000.jpg

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

Joystick Competition PRO 5000 box front.jpg

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 or the Konix Speed King..

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...

Developing programs that use joystick

In the CPC world it is more common that a game supports both keyboard and digital joystick for those users who don't own joysticks. In addition, it is also nice if the keys could be redefined but that is not necessary.

There are some common keyboard configurations used:

  • Cursor keys & SPACE - This configuration is often used and is great for the CPC6128 and Plus and playing using emulators. This is not good for CPC 464 and 664 (which have uncomfortably arranged cursor keys)
  • Q,A,O,P,SPACE - (Q up, A down, O left, P right, SPACE fire) This is a good solution, and it's a sort of standard (used by many games). It is best for english QWERTY keyboards, on french AZERTY it'd be A-Q-O-P (but because the decoding of the keys is done in software, normally by the OS, the bits in the keyboard matrix are actually the same).

Other game controller inputs

The CPC+/GX4000 additionaly have an 15pin Analog Joystick Port, and a 6pin Lightgun socket (AUX).