RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Scummvm controller help

    Scheduled Pinned Locked Moved Help and Support
    scummvmcontroller help
    76 Posts 8 Posters 13.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      EctoOne @bassman6805
      last edited by

      @bassman6805 It won't affect the other systems if you configure it correctly. Luckily the guide in the docs uses scummvm as example.

      1 Reply Last reply Reply Quote 0
      • D
        dudleydes @bassman6805
        last edited by

        @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.

        BillyHB 1 Reply Last reply Reply Quote 0
        • B
          bassman6805
          last edited by

          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!

          ExarKunIvE 1 Reply Last reply Reply Quote 0
          • ExarKunIvE
            ExarKunIv @bassman6805
            last edited by

            @bassman6805
            i got my mapped with xboxdrv and it works fine for me. so it can be done

            RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
            RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
            Maintainer of RetroPie-Extra .

            1 Reply Last reply Reply Quote 0
            • B
              bassman6805
              last edited by

              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?

              ExarKunIvE 1 Reply Last reply Reply Quote 0
              • ExarKunIvE
                ExarKunIv @bassman6805
                last edited by ExarKunIv

                @bassman6805

                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

                RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                Maintainer of RetroPie-Extra .

                1 Reply Last reply Reply Quote 0
                • B
                  bassman6805
                  last edited by

                  It's my understanding that the xboxdrv installed automatically now in some of the newer versions but I could be mistaken.

                  ExarKunIvE 1 Reply Last reply Reply Quote 0
                  • ExarKunIvE
                    ExarKunIv @bassman6805
                    last edited by ExarKunIv

                    @bassman6805

                    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

                    RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                    RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                    Maintainer of RetroPie-Extra .

                    1 Reply Last reply Reply Quote 0
                    • B
                      bassman6805
                      last edited by

                      Ok. Should I jump to section 3a of the guide you posted or do I need to do something else?

                      ExarKunIvE 1 Reply Last reply Reply Quote 0
                      • ExarKunIvE
                        ExarKunIv @bassman6805
                        last edited by

                        @bassman6805

                        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.

                        RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                        RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                        Maintainer of RetroPie-Extra .

                        1 Reply Last reply Reply Quote 0
                        • B
                          bassman6805
                          last edited by

                          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.

                          0_1508789863971_Pi 3 resize.jpg

                          ExarKunIvE 1 Reply Last reply Reply Quote 0
                          • ExarKunIvE
                            ExarKunIv @bassman6805
                            last edited by

                            @bassman6805

                            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 this

                            
                            pi@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 this

                            Input 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)
                            

                            RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                            RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                            Maintainer of RetroPie-Extra .

                            1 Reply Last reply Reply Quote 0
                            • B
                              bassman6805
                              last edited by

                              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 d0030002

                              The second and third commands I get "no such file or directory".

                              1 Reply Last reply Reply Quote 0
                              • B
                                bassman6805
                                last edited by bassman6805

                                I figured out the third command and got these results.

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bassman6805
                                  last edited by

                                  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 ------------

                                  ExarKunIvE 1 Reply Last reply Reply Quote 0
                                  • ExarKunIvE
                                    ExarKunIv @bassman6805
                                    last edited by

                                    @bassman6805

                                    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

                                    RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                    RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                    Maintainer of RetroPie-Extra .

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      bassman6805
                                      last edited by bassman6805

                                      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.

                                      ExarKunIvE 1 Reply Last reply Reply Quote 0
                                      • ExarKunIvE
                                        ExarKunIv @bassman6805
                                        last edited by

                                        @bassman6805

                                        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.

                                        RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                        RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                        Maintainer of RetroPie-Extra .

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bassman6805
                                          last edited by bassman6805

                                          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.

                                          ExarKunIvE 1 Reply Last reply Reply Quote 0
                                          • ExarKunIvE
                                            ExarKunIv @bassman6805
                                            last edited by

                                            @bassman6805
                                            so far it is looking good
                                            you can remove BTN_[•]=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 the BTN with your key number

                                            as for getting it to work with the mouse im still looking it to

                                            RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                            RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                            Maintainer of RetroPie-Extra .

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.