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

    ECWolf - Wolfenstein 3D source port for mods

    Scheduled Pinned Locked Moved General Discussion and Gaming
    ecwolfwolf3decwolf modwolf3d mod
    167 Posts 9 Posters 39.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.
    • cyperghostC
      cyperghost @SinisterSpatula
      last edited by cyperghost

      @SinisterSpatula Thank your for this demo. ecWolf seems to run perfect on Pi1/0 then.

      I think your button layout is okay. You properly missing the "MAP" options and I think the "SELECT" button is a good one for this.

      I hear a buzzing when I press the B button (JY1/Use) Same buzz if I press Spacebar which is assigned to Use.

      bzzzz bzzz ... That's the game engine, don't worry

      The game is showing mouse curson on screen, need to disable that. (even with mouse disabled in controls)

      Yes that's common. I disabled it, by setting mouse controls to off, activated fullscreen. Then the mouse is still showing but will vanish after next restart of ecWolf.

      Turning speed and movement speed are great without any change.
      Very nice and playable, smooth, fast, good performance, music sounds great, no crackles or static. I did not need to use the --extravbls 2 to get good performance, however when I tried it, it does seem to be slightly better.

      Yes the --extravbls 2 sets the CPU usage massive down. On my Raspberry3 the peak CPU usage was 80%, with the switch sette I'm down to 50%. So my biggest concern was that the Pi0/1 is to weak for this game.

      I could exit the game just fine.

      Yes with START and SELECT button I assume.
      because your button layout is ....Start button is not being detected when I try to assign it. But it is in fact working as an ESC button. Therefore I assume that the SELECT button is free mabe for the Automap function ;)

      Menu's navigate nicely. B button is working to back out of menu's. A button is working to select a menu item. Only weirdness is if you want to setup inputs the A button is "firing twice" or something, it get's ready to take the input you want to set but then immediately takes A as the new button also. (So there's no way currently other than bluetooth keyboard to setup controls due to this)

      Yes that's one of the caveeats now, you neeed a keyboard to navigate and reassign the keyboard layout inside the graphics menu or by using SSH edit. Therefore your premade config is worth to use it for the GPi case. Because not everybody is owner of a Bluetooth keyboard ;)

      So thank you again for this nice review. If you need help how to add the fullversions then read description in posting 1. So I caused the usage of these .ecwolf files with the background of giving wolf3d the possibilty as own "system" inside ES.

      The .ecwolf files are simple bash scripts. You need to enter the directory with the game data and then you can parse commands to the binary.
      /opt/retropie/ports/ecwolf/ecwolf --data wl6 (case sensitive!) will load the full version
      /opt/retropie/ports/ecwolf/ecwolf --data wl6 --file ../addons/ECWolf_hdpack.pk3 ../addons/ECWolf_hdmus_3DO.pk3 loads full version in HD mode ;)

      More info about my file layout is here

      1 Reply Last reply Reply Quote 1
      • tpo1990T
        tpo1990
        last edited by

        I have created a quick mod install script to make it more easy to install mods into the ECWolf installation. You can find it in the new Extra section in the top of the topic. You can also do this manually by following the instructions for how to install mods in the first post.

        The mod install script must be used in Raspbian Desktop with a keyboard, since you will be required to name the mod before it will be installed into ECWolf. You can name the mod with "spaces" as the script has been made sure to work this way.

        At the moment it is only one .pk3 file it can handle to install. If you have more than one .pk3 placed in the new ecwolf folder that has been created, it will still create the .ecwolf file and mod.sh file, but it might not move the .pk3 files to the wolf3d roms. For this you can move them manually.

        Greetings from Denmark. :-)

        Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

        cyperghostC 1 Reply Last reply Reply Quote 1
        • cyperghostC
          cyperghost @tpo1990
          last edited by cyperghost

          @tpo1990

          Some code polishing

          You can avoid the additional dot as long as you don't parse additionals parameters to this. Helpers accepts source path and extraction path and shifts these 2 arguments.
          So if you use additional parameters they will be shifted!
          So I guess following. To just extract to current path just use downloadAndExtract zipfile if you use paramters then USE the destination downloadAndExtract zipfile extractto -parameter1 -parameter2

              downloadAndExtract "https://bitbucket.org/ecwolf/ecwolf/get/5065aaefe055.zip" .
              downloadAndExtract "https://bitbucket.org/ecwolf/ecwolf/get/5065aaefe055.zip"
          

          Edit: I think use the find . command
          Do not remove the . because it will strongen suggestions to search in current dir
          But maybe some more advanced coders can say more to this.

                 ecw=$(find . -iname "*.$game" -print -quit)
          

          This may be answered by @hhromic
          Because filename changes can be usefull do not collide with current Wolfenstein ports.
          So I can't tell if this will higher the changes of a successfull PR or not - I think in the long term ecWolf could take advantage over Wolf4SDL. The ecWolfenstein name is just my idea not set to stone... be creative ;)

              declare -A games=(
                  ['wl1']="Wolfenstein 3D (demo)"
                  ....
                  ['sd3']="Wolfenstein 3D - SoD MP3 - Ultimate Challenge"
              )
          
              declare -A games=(
                  ['wl1']="ecWolfenstein 3D (demo)"
                  ....
                  ['sd3']="ecWolfenstein 3D - SoD MP3 - Ultimate Challenge"
              )
          
          

          Code polishing your modscript .....

          Better us a bash builtin

          for i in *.pk3; do
             mv "$i" .....
             filenames="$filenames $i"
          done
          
          cat.... EOF
          --file $filenames
          EOF
          

          Using ls is the worst you can do ;)
          You will see if you have to fight with globbing, special characters and other bash versions.
          My code example resolves your issue with several pk3 files.
          But this is only one way in doing something. If you use [P][p][K][k]3 then file extension does not care about upper/lower cases... ;)

          tpo1990T 1 Reply Last reply Reply Quote 0
          • tpo1990T
            tpo1990 @cyperghost
            last edited by tpo1990

            @cyperghost The downloadAndExtract command fails if i don't include the additional dot.

            Error:

            Error running 'unzip https://bitbucket.org/ecwolf/ecwolf/get/5065aaefe055.zip -o /tmp/tmp.GYUrhHrEWg/5065aaefe055.zip -d ' - returned 9
            

            At least i can try to set up a PR and see how it goes. I have already managed to make the Hexen 2 scriptmodule apply after the RetroPie's scriptmodule guidelines and months have passed by without been merged.

            Thank you. I was not aware that using ls is bad practice. I will try out your suggestion for the modscript. Also it is a bonus if it can handle more than one pk3 file. :-)

            Greetings from Denmark. :-)

            Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

            cyperghostC 1 Reply Last reply Reply Quote 0
            • cyperghostC
              cyperghost @tpo1990
              last edited by cyperghost

              @tpo1990 Oh.... For me it worked without additonal dot but I've an older version of the RetroPie-Setup. Sorry for bothering you.

              About the hexen2 branch ... Yes I know it's a long time ago you setted this PR. Don't know what's wrong here. Maybe you need to explain how the GL binary of hexen works?

              About scripting:
              Yes there are some don'ts in ParsingLS
              ls is fine if you want to check if the directory contains some data. I consider ls as command for human input, not for mashines.

              To check for a specfic file/directory you can always use the test command (= [[ ... ]])
              and the mother of search is the findcommand but you really need to know the foe.
              So the simplest way is imho the for i in filename loop.

              And even the internet is full of errors ;)
              Here is a good tip to delete your whole mashine by accident (see last answer)

              tpo1990T 1 Reply Last reply Reply Quote 0
              • tpo1990T
                tpo1990 @cyperghost
                last edited by

                @cyperghost No problem, i was not aware that it worked before updating the version of the RetroPie-Setup. At this moment it does not so i will keep the additional dot. :-)

                The hexen2 PR was actually reviewed by joolswills and hhromic. hhromic helped me with making the scriptmodule ready so that the PR can be merged with the RetroPie project. hhromic did state that the PR is ready to merge, but no given answer by joolswills yet.

                Oh yes the internet can be surprising without a doubt. :-)

                Greetings from Denmark. :-)

                Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                1 Reply Last reply Reply Quote 0
                • tpo1990T
                  tpo1990
                  last edited by

                  I have updated the install mod script with your best practice and made it work with multiple .pk3 files. It only works for full Wolfenstein 3D .wl6 files. I did get it working for the demo versions as well, but decided not to make that change since it would give you this message when the mod script was used: /home/pi/RetroPie/roms/ecwolf: is a directory. . :-)

                  Just a little question since i don't know how to do it, how do you highlight text with "red" color in your posts?
                  For example this line: "ls"

                  Greetings from Denmark. :-)

                  Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                  cyperghostC ExarKunIvE 2 Replies Last reply Reply Quote 0
                  • cyperghostC
                    cyperghost @tpo1990
                    last edited by cyperghost

                    @tpo1990 The is simple Markdown the red code inside are just backticks `` with some code inside.

                    Yes I saw your script ;)
                    Yes the script "fails" if there are no pk3 files then *.pk3 will be used as argument.
                    You can achive a for loop like this, too
                    for i in file.a file.b with fixed arguments.

                    1. Use shopt parameter and use 2.2
                    2. Secure your loops and the output (I prefer this one)
                      2.1 test the file inside the the loop with [[ -f "$i" ]] || continue
                      2.2 set a second testcommand like [[ -n "$filenames" ]] || { echo "Error: No additional pk3-files found in $PWD"; exit; }
                    for i in *.pk3; do
                       [[ -f "$i" ]] || continue
                       mv "$i" "$HOME/RetroPie/roms/ports/wolf3d"
                       filenames="$filenames \"$i\""
                    done
                    [[ -n "$filenames" ]] || { echo "Error: No additional pk3-files found in $PWD"; exit; }
                    

                    EDIT:
                    The escape could be needed in following cases. A pk3-file named The best mod.pk3 would be resolved as --file The best mod.pk3 Now you are parsing 3 files to the switch. So it's better to parse --file "The best mod.pk3"

                    I'm not aware how often pk3 files are splitted by spaces but it's better imho to escape the files. Easiest technique is escaping the quotes, so they are preserved. Or you push the filenames in a new array.

                    1 Reply Last reply Reply Quote 0
                    • S
                      SinisterSpatula @tpo1990
                      last edited by

                      @tpo1990 said in ECWolf - Wolfenstein 3D source port for mods:

                      @SinisterSpatula
                      I think your modified ecwolf config file could provide useful to those that use the same case and that it is a good idea to add a link to the extra post that i have reserved at the moment, if i may do so with your accept.

                      Yes, of course! :)

                      tpo1990T 1 Reply Last reply Reply Quote 0
                      • ExarKunIvE
                        ExarKunIv @tpo1990
                        last edited by

                        @tpo1990 great work with all of this

                        i just cant get the mods to lunch with your new mod installer.
                        i followed the easy instructions but they will not launch.

                        im trying Claw of Eisenfaust and the file looks right

                        cd "."
                        "/opt/retropie/ports/ecwolf/ecwolf" --data WL6 --file  wolf3d_coe_v2.pk3
                        wait 
                        

                        but it will not launch
                        any thoughts?

                        side note. any idea on how i can check to make sure i have version 1.4 cuz i have no clue

                        RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                        RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                        Maintainer of RetroPie-Extra .

                        cyperghostC 1 Reply Last reply Reply Quote 0
                        • cyperghostC
                          cyperghost @ExarKunIv
                          last edited by cyperghost

                          @ExarKunIv There are several errors made due the script output.

                          any thoughts?

                          Yes tons of, let's inspect!

                          1. Is the data of the vanilla Wolfenstein really in the BaseDir? ... means /home/pi/retropie/roms/ports/wolf3d? Or is it in a subfolder? If yes then change the cd . to next directory.... maybe cd wolf3d again.
                          2. Furthermore the file extension WL6 could be wl6, take a look in your gamedata how the extension looks.
                          3. The wait command is wrong. It should be wait $!

                          Furthermore post always the output of /dev/shm/runcommand.log in pastebin or some other snippet viewer https://dpaste.de/

                          I think the modscript should be a bit more mocked up with better detection what happens there.

                          ExarKunIvE 1 Reply Last reply Reply Quote 0
                          • ExarKunIvE
                            ExarKunIv @cyperghost
                            last edited by

                            @cyperghost

                            most of your thoughts are along mine as well.

                            but it seems i had the vanilla wolf in the wrong folder.

                            guess i missed that part on the readme,
                            opps.
                            well with me being a dumbass out of the way.

                            everything is working great.
                            i even have the HD wolf going,

                            Very amazing work, both you @cyperghost and @tpo1990

                            RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                            RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                            Maintainer of RetroPie-Extra .

                            cyperghostC 1 Reply Last reply Reply Quote 2
                            • cyperghostC
                              cyperghost @ExarKunIv
                              last edited by cyperghost

                              @ExarKunIv Thanks for your response ;)

                              @tpo1990
                              There is need for some bugfixing ;)
                              I post here a "new" script to not mess up the forum - it will expire after a few days

                              https://dpaste.de/wiKv
                              https://dpaste.de/7MFJ
                              It's using the quotations around every pk3 file, hope this works as expected ;)

                              EDIT:
                              @tpo1990
                              Why not extend the questions to path and extension?
                              Then it's 100% working in every situation because the user has to setup ;)

                              1 Reply Last reply Reply Quote 0
                              • tpo1990T
                                tpo1990 @SinisterSpatula
                                last edited by

                                @SinisterSpatula Thank you i will add a link to your post in the Extra section of the topic, so that anyone with a GPI case will find it. :-)

                                @ExarKunIv Thank you. Great that you got it working again after checking your files and folders for ECWolf.

                                @cyperghost Good to know thanks. Now i can more easily mark the code.

                                Alright so i followed your dpaste link and added the changes. While i tested out the new changes, i noticed that the mod script would exit immediately without notifying the user that no pk3 files has been found.

                                What i did to prevent this is by adding a sleep timer with the sleep 10s;. This will notify user for 10 seconds and then it will exit the script with the exit;parameter. Success.

                                I have uploaded the changes to my ECWolf git repo for anyone to try out.

                                Greetings from Denmark. :-)

                                Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                                cyperghostC 1 Reply Last reply Reply Quote 1
                                • cyperghostC
                                  cyperghost @tpo1990
                                  last edited by

                                  @tpo1990 Fine ;) Will you set a PR for the scriptmodule?

                                  tpo1990T 1 Reply Last reply Reply Quote 0
                                  • tpo1990T
                                    tpo1990 @cyperghost
                                    last edited by

                                    @cyperghost Yes. That is what i intend to do :-)

                                    Greetings from Denmark. :-)

                                    Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                                    cyperghostC 1 Reply Last reply Reply Quote 0
                                    • cyperghostC
                                      cyperghost @tpo1990
                                      last edited by cyperghost

                                      @tpo1990 Wolfenstein IS classic gaming - plus this scriptmodule is really easier to setup than the Wolf4SDL version ;) I think it'll accepted

                                      tpo1990T 1 Reply Last reply Reply Quote 0
                                      • tpo1990T
                                        tpo1990 @cyperghost
                                        last edited by tpo1990

                                        @cyperghost Yes. It's a live. The PR has been created for RetroPie project.

                                        https://github.com/RetroPie/RetroPie-Setup/pull/2811

                                        Edit: Now all there is left to do is fingers crossed and hopefully it will be accepted for merging. ;-)

                                        Greetings from Denmark. :-)

                                        Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                                        1 Reply Last reply Reply Quote 0
                                        • ExarKunIvE
                                          ExarKunIv
                                          last edited by

                                          @cyperghost and @tpo1990

                                          now that i have sorted out my one problem. this is great, just one question

                                          i have come across some nice mods, but they are not in pk3 form, they seem to be in there own standalone game.
                                          With their own WL6 and SOD files.

                                          is there a way to use ecwolf to play these

                                          RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                          RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                          Maintainer of RetroPie-Extra .

                                          cyperghostC tpo1990T 2 Replies Last reply Reply Quote 0
                                          • cyperghostC
                                            cyperghost @ExarKunIv
                                            last edited by

                                            @ExarKunIv I don't know. You can try on your own and give back report.

                                            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.