I received a 720 Degrees cicular spinner joystick in the mail today. I won it on Ebay for $20 + $8 shipping (from Australia!).
I've been losing a lot of sleep lately wondering how that thing could possible work. In my head, it had to work like a regular spinner. Friction-free spinning is the only way to go. However, the game knows when you are pointing the joystick 'up'. If it were a regular spinner, it wouldn't have any way of knowing what direction it's in. As soon as you powered the machine down, spun the joystick, and powered it up again, it would have lost it's position (besides other problems. For instance, this joystick couldn't possibly keep track of its position for the lifetime of the machine - it would get lost pretty quickly, I'd imagine).
As I hoped would happen, as soon as I took a quick look at the joystick (it's a BIG joystick - holy gods! It's nearly a foot tall!) it was clear what was happening. It's sweet.
There are TWO spinner discs on one axle. One discs is the same as a Discs of Tron spinner, with 128 notches. The second disc (parallel to the first one) has 2 notches immediately beside each other in (let's say) the 'down' position. I assume that whenever the notches on the 'down' position are crossed, the machine knows to recalibrate the spinner to the 'down' position. This occurs with every rotation of the joystick, ensuring that it never has an opportunity to get completely lost.
All it will take is a pretty basic mouse hack - with x and y axes hooked up to each disc.
Then MAME needs to know what to do, also. I suspect that all I need to do is to treat the X-Axis like a regular spinner, and whenever the Y-Axis is triggered, I know that I must reset the controller's value to some hard coded value for the direction that he's in. Something like that anyway. I've been scrutinzing the code for the 720 degrees controls, and there's not much to it. (Of course I say that after 3 all-nighters of aggressively poking at it). The code is very nicely laid out to be extremely simple to make substantial modification to it, as far as the controlling method.
Then it's a matter of getting the sensitivity close to correct, and it's done!
It's possible that I may hit a pitfall or two... Like what if the mouse encoder that I use doesn't pick up EVERY notch crossing when I spin the joystick too fast? What if the sensitivity settings aren't granular enough for this paricular setup?
I'm not too worried. Those don't sound like show-stoppers, I bet I could get around them. And I'd be a little suprised if that happens. Does anyone know or have recommendations on mouse cards? Are some more accurate than others at counting notches at high speeds?
Also, does anyone know if it's possible or reasonable to try to make the original arcade encoder card talk to my computer instead of using a mouse hack?
Here are some pictures and information:
http://24.168.47.59:8080/examples/joystick/index.htmlGo to the image-link on the left pane of the 720 Degrees joystick to see it. At the bottom of the page is where I show the good pictures from this morning.
One big (sort of) question. There's a crazy contraption in the joystick. It's like a bike chain with gears. One big gear is connected to a small gear on the side. The small gear has an axle into some 'thing' with a little metal tube coming out the side. I don't know what it could be for. Light beam? Electric connector?
It doesn't appear to electically connect to anything, but maybe that's what the tube is for? I don't know. Maybe it has something to do mechanically for the joystick - somehow improving its feel... There are several pictures of it on the bottom of the the web site 720 page. I don't know. Any suggestions would be greatly appreciated. I'm hoping it's something normal - something that perhaps someone out there sees everyday and can recognize it.
Thanks!!!