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

    Eduke32 controller analog sticks issue-constant spinning.

    Scheduled Pinned Locked Moved Help and Support
    eduke32edukeduke3dduke nukemanalog stick
    5 Posts 3 Posters 5.1k 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.
    • M
      megafacehead
      last edited by

      Hey guys

      Googled the crap out of this and have found plenty of people with the same problem but no fix.Half expecting someone to just reply and say 'known issue, use keyboard/mouse instead'.

      Anyways, load duke3d atomic edition, and attempt to play with my xbox 360 controller.Some of the binds are strange but manage to get fire, weapon cycle etc all assigned well no problems but as soon as you move with the right analog sticks/look around with the left analog stick the whole thing goes haywire.

      It's like being in a spin cycle, constant spinning (from the right stick)and either strafe/walk forward/walk backward stuck on (from the left stick).

      It SEEMS like a deadzone issue.I attempted to set the stick deadszone from the duke3d menu but assigning any value over 0%(no deadzone) stops the sticks from working completely.It's either spin cycle or nothing.

      Then i downloaded xboxdrv and enabled it, because it has a built in stick deadzone modifier.But this didnt fix it either.No effect whatsoever.

      Any tips/fixes for this?

      p.s. yes i have input the 'in_joystick1' command but obviously that did squat.

      1 Reply Last reply Reply Quote 0
      • stooS
        stoo
        last edited by stoo

        This post applies to the XPad driver that is the default driver for the XBox360 controller in RetroPie 4.1 and higher.

        @megafacehead Ok, here's the deal...

        To make the controller work correctly, you must edit eduke32.cfg directly. Changing the values from within the in-game menus is pointless, as the values required to make the controls work anywhere near properly cannot be applied from within the in-game menus.

        As far as I can see, there is no documentation that explains what the joystick config values actually mean in real terms.

        In eduke32 no individual axis works the same as any other one, in my experience. They all have different internal scale values so what works on one axis will not work on another. This also means that while you can get motion and vertical looking working well to an extent, it seems almost impossible to get turning (lateral aiming) as acccurate as it should be.

        I have tried many, many different values for scale, deadzone and saturation and it still just feels like the overall scale is off slightly (too high on small inputs, too low on large ones).

        Strafing is especially weird, and requires a scale value far below what you can set in the menus. This seems to be true in Windows too, so it's probably just an eduke32 problem. The settings below may not allow Duke to strafe at his maximum strafe speed - that would take some more trial and error - but at least there is an actual range of speed with these settings.

        Having said all that, these settings below are at least totally playable, if not ideal. It's not as good as keyboard and mouse, but it's way better than keyboard alone (as I used to play back in mid 1996 - I didn't learn KB+mouse until QuakeWorld came out!)

        You can tweak the settings below to your liking, but bear in mind that the relationship between scale and saturate seems to be different on each axis, and if you alter scale you will probably have to compensate by experimenting with saturate.

        You must also remember to quit the game, make your edits and then reload the game, otherwise eduke32 will overwrite your settings.

        JoystickAnalogAxes0 = "analog_strafing"
        JoystickAnalogScale0 = 1000
        JoystickAnalogDead0 = 2000
        JoystickAnalogSaturate0 = 1000000
        JoystickAnalogAxes1 = "analog_moving"
        JoystickAnalogScale1 = 98304
        JoystickAnalogDead1 = 2000
        JoystickAnalogSaturate1 = 32768
        JoystickAnalogAxes2 = "analog_turning"
        JoystickAnalogScale2 = 32768
        JoystickAnalogDead2 = 2000
        JoystickAnalogSaturate2 = 562500
        JoystickAnalogAxes3 = "analog_lookingupanddown"
        JoystickAnalogScale3 = 16384
        JoystickAnalogDead3 = 3000
        JoystickAnalogSaturate3 = 16384
        

        In case you want to bind other buttons on the 360 controller, here's what each one corresponds to in eduke32.

        Button 0 = A
        Button 1 = B
        Button 2 = X
        Button 3 = Y
        
        Button 4 = LB
        Button 5 = RB
        Button 6 = LT
        Button 7 = RT
        
        Button 8 = Select
        Button 9 = Start
        Button 10 = XBox Guide
        
        Button 11 = LStick
        Button 12 = RStick
        
        Hat 0 Up = Button 13 = D-PAD Up
        Hat 0 Right = Button 14 = D-PAD Right
        Hat 0 Down = Button 15 = D-PAD Down
        Hat 0 Left = Button 16 = D-PAD Left
        

        It's irritating that you can't bind any joystick buttons to open the main menu, or quicksave/load and that normal save games still require a name to be typed, but I guess eduke32 wasn't made with controllers in mind.

        C 1 Reply Last reply Reply Quote 1
        • C
          CommanderJ
          last edited by CommanderJ

          Hi Stoo,
          How can I edit this file.
          I found where I can edit it through Windows Explorer but the config file just shows names and values in one line.

          I will create a backup but I am not sure if I will properly edit this so the game will read what I enter in.

          I am thinking that maybe for best results I should do it through RetroPie? So how can I go about doing this through the Pie.

          Or can you post your config file cfg file in plane text here?

          Thank you,

          stooS 1 Reply Last reply Reply Quote 0
          • C
            CommanderJ @stoo
            last edited by CommanderJ

            @stoo

            I wanted to make sure you are notified of my reply. I don't think I did it correctly as I am new here. Thanks.

            1 Reply Last reply Reply Quote 0
            • stooS
              stoo @CommanderJ
              last edited by stoo

              @commanderj Hi CommanderJ

              You need to use a text editor that understands UNIX-style line breaks. Notepad doesn't and that's why it all appears on a single line for you.

              I suggest Notepad++ which is free. When you edit a text file from your RPi it should say Unix (LF) at the bottom of the Notepad++ window.

              Here's my full eduke32.cfg. Feel free to copy it and amend it to your liking.

              [Misc]
              Executions = 58
              
              [Setup]
              ConfigVersion = 315
              ForceSetup = 1
              NoAutoLoad = 1
              SelectedGRP = "duke3d.grp"
              
              [Screen Setup]
              ScreenBPP = 8
              ScreenHeight = 768
              ScreenMode = 0
              ScreenWidth = 1024
              WindowPositioning = 0
              WindowPosX = -1
              WindowPosY = -1
              MaxRefreshFreq = 0
              Out = 0
              Password = ""
              
              [Controls]
              MouseButton0 = "Fire"
              MouseButton1 = "MedKit"
              MouseButton2 = "Jetpack"
              MouseButton4 = "Previous_Weapon"
              MouseButton5 = "Next_Weapon"
              MouseAnalogAxes0 = "analog_turning"
              MouseAnalogAxes1 = "analog_moving"
              JoystickAnalogAxes0 = "analog_strafing"
              JoystickAnalogScale0 = 1000
              JoystickAnalogDead0 = 2000
              JoystickAnalogSaturate0 = 1000000
              JoystickAnalogAxes1 = "analog_moving"
              JoystickAnalogScale1 = 98304
              JoystickAnalogDead1 = 2000
              JoystickAnalogSaturate1 = 32768
              JoystickAnalogAxes2 = "analog_turning"
              JoystickAnalogScale2 = 32768
              JoystickAnalogDead2 = 2000
              JoystickAnalogSaturate2 = 562500
              JoystickAnalogAxes3 = "analog_lookingupanddown"
              JoystickAnalogScale3 = 16384
              JoystickAnalogDead3 = 3000
              JoystickAnalogSaturate3 = 16384
              JoystickButton0 = "Jump"
              JoystickButton1 = "Crouch"
              JoystickButton2 = "Open"
              JoystickButton3 = "Open"
              JoystickButton4 = "Inventory_Left"
              JoystickButton5 = "Inventory_Right"
              JoystickButton6 = "Quick_Kick"
              JoystickButton7 = "Fire"
              JoystickButton8 = "Map"
              JoystickButton9 = "MedKit"
              JoystickButton10 = "Inventory"
              JoystickButton11 = "Crouch"
              JoystickButton12 = "Jetpack"
              JoystickButton13 = ""
              JoystickButton14 = "Next_Weapon"
              JoystickButton15 = ""
              JoystickButton16 = "Previous_Weapon"
              JoystickButtonClicked1 = ""
              JoystickButtonClicked2 = ""
              JoystickButtonClicked3 = ""
              JoystickButton32 = ""
              JoystickButton33 = ""
              JoystickButton34 = ""
              JoystickButton35 = ""
              JoystickDigitalAxes3_0 = "Run"
              
              [Comm Setup]
              PlayerName = ""
              RTSName = "DUKE.RTS"
              CommbatMacro#0 = "An inspiration for birth control."
              CommbatMacro#1 = "You're gonna die for that!"
              CommbatMacro#2 = "It hurts to be you."
              CommbatMacro#3 = "Lucky son of a bitch."
              CommbatMacro#4 = "Hmmm... payback time."
              CommbatMacro#5 = "You bottom dwelling scum sucker."
              CommbatMacro#6 = "Damn, you're ugly."
              CommbatMacro#7 = "Ha ha ha... wasted!"
              CommbatMacro#8 = "You suck!"
              CommbatMacro#9 = "AARRRGHHHHH!!!"
              
              [MapTimes]
              
              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.