Main > Software Forum
4 Spinners / Which MAME
u_rebelscum:
--- Quote ---
So XP doesn't support more than one mouse? Man, that sucks. u_rebelscum, do you see any kind of workaround that might work? Or are you keeping Analogmame a Win98 only application for the foreseeable future? Can someone elaborate on the situation with XP?
--- End quote ---
Win NT/2000/XP combine all mouse data before letting any applications see the mouse data. So while you can plug more than one mouse into an XP computer, all applications, including mame, will see only one mouse. This because all mouse drivers in XP family are kernal drivers, while in win98/Me the USB mouse drivers were not kernal drivers.
MS has stated (in newsgroup: microsoft.public.win32.programmer.directx.input) that:[*]this "feature" is intentional,[*]MS occasionally gets requests for adding support for multiple mice -> applications,[*]does not think there is any reason to add it,[*]but will think about adding it anyway.[/list]
All PR fluff; XP don't got it now, and can't do it now, so MS is trying to call it a "feature". :(
Now, the best fix would be for MS to change it's kernel code and add support multiple mice data reading by applications, like it did add to win98/Me when directX 8.0 came out. But it's a much bigger change to XP than it was to directX, and we are talking about MS, here. I say bombard MS with intellegent requests for this with the differences between support for: more than one device and support for applications to use more than one device clearly stated. (And as long as mame is not mentioned, since MS is releasing some "classic arcade hits for the PC" emulations, and MS seems to hate open source.)
The only other semi-doable workaround I can see in the near future is for someone to write joystick drivers for the different mice so that winXP sees the mice as joysticks, and treats them like joysticks: with multiple support. This would mean the mouse would not be see in the windows desktop, or windows applications. (I have never written a windows driver.)
A (IMO) non-doable workaround is to write some "filter" drivers and re-write mame to be able to read from these filters, as the data will not be seen with directX. Also, I am not sure if the filter drivers will be able to grap the data before all the mouse data are combined. Again, I have never written a windows driver.
I could be wrong about the "solutions", but the first paragraph & list are true.
ErikRuud:
Joystick emulation of spinners is possible and already supported. Left on the joystick if read as spinnig left and Right is read as spinning right.
Now while this works, it is often inferior to real spinners, because there is no way to spin faster or slower. It is as if the spinner could only spin at one speed.
u_rebelscum:
--- Quote ---Joystick emulation of spinners is possible and already supported. Left on the joystick if read as spinnig left and Right is read as spinning right.
--- End quote ---
Yes, but I am referring to making a spinner pass spinner data, but windows would think it was a joystick. Spin the spinner clockwise, and the car turns right & depends on how fast you spin the spinner. This would take a very simple addition to mame's code. The hard part, IMO, would be to write drivers to get winXP & directX to think the mice are joysticks, when they aren't.
--- Quote ---Now while this works, it is often inferior to real spinners, because there is no way to spin faster or slower. It is as if the spinner could only spin at one speed.
--- End quote ---
True, but there are simple hacks to get the analog joysticks to get different "spin" speeds in mame.