ECWolf - Wolfenstein 3D source port for mods
-
@Solid-One no it's the file format of the cpp file or the patch file.
EDIT: USE INSTRUCTIONS IN NEXT POSTING ---> here
I rather think it's better to transform the patch file then to change the format of the source file.
Try
dos2unix ./src/wl_play.cpp
and if this does not work apply the same command to patchfile itselfdos2unix wl_play_patch.diff
... how did you get the patch? By copy or paste or by wget command?EDIT:
works like descriped!
The source code is written in windows style :(
I prepared the patch on unix system - therefore the mismatch but as long as there is no official PR I don't know if there is a difference between wget-zip download or hg git download :p -
Okay .... extract the zip you've obtained
- Get main code
wget https://bitbucket.org/ecwolf/ecwolf/get/5065aaefe055.zip
- unzip with
unzip 5065aaefe055.zip
- Enter main directory
cd ecwolf-ecwolf-5065aaefe055
- Download patch file
wget https://raw.githubusercontent.com/crcerror/ECWolf-RPI/master/ecwolf_keyboardpatch.diff
- Patch source
patch -p0 -i ecwolf_keyboardpatch.diff
- Prepare with
cmake . -DCMAKE_BUILD_TYPE=Release -DGPL=ON
- Compile with
make
--> ecwolf binary will be created
It's complete now ;)
I just needed dependencies
sudo apt install libsdl2-mixer-dev libsdl2-net-dev
You will see if you compile if you need more.@tpo1990 maybe you can add "Manual install to first or seconds topic"
And for your scriptmodule you can add a helper script like thisfile ./src/wl_play.cpp | grep -q CRLF && unix2dos wl_play_patch.diff
If true then convert patch file with unix2dos, if not true then apply patch directly.Then there are 2 new keys/buttons you can assign to ESCAPE GAME and PAUSE GAME
- Get main code
-
How can I get the codes of my joystick (Sf30 pro) to configure it manually in ecwolf.cfg.
From the menu it does not work for me.
-
@cyperghost I got the patch from your link above, from a github repository.
Anyway, I've analysed the changes you made in wl_play.cpp, and since it were only a dozen lines of code, I've simply changed that file manually, by myself, copying and pasting the additional lines.
After that, I've compiled the file and tested on my PS2 controllers. I confirm that the new controls showed just like on the images you posted, and after mapping Start button to "ESC Game", I could navigate on menus just fine.
Thanks for the patch and the instructions. Now gotta test some mods in ECWolf.
@snock Have you included cyberghost's patch before compiling ECWolf? If true, then there's no need of editing ecwolf.cfg, since you'll be able to do that from the menus.
But if you haven't, then you probably won't have luck by trying to edit ecwolf.cfg manually.Even if you manage to get the codes of your joystick, and the command names, in order to try binding them manually through ecwolf.cfg, it probably won't work, because currently ECWolf has no way of allowing mapping custom buttons to ESC key. The game will simply ignore that command.
In summary, try applying the cyberghost patch before compiling. That should do the trick.
-
@Solid-One
I have applied it correctly since it leaves the options menu as in the last image but in white. I use attractmode as gui maybe that's it.When I press A to change (from the remote control that key is assigned), on the other hand to modify the keys using a keyboard without problem.Editing the file I got to change the right and left looking keys since I came out with the right stick (up and down).In the end I got it by configuring the file. Executing (jstest / dev / input / js0) putting the codes.
-
@snock Yes you need a keyboard in first instance to map keys. Of course you can also edit wolf.cfg and change values manually but I think it's better to use the gui for configuration.
At least I prior the ecwolf port over the wolf4sdl port.
It's more robust to different game versions and it runs all mission packs and tons of addons. So I think it would be nice (with a good chance of acceptance) to release a PR of this one. -
@cyperghost Probe with keyboard but it does not fail me when configuring the joystick ... modify the * .cfg without problems.
After testing your scripts to add "games" in a word. AWESOME !!. For now I have only had a problem with Astrostein 2 and 3. The 1 works without problems.
pi@retropie:~/.local/share/ecwolf/savegames $ log Parameters: Executing: pushd /home/pi/RetroPie/roms/ports/wolf3d; /opt/retropie/ports/ecwolf/ecwolf.sh "/home/pi/RetroPie/roms/ports/wolf3d/Astrotein 2.ecwolf"; popd ~/RetroPie/roms/ports/wolf3d ~ unzip: cannot find or open /home/pi/.local/share/ecwolf/savegames/wolf3d-astrostein2_fix_PC.zip, /home/pi/.local/share/ecwolf/savegames/wolf3d-astrostein2_fix_PC.zip.zip or /home/pi/.local/share/ecwolf/savegames/wolf3d-astrostein2_fix_PC.zip.ZIP. ---------------------------- ECWolf ---------------------------- ecWolf babel file : /home/pi/RetroPie/roms/ports/wolf3d/Astrotein 2.ecwolf shell start cmd : cd wolf3d_14 ecWolf cmd line : --data wl6 --file ../addons/Astro2_Data.bin ../addons/astrostein2_fix_PC.pk3 shell onend cmd : zip -mj -q /home/pi/.local/share/ecwolf/savegames/wolf3d-astrostein2_fix_PC.zip /home/pi/.local/share/ecwolf/savegames/savegam*.ecs basedir emulators : /opt/retropie/ports/ecwolf current directory : /home/pi/RetroPie/roms/ports/wolf3d/wolf3d_14 ---------------------------- ECWolf ---------------------------- W_GetNumForName: TITLEPAL not found! ReadConfig: Reading the Configuration. IWad: Selecting base game data. W_Init: Init WADfiles. adding /opt/retropie/ports/ecwolf/ecwolf.pk3, 99 lumps adding ./audiot.wl6, 288 lumps adding ./gamemaps.wl6, 120 lumps adding ./vgagraph.wl6, 149 lumps adding ./vswap.wl6, 588 lumps Could not stat ../addons/Astro2_Data.bin No such file or directory adding ../addons/astrostein2_fix_PC.pk3, 199 lumps InitGame: Setting up the game... SDL_Init: Using SDL 2.0.8 VL_ReadPalette: Setting up the Palette... ClassDef: Loading actor definitions. S_Init: Reading SNDINFO defintions. S_Init: Reading SNDSEQ defintions. US_Startup: Starting the User Manager. CreateMenus: Preparing the menu system... DemoLoop: Starting the game loop... zip error: Nothing to do! (/home/pi/.local/share/ecwolf/savegames/wolf3d-astrostein2_fix_PC.zip)
Looking for mods for wolf3d I found many for doom. Is there any way to execute them?
-
@snock I just did test with the Highres mods and some sound mods.
Then I was able to run "Escape from Totenhaus" and "Claw of Eisenfaust" and these run without any problem.
Here you can download tons of modifications: https://www.moddb.com/company/astrocreepThink about the
ecwolf
-files are highly affected to globbing!
So commands likecd "Wolfenstein 3D"
do not work! So avoid white spaces!I expermineted with IFS and loops (yes this works) and sourcing files with a setted trap (yes this works, too) but all in all the
ecwolf
-file now (07/2019) is much easier to use and gives better hints of error detection.In your case there seems only an error in loading the PAK file....
Could not stat ../addons/Astro2_Data.bin No such file or directory
Is
Astro2_Data.bin
available? The file name is case sensitve!EDIT:
I added this info to
Astrostein 2.ecwolf
unzip /home/pi/.local/share/ecwolf/savegames/wolf3d-astro2.zip -d /home/pi/.local/share/ecwolf/savegames/ cd wolf3d_14 --data wl6 --file ../addons/astrostein2_fix_PC.pk3 ../addons/Astro2_data.bin zip -mj -q /home/pi/.local/share/ecwolf/savegames/wolf3d-astro2.zip /home/pi/.local/share/ecwolf/savegames/savegam*.ecs
and used this addon pak from here
Works flawless! I think you wroteAstro2_Data.bin
but in my configuration it isAstro2_data.bin
-- lowercase D -
@cyperghost True ... they were the many of the night and I did not notice in the letter D. Solved.
-
Some optimizations for COMMAND line:
add--extravbls 2
to ecwolfs to each.ecwolf
file inside$HOME/RetroPie/roms/ports/wolf3d
- Reduces CPU usage up to 50%
- Prevents from overheating
Additional optimization:
Main Menu --> Options --> Display Options- Activate Fullscreen
- Activate VSYNC (will save 3-4% CPU on a RPi3)
- Aspect ratio set to AUTO
- Set resolution to 512x384 (0,5x HD)
Additional EXTRA-FUN
Download Noahpak - The Invasion - this needs SUPER NOAH ARCH 3D -
@cyperghost I already tried your instructions with trying to execute the patch but it fails at the step 5: Transform patch code from LF EOL --> CRLF EOL unix2dos wl_play_patch.diff from your post
unix2dos is not recognized as a command on my test RPI setup. Is there another dependency that i need to install first? Maybe i forgot something in the process.
As for getting the source files, wget seems to work great so i think we could change from using hg (mercurial) to wget leaving out the mercurial dependency from the scriptmodule.
-
@tpo1990 You need 'dos2unix' package. But it would be better to transform the patch in correct format. That is also better for a proper PR. As I said use the files that I prepared as you want - This version of Wolf is really great and also easy to setup now.
-
With proper format I mean to patch the file with converted file and then use diff again to recreate the new patch. This would avoid the install of unwanted packages.
Gold way - send the creator a P R but I do not have a bit bucket account
-
@cyperghost Ah i see. I did find out that the dos2unix package is avaliable with apt-get from the official raspbian repository.
If we did include the dos2unix package(dependency) in the scriptmodule, wouldn't it be possible to make the scriptmodule do it automatically with executing the patch, as long as dos2unix package has been installed first?
At least considering this, it could be the primary way until a better solution for a proper format shows up. Just as a temporary solution.
I also don't have a bit bucket account.
-
@tpo1990 I would avoid the installation of the converter and just use a proper prepared patch.
As I said patch first with help from the conver t and then use diff command to prepare patch
-
@cyperghost Yes it probably is. I will try that approach first.
-
@tpo1990 I tried this way and it works. Them the patch command is reduced to just patch -p0 -i patch.diff
-
@cyperghost I can't upload files - journey for work in progress
-
@cyperghost hey, I was thinking: is it really necessary to bother using unix2dos for converting linebreaks? I'm asking this because recently I've made a small patch for Doom Legacy in sourceforge, that allows users to create a multiplayer game with bots without having to recurr to console commands for that task. I've created that patch on a desktop with Ubuntu 14.04 at home, and it worked just fine for me when I tested applying it on a clean copy of DL obtained through SVN.
I'm guessing the reason why it wasn't needed to convert line breaks is because DL source code files were created and edited in Linux instead of Windows. On your case, assuming you were using notepad in Windows for editing those files, by default it can change the structure of the line breaks of the file, thus resulting in DOS line breaks, instead of Unix line breaks.
If that's the case, then if you edit the file in Linux instead of Windows (or at least using other text editor that won't change line breaks' structure, such as Notepad++, Geany or Atom per example), the patch generated probably won't have this issue when being applied to the original source code. So, if it works this way, then unix2dos won't be needed anymore.
Ah, about Bitbucket, you guys can easily create an account in there. I've created mine a few years ago, and with that account, I have even reported a few bugs in Splitwolf. It's free of charge, and as easy as setting up an account in Github.
-
@Solid-One no the source files are using CRLF and I created the patch on the Raspberry by inserting code to source with LF only. Therefore the mismatch
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.