Build Your Own Arcade Controls Forum

Main => Main Forum => Topic started by: goofy on August 30, 2004, 02:47:11 pm

Title: Dial on mouse supported or not?
Post by: goofy on August 30, 2004, 02:47:11 pm
I thought I had read somewhere that MAME does not currently supported the little vertical roller/dial that is on many mice these days. Is that correct? It seems like that would just be another input (like a Z-axis for the mouse). Could you use that input (in a mouse hack) instead of the X or Y-axis inputs if wanted? Or does MAME just not recognize that controller at all?
Title: Re:Dial on mouse supported or not?
Post by: Minwah on August 30, 2004, 03:32:31 pm
I believe the scroll wheel button part can be used, but not the 'axis' itself.  IIRC Aaron Giles hinted that he would be adding this in future.

I would be inclined to avoid that input until it is supported for sure...
Title: Re:Dial on mouse supported or not?
Post by: u_rebelscum on August 31, 2004, 01:59:28 am
To be more specific, the mame source code variables are ready to hold and use the mouse Z-axis/scroll wheel data, but ATM mame doesn't look if the mouse Z-axis is active (ie: assumes two axes).
Title: Re:Dial on mouse supported or not?
Post by: Tahnok on August 31, 2004, 05:40:35 pm
So, could you the wheel for a spinner? It seems like that would be a good way of inputting multiple optic devices into a single port. With a dual wheel mouse you could even have two trackballs on one cable.
Title: Re:Dial on mouse supported or not?
Post by: jerryjanis on August 31, 2004, 08:55:07 pm
I was toying around with using the mouse wheel as a spinner when adding rawmouse to mameanalog+.  I didn't explore all the possiblilities, but my impression was that it's not sensitive at ALL.  You can see how insensitive it is just by using it in Windows.  I removed the "clicker" from my mouse wheel so that it spins smoothly, and I have to move it a good 2 millimeters for it to register anything.  That may not sound like much, but the mouse itself is a lot more sensitive then that.  Maybe there are some tricks you can play, like adding a giant encoder wheel to it to make it more sensitive, but I would be suprised if the device and/or windows could handle really quick spins simply because it doesn't need to (unless you take it apart and use it for something completely different like an arcade spinner).

It would be worth testing to find out if it's as sensitive as the x and y mouse axes or not.

If it's as slow as it appears, then I think it has potential as an interface for a mechanical rotating joystick.
Title: Re:Dial on mouse supported or not?
Post by: goofy on September 01, 2004, 12:59:25 am
Jerryjanis -- That's precisely what I was thinking of doing with it. If it worked, you could hook up two of these mice to your joysticks using the 3-in-1 rotating joystick hack method and get the authentic clicking that was present in most of these games like Ikari Warrior, Guerilla War, etc.
Title: Re:Dial on mouse supported or not?
Post by: jerryjanis on September 01, 2004, 05:01:37 am
Perfect!  Mame will need to be programmed to handle it.  I had it sort of working with the windows XP multimouse code at one time.
Title: Re:Dial on mouse supported or not?
Post by: u_rebelscum on September 02, 2004, 12:43:08 am
I was toying around with using the mouse wheel as a spinner ... but my impression was that it's not sensitive at ALL.  ....  Maybe there are some tricks you can play, like adding a giant encoder wheel to it to make it more sensitive, but I would be suprised if the device and/or windows could handle really quick spins simply because it doesn't need to (unless you take it apart and use it for something completely different like an arcade spinner).

It would be worth testing to find out if it's as sensitive as the x and y mouse axes or not.

Sensitivy depends on two things: the scroll wheel encoder wheel "density", and the mouse driver.

The first one, the wheel density, is just like mice and TBs.  The more teeth and gaps per rotation, the higher the density, and the finer the sensitivity.  (Like normal mouse axes.)
FWIW, most (but not all) moue scroll wheel encoder densities are very low, in the 4-8 teeth per rotation range.  A very few use almost same encoder wheel density as the X and Y axes (call it ~24 teeth).

The second, the mouse driver, sets the data packet used to transmit the scroll wheel data.  The MS intellimouse drivers give 8 or 4 bits per send to the scroll mouse (X & Y have 8 bits) link to MS page discussing this (http://www.microsoft.com/whdc/device/input/5b_wheel.mspx).  IIRC, the (old-ish) MarbleMan+ logitech drivers gave only two bits to the scroll wheel; not sure what they do now.
The driver also translates the raw data to something windows expects.  This can decrease the percision of a good density scroll whell to the level of most of them, so it acts like the rest.

One of the dozen mice or so I have laying around has a good density scroll wheel encoder wheel; the rest are the normal low density type.  I'll try to take a pic and post it.

edit:  looking through some old pics, I was reminded that not all scroll wheels are optical.  Some of them might use what look like miniature unlimited rotation POTs (but I doubt they're POTs).
Title: Re:Dial on mouse supported or not?
Post by: Trimoor on September 02, 2004, 01:56:55 am
For a hack, I don't think wheel density has anything to do with it.
I all of my hacks, I solder the connections of the optics directly to the optical encoder of the spinner/trackball.

The only dependent I see is the mouse/driver being able to register it fast enough.

If someone could write/modify a driver to increase the data rate, that would be great.
(then we just need it to be implimented in MAME.)

Also, winXP has a setting to increase the data rate on ps/2 mice.
Anyone know what that does?
Title: Re:Dial on mouse supported or not?
Post by: Minwah on September 02, 2004, 05:12:33 am
edit:  looking through some old pics, I was reminded that not all scroll wheels are optical.  Some of them might use what look like miniature unlimited rotation POTs (but I doubt they're POTs).

This is what the Intellimouse I have looked at uses.  Having done some DirectInput coding recently, the value received by Windows for this scroll wheel appears to to be digital (basically up or down).

I guess it could be useful in some cases, but certainly not for spinners/trackballs etc.