Scummvm controller help
-
@bassman6805 It won't affect the other systems if you configure it correctly. Luckily the guide in the docs uses scummvm as example.
-
@bassman6805 said in Scummvm controller help:
I have used an xbox controller on my other pi and didn't have to do anything to get it to work.
When was this? A year ago, ScummVM moved to version 1.9 which uses SDL2 as its backend. Users reported issues when using a joystick so the devs added the SDL1 version to RetroPie.
Before you take the xboxdrv route, you may want to try installing scummvm-sdl1 from the RetroPie setup script and testing that.
-
Thanks. I do have the Scummvm sdl1 installed and still have the same problem. I am going to try the xboxdrv route and see if that works. I decided to backup my sd card before I changed anything and when I put it back in the pi it wouldn't boot. I'll have to figure out what's up with that first. Always something!
-
@bassman6805
i got my mapped with xboxdrv and it works fine for me. so it can be done -
I'm hoping someone can maybe give some more detail on how to fix this. I read through the xboxdrv instructions and it seems way over my head. I don't even see the option to install the xboxdrv in the new version of retropie. Could someone look at my config file I posted and maybe tell me what to change or add?
-
if someone can help you get it installed. ( i cant im running a older version of Pie so for me it was in the driver option in the RetoPie setup).
i can help you with getting it mapped
-
It's my understanding that the xboxdrv installed automatically now in some of the newer versions but I could be mistaken.
-
oh, well that's cool.
let me know what you need help with when you try messing with mapping.
unless someone else has a better idea -
Ok. Should I jump to section 3a of the guide you posted or do I need to do something else?
-
if you have what your controller is called and what the buttons pin outs read then yes.
if you dont then you want to start from the beginning.
-
I don't know if it has a name. Here is what is in the config file.
Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely,
rather than relying on a default.
input_player1_a = "z"
input_player1_b = "x"
input_player1_y = "a"
input_player1_x = "s"
input_player1_start = "enter"
input_player1_select = "escape"
input_player1_l = "q"
input_player1_r = "w"
input_player1_left = "left"
input_player1_right = "right"
input_player1_up = "down"
input_player1_down = "up"input_player1_l2 =
input_player1_r2 =
input_player1_l3 =
input_player1_r3 =
This is also the controller I am using. It works fine for everything else.
-
hmmm
well for mapping you need a bit more.you need to run this first so you can get the info that is needed
cat /proc/bus/input/devices
will pull up something like this.I: Bus=0005 Vendor=2dc8 Product=3810 Version=0100 N: Name="8Bitdo FC30 Pro" P: Phys=b8:27:eb:47:c7:78 S: Sysfs=/devices/platform/soc/3f201000.uart/tty/ttyAMA0/hci0/hci0:11/0005:2DC8:3810.0005/input/input6 U: Uniq=e4:17:d8:7a:6a:7d H: Handlers=js2 event6 B: PROP=0 B: EV=1b B: KEY=ffff0000 0 0 0 0 0 0 0 0 0 B: ABS=30627 B: MSC=10
ls /dev/input/by-id/
will look like thispi@retropie:~ $ ls /dev/input/by-id/ usb-1d57_ad02-event-kbd usb-_Mini_Keyboard-event-kbd usb-1d57_ad02-if01-event-mouse usb-_Mini_Keyboard-if01-event-mouse usb-1d57_ad02-if01-mouse usb-_Mini_Keyboard-if01-mouse
evtest /dev/input/event[•]
will pull thisInput driver version is 1.0.1 Input device ID: bus 0x5 vendor 0x2dc8 product 0x3810 version 0x100 Input device name: "8Bitdo FC30 Pro" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 304 (BTN_SOUTH) Event code 305 (BTN_EAST) Event code 306 (BTN_C) Event code 307 (BTN_NORTH) Event code 308 (BTN_WEST) Event code 309 (BTN_Z) Event code 310 (BTN_TL) Event code 311 (BTN_TR) Event code 312 (BTN_TL2) Event code 313 (BTN_TR2) Event code 314 (BTN_SELECT) Event code 315 (BTN_START) Event code 316 (BTN_MODE) Event code 317 (BTN_THUMBL) Event code 318 (BTN_THUMBR) Event code 319 (?) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 128 Min 0 Max 255 Flat 15 Event code 1 (ABS_Y) Value 127 Min 0 Max 255 Flat 15 Event code 2 (ABS_Z) Value 128 Min 0 Max 255 Flat 15 Event code 5 (ABS_RZ) Value 127 Min 0 Max 255 Flat 15 Resolution 46 Event code 9 (ABS_GAS) Value 0 Min 0 Max 255 Flat 15 Event code 10 (ABS_BRAKE) Value 0 Min 0 Max 255 Flat 15 Event code 16 (ABS_HAT0X) Value 0 Min -1 Max 1 Event code 17 (ABS_HAT0Y) Value 0 Min -1 Max 1 Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Properties: Testing ... (interrupt to exit)
-
Ok. The only thing connected is a wireless usb hub. Here is what I get for the first one.
I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="retrogame"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=3
B: KEY=1680 0 3000 d0030002The second and third commands I get "no such file or directory".
-
I figured out the third command and got these results.
-
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1 product 0x1 version 0x1
Input device name: "retrogame"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 16 (KEY_Q)
Event code 17 (KEY_W)
Event code 28 (KEY_ENTER)
Event code 30 (KEY_A)
Event code 31 (KEY_S)
Event code 44 (KEY_Z)
Event code 45 (KEY_X)
Event code 103 (KEY_UP)
Event code 105 (KEY_LEFT)
Event code 106 (KEY_RIGHT)
Event code 108 (KEY_DOWN)
Properties:
Testing ... (interrupt to exit)
Event: time 1508808873.707404, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1
Event: time 1508808873.707404, -------------- EV_SYN ------------
Event: time 1508808873.984816, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0
Event: time 1508808873.984816, -------------- EV_SYN ------------
Event: time 1508808878.052055, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 1508808878.052055, -------------- EV_SYN ------------
Event: time 1508808878.303562, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 1508808878.303562, -------------- EV_SYN ------------
Event: time 1508808880.872279, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1
Event: time 1508808880.872279, -------------- EV_SYN ------------
Event: time 1508808881.057428, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0
Event: time 1508808881.057428, -------------- EV_SYN ------------
Event: time 1508808881.748917, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1
Event: time 1508808881.748917, -------------- EV_SYN ------------
Event: time 1508808881.916709, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0
Event: time 1508808881.916709, -------------- EV_SYN ------------
Event: time 1508808883.058113, type 1 (EV_KEY), code 1 (KEY_ESC), value 1
Event: time 1508808883.058113, -------------- EV_SYN ------------
Event: time 1508808883.261601, type 1 (EV_KEY), code 1 (KEY_ESC), value 0
Event: time 1508808883.261601, -------------- EV_SYN ------------
Event: time 1508808884.043804, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1
Event: time 1508808884.043804, -------------- EV_SYN ------------
Event: time 1508808884.194038, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1508808884.194038, -------------- EV_SYN ------------
Event: time 1508808886.715256, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1508808886.715256, -------------- EV_SYN ------------
Event: time 1508808886.910315, type 1 (EV_KEY), code 30 (KEY_A), value 0
Event: time 1508808886.910315, -------------- EV_SYN ------------
Event: time 1508808887.382060, type 1 (EV_KEY), code 45 (KEY_X), value 1
Event: time 1508808887.382060, -------------- EV_SYN ------------
Event: time 1508808887.557515, type 1 (EV_KEY), code 45 (KEY_X), value 0
Event: time 1508808887.557515, -------------- EV_SYN ------------
Event: time 1508808889.027526, type 1 (EV_KEY), code 44 (KEY_Z), value 1
Event: time 1508808889.027526, -------------- EV_SYN ------------
Event: time 1508808889.185223, type 1 (EV_KEY), code 44 (KEY_Z), value 0
Event: time 1508808889.185223, -------------- EV_SYN ------------
Event: time 1508808889.755801, type 1 (EV_KEY), code 31 (KEY_S), value 1
Event: time 1508808889.755801, -------------- EV_SYN ------------
Event: time 1508808889.923615, type 1 (EV_KEY), code 31 (KEY_S), value 0
Event: time 1508808889.923615, -------------- EV_SYN ------------
Event: time 1508808891.277758, type 1 (EV_KEY), code 17 (KEY_W), value 1
Event: time 1508808891.277758, -------------- EV_SYN ------------
Event: time 1508808891.467049, type 1 (EV_KEY), code 17 (KEY_W), value 0
Event: time 1508808891.467049, -------------- EV_SYN ------------
Event: time 1508808892.993258, type 1 (EV_KEY), code 16 (KEY_Q), value 1
Event: time 1508808892.993258, -------------- EV_SYN ------------
Event: time 1508808893.232212, type 1 (EV_KEY), code 16 (KEY_Q), value 0
Event: time 1508808893.232212, -------------- EV_SYN ------------ -
ok good the second one is not a big deal. so no worries
the next thing we need to do is start the mapping.
as you read in the guide you will need to make a runcommand-onstart.sh and runcommand-onend.sh
for runcommand-onend.sh you just need to follow what is in the guide, that will never change.
the runcommand-onstart.sh is the one that will change, i will help you out with the start, once you play with it a little then i can point out what needs to be done to get it going
[•] is where you will enter the keycode from your post above.
--evdev-keymap KEY_#304=a
is how you will need to enter it.#!/bin/sh sudo killall > /dev/null 2>&1 xboxdrv /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/event0 \ --silent \ --detach-kernel-driver \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --mimic-xpad \ --evdev-absmap ABS_[•]=x1,ABS_[•]=y1,ABS_[•]=x2,ABS_[•]=y2,ABS_[•]=lt,ABS_[•]=rt,ABS_[•]=dpad_x,ABS_[•]=dpad_y \ --evdev-keymap BTN_[•]=a,BTN_[•]=b,BTN_[•]=x,BTN_[•]=y,BTN_[•]=lb,BTN_[•]=rb,BTN_[•]=tl,BTN_[•]=tr,BTN_[•]=guide,BTN_[•]=back,BTN_[•]=start \ &
so you have a anlog joystick on your controller? or is it just buttons
-
Thanks. I will work on it this evening when I get home. The controller is in the picture. It has an analog joystick and buttons. The buttons are from a super nintendo controller board I cut up and the analog joystick is from the raspberry pi store. Here is the guide to what I made.
https://learn.adafruit.com/super-game-pi
I don't think the joystick is an actual analog movement joystick. Looks like it's just up, down, left, right.
-
ok cool
the only think that might be a hang up will be the fact is that you do no have any ABS or anglog movement which is used for the mouse movement.
but i think it still should work with just buttons, we will cross that when the time comes. if need be we can ask the god of keymapping.
-
I completed both steps of creating the runcommand-onend.sh and runcommand-onstart.sh. Based on what I posted above for my controller layout does this look correct for the keys?
--evdev-keymap KEY_#44=a,KEY_#45=b,KEY_#31=x,KEY_#30=y,KEY_#16=lb,KEY_#17=rb,BTN_[•]=tl,BTN_[•]=tr,BTN_[•]=guide,KEY_#1=back,KEY_#28=start
&If so, where do I assign the keys for direction? According tho the results I got they would be keys 108, 103, 105, 106.
Thanks for your help.
-
@bassman6805
so far it is looking good
you can removeBTN_[•]=tl,BTN_[•]=tr,BTN_[•]=guide
for your d pad it will look like this
BTN_TOP2=du,BTN_PINKIE=dr,BTN_BASE=dd,BTN_BASE2=dl
replace theBTN
with your key numberas for getting it to work with the mouse im still looking it to
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.