Build Your Own Arcade Controls Forum

Main => Main Forum => Topic started by: tk007b on October 09, 2025, 08:01:57 am

Title: Assigning Mice to steering wheels on MAME
Post by: tk007b on October 09, 2025, 08:01:57 am
Hi guys,

I've been doing lots of research but with limited success when trying to connect Rotary Spinners that present in Windows as HID/Mice to steering wheels in MAME.

Good News
by enabling the MULTIMOUSE and making sure the MOUSE setting is ON too, plugged in mice get assigned to MAME steering wheels automatically

Bad News
It's the first 3 HID/Mice devices that are seen by the PC. This means that (if I have 3 cars to assign it to, P1 gets my mouse, P2, gets my 1st spinner and P3 get's my 2nd spinner.

Workaround
I can work around this by unplugging all non rotary encoders HID devices before I run MAME. However, this means I need to switch off/unplug my Light Guns, Trackball, Main Mouse etc, which is not ideal.

Challenge
I've been looking without joy, as a way of assigning specific HID/Mice to specific steering wheels but just cannot find any info to help me. MAME teases me with a input devices section, which shows me a list of HID/mice devices but I cannot distinguish which are which.

Want
- A Way of labelling the HID/Mice devices in Windows 11 (I've been looking at 3rd party software packages but they don't help)
- A way of uniquely identifying the rotary encoders and assigning them to the steerign wheels despite what else is plugged in (holy grail)

Questions
Anyone know .
- Someone who I can speak to
- A resource I can read up from
- If anyone else has gone this already

Thanks SO much !

TK
Title: Re: Assigning Mice to steering wheels on MAME
Post by: PL1 on October 09, 2025, 10:52:01 pm
Good News
by enabling the MULTIMOUSE and making sure the MOUSE setting is ON too, plugged in mice get assigned to MAME steering wheels automatically

Bad News
It's the first 3 HID/Mice devices that are seen by the PC. This means that (if I have 3 cars to assign it to, P1 gets my mouse, P2, gets my 1st spinner and P3 get's my 2nd spinner.

Workaround
I can work around this by unplugging all non rotary encoders HID devices before I run MAME. However, this means I need to switch off/unplug my Light Guns, Trackball, Main Mouse etc, which is not ideal.
You may want to try disabling MULTIMOUSE in MAME.

Without MULTIMOUSE, Windows handles each axis by adding the inputs from up to 8(?) mouse devices that are plugged in.

This can cause unwanted inputs if you bump another controller with the same axis.  For example, if you move the trackball X-axis 3 steps left and bump the spinner X-axis 2 steps right, Windows will move the cursor X-axis 1 step left.

The huge upside to disabling MULTIMOUSE is that you never have to worry about the Windows device renumbering issue.
- MAME will take mouse inputs from any device, regardless of what order they are plugged in.


Scott
Title: Re: Assigning Mice to steering wheels on MAME
Post by: tk007b on October 10, 2025, 06:02:07 am
Thanks so much Scott, that's really interesting / helpful.

I'll have a play but I still can't find any literature that can help me to assign dedicated devices to dedicated players.

I'll experiment with the setting off and report back on findings .. If I can get some joy, I can at least share for others to benefit.

Fingers crossed!

:-)
Title: Re: Assigning Mice to steering wheels on MAME
Post by: BadMouth on October 10, 2025, 10:34:58 am
Are you disconnecting the devices or leaving them plugged in?

Try setting the mice up without a hub if possible.

It could just be a windows thing.  I went back to a keyboard encoder on my cab because on Windows 10 & 11 the hacked Xbox pads would not keep their order in MAME, PC games and all the other emulators.  I did a quick search looking for the third party software I know people used to use, but it seems there is a new proper way.  (I don't have experience with this new stuff, but it seems to be the proper way.  The guy didn't angle Player 3 & 4 joysticks, so he probably knows what he is doing.)
https://www.youtube.com/watch?v=YmjfwLuZ_X0 (https://www.youtube.com/watch?v=YmjfwLuZ_X0)
https://docs.mamedev.org/advanced/devicemap.html (https://docs.mamedev.org/advanced/devicemap.html)
Edit: He's on Win7 in the video, so not exactly new stuff.   :lol  Hopefully someone with recent experience will chime in.

