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

    Swap Buttons A and B in RetroArch RGUI only

    Scheduled Pinned Locked Moved Help and Support
    rguilibretrobutton mapping
    47 Posts 4 Posters 21.2k 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.
    • BuZzB
      BuZz administrators @vbs
      last edited by

      @vbs said in Swap Buttons A and B in RetroArch RGUI only:

      Tested a bit: Retroarch saves the config on startup if the option rgui_show_start_screen is either true or not set. If it is not set (and the saving takes place) then it will be created with value false so Retroarch will not save the config on the following starts.

      This is beyond my understanding currently. :(

      Saving the config on exit is another story, but probably less mysterious since hopefully just triggered by save_config_on_exit.

      Well, found the code that triggers config saving when start screen is enabled. Still does not make more sense to me (menu_driver.c:181):

      if (settings->menu_show_start_screen)
      {
         menu_dialog_push_pending(true, MENU_DIALOG_WELCOME);
         settings->menu_show_start_screen   = false;
         command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
      }
      

      I think the problem is the function used to only save config when save config on exit was on. So before it was a NOOP - now CMD_EVENT_MENU_SAVE_CURRENT_CONFIG will always save (a fix for another issue). This just needs some logic added I guess to only save the config if save config on exit is on.

      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

      1 Reply Last reply Reply Quote 0
      • BuZzB
        BuZz administrators
        last edited by

        See https://github.com/libretro/RetroArch/issues/3605

        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

        1 Reply Last reply Reply Quote 0
        • vbsV
          vbs @BuZz
          last edited by vbs

          @BuZz
          Yes I did that already. The stuff I posted today was done on my regular Linux machine (no Retropie at all). I cloned Retroarch, compiled it and started it on the command line. Quite clean test setup IMO, no Retropie involved, used empty config file just with that single config option.

          The question for me really is if that behavior is intended by Retroarch. If not, then they could fix it. If yes, then Retropie IMO needs a way to cope with it (maybe using that mentioned config option in the shipped retroarch.cfg).

          EDIT:
          Yes I read that issue. Sounds very similar but important parts seemed different (save on exit?), not sure if its the same. Most importantly: its not fixed :)

          1 Reply Last reply Reply Quote 0
          • BuZzB
            BuZz administrators
            last edited by

            I will submit a PR

            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

            1 Reply Last reply Reply Quote 0
            • BuZzB
              BuZz administrators
              last edited by

              That issue introduced the problem - since the event would have not done anything before but now will.

              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

              vbsV 1 Reply Last reply Reply Quote 0
              • vbsV
                vbs @BuZz
                last edited by

                @BuZz said in Swap Buttons A and B in RetroArch RGUI only:

                That issue introduced the problem - since the event would have not done anything before but now will.

                Hm not so sure, I also reproduced that issue on tag v1.3.6 (if I did not mess anything up) which is ~3 months old, but the issue you linked is just about 30 days old?

                1 Reply Last reply Reply Quote 0
                • BuZzB
                  BuZz administrators
                  last edited by

                  I don't think 1.3.6 can have the issue, so please double check that.

                  To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                  vbsV 1 Reply Last reply Reply Quote 0
                  • vbsV
                    vbs @BuZz
                    last edited by

                    @BuZz
                    I did that again on 1.3.6 and I am really quite sure that it suffers from the same issue.

                    Also the code looks very similar (at least that condition and the save command is in there also):
                    https://github.com/libretro/RetroArch/blob/v1.3.6/menu/menu_driver.c#L177

                    1 Reply Last reply Reply Quote 0
                    • BuZzB
                      BuZz administrators
                      last edited by BuZz

                      The behaviour of command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL); changed - in 1.3.6 that will not save unless save config on exit is enabled. so make sure you don't have that enabled also.

                      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                      1 Reply Last reply Reply Quote 0
                      • BuZzB
                        BuZz administrators
                        last edited by BuZz

                        Unless there is something else at play, but I think the PR should resolve it anyway. try with https://github.com/libretro/RetroArch/pull/3787

                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                        1 Reply Last reply Reply Quote 0
                        • vbsV
                          vbs
                          last edited by

                          I did some tests again. I really hope I didn't mess up cause I am doing like 3 things at once but this is what happens for me with the different versions:

                          'y' means "config gets overwritten upon startup"

                          v1.3.6 config_save_on_exit = true -> y
                          v1.3.6 config_save_on_exit = false -> n

                          master config_save_on_exit = true -> y
                          master config_save_on_exit = false -> y

                          your save_config branch = true -> y
                          your save_config branch = false -> n

                          Well, I really don't get it:

                          • Why does the config get written upon startup at all?
                          • Why is writing the config in any way related to "show start" screen?
                          1 Reply Last reply Reply Quote 0
                          • BuZzB
                            BuZz administrators
                            last edited by

                            Because if the show start screen is enabled, and save on exit is enabled, it disables the screen, and saves config, so next time it won't show.

                            Someone made this decision at some point. The thing that broke was the function for saving config only saved the config if save on config was enabled. But this meant you couldn't manually save the config either from the GUI, so the restriction in the function was removed - however this caused this left over call to call it if the start screen is enabled.

                            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                            vbsV 1 Reply Last reply Reply Quote 0
                            • vbsV
                              vbs @BuZz
                              last edited by

                              @BuZz
                              Ahh ok thank you, understand.

                              Sorry for being annoying :) but another thought: when you install from binary on RPi you get version 1.3.6, right? When you install from source you get current master which basically is a surprise package. Why not also use 1.3.6 when installing from source so everyone gets the same, well defined, state?

                              1 Reply Last reply Reply Quote 0
                              • BuZzB
                                BuZz administrators
                                last edited by BuZz

                                Because then people would complain they can't install the bleeding edge software.

                                I have some plans for improvements for this, but the x86 (source only) support is pretty new. Previously the idea was that you could get stable binaries, but also be able to install bleeding edge from source.

                                Most stuff doesn't break too much anyway, but RetroArch has been going through a lot of development.

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                1 Reply Last reply Reply Quote 0
                                • vbsV
                                  vbs @dankcushions
                                  last edited by vbs

                                  @dankcushions said in Swap Buttons A and B in RetroArch RGUI only:

                                  @vbs can be adjusted in RGUI or retroarch.cfg. eg:

                                  # Menu buttons.
                                  # menu_ok_btn          =
                                  # menu_cancel_btn      =
                                  

                                  you'll have to ucomment them first if they're commented like the above. i've never set them. guess it's set to the numeric js button. probably easier to do through the RGUI.

                                  Sorry me again with this issue. I have this in my config for a while:

                                  menu_ok_btn = "0"
                                  menu_cancel_btn = "8"
                                  

                                  and it worked well so far. I didn't touch Retroarch in a while but now it does not seem to work anymore. My A and B buttons are again "wrong". I also tried several other IDs instead of 0 and 8 but no difference at all.
                                  Did something change there or any other ideas what the reason could be?

                                  I also noticed that closing the menu using "Select + X" does not work anymore (which used to work in the past). I can open the menu with it but I cannot use it to close it again. I always have to choose "Resume" from the quick menu.

                                  EDIT:
                                  Sorry I think I did not mention the environment: I am using latest Retropie on an Intel i5 NUC on Lubuntu 16.04 with Xbox 360 Wireless controllers.

                                  BuZzB 1 Reply Last reply Reply Quote 0
                                  • BuZzB
                                    BuZz administrators @vbs
                                    last edited by

                                    @vbs the hotkey to exit retroarch is a known issue - there is an upstream ticket and at least 2 topics on it - https://retropie.org.uk/forum/topic/5161/unable-to-exit-retroarch-menu / https://github.com/libretro/RetroArch/issues/3899#issuecomment-259129721

                                    The other issue should be reported to retroarch.

                                    To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                    vbsV 1 Reply Last reply Reply Quote 0
                                    • vbsV
                                      vbs @BuZz
                                      last edited by

                                      @BuZz
                                      Ok, thanks I reported that issue with the menu button mapping.
                                      https://github.com/libretro/RetroArch/issues/4111

                                      I really feel a bit unsure if the error is maybe just on my side. Can someone confirm that it is a general bug in current RetroArch?

                                      meleuM 2 Replies Last reply Reply Quote 0
                                      • meleuM
                                        meleu @vbs
                                        last edited by meleu

                                        @vbs I noticed it (A and B reversed) on my Android (using a RetroArch buit on 2016-11-27). I'll update from source on RetroPie and check it.

                                        UPDATE: I've just noticed that someone answered your issue with some news: https://github.com/libretro/RetroArch/issues/4111#issuecomment-264021380

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

                                          @vbs I think you're going to see this on your issue, but let me put it here for future reference:

                                          The menu_ok_ btn and menu_cancel_btn are now deprecated on RetroArch. The Retropad B button is "Cancel" and the Retropad A button is the "OK". The only option you have is to swap them setting menu_swap_ok_cancel_buttons = "true".

                                          edit: corrected the option name.

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

                                            @meleu
                                            Thanks alot mate!
                                            But I think the option is named menu_swap_ok_cancel_buttons(rather than menu_swap_ok_cancel). Just if someone else stumbles upon this...

                                            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.