Scummvm controller help
-
I'm willing to try anything if someone has a suggestion.
-
Bumping to see if anyone might have some ideas.
-
Is that a retroarch config that you linked? Because scummvm isn't part of that (as far as I know). I had to set up xboxdrv and mapped some keys to buttons on my pad, including using the analog stick as mouse.
-
Yes, that's the retroarch config file. Would you care to tell me how to set up the xbox thing for scummvm? If I set that up will it effect my other systems?
-
@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
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.