You may want to try disabling MULTIMOUSE in MAME.

Without MULTIMOUSE, Windows handles each axis by adding the inputs from up to 8(?) mouse devices that are plugged in.

This can cause unwanted inputs if you bump another controller with the same axis.  For example, if you move the trackball X-axis 3 steps left and bump the spinner X-axis 2 steps right, Windows will move the cursor X-axis 1 step left.

The huge upside to disabling MULTIMOUSE is that you never have to worry about the Windows device renumbering issue.
- MAME will take mouse inputs from any device, regardless of what order they are plugged in.

Unless something has changed, doesn't disabling multi-mouse eliminate the ability for multiple players? 

Title: Re: Assigning Mice to steering wheels on MAME
Post by: PL1 on October 10, 2025, 02:06:21 pm
Unless something has changed, doesn't disabling multi-mouse eliminate the ability for multiple players?
No.  MULTIMOUSE has nothing to do with the number of players in MAME.

The MAME default for handling mice is the same as Windows -- add all of the inputs for a given mouse axis.

MULTIMOUSE keeps each mouse encoder's inputs numbered and separate so MAME does not combine "Mouse 1 X" and "Mouse 2 X".

For example:

- The MAME default for Pong P1 Paddle Analog is "Mouse X" and P2 Paddle Analog is "Mouse Y".

- If you've got two spinners (X- and Y-axis) on one mouse encoder and an arcade trackball (X- and Y-axis) on another, Pong accepts inputs for the P1 and P2 paddles from both the spinners and the trackball.

- If you wanted to play 3-player Off The Wall with that setup, you would need to enable MULTIMOUSE so the spinner axes are on "Mouse 1 X" and "Mouse 1 Y" and the trackball axes are on "Mouse 2 X" and "Mouse 2 Y".  You can map two player inputs to the spinners and map the third player input to one of the trackball axes.  When you move the trackball, it will not affect the player inputs mapped to the spinners.

The other way to keep things straight without MULTIMOUSE is to program the encoders to use different axes.
- You can program the trackball encoder to use X-axis and Y-axis and program the spinner encoder to use XRO-axis (X Rotation axis) and YRO-axis or Z-axis and ZRO-axis.


Scott
Title: Re: Assigning Mice to steering wheels on MAME
Post by: tk007b on October 11, 2025, 02:27:54 pm
Thank you SO much guys. There's lots to unpick here.

Firstly, my 2 spinners are identically named in HID and PID, so it's slightly more complicated but I suspect that would be the same with 2 x Ultimarc Spinners.  I need to experiment with the .cfg file.

I also like the idea of being able to change the AXIS, this could actually be a much simpler way of fixing my issue, as I could just come up with 3 axis and just use those.

Where I was stuck, I now have a lot to process, so I'll work on it and report back with my results !

:-)

PS -  It's SUCH a shame that you cannot rename the HID entries in Device Manager, otherwise it would be as easy as cake. Anyway ... will all be worth it :-)
Title: Re: Assigning Mice to steering wheels on MAME
Post by: tk007b on October 11, 2025, 06:31:10 pm
ok,

I watched the video and copied it as best as I could. I have created the MARemapControls.cfg file and I entered the details correctly (without the .cfg) in MAME.ini. The MAME exe starts afterwards -   so far so good.

Now the bit that the video doesn't show. How do I map the newly named/Fixed controllers to the various player inputs ?

For example, this is part of my file

Code: [Select]
<?xml version="1.0"?>
<mameconfig version="10">
    <system name="default">
        <input>
            <!-- Steering Wheels -->
            <mapdevice device="PID_8036" controller="MOUSECODE_2" name="Steering Wheel 1" />
            <mapdevice device="PID_8036" controller="MOUSECODE_3" name="Steering Wheel 2" />

So my question is where do I see "Steering Wheel 1" or "Steering Wheel 2" within MAME.


Many thanks, as always ..

PS - I am aware that the PID ID's are the same, that's because I used 2 arduino Micro's for encoders and their details are identical