What has to done to MAME to make it work?
To add support for the CPNMouse so that Mame will work with Windows 2000 is easy enough (maybe a couple of days' work) but I'm afraid that mixing 3 different mouse control options into Mame will make it too confusing for the users. It's already confusing as it is right now. I'm thinking about possibly putting some extra effort into it to make it so that a variety of options are available with minimum of confusion by implementing a system of mouse input plugins.
I thought directInput was supposed to have a generic way to address game controllers, regardless of input (USB, game port, serial, parallel) why use a mouse driver at all? It just seems to confuse windows. Someone should just make some sort of generic "serial controller" driver for a trackball on the serial port that directInput can talk to. In fact, they could base the driver on existing mouse code, just don't identify it as a mouse to windows.
To be honest the idea of writing a mouse driver scares the crap out of me. I'm hoping that I can learn a little bit about it while playing with cpnmouse. I think that limiting the mouse capabilities to serial-only isn't the best idea, when other options are available that could add support for other mouse devices. My guess is that serial ports on computers might become scarce in the near future. The CPNMouse solution is actually a working solution that is similar to your idea and it works with ps/2, usb, and serial devices and treats them all the same.
Your idea, rawmouse, direct input, and cpnmouse all have different advantages and disadvantages. That's why it would be nice to have a system where they could all be easily made available.
Heck, it's possible that hidden away on the internet somewhere is a serial controller driver like the one you describe. Hee hee, and if I ever manage to actually get the mouse input plugin idea working, then it would be a simple matter to create a new plugin when it's finally discovered (or written).
Do you know anything about writing serial device drivers?