wadcli
is a tool for Windows and Linux that allows the reading, creation, and manipulation of Doom WADs through command-line, made with the purpose of faster development for the creation and modification of WAD files, without the need of GUI applications.
For this purpose, wadcli
is feature-rich, allowing users to add, delete or rename lumps, merge WADs together, extract lumps into a folder, compressing and decompressing them (for compatible Doom games), change and swap lumps' positions, and so on. It is also possible to do multiple actions together, such as renaming lumps that would be added to a WAD file, delete a different lump, change another lump's position, and then compress the WAD, all in one line.
If you feel you would really benefit from this software, please show your support by donating me a Ko-Fi (minimum 3 euro). A simple donation can make my day, and I would really appreciate it. Kind words and feedback are also appreciated, as well.
Linux users are recommended to build wadcli
. Here are the steps to do so:
- Get g++, make, git, liblzf1 and liblzf-dev. In Debian-based systems, using a terminal, this can be done through
sudo apt install g++ make git liblzf1 liblzf-dev
.
- For Ubuntu 20.04 and other derivatives, you may need to access the "Universe" repository. You may do so using
sudo add-apt-repository universe
and thensudo apt-get update
. See also here.
- Clone this repository. Do so through
git clone https://github.com/JugadorXEI/wadcli.git
(or downloading the code directly from GitHub). - Enter the project folder using
cd wadcli
. - Do
make
. This will buildwadcli
. - After building is done, do
sudo make install
. This will allow the use ofwadcli
from anywhere. - Done!
The makefile allows for additional flags:
WINDOWS=1
: buildswadcli
for Windows, which requires the 64-bit Mingw32 G++ compiler.STATIC=1
: buildswadcli
with static libraries. This requires making a static library ofliblzf
, which goes beyond the scope of this readme.DEBUG=1
: prints more verbose information.
Windows builds are compiled using make WINDOWS=1 STATIC=1
.
For any further help, do wadcli --help
.
ZWADs (compressed WADs) behave the same as decompressed WAD files (such as IWADs or PWADs) when it comes to arguments. Files that are added to a ZWAD will be compressed automatically.
wadcli yourwad.wad
will readyourwad.wad
, displaying the position of lumps, their size and offset.
wadcli yourwad.wad --add FILE
will addFILE
insideyourwad.wad
, at the bottom of the WAD.wadcli yourwad.wad --add MYFLAT --within F
will addMYFLAT
between the markersF_START
andF_END
if they exist, aboveF_END
.wadcli yourwad.wad --add MyReallyLongLuaFile.lua --rename LUA_COOL
will addMyReallyLongLuaFile.lua
at the bottom of the WAD, and rename it toLUA_COOL
.wadcli yourwad.wad --add MAINCFG --overwrite
will addMAINCFG
insideyourwad.wad
, and overwrite the same file inside the wad if it exists.wadcli yourwad.wad --create-markers P
will create markersP_START
andP_END
insideyourwad.wad
.
wadcli yourwad.wad --delete FILE1 FILE2 FILE3
will deleteFILE1
,FILE2
,FILE3
insideyourwad.wad
.wadcli yourwad.wad --delete ?3
will delete the WAD positioned at index 3 insideyourwad.wad
.
wadcli yourwad.wad --input LUMP1 LUMP2 --swap
will swap the positions ofLUMP1
andLUMP2
insideyourwad.wad
.wadcli yourwad.wad --input LUMP1 LUMP2 --position +3
will moveLUMP1
andLUMP2
three lumps above their index insideyourwad.wad
.wadcli yourwad.wad --input LUMP1 --position 7
will moveLUMP1
into the index 7 insideyourwad.wad
.
This is only for games that support ZWADS, such as Sonic Robo Blast 2 and derivatives, such as Kart and Persona.
wadcli yourwad.wad --compress
will compressyourwad.wad
and turn it into a ZWAD.wadcli yourwad.wad --decompess
will decompressyourwad.wad
and turn it into a PWAD. Passing--decompress I
will turn it into an IWAD instead.
wadcli yourwad.wad --extract LUMP1
will extractLUMP1
fromyourwad.wad
.wadcli yourwad.wad --extract-all --path ./your/folder/here --no-extension
will extract all lumps fromyourwad.wad
, remove the default extension given to the files, and put them in./your/folder/here
.
wadcli yourwad.wad --input LUMP1 LUMP2 --rename LUA_HI SOC_BUZZ
will rename the lumpsLUMP1
andLUMP2
, insideyourwad.wad
, intoLUA_HI
andSOC_BUZZ
, respectively.wadcli yourwad.wad [some other actions here] --output newwad.wad
will, after any actions done by the user, be exported asnewwad.wad
.wadcli yourwad.wad --merge coolwad.wad funnywad.wad
will merge the contents ofyourwad.wad
,coolwad.wad
andfunnywad.wad
together.
- Converting image files into graphics lumps is currently not supported.
- Wildcards are currently not supported.