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