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

    Wolfenstein3d (Wolf4sdl) remapping?

    Scheduled Pinned Locked Moved Help and Support
    wolfensteinwolf3dwolf4sdlsfc30remap
    31 Posts 8 Posters 10.4k 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.
    • denisuuD
      denisuu
      last edited by

      I installed the full (non shareware) version and these seem to be all the files, none of which are editable I think.

      /home/pi/RetroPie/roms/ports/wolf3d
      audiohed.wl6
      audiot.wl6
      catalog.exe
      gamemaps.wl6
      maphead.wl6
      order.frm
      vgadict.wl6
      vgagraph.wl6
      vgahead.wl6
      wolf3d.exe

      /opt/retropie/configs/ports/wolf3d
      config.wl6
      emulators.cfg
      savegam0.wl6

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

        @denisuu The tutorial refers to editing the source code, not the game files - that page should refer to a previous tutorial.

        It is possible to do this using the RetroPie Setup script. From a terminal or via SSH, run the following commands:

        cd RetroPie-Setup/
        sudo ./retropie_packages.sh wolf4sdl depends
        sudo ./retropie_packages.sh wolf4sdl sources
        

        Now edit the file wl_play.cpp in the source code with the command:

        sudo nano tmp/build/wolf4sdl/wl_play.cpp
        

        You need to edit lines 61 to 63. To find these, you can press CTRL+w+t and enter 61 at the Enter line number, column number: prompt. Make your changes to the file as advised in the tutorial in your op and save.

        To build and install wolf4sdl, run the following commands:

        sudo ./retropie_packages.sh wolf4sdl get_opts
        sudo ./retropie_packages.sh wolf4sdl get_bins
        sudo ./retropie_packages.sh wolf4sdl build
        sudo ./retropie_packages.sh wolf4sdl install
        

        Assuming you have already installed wolf4sdl from binary and added game data, you can now test your key bindings.

        Once you're happy, you can remove the build data with the command:

        sudo ./retropie_packages.sh wolf4sdl clean
        
        denisuuD 1 Reply Last reply Reply Quote 0
        • denisuuD
          denisuu @dudleydes
          last edited by denisuu

          First of all thanks for taking the time! It's highly appreciated!

          So we are talking about these 2 lines right?

          #else
          bt_attack, bt_strafe, bt_use, bt_run, bt_strafeleft, bt_straferight, bt_esc, bt_pause,
          bt_prevweapon, bt_nextweapon, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton,

          So lets say I want to map to these buttons on the retropad (SFC30):

          bt_attack = A (btn = "0")
          bt_strafe = NONE
          bt_use = B (btn = "1")
          bt_run = X (btn = "3")
          bt_strafeleft = L (btn = "6")
          bt_straferight = R (btn = "7")
          bt_esc = START (btn = "11")
          bt_pause = SELECT (btn = "10")
          bt_prevweapon = NONE
          bt_nextweapon = Y (btn = "4")

          Do I just edit like this?

          #else
          bt_attack "0" , bt_strafe, bt_use "1", bt_run "3", bt_strafeleft "6", bt_straferight "7", bt_esc "11", bt_pause "10",
          bt_prevweapon, bt_nextweapon "4", bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton,

          Sorry for my ignorance but this is completely new for me :)

          D 1 Reply Last reply Reply Quote 0
          • denisuuD
            denisuu
            last edited by denisuu

            Edit: I tried with or without " " it stays the same here is a full log of what's happening: http://pastebin.com/CSZRsCdw

            Makefile:101: recipe for target 'wl_play.o' failed
            make: *** [wl_play.o] Error 1
            make: *** Waiting for unfinished jobs....
            mv: cannot stat ‘wolf3d’: No such file or directory
            /home/pi/RetroPie-Setup
            Could not successfully build wolf4sdl - Wolf4SDL - port of Wolfenstein 3D / Spear of Destiny engine (bin/wolf4sdl-sw-v14 not found).

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

              @denisuu The button numbers in the tutorial are there for guidance and shouldn't be included in the amended code.

              The code to be changed is an array where button 0 on your controller is mapped to the first action bt_attack, button 1 to bt_strafe, button 2 to bt_use and so on.

              Using your suggested configuration above, you can try the following:

              #else
              bt_attack bt_use bt_nobutton bt_run bt_nextweapon bt_nobutton bt_strafeleft bt_straferight bt_nobutton bt_nobutton bt_pause bt_esc bt_nobutton bt_nobutton bt_nobutton bt_nobutton
              
              1 Reply Last reply Reply Quote 0
              • denisuuD
                denisuu
                last edited by

                Sorry I didn't respond for a while, I don't get any error's anymore but changing those lines doen't change anything to the controls :( I put them exactly like you told me. I even tried changing changing line 63 to 66. It stays the same.

                Also for some reason as soon as the gamecon driver (for the SNESpad) are installed it only accepts the SNES controller and not my wireless 8bitdo SFC30. Is there a way to make it accept all controllers?

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

                  @denisuu Sorry, my mistake - there should be commas between each action. Also, the array may need to be over 2 lines, each containing 8 actions.

                  Could you try the following:

                  #else
                  bt_attack, bt_use, bt_nobutton, bt_run, bt_nextweapon, bt_nobutton, bt_strafeleft, bt_straferight,
                  bt_nobutton, bt_nobutton, bt_pause, bt_esc, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton,
                  
                  denisuuD 1 Reply Last reply Reply Quote 0
                  • denisuuD
                    denisuu @dudleydes
                    last edited by

                    @dudleydes I already did it like that, this is how it looks. If I do it without comma's it doesn't even want to build :)

                    alt text

                    Just to be sure, I just do install from binary then follow all your steps and try by launching from emulationstation right?

                    mediamogulM D 2 Replies Last reply Reply Quote 0
                    • mediamogulM
                      mediamogul Global Moderator @denisuu
                      last edited by mediamogul

                      @denisuu

                      Have you considered an external mapping option? I use xboxdrv and have put a guide together here. If it's something you're interested in, I'll post my controller map for Wolf4sdl as a reference.

                      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                      denisuuD 1 Reply Last reply Reply Quote 0
                      • denisuuD
                        denisuu @mediamogul
                        last edited by

                        @mediamogul Wow that's looks like a lot of work, but in the end I can use that for Quake I & III , Duke3d and other keyboard games without too much hassle right?

                        I actually hooked up a xbox 360 controller on to Wolf3d and saw all buttons are pressent, just not on the right possition.

                        mediamogulM 1 Reply Last reply Reply Quote 0
                        • mediamogulM
                          mediamogul Global Moderator @denisuu
                          last edited by mediamogul

                          @denisuu said in Wolfenstein3d (Wolf4sdl) remapping?:

                          in the end I can use that for Quake I & III , Duke3d and other keyboard games without too much hassle right?

                          Sure. I use it for all those games. There's admittedly a learning curve involved, but once you've made a few maps, it gets to be routine. Plus, you can recycle maps as beginning points for new ones so that you're not starting from scratch all the time.

                          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

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

                            @denisuu said in Wolfenstein3d (Wolf4sdl) remapping?:

                            Just to be sure, I just do install from binary then follow all your steps and try by launching from emulationstation right?

                            No, everything should be done the command line using the retropie_packages.sh script detailed in my earlier post.

                            Installing from binary will install the pre-built binary with the default mappings. What we are trying to do is amend the source code and then build Wolf4SDL from source.

                            denisuuD 1 Reply Last reply Reply Quote 0
                            • denisuuD
                              denisuu @dudleydes
                              last edited by

                              @dudleydes

                              I followed those instructions but I only end up with files in "/opt/retropie/ports/wolf4sdl" but there is no wolf4sdl folder under: "/home/pi/RetroPie/roms/ports"

                              That's why I asked if I should install though the retro pie setup first . I just tried removing everything again and follow your instructions but again the actual game is missing.

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

                                @denisuu Apologies, I'm getting my wires crossed.

                                If you haven't already installed Wolf4SDL from binary, then you can set up the launch script and create a folder for game data with the command:

                                sudo ./retropie_packages.sh wolf4sdl configure
                                
                                denisuuD B 2 Replies Last reply Reply Quote 0
                                • denisuuD
                                  denisuu @dudleydes
                                  last edited by

                                  @dudleydes

                                  I followed all your steps and now the game builds, installs and creates the files.

                                  When I boot it up the game controls haven't changed at all :( Maybe I should look into the advanced remapping posted by Mediamongul.

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    Blackegg13 @dudleydes
                                    last edited by

                                    @dudleydes Hi
                                    I'm trying to follow your steps but I'm ending up with same result as OP, key mapping didn't changed. Sorry for reviving old topick. I really want to correct that as on 8bitdo sf30 pro, use function is under little home button. I followed your instructions and all worked no error but key binding didn't changed. Would you mind helping me? Thanks

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

                                      @blackegg13 tbh I cannot recall hearing of any other user who has managed to get this remapping process for Wolf4SDL to work. I may have just been lucky with my PS3 controller.

                                      To remap my controller for the other ports (Doom, Duke Nukem, Quake), I use xboxdrv. I suggest you take a look at doing likewise. More info can be found at: https://retropie.org.uk/docs/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv/

                                      If it's helpful, here is my xboxdrv config file for the Rise of the Triad port.

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        Blackegg13 @dudleydes
                                        last edited by

                                        @dudleydes ok, I will give it a try, thanks for responding!

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

                                          I know this topic is incredibly old, but I just wanted to report back that @dudleydes's instructions do indeed work, but you must delete the ~/.wolf4sdl/config.wl* config file(s) after you rebuild for your changes to take effect. This is because as the contents of buttonjoy are read in from the config file inside of InitGame() when the game is launched.

                                          So the complete solution is as follows:

                                          cd RetroPie-Setup/
                                          sudo ./retropie_packages.sh wolf4sdl depends
                                          sudo ./retropie_packages.sh wolf4sdl sources
                                          

                                          Edit wl_play.cpp as described above to correspond to your joystick's buttons:

                                          sudo nano tmp/build/wolf4sdl/wl_play.cpp
                                          

                                          Then, build/install/configure and nuke the config files:

                                          sudo ./retropie_packages.sh wolf4sdl get_opts
                                          sudo ./retropie_packages.sh wolf4sdl get_bins
                                          sudo ./retropie_packages.sh wolf4sdl build
                                          sudo ./retropie_packages.sh wolf4sdl install
                                          sudo ./retropie_packages.sh wolf4sdl configure
                                          rm ~/.wolf4sdl/config.wl*
                                          

                                          On the next launch, you'll be set with the right bindings!

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

                                            I got a bit carried away and decided to implement modern FPS-style controls for Wolfenstein, allowing you to strafe and turn with the thumbsticks on your controller instead of using buttons.

                                            You can give it a try by running this instead of editing wl_play.cpp:

                                            cd ~/RetroPie-Setup/tmp/build/wolf4sdl/
                                            sudo su
                                            git remote add lazd "https://github.com/lazd/wolf4sdl.git"
                                            git fetch lazd
                                            git checkout sdl2remap
                                            

                                            Then, continue with the rest of the instructions.

                                            On this branch, movement, aiming, and strafing are all controlled by joystick axes so they're smooth and granular, unlike the existing jerky d-pad like feeling. Now you can creep up slow, aim precisely, and literally run circles around those Nazis.

                                            On the XBox One (or similar controller), you'll get the following mapping:

                                            • Left stick X axis: Strafe
                                            • Left stick Y axis: Move forward/back
                                            • Right stick X axis: Turn
                                            • Left stick button: Run
                                            • Right stick button: Run
                                            • Left bumper: Previous weapon
                                            • Right bumper: Next weapon
                                            • Left trigger: Use
                                            • Right trigger: Fire
                                            • Select: Pause
                                            • Start: Escape

                                            Try running by pressing in the right or left stick button, just like you would in modern console FPS games.

                                            Run affects turning rates too, so try doing an "about-face" (180°) by pressing the right stick button as you yank the right stick left or right.

                                            This also fixes the mapping of the select/back buttons in the menu, which was driving me insane.

                                            If that mapping isn't conducive to your controller, go ahead and remap it as described in this thread.

                                            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.