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 38.6k 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.
    • tpo1990T
      tpo1990
      last edited by tpo1990

      alt text
      Since ECWolf nightly builds can be used to run with mods, i have built this scriptmodule for RetroPie.

      This port uses SDL2 dependencies

      Raspberry Pi 4B and Raspbian Buster: The port has not been tested with the latest RPI 4 and Raspbian Buster release. It is only guaranteed to work on the latest official release of RetroPie as the one that can be found on the RetroPie download page. Therefore users who has this might not be able to install the port and play the game. Users may need to wait for official release and support for Raspberry Pi 4B and Buster.

      Download scriptmodule for RetroPie:

      wget https://raw.githubusercontent.com/tpo1990/ECWolf-RPI/master/ecwolf.sh -P $HOME/RetroPie-Setup/scriptmodules/ports/
      

      After downloading ecwolf scriptmodule, go to the experimental section in RetroPie Setup to install.

      Install time: It takes about 15-30 minutes to install.

      About the game files
      ECWolf will look for the registered game data files (.wl6, .sod, sd2,sd3) in wolf3d roms folder. If ECWolf can not find these files, it will download the shareware files of Wolfenstein 3d and Spear of Destiny to the wolf3d roms folder. Make sure all the data files from your wolf3d 1.4 and spear3d installation has the same file extension when copying to wolf3d roms folder. GOG version is recommended to use.

      Mods:
      Mods must be in .pk3 file format to be compatible with ECWolf source port.

      1. Download the mod and extract yourmod.pk3 file to wolf3d roms folder.
      2. Copy Wolfenstein 3d.ecwolf file and edit with adding --file yourmod.pk3 after --data string
      3. Rename the new .ecwolf file to yourmod.ecwolf.
      4. Copy the Wolfenstein 3D.sh file from roms/ports folder and rename to yourmod.sh
      5. Edit the yourmod.sh file and change the line to /home/pi/RetroPie/roms/ports/Wolf3d/yourmod.ecwolf.

      Special thanks to:
      cyperghost
      SinisterSpatula

      Notes:
      The scriptmodule can now be considered a stable release and it is aimed at building ECWolf development version to provide mods support. It enhances Wolfenstein 3D even further than what Wolf4SDL does. The mod i have tested with is called Astrostein: Spifferaneous Edition.

      Disclaimer:
      This installation script is provided as is and has been tested to work with RetroPie. You should always have a backup ready incase anything happens with your Raspberry Pi.

      Screenshots:
      alt text
      alt text
      alt text

      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 4
      • tpo1990T
        tpo1990
        last edited by tpo1990

        Extra:

        ECWolf install mod script.

        wget https://raw.githubusercontent.com/tpo1990/ECWolf-RPI/master/Addons/install-ecwolf-mod.sh -P $HOME/RetroPie/roms/ecwolf && chmod 755 $HOME/RetroPie/roms/ecwolf/install-ecwolf-mod.sh
        
        

        Usage: Download script. Add your mod.pk3 files into the ecwolf folder that has been created in roms folder. Run the script to install mod into ecwolf. It works with multiple .pk3 files. (Notice: this script only works with full Wolfenstein 3D 1.4 files with the file extension .wl6)

        Retroflag GPI support.
        SinisterSpatula Retroflag Gpi/Pi zero config
        Usage: Follow his post and download his modified ecwolf.cfg config file. Place the config file into /opt/retropie/configs/ports/ecwolf and start up ECWolf again.

        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 tpo1990

          Changelog:
          05-03-2020: Added Raspberry Pi 4B and Raspbian Buster section.
          25-09-2019: Removed the downloadAndExtract from source and replaced it with gitPullOrClone in the scriptmodule.
          15-08-2019: Improved install mod script to notify user if pk3 files are not found and support for pk3 files with "spaces" in filename. Added SinisterSpatulas GPI case link to Extra section.
          14-08-2019: Optimized install mod script and added support for multiple .pk3 files.
          12-08-2019: Created ECWolf install mod script to automatically install mods. Uploaded to git ecwolf repo and added instructions under new "Extra" section in topic.
          09-08-2019-2: Added applyPatch function from helpers.sh into the scriptmodule for better patching.
          09-08-2019-1: Merged cyperghost's changes from his fork and removed show progress from applying the patch in the scriptmodule.
          08-08-2019: Made big change in scriptmodule to make it easier for ecwolf to load data files and for ease of adding mods. Removed the need for mercurial and replaced with downloadAndExtract from helpers file in RetroPie. Added keyboard escape fix patch .All of this was done with the help from cyperghost @crcerror.
          04-07-2019: Finished scriptmodule and uploaded to github repository. Created topic on RetroPie Forum.

          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
          • cyperghostC
            cyperghost @tpo1990
            last edited by

            @tpo1990 Perfect.... I will install this one soon and report back
            ECWolf is imho prior SDLWolf

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

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

              @tpo1990 Perfect.... I will install this one soon and report back
              ECWolf is imho prior SDLWolf

              Great. I will look forward to your report. :-)

              ECWolf is just an advanced source port and is based off of the Wolf4SDL base code. It is only the development version that works with mods which is the one that the scriptmodule will install.

              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

                @tpo1990 I think you should change link in first post ;)
                https://raw.githubusercontent.com/tpo1990/ECWolf-RPI/master/ecwolf.sh

                1 Reply Last reply Reply Quote 1
                • Solid OneS
                  Solid One
                  last edited by

                  Great news!

                  BTW, ECWolf is a Wolf3D sourceport as good as ZDoom is for Doom. You can have modern FPS controls, both on keyboard+mouse (you can use WASD to move, and mouse to look) and in joysticks (you can strafe/move with the left analog stick, rotate with right stick, and even can adjust sensibility as you like).

                  But as I said in another topic, the main reason I think ECWolf is the best Wolf3D sourceport IMHO is the fact it has the best support for mods I could find. Differently from other sourceports that accepts only vanilla mods (maily allowing only changes in sprites, maps and sounds), ECWolf allows modders to include new weapons, new monsters / bosses, change the episodes / maps structure, etc. And what's best: without having to recurr to rebuilding Wolf4SDL binaries whenever you want to create mods with advanced features.

                  The only thing I miss from ECWolf right now is the splitscreen support created in SplitWolf, but in that case, I can simply maintain both sourceports and use one or another, according to my needs, just like I've done in ZDoom and Doom Legacy.

                  Gotta test it on my RPi2 as soon as possible! I'll see how the Wolf3D SNES port (Claw of Eisenfaust) will work.

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

                    @cyperghost I must have overlooked that when i first created the topic. Thanks. It has now been corrected. :-)

                    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 @Solid One
                      last edited by

                      @Solid-One I agree on this. ECWolf can be compaired as to what ZDoom is today. I still think that ECWolf needs some more testing to see how good it performs. It could very well be the next primary Wolf3d port for RetroPie if not then as an alternative to Wolf4SDL.

                      Also the scriptmodule could still use some more tweaking. Hopefully in doing so that it will be like Doom Legacy, so that we only have one Wolfenstein 3D.sh and one Spear of Destiny.sh runcommand file and with the possibility of changing which emulator to use when running the game.

                      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
                      • mituM
                        mitu Global Moderator
                        last edited by

                        @tpo1990 great work ! I have tested the installation on a PC and it seems to work (didn't start any game since it's headless).
                        One minor tidbit - rename was not installed by default on my Ubuntu, maybe should be added as a dependency.

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

                          @tpo1990 I compiled this and it runs fine....

                          Some things to improve the modules

                          1. You have some dependencies that are not required at all. I only installed libsdl2-mixer-dev libsdl2-net-dev I think the g++ and mercurial thing isn't needed.
                          2. You can download the whole archive by using wget https://bitbucket.org/ecwolf/ecwolf/get/5065aaefe055.zip then unzip cmake make ....
                          3. You can achive to load all WOLF episodes with
                            3.1 One Fileset or
                            3.2 directory structured

                          For the one fileset you mix all episodes of WOLF in /home/pi/RetroPie/roms/ports/wolf3d and this may contain a long list like this one

                          pi@retropie:~/RetroPie/roms/ports/wolf3d $ ls
                          audiodct.n3d  audiot.wl6    gamemaps.wl6  sod           vgagraph.wl6  vswap.wl6
                          audiohed.n3d  config.n3d    licenses.zip  vgadict.n3d   vgahead.n3d   wolf3d
                          audiohed.sod  config.sod    maphead.n3d   vgadict.sod   vgahead.sod
                          audiohed.wl6  config.wl6    maphead.sod   vgadict.wl6   vgahead.wl6
                          audiot.n3d    gamemaps.n3d  maphead.wl6   vgagraph.n3d  vswap.n3d
                          audiot.sod    gamemaps.sod  noah          vgagraph.sod  vswap.sod
                          pi@retropie:~/RetroPie/roms/ports/wolf3d $
                          

                          Then your SOD-WOLF3d.sh contains just

                          pushd /home/pi/RetroPie/roms/ports/wolf3d
                          /opt/retropie/ports/ecwolf/ecwolf --data sod
                          popd
                          

                          without the data tag you create a text selection menu ;)

                          For the directory structure you set each episode in one directory

                          sod   noah   wolf3d
                          

                          and then the bash file will be simply

                          pushd /home/pi/RetroPie/roms/ports/wolf3d/sod
                          /opt/retropie/ports/ecwolf/ecwolf
                          popd
                          
                          1 Reply Last reply Reply Quote 1
                          • cyperghostC
                            cyperghost
                            last edited by cyperghost

                            @mitu The rename comand isn't really needed if you use the directory based variant.Otherwise the --data switch must be set to SOD or sod
                            So it's a question that @tpo1990 can answer what seems the best variant ;)

                            Annother thing. You can't terminate current running game with gamepad! ESC key seems to be locked somehow and the back feature just works in main menu. This should be improved at first ;)

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

                              @tpo1990

                              function game_data_ecwolf() {
                                  pushd "$romdir/ports/wolf3d"
                                  rename 'y/A-Z/a-z/' *
                                  popd
                                  if [[ ! -f "$romdir/ports/wolf3d/vswap.wl6" && ! -f "$romdir/ports/wolf3d/vswap.wl1" ]]; then
                                      cd "$__tmpdir"
                                      # Get shareware game data
                                      downloadAndExtract "http://maniacsvault.net/ecwolf/files/shareware/wolf3d14.zip" "$romdir/ports/wolf3d" -j -LL
                                  fi
                              

                              The -LL switch is a nice find. So to make ecwolf perfect we just need a possibility to ESC from ingame to mainmenu ;) Should be possible to do. Thanks for bringing this jewel alive. Somehow I never was able to get SDLWolf running (false levelset?) with ecwolf there was never an obstacle.

                              I think with ecwolf it should be possible (in later dev stage) to get Blackstone and Corridor 7 running, too

                              Solid OneS tpo1990T 2 Replies Last reply Reply Quote 1
                              • Solid OneS
                                Solid One @cyperghost
                                last edited by

                                @cyperghost I've tested ECWolf on Windows a few weeks ago, and I remember being able to go back to menu by pressing Start on a Xbox360 controller. Maybe there's a way of mapping a button to go back to the main menu, just like there is in Zdoom sourceport (by binding a button to the console command 'main_menu'). Try checking the button mappings screen.

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

                                  @cyperghost I think the best scenario or output would be, if that when you start the game from Emulationstation it would show a selection menu for what game or wads to choose. For example like this.
                                  wolfconcept2.png

                                  @mitu Thank you. According to the compiling instructions from the ECWolf website - rename has not been mentioned. It doens't look like it is needed on our RPI. I can not say about Ubuntu, as i have not tested it from there.

                                  Let me hear what both thoughts you two have on this.

                                  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 I can also consider to write a bash menu like in this thread but the main problem is to differ between a vanilla build and a mod.

                                    So I would suggest following. Every mod uses it's own subfolder. Vanilla builds just starts with a call to ecwolf. If there is a pak file then the --file argument is used.

                                    @Solid-One I tried with button command main_menu = #; #=some numbers
                                    Did not work at all. Can you enter the main menu if you are in a game?

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

                                      @cyperghost Then maybe separate mods from vanilla build by having one bash menu for vanilla builds and one for mods. I think it is also important to keep a clean structure so that it will be easy to use as well.

                                      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 Or by creating a kind of cfg or ini files with mandatory parameter set.

                                        Wolfenstein - Spear of Destiny.ecwolf

                                        /home/pi/RetroPie/roms/wolf3d/
                                        --data sod
                                        

                                        Wolfenstein - Spear of Destiny Advanced Resolution Mod.ecwolf

                                        /home/pi/RetroPie/roms/wolf3d/
                                        --data sod --file Advanced_res.pak3
                                        

                                        That would be a possible solution, but needs a bit of handwork of course.
                                        First line contains game data path
                                        Second line is parameter set

                                        Because some modules like Astrostein need a cmdline call like ecwolf --file astrostein3_fix_PC.pk3 Astro3_data.bin

                                        EDIT:

                                        • Annother question: Can you enter main menu with any gamepad key within the game?
                                        • Maybe there are other ways without additional description files...
                                        cyperghostC 1 Reply Last reply Reply Quote 0
                                        • cyperghostC
                                          cyperghost @cyperghost
                                          last edited by

                                          @tpo1990 I'm making a fork of your git and send you some PR
                                          I think I've got a solution that works best ....

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

                                            I made some efforts with scripting. You can take a look in my GITHUB resp

                                            You have to setup .ecwolf files maybe Wolfenstein 3D - HighRes.ecwolf
                                            Inside this file you fill your data. So you've HD graphics for SoD, Wolf3D and nice soundtrack ;)

                                            cd wolf3d_14
                                            /opt/retropie/ports/ecwolf/ecwolf --data wl6 --file ../addons/ECWolf_hdpack.pk3 ../addons/ECWolf_hdmus_3DO.pk3
                                            wait $!
                                            
                                            • The first line opens directory wolf3d_14 were the vanilla Wolfenstein 3D version 1.4 resides.
                                            • The second line is ecwolfs command line switch that, it says to go back to port/wolf3d root menu and load the Highrespak inside addon directory
                                              • you can add as much bash commands as you like
                                              • zip commands, xboxdrv ...
                                            • The third line is wait $!
                                              • everything after this will be exectued after Wolf3d was closed
                                              • usefull to repack savegames, terminate xboxdrv....

                                            My directory tree looks like this now.

                                            wolf3d/
                                            ├── addons
                                            │   ├── Astro3_data.bin
                                            │   ├── astrostein3_fix_PC.pk3
                                            │   ├── ECWolf_hdpack.pk3
                                            │   └── totenhaus.pk3
                                            ├── wolf3d_14
                                            │   ├── audiohed.n3d
                                            │   ├── audiohed.sod
                                            │   ├── audiohed.wl6 
                                            |      .....
                                            │   ├── vswap.n3d
                                            │   ├── vswap.sod
                                            │   └── vswap.wl6
                                            ├── Wolfenstein 3D.ecwolf
                                            ├── Wolfenstein 3D - HighRes.ecwolf
                                            └── Wolfenstein 3D - Spear of Destiny.ecwolf
                                            

                                            1. Selection screen

                                            2. runcommand launching screen

                                            3. Finally a Wolf3D in highres

                                            Finally thank you @tpo1990 for bringing this together

                                            ExarKunIvE 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.