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

    Weird Controller Problems (yes, again)

    Scheduled Pinned Locked Moved Help and Support
    controllersxbox360nesraphnet
    53 Posts 5 Posters 17.9k 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.
    • meleuM
      meleu @edmaul69
      last edited by

      @edmaul69 said in Weird Controller Problems (yes, again):

      @meleu i recently posted having an issue that my 2600-daptor ii is always seen as joystick 0 in linux even when it isnt in es or any emu other than wolf4sdl. I got no response.

      I didn't see it. Can you post a link to your topic? Did you solve your issue?

      I would love to know how to make my vision-daptor seen as js0 in linux stuff/ retropie menu stuff, jstest....

      Do you actually mean "make the vision-daptor be the /dev/input/js0" or you just wanna be able to navigate through the menus using this controller?

      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      edmaul69E 1 Reply Last reply Reply Quote 0
      • edmaul69E
        edmaul69 @meleu
        last edited by

        @meleu navigating the menus isnt a huge deal but because it isnt seen as js0 i cant play wolfenstein or spear of destiny on wolf4sdl

        meleuM 1 Reply Last reply Reply Quote 0
        • meleuM
          meleu @edmaul69
          last edited by meleu

          @edmaul69 I think that @mediamogul faced a similar problem and talked about it in this thread: https://retropie.org.uk/forum/topic/1757/js0-being-ignored-by-some-emulators

          Maybe he can give a hand to you.

          ( @mediamogul please, forgive me if I'm bothering when I tag you on the topics you are not on.)

          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          mediamogulM 1 Reply Last reply Reply Quote 0
          • hansolo77H
            hansolo77 @meleu
            last edited by

            @meleu said in Weird Controller Problems (yes, again):

            The trick here is:

            1. discover what is the js-number of the controller you want to use for dialog navigation. According to what you said, the xbox controller is the /dev/input/js2.
            2. Put the following line in the /opt/retropie/configs/all/autostart.sh before the command that starts emulationstation:
            export __joy2key_dev="/dev/input/js2"
            
            1. reboot the system.

            Sorry it took so long, this is the first day I have off to be able to test this. It doesn't seem to be working. I edited that file, there was only one line in it emulationstation #auto. So I dropped that a line and put on the 1st line that code. Saved the file, rebooted, and I'm back in ES. I try to launch a game, run-command comes up, I press buttons, and nothing happens. I then tried entering the RetroPie-Setup script menus, and again, no input was registered on the Xbox controller. I did press F4 to get to terminal, and ran the `jstest /dev/input/js2' and confirmed it still detects that as the Xbox controller.

            Are you sure that is the correct format of the code, and that the `__joy2key_dev' part is right?

            Who's Scruffy Looking?

            1 Reply Last reply Reply Quote 0
            • mediamogulM
              mediamogul Global Moderator @meleu
              last edited by mediamogul

              @meleu said in Weird Controller Problems (yes, again):

              please, forgive me if I'm bothering when I tag you on the topics you are not on.

              I am getting rather behind on my cancer research, but my last experiment just ended up causing a lot more cancer and something that I'm now labeling "super cancer", so I could use a break.

              @edmaul69

              because it isnt seen as js0 i cant play wolfenstein or spear of destiny on wolf4sdl

              Personally, I key-map for 'Wolfenstein 3D' to solve this same problem and allow for a more flexible control scheme. However, you could also use a case statement, similar to the one MadHorse wrote for selectively launching xboxdrv commands, only have it to where it renames js0 to a temporary name and js* to js0 on game launch.

              Although not in a case statement, I have successfully done this myself a few times for various reasons and the command is nothing more complicated than:

              mv /dev/inputs/js0 /dev/inputs/temp_name
              mv /dev/inputs/js* /dev/inputs/js0
              

              You can of course "flip the script" as the kids say to get back where you started.

              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

              edmaul69E 1 Reply Last reply Reply Quote 0
              • edmaul69E
                edmaul69 @mediamogul
                last edited by

                @mediamogul when you say keymap what are you using to do this?

                mediamogulM 2 Replies Last reply Reply Quote 0
                • hansolo77H
                  hansolo77
                  last edited by

                  I just did a search in WinSCP on the Root file system. "joy2key.py" is found in 2 locations:

                  • /home/pi/RetroPie-Setup/scriptmodules/supplementary/runcommand/joy2key.py
                  • /opt/retropie/supplementary/runcommand/joy2key.py

                  I edited both files to see their contents, and there is no mention of receiving inputs from __joy2key_dev. Is it possible this file has been updated and no longer seeks for input from that dev location first? All I know, I added the line to the correct file, and it doesn't work. It makes absolute sense as to what it's supposed to do, it just doesn't do that.

                  Who's Scruffy Looking?

                  meleuM 1 Reply Last reply Reply Quote 0
                  • mediamogulM
                    mediamogul Global Moderator @edmaul69
                    last edited by mediamogul

                    @edmaul69

                    I'm using xboxdrv. I've found it to be a big help for that game in particular. For example, strafing left normally requires that you input two buttons. To simplify this I mapped 'alt+left' to the left shoulder button. I do the same thing to strafe right for the right shoulder and it really makes maneuvering through the game a lot easier. I also have the exit command mapped to 'select+start' and the menu command mapped to 'select+x' to match up with the familiar RetroArch control scheme.

                    RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                    1 Reply Last reply Reply Quote 0
                    • mediamogulM
                      mediamogul Global Moderator @edmaul69
                      last edited by mediamogul

                      @edmaul69

                      Something else worth mentioning that I'm pretty proud of with my setup for Wolf3D is my mapping for weapon selection. Since the game relies on keys 1-4 for weapon selection, rather than having an option for progressive selection like 'DOOM' or the Quake games, I mapped my own to the 'x' button of my controller using:

                      --ui-buttonmap x=cycle-key:KEY_1:KEY_2:KEY_3:KEY_4
                      

                      Now I can cycle through my available weapons with one controller button, rather than having to map four dedicated ones.

                      I could geek out about this stuff all day. Part of the fun for me is finding a better, more efficient way to control a game.

                      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                      edmaul69E 1 Reply Last reply Reply Quote 0
                      • edmaul69E
                        edmaul69 @mediamogul
                        last edited by

                        @mediamogul so can i use xboxdrv just for this? I just dont want all my controllers seen as an xbox controller. I have adaptors that use multiple controllers but dont share all the same button numbers. Could make a real mess for me.

                        mediamogulM 1 Reply Last reply Reply Quote 0
                        • meleuM
                          meleu @hansolo77
                          last edited by

                          @hansolo77
                          The __joy2key_dev is used only by the scripts which call joy2key.py. If you are curious, here are links to the exact line in each file:

                          • runcommand.sh
                          • helpers.sh (used by retropie_setup.sh)
                          • jsfuncs.sh (used by RetroPie-joystick-selection tool)

                          I'm away from my raspi now, but I'll try to find a solution when I get home. And the first thing I'll try is to put that export line at the end of /etc/profile. :-)

                          • Useful topics
                          • joystick-selection tool
                          • rpie-art tool
                          • achievements I made
                          hansolo77H 2 Replies Last reply Reply Quote 0
                          • mediamogulM
                            mediamogul Global Moderator @edmaul69
                            last edited by mediamogul

                            @edmaul69 said in Weird Controller Problems (yes, again):

                            so can i use xboxdrv just for this?

                            Sure, you can use either one of two methods mentioned in the guide for selective launching of xboxdrv. I don't use it for everything myself.

                            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                            edmaul69E 1 Reply Last reply Reply Quote 0
                            • edmaul69E
                              edmaul69 @mediamogul
                              last edited by

                              @mediamogul sweet. I will look into that. I should get my replacement apple iie keyboard adaptor tomorrow. (Not sure why it is taking usps 5 days to ship something two hours away) The keyboard overrides the other two as the first joystick (even though it has no joystick functionality) in jstest and stuff. Doesnt bother me to use the keyboard for that stuff anyway. I also wanna play around with using the apple IIe mouse and keyboard and see how well fps' work on that archaic hardware. 😄

                              mediamogulM 1 Reply Last reply Reply Quote 1
                              • hansolo77H
                                hansolo77 @meleu
                                last edited by

                                @meleu said in Weird Controller Problems (yes, again):

                                @hansolo77
                                The __joy2key_dev is used only by the scripts which call joy2key.py. If you are curious, here are links to the exact line in each file:

                                • runcommand.sh
                                • helpers.sh (used by retropie_setup.sh)
                                • jsfuncs.sh (used by RetroPie-joystick-selection tool)

                                I'm away from my raspi now, but I'll try to find a solution when I get home. And the first thing I'll try is to put that export line at the end of /etc/profile. :-)

                                Thanks @meleu I'll be waiting for your solution. :) Looks like a couple of guys hijacked my thread though lol.

                                Who's Scruffy Looking?

                                edmaul69E mediamogulM 2 Replies Last reply Reply Quote 1
                                • mediamogulM
                                  mediamogul Global Moderator @edmaul69
                                  last edited by mediamogul

                                  @edmaul69 said in Weird Controller Problems (yes, again):

                                  The keyboard overrides the other two as the first joystick (even though it has no joystick functionality)

                                  I actually believe you can fix that with a udev rule, but I may be mistaken.

                                  RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                  1 Reply Last reply Reply Quote 0
                                  • edmaul69E
                                    edmaul69 @hansolo77
                                    last edited by

                                    @hansolo77 i apologize. I didnt mean to hijack it. We are both in the same situation and its possible the same northwest fix we both did caused this. I was hoping we both could get the answer we needed without trying to do it in two seperate threads. If meleu finds a way around it i am all for it. If you get it working please do share your steps and i will do the same if i get it working.

                                    1 Reply Last reply Reply Quote 1
                                    • mediamogulM
                                      mediamogul Global Moderator @hansolo77
                                      last edited by

                                      @hansolo77 said in Weird Controller Problems (yes, again):

                                      Looks like a couple of guys hijacked my thread though

                                      I'm sorry I took the money!

                                      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                      1 Reply Last reply Reply Quote 0
                                      • hansolo77H
                                        hansolo77
                                        last edited by

                                        LOL I was just kidding. No worries. We're all in this thing together. I'm spending my time soldering a blue LED to my NES, and learning about resistors because I want to have it wired on the GPIO rather than the Mausberry Circuit because the circuit cuts the LED before the system is fully off. Lots of good learning stuff. Have it working now. So my time is being well spent. :)

                                        I just wish I knew more about Linux and programming so I could figure this stuff out on my own without having to ask for somebody to just do it for me.

                                        Who's Scruffy Looking?

                                        edmaul69E 1 Reply Last reply Reply Quote 2
                                        • edmaul69E
                                          edmaul69 @hansolo77
                                          last edited by

                                          @hansolo77 yeah a 220ohm resistor is good. If your blue led is a clear plastic and not blue if you use some wet 2000 grit sandpaper you can dissapate the led so it doesnt blind you when you look at it. But a colored led will always look better.

                                          1 Reply Last reply Reply Quote 0
                                          • hansolo77H
                                            hansolo77
                                            last edited by

                                            @meleu and Anybody Else...

                                            Did you come up with anything I can try? This is still an unanswered issue. I'm game for anything (lol pun unintended). I tried to do some figuring out on my own.. these are some things I tried that didn't work:

                                            • Change from " (double quotes) to ' (single quote) in the export command (I saw some scripts other people had written on other sites for other projects that said they had to be single quotes)
                                            • Change the location of the export command to a totally different file (ie; crontrab by using @reboot, or a different autostart.sh file)

                                            Something I've not tried to do is just manually edit those files you have listed that are calling on __joy2key_dev and just replace the input it's looking for from js0 and make it js2. That would probably be a harsh way to make it work but it probably would. The problem with that is if I ever get some kind of other controller issue, I might need to change them again. Changing 1 file is ideally easier than 3.

                                            Is __joy2key_dev being implemented as a variable, or does this create a file somewhere that those other scripts are looking for? It looks like it's just creating a declaration for a variable. If that's the case, how do the other scripts find it? In my limited experience and examination of other scripts, variables are exclusive to the script it's running in. Is that what the export command does - make it a system-wide variable? I'm just trying to wrap my head around what's actually happening, in the hopes I'll be able to fix it on my own, or at least understand how the eventual fix actually works. :)

                                            Who's Scruffy Looking?

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