Scummvm controller help
-
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
-
When I add the directions do they go in the same line as the others?
-
yes.
you keep everything that goes with the first part in the same line.
--evdev-keymap
is for keys and buttons. -
Here is what I have for the onstart.sh
#!/bin/sh
if [ "$1" = "scummvm" ]
then
sudo killall > /dev/null 2>&1 xboxdrv
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1
--evdev /dev/input/by-id/[•]
--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 KEY_#44=a,KEY_#45=b,KEY_#31=x,KEY_#30=y,KEY_#16=lb,KEY_#17=rb,KEY_#1=back,KEY_#28=start,KEY_108=du,KEY_106=dr,KEY_103=dd,KEY_105=dl
--axismap -Y1=Y1,-Y2=Y2
--ui-axismap x1=REL_X:10,y1=REL_Y:10
--ui-buttonmap b=BTN_LEFT,a=BTN_RIGHT,start=KEY_F5
--ui-buttonmap guide=void,x=void,y=void,lb=void,rb=void,tl=void,tr=void,lt=void,rt=void,back=void
--ui-axismap x2=void
&
fi -
I'm still not getting anything to work. I am using scummvm sdl1 if that matters.
I also tried regular scummvm.
-
@bassman6805
you have most of it right but there are a few things that were needed
try this#!/bin/sh if [ "$1" = "scummvm" ] then sudo killall > /dev/null 2>&1 xboxdrv sudo /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-keymap KEY_#44=a,KEY_#45=b,KEY_#31=x,KEY_#30=y,KEY_#16=lb,KEY_#17=rb,KEY_#1=back,KEY_#28=start,KEY_#108=du,KEY_#106=dr,KEY_#103=dd,KEY_#105=dl \ --ui-buttonmap b=BTN_LEFT,a=BTN_RIGHT,start=KEY_F5,dr=REL_X:25,dl=REL_X:-25,dd=REL_Y:25,du=REL_Y:-25 \ --ui-buttonmap guide=void,x=void,y=void,lb=void,rb=void,tl=void,tr=void,lt=void,rt=void,back=void \ & fi
-
I'll give it a shot this evening. On a side note, how do you get the code to show up in the black box on here?
-
-
I pasted the code word for word but I still don't get any movement when I launch scummvm and the buttons do not seem to do anything either. Is there something else I can check? Would it help if I posted some settings or something?
-
I did find out that the xboxdrv was not installed. The original directions I found were old and the menus had changed. I figured out the location and installed it but still no controller response.
-
when you are running the game you can put this on the command line.
then sudo killall > /dev/null 2>&1 xboxdrv sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/event0 \ --silent \ --detach-kernel-driver \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --mimic-xpad \ --evdev-keymap KEY_#44=a,KEY_#45=b,KEY_#31=x,KEY_#30=y,KEY_#16=lb,KEY_#17=rb,KEY_#1=back,KEY_#28=start,KEY_#108=du,KEY_#106=dr,KEY_#103=dd,KEY_#105=dl \ --ui-buttonmap b=BTN_LEFT,a=BTN_RIGHT,start=KEY_F5,dr=REL_X:25,dl=REL_X:-25,dd=REL_Y:25,du=REL_Y:-25 \ --ui-buttonmap guide=void,x=void,y=void,lb=void,rb=void,tl=void,tr=void,lt=void,rt=void,back=void \ &
this will force it to start and if there is any errors it will come up.
if it is working it will pop up something like this
xboxdrv 0.8.8 - http://pingus.seul.org/~grumbel/xboxdrv/ Copyright © 2008-2011 Ingo Ruhnke <grumbel@gmail.com> Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details. Your Xbox/Xbox360 controller should now be available as: /dev/input/js2 /dev/input/event4 Press Ctrl-C to quit
if nothing comes up then there is something else not working. i did try the mapping i gave you so i know there are no errors on it for my system at least
-
Please excuse my ignorance. I'm not sure how to get a command line after I select scummvm from the retropie menu. Do I start scummvm on the retropie menu then ssh into the unit and run the command?
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.