Galaxy Force upright project – Pot amplification

So here’s the problem – nearly all the analogue control Sega games use a 5k potentiometer, one side is connected to 5v and the other to ground.  What you get on the middle wiper between them is how the game knows where the stick is.  It translates this voltage from between 0v to 5v (in reality you never reach the extremes) into hex values from 00 to FF.  This is why all the manuals tell you to adjust the middle point to hex 80 – approximately 2.5v.

Galaxy Force wants this normal range, but due to G-Loc having a short throw stick, they used multiplied inputs on the boardset, which the Galaxy Force code isn’t trying to read.  End result – we need to have a 0 -> 5v on the correct Galaxy Force inputs, but the G-Loc stick simply doesn’t turn the pot that far – in fact it’s closer to 1v-4v horizontal, and 1.5v-3.5v vertical.  The result is obviously that you can’t turn or climb as sharply as you need. For Galaxy Force the following ranges are needed (taken from a Super Deluxe!):

Horizontal: 20 - D0
Vertical: 1F - D0
Throttle: 1F - F0

I thought this must surely be a probly someone had encountered in the past due to the large variety of aftermarket analogue controls.  Sure enough, a solution did exist.  Happ Controls made a pot amplifier board so that their sticks could be used in standard 0->5v games.  I had to buy them directly, but I got a pair which could do two axis each (the throttle wasn’t quite wide enough).

pgf_happ_pot_amp

For reference, here’s the manual for them:

HAPP CONTROLS POTENTIOMETER AMPLIFIER PCB #95-0013-00

The Happ Controls Pot Amp pcb is designed to be used with a Happ 
Controls analog (potentiometer type) joystick to increase the
effective range of the potentiometers on the joystick.
For example, when operating at 5 volts, an unamplified joystick
moved to it's extremes has a voltage range at the potentiometer of
only about .7 volts. With the Pot Amp pcb the voltage range can be
adjusted anywhere from .7 to 5 volts. The center voltage can also
be adjusted to voltages other than the usual 2.5 volts
independently.  This means that an analog joystick equipped with a
Pot Amp pcb can be used with any game hardware that uses an analog
type joystick operated at 5 or 12 volts. No special wiring is
necessary; power for the pcb is connected to the vertical and
horizontal potentiometer +V and Common connections.

Connection:
PCB pin Function
1. Vertical output
2. Horizontal output
3. Horizontal input
4. Vertical input
5. NC
6. Power supply common
7. +V (5 or 12 volts)

Adjustments:
VR1 Vertical center
VR2 Vertical range
VR3 Horizontal range
VR4 Horizontal center

To adjust, place joystick at it's center and adjust center trim
pots to the desired voltage (typically 2.5 volts). Then move the
joystick to it's extremes and adjust range trim pots to the
desired voltage range (typically 3 volts or a bit less). The
adjustments are interactive, so it may be necessary to repeat the
adjustments.

Sounds great on paper, but the reality was I just couldn’t adjust them in any usable manner – I had numbers maxing out, dragging and falling – from both boards so it wasn’t a fault.  Eventually I decided it must just be due to the way the amp worked, being set up for the very low range sticks that Happ made.

I taked to Andy Welburn (runs Andy’s Arcade), he’s a very smart guy and one of the best arcade techs in the UK.  He thought it should be possible to build a PIC controlled encoder which could read in any particular range, and translate it to another range digitally.  It took a while before he had time to look at it, and the project went on hold for several months.  Last week, the prototype arrived:

gfp_smart_joystick_interface

At the weekend, I fitted the board.  Everything seemed to go well initially, but after calibration the centering was off by quite a large amount, enough to affect gameplay certainly.  I tried a lot of messing around adjusting the potentiometers to various mid-points but it always came back to the same problem.  Then, thinking about it a bit more it hit me.  The figures I’d been given for the controller were incorrect, or at least – the assumption for this adapter PCB is that there is the same amount of left movement as right, and depending on how a stick is constructed, what condition the stoppers are in/etc that might not physically be the case.  Looking at the hex values I’d been given, the important values were 1F, 80 and D0.  80 – 60 is 20, but 80 + 60 is E0, and I’d been programming it to D0.  The end result was causing the offset.  Re-calibrating for 20-E0 fixed this problem, obviously if could be 1F-E1 too.  What’s interesting is the game code seems to recognise a wider input band than you can actually achieve on a real cabinet – just try it in MAME, since that will allow you to go from 01-FF you can bank much more sharply than on a real machine.

Aside from the stick getting jammed due to a bad hacked up dust cover, now I had working controls.  The throttle hadn’t yet been connected but it was going to be similarly easy to set up.