Hey, I think I got it!!!
Aaron Giles' code always passes a 0 for the value of the calibration spinner disc. In order to find out if the code for the spinner disc COULD register, I added a looping integer variable that pretended to spin the second spinner disc really really fast. Each time my fake calibration spinner registered a change, the skateboarder would turn a minute (my-noot) notch towards 12 o'clock. (requiring 128 'notches' to actually turn the skateboarder from south all the way to north).
What this tells me is that the calibration spinner with it's two notches will only account for up to two missed notches per complete turn of the main spinner disc assuming that the track x and track y sensitivities are the same.
When I first start 720 in Mame with these changes, the FIRST time that I register movement on the calibration spinner, the skateboarder immediately jumps to 12 o'clock, thus initially calibrating it when you spin it the first time.
I set the default sensitivity for the calibration stick to 1% (darnitall, a value of 0 caused a divide by 0) and the key/joy speed to 0. This is so that it's affect on spinner/mouse users is minimal - it will do the initial calibration and jump the skateboarder to the 12 o'clock position, but besides that I don't think it has much of a noticeable affect (avid 720' mouse users may beg to differ with me on that statement).
If you use it with the 720 joystick, then you will have to boost up the track_y sensitivity for the calibration spinner. Also, it's likely that the track_x sensitivity will need to be adjusted (I am unable to try it with the 720 arcade joystick right now).
I changed the dial control to IPT_TRACKBALL_X and added another input port for IPT_TRACKBALL_Y and processed it as the calibration spinner, and I think it would work like the arcade machine with the 720 joystick. You'd just have to make sure that the sensors for the spinner discs were in the 12 o'clock position and the main spinner disc was mapped to the x mouse axis and the calibration spinner disc was mapped to the y mouse axis.
The only code that I changed was 720 specific code for atarisy2.c, so it shouldn't affect any other games. (That makes me very happy!)
Somebody with an optipac (or some kind of hack that involves both spinner discs) and a 720 controller, please try it out! I can't wait to play it myself!
I also modified my source code for using an 8 way joystick. It's a little bit more complicated to set up, but it will not affect any other games anymore.
Get both modified files at:
http://www26.brinkster.com/jstookey/joystick/720mame.htmlPlease try them out and let me know what you think!