{"id":141,"date":"2013-09-26T02:13:54","date_gmt":"2013-09-26T02:13:54","guid":{"rendered":"http:\/\/blog.system11.org\/?page_id=141"},"modified":"2013-09-29T18:12:54","modified_gmt":"2013-09-29T18:12:54","slug":"galaxy-force-upright-project-pot-amplification","status":"publish","type":"page","link":"https:\/\/blog.system11.org\/?page_id=141","title":{"rendered":"Galaxy Force upright project &#8211; Pot amplification"},"content":{"rendered":"<p>So here&#8217;s the problem &#8211; nearly all the analogue control Sega games use a 5k potentiometer, one side is connected to 5v and the other to ground.\u00a0 What you get on the middle wiper between them is how the game knows where the stick is.\u00a0 It translates this voltage from between 0v to 5v (in reality you never reach the extremes) into hex values from 00 to FF.\u00a0 This is why all the manuals tell you to adjust the middle point to hex 80 &#8211; approximately 2.5v.<\/p>\n<p>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&#8217;t trying to read.\u00a0 End result &#8211; we need to have a 0 -&gt; 5v on the correct Galaxy Force inputs, but the G-Loc stick simply doesn&#8217;t turn the pot that far &#8211; in fact it&#8217;s closer to 1v-4v horizontal, and 1.5v-3.5v vertical.\u00a0 The result is obviously that you can&#8217;t turn or climb as sharply as you need. For Galaxy Force the following ranges are needed (taken from a Super Deluxe!):<\/p>\n<pre>Horizontal: 20 - D0\r\nVertical: 1F - D0\r\nThrottle: 1F - F0<\/pre>\n<p>I thought this must surely be a probly someone had encountered in the past due to the large variety of aftermarket analogue controls.\u00a0 Sure enough, a solution did exist.\u00a0 Happ Controls made a pot amplifier board so that their sticks could be used in standard 0-&gt;5v games.\u00a0 I had to buy them directly, but I got a pair which could do two axis each (the throttle wasn&#8217;t <em>quite<\/em> wide enough).<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/pgf_happ_pot_amp.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-142\" alt=\"pgf_happ_pot_amp\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/pgf_happ_pot_amp.jpg\" width=\"640\" height=\"480\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/pgf_happ_pot_amp.jpg 640w, https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/pgf_happ_pot_amp-300x225.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>For reference, here&#8217;s the manual for them:<\/p>\n<pre>HAPP CONTROLS POTENTIOMETER AMPLIFIER PCB #95-0013-00\r\n\r\nThe Happ Controls Pot Amp pcb is designed to be used with a Happ \r\nControls analog (potentiometer type) joystick to increase the\r\neffective range of the potentiometers on the joystick.\r\nFor example, when operating at 5 volts, an unamplified joystick\r\nmoved to it's extremes has a voltage range at the potentiometer of\r\nonly about .7 volts. With the Pot Amp pcb the voltage range can be\r\nadjusted anywhere from .7 to 5 volts. The center voltage can also\r\nbe adjusted to voltages other than the usual 2.5 volts\r\nindependently.  This means that an analog joystick equipped with a\r\nPot Amp pcb can be used with any game hardware that uses an analog\r\ntype joystick operated at 5 or 12 volts. No special wiring is\r\nnecessary; power for the pcb is connected to the vertical and\r\nhorizontal potentiometer +V and Common connections.\r\n\r\nConnection:\r\nPCB pin Function\r\n1. Vertical output\r\n2. Horizontal output\r\n3. Horizontal input\r\n4. Vertical input\r\n5. NC\r\n6. Power supply common\r\n7. +V (5 or 12 volts)\r\n\r\nAdjustments:\r\nVR1 Vertical center\r\nVR2 Vertical range\r\nVR3 Horizontal range\r\nVR4 Horizontal center\r\n\r\nTo adjust, place joystick at it's center and adjust center trim\r\npots to the desired voltage (typically 2.5 volts). Then move the\r\njoystick to it's extremes and adjust range trim pots to the\r\ndesired voltage range (typically 3 volts or a bit less). The\r\nadjustments are interactive, so it may be necessary to repeat the\r\nadjustments.<\/pre>\n<p>Sounds great on paper, but the reality was I just couldn&#8217;t adjust them in any usable manner &#8211; I had numbers maxing out, dragging and falling &#8211; from both boards so it wasn&#8217;t a fault.\u00a0 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.<\/p>\n<p>I taked to Andy Welburn (runs Andy&#8217;s Arcade), he&#8217;s a very smart guy and one of the best arcade techs in the UK.\u00a0 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.\u00a0 It took a while before he had time to look at it, and the project went on hold for several months.\u00a0 Last week, the prototype arrived:<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-148\" alt=\"gfp_smart_joystick_interface\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface.jpg\" width=\"1280\" height=\"791\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface.jpg 1280w, https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface-300x185.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface-1024x633.jpg 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2013\/09\/gfp_smart_joystick_interface-768x475.jpg 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><\/a><\/p>\n<p>At the weekend, I fitted the board.\u00a0 Everything seemed to go well initially, but after calibration the centering was off by quite a large amount, enough to affect gameplay certainly.\u00a0 I tried a lot of messing around adjusting the potentiometers to various mid-points but it always came back to the same problem.\u00a0 Then, thinking about it a bit more it hit me.\u00a0 The figures I&#8217;d been given for the controller were incorrect, or at least &#8211; 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.\u00a0 Looking at the hex values I&#8217;d been given, the important values were 1F, 80 and D0.\u00a0 80 &#8211; 60 is 20, but 80 + 60 is E0, and I&#8217;d been programming it to D0.\u00a0 The end result was causing the offset.\u00a0 Re-calibrating for 20-E0 fixed this problem, obviously if could be 1F-E1 too.\u00a0 What&#8217;s interesting is the game code seems to recognise a wider input band than you can actually achieve on a real cabinet &#8211; 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.<\/p>\n<p>Aside from the stick getting jammed due to a bad hacked up dust cover, now I had working controls.\u00a0 The throttle hadn&#8217;t yet been connected but it was going to be similarly easy to set up.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So here&#8217;s the problem &#8211; nearly all the analogue control Sega games use a 5k potentiometer, one side is connected to 5v and the other to ground.\u00a0 What you get on the middle wiper between them is how the game knows where the stick is.\u00a0 It translates this voltage from between 0v to 5v (in [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":120,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-141","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/pages\/141"}],"collection":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=141"}],"version-history":[{"count":13,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/pages\/141\/revisions"}],"predecessor-version":[{"id":221,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/pages\/141\/revisions\/221"}],"up":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/pages\/120"}],"wp:attachment":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}