This guide is for anyone who wants to create an auto-calibrating 720 joystick.
Credits to:
PL1 (Scott) for teaching me all of this.
DarthMarino for showing me the MAME settings.
Issues:The problem with 720 is that the controller uses a tilted joystick on a spinner. It spins on a single axis while the skater spins in a circle. What that means is after a few spins (about 10-20) in the same direction, the stick no longer lines up with the skater on the screen. Meaning, if the joystick is facing North (up), the skater should face North, but is no longer aligned with the joystick.
Fix:To correct this problem, in MAME there is a “center” button, which when pressed would FORCE the skater to face North (up). So, if the skater goes out of alignment, the player can point the joystick North (up) and push the “center” button to force the skater face North. Your MAME settings must be set to “Real” in “Machine Configuration” menu to get the centering options in the "Input Assignments" menu.
DarthMarino explains it better in his video here:
How to:To achieve this button press without ever needing to press a button (like the actual 1986 arcade cabinet). I ran an optical sensor in parallel (spliced) into my "center" button. I spliced the power line into the spinner's power (see diagram below). I placed the sensor under the joystick, in the North (up) or 12 o’clock position. Then I screwed in a disc with a single protruding “tooth” to the bottom of the spinner shaft via the screw on the bottom. So, every time the stick is pointing in the North (up) position, there is a disc with a single tooth interrupting an optic sensor, which creates a button click. Again, that button click will point the skater North (up) each time it is pressed, or each time the joystick is pointing North. = auto-calibration.
MAME settings:Keyboard press “TAB” (using these settings alone will allow you to play 720 fairly accurately, will need to press the center button to re-align the skater when he gets out of wack)
1- Select “Machine Configuration” > “Controller Type” = “Real”
2- Select “Input Settings” > “Input Assagissements”
P1 Button 1 = Kick/Player 1 (
map this button)
P2 Button 2 = Jump/Player 2 (
map this button)
Rotate Analog =
Spin your spinner to map Rotate Analog INC = None
Rotate Analog DEC = None
Center Analog =
Spin your spinner to map it should also automatically map your "Center INC" button
Rotate Analog INC = (
map this button) This is the button I have mapped to the optic sensor
Rotate Analog DEC= (can map this also, but not necessicary)
3- Select “Input Settings” > “Analog Input Adjustments:"
Center Inc/Dec Speed = 255
Center Reverse = Off
Center Sensitivity = 255
Rotate Inc/Dec Speed = 0
Rotate Reverse = Off
Rotate Sensitivity = 75 (Works well for X-Arcade/Tankstick spinners, This number will vary depending on spinner brand)
Items used:
1 - arcade button (mapped to “Center INC”)
1 - Interruptor disc (3d printed or fabricated)
1 - wire kit with pins
https://a.co/d/1nVQird1 - optic sensor (Amazon or similar)
https://a.co/d/axq8wgl1 - analog spinner (Mine is on a Tankstick Max from X-Arcade)
https://shop.xgaming.com/products/x-arcade-tankstick-max1 - 720 joystick (3d printed, fabricated, or ordered somewhere. I got mine on eBay)
https://www.ebay.com/itm/167219123775?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=v4lY9V5LTHa&sssrc=2047675&ssuid=VvGZ3I3gTxq&widget_ver=artemis&media=COPYSpliced to button:Optic sensor and 3D printed disc:Joystick auto-calibrating when it's in the North (up) position. I'm extremely new to all this. I just got into it about 3 months ago. I'm sure the pro's in here have way better or more efficient ways to do this. But this works amazingly well for me. Also, the 3d prints will vary based on individual controller cases and whatnot, but this worked for me. If anyone wants to do this same setup, or just wants the files, feel free to send a message. Hope this helps!
-Chris