RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Controller config not saving

    Scheduled Pinned Locked Moved ControlBlock, PowerBlock & Co.
    controlblock2emulationstatonconfigure input
    11 Posts 3 Posters 8.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.
    • L
      loonyboi
      last edited by

      Apologies, because I know this has been posted multiple times before, but I have yet to find a solution that actually works for me.

      I have a ControlBlock2 hooked up to my Retropie. I just replaced my joysticks, and ever since EmulationStation isn't passing my controller settings to RetroArch. I configure them, it works fine in menus, but as soon as I launch anything it's forgotten.

      Example: if I use the setup in ES, then launch any emulator, when the game starts, the controls have been forgotten. Then when it gets back to ES, they've also been forgotten. It's like it never saved them at all. It even does this if I launch Retropie Setup. Anything I launch from ES causes it to forget the controller settings.

      I did a complete system wipe, and it's STILL happening.

      Anyone have any suggestions? Like I said, I've searched and nothing has helped so far.

      I figured it was some permissions issue, and a full system wipe would do something, but nope, no luck.

      Thanks in advance..

      1 Reply Last reply Reply Quote 0
      • L
        loonyboi
        last edited by

        Update: I'm making some progress in diagnosing my issue. I think what's happening is that every time I configure P2, it's overwriting P1. I didn't mirror the cables for both (there's a dead plug on the controlblock), so they need to be independently configured. But my es_input.cfg file appears to only have one gamepad listed:

        --
        <?xml version="1.0"?>
        <inputList>
        <inputConfig type="joystick" deviceName="ControlBlock Arcade Gamepad" deviceGUID="03000000010000000100000004000000">
        <input name="a" type="button" id="4" value="1" />
        <input name="b" type="button" id="3" value="1" />
        <input name="down" type="axis" id="1" value="1" />
        <input name="hotkeyenable" type="button" id="10" value="1" />
        <input name="left" type="axis" id="0" value="-1" />
        <input name="leftshoulder" type="axis" id="0" value="1" />
        <input name="right" type="button" id="2" value="1" />
        <input name="rightshoulder" type="button" id="5" value="1" />
        <input name="select" type="button" id="10" value="1" />
        <input name="start" type="button" id="11" value="1" />
        <input name="up" type="axis" id="1" value="-1" />
        <input name="x" type="button" id="1" value="1" />
        <input name="y" type="button" id="0" value="1" />
        </inputConfig>
        </inputList>

        Is there some setting I missed somewhere that saves a second set? I enabled the second ControlBlock in the controlblockconfig.cfg, but that's for literally a second ControlBlock unit, so that's not right at all (ES detected 4 gamepads when I did that, even though I only have two).

        Where I am now, I can configure one set of controls. If I set up both, they work in ES, but as soon as I launch an emulator, it reverts, and when I return to ES only the most recent one i've set up will function properly.

        Still, it's progress!

        1 Reply Last reply Reply Quote 0
        • L
          loonyboi
          last edited by

          Update x2:

          I've definitely diagnosed the problem now.

          I completely removed my es_config (using the retropie setup menu just to be sure) and on startup, I only configured player 1. Everything worked fine in menus, and when I launched an emulator, it worked fine there. Upon quit and return to ES, it still worked fine.

          I then rebooted. Again, everything fine.

          I then configured Player 2. Everything worked fine in menus for both left and right players. But when I launched into an emulator (same as above) suddenly P1's controls were all wonky. And when I returned to ES, it had reverted as well.

          I keep trying stuff, but this seems to be the core of the problem.

          1 Reply Last reply Reply Quote 0
          • L
            loonyboi
            last edited by

            Update x3 (and final, barring any other developments):

            I have a working solution! It's not ideal on any level, but I've got it more or less settled. My solution: mirror the two controller connections. As long as they're identical, both sets of controls work fine.

            Which seems contrary to how ES is supposed to configure controllers, but whatever. It works, and I can live with it.

            mituM ClydeC 2 Replies Last reply Reply Quote 0
            • mituM
              mitu Global Moderator @loonyboi
              last edited by mitu

              @loonyboi said in Controller config not saving:

              Which seems contrary to how ES is supposed to configure controllers, but whatever. It works, and I can live with it.

              I think it depends on how each gamepad identifies itself to the system - if they have the same device name then it's not possible to auto-configure them differently from Emulationstation.
              The configuration file is based on the device name, so when you configure Player2 input controls (and the mapping it's different than Player1 ), then the configuration will overwrite the 1st configuration (for Player1). If you try to configure again Player1, the configuration will overwrite the P2 config, etc.

              EDIT: can you run sudo lsusb with the controller connected and see how the device(s) are reported ?

              1 Reply Last reply Reply Quote 0
              • L
                loonyboi
                last edited by

                Here's what I get:

                Bus 001 Device 007: ID fafa:0060
                Bus 001 Device 009: ID 1997:2433
                Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
                Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
                Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
                Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

                But as far as I know, this wouldn't help with ControlBlock, as it doesn't use the USB bus.

                mituM 1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator @loonyboi
                  last edited by

                  @loonyboi said in Controller config not saving:

                  But as far as I know, this wouldn't help with ControlBlock, as it doesn't use the USB bus.

                  Ha - you're right, I forgot. I don't know why I kept thinking about USB. In this case, I don't know how you'll be able to tell them apart, but maybe Florian might have an idea.

                  1 Reply Last reply Reply Quote 0
                  • L
                    loonyboi
                    last edited by

                    It was worth a shot!

                    Anyway, I do have a working solution, even if it's a bit weird. Users 1 and 2 use identical plugs. As long as I leave it that way, they'll work fine!

                    1 Reply Last reply Reply Quote 0
                    • ClydeC
                      Clyde @loonyboi
                      last edited by

                      @loonyboi said in Controller config not saving:

                      I have a working solution! It's not ideal on any level, but I've got it more or less settled. My solution: mirror the two controller connections. As long as they're identical, both sets of controls work fine.

                      Care to elaborate on the exact process? It could help others with the same problem who may find this thread. ๐Ÿ˜Š

                      1 Reply Last reply Reply Quote 0
                      • L
                        loonyboi
                        last edited by

                        @clyde said in Controller config not saving:

                        Care to elaborate on the exact process? It could help others with the same problem who may find this thread. ๐Ÿ˜Š

                        Sure, np!

                        As documented above, the problem is that for some reason EmulationStation is only assigning one config for both sets of controls.

                        So the solution (which I've had working for a day now, and seems to be as good a solution as I'm going to get) is to make sure that all of the plugs for the ControlBlock are identical between Player 1 and Player 2.

                        Example:

                        One of my button ports on P1 was busted (it doesn't open all the way) so for the L button I had to use the button 6 port, where P2 was using button 2. My solution was to move Player 2 to mirror that on button 6.

                        As long as the P1 and P2 ports are all identical, EmulationStation works fine. As soon as there's a mismatch, it gets all weird.

                        Hope that's useful for someone!

                        ClydeC 1 Reply Last reply Reply Quote 1
                        • ClydeC
                          Clyde @loonyboi
                          last edited by Clyde

                          @loonyboi Thanks! I wasn't sure if you meant to mirror the controls by ES' UI or at file system level by copying their config files. So if I understand you correctly, setting them up identically in ES does suffice.

                          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.