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



Warning: this is relatively new functionality for RetroArch. There may be some rough edges.

Input Drivers

As of October 2017, 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 with Area 51 ( 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]: Keyboard #0 (/dev/input/event3).
[INFO] [udev]: Mouse #0 (/dev/input/event4).
[INFO] [udev]: Mouse #1 (/dev/input/mouse0).
[INFO] [udev]: Mouse #2 (/dev/input/event5).


Please disregard any devices listed for the legacy interfaces /dev/input/mouse* and /dev/input/js*. Look instead for the /dev/input/event* indexes.In this example, there are two lightgun devices attached, along with a keyboard-style arcade control panel. To use both lightguns, the correct mouse indexes to use would be 0 and 2.

Windows raw example:

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

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.


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).

How to configure mouse as light gun? And light gun as mouse?
Light Gun API Core Findings
Light Gun API Core Findings

This part can be skipped since mice info is available upon RetroArch start.

Regarding udev log, message format may change in the future, see [] ( Also, note that /dev/input/mouse* and /dev/input/js* are legacy interfaces and shouldn’t be used, so users should focus on /dev/input/event* indices.


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.


Regarding udev example, correct mouse indexes should be 0 and 2 (not 4 and 5).


Thanks for catching that, fixed


You may also consider removing steering wheels from the title since they are not handled as mice (they are joypad-like devices).


I don’t know much about emulator steering wheels but regarding the title I was thinking of items like this:

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:


We can safely assume that RA input driver(s) will see most (if not all) steering wheels as joypads (with analog controls).

Aimtrak and mouse not working in Nestopia UE core as Zapper

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

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!