I'm sorry if I don't completely understand how rawmouse works but I DO understand how Dx works and considering you just put dx7 back in to help with the rawmouse and dx does allow you to get the device name, I don't see how that is an issue. The enumeration numbers are the same for both functions so you simply mate the device name found in dx with the enumeration number for rawmouse.
DX has nothing to do with RAWMOUSE. DX is disabled if MAME is running on XP with multiple mice. You can not use both. DX on XP will never report anything but 1 mouse, so you can not enumerate the devices using DX. If you know better, then code it.
If you read what I said about changing the DX support for nonXP, the removal of the system mouse was necessary. Try plain MAME104 on Win98/ME. Hit tab and try to select a mouse button or axis. It will select the system mouse and the actual mouse. This is obviously wrong and useless. If you like it broken then keep using the old version. I did not just put DX back in to help with RAWMOUSE. It has been there for a while, I just fixed it.
And once again you can setup your default controls.
Set your defaults to mouse 2 so it ignores mouse 1. My trackball is mouse 1. My dials are mouse 2. I have no need for a mouse buried away. If I want a game to use the trackball or dials I can
just tell it to use mouse 1 and 2. Just like you would do if you wanted the game to use joystick 1 and 2.
That is why I made reference to joysticks. Mice are now considered along the same lines as joysticks. They are individual controls. Nothing is stopping you from mapping them all together. Why should the MAME code do it automatically. System Mouse is a useless concept. There is no System Mouse as far as RAWMOUSE is concerened. It has to be manually created by adding all mice together.
Who ever mentioned anything about hotswapping during the game?
Umm you did in your original post.
I was referring to the fact that unlike other ports, usb devices are enumerated by the order that they are detected by the system and that windows doesn't really allow a way to control the order. So if a person buys a new lightgun/trackball it could potentially be detected as the "middle" device and thus throw all their mappings off. Also there is the rare instance in which someone plugs in a new purchased device to an already running computer, it is detected as the last device (obviously, since the computer has already booted up), they go through hours of configuring things just the way they want em, only to discover that upon reboot the mappings don't work anymore. They don't work because due to a usb hub or a system just being crazy, the device is now enumerated at a lower number and thus the settings aren't for that mouse anymore.
Again completely wrong. They are always enumerated in the order they were installed.
Follow this example. On Win98-DX7, because we are talking DX enumeration, and I've told you RAWMOUSE is different and XP DX does not enumerate mice.
Plug in mouse A, then B, then C. They will enumerate as A=1, B=2, C=3. Unplug mouse A. We now get this. B=1, C=2. Plug back in mouse A. It will not randomly show up in the middle. The original list is always maintained. We will be back to A=1, B=2, C=3. You have to go into safe mode and remove all mice, then plug then back in to change the order.
For XP, RAWMOUSE does do the list backwards. Each new device becomes #1, so I have already changed my WIP to reverse the list RAWMOUSE reports.
Could MAME enumerate the names? Yes, I have previously thought about it. Would it be a waste of my coding time. Yes. As already stated DX is different from RAWMOUSE. The names will be different. I am not wasting time adding DX features to a dead OS. The names will not be compatible between the 2.
And displaying the name that was enumerated by DX or RAWMOUSE would just confuse people. It is not going to say something pretty like "Microsoft Mouse 2" without writing a lot of code that manually reads the registry. The standards for this stuff is so loosely followed, that they are useless. There are all sorts of flags that the manufacturers could set about a device, but most do not bother.
If you want to see the great name used for XP, go into device manager, select a mouse and check it's properties. On the details page you will see the device instance id. That is the only name I can get in XP. Without manually going to the registry and trying to makes sense of the loosely followed non-standard standards.
Joysticks are different, I don't know how they got into the conversation. First off, it's possible to set device priority for joysticks in windows, meaning they don't "move" when you plug and un plug them. So the problems I talked about for mice don't apply to joysticks. Secondly, ctrlr files have support for real joystick names, meaning you can optionally type some nonsense like "sidewinder1 button 0" and let dx figure out where the joystick is. Of course I don't follow every step in mame's development process but it used to. So in other words "mouse 1" could still be used but "logitec mouse 1" could also be used, assuring that your inputs wouldn't get mixed up the addition removal of other devices. Again I don't me in game (sheesh what were you thinking?), I mean over the course of the lifespan of a person's mame install.
mouse=joystick. They are things a player uses to control play. The point being if a system mouse is so usefull then why not a system joystick.
My point is they are both useless. If the game is 1 player and you wanted to use both joysticks for it, you would set the controls to use joystick 1 or 2. The same is now true with the mouse. People need to stop thinking the mouse is something special. It is an input just like a joystick.
The no separate controls thing was kind of my point. The removal of the system mouse should be OPTIONAL. Why? Believe it or not many people don't need separate mice inputs. When is the last time you saw a mame cab with two trackballs? Two lightguns aren't a problem as you poll the mouse position when the appropriate button is pressed (either mouse button 1 or mouse button 3). I would guess that the majority of mame users don't need or use separate mice inputs and you've just dumped a world of unnecessary configuring on them just for those few people that do.
And I will stand by my many points as to why the system mouse is useless. Do you recommend a system joystick too?
MAME cabs do not have 2 trackballs, because the support was lacking.
Your lightgun comment again shows a lack of knowledge of the current MAME going ons, which was the point of this thread. Multiple lightguns in the future will be just another mouse. It can be accessed separately like any other mouse. It is just not currently done that way. It can be enumerated just like any other mouse.
When the current lightgun support was added, someone thought lightguns were special, when they are not. They are just absolute mice. The absolute data received is different in RAWMOUSE and DX though. DX is going to be a royal pain in the ---. Regular mice are relative mice. This data is the same in RAWMOUSE and DX. Except you have to keep track of it yourself until the data is needed when using RAWMOUSE.
So I stand by the point that a lack of foresight was involved in this decision to change the way the mice input has worked for ages, without the option of using the old method to help an extreme minority of people who need separate inputs. I mean heck, even on your own mamecab you said you just had a trackball. Even you don't require separate inputs.
In closing don't assume that just because YOU don't understand ME that I don't understand YOU.
We are currently trying to remove as many "-" options as possible. They just make the code harder to maintain and provide no real benefit. So adding another switch like -system_mouse would annoy most devs.
Live with the fact that if you cherish the system mouse, you will have to map all your mice together. If you only have one mouse then it does not matter. If you have a mouse hidden away, then how hard is it to change the default controls to use mouse 2? Or go in safe mode, delete all mice, then re-install the hidden mouse second.
And yes I require separate inputs. Do I want someone playing with the trackball while I am using the rotary controls? If I had a hidden mouse, would I want it to affect my controls while the cabinet is shaking and moving the hidden mouse during frantic game play?So we will have to agree to disagree. My comments are based on fact. Yours are based on assumptions on how you wished the real world of Windows was.
D.