Prboom - pWads not loading. Log file offers strange reasons for not running.
-
I installed prboom-plus on my Debian laptop and loaded up Alien Vendetta with parameters
prboom-plus doom2.wad -file AV.WAD -deh AV.DEH
(with all the files in the same directory) and it works fine! -
Now I downloaded Batman Doom on my RetroPie and I'm getting the same invalid WAD header error. Is there something wrong with the lr-prboom core?
-
I got my copy of Alien Vendetta from here which does not include an EXE file: https://www.doomworld.com/idgames/levels/doom2/megawads/av
All it requires is a basic BOOM compatible port, even Crispy or Chocolate DOOM should work fine with it. I have no issues running it on a normal computer, my only issue comes with running it on the Pi via Emulationstation.
I have not tested any other pwads as this is the first one I am testing to use with PrBOOM. I wrote the ZDOOM tutorial on the Wiki, so I'm pretty confident in my ability, but alas, I must have done something wrong?
-
Try updating the
lr-prboom
package from source, it should work with the setup you have. Here's the loading with the source update:/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/av.wad" --appendconfig /dev/shm/retroarch.cfg M_LoadDefaults: Load system defaults. default file: /home/pi/RetroPie/roms/ports/doom//av/prboom.cfg IdentifyVersion: basesavegame: /home/pi/RetroPie/roms/ports/doom//av i: 0 myargv[0]: prboom myargv[1]: -file myargv[2]: /home/pi/RetroPie/roms/ports/doom/av.pwad myargv[3]: -deh myargv[4]: /home/pi/RetroPie/roms/ports/doom/av.deh [...]
-
Hey @mitu, I don't mean to hijack @XD3l's thread but maybe we've got the same problem...so I updated
lr-prboom
from source and I'm still getting the invalid WAD header error from both Alien Vendetta and Batman Doom. I also Removed it and then compiled it from Source. Still didn't help.Here is my
Alien Vendetta.sh
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "doom" "/home/pi/RetroPie/roms/ports/doom/doom2.wad -file /home/pi/RetroPie/roms/ports/doom/av/av.wad -deh /home/pi/RetroPie/roms/ports/doom/av/av.deh"
Here's my verbose
runcommand.log
:
https://pastebin.com/EiatbVbGOh yeah and I'm built from the stock RetroPie v4.4 (stretch) image updated to 4.4.12. RPi 3B+.
-
@backstander I actually don't have any problems :), it runs ok. You don't need to add any arguments,
prboom
automatically adds the-file
and-deh
(it it finds a .deh file named as the .wad) arguments. You have the command line I used in my post (though I started it directly, not throughruncommand
)./opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/av.wad" --appendconfig /dev/shm/retroarch.cfg
I downloaded the
.wad
from @XD3l's link - https://www.doomworld.com/idgames/levels/doom2/megawads/av. -
@mitu that works for me now!! Now my only problem is my streaming internet radio doesn't pause when I launch anything outside of the
runcommand
lol ;) -
I just used the script to toggle background music on / off that @jonnykesh posted and called it
pause-radio-steam.sh
Now in my
Alien Vendetta.sh
I have:#!/bin/bash /home/pi/scripts/pause-radio-steam.sh /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/av.wad" --appendconfig /dev/shm/retroarch.cfg /home/pi/scripts/pause-radio-steam.sh
Not sure if this is the proper way to do it but it works. I could see an issue if I didn't have the Radio Steam going and I launch this and it starts the radio with the game and pauses it when I exit the game.
-
@mitu All right, so I altered my launch script to reflect yours and updated from source, though that's what I had began with as the binary was acting a bit wonky. I also re-downloaded Alien Vendetta as I had installed the Dehacked file into the wad file and was concerned that somehow Slade had corrupted the wad. I also did a MD5 check on my DOOM2.WAD and it checks out A OK! Lastly I had to move my av.wad and av.deh files into the directory next to doom.2ad and prboom.wad so as to conform to your launch script.
EDIT: It boots now, and so now I assume that it will just pick up on what ever wad and deh files I place in the directory along side of doom2.wad, prboom.wad, and so on?
One problem I do notice though is that it does not save my game anymore. Other than that, thank you, you got me going in the right direction!
-
SUCCESS!!!
I put my Alien Vendetta files back into their own folder within the "ports" folder.
I then altered mutu's script to reflect this:
#!/bin/bash /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/alienvendetta/av.wad" --appendconfig /dev/shm/retroarch.cfg
Now it works and games save to the folder as they should! Thank you both for your time!!! Now I believe I am going to play around with this some more, then once I'm sure I have it all down, alter the wiki to reflect this method as it seems to be the only one that works.
Launch script aside, the only differences now is that you no longer have to create symbolic links for prboom and doom2.wad, plus you no longer have to alter the prboom.cfg that you copy into the pwad's folder. So in short, it is much easier now! On that note, I am now wondering if my ZDOOM tutorial is a bit longer than it needs to be...
EDIT: Side Note, Alien Vendetta seems to demand a bit more than the Pi Zero can offer. I am noticing slow down. I will try something less demanding next.
-
As for pWADs that require doom.wad such as Rekker. What do we need to do to tell PrBOOM to use doom.wad as the default iwad as opposed to doom2.wad?
Normally I would employ the -iwad method, but these Pi scripts for PrBOOM have me scratching my head a bit.And in regards to the configuration... I had to go into retropie settings and alter the button lay out, but in doing so I seemed to have lost my button to change to the next weapon. Why can't these settings simply be made within the DOOM menu?
Lastly, if you happen to be running on a Pi Zero, setting the frame rate to 35 rather than 60, seems to improve performance on more demanding pwads, as does overclocking coupled with a copper heat sink.
-
To use the documented - using
runcommand
- method described in the docs:- create a folder for the mod/pwad and place the necessary IWAD there (doom2/doom1)
- add the mod's files (PWAD/DEH)
- Create the launcher script referencing the full path to the PWAD
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "doom" "/home/pi/RetroPie/roms/ports/doom/av/av.wad"
Alien Vendetta.sh
My
av
folder containspi@retropie:~/RetroPie/roms/ports $ ls -l doom/av -rw-r--r-- 1 pi pi 7403 May 26 05:10 av.deh -rw-r--r-- 1 pi pi 23819412 May 26 05:10 av.wad lrwxrwxrwx 1 pi pi 12 May 26 05:12 doom2.wad -> ../doom2.wad -rw-r--r-- 1 pi pi 10193 May 25 08:13 prboom.cfg lrwxrwxrwx 1 pi pi 13 May 26 05:11 prboom.wad -> ../prboom.wad
lr-prboom
will load the IWAD and add the necessary flags to load the PWAD/DEHParameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/av/av.wad" --appendconfig /dev/shm/retroarch.cfg M_LoadDefaults: Load system defaults. default file with base values: /home/pi/RetroPie/roms/ports/doom/av/prboom.cfg default file: /home/pi/RetroPie/roms/ports/doom/av//av/prboom.cfg IdentifyVersion: basesavegame: /home/pi/RetroPie/roms/ports/doom/av//av [...] iwad: /home/pi/RetroPie/roms/ports/doom/av/doom2.wad IWAD found: /home/pi/RetroPie/roms/ports/doom/av/doom2.wad PrBoom, playing: DOOM 2: Hell on Earth PrBoom is released under the GNU General Public license v2.0. You are welcome to redistribute it under certain conditions. It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details. V_Init: allocate screens. D_InitNetGame: Checking for network game. W_Init: Init WADfiles. adding /home/pi/RetroPie/roms/ports/doom/av/doom2.wad adding /home/pi/RetroPie/roms/ports/doom/av/prboom.wad adding /home/pi/RetroPie/roms/ports/doom/av/av.wad W_InitCache Loading DEH file /home/pi/RetroPie/roms/ports/doom/av/av.deh [...]
I think you might not need a separate folder, as I did,
prboom
creates a sub-folder anyway for storing the.cfg
file (and maybe for saves ?).For the mapping stuff, I don't know how it behaves, maybe @backstander can offer an answer.
-
@mitu For what ever reason, using the runcommand method does not work for me, which is what drove me to create this thread. I have never once seen it work since all my days using the Pi. Sadly though the Pi Zero can't seem to handle ZDOOM, so I'm stuck with PrBOOM, which I'm not the hugest fan of as you can tell. :)
-
@XD3l Post your launch (
.sh
) file. You have mine in the previous post. -
#!/bin/bash /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/pwad/alienvendetta/av.wad" --appendconfig /dev/shm/retroarch.cfg
-
@XD3l Do you have the
doom2.wad
and theprboom.wad
files in the same folder asav.wad
? As I said, I just followed the instructions in the wiki and put them in the same folder, then created a.sh
file usingruncommand
which works without issues. -
@mitu When using the script above (a modification of your own), then no, I only have AV in it's own folder along with the DEH and CFG files.
It is only when I use a script based on the Wiki example that I have problems.
File lay out:
/home/pi/RetroPie/roms/ports/doom/pwad/av/
-av.wad
-av.deh
-doom2.wad (or doom2.wad link, which ever)
-prboom.wad (or prboom.wad link, which ever)
-prboom.cfg (with deh and wad links included)and with this I use this script:
#!/bin/bash /opt/retropie/supplementary/runcommand/runcommand.sh 0 "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg /home/pi/RetroPie/roms/doom/pwad/av/doom2.wad" "lr-prboom"
Which in turn produces this error:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg /home/pi/RetroPie/roms/doom/pwad/av/doom2.wad --appendconfig /dev/shm/retroarch.cfg retro_load_game: invalid WAD header '(���З/' D_DoomDeinit:
This non-sense at the end after WAD header always seems to changed but always consists of garbage.
And again, all files are freshly downloaded, and my iwad checks out A OK with an MD5 checker.
-
@XD3l Did you try updating from source the
lr-prboom
package ? I got the same 'Invalid WAD header' before updating from source. -
I think we're making it to complicated and
lr-prboom
is smarter than we realized and doesn't need us telling it every single parameter and seams to automatically add the files it needs...somehow. Also the Doom wiki probably needs to be updated to reflect this.Both of these launch scripts seams to work for me and I'm not mentioning the
doom2.wad
or theav.deh
but they both are getting loaded automatically.#!/bin/bash /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so --config /opt/retropie/configs/ports/doom/retroarch.cfg "/home/pi/RetroPie/roms/ports/doom/av/av.wad" --appendconfig /dev/shm/retroarch.cfg
and launching through the
runcommand
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "doom" "/home/pi/RetroPie/roms/ports/doom/av/av.wad" "lr-prboom"
Using the scripts above somehow loads all the files needed:
W_Init: Init WADfiles. adding /home/pi/RetroPie/roms/ports/doom/doom2.wad adding /home/pi/RetroPie/roms/ports/doom/prboom.wad adding /home/pi/RetroPie/roms/ports/doom/av/av.wad adding /home/pi/RetroPie/roms/ports/doom/av/av.deh
Here's my Alien Vendetta directory:
pi@retropie16:~ $ ls -l ~/RetroPie/roms/ports/doom/av drwxr-x--- 2 pi pi 4096 May 26 09:49 av -rw-r--r-- 1 pi pi 7403 Dec 24 2002 av.deh -rw-r--r-- 1 pi pi 1816944 Dec 24 2002 avmovfix.wad -rw-r--r-- 1 pi pi 23819412 Dec 24 2002 av.wad -rw-r--r-- 1 pi pi 58599 May 26 09:38 prbmsav0.dsg -rw-r--r-- 1 pi pi 58599 May 26 09:34 prbmsav1.dsg -rw-r--r-- 1 pi pi 9642 May 26 21:36 prboom.cfg
Note: when you launch through the
runcommand
it make a sub-directory namedav
(or both scripts use it...I'm not exactly sure) shown below:pi@retropie16:~ $ ls -l ~/RetroPie/roms/ports/doom/av/av -rw-r--r-- 1 pi pi 58943 May 26 09:49 prbmsav0.dsg -rw-r--r-- 1 pi pi 9630 May 26 21:37 prboom.cfg
I don't have any symbolic links to the
doom2.wad
anywhere:pi@retropie16:~ $ sudo find ~/ -name "doom2.wad" /home/pi/RetroPie/roms/ports/doom/doom2.wad
-
I have a hunch that when we add the location to
doom2.wad
in the launch script that it might be loading updoom2.wad
a 2nd time thinking it is a PWAD and giving us the retro_load_game: invalid WAD header error.
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.