How do you force js0 assignment?
-
Retropie 4.7.1
RPi3b+My case build uses an Intellivision Flashback and the Ultimate PC Intellivision Interface (UPCI) as well as two USB SNES style controllers for controller input when required. But the USB SNES is really the primary controller and should be js0.
I've spent my entire evening trying to force my joystick assignments to remain as USB1= js0, USB2= js1 and then the UPCI taking js2 and js3 as required. But for whatever reason, the UPCI keeps over-riding everything and setting itself to js0.
How can I prevent this? I've followed this writeup already https://ubuntuforums.org/showthread.php?t=1595666. I built the file and named it to "100-persistent-joystick.rules". I don't know if the number actually matters. In this file I set my assignments to...
KERNEL=="js?", ENV{ID_VENDOR}=="0583", ENV{ID_MODEL}=="USB_2-axis_8-button_gamepad", NAME="input/js0"
KERNEL=="js?", ENV{ID_VENDOR}=="Microchip_Technology_Inc.", ENV{ID_MODEL}=="Ultimate_2", NAME="input/js2"
KERNEL=="js?", ENV{ID_VENDOR}=="Microchip_Technology_Inc.", ENV{ID_MODEL}=="Ultimate_2", NAME="input/js3"Hoping to force the USB controller to js0. I skipped js1 as it should fill to USB 2 when I have it plugged in.
No effect. The UPCI still jumps ahead and takes js0, which of course messes up many of my emulators like DosBox, Daphne and JzIntv.
Is there anyway I can lock this situation down and not have the UPCI pick and choose? I have it plugged into USB slot 2 on my RPi3b+, while my two available USB SNES controllers are slot 0 and slot 1.
Thanks!
-
udev
will not help to change the default/dev/input/jsX
device path name, despite what that forum post may imply. At best, you can add a fixed (symlink) device name to the actual device file (i.e./dev/inpus/ps_controller
as a symlink to the actual/dev/input/jsX
node).To re-order the gamepads, you can use @meleu's joystick selection tool and configure the gamepads order (by name) depending on the system/platform of the game/rom.
-
@mitu yeah, that dev statement did nothing. I'll delete it and try this route.
I just can't see why it's doing this based on the fact that I have the USB slots configured right.
I'll report back later
-
@mitu said in How do you force js0 assignment?:
udev
will not help to change the default/dev/input/jsX
device path name, despite what that forum post may imply. At best, you can add a fixed (symlink) device name to the actual device file (i.e./dev/inpus/ps_controller
as a symlink to the actual/dev/input/jsX
node).To re-order the gamepads, you can use @meleu's joystick selection tool and configure the gamepads order (by name) depending on the system/platform of the game/rom.
I loaded that script, and ran it. I can choose the global controllers, but unfortunately, I can't choose them by individual game. Nothing happens when I select that option. Regardless.. the UPIC grabs the js0 slot no matter what I do anyway. Its as if it just over-rides everything on it's own.
I'm hoping to talk to the designer on AtariAge and see what he can do. Other than that, I'm at a loss of ideas. Even if I set the joystick assignment in each emulator, there is no guarantee it will hold as this thing seems to grab the js0 slot intermittently.
-
@mitu I got it.
To get this sorted... I powered it up and kept swapping the USB cable inputs until it registered correctly in a retroach based emulator (I used Atari2600). Once it set correctly, I checked it in Daphne, JzIntv and DosBox. Seems to be holding and working good.
Go figure... swapping the cables with the power ON did it.
Thanks for all your help again! Pass this info on to anyone that has a similar problem with the UPCI. Or at least tell them to try this first. Had I done this from the start, would have saved time and a lot of reading/posting.
JR
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.