Configuring RA for multi-mouse (spinners, lightguns, tackballs)

Warning: this is relatively new functionality for RetroArch. There may be some rough edges. Significant input fixes occurred between RetroArch 1.9.5 and 1.9.6; this guide only pertains to builds with the version 1.9.6 or later.

Input Drivers

As of June 2021, there are two RetroArch input drivers with support for multi-mouse: udev and the Windows raw driver. It’s possible that other drivers will support multi-mouse in the future, although for some input drivers it is inherently impossible due to their design.

If you are using the udev driver, make sure that your permissions are configured correctly.

Emulator core and game

The reference emulator and content for multi-mouse is MAME 2003-Plus with Area 51 (area51.zip and its corresponding CHD). If possible, test with this ‘known good’ combination before trying others.

Determining mice index numbers

  • Make sure that your input driver is set to one with multi-mouse support. If you change this setting, quit RetroArch and restart.
  • Start RetroArch from the commandline with the option --verbose so that you can see status messages. If that’s not practical, folks can use trial and error to find the indexes.

udev example:

[INFO] [udev]: Added Device Keyboard#0 G.SKILL Corporation G.SKILL RIPJAWS KM780 MX GAMING KEYBOARD (/dev/input/event8) .
[INFO] [udev]: Added Device Keyboard#1 G.SKILL Corporation G.SKILL RIPJAWS KM780 MX GAMING KEYBOARD (/dev/input/event13) .
[INFO] [udev]: Added Device Keyboard#2 USB Laser Game Mouse (/dev/input/event15) .
[INFO] [udev]: Added Device Keyboard#3 Valve Software Steam Controller (/dev/input/event18) .
[INFO] [udev]: Added Device Keyboard#4  (/dev/input/mouse3) .
[INFO] [udev]: Added Device Keyboard#5 AT Translated Set 2 keyboard (/dev/input/event4) .
[INFO] [udev]: Added Device mouse#0 G.SKILL Corporation G.SKILL RIPJAWS KM780 MX GAMING KEYBOARD (/dev/input/event9) .
[INFO] [udev]: Added Device mouse#1 USB Laser Game Mouse (/dev/input/event14) .
[INFO] [udev]: Added Device mouse#2 Valve Software Steam Controller (/dev/input/event18) .
[INFO] [udev]: Added Device mouse#3 DELL0802:00 06CB:7E92 Mouse (/dev/input/event30) .
[INFO] [udev]: Added Device mouse#4 DELL0802:00 06CB:7E92 Touchpad (/dev/input/event31) .
[INFO] [udev]: Added Device mouse#5 SynPS/2 Synaptics TouchPad (/dev/input/event7) .

Interpretation

**In this example, there are five mouselike devices identified by udev, along with several keyboard inputs.

Windows raw example:

[INFO] [WINRAW]: Initializing input driver ...
[INFO] [WINRAW]: Mouse #0 \\?\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91
405dd}.
[INFO] [WINRAW]: Mouse #1 \\?\ACPI#IBM3780#4&2b110597&0#{378de44c-56ef-11d1-bc8c
-00a0c91405dd}.

In this example there are two lightgun devices attached, which are seen by the Windows raw input driver as Mouse #0 and Mouse #1. To use both devices the correct mouse indexes to use are 0 and 1.

Configuration

For each user and mouse you wish to configure, visit the corresponding user ‘binds’ screen and set Mouse Index to match the indexes discovered earlier.

Mouse indexes can change

Beware: the index of a specific device may change depending on what device you have attached to which port. For example, if you boot with an external mouse, it might be detected by udev as event0 and your spinner as event1, but if you boot the same system without the external mouse attached, everything might ratchet down (spinner becomes event0).

2 Likes

I really appreciate the notes @casdevel. I just updated the guide and I have subscribed to your PR #5518 so I can return to update this again.

Thanks for catching that, fixed

I don’t know much about emulator steering wheels but regarding the title I was thinking of items like this: https://www.amazon.com/Official-Nintendo-Wii-Remote-Controller-included/dp/B0013B30SY

If most steering wheels are seen as joypads I will go ahead and change the title, no need for me to make this more confusing than it already can be :slight_smile:

sorry to resurect an old post. i have filled the directions of setting my mouse to zero (that’s what RA sees it as) and when i load up a gun game with the genesis core, the cursor moves just fine but the trigger is not sending bullets.

fyi, i am using old actlab lightguns if that makes a difference.

any help is appreciated!

I posted about this same problem a few weeks ago - Light Gun support is broken in newer versions of RA it seems.

Use RA 1.6.9 for lightgun games; seems to be the last build that it worked good.

I wish the devs would see why triggers are broke in new versions. It’s probably a very simple fix.

If that is the case, I suggest generating logs and then creating an issue with the specifics of the regression in the RetroArch repository at http://github.com/libretro/RetroArch

At the minimum, create a new thread here in the forums with a title that mentions that there has been a regression in lightgun support.

i’ll start a new post now. thanks for the lead on 1.6.9!

I have made a few updates to the first post in order to reflect changes in this process between 2017 and 2021.

You’ve got great timing @markwkidd. Been pulling my hair out for the past week trying to get this to work.

What is the expected behavior in MAME once each player’s input binds have been mapped to a proper mouse index?

I expected it to detect the separate mice as “Mouse 1”, “Mouse 2” etc when I configure the inputs in MAME, but it only seems to detect whatever mouse I’ve bound to player 1 in in retroarch; Multi-mouse option in MAME was enabled, indices are correct (I tested them all on Player 1 and they worked), and input driver is udev.

Appreciate any help you can provide.

I’ve added this note that RetroArch 1.9.6 or later is needed. As of today, because the official 1.9.6 release has been postponed, this can mean compiling from source or downloading a nightly build.

You make any headway on this? I am stuck with the same issue.

Does this have something to do with that the Trackball Games do not work in Dreamcast and MAME?