Difference between revisions of "Analog Joysticks"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Analog CPC+ Joysticks)
(Technical)
Line 10: Line 10:
  
 
The analog inputs are read from memory mapped ASIC registers:
 
The analog inputs are read from memory mapped ASIC registers:
   6808h  ADC0  Analogue Joystick 1, X-Axis (00h=Left=0 ohm, 3Fh=Right=180K ohm)
+
   6808h  ADC0  Analogue Joystick 1, X-Axis (00h=Left=0 ohm, 3Fh=Right=138K ohm)
   6809h  ADC1  Analogue Joystick 1, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =180K ohm)
+
   6809h  ADC1  Analogue Joystick 1, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =138K ohm)
   680Ah  ADC2  Analogue Joystick 2, X-Axis (00h=Left=0 ohm, 3Fh=Right=180K ohm)
+
   680Ah  ADC2  Analogue Joystick 2, X-Axis (00h=Left=0 ohm, 3Fh=Right=138K ohm)
   680Bh  ADC3  Analogue Joystick 2, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =180K ohm)
+
   680Bh  ADC3  Analogue Joystick 2, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =138K ohm)
 
   680Ch  ADC4  Unused, wired to +5V (twice the maximum of 2.5V)  (returns 3Fh)
 
   680Ch  ADC4  Unused, wired to +5V (twice the maximum of 2.5V)  (returns 3Fh)
 
   680Dh  ADC5  Unused, wired to GND (equivalent to 0 ohm)        (returns 00h)
 
   680Dh  ADC5  Unused, wired to GND (equivalent to 0 ohm)        (returns 00h)
Line 19: Line 19:
 
   680Fh  ADC7  Unused, wired to GND (equivalent to 0 ohm)        (returns 00h)
 
   680Fh  ADC7  Unused, wired to GND (equivalent to 0 ohm)        (returns 00h)
 
To read that registers: Unlock the ASIC, and then map its register to memory at 4000h..7FFFh.
 
To read that registers: Unlock the ASIC, and then map its register to memory at 4000h..7FFFh.
 +
 +
Values measured by Octoate:
 +
  ADC input at 00h..01h  =  0 Ohm    (left/up)
 +
  ADC input at 1Fh..20h  =  50 kOhm  (center) (that is, the center of ADC values, not of the resistor values)
 +
  ADC input at 3Eh..3Fh  =  138 kOhm  (right/down)
  
 
== Analog CPC+ Joysticks ==
 
== Analog CPC+ Joysticks ==

Revision as of 08:29, 4 April 2010

The CPC+ and GX4000 contain an analog joystick port (additionally to the normal Digital Joystick port).

Technical

The connector is similar as PC/Soundblaster joystick ports, for details on the pin-outs (and differences between CPC and PC joysticks), see:

The buttons are accessed same ways as for Digital Joysticks (ie. as part of the keyboard matrix).

The analog inputs are read from memory mapped ASIC registers:

 6808h  ADC0  Analogue Joystick 1, X-Axis (00h=Left=0 ohm, 3Fh=Right=138K ohm)
 6809h  ADC1  Analogue Joystick 1, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =138K ohm)
 680Ah  ADC2  Analogue Joystick 2, X-Axis (00h=Left=0 ohm, 3Fh=Right=138K ohm)
 680Bh  ADC3  Analogue Joystick 2, Y-Axis (00h=Up  =0 ohm, 3Fh=Down =138K ohm)
 680Ch  ADC4  Unused, wired to +5V (twice the maximum of 2.5V)   (returns 3Fh)
 680Dh  ADC5  Unused, wired to GND (equivalent to 0 ohm)         (returns 00h)
 680Eh  ADC6  Unused, wired to +5V (twice the maximum of 2.5V)   (returns 3Fh)
 680Fh  ADC7  Unused, wired to GND (equivalent to 0 ohm)         (returns 00h)

To read that registers: Unlock the ASIC, and then map its register to memory at 4000h..7FFFh.

Values measured by Octoate:

 ADC input at 00h..01h  =  0 Ohm     (left/up)
 ADC input at 1Fh..20h  =  50 kOhm   (center) (that is, the center of ADC values, not of the resistor values)
 ADC input at 3Eh..3Fh  =  138 kOhm  (right/down)

Analog CPC+ Joysticks

Analogue joysticks confirmed to be compatible with the CPC+:

Analog PC Joysticks

Analog PC Joysticks have a very similar 15pin connector. Theoretically, a few PC joysticks might be CPC+ compatible. However, in practice, this is rather unlikely - the potentiometers must have correct value, the button common pin must be correct, and the joystick may not contain additional electronics like auto-fire circuits, electrolyte capacitors, or digital-switch to analog-signal converters.

  • Caution - compared with PCs, the CPC+/GX4000 do output reversed polarity on the joysticks power supply pins, so any special electronics in PC joysticks may get destroyed when connecting them to a CPC Plus/GX4000.

If you want to use a PC joystick: Remove any electronics other than the potentiometers and buttons. Ensure that buttons are wired to correct common pin. And, probably you'd need to replace the potentiometers (if they aren't 180K) - however, this may be the complicated part: potentiometers in analog joysticks aren't necessarily matching standard mechanical dimensions.

CPC+ Software with Analog Joystick Support

  • Tennis Cup 2 ( Cartridge ) - allows to use Analog Joystick (as digital joystick replacement in two-player mode, selectable in options menu - the game merely emulates digital inputs, it doesn't actually support analog input)
  • RP11 Arnold V diagnostic ROM cartridge - allows to display the eight ADC inputs in numeric form
  • FutureOS - homebrew operating system (Plus version)