Stratus XL works in ES menu, but not in game (trying XBOXDRV)
-
My problem is that when using a SteelSeries Stratus XL, in RetroPie on Raspberry Pi 3B, it works in the menu, but not inside games. I then installed XboxDrv, and typed the following into /etc/rc.local :
sudo systemctl enable /etc/systemd/system/connect-bluetooth.service sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/event3 --evdev-absmap ABS_RZ=y2,ABS_Z=x2,ABS_X=x1,ABS_Y=y1,ABS_HAT0Y=dpad_y,ABS_HAT0X=dpad_x --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_NORTH=y,BTN_EAST=b,BTN_SOUTH=a,BTN_WEST=x,BTN_THUMBR=tr,BTN_THUMBL=tl,BTN_TL=lb,BTN_TR=rb,ABS_BRAKE=lt,ABS_GAS=rt,BTN_START=start,KEY_BACK=back -mimic-xpad --silent*
However, when ever I ssh into the Pi via PuTTY, and input "sudo /etc/rc.local" I get:
option requires an argument -- -mimic-xpad My IP address is [omitted for privacy issues]
(ip address part is always part of /etc/rc.local/) Does anyone know how to fix this, and get XboxDrv to run, or how to fix the problem in general?
Pi: 3b
Psu: Standard MicroUSB charger
Version: 4.4
Built From: SD card image
USB devices: HP USB keyboard
Controller (w/ issue): SteelSeries Stratus XL
Error: option requires an argument -- -mimic-xpad
File: /etc/rc.local -
That's not the proper process to run a service on boot. Don't start
systemd
services fromrc.local
, you should just enable them withsystemctld <service_name> enable
and they'll start automatically.For your controller - try running the command first from an SSH session until your find the right parameters and arguments. Looking at your command, you mis-typed the
--mimic-xpad
option (only one-
, it needs 2--
).
Try to clear yourrc.local
file for now, then after a reboot try running from a SSH sessionsudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/event3 --evdev-absmap ABS_RZ=y2,ABS_Z=x2,ABS_X=x1,ABS_Y=y1,ABS_HAT0Y=dpad_y,ABS_HAT0X=dpad_x --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_NORTH=y,BTN_EAST=b,BTN_SOUTH=a,BTN_WEST=x,BTN_THUMBR=tr,BTN_THUMBL=tl,BTN_TL=lb,BTN_TR=rb,ABS_BRAKE=lt,ABS_GAS=rt,BTN_START=start,KEY_BACK=back --mimic-xpad --silent
Note that
/dev/input/event3
might change between reboots if you have multiple controllers, so look up the correct ID of controller before issuing the command withls /dev/input/event*
Once you find the right
xboxdrv
invocation, add it in/opt/retropie/configs/all/autostart.sh
(before startingemulationstation
) and not in/etc/rc.local
. -
@mitu Thank you for the code, I will try it out after deleting everything I added to rc.local (but keeping the original code), then pasting your code into it (after rebooting), then running it from ssh and seeing if my Stratus XL works in game now. Also, what is the xboxdrv invocation that you talk about, are you referring to:
sudo systemctl enable /etc/systemd/system/connect-bluetooth.service
-
@TheBlueDragon No, I'm referring to the command line I've corrected (containing
xboxdrv
). The line you mentioned is meant to start the bluetooth service on the PI, but that's already started automatically so you don't need it.
Btw,stackoverflow.com
is not the right place for these kind of questions, there are dedicated stack sites for the Raspberry PI or normal user questions, but don't start spamming all the known forums at once with your question. -
@mitu when i enter your code into rc.local, I get the following:
error: invalid argument '--evdev-keymap BTN_NORTH=y,BTN_EAST=b,BTN_SOUTH=a,BTN_WEST=x,BTN_THUMBR=tr,BTN_THUMBL=tl,BTN_TL=lb,BTN_TR=rb,ABS_BRAKE=lt,ABS_GAS=rt,BTN_START=start,KEY_BACK=back' str2key: couldn't convert string: 'ABS_BRAKE' My IP address is 192.168.2.34 192.168.2.178
-
I fixed this problem by moving the ABS_[] buttons to the other argument. I then proceeded to delte the code from rc.local and add it to autostart.sh. Now, how do I get games to read the new event, event4, which is the virtual XBOX 360 controller, instead of event3, which is the input from the Stratus XL.
-
@TheBlueDragon Try using the
--detach-kernel-driver
argument toxboxdrv
. -
Ok, I will add the argument that you suggested to the code that's inside the autostart.sh, and see if that works.
-
@mitu Didn't work, unfortunately. Anyone else got any other suggestions?
-
I solved my problem by getting rid of the Stratus XL, lol. I got a Xbox controller to use with my Pi instead. With a little bit of configuring in the Retroarch menu, I was able to get it to work perfectly, at least with the SNES emulator. I am a bit disappointed that Retropie and Retroarch reads the Bluetooth and wired connections as different controllers.
-
@TheBlueDragon said in Stratus XL works in ES menu, but not in game (trying XBOXDRV):
I am a bit disappointed that Retropie and Retroarch reads the Bluetooth and wired connections as different controllers.
Actually, that part is up to the operating system (the driver) and the device itself, RetroArch just reads what the OS detects. Moreover, controllers often identify to the OS differently when connected via wireless vs. connected via wired - and they also have different button mappings. So there's nothing that RA or RetroPie can do about it.
-
@mitu Oh my bad, sorry. You can tell I'm a mega-noob because I have a default profile picture š
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.