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