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

    prboom with modern control scheme?

    Scheduled Pinned Locked Moved General Discussion and Gaming
    prboom
    22 Posts 4 Posters 9.8k 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.
    • C
      Concat
      last edited by

      Hey everyone,

      I hate that I can't map the right joystick in retroarch for prboom... :P I basically want left joystick to be forward/backward/strafe left/strafe right, and right joystick to be turn left/turn right. This mirrors modern controls. It's been a long time since I played these old 1st person shooters with their original control scheme... has anyone successfully done this?

      Retroarch will only let me set left joystick or right joystick to digital, not both, and it doesn't recognize analog at all.

      I have shadow warrior setup with modern controls with LinuxJoystickMapper, so I'm going to have to try that again here. Playing Shadow Warrior with modern controls is sweet... I played that game so much as a kid.

      D edmaul69E 2 Replies Last reply Reply Quote 0
      • D
        dudleydes @Concat
        last edited by

        @Concat I posted my RetroArch config for PrBoom that setup the right analog stick as strafe left and right on the RetroPie subreddit a few months back.

        What are you playing Shadow Warrior on? If it's DOSBox, then the mapper will recognise the right analog stick without issue.

        In any case, as a LinuxJoystickMapper user myself, I would be interested in seeing your map file for Shadow Warrior as there are some ports (eduke32, dxx-rebirth) where my controller works fine in-game but doesn't work in the menus. It would be nice to able to use these ports without having to reach for a keyboard.

        M C 2 Replies Last reply Reply Quote 0
        • M
          mahcneto @dudleydes
          last edited by

          @dudleydes said in prboom with modern control scheme?:

          In any case, as a LinuxJoystickMapper user myself, I would be interested in seeing your map file for Shadow Warrior as there are some ports (eduke32, dxx-rebirth) where my controller works fine in-game but doesn't work in the menus. It would be nice to able to use these ports without having to reach for a keyboard.

          I second this!! I love Duke3d and its port, but sometimes after mapping all my buttons, I can't press my USB pad Start button to open the main menu, the game just doesn't have that button to map in its Options. Speaking of that, sometimes after I setup my buttons config and I quit the game, they get messed up when I load it again, don't know why?

          1 Reply Last reply Reply Quote 0
          • C
            Concat
            last edited by

            The dev for linixjoystickmapper released a new version which improves the mapping for analog joystick to key mappings. He included a "trinary" flag which works great for me. Have a look at the wiki to see our convo. Theres also some deadzone code worked in now, but I dont seem to notice a difference. I think the code is still buggy, but trinary makes it workable.

            For the duke port, I oly used the ingame mapping, so Im the same boat. Have to use keyboard for that. When I can I will post the map file Im using for shadow warrior. It works well - I think the right joystick is mapped to mouse, and left is mapped to key presses.

            1 Reply Last reply Reply Quote 0
            • C
              Concat
              last edited by

              Also, it seems eduke will auto assign unused buttons... like double press button 1 or 2 or whatever. Only advice there is to assign something to those buttons other than "none". Or just use the linixjoystickmapper to map to keyboard presses and be done with it :)

              M 1 Reply Last reply Reply Quote 0
              • M
                mahcneto @Concat
                last edited by

                @Concat Never thought about assigning something to that, because the game automatically assigns whatever thinks it's ok and messes up big time, thanks!

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

                  @Concat what controller are you using? If you post the contents of the controllers file in /opt/retropie/configs/all/retroarch-joypads/ i will post a retroarch.cfg for lr-prboom with the analogs set how you want it if you havent figured it out already

                  1 Reply Last reply Reply Quote 0
                  • C
                    Concat
                    last edited by

                    @edmaul69

                    I'm using a Dualshock 3 controller, and no I haven't figured it out yet. I can only map the joysticks when one of them is in digital mode, and retroarch doesn't let me set both of them to digital mode at the same time.

                    I essentially want to map 3 axes:

                    Left Joystick -> x-axis for strafing (axis 0)
                    Left Joystick -> y-axis for moving forward and backward (axis 1)
                    Right Joystick -> x-axis for turning (axis 2)

                    The problem is that analog to digital just assigns the joystick to the dpad input, so there's only 4 buttons to work with. I need 6. If I could do this with retroarch, then great... but it looks like I have to resort to linuxjoystickmapper to accomplish this.

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      dudleydes @Concat
                      last edited by dudleydes

                      @Concat Have you tried adding the following lines to /opt/retropie/configs/doom/retroarch.cfg:

                      input_libretro_device_p1 = "5"
                      input_player1_analog_dpad_mode = "1"
                      input_player1_l_axis = "-2"
                      input_player1_r_axis = "+2"
                      

                      This will map the left analog stick to moving forwards and backwards, and turning left and right, and the right analog stick to strafe left and right.

                      I appreciate it's not exactly what you're looking for. It may be possible to reconfigure in RGUI.

                      1 Reply Last reply Reply Quote 0
                      • C
                        Concat
                        last edited by

                        @dudleydes

                        Hmm, I know what the first two lines do... but what do the last two do?

                        input_player1_l_axis = "-2"
                        input_player1_r_axis = "+2"

                        edmaul69E 1 Reply Last reply Reply Quote 0
                        • D
                          dudleydes
                          last edited by

                          I used the RGUI to get the right analog stick working so I have no idea. It works in PrBoom, as it doesn't in other libretro cores, so I'm happy. I'm sure someone more knowledgeable in RetroArch configuration can enlighten us.

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

                            @Concat here you go my friend. place this in /opt/retropie/configs/ports/doom/retroarch.cfg . both the d-pad and the left analog function the same.

                            # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
                            
                            input_remapping_directory = "/opt/retropie/configs/ports/doom/"
                            
                            input_player1_start_btn = "3"
                            input_player1_select_btn = "0"
                            input_player1_up_btn = "4"
                            input_player1_down_btn = "6"
                            input_player1_left_btn = "20"
                            input_player1_right_btn = "21"
                            input_player1_up_axis = "-1"
                            input_player1_down_axis = "+1"
                            input_player1_left_axis = "-2"
                            input_player1_right_axis = "+2"
                            input_player1_a_btn = "13"
                            input_player1_b_btn = "14"
                            input_player1_x_btn = "9" # this is the button used for fire. it is set to "9" "r1" right trigger button. change it to "14" for "b" button (sony's X button)
                            input_player1_y_btn = "15"
                            input_player1_l_axis = "-0"
                            input_player1_r_axis = "+0"
                            input_player1_l_btn = "7"
                            input_player1_r_btn = "5"
                            input_player1_l2_btn = "10"
                            input_player1_r2_btn = "11"
                            input_player1_l3_btn = "1"
                            input_player1_r3_btn = "2"
                            
                            #include "/opt/retropie/configs/all/retroarch.cfg"
                            
                            1 Reply Last reply Reply Quote 1
                            • edmaul69E
                              edmaul69
                              last edited by edmaul69

                              so if you want the button for opening the doors to be on the right analog's button instead of "a" (playstations "O" button) change these from:

                              input_player1_a_btn = "13"
                              input_player1_r3_btn = "2"
                              

                              to:

                              input_player1_a_btn = "2"
                              input_player1_r3_btn = "13"
                              
                              1 Reply Last reply Reply Quote 1
                              • C
                                Concat
                                last edited by

                                Thanks @edmaul69

                                Do you know what this does:

                                input_player1_l_axis = "-0"
                                input_player1_r_axis = "+0"
                                

                                As you see above, @dudleydes recommended I try:

                                input_player1_l_axis = "-2"
                                input_player1_r_axis = "+2"
                                

                                Mapping the left joystick is easy peasy... it's getting the right joystick mapped along with the left joystick that is posing to be a problem. I'll try your config settings, but I'm hoping to understand those two lines better.

                                edmaul69E 2 Replies Last reply Reply Quote 0
                                • edmaul69E
                                  edmaul69 @Concat
                                  last edited by edmaul69

                                  @Concat if you use the exact retroarch.cfg i posted it works 100% both analogs and the d-pad

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

                                    @Concat if you do it his way you cannot get both analogs to work plus the d-pad

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

                                      do not put this in your doom config, psx config, n64 config, psp config or all configs. but if you add this to all your other retroarch.cfg files you can use both your analog and your dpad as the same controls instead of just the d-pad:

                                      input_player1_up_axis = "-1"
                                      input_player1_down_axis = "+1"
                                      input_player1_left_axis = "-0"
                                      input_player1_right_axis = "+0"
                                      
                                      input_player2_up_axis = "-1"
                                      input_player2_down_axis = "+1"
                                      input_player2_left_axis = "-0"
                                      input_player2_right_axis = "+0"
                                      

                                      and this is universal to every controller i have ever hooked up

                                      1 Reply Last reply Reply Quote 0
                                      • C
                                        Concat @dudleydes
                                        last edited by

                                        @dudleydes said in prboom with modern control scheme?:

                                        In any case, as a LinuxJoystickMapper user myself, I would be interested in seeing your map file for Shadow Warrior as there are some ports (eduke32, dxx-rebirth) where my controller works fine in-game but doesn't work in the menus. It would be nice to able to use these ports without having to reach for a keyboard.

                                        Hey, here's my .map file: http://pastebin.com/0fuKdtCJ

                                        Nothing special. The only thing new is the "trinary" flags that are attached to the right stick mapping. You'll need to update to joymap 4.1

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          Concat
                                          last edited by Concat

                                          @edmaul69
                                          You rock. Your config worked like a charm!

                                          Well, at first it was a mess, but then I remembered that Doom has it's own key bindings which I already tried messing with. So once I fixed all of that it was gravy.

                                          Well, that's not true either, because I went into RGUI trying to troubleshoot and accidentally save the auto config, which absolutely messed up every other emulator. lol. So I had to delete the autoconf file and restart the mapping in emulationstation to create a new one. Made myself sweat for a while there. I hope nothing else was buggered up during my recklessness...

                                          Anyway, now that I have the controls worked out, on to the next problem. None of the cheats I'm entering are working. Is this another weird problem with key mappings (perhaps I have a key used in the cheat codes mapped to some game input)? :D

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

                                            @Concat did you have your system connected to the internet to install the cheats? I honestly havent messed with the cheats except to test in nes. As far as setting up the controls, i have not used the rgui since testing it out back on 2.6. I have learned a lot about the controls and how to manipulate them to my needs by always manually configuring them. Auto-config with multiple controllers has made less configuring for me, but there are still some systems i configure for a specific controller. And now the doom series is one of them for me thanks to you needing a config file. It is much nicer this way. So me helping you actually helped me.

                                            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.