Changes

Analog Joysticks

1,187 bytes added, 00:27, 15 June 2018
/* Analog PC Joysticks */
* [[Connector:Analogue joystick (CPC Plus only)|Analog Joystick Port Pin-Outs]]
 
For info on reading the analog inputs, see [[Arnold V Specs Revised]] (though still unknown which of the eight ADC0..ADC7 inputs are mapped to the four X1,Y1,X2,Y2 pins...?)
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=180K 138K ohm) 6809h ADC1 Analogue Joystick 1, Y-Axis (00h=Up =0 ohm, 3Fh=Down =180K 138K ohm) 680Ah ADC2 Analogue Joystick 2, X-Axis (00h=Left=0 ohm, 3Fh=Right=180K 138K ohm) 680Bh ADC3 Analogue Joystick 2, Y-Axis (00h=Up =0 ohm, 3Fh=Down =180K 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)
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 ==
Currently, Analogue joysticks confirmed to be compatible with the only known CPC+ compatible analogue joysticks is the Sinclar :* [[Amstrad Analogue Joystick AJ-5]]* [[Sinclair SPJ-1|Amstrad's Sinclair SPJ-1.]]
<gallery caption="SPJArnold 5 Diagnostic cart test results -1 Sinclar Professional Joystick">Image:Joystick SPJ-1 with Box.jpg|SPJ-1 with BoxImage:Joystick SPJ-1 Booklet.jpg|SPJ-1 Booklet</gallery>
The SPJ{| class="wikitable"|-1 (Sinclair Professional Joystick) was produced to accompany [[Amstrad]]'s unsuccessful Sinclair PC200 (an old PC with 8086 processor). The SPJ! Manufacturer !! Model !! Fire Common !! Resistor !! Centre X !! Centre Y !! X Axis min !! X Axis max !! Y Axis min !! Y Axis max !! Ref !! Notes|-1 was a fully| Quickshot || QS-fledged analogue joystick, with potentiometers used to measure input (rather than switches as in its digital precessors). It was probably a rebadged PC6219 || Pin 4 || TBC || &1a-standard device. The SPJ&27 || &1c-1 was, like its host machine, a flop, and today appears 2b || &00-&0f || &2c-&33 || &00-&12 || &31-&35 || dthrone || Ranges correspond to be exceptionally rare.x and y axis adjust sliders|}
== Analog PC Joysticks ==
Analog PC Joysticks have a very similar 15pin connector. TheoreticallyBut with some differences, a few which cause compatibility problems. Statistically, many people reported the analog PC joysticks might be '''do work''' with analog CPC+ compatiblesoftware. However, in practice, this is rather unlikely Many other people reported it won't work - the potentiometers must have correct value, the button common pin must be correct, and the though it's quite possibly that they simply made some fundamental mistakes (like trying to use "digital" 15pin joysticks as "analog" joystick may not contain additional electronics like auto-fire circuits, electrolyte capacitors, or digital-switch to analog-signal convertersthat they didn't even had proper CPC+ software for testing).
* '''CautionButton Common Pin''' - compared with In PCs, the button-common-pin can be at Pin4 or Pin5, on the CPC+/GX4000 do output '''reversed polarity on the joysticks power supply''' pins, so it must be Pin4 (or Pin12 for 3rd-4th button; if any special electronics in '''PC joysticks may get destroyed''' when connecting them to a CPC Plus/GX4000). If necessary, rewire that pins.'''
If you want to use a * '''Reversed Supply Voltages''' - Compared with PC joystick: Remove any electronics other than Gameports, the potentiometers +5V and buttons. Ensure that buttons GND are wired to correct common pinconnected vice-versa in the CPC+. And, probably you'd need to replace This is no problem for the potentiometers (both PC and CPC+ use Pin1 as pot-common). However, it is a problem if they arenthe joystick contains '''additional electronics''' (auto-fire circuits, electrolyte capacitors, circuits inside of ''digital'' joysticks/gamepads that do emulate analog signals, etc.) These won't 180Kwork (and may get damaged by the reversed voltages) . If necessary, remove any such electronics before connected the joystick to the CPC+. * '''Resistor Values''' - howeverIn PCs, the A/D conversion is done by software timings, meaning the PCs could handle joysticks with different potentiometer types (anything from 10 kiloohm to many megaohm should work). The CPC+ does the A/D conversion by hardware, this may requires less CPU load, but it also means that it requires fixed potentiometer types (circa '''138k'''Ω).** Analog PC joysticks are reportedly most commonly using '''100k''', '''120k''', or '''150k'''Ω pots. These types should be more or less compatible with the complicated part: potentiometers in analog CPC+ (100K/120K won't reach the ADC=3Fh max value, for example, resolution might be only ADC=00h..30h. And 150K would be clipped to ADC=3Fh for anything above 138kΩ).** To handle those different pot types, CPC+ software should include calibration options.** There are also some PC joysticks arenwith incompatible pot types like '''300k'''Ω - these won't necessarily matiching standard mechanic dimensionswork (since values above 138k will be clipped).
== CPC+ Software with Analog Joystick Support ==
* [[FutureOS]] - (Plus version)* [[Tennis Cup 2 ( Cartridge )]] - allows to use Analog Joystick (as digital joystick replacement in two-player mode, see selectable in options menu- the game merely emulates digital inputs, it doesn't actually support analog input)* RP11 diagnostics Arnold V diagnostic ROM cartridge - allows to display the eight ADC inputs in numeric form*[[FutureOS]] - homebrew operating system (Plus version)
[[Category:HardwareCPC Plus]][[Category:PeripheralsFutureOS]][[Category:CPC PlusGames Programming]][[Category:StubInput Device]][[Category:Peripherals]]
1,069
edits