Reply To: What controllers are you using?

Home Forums RetroPie Project Controller Configuration in RetroPie What controllers are you using? Reply To: What controllers are you using?

#121454
Profile photo of pi-guy
pi-guy
Participant

-Wireless Only Portion
Well, kind of good news for those with the steam controller. It appears that the mouse pad portion of the steam controller works with retropie – bad news is emulation station doesn’t use a mouse 🙂

When in retropie and over wireless, if you run your finger over the right d-pad area it lightly vibrates just like on a desktop and these files show up in /dev/input/by-id:
usb-Valve_Software_Steam_Controller-event-mouse
usb-Valve_Software_Steam_Controller-mouse

I did add the /lib/udev/rules.d/99-steam-controller-perms.rules file and contents, rebooted, and plugged in the steam wireless stick on reboot.
However, js0 or any js* for that matter doesn’t exist when only the steam controller is plugged in.

-Wired Only Portion
So, after messing around with the wireless and getting no where, I plugged it in using a micro usb to usb cable and rebooted again. Once in emulation station I went to configure input it found the device….but as a keyboard….the ONLY buttons and pads/sticks that seem to work for me right now are:
A Button
Start Button
Select Button
Left D-Pad (I think you can also configure the stick as the same…kind of a clone thing between the stick and left d-pad)
And that’s it….no B button….give me at least the B button so I can play NES roms 🙂

-More
FYI – I’m running a Pi3 with keyboard and built-in wifi enabled, can’t promise good performance on a Pi2 with the stuff below per the URL below.

So I found this tid-bit URL

Hoped on putty and performed a sudo pip install libusb1 (I don’t know what version of php I have or came on the retropie 3.6 image, but giving it a go anyways…remember I backed up! *My install is fairly clean, I did install the Descent I & II ports, updated RP scripts, and that’s about it (aside from adding my roms)

Next, in my home directory I did a wget https://github.com/ynsta/steamcontroller/archive/master.tar.gz
and

tar xf master.tar.gz
cd steamcontroller-master
sudo python setup.py install

then
sudo nano /etc/udev/rules.d/99-steam-controller.rules
and added the following inside the empty file

# replace game group by a valid group on your system
# Steam controller keyboard/mouse mode
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", GROUP="games", MODE="0660"

# Steam controller gamepad mode
KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput"

Then reloaded udev
sudo udevadm control --reload

Then

cd /steamcontroller-master/scripts
sc-xbox.py start

But got a bunch of errors with a lot of “enum” words in it, so I felt lucky and installed the part of the website (above) that listed “enum” in it:
sudo pip install enum34
It said something about the requirement already being satisfied, so I figured I was s***-out-of-luck. But for giggles I did the following:

sudo udevadm control --reload
sc-xbox.py start

and low-and-behold no messages…looking good so far…didn’t think I’d get this far.
So, the thing is I’ve got a 70″ screen mounted to the wall with no media center underneath, everything I use is either HD antenna, PLEX, or Roku, I cut the cable years ago and prefer a clean look. So, I’m not keen on having a keyboard hanging off the Pi3 mounted behing the TV, so my next step (after testing) is to setup the python script to auto-start. So, I’m going to edit my rc.local file
sudo nano /etc/rc.local
and add the following (change your paths if needed) after all the commented lines but BEFORE the exit 0 line.
/home/pi/steamcontroller-master/scripts/sc-xbox.py start
after saving the file I stopped the process I kicked off earlier and tested the rc.local file by:

sc-xbox.py stop
/etc/rc.local

Just to make sure no errors popped up, kept the steam controller plugged in (hardwire) and I’m ready for a reboot to see if it started.
Wow, now when I go to Configure Input in emulation station I get a “1 gamepad detected”, I hold “A” on the joystick and it see’s it as a XBOX 360 Gamepad…that’s what I call progress.
The controller is VERY touch sensitive, and I can’t seem to get the right bottom trigger or left thumb press to be defined.
I’ll work on it a bit tomorrow, see if I’m doing something wrong and take a look at the python script…I’m a bit of a script kiddie (is that saying even still used?).
Played a quick level in Super Mario on the NES (still wired joystick), exited with start-select like normal, then unplugged joystick and plugged the wireless stick in…this is where you get all warm and creamy….even without a reboot…the joystick works great and immediately over wireless…just need to turn the controller back on after unplugging the usb cable.
I’m sooo thrilled and taken waaayy to much room in this forum…hope this helps someone.

I’m thinking of writing a script to make this process much faster, I’m not the coder of the “steamcontroller-master” app, kudos to that person for making my life easier, but I can certainly make setting up a Steam Controller on a RPi much faster (I think).

*Edit:
Here’s my config file, all buttons working and configured to use the thumbstick instead of the left d-pad for moving (I don’t like the sensitivity of the pads, so I swapped the d-pad for the thumbstick), just backup and overwrite your sudo nano /opt/retropie/configs/all/retroarch-joypads/MicrosoftX-Box360pad.cfg with this info:

input_device = "Microsoft X-Box 360 pad"
input_driver = "udev"
input_r_y_plus_axis = "+4"
input_l3_btn = "9"
input_r_x_minus_axis = "-3"
input_r_axis = "+5"
input_save_state_axis = "+5"
input_l2_btn = "4"
input_start_btn = "7"
input_exit_emulator_btn = "7"
input_l_y_minus_btn = "h0leftanalogup"
input_l_axis = "+2"
input_load_state_axis = "+2"
input_up_axis = "-1"
input_r_y_minus_axis = "-4"
input_a_btn = "0"
input_b_btn = "1"
input_reset_btn = "1"
input_down_axis = "+1"
input_r2_btn = "5"
input_l_x_plus_btn = "h0leftanalogright"
input_l_y_plus_btn = "h0leftanalogdown"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_x_btn = "2"
input_menu_toggle_btn = "2"
input_select_btn = "6"
input_enable_hotkey_btn = "6"
input_l_x_minus_btn = "h0leftanalogleft"
input_y_btn = "3"
input_left_axis = "-0"
input_state_slot_decrease_axis = "-0"
input_r_x_plus_axis = "+3"
  • This reply was modified 1 year ago by Profile photo of pi-guy pi-guy.
  • This reply was modified 1 year ago by Profile photo of pi-guy pi-guy.

Skip to toolbar