Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: How to make an auto-calibrating 720° spinner joystick  (Read 1402 times)

0 Members and 1 Guest are viewing this topic.

CKebz

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 13
  • Last login:March 27, 2025, 11:32:35 pm
  • I want to build my own arcade controls!
How to make an auto-calibrating 720° spinner joystick
« on: March 24, 2025, 12:35:49 am »
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 = None
            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/1nVQird
1 - optic sensor (Amazon or similar)
https://a.co/d/axq8wgl
1 - analog spinner (Mine is on a Tankstick Max from X-Arcade)
https://shop.xgaming.com/products/x-arcade-tankstick-max
1 - 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=COPY

Spliced 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
« Last Edit: March 27, 2025, 11:32:35 pm by CKebz »

MartyKong

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 191
  • Last login:June 23, 2025, 01:34:12 pm
  • I want to build my own arcade controls!
Re: How to make an auto-calibrating 720° spinner joystick
« Reply #1 on: March 24, 2025, 10:12:24 am »
Wow, well done. Thanks for sharing :D