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

    Problem with gamepad in ports (Duke\doom\quake)

    Scheduled Pinned Locked Moved Help and Support
    portsright stickwrong axiswrong buttonsgamepad config
    9 Posts 3 Posters 1.5k 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.
    • I
      IGA
      last edited by IGA

      Pi Model or other hardware: 4b
      Power Supply used: standart 3v, 5a
      RetroPie Version Used ): 4.7.1
      Built From: Pre made SD Image on RetroPie website
      USB Devices connected: keyboard
      Controller used: saitek 360 gamepad

      Hello!)
      I need help with gamepad in ports game ( doom, quake,duke).....

      At first - how activate it in quake? ( i 've played on crt-tv, so my resolution is 720x480p and i could not see any game text in menu ( need use binoculars ;-)
      quake menu
      And i could not find where gamepad activate...

      But at the same time, at recalbox all plays fine - just plug gamepad and play - nothing need to configurate or set up. So idea was - to take config from recalbox and put it in retropie's folder opt\retropie\configs\ports\quake\tyrquake\id1 with with replacement. But after game's launching gamepad still no active. And config changes to old by it own :(

      Ok, next game game doom. Somehow I managed to to configurate controls on gamepad:
      alt text
      But right stick is wrong! Y-axis is turn left\right, X-axis - look up\down. How to change it? - I couldn't find any doom's configs to change it manually.... :(

      Duke32 - all fine, but problem with right stick. Y-axis on gamepad - look up\down work perfectly, x- axis - not work at all. As i understood, some buttons on gamepad are mixed up or not activated. As example , i couldn't bind any game's command\function on start button - it's not work. The start button on gamepad is not start button in game setup menu - it's wrong. And i suppose that with right stick axis same deal...

      So i've finf duke's config and looked:

      СontrollerAnalogAxes0 = "analog_strafing"
      ControllerDigitalAxes0_0 = ""
      ControllerDigitalAxes0_1 = ""
      ControllerAnalogScale0 = 65536
      ControllerAnalogInvert0 = 0
      ControllerAnalogDead0 = 2000
      ControllerAnalogSaturate0 = 9500
      ControllerAnalogAxes1 = "analog_moving"
      ControllerDigitalAxes1_0 = ""
      ControllerDigitalAxes1_1 = ""
      ControllerAnalogScale1 = 65536
      ControllerAnalogInvert1 = 0
      ControllerAnalogDead1 = 2000
      ControllerAnalogSaturate1 = 9500
      ControllerAnalogAxes2 = "analog_lookingupanddown"
      ControllerDigitalAxes2_0 = ""
      ControllerDigitalAxes2_1 = ""
      ControllerAnalogScale2 = 49152
      ControllerAnalogInvert2 = 0
      ControllerAnalogDead2 = 2000
      ControllerAnalogSaturate2 = 9500
      ControllerAnalogAxes3 = "analog_turning"
      ControllerDigitalAxes3_0 = ""
      ControllerDigitalAxes3_1 = ""
      ControllerAnalogScale3 = 49152
      ControllerAnalogInvert3 = 0
      ControllerAnalogDead3 = 2000
      ControllerAnalogSaturate3 = 9500
      

      As we could see
      fragment:
      СontrollerAnalogAxes0 = "analog_strafing"
      ControllerDigitalAxes0_0 = ""
      ControllerDigitalAxes0_1 = ""
      ControllerAnalogScale0 = 65536
      ControllerAnalogInvert0 = 0
      ControllerAnalogDead0 = 2000
      ControllerAnalogSaturate0 = 9500

      --- responsible for strafing left \ right with the left stick - works

      fragment:
      ControllerAnalogAxes1 = "analog_moving"
      ControllerDigitalAxes1_0 = ""
      ControllerDigitalAxes1_1 = ""
      ControllerAnalogScale1 = 65536
      ControllerAnalogInvert1 = 0
      ControllerAnalogDead1 = 2000
      ControllerAnalogSaturate1 = 9500

      • responsible for the movement of the left stick forward / backward - works

      fragment:
      ControllerAnalogAxes2 = "analog_lookingupanddown"
      ControllerDigitalAxes2_0 = ""
      ControllerDigitalAxes2_1 = ""
      ControllerAnalogScale2 = 49152
      ControllerAnalogInvert2 = 0
      ControllerAnalogDead2 = 2000
      ControllerAnalogSaturate2 = 9500

      --- responsible for the movement of the camera up/down with the right stick
      -works

      and fragment:
      ControllerAnalogAxes3 = "analog_turning"
      ControllerDigitalAxes3_0 = ""
      ControllerDigitalAxes3_1 = ""
      ControllerAnalogScale3 = 49152
      ControllerAnalogInvert3 = 0
      ControllerAnalogDead3 = 2000
      ControllerAnalogSaturate3 = 9500

      • ---according to the idea, he should be responsible for turning the camera left \ right with the right stick - does not work

      Therefore, I need to enter some other values into this fragment (although, by analogy with the left stick, everything is identical)
      or most likely enter the values of this fragment into some of the further fragments ControllerAnalogAxes4, ControllerAnalogAxes5, ControllerAnalogAxes6, etc. (there are even 8 there)

      But how to determine which one?

      Сould someone suggest any solution??

      Full duke config:
      https://dropmefiles.com/O8xHL
      or
      https://pastebin.com/5HJ7ecYv

      1 Reply Last reply Reply Quote 0
      • S
        sleve_mcdichael
        last edited by sleve_mcdichael

        QUAKE

        Are you using stand-alone TyrQuake or the libretro core lr-tyrquake?

        The libretro core is recommended since it utilizes standard RetroArch controls and can therefore be played with a gamepad.

        The stand-alone port uses mouse/keyboard controls.

        https://retropie.org.uk/docs/Quake/#controls

        The stand-alone version has console variables scr_hudscale and scr_menuscale that control these screen elements, but they aren't ported to the libretro core.

        https://retropie.org.uk/forum/topic/31484/quake-lr-tyrquake-text-size-vs-resolution/2?_=1636140833661

        https://disenchant.net/files/engine/docs-master/tyrquake.html#CONSOLE VARIABLES

        I'm not sure exactly how these work since I use the other one, but I think you would just open the console with ~ and then type like scr_menuscale 1.8 or whatever scale factor works for you. You may also be able to set this in a config file somewhere to make it permanent.

        (Ninja edit: actually it looks like you would query/set these just with the hudscale (or menuscale?) command, without the scr_ part. Neither one does anything in the version I use so I can't be sure.)

        In the libretro core, these just scale with the internal resolution and it seems there's nothing else you can do about it. I've settled on 640x400 as a compromise between too chunky (320x200) and too tiny (960x600).

        DOOM

        Doom also has a libretro core (lr-prboom) that seamlessly integrates your gamepad with standard RetroArch controls. At least this time, however, you can still use a pad with the stand-alone port as well. Once again, I only use the RetroArch version but you can find instructions here to help set inputs on the stand-alone port ZDoom: https://retropie.org.uk/docs/Doom/#zdoom-controls

        DUKE

        I had a similar issue with Eduke32, my right analog stick x-axis didn't do anything at all and in my case, the y-axis was flipped as well so I'd move the stick up and down and the camera would pan left/right instead.

        https://retropie.org.uk/forum/topic/30479/eduke32-controller-issue-right-analog-x-axis-not-responding-at-all

        I never did find a proper solution, but I did get a new controller and it works fine with the new one.

        1 Reply Last reply Reply Quote 0
        • P
          Protocultor
          last edited by

          For LZDoom, inside Options -> Joystick Options, under Configure Controllers, your gamepad should appear. Select it and you'll see assignments for Axes, which normally should be:

          Axis 1: Strafing
          Axis 2: Moving Forward
          Axis 3: Turning
          Axis 4: Looking Up/Down
          The rest should be set to None

          Axis 3 and 4 are the right stick, and you probably have their functions swapped.

          I 1 Reply Last reply Reply Quote 0
          • I
            IGA @Protocultor
            last edited by

            @protocultor said in Problem with gamepad in ports (Duke\doom\quake):

            For LZDoom, inside Options -> Joystick Options, under Configure Controllers, your gamepad should appear.

            O, great! I just couldn't saw it on my tv:
            alt text

            Thanks!
            But where find "esc" button to bind it to gamepad for not use keyboard.
            ( I've tried to bind f4- options menu to select button on gamepad, but in game when I've push select and options menu appear, then push "b" to enter esc-menu, but esc-menu not appear - just go in game process)

            @sleve_mcdichael said in Problem with gamepad in ports (Duke\doom\quake):

            Are you using stand-alone TyrQuake or the libretro core lr-tyrquake?

            Yes, i used TyrQuake.
            Ok, I've deleted stand alone TyrQuake and install lr-tyrquake.
            The menu has become better:
            alt text

            • But how enable gamepad to bind buttons for this version?? - gamepad still unable.

            Quake 2 - right stick - x-axis - not available, y-axis - turn left\right. It mixed up like in duke....
            Quake 3 - same story

            I P 2 Replies Last reply Reply Quote 0
            • I
              IGA @IGA
              last edited by

              Well, quake 2 config located in opt\retropie\configs\ports\quake2\yqake2\baseq2\config .cfg

              There the fragment responsible for the sticks, I've suppose:

              set joy_axis_leftx "sidemove"
              set joy_axis_leftx_threshold "0.15"
              set joy_axis_lefty "forwardmove"
              set joy_axis_lefty_threshold "0.15"
              set joy_axis_rightx "yaw"
              set joy_axis_rightx_threshold "0.15"
              set joy_axis_righty "pitch"
              set joy_axis_righty_threshold "0.15"
              

              so i've change it to:

              set joy_axis_righty "yaw"
              set joy_axis_righty_threshold "0.15"
              set joy_axis_rightx "pitch"
              set joy_axis_rightxx_threshold "0.15"

              and save it. Nothing is happening in game, and after exiting it returns to old config

              I 1 Reply Last reply Reply Quote 0
              • I
                IGA @IGA
                last edited by IGA

                So, I have achieved that right-stick y-axis became correct ( look up/down) by changing it in config - so, apparently I'm still changing something there, but WinSCP (through which I connect to raspberry and change everything in config) show me the same old config as if I didn't change anything - is this bug of WinSCP?

                zI'm confused
                ( cause i've definitely changed y-axis to look (was turning, at first), but in config everything is the same as before my changes)

                0_o

                1 Reply Last reply Reply Quote 0
                • I
                  IGA
                  last edited by

                  well, back to duke....

                  I've experimented with config file and try to put values from

                  ControllerAnalogAxes3 = "analog_turning"
                  ControllerDigitalAxes3_0 = ""
                  ControllerDigitalAxes3_1 = ""
                  ControllerAnalogScale3 = 49152
                  ControllerAnalogInvert3 = 0
                  ControllerAnalogDead3 = 2000
                  ControllerAnalogSaturate3 = 9500
                  

                  to ControllerAnalogAxes4

                  so got:

                  ControllerAnalogAxes4 = "analog_turning"
                  ControllerDigitalAxes4_0 = ""
                  ControllerDigitalAxes4_1 = ""
                  ControllerAnalogScale4 = 49152
                  ControllerAnalogInvert4 = 0
                  ControllerAnalogDead4 = 2000
                  ControllerAnalogSaturate4 = 9500
                  

                  and after that, in game camera begins always turning right, but when i push joystick left it stopped and when pressed right - rotate faster right.
                  So, i suppose that is right fragment ( in other 5-8 axis fragments joystick no response) for my gamepad....
                  But, now i need to understand what values i need to enter there (49152,0,2000,9500) to stop always rotations

                  Maybe there are knowledgeable people here
                  And I would like to hear their opinion

                  1 Reply Last reply Reply Quote 0
                  • P
                    Protocultor @IGA
                    last edited by

                    @iga said in Problem with gamepad in ports (Duke\doom\quake):

                    But where find "esc" button to bind it to gamepad for not use keyboard.
                    ( I've tried to bind f4- options menu to select button on gamepad, but in game when I've push select and options menu appear, then push "b" to enter esc-menu, but esc-menu not appear - just go in game process)

                    Enter in "Options" -> "Go to console", and in this console type:

                    bind joy9 menu_main
                    

                    Replace joy9 for the button you want to bind as the main menu. You can find out which is it by setting any unused action to this button in "customize controls"; the button name should appear when you set it. You can then do the manual binding in the console described above, it will replace what you just set in options.

                    I 1 Reply Last reply Reply Quote 0
                    • I
                      IGA @Protocultor
                      last edited by IGA

                      @protocultor said in Problem with gamepad in ports (Duke\doom\quake):

                      Enter in "Options" -> "Go to console", and in this console type:

                      Ооооооооо, great, thanks!

                      Well, with doom all fine, now need to find out how enable pad in lr-tyrquake
                      And have dealings with the right stick in quake 2\3 and duke

                      Maybe for those games need some same console command like in doom?
                      ( i still not understood how work config in quake 2 - I'm change those values and the game apply it, but after quit from game - config stay the same original. And in game right stick only not work left direction, other up\down\right work well, and in option menu function "turn right" bind as trig_left, so maybe in console i need to write something about left-direction as trigger_right?? In options menu it's unable to bind to x axis left)

                      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.