Different controllers using the same configuration file
-
When launching snes it looks like this:
[INFO] [udev]: Plugged pad: Generic X-Box pad (3853:220) on port #0. [INFO] [udev]: Pad #0 (/dev/input/event2) supports force feedback. [INFO] [udev]: Pad #0 (/dev/input/event2) supports 16 force feedback effects. [INFO] [Autoconf]: 4 profiles found. [INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/Generic X-Box pad.cfg [INFO] [udev]: Plugged pad: USB Gamepad (2064:3) on port #1. [INFO] [udev]: Pad #1 (/dev/input/event0) supports 0 force feedback effects. [INFO] [Autoconf]: 4 profiles found. [INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/SnesGamepad.cfg [INFO] [udev]: Plugged pad: USB Gamepad (121:17) on port #2. [INFO] [udev]: Pad #2 (/dev/input/event3) supports 0 force feedback effects. [INFO] [Autoconf]: 4 profiles found. [INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/SnesGamepad.cfg [INFO] [udev]: Plugged pad: usb gamepad (2064:58625) on port #3. [INFO] [udev]: Pad #3 (/dev/input/event1) supports 0 force feedback effects. [INFO] [Autoconf]: 4 profiles found. [INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/usb gamepad .cfg
And the previous one you commented on is when running psx emulator.
I have configured the order of the pads in the setup script
config/tools->configedit->config basic->snes/psx
. There it shows that the PS2 controller is pad#1 and that snes is pad#2. Pad #3 is my generic nes controller.
So for some reason it loads the PS2 config for the wrong pad on psx and double snes config on snes.Edit: I added the ids myself
-
@mitu said in Different controllers using the same configuration file:
The VID:PID in the
.cfg
files have been generated by the ES input configuration or you added them yourself ?the autoconfiguration doesn't handle devices with the same name, nor the vid/pid - those have to be done manually.
-
An other strange thing is that they seem to work fine in ES. They only load incorrect config when starting emulation.
-
I found a solution.
Not the prettiest one, but it works.
Since the vid:pid was not enough to identify the controllers I found that you can also useinput_device_display_name
to identify a controller.
As it happens it does not work for my PS2 controller but it works for the Snes controller. Thus I configured the Snes controller with the display name and use the default options to match the PS2 controller.I hope that makes sense in case someone runs into the same problem and finds this thread. :)
Thank you for the help mitu!
-
I thought that - taking into account what @buzz said, you could pick the VID:PID from the RetroArch output and configure them into the
.cfg
files instead of the ones generated by Emulationstation autoconfiguration. I was rather curious to see if that would work.
I'm glad you found a solution, maybe you'd care to experiment a little bit more to satisfy my curiousity :). -
I tried it and still, for some reason, it didn't work.
-
I had the same issue again with the RPi4.
I managed to solve it by using the VID:PID.
The tricky part was to identify which of the controllers had which pid in the retroarch menu since both are identified as USB Controller. This is not the same vid:pid shown by lsusb(!).
Then I put the pid:vid at the top of the config files.
So I tried one way and it didn't work, so I tried the other and now both controllers work.Note to myself:
PS2 controller hasinput_vendor_id = 2064 input_product_id = 3
SNES controller has
input_vendor_id = 121 input_product_id = 17
-
@langest said in Different controllers using the same configuration file:
This is not the same vid:pid shown by lsusb(!).
They kind of are, since
lsusb
shows the hex (base 16) values:0079:11 (base 16) = 121:17 (base 10)
810:3 (base 16) = 2064:3 (base 10)Ref: http://www.binaryhexconverter.com/hex-to-decimal-converter.
-
Alright, I see. But how can you tell if you don't know? The numbers are not prefixed with 0x and the man page doesn't give you any hints.
-
I'm having the same issue,
i have 4 controllers, 2 nes(clone)(usb), 2 genesis(8bitdo)(usb wifi dongle).
they share the same name,"USB Gamepad ", vendor 0079, product 0011.
They both use "USB Gamepad .cfg"
I've been trying to get around this for a while now.(8bitdo m30 2.4g)
cat /proc/bus/input/devices
I: Bus=0003 Vendor=0079 Product=0011 Version=0110
N: Name="USB Gamepad "
P: Phys=usb-0000:01:00.0-1.4.3/input0
S: Sysfs=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.0/0003:0079:0011.0003/input/input2
U: Uniq=
H: Handlers=js1 event1
B: PROP=0
B: EV=1b
B: KEY=3ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10(generic usb nes controller clone)
I: Bus=0003 Vendor=0079 Product=0011 Version=0110
N: Name="USB Gamepad "
P: Phys=usb-0000:01:00.0-1.4.4/input0
S: Sysfs=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/0003:0079:0011.0005/input/input4
U: Uniq=
H: Handlers=js2 event2
B: PROP=0
B: EV=1b
B: KEY=3ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10(8bitdo m30 2.4g)
udevadm info -q all -n /dev/input/event[1]
P: /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.0/0003:0079:0011.0003/input/input2/event1
N: input/event1
L: 0
S: input/by-id/usb-0079_USB_Gamepad-event-joystick
S: input/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.3:1.0-event-joystick
E: DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.0/0003:0079:0011.0003/input/input2/event1
E: DEVNAME=/dev/input/event1
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: USEC_INITIALIZED=5712528
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=0079
E: ID_VENDOR_ENC=0079
E: ID_VENDOR_ID=0079
E: ID_MODEL=USB_Gamepad
E: ID_MODEL_ENC=USB\x20Gamepad\x20
E: ID_MODEL_ID=0011
E: ID_REVISION=0105
E: ID_SERIAL=0079_USB_Gamepad
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.3:1.0
E: ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_4_3_1_0
E: ID_FOR_SEAT=input-platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_4_3_1_0
E: LIBINPUT_DEVICE_GROUP=3/79/11:usb-0000:01:00.0-1.4
E: DEVLINKS=/dev/input/by-id/usb-0079_USB_Gamepad-event-joystick /dev/input/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.3:1.0-event-joystick
E: TAGS=:uaccess:seat:(generic usb nes controller clone)
udevadm info -q all -n /dev/input/event[2]
P: /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/0003:0079:0011.0005/input/input4/event2
N: input/event2
L: 0
S: input/by-id/usb-0079_USB_Gamepad-event-joystick
S: input/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.4:1.0-event-joystick
E: DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/0003:0079:0011.0005/input/input4/event2
E: DEVNAME=/dev/input/event2
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
E: USEC_INITIALIZED=93696483560
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=0079
E: ID_VENDOR_ENC=0079
E: ID_VENDOR_ID=0079
E: ID_MODEL=USB_Gamepad
E: ID_MODEL_ENC=USB\x20Gamepad\x20
E: ID_MODEL_ID=0011
E: ID_REVISION=0106
E: ID_SERIAL=0079_USB_Gamepad
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.4:1.0
E: ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_4_4_1_0
E: ID_FOR_SEAT=input-platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_4_4_1_0
E: LIBINPUT_DEVICE_GROUP=3/79/11:usb-0000:01:00.0-1.4
E: DEVLINKS=/dev/input/by-id/usb-0079_USB_Gamepad-event-joystick /dev/input/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4.4:1.0-event-joystick
E: TAGS=:seat:uaccess:
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.