home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Complete Doom Accessory Pack 4
/
TheCompleteDoomAccessoryPackVolumeIvCd.bin
/
miscutil
/
deutex
/
dtexman3.txt
< prev
next >
Wrap
Text File
|
1995-01-02
|
176KB
|
5,215 lines
____________ __________________________
\ \ \ / /
| _______ \ \_______ ________/ /
| |\_____\ \ \______\ / \______\/
| | | | |\ | | /
| | | | || __________ ____ ____ | | | __________ _____ ____
| | | | || \ _____/ / \ / \ \ / \ | | | \ _____/ /| \ / \ / \
| | | | || | |\___\/ | |/ | |/ | | | | |\___\/ \ \ \ / / /
| | | _/ || | |_|____ | || | || | | | | |_|___ \ \ \/ / /
| | |_/ __/ | | ____/ / | || | || | | | | ___/ / \/ \/
| |/ __/ __/ | |\__\/ | || | || | | | | |\_\/ / /\ \
\ / __/ | |_|_____ | \|__/ || | | | | |_|_____ / / |\ \
\ / _/ /______/ / /_______/| /___| | /______/ / /__/ /\ \__\
\ / / \______\/ \________/ \____\| \______\/ \__\/ \|__|
\/ /
\/ **********************************************/
------------------------------------->/
*************************************************/
------------------------->/
*****************************************************/
------------------------------------------->/
*******************************************************/
------------------------------>/
**********************************************************/
______________________________________________________________/
DEUTEX/DEUSF 3.1
December 1994
WAD composition tool for DOOM
Copyright (c) Olivier Montanuy 1994
(montanuy@dmi.ens.fr)
Manual Edited by Kevin McGrail
(74107.1254@compuserve.com)
------------------------ Data Utility License -------------------------
DOOM(tm) is a trademark of Id Software, Inc.
The DOOM characters and the Id Software logo are trademarks of Id
Software, Inc. DOOM Copyright (c) 1993. Id Software Inc. All rights
reserved. This utility product is not a product of Id Software, Inc.
and has not been approved by Id Software, Inc. Id Software will not
provide technical support for this product. The purchaser of this
utility product may not distribute for money or other consideration
any software data created and/or modified by the use of this utility
product.
-----------------------------------------------------------------------
***************************** DISCLAIMER *****************************
I will not accept liability for damages resulting from the use of
this program. DeuTex and DeuSF are programmed in a very secure way,
to limit the risk of bugs. They have as few tricky optimisations as
possible. DeuTex and DeuSF use only basic level commands, and don't
contain any Logical bomb or other tricks. They should work on all
platforms, but this can never be 100% certain. The source code is
available on request (for serious people only).
Legalese:
Read the license information at the end of this manual.
DeuTex/DeuSF are freeware and Copyright (c) O.Montanuy 1994.
Distribution:
DeuSF can be freely distributed.
DeuTex cannot be distributed for *any* commercial purpose,
with the sole exception of Compuserve download charges.
************************** CONVIVIALITY ******************************
DeuTex and DeuSF have NO human interface.
DeuTex is meant to be run from a batch creation file (e.g. make.bat).
DeuSF should be run from a batch installation file (e.g. install.bat).
A Human Interface would mean:
- 300% additional development time.
- Good knowledge of some graphic systems (Windows, X-Windows...).
- 900% additional debug time (no joke).
- A product that COULD NOT be freeware, or be written in MONTHS.
- Portability between DOS,UNIX,OS/2 would be almost impossible.
If you can't do without a human interface, there is a Visual Basic
shell to help you run DeuTex under Windoze.
It that's too slow for you, use New Wad Tool.
***********************************************************************
+ *NEW* - Lines begining with a '+' indicate information added since
+ the manual for DeuTex v2.9 came out. There are many other changes
+ and corrections without a '+', but a '+' is meant to show a signi-
+ ficant addition or improvement in DeuTex/DeuSF 3.0 or the manual.
+ DeuTex 3.0 is not entirely compatible with previous versions.
+ A few things were much too dirty...
page i
************************** Table of Contents ***************************
Data Utility License i
Disclaimer i
Conviviality i
Table of Contents ii
Features v
What's New? vi
----------------------------
*** [PART ONE] GETTING STARTED *** 1
----------------------------
Chapter 1 OVERVIEW 1
A) What is DeuTex? 2
B) Installation 2
C) Directories and DeuTex 4
D) What do I need? 4
E) What do I do? 4
F) What is DeuSF for? 5
G) What are the Palettes For? 5
Chapter 2 TEST-ME or What's inside TRINITY.WAD? 7
A) About Test-Me 7
B) Listing the Directory 7
C) Decomposing TRINITY.WAD 7
D) Recomposing TRINITY.WAD as TRINIDAD.WAD 8
E) Customizing TRINITY.WAD 8
Chapter 3 WORKING WITH WADS 9
INTRODUCTION 9
A) How to Decompose a PWAD 9
B) How to Create a PWAD with new TEXTURES 10
C) How to Create a PWAD with new SPRITES and FLATS 11
1) Sprite and Flat Replacement 11
2) Changing the Number of Sprite Viewpoints 12
D) How to Create a PWAD with new SOUNDS 14
Chapter 4 VBDEUTEX 15
page ii
********************** Table of Contents (cont) ************************
-----------------------------
*** [PART TWO] DETAILS, DETAILS *** 16
-----------------------------
Chapter 5 DIRECTORY STRUCTURE 16
A) \Levels 17
B) \Lumps 18
C) \Textures 19
D) \Sounds 20
E \Graphics 20
F) \Sprites 21
G) \Flats 21
H) \Patches 22
Chapter 6 DEUTEX COMMANDS 23
A) Complete Command Reference 23
B) Help Commands 23
C) Optional Commands 23
D) Commands to Compose or Decompose WADS 25
E) Commands for merging PWADS into the Main IWAD 26
Chapter 7 DEUSF COMMANDS 28
A) Overview 28
B) Complete Command Reference 29
C) Help Commands 29
D) Optional Commands 30
E) Mandatory Commands 30
Chapter 8 FORMATS 31
A) The WAD Creation Directive (WADINFO.TXT) 31
1) Overview 31
2) WADINFO.TXT format 32
3) An example WADINFO.TXT Listing 36
B) The Texture Definition File (TEXTURE1.TXT) 39
1) Overview 39
2) An Example TEXTURE1.TXT Listing 41
page iii
********************** Table of Contents (cont) ************************
---------------------------
*** [PART THREE] ALL THE REST *** 43
---------------------------
Chapter 9 NECESSARY STUFF 43
A) License Agreement 43
B) Legal Stuff 44
C) Where to get DeuTex/DeuSF 45
D) Version Information 46
E) Known Problems 47
F) Thanx 48
G) Final Words 50
APPENDICES
I) Switch Textures in DOOM.WAD 51
II) Animated Wall Textures in DOOM.WAD 56
III) Sound Names for DOOM 58
A) Sounds found in BOTH DOOM I and DOOM II 58
B) Sounds found ONLY in DOOM II 60
C) Converting DMAUD Sounds for DeuTex 62
IV) DeuTex and DeuSF Command Summaries 64
A) DeuTex Commands 64
B) DeuSF Commands 65
AFTERWORD
TRINITY.WAD - How I Made It by Steve McCrea 66
page iv
****************************** FEATURES *******************************
------------
DeuTex
------------
DeuTex stands stands for DEU's Texture Companion, because it used to
deal only with DOOM textures. Now it can do much more!
DEU is a DOOM level editor by Brendon Wyber and Raphael Quinet, and
DeuTex was originally derived from the code of DEU 5.21. DeuTex uses
various contributions for particular file formats.
DEUTEX Features:
- Ported on all DOOM environement (DOS,OS/2,Linux,SGIx,Unix)
- Reverse engineer existing PWADs.
- Compose your own wall Textures, by reusing existing DOOM
Patches or adding your own Patches as .BMP or .GIF files.
- Load Sounds as .WAV, .AU or .VOC files.
- Load PC Speaker Sounds as a serial of number (in text).
- Load music entries as .MUS files. (from MIDItoMUS)
- Add your own floors.
- Add your own Sprites.
- Simple WAD creation directives from a text file.
- Simple directory structure for the resources.
- Work in batch mode, like a compiler.
- A Windows shell can be used to make your life easier.
- Compatible with Level editors (like DEU).
- Merge a PWAD into the main IWAD, recreating the WAD directory,
so that ANY or ALL kinds of Sprites and/or Flats can be defined,
while distributing only the changed ones in the PWAD.
- Extract Graphics, Bitmaps and Lumps out of your favorite PWAD,
for contemplation or reuse. (WITH WAD AUTHOR AGREEMENT ONLY!)
- Check your PWAD for errors in Texture definitions.
- Create animated walls with (almost) any sequence of pictures.
- Create a non repeating sky Texture.
-------------
DEUSF
-------------
DeuSF stands for DEU Sprite and Flats. It is mainly used to
compensate a bug in DOOM Sprite and Flats handling.
DeuSF was inspired by DMADDS by Bernd Kreimeier, but is more powerful
and much cleaner. Like DMADDS, DeuSF compensates for a bug in DOOM
concerning the treatment of external Sprite and Flat PWADS. It will
enables you to distribute PWADS containing only the Sprites and/or Flats
that you wish to replace. There are some caveats here, so read the
manual! DeuSF can read DMADDS files, but its' preferred PWAD composer is
of course DeuTex, since PWADS composed for DMADDS are very dirty inside.
DEUSF Features:
- Recreate a complete Sprite and/or Flat PWAD from a partial Sprite
and/or Flat PWAD and the main WAD of DOOM.
WARNING: The Sprite names VILE[, VILE\ and VILE] are not valid DOS file
names, so DeuTex replaces them with VIL@A, VIL@B and VIL@C when
extracting them to files. Use these names for your files, too.
page v
***************************** WHAT'S NEW? *****************************
+ New in DeuTex 3.1
+ - Color Quantization, allowing PPM support.
+ - VOC Sounds (format is a bit hacked)
+ - New Visual Basic shell (still under progress.)
+ - Command -dmtexture replace -texture. -texture is now used
+ as a switch like -sprite, -flat, etc. (it's more logical)
+ - Section boundaries in PWAD composition files are now [SECTION]
+ (like Windows .ini files) and not Begin: SECTION End: SECTION.
+ - The order of sections in PWAD composition files is no longer
+ critical (it used to be real tricky).
+ - A new section [TEXTURE2] added for TEXTURE2 entries.
+ - Texture entries are now first read from DOOM.WAD. The
+ Texture file then indicates which Textures to create or
+ redefine. This eliminates all the TEXTURE1.TXT confusion
+ that existed in previous versions. Much easier!
+ - You can now keep your custom name for Levels, Sounds, Sprites
+ and Flats. For example, if you declare DSPISTOL= BOIING,
+ BOING.WAV will be read from the \SOUNDS directory and inserted
+ in the PWAD as DSPISTOL.
+ - A new command <-join> for DeuSF, that let's you combine
+ different Sprite and/or Flat PWADS into one PWAD.
+ it even merge TEXTUREs and PNAMES defined in the two Pwads
+ but still don't expect miracles.
+ SUPPORTED
+
+
+ DOOM registered 1.1 to 1.7a and above
+ DOOM2 1.6 to 1.7a and above
+ HERETIC shareware (temporary) 1.0
+
+ NOT SUPPORTED
+
+ DOOM shareware (by request of IDsoftware)
+ HERETIC shareware is supported only because I don't know what
+ HERETIC registered is like, and can't test my prog without it.
page vi
----------------------------
*** [PART ONE] GETTING STARTED ***
----------------------------
CHAPTER 1
****************************** OVERVIEW *******************************
DeuTex is a GREAT program!
<editors note>
(preceding claim inserted over the objections of Olivier Montanuy) ;-)
*********************** A Note About This Manual ***********************
There is a lot of redundancy in the manual. This is intentional. The
manual is intended to be used as a reference. When you have a question
on a particular aspect of DeuTex, look up a likely entry in the Table of
Contents, and read that entry. It should have the information you need.
This is to prevent you from having to jump around from page to page to
figure out a procedure in DeuTex. This doesn't mean that sections are
identical. Each section attacks a problem from a different viewpoint.
If one section doesn't help you, maybe a different 'angle' will.
************************************************************************
This manual has a lot of trees in it. This chapter will give you a view
of the forest. DeuTex and DeuSF are powerful programs that will let you
do almost anything you can imagine in composing or manipulating PWADS.
Notice the word composing. Deutex is an Orchestra Conductor. It can
perform whatever music you write for it brilliantly, but you must
supply the musicians. A PWAD consists of many parts. DeuTex coordinates
those parts to give you the PWAD you desire, but it doesn't create
them. With DeuTex you have access to all the resources in the DOOM1 or
DOOM2 IWADS. Since it does so many things, it might seem a little
confusing at first glance. Don't worry. If you are familiar with DOOM
(read Matt Fell's DOOM specs and Hank Leukart's DOOMFAQ), then all you
need to learn about DeuTex is it's organization.
There are so many resources in DOOM that it isn't reasonable to put them
all in one directory. DeuTex uses a subdirectory for each entry type.
Using these subdirectories is easy once they're explained.
Deutex makes it possible to use a simple, straightforward method for
working with custom graphics (and sounds). The approach is as follows:
1) Put your resource files in subdirectories such as FLATS, SPRITES,
etc., further discussed below.
2) Use a `Wadinfo' file called something like `goodies.txt' to tell
Deutex how to assemble the resources into a PWAD.
3) Run `deutex -make goodies.txt goodies.wad' to make the PWAD.
Now you can play your level with the resources, without any fuss
(unless, of course, something has gone wrong along the way).
page 1
This method works for any resource. You can make sound-only wads that
will play with any version of DOOM. You can include Level maps in a
multi-level PWAD. DeuTex will put the Levels where you want them,
regardless of the internal ExMy OR MAPxx of the Level. If the finished
PWAD doesn't contain new Sprites or Flats, it can be played as is.
Otherwise, it can be rendered playable with DeuSF, which can be freely
distributed with your PWADS.
The DeuTex Visual Basic shell let's you use the Windows environment to
distribute those entries in the right directory, and then execute the
-make command. It doesn't change the way DeuTex works, it only makes
your life easier.
---------------
A) WHAT IS DEUTEX?
---------------
DeuTex is a PWAD compiler. It allows you to organize ALL the resources
you modify, and group them into your PWAD in a single step. This
eliminates the need for running a different program for each type of
editing you want to do (DMAUD, DMGRAPH, DMADDS, etc).
DeuTex is NOT a:
map editor, (use DEU, DoomCAD, WadEdit...)
nodes builder, (use DEU, BSP, IDBSP,...)
reject map builder (use RMB or REJECT)
DOOM.EXE editor (use DEHACKED)
Your Level map with nodes, reject and blockmap already calculated is
just another resource to DeuTex. If you don't want to redefine or create
Textures, Flats, Sounds, etc. in your PWAD, you don't need DeuTex.
On the other hand, if you redefine LOTS of stuff,
you'll wonder how you ever got along without it.
If you've worked with wads before, you know how many times you have to
go in and change something! With DeuTex, you just edit the resource you
want to change, throw it back in it's subdirectory, and run a batch
file to put everything together again.
------------
B) INSTALLATION
------------
DeuTex comes in zipped format. Naturally, you need a copy of PKUNZIP
(v2.04G) to unzip it. If you don't have one, go get it! It's probably
available the same place you got DeuTex. PKUNZIP also exist for Unix.
The file name is DTEX31.ZIP or something like it. This manual is valid
for DeuTex versions 3.1 and above. Some information is not applicable to
previous versions, and may cause you problems. Be forewarned!
Installing DeuTex:
DeuTex and DeuSF should be put somewhere in your path, e.g. under
C:\DOS in DOS, ~/bin under Linux/Unix, etc. This is not ABSOLUTELY
necessary, as you can put a copy in your working directory each time
or specify path names in all the commands, but, believe me, it makes
life much simpler.
page 2
You should enable DeuTex/DeuSF to locate your DOOM or DOOM2 files
by creating an environmental variable DOOMWADDIR that points to
your DOOM path like this:
For DOS, put the line 'SET DOOMWADDIR=C:\GAMES\DOOM' in AUTOEXEC.BAT.
For Linux/Unix, use 'setenv DOOMWADDIR ~/games/doom' in .tcshrc.
This is more important for the Linux/Unix version, since with DOS
the command DeuTex -doom <doomdir> will achieve the same result. In
DOS, it's possible to get an 'out of environment space' error if you
have too many variables defined in autoexec.bat (including path, etc).
If this occurs, use DOS Help for the SHELL command to find out how to
increase your environment space.
Of course, DeuTex will only work if the REGISTERED
version DOOM.WAD or DOOM2.WAD is available.
Should you be in dire need of disk space, or should you wish to use
DeuTex on a machine that can't run DOOM, you can use DeuTex to build a
fake DOOM.WAD or DOOM2.WAD, keeping only the structure of the directory
and the entries PLAYPAL, TEXTURE1, TEXTURE2 and PNAMES. Of course, to do
this, you first need a complete registered DOOM.WAD or DOOM2.WAD, and
even then it's a real pain. Beware to keep that file for yourself ONLY.
The zip file for DeuTex 3.0 contains the following files. For
illustration purposes, the diagram assumes you put DTEX30.ZIP
in the root directory (C:\). Directory information is embedded
in the zip file, so use the PKUNZIP -d option:
PKUNZIP -d DTEX30.ZIP will produce:
C:\dtex30.zip
|_
\DEUTEX\ deusf.exe - DeuSF program.
| deutex.exe - DeuTex program.
| deutex.pif - Windows pif file for VBDeuTex.
| dtexman.txt - This manual.
| file_id.diz - For BBS use.
| midi2mus.exe - MIDI to .MUS converter.
| readme.txt - Short descrition of DeuTex/DeuSF.
| vbdeutex.exe - Visual Basic Shell for DeuTex.
| vbdeutex.txt - Short description of VBDeuTex.
|_
| \PALETTE\ doompal.pal - DOOM, PaintShop Pro format.
| doompal.ppm - DOOM, PPMQUANT format.
| palette.txt - Short description of the palettes.
| heretic.pal - HERETIC, PaintShop Pro format.
|_
\TEST-ME\ test-me.txt - Directions for the TRINITY example.
trinity.bat - DOS batch file for TRINITY example.
trinity.cmd - OS/2 file for TRINITY example.
You may end up moving the palettes if you want them in their native
application's directory, but leave DEUTEX\TEST-ME alone. When you do
the demo, you'll want it to be in its own directory.
page 3
----------------------
C) DIRECTORIES AND DeuTex
----------------------
Chapter 5 tells you all about the directories DeuTex uses, but this
section will give you the general picture. I'm going to use an
imaginary cakemaking machine to explain DeuTex's directories (I know,
I know, it's stupid! <g>). To make cake with this machine, you put your
flour in one, container, raisins in another, sugar another, milk,
icing, walnuts, chocolate, eggs, etc. All your best stuff, each in it's
own place. Then you flip the switch, and the machine thumps and smokes,
and voila! Cake!
DeuTex works in the same way . You put your Map in one box, Sounds in
another, Textures, Patches, Graphics, Lumps, Sprites and Flats all in
their own boxes. If you don't want raisins today, leave the Sprites box
empty. When all is in place, flip the switch (DeuTex -make, in a batch
file preferably), DeuTex thumps and smokes for a little while, and
voila! PWAD!
---------------
D) WHAT DO I NEED?
---------------
************************** User Requirements *************************
ATTENTION: DeuTex is not completely trivial to use. It requires a
fully functional processing unit, with a least 10000 meg
of available neurons, some basic DOS and DOOM specs dynamic
libraries and at least 1 or 2 hours of spare processing
time at a minimum 80% attention rate. You have been warned.
SUGGESTION: If you use DeuTex, try New Wad Tool, too. The two tools
combine very well together under DOS. (NWT is not available
for other O/S).
************************ Hardware Requirements ***********************
This program is an ordinary DOS executable, compiled in a HUGE memory
model, with 386 instructions. It does not make use of a math copro-
cessor. It should run with about 500k of free base memory, or less. It
might not run under a 286. It was tested on a Compaq LITE 4/33c and an
IBM Thinkpad 755c.
Unix, Linux, OS/2, SGiX and Alpha versions are also available.
-------------
E) WHAT DO I DO?
-------------
Please read this Manual before asking questions. I know it's boring, but
this IS freeware, and I have limited time to support it. Bug reports ARE
appreciated IF they come with the files you were using when the bug
occurred, and a full description of it.
Read and be familiar with all the DOOM literature you can, especially
the 'unofficial' DOOM SPECS 1.6 by Matt Fell. You don't need to read the
file formats, but you need to understand what the different entries are
for, and the tricks and limitations of DOOM.
page 4
DeuTex makes some checks on your PWAD, but I don't have time to program
for all possible errors. Become familiar with the various editors you
need to create the resources used in this program. DeuTex does not edit
things. It puts the things YOU edit together. For editing, use the best
Sound or Graphic editor you can afford.
When the foregoing is done, you take all your cool stuff. You put it in
DeuTex's boxes. You give DeuTex the directions on what to DO with your
stuff. You run DeuTex. That's All, Folks.
------------------
F) WHAT IS DEUSF FOR?
------------------
DeuSF is a program to help overcome some of DOOM's limitations,
and still be able to distribute a reasonable sized PWAD. With
Sprites and Flats, you have to replace EVERYTHING in order for
DOOM to work right. This makes for a big PWAD (3 to 5 megs), and
it's illegal to take iD's Sprites or Flats from DOOM, put them in
your PWAD, and then distribute them.
DeuSF allows you to replace as few Sprites and Flats as you desire,
and distribute ONLY THOSE with your PWAD. With the appropriate batch
file, it will change things at the USER's site to enable your PWAD to
play, without stepping on toes, or asking people to download multi-
megabyte single Level PWADS!
Another advantage of DeuSF is that it makes Sprite PWADs playable with
either DOOM or DOOM2 using the same install.bat file. Isn't that great?
--------------------------
G) WHAT ARE THE PALETTES FOR?
--------------------------
doompal.pal (JASC palette, for Paintshop PRO shareware program)
doompal.ppm (Portable Pix Map, for PBMPLUS freeware package)
These are the color palettes used by DOOM.
If you edit or create any graphics (Patches, Sprites, etc.) in your
favorite graphics program, the colors will most likely be different
from the ones used in DOOM. When they are inserted in a PWAD, they
need to be 'quantized', which is a fancy word for color-matched.
Although this sounds simple, it can actually be quite involved. DeuTex
can quantize colors, but it's not optimised for that, so quantization
might be slow and quite poor.
page 5
What should you do before inserting a picture with DeuTex?
* AVOID regular patterns, like squares/stripes. These patterns are prone
to create ugly aliasing when scaled by DOOM.
* SMOOTH it! I mean, apply a low pass filter so that it appears blurred.
This will also hide some of the aliasing effects of scaling.
* QUANTIZE your colors with one of the supplied DOOM palettes. DeuTex is
optimised for the original DOOM palette. If you use another palette,
it will be slower. DeuTex will quantize your colors to the DOOM colors
using a strange alchemy. No dithering.
* TRANSPARENT areas should be made of A UNIQUE COLOR, preferably CYAN
(r=0,g=255,b=255, but you can specify another color to DeuTex.)
WARNING: Some lame programs don't support full 0-255 range. CYAN could
be r=0, g=252, b=252. Experiment first.
The enclosed palettes are in the format of two good graphics programs.
Use them to quantize your pictures before you feed them to DeuTex.
doompal.pal is in the format used by PAINTSHOP PRO v2, a popular
shareware graphics program with excellent color conversion capabilities.
To convert with doompal.pal in PAINT SHOP PRO:
- Load the file you want to convert.
- Select *Colors* from the menu bar.
- Select *Load Palette* from the drop-down menu.
- Browse to find doompal.pal and select it.
- In the 'apply palette to image using' box, select *error diffusion*.
- Select *OK*.
PaintShop Pro will then quantize your image to the DOOM palette.
- Select *File* from the menu bar.
- Select *Save As* from the drop-down menu.
- Select *BMP - OS/2 or Windows Bitmap* from 'List files of type'.
- Select *Windows RGB Encoded* from 'File Sub-format'.
- Select *OK*.
DOOM will now display your Graphic pretty much as you expect.
If you want to make a .PBM (portable bitmap), use ppmquant on your
picture, with doompal.ppm as the reference for colors.
+ Alternatively, if you extract a DOOM Graphic with DeuTex, it will
+ contain the DOOM palette. You can then feed it to your favorite
+ program, and let it extract the palette for later reuse.
+
+ WARNING:
+ Experiment with this first, as your program might not do what you
+ expect it to. For example ZSoft's PC Paintbrush will load the DOOM
+ Graphic correctly and allow you to save the palette. However, if you
+ take a 24 bit image and load the palette, nothing will happen. You can
+ let PC Paintbrush convert the image to 256 colors (which it will do
+ poorly), and then apply the palette. The results will be grotesque,
+ because it doesn't quantize when applying a palette. A DOOM palette
+ saved in this program would be useful only for Graphics you want to
+ hand-draw from scratch. The moral is, if you don't know what you're
+ doing, experiment first before using a Graphic you don't want to lose.
page 6
CHAPTER 2
*************** TEST-ME or What's inside TRINITY.WAD? *****************
-------------
A) About TEST-ME
-------------
TRINITY.BAT let's you have a quick overview of some of the cap-
abilities of DeuTex so you can decide if it's worth the trouble.
TRINITY.BAT does the following:
It lists the contents of TRINITY.WAD (with identifications).
It decomposes TRINITY.WAD and builds TRINIDAD.WAD.
All this in only 3 trivial DeuTex commands.
Requirements:
- You must have TRINITY.WAD, the great PWAD by Steve McCrea.
(available on infant2.sphs.edu as TRINITY2.ZIP and
in the Compuserve GAMERS FORUM LIB 8 as TRINTY.ZIP)
- Doom must be in the \DOOM directory (\DOOM2 could work too)
- TRINITY.WAD must be in the current directory.
- You must have *some* room left on your disk :-)
- You must be running DOS 5.0 or higher.
- You must NOT reuse any part TRINITY.WAD without crediting Steve.
Description of the file, TRINITY.BAT:
----------------------
B) Listing the directory
----------------------
rem ***DeuTex***
deutex -doom \doom -wadir TRINITY.WAD
^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
(a) (b)
(a)---> This tells DeuTex that DOOM.WAD and DOOM.EXE are in the
\DOOM directory. OPTIONAL.
(b)---> This tells DeuTex to list the directory of TRINITY.WAD
reporting the entry types. Types *could* be wrong, but not
with Trinity.
------------------------
C) Decomposing TRINITY.WAD:
------------------------
rem ***DeuTex***
deutex -doom \DOOM -dir . -xtract TRINITY.WAD
^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
(a) (b) (c)
(a)---> The same as before.
(b)---> This tells DeuTex that it must store the result in '.' (which is
the current directory). You could skip (b), since '.' is the
default, or you could specify another directory, like -dir TEST.
(c)---> This tells DeuTex to extract all entries from TRINITY.WAD.
page 7
----------------------------------------
D) Recomposing TRINITY.WAD as TRINIDAD.WAD:
----------------------------------------
rem ***DeuTex****
deutex -doom \doom -dir . -make WADINFO.TXT TRINIDAD.WAD
^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
(a) (b) (c) (d)
(a)---> The same as before.
(b)---> The same as before.
(c)---> This tells DeuTex to create a new PWAD, from the
creation directives contained in WADINFO.TXT.
(d)---> This is the name of the created PWAD.
------------------------
E) Customizing TRINITY.WAD:
------------------------
You can edit WADINFO.TXT, the format is pretty simple to guess.
(see Chapter 8 - FORMATS for a precise definition.)
- A line that begins with a ';' or '#' is a comment. DeuTex ignores it.
- Don't touch any lines with [xxxx] (they are section delimiters).
Lets look at the [SOUNDS] section:
[SOUNDS]
D_E1M1
This tells DeuTex to go into the \SOUNDS subdirectory and get a file
called D_E1M1.MUS, which is the music of TRINITY.WAD. You might
wish to delete this D_E1M1 if your soundcard crashes while playing
trinity.
You can add your own music, for Episode 1 Mission 2 by editing:
[SOUNDS]
D_E1M1
D_E1M2
Of course, the file D_E1M2.MUS must exist... You can generate it
from D_E1M2.MID (MIDI format) by using MIDI2MUS.
BEWARE: DeuTex is NOT fool proof yet. It should not crash your
computer, but the generated PWAD may crash DOOM if you make
mistakes. I'm very sorry for this, but I have more urgent
optimizations to do than foolproofing. However, the PWAD
generated here should not crash DOOM, if you use the real
TRINITY.WAD as a basis.
page 8
CHAPTER 3
************************** WORKING WITH WADS **************************
------------
A) INTRODUCTION
------------
Read the DOOM SPECS:
Sorry. This is still unavoidable, because of the various tricks and
limits of DOOM. If you have a problem, there is a VERY GOOD chance
it's referred to somewhere in Matt Fell's SPECS.
NOTE: In the following discussion, avoid these common mistakes:
Hall of Mirrors with new Textures:
First, create your Level.
Then, build the nodes and reject.
Then add the new Textures.
Why? We don't know. leonardc@halcyon.com reported he saw a hall of
mirrors with old versions of DeuTex that didn't first load the old DOOM
Textures. It seems to be a problem with the node builders.
Tutti Frutti and Medusa Effect:
See the DOOM specs, and Chapter 8 - FORMATS.
If DOOM attempts to display part of a Texture not covered by a Patch,
you'll see some ugly garbage (usually has pinks and greens, thus 'Tutti
Frutti'). The same thing happens if you use more than one Patch on a
Texture with transparent areas, or walls with see-thru portions on upper
or lower Textures. If the area is big enough, it will slow the display
to a crawl ('Medusa Effect' - Looks like snakes and turns you to stone).
Doom reports a void column and exits:
One of your Textures has a column with no Patches. Use DeuTex -check on
a PWAD before running DOOM. It reports Textures that have void columns.
Other bugs:
Mail me a description of the bug, together with any configuration
files. Don't expect a quick answer, though.
-----------------------
B) How to decompose a PWAD
-----------------------
First check that all the entries are identified correctly:
DEUTEX -wadir NEWBIE.WAD This will list the directory.
Then try:
DEUTEX -unused NEWBIE.WAD This will tell you if there is any wasted
data in the PWAD. It's always funny to see
how DMGRAPH and DMAUD waste *some* data.
This won't tell you about any data wasted
by incorrect entry formats, though.
page 9
To extract all the entries:
DEUTEX -xtract NEWBIE.WAD The whole directory structure is extracted
to subdirectories. WADINFO.TXT is created
in the working directory. TEXTURE1.TXT is
created in the \TEXTURES subdirectory.
To extract only a part of the directory; Sounds, for instance:
DEUTEX -sound -xtract NEWBIE.WAD Only the Sounds are extracted and
placed in the \SOUNDS subdirectory,
which is created if it doesn't exist.
NOTE: Some PWAD creators declare Patches, Flats and Sprites outside of
the normal boundaries. In that case, DeuTex may not identify them
correctly. They'll end up in either the \LUMPS subdirectory in raw
(.LMP) format, or the \GRAPHICS subdirectory (.BMP). Care has been
taken to handle the most common situations, and this almost never
happens in fact, but there is no general solution. You may have to
check that all entries have been properly identified.
Once you have decomposed a PWAD, you can rebuild it with:
DEUTEX -make WADINFO.TXT NEWBIE.WAD
WADINFO.TXT already exists, because it was automatically created during
the extraction of NEWBIE.WAD (cool, no?). Make sure you delete or move
the previous version of NEWBIE.WAD before you remake it, because DeuTex
will not overwrite your files (you might not like it :-]).
NOTE: DEUTEX puts a signature in the first few bytes of a created PWAD,
to identify which version of DEUTEX was used.
--------------------------------------
C) How to create a PWAD with new Textures
--------------------------------------
+ First list DOOM's Textures, as a reference:
+
+ DEUTEX -dmtexture
+
+ This will extract all the Textures from the main IWAD. They will be
+ written to OLDTEX1.TXT (and OLDTEX2.TXT for DOOM1 only). These text
+ files will be placed in the subdirectory \TEXTURES, which will be
+ created if it doesn't exist. These files make it easy for you to
+ redefine existing Textures by cutting them out and pasting them into
+ YOUR Texture definition file. For DeuTex 3.1 and above, they serve no
+ other purpose. You can delete what's left of them when you're
+ finished.
+
+ To create a new Texture, define it in a Texture file you create (e.g.
+ TEXTURE1.TXT). TEXTUR1.TXT can have any name but TEXTURE1.TXT is
+ prefered. You can use as many Texture files as you like, as long
+ as they're declared in WADINFO.TXT. Place your file(s) in the
+ \TEXTURES subdirectory. To redefine an existing Texture, just cut the
+ desired Texture out of OLDTEX1.TXT or OLDTEX2.TXT (DOOM1 only).
+ Paste them into TEXTURE1.TXT. Then edit them as you please. You can
+ delete OLDTEX1.TXT and OLDTEX2.TXT when you're finished.
+
page 10
+ NOTE: For DOOM1 only, use one file for redefined Textures from
+ OLDTEX1.TXT, and another file for redefined Textures from
+ OLDTEX2.TXT. In DeuTex v3.1, WADINFO.TXT uses a second Tex-
+ ture section called [TEXTURE2] for redefined OLDTEX2 files.
+
+
+ DeuTex 3.1 doesn't care if OLDTEX1.TXT or OLDTEX2.TXT exist.
+ DeuTex 2.x used to require that all the old textures be present,
+ but now DeuTex 3.1 first read the internal DOOM texture definitions,
+ then reads the file you tell it to read, for new definitions.
+ If you mistakenly define the same Texture in multiple files,
+ only the last declared version will be used. Of course, that means
+ that if you redefine a DOOM texture your version will be used.
+
Declare TEXTURE1 in the [TEXTURE1] section of WADINFO.TXT.
Then build your PWAD:
DEUTEX -make WADINFO.TXT NEWBIE.WAD
At this point, it would be a good idea to
check your new PWAD for Texture errors:
DEUTEX -check NEWBIE.WAD
-----------------------------------------------
D) How to create a PWAD with new Sprites and Flats
-----------------------------------------------
******** 1) Sprite and Flat REPLACEMENT
BEWARE: Sprite replacement is tricky. If some needed sprites are
missing DOOM will lock up. Check your work often.
Put your Sprite files in \SPRITES in .GIF or .BMP format.
Put your Flat files in \FLATS in .GIF or .BMP format.
Declare your Sprite NAMES in the [SPRITES] section of WADINFO.TXT.
Declare your Flat NAMES in the [FLATS] section of WADINFO.TXT.
Use only the NAME in WADINFO.TXT, without the .GIF or .BMP extension.
+
+ NEW! in DeuTex 3.1:
+ The '=' label lets your Sprites keep the names YOU have given
+ them. It tells WADINFO.TXT what DOOM Sprite you mean to replace.
+ This enables you to name your sprite files as you damn wish.
+
If you want to replace *ALL* of the Sprites and Flats in DOOM (crazy):
DEUTEX -iwad -make WADINFO.TXT NEWBIE.WAD
NEWBIE.WAD will be directly usable by DOOM.
Remember: replacing only part of the Sprites and Flats mean you'll
need DeuSF to install your PWAD, but it will be compatible with ALL
versions of DOOM and DOOM2. Redefining all the Sprites is not a good
idea unless you really mean it.
page 11
To replace *SOME* of the Sprites and/or Flats in DOOM (better):
DEUTEX -make WADINFO.TXT NEWBIE.WAD
This NEWBIE.WAD will be much smaller and easier to distribute.
BUT: This NEWBIE.WAD will cause DOOM to lock up when it starts!(bad)
So, if you want to replace only *SOME* of the Sprites and Flats in
DOOM, you have 3 choices:
DEUTEX -merge NEWBIE.WAD Modifies DOOM.WAD or DOOM2.WAD.
(Safe, fast, and small)
DEUSF -append NEWBIE.WAD Modifies NEWBIE.WAD.
(Safer, still fast, wastes some space)
DEUSF -add NEWBIE.WAD NEWBIE2.WAD Creates NEWBIE2.WAD.
(Safest, not slow, more space wasted)
+
+ NEW! To merge two PWADS that both redefine Sprites and/or Flats:
+
+ DEUSF -join FIRST.WAD SECOND.WAD (FIRST.WAD now contains both wads)
NOTE: The steps above are performed at the end users' site, preferably
from a batch file supplied with your PWAD. This means the user
must have DeuSF, which can be distributed freely with your PWAD,
or DeuTex, which has some restrictions on distribution. See the
License Agreement at the end of this manual for the restrictions
on distributing DeuTex.
The -sprite command is used to add only Sprites, ignoring the Flats:
DEUSF -sprite -app NEWBIE.WAD
The -flat command is used to add only Flats, without the Sprites:
DEUSF -flat -add NEWBIE.WAD NEWBIE2.WAD
+ ******** 2) HOW to ADD or REMOVE SPRITE VIEWPOINTS
+
+ DeuTex allows you to alter the number of viewpoints a Sprite displays
+ in your PWAD. DOOM.EXE predetermines the 'behavior' of a given sprite
+ name, but it doesn't predetermine the number of viewpoints. A sprite
+ MUST, however, always have either ONE viewpoint or EIGHT viewpoints.
+ Viewpoints are numbered as follows:
+
+ Front
+
+ 1
+ 2 | 8
+ \____|____/
+ | |
+ 3 -- | SPRITE | -- 7
+ |_________|
+ / | \
+ 4 | 6
+ 5
page 12
+ The FULL NAME of the Sprite determines the viewpoint of that Sprite:
+
+ BAR1A2.bmp
+ \ /| \________________
+ \/ | \
+ ________________/ | The last number is the viewpoint. A
+ / | zero here means the Sprite has only
+ The first four letters are the | one viewpoint. If not zero, there
+ Sprite Name as recognized by | MUST be 8 files for each 'frame' of
+ DOOM.EXE. They are the same for | the Sprite.
+ all entries of a given Sprite. |
+ |
+ This is the 'frame' number of the Sprite. Animated
+ Sprites will have consecutive letters here for each
+ frame (A is frame one, B is frame two, etc.). DOOM.EXE
+ predetermines how many frames a Sprite uses, so you can
+ not animate an electrical column, for instance.
+
+ Sometimes, you will see a Sprite entry that has 2 viewpoints in one
+ Sprite, like BOSSA2A8. This means that the same Graphic is used for
+ viewpoints A2 and A8 (front-left and front-right). When DOOM sees
+ this, it uses the Graphic as is for A2, and mirrors it for A8.
+
+ In the above example BAR1 is the Barrel Sprite. DOOM does a 2 frame
+ animation on barrels (the slime flickers), so the whole entry is:
+
+ BAR1A0
+ BAR1B0
+
+ This disregards the explosion (BEXP) Sprite
+ that is used when you shoot a Barrel.
+
+ If you want to change the Barrel Sprite to an 8 viewpoint
+ Sprite, you will need to create 16 Graphics:
+
+ BAR1A1
+ BAR1B1
+ BAR1A2
+ BAR1B2
+ BAR1A3
+ BAR1B3
+ BAR1A4
+ BAR1B4
+ BAR1A5
+ BAR1B5
+ BAR1A6
+ BAR1B6
+ BAR1A7
+ BAR1B7
+ BAR1A8
+ BAR1B8
+
+ This gives you 8 viewpoints for EACH frame of the animation. If you
+ only replaced BAR1A1 thru 8, you would see your new Graphic flash to a
+ barrel a couple of times a second, because you didn't replace the 2nd
+ frame. If you add a 3rd frame (BAR1C1 etc.), it will be ignored by
+ DOOM because DOOM.EXE already knows a barrel has only 2 frames.
page 13
+ Alternatively, you could take an Imp and give it only 1 viewpoint by
+ taking only one of the views for each animation frame and naming it
+ TROOA0.bmp (with the correct letter for the frame you're using). The
+ Sprite will look kind of funny moving around, since it will only face
+ one direction the whole time.
----------------------------------
E) How to create PWAD with new Sounds
----------------------------------
First put your Sound files in the .\SOUNDS directory.
Then, declare the Sound NAMES in the [SOUNDS] section of WADINFO.TXT.
See APPENDIX IV for a listing of the Sound names recognized by DOOM.
Then build your PWAD:
DEUTEX -make WADINFO.TXT NEWBIE.WAD
Easy enough?
Sound effects: [DSxxxxxx.WAV or DSxxxxxx.AU]
Must be in WAV or AUDIO format (SUN). Make sure the format is *not*
compressed and does *not* contain comments. My code is pretty basic,
because I never had the specs of those formats. All is hacked.
PC speaker Sounds: [DPxxxxxx.TXT]
Text files containing a list of numbers from 1-255.
Music: [D_xxxxxx.MUS]
Must be in MUS format. Convert MIDI files to MUS files by using
the enclosed MIDI2MUS.EXE (thanks to -dtt-> of ID software).
+ NEW! in DeuTex 3.1:
+ The '=' label lets your Sounds keep the names YOU have
+ given them. It tells WADINFO.TXT what DOOM Sound you
+ mean to replace. This will make your life easier.
page 14
CHAPTER 4
************************** Visual Basic Shell **************************
-------------------------------------
Vbdeutex.exe
This is the windows shell for DeuTex.
1.3 Alpha test version.
-------------------------------------
This is an attempt to provide a cool interface for DeuTex.
However, Visual Basic is slow, and Windows is very difficult to program
(not really complex, but real bug ridden) so don't expect miracles.
A file vbdeutex.ini contains parameter for VbDeuTex. This file will
appear in your windows directory. It defines which level editor, node
builder, reject builder, Bitmap editor, Text editor you want to use.
You need VBRUN300.DLL in your windows/system directory, of course.
All external programs, and deutex among them, shall have a .pif file
defined. deutex.pif shall call your own version of deutex, exit once
finished, run in background, as a minimised windows.
Due to a problem with MS windows programming, I'm unable to create a
WAD entry browser. To understand why a FAR pointer points at random
places in memory is beyond my intellectual capacities.
So Texture composition is a real pain: you must first extract all
the patches in DOOM together with the OLDTEX1 and OLDTEX2 entries
(Use command buttons "old textures" and "old patches")
There is no manual to VbDeuTex. No time to write one, as the product is
constantly under change. You shall be clever enough to guess what it does.
The main window is the only one that calls deutex.
The other windows are edition windows, and call external utilities.
All you can do with VbDeuTex, you can do with DeuTex, only the presentation
is a little better.
When extracting and composing PWADs, you can select which entry types are
concerned by using the check boxes in front of each entry type.
For instance, to extract only levels, check the "levels" check box, and
don't check the others.
As a security, you can affect the DOOM and DeuTex DATA directories only
if the corresponding locks are unckecked (and then, the corresponding
directory becomes red, as a warning).
page 15
-----------------------------
*** [PART TWO] DETAILS, DETAILS ***
-----------------------------
CHAPTER 5
************************* DIRECTORY STRUCTURE *************************
DeuTex uses the following directory structure to store DOOM entries.
First create a directory (call it MYWADIR or whatever) for your PWAD.
Make sure DeuTex is on your path, or put a copy of it in MYWADIR. Put
a copy of the PWAD you are working on (MYWAD.WAD) in MYWADIR.
Type: DeuTex -xtract mywad.wad
DeuTex will automatically create the appropriate subdirectories and put
all the WAD's entries in the proper place. It will also create a file
named WADINFO.TXT in MYWADIR. If your PWAD is a bare map Level with no
additions yet, you should get something like:
\MYWADIR\--------mywad.wad
| wadinfo.txt
| DeuTex.exe (optional, if not on your path)
|_
\LEVELS\------ExMx.wad
Note that DeuTex will not OVERWRITE any existing files. In the example
above, if you type DeuTex -xtract AGAIN, you will get an error message
telling you the files already exist. You have to delete wadinfo.txt and
ExMx.wad (or move them somewhere else) for xtract to work again. If you
lose something you wanted to keep, don't blame DeuTex, it's innocent!
+
+ Now type : DeuTex <-doom doom directory> -dmtextures
+
DeuTex will read the Textures from DOOM.WAD or DOOM2.WAD, list them in
a file called OLDTEX1.TXT (and OLDTEX2.TXT for DOOM 1) and store them
in a directory called \TEXTURES, which it will create if it doesn't
exist.
NOTE: The <-doom doom directory> command is optional. Take a look at
Chapter 6 - DEUTEX COMMANDS for a more complete description of
when you should use it.
Your working directory should now look like this:
\MYWADIR\-----mywad.wad
| wadinfo.txt
| DeuTex (optional)
|_
| \LEVELS\----ExMx.wad
|_
\TEXTURES\---oldtex1.txt
oldtex2.txt
If your PWAD had any other resources (Sprites, Flats, Sounds, etc.) in
it and you used DeuTex -xtract, it would extract those resources, too.
Then it would create the proper directory and store them in it.
page 16
If you want to add something to your PWAD, put it in the proper
subdirectory (create it if it's not there), and tell wadinfo.txt about
it. Chapter 8 - FORMATS describes wadinfo.txt in detail.
Then type: DeuTex -make wadinfo.txt mywad.wad
DeuTex will read wadinfo.txt and go get all the resources it asks for
from the directories. Then it will create mywad.wad from them. Note
that if you create a PWAD from the above example, it won't be any
different than what you started out with! You need to put some
ingredients into the mix before you see any results. THAT's what the
other directories are for.
Again note that DeuTex won't overwrite mywad.wad if it exists. Since
most of the stuff you'll do with DeuTex will be from a batch file, have
it handle your housekeeping whatever way you like. Something like the
following works pretty well:
del mywad.wad
DeuTex -make wadinfo.txt mywad.wad
copy C:\DOOM\WADS\mywad.wad mywad.bak
copy mywad.wad C:\DOOM\WADS\mywad.wad
This way, if you find out you've really screwed things up when you test
your PWAD, there's always a copy of the previous version to use.
DEUTEX SUBDIRECTORIES:
--------
A) \LEVELS
--------
'Bare' PWADS go here! A bare PWAD is one that you have edited and
constructed the nodes, reject, and blockmap. The PWAD will then
contain only the following 11 entries in IT'S directory: ExMx(MAPxx),
THINGS, LINEDEFS, SIDEDEFS, VERTEXES, SEGS, SSECTORS, NODES, SECTORS,
REJECT, and BLOCKMAP.
BEWARE: BLOCKMAP REJECT SSECTOR SEGS are not optional! they must have
been generated by your Level editor (along with BSP, IDBSP,
REJECT, RMB, whatever).
+ THE FILES PUT HERE MUST BE DECLARED IN THE [LEVELS] SECTION OF
+ WADINFO.TXT. ALL FILES MUST BE IN THE FORM ExMx.WAD OR MAPxx.WAD OR
+ EQUATED TO ExMx or MAPxx in WADINFO.TXT.
+
+ Suppose you have edited two Levels named PLAGUE.WAD and E3M4.WAD. You
+ want the combined PWAD to replace E1M2 and E3M4 in DOOM.WAD. You would
+ edit the [LEVELS] section of WADINFO.TXT to read:
+
+ [LEVELS]
+ E1M2 =PLAGUE
+ E3M4
+
+ This tells DeuTex to look in the LEVELS\ subdirectory for PLAGUE.WAD
+ and E3M4.WAD and to combine them in the final PWAD as E1M2 and E3M4.
page 17
-------
B) \LUMPS
-------
Lumps are raw data for DOOM with the extension .LMP. If you have
edited or created any of them for your PWAD, put them here. The
following files are the LMPs used by DOOM. You can insert something
else if you like, and DOOM will ignore it. It's a mystery why anyone
would do this, but WAD builders are a mysterious bunch!
*********************** Lumps recognized by DOOM **********************
PLAYPAL.LMP Color PALETTES (14 of them consisting of 256 RGB triplets
each - 768 bytes/palette). The first one contains the
normal DOOM colors. The others temporarily 'tint' the
screen colors for different events in DOOM. (Item pickup,
Hurt and Berserk Reds, Radsuit Green etc...)
COLORMAP.LMP Color MAPS. There are 34 of these,consisting of
256 bytes each. These are NOT RGB triplets. They map
whatever PLAYPAL currently being displayed by DOOM to
darker colors corresponding to the light level in a
sector. These mapped colors are what you see on the
screen. The first map (map 0) corresponds to a light
level of 247-255, and doesn't change the display at all.
The 32nd map (map 31) corresponds to a light level of 0-7
and maps almost all colors to the darkest one in the
presently use PLAYPAL. Map 32 makes everything black and
white for 'invulnerability'. Map 33 is all zeros.
ENDDOOM.LMP Text displayed when leaving DOOM. Use A program
like TED or ENDOOMER to edit this text.
(DO NOT REMOVE THE ID COPYRIGHT!)
DEMO1.LMP / Demos recorded by DOOM.
DEMO2.LMP < e.g. DOOM -record DEMO2 -file MYWAD.WAD
DEMO3.LMP \ Then move DEMO2.LMP here, and that's all!
DMXGUS.LMP (DOOM1) / Text file remapping MIDI instruments
DMXGUSC.LMP (DOOM2) \ for the Gravis Ultra Sound card.
GENMIDI Instrument mapping for GENMIDI compatible cards.
***********************************************************************
Suppose you have edited ENDOOM.LMP and recorded a new DEMO1.LMP for
your PWAD. Just put copies of them here, and declare them in the [LUMPS]
section of WADINFO.TXT like this:
+
+ [LUMPS]
+ ENDOOM
+ DEMO1
+
This tells DeuTex to look here for ENDOOM.LMP and DEMO1.LMP
page 18
+ ----------
+ C) \TEXTURES
+ ----------
+
+ NOTE: DOOM1 contains 2 Texture entries, TEXTURE1 and TEXTURE2. This
+ is because of differences between the shareware and registered
+ versions. If you are using DeuTex with DOOM2, just ignore any
+ references to TEXTURE2. It doesn't exist in DOOM2.WAD.
+
+ This subdirectory contains a text file(s) describing the Texture
+ changes you want in your PWAD (Chapter 8 describes Texture definition
+ files). Your file can be given any name you want (prefer TEXTURE1.TXT
+ or TEXTURE2.TXT). This name (without extension) is then entered in the
+ [TEXTURE1] section of WADINFO.TXT.
+
+ FILES PUT HERE HAVE THE EXTENSION (.TXT). THE TITLE OF ANY FILE PUT
+ HERE MUST BE DECLARED IN THE [TEXTURE1] SECTION OF WADINFO.TXT.
+
+ The file names OLDTEX1.TXT and OLDTEX2.TXT are reserved. Due to an
+ amazing bug (in DOOM?), if DOOM's Texture list contains any new or
+ redefined Textures before all the UNCHANGED Textures are listed, it
+ produces HOM (Hall of Mirrors) errors. Previous versions of DeuTex
+ dealt with this problem by requiring a copy of TEXTURE1.TXT (with any
+ redefined Textures deleted) here in the \TEXTURES subdirectory. This
+ is no longer necessary with version 3.1. DeuTex now reads the original
+ TEXTURE1 from the main IWAD while creating your PWAD. It then reads
+ your new Textures and automatically sorts , deletes, and combines all
+ entries. Olivier's too good to you guys >;-]
+
+ EXAMPLES:
+
+ If you want to add ONLY new Textures:
+
+ - Put your definition file here (e.g. TEXTURE1.TXT), and declare
+ TEXTURE1 in the [TEXTURE1] section of (WADINFO.TXT).
+
+ If you want to redefine Textures in TEXTURE1:
+
+ - Run DeuTex -dmtextures to get the Textures.
+ - Cut the Textures to be redefined from OLDTEX1.TXT and paste
+ them into TEXTURE1.TXT. Edit them or change them as you wish.
+ - You can delete OLDTEX2.TXT and OLDTEX1.TXT now if you want.
+ - Declare TEXTURE1 in the [TEXTURE1] section of WADINFO.TXT.
+
+ If you want to redefine Textures in TEXTURE2:
+
+ - Run DeuTex -dmtextures to get the Textures.
+ - Cut the Textures to redefine out of OLDTEX2.TXT and put
+ them in TEXTURE2.TXT. Edit and change them as you wish.
+ - You can delete OLDTEX1.TXT and OLDTEX2.TXT now if you want.
+ - Declare TEXTURE2 in the [TEXTURE2] section of WADINFO.TXT.
APPENDICES I and II contain lists of the animated and switch Textures
from DOOM.WAD (Not the new ones from DOOM2, sorry. Use DeuTex to make
your own list). Copy the portion you want to edit into TEXTURE1.TXT.
It's a little easier than hunting through the entire OLDTEX1.TXT files.
Beware: some textures change a lot, between DOOM and DOOM2.
page 19
--------
D) \SOUNDS
--------
+ Put your new Sound files here in the correct format. They must have
+ the same name as the Sound you want to replace (Appendix IV lists the
+ Sound names used in DOOM1 and DOOM2. It also lists the Sound names for
+ each DMAUD Sound number). Put the Sound NAME (no extension) in the
+ [SOUNDS] section of WADINFO.TXT.
DeuTex uses the following formats for DOOM Sound files:
MUSIC: (D_xxxxxx.MUS) for DOOM/DOOM2
(MUS_xxxx.MUS) for HERETIC
MUS format (RAW format, which can be created from MIDI
files with MIDI2MUS.EXE, provided by ddt).
SOUNDCARD SOUND EFFECTS: (DSxxxxxx.WAV) for DOOM/DOOM2
(xxxxxxx.wav) for HERETIC
Windows WAVE file (.WAV). Use a converter if you prefer .AU.
Preferably use 11025 sample/second for your recording.
VOC format is supported only for 11025 sample/s (DeuTex can't convert).
PC-SPEAKER: (DPxxxxxx.TXT) only for DOOM
Text files (.TXT) with numbers 0-255
WARNING: DeuTex assumes that any file name beginning with:
'D_' or 'MUS_' is music.
'DS' is soundcard sound effect.
'DP' is PC speaker sound effect.
+ Suppose you've created new music for Level E1M5 called D_E1M5.MUS. You
+ also want to replace DSSHOTGN with a your file called PTOOEY.WAV. You
+ would put the files here and edit your WADINFO.TXT as follows:
+
+ [SOUNDS]
+ D_E1M5
+ DSSHOTGN =PTOOEY
+
+ This tells DeuTex to look here for D_E1M5.MUS and PTOOEY.WAV.
+ It will replace the Sound DSSHOTGN with PTOOEY.WAV
----------
E) \GRAPHICS
----------
For DOOM pictures other than Sprites, Flats or Textures. Put the
changed Graphic FILE here in .BMP or .GIF format, and enter the NAME
(without extension) in the [GRAPHICS] section of WADINFO.TXT.
Suppose you have created a new TITLEPIC.BMP, and want SURRENDR.BMP to
replace VICTORY2. Just put the files here and declare them in the
[GRAPHICS] part of WADINFO.TXT, like:
+
+ [GRAPHICS]
+ TITLEPIC
+ VICTORY2 = SURRENDR
+
+ DeuTex will look here for TITLEPIC.BMP and SURRENDR.BMP (or .GIF).
+ It will use SURRENDR.BMP for VICTORY2.
page 20
************ Some examples of Graphic entries in DOOM.WAD *************
HELP1 The HELP screen for DOOM 1.666.
HELP2 Second HELP screen for DOOM 1.666.
HELP The HELP screen for DOOM 2.
TITLEPIC The title pic for Doom (320 x 200).
CREDIT The credits for DOOM (Don't touch!).
VICTORY2 The background of the victory scenes.
STCFNxx The fonts for DOOM.
STxxxxx Description of the status bar.
M_xxxxx Description of the menus.
You can read Matt Fell's DOOMSPEC for other entries, or extract
them for yourself with DeuTex -graphic -xtract DOOM.WAD.
---------
F) \SPRITES
---------
Put your new Sprites here in (.BMP) or (.GIF) format.
WARNING: DOOM WILL LOCK UP IF YOU ATTEMPT TO REPLACE ONLY SOME OF THE
EXISTING SPRITES! Either replace all the Sprites with DEUTEX
-iwad -make or replace only some of the Sprites and use DEUSF
-add, DEUSF -append or DEUTEX -merge.
+ Suppose you want to redefine SPOSA1 and TROOB2. You want to replace
+ them with SPOSA1.GIF and LIZARD.BMP. Put the files here, and then
+ declare them in the [SPRITES] section of WADINFO.TXT, like:
+
+ [SPRITES]
+ SPOSA1
+ TROOB2 =LIZARD
+
+ DeuTex will look here for SPOSA1.BMP (or .GIF) and LIZARD.BMP.
-------
G) \FLATS
-------
For new floors and ceilings as 64x64 (.BMP) or (.GIF) files.
WARNING: TO USE YOUR NEW FLATS, YOU MUST MERGE YOUR PWAD WITH THE MAIN
IWAD, OR USE DEUSF TO PUT ALL THE IWAD FLATS INTO YOUR PWAD.
Sorry, but this is a limitation of DOOM, not of DeuTex. Flats inserted
here will not crash DOOM when the PWAD is run because I don't use the
regular F_START F_END delimiters that confuse DOOM. Your PWAD *WILL*
fail when it references those Flats, so heed the warning above.
+ Suppose you want MUDDY.BMP as a new Flat, and HATCH.GIF to replace
+ FLOOR1_7. Put the FILES here, and declare them in WADINFO.TXT, like:
+
+ [FLATS]
+ MUDDY
+ FLOOR1_7 =HATCH
+
+ DeuTex will look here for MUDDY.BMP and HATCH.BMP (Then HATCH.GIF),
+ and replace FLOOR1_7 with HATCH.GIF. BUT, SEE WARNING ABOVE!
page 21
---------
H) \PATCHES
---------
Put new Patches here as (.BMP) or (.GIF). DeuTex will load ANY Patches
that have the same name as an existing Patch. They don't have to be
mentioned in MYTEXT.TXT. If you want the man in the danger symbol to be
a woman, edit the Patch, and throw it in here (use the same name). You
don't need to redefine all the Textures that contain it.
WADINFO.TXT contains NO [PATCHES] section. The Texture definition file
in \TEXTURES describes what Patches go in your new Textures. When DeuTex
reads WADINFO.TXT, it finds the name of your Texture definition file in
the [TEXTURE1] section (e.g. TEXTURE1). It finds the file TEXTURE1.TXT
in \TEXTURES and looks here for any Patches mentioned. Then it looks in
\PATCHES for pictures defining the patches.
If you declare a NEW or MODIFIED Patch in TEXTURE1.TXT,
there MUST be a corresponding .BMP or .GIF file in \PATCHES
EXAMPLE:
Suppose you want to create a new Texture called MYDOOR, which contains
two new Patches called WOODEN0 and KNOB0, and a modified WARNA0 Patch.
The new Texture also contains the existing EXIT1 Patch.
FIRST: Put WOODEN0.BMP, KNOB0.GIF, and WARNA0.BMP here.
THEN: Define your new Texture in TEXTURE1.TXT as shown below:
MYDOOR 256 128 ; a 256x128 wall with ...
* WOODEN0 0 0 ; a 256x128 background
* KNOB0 64 100 ; and a small knob at (64,100)
* WARNA0 128 12 ; a lite at top/center
* EXIT1 128 32 ; the word exit in the center
THEN: Put TEXTURE1.TXT in the \TEXTURES subdirectory.
THEN: Tell WADINFO.TXT that TEXTURE1.TXT is the file containing new or
modified Textures by declaring it in the [TEXTURE1] section:
[TEXTURE1]
TEXTURE1
DeuTex will read TEXTURE1.TXT from \TEXTURES. TEXTURE1.TXT tells DeuTex
that a new texure called MYDOOR is 256 pixels wide, and 128 pixels high.
The asterisks tell DeuTex to look here for the Patches WOODEN0.BMP,
KNOB0.BMP, WARNA0.BMP and EXIT1.BMP. The numbers tell it where the
Patches go on MYDOOR. Note that WOODEN0 had better be 256x128 or bigger,
or there will be at least one void column, and DOOM will complain and
stop. If an existing Patch is called for, and no entry by that name
exists here, the old Patch will be used.
NOTE:
DeuTex automatically looks here for ALL Patches mentioned in the
generated TEXTURE entry. Normally it will check \PATCHES for all kind
of patches, new patches or patches redefining DOOM patches.
However, should DeuTex fail to recognise your modifed DOOM patches,
put this unrecognised patch in \GRAPHICS and declare it explicitly
in the [GRAPHICS] section of WADINFO.TXT.(The new version of DeuTex
never demonstrated such a bug, but you never knows, with DOS.)
page 22
CHAPTER 6
*************************** DeuTex Commands ***************************
--------------------------
A) COMPLETE COMMAND REFERENCE
--------------------------
Actually it's not complete, but those commands not mentioned here
are for the Visual Basic Shell, and you'll never use them. Commands
with an '*' are not implemented in the VB version. I forgot them.
All optional commands must appear before non-optional ones or else
they will be ignored.
The Command Line Format is:
DEUTEX <-optional cmd.> ,..., <-non-optional cmd.>,...,etc.
-------------
B) HELP COMMANDS
-------------
-help* This one won't help you a lot, but it
will give you the parameters.
-syntax* Prints a short listing of the format of WAD creation
directives (wadinfo.txt). See the FORMATS Chapter in
this manual for a more complete explanation.
-----------------
C) OPTIONAL COMMANDS
-----------------
-doom <doom directory>
Use this command to indicate the directory containing
DOOM.WAD and DOOM.EXE or DOOM2.WAD and DOOM2.EXE.
If this command is not used, DeuTex looks first in the
current directory for DOOM. Then it looks in the current
directory for DOOM2. Then it looks in the root directory of
the current drive for a directory called DOOM, and finally
looks in the root directory of the current drive for a
directory called DOOM2. The first DOOM it finds is used.
EXAMPLE: DEUTEX -doom C:\GAMES\DOOM
-dir <working directory>
DEFAULT IS: CURRENT DIRECTORY. This defines the working
directory, into which you or DeuTex will put the WAD
creation directives (WADINFO.TXT). All subdirectories
containing PWAD parts will branch from here. The completely
assembled PWAD will also reside here.
-deu* Use this if you want DeuTex to add 64K of junk at the end
of your PWAD. Why? To compensate for a bug in DEU 5.21,
that makes it sometimes crash when viewing pictures.
That bug is corrected in DEU 5.3.
page 23
+ -rgb <R> <G> <B>
+
+ Let's you pick what *exact* color DeuTex will use for DOOM's
+ transparent color. The default is CYAN(R=0, G=255, B=255).
+
+ EXPLANATION:
+ DOOM allows transparent areas in textures. Although there
+ are 256 colors in the DOOM palette, only 255 of them act
+ as colors. Color number 247 (CYAN R=0 G=255 B=255) is used
+ by DOOM as a 'switch' to make that pixel invisible.
+
+ When DeuTex imports your new graphics into a PWAD, it must
+ assign each pixel one of the DOOM colors. For most of the
+ 16 million colors possible in an RGB format such as .BMP
+ and .GIF, it is just a matter of finding the most appro-
+ priate colors in the DOOM palette to map to your graphic.
+ However, CYAN is more of a 'switch' than a color.It wouldn't
+ be appropriate for DeuTex to say "anything CLOSE to CYAN is
+ transparent". That would be like saying "anything close to
+ LINEDEF type 39 is a teleport". Transparency is a switch,
+ and has to be exact.
+
+ Some graphics programs may not be able to meet this re-
+ quirement. For example, some programs limit you to 64 (0-63)
+ increments each in Red, Green and Blue. They multiply the
+ result by 4 to get the true RGB value. This is fine for most
+ purposes, but not for DOOM.
+
+ In any such program, the closest you can get to CYAN is,
+ 0 for Red, 63 for Blue and 63 for Green. When multiplied
+ to get a true RGB value, this becomes R=0, G=252,B=252.
+ You couldn't tell the difference by looking, but DeuTex can.
+ It will take this value and say "Hmmm... Light Blue". Your
+ graphic will be disappointing when you see it in DOOM :-<
+ -rgb 0 252 252 will make you smile again :-)
+
+ Another example of when you might want to use this command
+ is if you use a raytracer to create your graphics. Most of
+ these programs render the background as black. If you use
+ the option -rgb 0 0 0, things will be much easier.
-bmp File format to use when EXTRACTING pictures. DeuTex will
-gif recognize either one when STORING pictures in a PWAD. The
+ -ppm DOS version defaults to .BMP; the UNIX version defaults to
.GIF. Avoid the 24bit BMP format! Use 8bit (256 color) and
have the color quantization done by a serious program. Mine
works if you need it, but it's lame. See "What are the
Palettes For?" in Chapter 1.
-wave File format to use when EXTRACTING Sounds (DeuTex will
-au recognize either one when INSERTING Sounds). The DOS
+ -voc version defaults to .WAV; the UNIX version defaults to .AU.
-fullsnd* If the real size of the Sound entry is larger than the
declared Sound length, -fullsnd enables you to extract
the complete Sound entry. It's almost never needed.
page 24
+ -level These tell DeuTex to select Sprites, Patches, Sounds, etc.
+ -lump when composing/decomposing/merging PWADS. These commands
+ -texture can be combined. By default, all entries are selected.
+ -sound
+ -graphic
+ -sprite
+ -patch
+ -flat
-iwad To be used with -make, this command makes an IWAD instead
of a PWAD. This is necessary if you are building a PWAD
which contains all the Sprites and/or all the Flats. This
enables you to rebuild the DOOM.WAD if really needed.
--------------------------------------
D) COMMANDS TO COMPOSE OR DECOMPOSE PWADS
--------------------------------------
-wadir <thatcool.wad>
Directory list, with entry identification. Exact
entry identification is sometimes impossible in a
PWAD. In that case, Sprites, Flats or Patches might
be reported as Graphics.
-xtract <thatcool.wad>
-extract <thatcool.wad>
Will extract Lumps, Graphics, Flats, Patches, Sprites,
Sounds and Levels from a WAD and put them into a sub-
directory having the same name (all .LMPs in \LUMPS, etc).
Also lists any Texture entries of the WAD in a file called
TEXTURE1.TXT, which it puts in a subdirectory called
\TEXTURES. If you are extracting the main DOOM1 WAD, a
second Texture file, TEXTURE2.TXT will be extracted. DOOM2
does not have a TEXTURE2 entry. If a given subdirectory
does not exist, it will be created. Also creates the file
WADINFO.TXT in the working directory. The working directory
is the directory the command is entered from unless -dir is
used to specify one. See the Chapter 8 - FORMATS for a
description of WADINFO.TXT, TEXTURE1.TXT and TEXTURE2.TXT.
This command will not overwrite already existing entries.
It will complain and stop instead.
+ -dmtextures
+
+ Lists the Textures contained in DOOM.WAD or DOOM2.WAD into
+ text files, TEXTURE1.TXT and TEXTURE2.TXT (TEXTURE2.TXT
+ does not exist in DOOM2). The files are deposited in a sub-
+ directory called \TEXTURES. If \TEXTURES does not exist, it
+ will be created. This command won't overwrite TEXTURE1.TXT
+ or TEXTURE2.TXT if they are already present.
page 25
-make <wadinfo.txt> <myown.wad>
-build <wadinfo.txt> <myown.wad>
-create <wadinfo.txt> <myown.wad>
Reads WADINFO.TXT and uses it to compose MYOWN.WAD from the
files in the subdirectories. See FORMATS for a description
of WADINFO.TXT. MYOWN.WAD will be created in the current
directory. If it already exists, it WON'T be overwritten,
so it must be deleted or moved to create a new version. This
command replaces DMGRAPH, DMMUS, DMTEX and DMAUD. (DMAUD
recognises more formats than .WAV and .AU, but it doesn't
work with DOOM v1.666 or DOOM2).
-check <myown.wad>
Will look for any Textures defined in MYOWN.WAD which contain
void columns that would crash DOOM. Use this after modifying
Textures (Similar to the way you use checks in DEU).
-unused <thatlame.wad>
Checks for unused bytes in a PWAD. Reports all the unused
zones, total number of byte wasted, and the repartition
depending on size of wasted areas.
---------------------------------------------
E) COMMANDS FOR MERGING PWADs INTO THE MAIN IWAD
---------------------------------------------
-merge <myown.wad>
Will put the entries of MYOWN.WAD into the main DOOM.WAD
file, thereby removing all restrictions DOOM puts on PWADS.
This is much safer and much cleaner than inserting or
restoring entries with DMGRAPH or such, but your IWAD IS
modified. Usually used for Sprites and Flats.
-restore Will restore DOOM.WAD and the merged MYOWN.WAD. To be
used after the -merge command, to undo the job. Files are
reconstructed using information stored in the IWAD at the
time the -merge is done.
+ -join These DeuSF commands are also available for DeuTex
+ -app -join merges two PWADs, -app appends Sprite and Flats
+ -add and -add does the same, but in a new PWAD
NOTE ON SAFETY:
- ONLY 8 BYTES of DOOM.WAD are modified
- If all else fails, you can restore your IWAD by hand.
- Only about 32k of additional disk space are needed.
- MYOWN.WAD is put INTACT into DOOM.WAD. It can then be
deleted since -restore recreates it. This is barely a
modification at all!
page 26
How does it work?
- Restoration information is added at the end of the IWAD.
- Then the PWAD is pasted intact at the end of the IWAD.
- The IWAD directory is rebuilt (about 32K) and appended.
- The pointer to the DOOM directory is modified (8 bytes).
I did my best to make this command the safest possible. I have tested
this command thoroughly and believe it can be trusted. Be aware,
however, that the resulting IWAD might not work with DOOM if the
included PWAD does not respect some conventions about Sprites and
Flats. If this happens, the files are still safe, just -restore them.
The conventions a PWAD must follow are:
-There must be F_START or FF_START before the first Flat.
-There must be S_START or SS_START before the first Sprite.
Sorry, but there is NO OTHER WAY if we want to be able to add new
Sprites and Flats that are unreferenced in DOOM.WAD.
It would be vain to compare the sprites names with those of the IWAD,
because it's DOOM.EXE that determines which sprites are which, not
the IWAD. And as DOOM.EXE can be hacked, and sprites vary with versions
of DOOM, there is really no other choice.
page 27
CHAPTER 7
*************************** DeuSF Commands ****************************
--------
A) OVERVIEW
--------
DeuSF is an improved replacement for DMADDS. It adapts to all versions
of DOOM, requires a less perverted PWAD structure, and can append to a
PWAD rather than generating a new PWAD (thereby saving space). DeuSF
works with PWADs composed for DMADDS, and should work for ones composed
for DMADDF. Of course, the PREFERRED PWAD composer for DeuSF is DeuTex!
The code for DeuSF is 80% the same as that of DeuTex. The DeuSF -app
command is just a modified version of the amazing DeuTex -merge command
(the ONLY command that removes ALL PWAD limitations :->)
DeuSF need only be applied to PWADS that contain:
-some Sprites to replace those of DOOM.WAD.
-some Flats to replace those of DOOM.WAD.
DeuSF need NOT be used if:
- the PWAD contains *all* the Sprites of DOOM.WAD
- the PWAD contains *all* the Flats of DOOM.WAD
- the PWAD contains Sprites which are not referenced in
DOOM.EXE. (a DeHacked patch is needed to have them work)
DeuSF can only be used on PWADs that respect a precise format:
- Sprites are identified only if comprised between:
S_START or SS_START and S_END or SS_END
-Flats (floor/ceilings) are identified only if they occur between:
F_START or FF_START and F_END or FF_END
If this format is NOT respected, DeuSF fails to identify entries
correctly. This is because in IWAD and PWAD entries there is nothing
internal to a Sprite or Flat that identifies it as such. This format is
generated by DeuTex automatically, and is compatible with DMADDS.
DeuSF is meant to be distributed with your PWAD, so it has no
restrictions on distribution (Unlike DeuTex, see License Section). This
lets you send DeuSF with your PWAD, along with a batch file like the
one in the following example. Your PWAD contains new Sprites and Flats,
but not all of them. Your batch file might read:
DeuSF -app mywad.wad
DOOM -file mywad.wad -warp x x
DeuSF -res mywad.wad
First, DeuSF appends the Sprites and Flats from DOOM.WAD to mywad.wad.
Then the PWAD is played. The last command deletes the appended Sprites
and Flats from mywad.wad, restoring it to it's original condition.
This kind of PWAD should PREFERABLY be built with DeuTex.
page 28
An example of DeuSF usage on ALIENDOOM 2.2:
DeuSF -doom c:\doom -sprite -add ALIENGFX.WAD ALINGRFX.WAD
DeuSF reads ALIENGFX.WAD to find what Sprites are missing. It then
extracts them from DOOM.WAD and creates a new PWAD, ALINGRFX.WAD from
the original PWAD and the extracted Sprites. DOOM.WAD and the original
ALIENGFX.WAD are unchanged.
Even better:
DeuSF -doom c:\doom -sprite -app ALIENGFX.WAD > aliengfx.log
DeuSF reads ALIENGFX.WAD to find what Sprites are missing. It then
extracts them from DOOM.WAD and appends them to ALIENGFX.WAD. DOOM.WAD
is unchanged. If -res doesn't work for any reason, ALIENGFX.WAD can be
restored by hand from the information in aliengfx.log
You *should* take the time to evaluate this tool even if you're
not convinced at all. Trust that this time won't be wasted.
DeuSF -join, -merge, -app, -res commands are incredibly more
powerfull than those of DMADDS. NWT -as and -af duplicate some of the
features of DeuSF, but isn't par to DeuSF yet.
Great care involved in designing those DeuSF functions, and DeuSF in not
only the most powerfull, it's also the only one ported to other O/S.
Let me insist that you should use DeuSF to install your WADs.
--------------------------
B) COMPLETE COMMAND REFERENCE
--------------------------
All optional commands must appear before all
non-optional ones. Otherwise, they are ignored.
Command Line Format:
DeuSF <optional cmd.>,...,<non-optional cmd.>,...,etc.
******** 1) HELP COMMANDS
-help Lists these parameters.
-format Displays a summary of the format conventions
a PWAD must follow so that DeuSF can recognize
Sprites and Flats properly.
-wadir <thatcool.wad>
Scrolls the entries in the PWAD directory down the screen,
along with what type DeuSF thinks each entry is (Sprite,
Flat, Graphic, etc.). For a PWAD with many entries, you
may want to pipe this command (i.e. DeuSF -wadir | more)
to ease readability. Used to check if DeuSF recognises all
the entries correctly, for instance when there is a problem
with -app or -add.
page 29
******** 2) OPTIONAL COMMANDS
-doom <doom directory>
Use this command to indicate the directory containing the
DOOM.WAD and DOOM.EXE you want to use. See the description
in the DeuTex command reference for default information.
For example: DeuSF -doom C:\GAMES\DOOM
-sprite Use with -add or -app, to add only Sprites or only Flats. If
-flat neither of these commands is present, DeuSF will add both.
******** 3) MANDATORY COMMANDS (one of these will always be used)
-add <myown.wad> <allsf.wad>
Will create a new file, ALLSF.WAD, containing all the
Sprites and/or Flats of DOOM.WAD together with those
contained in MYOWN.WAD. This is exactly like DMADDS
...but cleaner.
-app <myown.wad>
Will append to MYOWN.WAD only those Sprites and/or Flats
of DOOM which are not redefined. This saves disk space,
compared to -add command.
+ -join <this.wad> <that.wad>
+
+ Will append to THIS.WAD all the Sprites and Flats contained in
+ THAT.WAD. This function enables you to merge two Sprite and/or
+ Flats PWADS obtained from different sources. I added this
+ command so that I could play CHOOK and BARNEY together.
+ TEXTURES and PNAMES entries of both THIS.WAD and THAT.WAD.
+ If entries are conflicting, thoses of THAT.WAD have priority.
+ Avoid conflicts! -join is not really clever.
+
+ NOTE: After using -join on PWADS, you still have to
+ use -app on the combined PWAD to append the
+ remaining Sprites and Flats from DOOM.
+
+ -res <myown.wad>
+
+ Restores a PWAD which had been modified with -app command.
+ Quite safe. Performs the same function as -restore in DeuTex.
+ If a PWAD was merged inside another one (using -join), then
+ that PWAD regenerated also. Now *that's* real cool!
page 30
CHAPTER 8
******************************* FORMATS *******************************
----------------------------
A) The WAD Creation Directive
WADINFO.TXT
----------------------------
******** 1) OVERVIEW
The creation directive file is used by the DeuTex -make command to
compile a PWAD containing all of the desired enhancements. It is
automatically generated by the -xtract command and placed in the
working directory (e.g. MYWAD\). You can rename this file whatever you
like, and reference it when you use the -make or -merge commands.
+ The file lists most of the entries which will be present in the PWAD
+ file (with the exception of PATCHES and PNAMES, see note below). It is
+ structured similarly to a Windows .ini file with sections headed by
+ names enclosed in brackets.It contains up to 7 sections: [LEVELS],
+ [LUMPS], [TEXTURE1], [SOUNDS], [GRAPHICS], [SPRITES] and [FLATS].
+ For DOOM1, there can be an eighth section called [TEXTURE2].
+
+ All sections are optional. Starting with DeuTex version 3.0, the order
+ of the sections is not critical. The name of the section IS critical,
+ and must be spelled correctly.
NOTE: There is no [PATCHES] section. Patch loading is automatic. If a
new Patch is referenced in a Texture, DeuTex will look for it in
\PATCHES. If there is a Patch in \PATCHES with the same name
as an existing Patch, DeuTex will automatically find it and load
it. There is no need to reference a redefined Patch in a Texture
definition, unless it is part of a new or redefined Texture. There
is also no need to define PNAMES. PNAMES creation is automatic.
+ The names TEXTURE1 and TEXTURE2 refer to the OLDTEX1.TXT and
+ OLDTEX2.TXT files as extracted from DOOM. Unlike previous versions,
+ DeuTex doesn't need these files. They exist only for you. They are
+ useful in examining the makeup of textures in the WAD. They also make
+ redefining existing Textures easier by allowing you to cut and paste
+ instead of typing the redefined Texture from scratch. DeuTex 3.1 takes
+ all the information on existing Textures directly from the main WAD
+ while building your PWAD. Any new definitions supplied by you will
+ override those in DOOM. A warning will be given to inform you of this.
+ This is a great improvement and makes DeuTex even easier than before!
+
+ Previous versions of this manual also generated confusion over where,
+ how, and if you need to use OLDTEX2.TXT (then named TEXTURE2.TXT)
+ The short answer from now on is: NOWHERE, NOHOW and NO!
+
+ With DeuTex 3.1, [TEXTURE1] and [TEXTURE2] are separate sections.
+ There is ONLY ONE case where you will use [TEXTURE2]. This is when you
+ are using DOOM1 and you redefine a TEXTURE2 Texture. OLDTEX2.TXT does
+ NOT need to be present, even in this situation. Use it for your edits.
+
+ If your PWAD is for DOOM2, or is for DOOM1 and doesn't change any
+ TEXTURE2 Textures, IGNORE all references to TEXTURE2 in this document!
page 31
+******** 2) EXACT FORMAT for WADINFO.TXT
+
+
+
+ The following pages show the exact format for all the entries in a
+ PWAD Creation Directive File (i.e. WADINFO.TXT or YOURNAME.TXT).
+ All main sections are optional. Order of sections is unimportant.
+
+
+ The Symbols used in the Format Listing are as follows:
+
+
+ SYMBOL DEFINITION
+_______________________________________________________________________
+| | |
+| x and y | Numbers for offsets, levels, etc. |
+|________________________|____________________________________________|
+| | |
+| aaaa, bbbb and cccc | YOUR name for a given item (8 char max). |
+|________________________|____________________________________________|
+| | |
+| qqqq, rrrr and ssss | VARIABLE parts of a DOOM name. |
+|________________________|____________________________________________|
+| | |
+| CAPITAL LETTERS | MANDATORY parts of an entry. |
+|________________________|____________________________________________|
+| | |
+| DOOM name '=' aaaa | DeuTex will insert 'aaaa' as 'DOOM name'. |
+|________________________|____________________________________________|
+| | |
+| brackets [ ] | Define main sections in the file. |
+|________________________|____________________________________________|
+| | |
+| parentheses ( ) | These entries are optional. |
+|________________________|____________________________________________|
+| | |
+| asterisk '*' | Reuse the resource from the previous line. |
+|________________________|____________________________________________|
+| | |
+| dot+comma ';' | 'Comment' follows. (Windoze standard) |
+| pound sign '#' | 'Comment' follows. Rest of line ignored. |
+|________________________|____________________________________________|
+| | |
+| 'white space' (spaces) | Ignored by DeuTex. |
+|________________________|____________________________________________|
page 32
Listing of the Format for WADINFO.TXT:
+ ;
+ ; DeuTex by Olivier Montanuy (montanuy@lannion.cnet.fr)
+ ;
+ ; PWAD creation directives
+ ;
+ ;
+ [LEVELS] ; Section to define the Level of your map(s).
+ ;
+ MAPxx (=aaaa) ; If '=aaaa' and '=bbbb' are used, looks in \LEVELS for
+ ExMy (=bbbb) ; aaaa.WAD and bbbb.WAD. If '=aaaa' and '=bbbb' are not
+ ; used, looks in \LEVELS for MAPxx.WAD and ExMy.WAD.
+ ; Combines them into one PWAD containing MAPxx and ExMy
+ ;
+ ; DeuTex does not care about the internal Level of
+ ; aaaa.WAD or MAPxx.WAD. It will output the PWAD as
+ ; whatever MAPxx or ExMy is put here. Easy conversion.
+ ;
+ ; ExMy can be E1M1 thru E3M9.
+ ; MAPxx can be MAP01 thru MAP35.
+ ; MAPS 33, 34 and 35 will play, but can only be entered
+ ; by IDCLEV. An EXIT LEVEL switch on 33, 34 and 35 will
+ ; just return you to DOS.
+ ;
+ ; If ExMy and MAPxx are entered in the same PWAD, ExMy
+ ; will play from DOOM1 and MAPxx will play from DOOM2,
+ ; IF there are no Texture additions to the PWAD. It is
+ ; still possible with Textures, but is a can of worms,
+ ; and you'd better know what you're doing.
+ ;
+ ; Thus, it is possible to make a 62 Level PWAD with
+ ; DeuTex, although some imagination would be needed to
+ ; overcome the limitations of Levels 33, 34 and 35 in
+ ; DOOM2, and only about half the wad would be available
+ ; to each DOOM engine. This may be useless, but since
+ ; it's possible, it is included here.
+ ;
+ ;
+ [LUMPS] ; Section to define any .LMP data you want to add.
+ ; Chapter 5, Section B) describes Lumps.
+ ;
+ qqqq (=aaaa) ; If '= aaaa' is used, looks in \LUMPS for aaaa.LMP. If
+ ; '= aaaa' is not used, looks for qqqq.LMP. Installs the
+ ; .LMP data in the PWAD to replace qqqq in DOOM.
+ ;
+ rrrr (*) ; If '*' is used, .LMP from the previous entry is used
+ ; for this entry as well. When you play the PWAD, qqqq
+ ; will be used for both qqqq AND rrrr.
+ ;
+ ;
page 33
+ [TEXTURE1] ; Section for declaring what Texture definition files you
+ ; want to use when compiling your PWAD.
+ ;
+ aaaa ; First loads TEXTURE1 from the main DOOM or DOOM2 WAD.
+ (bbbb) ; Then looks in \TEXTURES for aaaa.TXT. Compiles your PWAD
+ (cccc) ; Texture directory by: TEXTURE1 - (redefined Textures in
+ ; aaaa.TXT)+(ALL textures in aaaa.TXT) = TEXTURE1 in PWAD.
+ ;
+ ; If 'bbbb' and 'cccc' are used, DeuTex searches for
+ ; bbbb.TXT in \TEXTURES, RE-edits the TEXTURE1 entry using
+ ; it, then gets cccc.TXT and repeats the process. This
+ ; means that if any duplicate Texture names exist in aaaa,
+ ; bbbb and cccc, only the entry from the last file listed
+ ; will be present in the final PWAD.
+ ;
+ [TEXTURE2] ; Used only for DOOM1. Shows what Texture definition
+ aaaa ; file(s) to use for TEXTURE2. Similar to above.
+ ;
+ ;
+ [SOUNDS] ; Section to define your modified Sound entries.
+ ;
+ DSqqqq (=aaaa) ; If '=aaaa' is used, looks in \SOUNDS for aaaa.WAV
+ ; (Sound effect). If '= aaaa' isn't used, looks for
+ ; DSqqqq.WAV. Uses file to replace DOOM sound DSqqqq.
+ ;
+ DPqqqq (=aaaa) ; If '=aaaa' is used, looks in \SOUNDS for aaaa.TXT
+ ; (PC Speaker Sound). If '= aaaa' is not used, looks
+ ; in \SOUNDS for DPqqqq.TXT. Uses file to replace
+ ; DOOM PC Speaker Sound DPqqqq.
+ ;
+ D_qqqq (=aaaa) ; If '=aaaa' is used, looks in \SOUNDS for aaaa.MUS
+ ; (Music file in DOOM's .MUS format). If '=aaaa' is
+ ; not used, looks for D_qqqq.MUS. Uses file to replace
+ ; DOOM Music D_qqqq.
+ ;
+ D_rrrr (*) ; If '*' is used, the Sound from the previous entry is
+ ; used for this entry as well. In this example, when
+ ; you play your PWAD, D_qqqq will be used for both
+ ; D_qqqq AND D_rrrr.
+ ;
+ ;
+ [GRAPHICS] ; Section used to declare Graphics other than
+ ; Sprites, Flats, or Textures. See Chapter 5,
+ ; Section E) or Matt Fell's DOOM SPECs for a
+ ; description of Graphic entries in DOOM.
+ ;
+ qqqq (xx)(yy) (=aaaa) ; If '=aaaa' is used, looks in \GRAPHICS for
+ ; aaaa.BMP. If not found, looks for aaaa.GIF.
+ ; If '=aaaa' is not used, looks for qqqq.BMP
+ ; or .GIF. Inserts the file in PWAD for entry
+ ; qqqq. xx and yy are the horizontal and
+ ; vertical offsets used when inserting the
+ ; Graphic into it's defined area. The defined
+ ; defined area is predetermined by DOOM.EXE
+ ; from the Graphic name.
+ ;
page 34
+ ; For example, all Graphics beginning with STF
+ ; are placed in a box 31 x35 pixels big at the
+ ; center of the Status Bar. This is where the
+ ; player's face shows up. The xx and yy values
+ ; move the Graphic around in this box. Pos-
+ ; itive values move it left (xx) and up (yy).
+ ;
+ rrrr (*) ; If '*' is used, will re-use the Graphic from
+ ; the previous line for rrrr too.
+ ;
+ ;
+ [SPRITES] ; Section used to declare Sprites. Consult the
+ ; following for more information on modifying
+ ; Sprites in DOOM:
+ ; Chapter 3 - Section C)
+ ; Chapter 5 - Section F)
+ ; Chapter 6 - Section E)
+ ; Chapter 7 - All Sections
+ ;
+ qqqq (xx)(yy) (=aaaa) ; If '=aaaa' is used, looks for aaaa.BMP or
+ ; .GIF in \SPRITES. If '=aaaa' is not used,
+ ; looks for qqqq.BMP or GIF. Inserts the file
+ ; into the PWAD to replace the Sprite qqqq.
+ ;
+ rrrr (*) ; '*' tells DeuTex to use the previous entry
+ ; (qqqq) for this Sprite as well.
+ ;
+ ;
+ [FLATS] ; Section for declaring modified Flats. Limitations
+ ; are similar to the ones for modifying Sprites. See
+ ; [SPRITES] section above for places to find info.
+ ;
+ qqqq (=aaaa) ; If '=aaaa' is used, looks for aaaa.BMP or .GIF in
+ ; \FLATS. If '=aaaa' is not used, looks for qqqq.BMP or
+ ; .GIF. Inserts file into PWAD as replacement for qqqq.
+ ;
+ ; There are no insertion points for Flats, since they
+ ; all MUST be 64x64.
+ ;
+ ;
+ ; End File.
page 35
******** 3) An EXAMPLE LISTING of WADINFO.TXT
The following is a commented example of PWAD creation directives,
A space or any text after a ';' or '#' to the end of a line is ignored.
Not all entries need be present, and order of [SECTIONS] is optional.
************************ WADINFO.TXT *****************************
;
; The [LEVELS] section defines the DOOM1 Levels and DOOM2 maps.
;
[LEVELS]
E1M2 ;file loaded: LEVELS\E1M2.WAD
MAP04 ;file loaded: LEVELS\MAP04.WAD
E2M3 =TRINITY ;file loaded: LEVELS\TRINITY.WAD
;if more than one Level, E2M3 is read
;
; All .WADs referred to here must contain the 11 entries that
; define a Level, including NODES, BLOCKMAP and REJECT. Use
; IDBSP and RMB to build them.
;
; The [LUMPS] section defines the Lumps of raw data for DOOM.
;
[LUMPS]
ENDOOM ;file loaded: LUMPS\ENDOOM.LMP
DEMO1 ;file loaded: LUMPS\DEMO1.LMP
DEMO2 =KILLJOHN ;file loaded: LUMPS\KILLJOHN.LMP
;
; See Directory Structure - LUMPS\ for a precise description of all
; these entries. Apart from the DEMO or possibly ENDOOM, there is no
; real need to mess with them. DEMOs can be recorded by DOOM.
;
; The [TEXTURE1] section lists the names of the Texture definition files
; from \TEXTURES that are to be used for TEXTURE1.
;
[TEXTURE1] ;DeuTex will first read TEXTURE1 in DOOM.WAD
;
TEXTURE1 ;file read: \TEXTURES\TEXTURE1.TXT
MYWALLS ;file read: \TEXTURES\MYWALLS.TXT
MYSWITCH ;file read: \TEXTURES\MYSWITCH.TXT
;
; The new Textures found in these files are placed at the end of the
; Texture list. If they have the same name as an entry in OLDTEX1,
; (that is: the old DOOM texture) then that entry is deleted.
;
; The [TEXTURE2] entry is not needed for DOOM2
;
[TEXTURE2] ;DeuTex will first read TEXTURE2 in DOOM.WAD.
;
TEXTURE2 ;file read: \TEXTURES\TEXTURE2.TXT
;
; The new Textures found in this file are placed at the end of the
; Texture list. If they have the same name as an entry in TEXTURE2,
; that entry is deleted.
;
; BEWARE: don't duplicate TEXTURE1 entries in TEXTURE2.
; DOOM Doesn't care, but it crashes some Level
; editors.
;
page 36
; The [SOUNDS] section defines MUSIC, PCSOUNDS and WAVE SOUNDS
;
[SOUNDS]
D_E2M3 ;file loaded: SOUNDS\D_E2M3.MUS (doom1 music).
D_RUNNIN ;file loaded: SOUNDS\D_RUNNIN.MUS (doom2 music).
D_ROMERO * ;no file loaded! The '*' copies D_RUNNIN to D_ROMERO.
;now DOOM will think D_ROMERO=D_RUNNIN.
;
D_SHAWN3 =KATEBUSH ;file loaded: SOUNDS\KATEBUSH.MUS.
;The music for SHAWN3 will be KATEBUSH.
;
; D_E2M3 is the music for Episode2 Mission 3 of DOOM.
; In DOOM2, it's a real mess. The Music name is not related
; to the Level name, but to the guy who made the Level.
;
; MUS format can be obtained from MIDI with MIDI2MUS, or
; converted back to MIDI by MUS2MIDI (by just_joe).
; These are separate utilities (too technical for DeuTex)
;
DSSLOP ;file loaded: SOUNDS\DSSLOP.WAV, .AU or .VOC
DSPISTOL =BOIING ;file loaded: SOUNDS\BOIING.WAV, .AU or .VOC
;this is a WAV Sound, meant for sound cards.
;
DPSLOP ;file loaded: SOUNDS\DPSLOP.TXT
;this is a PC speaker Sound.
;
; The WAV, AU and VOC format were hacked.
; DeuTex can't read compressed data.
; The format PC-speaker Sound is a list of integers
; (range 1-255). related to sound pitch...
;
;
; The [GRAPHICS] section defines all the fixed pictures.
; (Not Sprites, Patches, or Flats)
;
[GRAPHICS]
WIMAP1 ;file loaded: GRAPHICS\WIMAP1.BMP.
STHURT1 23 45 ;file loaded: GRAPHICS\STHURT1.BMP.
;set the insertion point to 23,45.
STHURT2 * ;DOOM will use STHURT1 for STHURT2.
VICTORY2 0 12 =SULACCO ;file loaded: GRAPHICS\SULACCO.BMP
;set the insertion point to 0,12.
;SULACCO.BMP will now replace VICTORY2.
;
; Fixed pictures include: opening screen,
; texts (!), menus, status bar, ending pictures ...
; You can only use names already defined in DOOM.
; Otherwise DOOM will ignore them. (you'll be warned :-)
;
; This section declares the Sprites.
;
[SPRITES]
BOSSB1 ;File loaded: SPRITES\BOSSB1.BMP or .GIF
;calculate insertion point by itself.
BOSSA1 10 20 ;File loaded: SPRITES\BOSSA1.BMP or .GIF
;set the insertion point to 10,20.
BOSSA2A8 * ;DeuTex will set BOSSA2A8 equal to BOSSA1
VILEA1 30 40 =BILLGATE ;File loaded: SPRITES\BILLGATE.BMP or .GIF
;VILEA1 will now be BILLGATE.BMP
page 37
; If you redefine ALL Sprites, use the -iwad option.
; Otherwise, you'll have to use DeuSF to rebuild a complete Sprite PWAD
; each time the WAD is played. This is because of a limitation of DOOM
; which still has not been removed (ask ID software about it).
;
;
; Don't declare your Patches.
; A Patch, say xxxx, will automatically be loaded into
; the PWAD from the file PATCHES\xxxx.BMP (or .GIF) if:
;
; 'xxxx' is referenced in one of the Texture files, as a Patch.
; or 'xxxx' exists as a Patch in the original DOOM.
;
;
;
; The [FLATS] section declares the Floors and Ceilings
;
[FLATS]
GRASS ;file loaded: FLATS\GRASS.BMP (or .GIF)
HERBE * ;DOOM will think HERBE is the same as GRASS
BLOOD1 = MUDDY ;file loaded: FLATS\MUDDY.BMP
; All these files must be 64x64 pixel pictures.
;
; You can define new Flat names, or redefine existing Flats, but unless
; you redefine the complete list of Flats, and use the -iwad option, you
; need to use DeuSF to rebuild the complete Flat list whenever you want
; to use the PWAD.
;
;
; WAD creation directives end here.
;
page 38
-----------------------------------
B. The Texture Definitions Text File
\TEXTURES\MYTEXT.TXT
-----------------------------------
******** 1) OVERVIEW
Some Notes on Texture definitions:
- READ the DOOM SPECS by Matt Fell.
- You can create Textures for transparent walls (see DeuTex
Commands -rgb), but make sure that they're composed of only
one Patch. Otherwise, you'll get the Medusa Effect.
- Avoid using a Texture less than 128 pixels high on a
wall higher than the Texture (Tutti Frutti effect).
- Texture widths should be rounded to the next power
of 2. (8,16,64,128,256,512,1024 are usable)
- Patches composing Textures can not be more than 320 pixels wide.
- DOOM will ignore any portion of Textures higher than 128 pixels.
- You can create a non repeating sky Texture:
Define the SKY1 (or SKY2, SKY3, RSKY1, RSKY2, RSKY3) entry as a
1024x128 area cover it with Patches. Note that SKY Patches appear
horizontally inverted. 0=east, 256=north, 512=west, 768=south.
- Make sure all Textures are completely covered by Patches.
Otherwise, DOOM will puke (void column error).
- You can create animated walls with (almost) any sequence of
pictures. No known limit in the number of frames (27 is OK!).
The way to do this is:
Edit the Textures of one of DOOM's existing animated walls
(beginning and end). Use the original names for these entries.
They are coded into DOOM.EXE. Add the other frames for your
animation between these entries in your Texture list.
- READ the DOOM SPE.... Well, you get the picture >;-{]>
Once you have created a new PWAD, check it with the -check command.
DeuTex will complain if:
- Any Texture width is NOT a power of 2 (2,4,8,16,32,64,128,etc).
(DOOM will round to the next lower power of 2)
- Any Texture height is greater than 128.
(DOOM ignores everything above 128)
- Any Texture is not completely covered by Patches.
(DOOM will exit with a void column error)
- A Level tries to use of an undefined Texture.
A Texture entry consists of:
(Texture Name) (WIDTH) (HEIGHT)
* (Patch1) (X offset)(Y offset)
* (Patch2) (X offset)(Y offset)
* (Patch3) (X offset)(Y offset)
. . . .
. . . .
. . . .
* (PatchN) (X offset)(Y offset)
This format is supported by both New Wad Tool and the Visual Basic
shell for DeuTex, so use the one you prefer, to build your Textures.
page 39
Texture Names are 8 characters or less.
Width and Height are in pixels.
An asterisk '*' identifies the following word as a PNAME.
Patch Names are 8 characters or less.
X and Y offsets are pixel measurements.
Offsets are measured from upper-left corner (0,0).
X = positive. Offset Patch to the right.
X = negative. Offset Patch to the left.
Y = positive. Offset Patch down.
Y = negative. Offset Patch up.
The following figure is a feeble attempt to illustrate this:
_______________________
| | ^
| PATCH 1 | |
| Both x and y | Y
| have negative | |
| offsets. _______|_v_______________________________________
| | | ^ | ^
| | | | TEXTURE | |
| | | | | |
| | | Y | |
| | | | | |
|_______________|_______| | | H
| __v_______________________ | E
<----- X ----->| | | | I
| | PATCH 2: | | G
| | Both x and y have | | H
|<------- X ------->| positive offsets. | | T
| | | | |
| | | | |
| | | | |
| |__________________________| | |
| | |
|_________________________________________________| v
<-------------------- WIDTH --------------------->
TEXTURE DEFINITION SHOWING PATCH OFFSETS
page 40
******** 2) An EXAMPLE LISTING of MYTEXT.TXT
Texture Definition File Example
*************************** TEXTURE1.TXT ******************************
;
; Anything following a ';' or ';' is ignored (comment).
;
; An asterisk '*' at the beginning of a line indicates a Patch.
;
; ASHWALL is a Texture 64 pixels wide, and 128 pixels high.
; It contains only one Patch, W104_1, with no offset.
;
ASHWALL 64 128
* W104_1 0 0
;
; BIGDOOR7 is a Texture of size 256x128 (X size, Y size) composed of two
; Patches, W105_1 and W105_1 placed at offset -4,-4 and offset 124, -4.
;
BIGDOOR7 256 128
* W105_1 -4 -4
* W105_1 124 -4
;
; FLOWER is a new Texture (didn't exist in DOOM.WAD).
; It is composed of an old Patch.
;
FLOWER 32 128
* TP5_1 0 0
;
; BLODGR2 redefines the old BLODGR2 Texture
; to be composed of the new Patch BIRDY
;
BLODGR2 34 128
* BIRDY 0 0
;
; A new Texture, HADDOCK, composed of new and old Patches.
;
HADDOCK 64 128
* FISH1 0 0
* BIGFISH 23 44
* TP5_1 0 0
;
; Example of wall animation.
;
; Start with the first entry of an existing animation (FIREBLU1).
; Insert additional entries as needed for your animation (ZZZ...).
; End with the closing entry of the existing animation (FIREBLU2).
; When FIREBLU1 is used in your PWAD, it will have your animation!
; Notice that the example uses Sprites as Patches. DOOM don't know
; and DOOM don't care!
;
FIREBLU1 128 128 ;First frame is a redefined
* WALL62_1 0 0 ;DOOM animated Texture. These
* BOSSA1 83 47 ;are called in the DOOM.EXE.
* GOR2A0 20 -70
ZZZA 128 128 ;Frame 2 inserted.
* WALL62_1 0 0
* BOSSB1 75 47
* GOR2A0 20 -50
page 41
ZZZB 128 128 ;Frame 3 inserted.
* WALL62_1 0 0
* BOSSC1 71 47
* GOR2A0 20 -35
ZZZC 128 128 ;Frame 4 inserted.
* WALL62_1 0 0
* BOSSD1 61 47
* GOR2A0 20 -25
ZZZD 128 128 ;Frame 5 inserted.
* WALL62_1 0 0
* BOSSF1 47 47
* GOR2A0 20 -20
ZZZE 128 128 ;Frame 6 inserted.
* WALL62_1 0 0
* BOSSE8 54 47
* GOR2A0 20 -17
ZZZF 128 128 ;Frame 7 inserted.
* WALL62_1 0 0
* BOSSE7 68 47
* GOR2A0 20 -16
ZZZG 128 128 ;Frame 8 inserted.
* WALL62_1 0 0
* BOSSE6 64 47
* GOR2A0 20 -17
ZZZH 128 128 ;Frame 9 inserted.
* WALL62_1 0 0
* BOSSF5 60 47
* GOR2A0 20 -20
ZZZI 128 128 ;Frame 10 inserted.
* WALL62_1 0 0
* BOSSF4 63 47
* GOR2A0 20 -25
ZZZJ 128 128 ;Frame 11 inserted.
* WALL62_1 0 0
* BOSSD2D8 64 47
* GOR2A0 20 35
ZZZK 128 128 ;Frame 12 inserted.
* WALL62_1 0 0
* BOSSB1 68 47
* GOR2A0 20 -50
ZZZL 128 128 ;Frame 13 inserted.
* WALL62_1 0 0
* BOSSC1 70 47
* GOR2A0 20 -70
FIREBLU2 128 128 ;Fourteenth Frame is an
* WALL62_1 0 0 ;edited FIREBLU2, which is
* BOSSB1 73 47 ;the last frame of the
* GOR2A0 20 -64 ;DOOM animated Texture.
;
; End of example
;
;
; file ends here. bye!
page 42
---------------------------
*** [PART THREE] ALL THE REST ***
---------------------------
CHAPTER 9
*************************** NECESSARY STUFF ***************************
------------------------------
A) DeuTex/DeuSF License Agreement
------------------------------
DeuTex/DeuSF is copyright (c) Olivier Montanuy 1994.
The GIF code was from a source (c) David Koblas.
DeuTex code was originally derived from DEU5.21
by Brendon Wyber and Raphael Quinet.
DeuSF is inspired from DMADDS by Bernd Kreimeier
DeuTex/DeuSF is a Freeware set of tools.
DeuTex is Freeware but NOT public domain.
DeuSF can be freely distributed with PWADS as part of their install.
Here are the restrictions on the usage of DeuTex:
- You shall not use these tools to extract or insert copyrighted
material in DOOM IWADs and PWADs. You are especially not allowed
to use them to build any 'shareware' DOOM version.
- You are not allowed to modify or reverse engineer these tools.
(sources will be available to you if I feel you can be trusted)
- You cannot distribute these tools commercially without my written
consent. This includes all kind of non free distribution (shareware,
charging for uploads, or selling it on any kind of media).
*Compuserve is allowed to distribute DeuTex/DeuSF without restrictions*
- Anything you build with this tool shall be free for everyone,
unless you get written permission from me.
- DeuTex must be distributed with all the files in this package,
including DeuSF, the manual and this license. Only DeuSF can be
distributed separately, for reasons mentioned above.
- I will accept no liability for any damage resulting from the use
of this program. Remember it is freeware. There is no evil intent
anywhere in the source of this program, but I can't guess what the
compilers might have hacked out of it, or how your system will feel
about it.
page 43
-----------
B) Legal Stuff
-----------
***********************************************************************
* Please DON'T bother ID software, Raphael Quinet, Brendon Wyber, *
* or any of the people mentioned in this manual, with questions *
* related to DeuTex *
***********************************************************************
If you need information, here are the only sources:
Olivier Montanuy (DOS and Unix problems)
Kevin McGrail (Manual and Explanations)
Mark Mathews (OS/2 problems)
Per Allansson (Linux problems)
Why is DeuTex Copyrighted? It's so that I can make the following
requirement, which would be impossible with Public Domain status:
YOU ARE NOT ALLOWED TO MAKE ANY MODIFICATIONS TO
THIS PROGRAM OR TO THE INCLUDED FILES. ALL THE FILES
INCLUDED IN THIS PACKAGE SHALL BE RELEASED TOGETHER.
If you want modifications, ask me, I'll do my best.
Later on I'll release the source, when stabilized.
USE AT YOUR OWN RISK. NO LIABILITY IS ACCEPTED.
It runs under DOS, so behavior is unpredictable .
YOU ARE NOT ALLOWED TO MAKE ANY KIND OF PERSONAL
PROFIT BY SELLING, RENTING, LEASING, OR USING THIS
PROGRAM, WITHOUT MY EXPLICIT WRITTEN CONSENT.
If you are interested in distributing it on a CD or any
other media, contact me first. I should accept, provided:
- you keep the price low, for maximum availability.
- you send me a free copy.
SPECIAL EXCEPTION:
CompuServe is allowed to charge normal upload fees to distribute this
program, provided I receive (by e-mail) a monthly report of the total
number of said uploads.
* All right folks, it was a shame, but it had to be stated somewhere...
page 44
-------------------------
C) Where to get DeuTex/DeuSF
-------------------------
DeuTex and DeuSF are meant to be available by anonymous
FTP on Internet sites: the same as of those of DEU:
infant2.cdrom.com,ftp.luth.se,iglou.com,...
/pub/doom/deu
/pub/doom/wad_edit/misc
DeuTex and DeuSF are available on Compuserve, by special
request of Dr. Sleep:
GAMERS FORUM LIB 8 ACTION GAME AIDS [CIS:GAMERS]
PC WORLD FORUM LIB 22 The DOOM ROOM [CIS:PWOFORUM]
DeuTex/DeuSF can be made available on any free of charge BBS.
Though a freeware tool, DeuTex cannot be distributed
by shareware vendors without my written agreement.
DeuSF can be freely distributed, because it is meant to help
install some PWADs, and thus is not subject to any restrictions.
You might also want to try:
NWT by Denis
A good DOS Tool, easy to use. ideal for making small changes.
Texture text format compatible with DeuTex.
DOOMTEX by Steve McCrea
A list of tools to generate Textures. It's not exactly user friendly,
but successfully used for TRINITY.WAD. For hackers only :-) I *do* hope
you'll find DeuTex a bit easier to use, but Steve was a pioneer in the area of Texture editing!
WACKER by Keith Wilkins
A Graphic Texture editor. I could not test it, but it should be good.
It would be a good idea to use it in combination with DeuTex.
page 45
---------------------
D) Version Information
---------------------
New in version 3.1
- Addition of unified user manual.
- Color Quantization, allowing PPM support. No TGA yet (I'm lazy)
- VOC sounds (11111 sample/s assumed.)
- Bug corrections and simplifications, for easier maintenance.
- Command -dmtexture replaces -texture. -texture is now used
as a switch like -sprite, -flat, etc. (it's more logical).
- Section boundaries in PWAD composition files are now [SECTION]
(like Windows .ini files) and not Begin: SECTION End: SECTION.
- Order of sections in PWAD composition files no longer critical.
- A new section [TEXTURE2] added for TEXTURE2 entries.
- Texture entries are now first read from DOOM.WAD. The Texture
file then indicates which Textures to create or redefine. This
eliminates previous TEXTURE1.TXT confusion. Much easier!
- Can now use your names for Levels, Sounds, Sprites and Flats. For
DSPISTOL=BOIING, BOIING.WAV will be inserted in the PWAD as DSPISTOL.
- A new command <-join> for DeuSF, that let's you combine
different Sprite and/or Flat PWADS into one PWAD. even joins textures!
New in version 2.9:
- DeuSF -sprite bug corrected.
- New directory listing for sprites, music, sounds. Verbose.
- Some other bug corrections I'm not listing.(shame prevents)
- Sources now compile under Alpha and SGiX. (well, err...)
- Data Utility license acquired: no more string handling functions.
Sorry, this is not allowed by ID software. Use DeHacked.
New in version 2.8:
- Small BMP bug corrected.
- Visual Basic shell version 1.2
New in version 2.7:
- John Romero kindly requests that DeuTex work only for
the registered version of DOOM. And when the Lord speaks...
- A Visual Basic shell for DeuTex. version 1.0 beta.
New in version 2.6:
- Unix version available (SUN SPARC, little endian processor).
- OS/2 and Linux version by Mark Mathews and Per Allansson.
- DeuSF supports Sprite viewpoints not available in DOOM.WAD.
- Removal of some bugs and restrictions of DeuTex and DeuSF.
- Verbose and Non-Verbose mode.
- Function to determine unused data in a WAD.
- Improvement of the user manual (just joking...).
- Converts all sounds to 11025 samples/second.
Lacking in version 2.6:
- MIDI support. If anyone can understand the code of Joachim...
New in version 2.2:
- Added ability to change the number of viewpoints of a sprite.
- Addition of -fullsound. When extracting sound, you can now tell
DEUTEX to extract the whole entry, beyond the declared sound length.
- When loading a sound, DEUTEX now converts to 11025 sample/s.
- Some bug corrections. Nothing critical :-)
page 46
--------------
E) Known Problems
--------------
- Color quantization is faster, but optimised for the DOOM and HERETIC
palettes supplied with DeuTex. Else, it's slower and a bit lossy.
- Identification of entry types does not always work with PWADS made by
programs other than DeuTex. There is no general solution to this
problem, only my best effort. Sprites and Flats could be missed if
certain conventions are not respected. Misidentified entries are
stored as Lumps.
- GIF format defaults to GIF87.
- WAVE (.WAV) and AUDIO (.AU) file format are hacked, but work. VOC
format is hacked too, but I couldn't guess the coding for the sample
rate. The best option resulted in Sounds being converted to 11111
samples per second instead of 11025 samples per second.
- No MIDI support. MUS format is too complex to understand. No time.
- Levels should be complete (map with 11 directory entries) before DeuTex
will insert them in a PWAD. This means: nodes, reject, blockmap and
such should exist. If they don't, it *could* work, however.
- DeuSF does NOT test that all REQUIRED Sprite viewpoints are available
if you change the number of viewpoints. DOOM will lock up if you
forget one of the Sprite viewpoints.
- If the -app command is interrupted, the PWAD file becomes bigger due
to appended waste data, but it is still operational.
- DeuSF says stupid things if no command is given.
- Source is not INCLUDED. It's available to you only if you want to
port DeuTex to a new environement. When DeuTex is finished, the
source will be released.
*LIMITATIONS of DOOM
- Sprites in PWADs only work if you don't reuse existing Sprites. Use
DeuSF or DMADDS if you want to replace Sprites. Actually, DeuTex
-merge will also work. (and better!)
- Flats don't work in PWADs. Use DeuSF or DMADDS if you want to
replace Flats. Deutex -merge will also work. (and better!)
page 47
------
F) THANKS
------
First, thanks to you for taking the time to evaluate DeuTex/DeuSF.
I know my program is not trivial to use, and might be tricky to
understand, but I really think it's worth the trouble.
DeuTex/DeuSF would not have existed without the help of these people:
Steve McCrea Author of TRINITY.WAD and DOOMTEX.
Raphael Quinet Examples of GIF and DEU code.
(quinet@montefiore.ulg.ac.be)
Elias Papavassilopoulos Doom technical information.
(ep104@cus.cam.ac.uk)
Matt Fell Doom specs version 1.3
(matt.burnet@acebbs.com)
Keith Wilkins Author of Wacker, a Texture
(spike@nectech.demon.co.uk) composer. Try it!
Tom Neff Doom technical information.
(tneff)
Bern Kreismeier Author of DMADDS/DMADDF
(bernd@nero.uni-bonn.de)
Dewi Morgan Unashamed flattery that lead me to
(D.Morgan@bradford.ac.uk) create DeuSF from DeuTex code.
ID software For the DEUTEX/DeuSF test bench, also
(help@idsoftware.com) known as 'DOOM', 'DOOM2' or 'HERETIC'
Raven software For those cool graphics in HERETIC.
(and for messing with color palettes)
Special Thanx to:
Per Allansson DeuTex Linux version.
(c91peral@und.ida.liu.se)
Mark Mathews DeuTex OS/2 port.
(mark.mathews@channel1.com)
page 48
--------------
THANKS (cont.)
--------------
Thanks to all of you who reported bugs and proposed corrections
or generally supported my efforts:
Leonard Czajka leonardc@halcyon.halcyon.com
Herve.Benvel Herve.Benvel@inria.fr
Paolo Hutchison paolo@netcom.com
M. Kernaghan mkernagh@julian.uwo.ca
Thierry Vermat vermat@evol10.univ-lyon1.fr
Jeremy Blackman ranma@eskimo.com
Jason Mezzacca 72510.3424@compuserve.com
C. Gasparo cgasparo@cymbal.aix.calpoly.edu
Avery Andrews andaling@durras.anu.edu.au
Thanks to Justin Fisher for letting me use DeuTex and DeuSF on a
new install for Alien-TC (despite all the small mistakesI made).
Note from Olivier:
Now comes the guy YOU all want to thank:
HevKev, also known as Kevin McGrail, novice Manual Editor.
74107.1254@compuserve.com
Before his contribution, I was the only one who knew how to use DeuTex.
Now some of you might understand enough about DeuTex to use it in your
great DOOM conversions project.
page 49
-----------
G) FINAL WORDS
(AT LAST)
-----------
Thanx for trying DeuTex.
I did my best to make it the easy to use, bug free, and portable.
However, it's not entirely trivial to use.
I can't spend my life on a freeware tool.
If you can't understand this tool, chances are your contribution
to DOOM fandom will be quite limited. Remember, I only worked to make
your life as simple as it could be, so that even non-specialists
could produce something cool for DOOM.
But don't forget that it takes some time, some dedication, and
some genius also, to make something as great as Aliens-TC.
Olivier Montanuy,
E-Mail:
montanuy@lannion.cnet.fr Work time mailbox (avoid)
montanuy@dmi.ens.fr Leisure time mailbox
montanuy@idsoftware.com Dream time mailbox
Address:
Manoir de Keringant, St Quay Perros, 22700 Perros Guirec, FRANCE
This is in Bretagne (Brittany), the westernmost part of France.
Phone:
+33 96482047 (time: UTC+1)
modem: USR 14400 Worldport LITE Modem Fax.
(I'm a real easy frag.)
page 50
APPENDIX I Switch Textures in DOOM.WAD
SW1BRCOM 128 128
* WALL62_1 0 0
* SW1S0 48 72
SW1BRN1 64 128
* WALL02_2 0 56
* WALL02_2 0 0
* SW3S0 16 75
SW1BRN2 64 128
* WALL02_2 0 56
* WALL02_2 0 0
* SW4S0 20 79
SW1BRNGN 64 128
* WALL62_2 0 0
* SW4S0 20 80
SW1BROWN 128 128
* WALL62_1 0 0
* SW3S1 48 72
SW1COMM 64 72
* W13_1 0 0
* SW1S0 15 18
SW1COMP 64 128
* COMP03_4 0 64
* COMP04_5 0 0
* COMP03_4 32 64
* SW2S0 16 72
SW1DIRT 64 128
* WALL00_7 32 0
* WALL00_6 16 0
* SW1S0 16 20
* WALL00_6 0 -16
* WALL00_7 48 0
SW1EXIT 32 72
* W32_4 0 0
* SW2S0 0 16
* W33_8 0 64
SW1GRAY 64 128
* W31_1 0 0
* W31_1 0 64
* SW2S0 16 70
SW1GRAY1 64 128
* W31_1 0 64
* W31_1 0 0
* SW4S0 19 79
SW1METAL 64 128
* WALL03_7 0 0
* WALL03_7 0 64
* SW4S0 20 68
SW1PIPE 128 128
* TP2_2 0 0
* SW3S0 48 76
page 51
SW1SLAD 64 128
* WLA128_1 0 0
* WARNB0 24 73
SW1STARG 128 128
* SW19_3 64 0
* SW19_4 0 0
* SW3S0 48 76
SW1STON1 64 128
* W28_8 0 64
* W28_8 0 0
* SW1S0 16 78
SW1STON2 64 128
* W28_5 0 0
* W28_8 0 64
* WARNB0 24 73
SW1STONE 64 128
* WALL01_1 0 0
* WALL01_2 16 0
* WALL01_3 32 0
* WALL01_4 48 0
* WALL01_1 0 72
* WALL01_2 16 72
* WALL01_3 32 72
* WALL01_4 48 72
* W33_8 0 64
* W33_8 0 120
* SW1S0 16 72
SW1STRTN 64 128
* SW12_4 0 0
* SW12_5 32 0
* SW1S0 16 72
SW2BRCOM 128 128
* WALL62_1 0 0
* SW1S1 48 72
SW2BRN1 64 128
* STEP07 32 72
* STEP07 0 72
* WALL02_2 0 56
* WALL02_2 0 0
* SW3S1 16 75
SW2BRN2 64 128
* WALL02_2 0 56
* WALL02_2 0 0
* SW4S1 20 79
SW2BRNGN 64 128
* WALL62_2 0 0
* SW4S1 20 80
SW2BROWN 128 128
* WALL62_1 0 0
* SW3S0 48 72
SW2COMM 64 72
* W13_1 0 0
* SW1S1 15 18
page 52
SW2COMP 64 128
* COMP03_4 0 64
* COMP04_5 0 0
* COMP03_4 32 64
* SW2S1 16 72
SW2DIRT 64 128
* WALL00_8 48 0
* WALL00_7 32 0
* WALL00_6 16 0
* WALL00_5 0 -1
* SW1S1 16 20
SW2EXIT 32 72
* W32_4 0 0
* SW2S1 0 16
* W33_8 0 64
SW2GRAY 64 128
* W31_1 0 0
* W31_1 0 64
* SW2S1 16 70
SW2GRAY1 64 128
* W31_1 0 64
* W31_1 0 0
* SW4S1 19 79
SW2METAL 64 128
* WALL03_7 0 0
* WALL03_7 0 64
* SW4S1 20 68
SW2PIPE 128 128
* TP2_2 0 0
* SW3S1 48 76
SW2SLAD 64 128
* WLA128_1 0 0
* WARNA0 24 73
SW2STARG 128 128
* SW19_3 64 0
* SW19_4 0 0
* SW3S1 48 76
SW2STON1 64 128
* W28_8 0 64
* W28_8 0 0
* SW1S1 16 78
SW2STON2 64 128
* W28_8 0 64
* WARNA0 24 73
* W28_5 0 0
SW2STONE 64 128
* WALL01_1 0 0
* WALL01_2 16 0
* WALL01_3 32 0
* WALL01_4 48 0
* WALL01_1 0 72
* WALL01_2 16 72
* WALL01_3 32 72
* WALL01_4 48 72
* W33_8 0 64
* W33_8 0 120
* SW1S1 16 72
page 53
SW2STRTN 64 128
* SW12_4 0 0
* SW12_5 32 0
* SW1S1 16 72
;
SW1BLUE 64 128
* COMP03_1 0 0
* COMP03_2 0 64
* SW2_7 14 66
SW1CMT 64 128
* WALL54_1 -42 0
* SW3S1 16 72
SW1GARG 64 128
* WALL47_2 0 0
* WALL42_6 12 62
SW1GSTON 64 128
* WALL48_2 0 0
* SW2_7 13 67
SW1HOT 64 128
* WALL49_1 0 0
* SW2_7 12 66
SW1LION 64 128
* WALL47_2 0 0
* WALL42_5 11 62
SW1SATYR 64 128
* WALL47_2 0 0
* WALL42_1 12 62
SW1SKIN 64 128
* HELL6_3 0 0
* SW2_5 0 59
SW1VINE 64 128
* WALL00_1 0 -16
* W106_1 0 0
* SW4S0 20 84
SW1WOOD 64 128
* WALL40_2 -64 0
* SW2_7 14 66
SW2BLUE 64 128
* COMP03_1 0 0
* COMP03_2 0 64
* SW2_8 14 66
SW2CMT 64 128
* WALL54_1 -42 0
* SW3S0 16 72
SW2GARG 64 128
* WALL47_2 0 0
* WALL47_5 12 62
SW2GSTON 64 128
* WALL48_2 0 0
* SW2_8 13 67
SW2HOT 64 128
* WALL49_1 0 0
* SW2_8 12 66
page 54
SW2LION 64 128
* WALL47_2 0 0
* WALL47_4 11 62
SW2SATYR 64 128
* WALL47_2 0 0
* WALL47_3 12 62
SW2SKIN 64 128
* HELL6_3 0 0
* SW2_6 0 59
SW2VINE 64 128
* WALL00_1 0 -16
* W106_1 0 0
* SW4S1 20 84
SW2WOOD 64 128
* WALL40_2 -64 0
* SW2_8 14 66
page 55
APPENDIX II Animated Wall Textures in DOOM.WAD
SLADRIP1 64 128
* WALL57_2 0 0
SLADRIP2 64 128
* WALL57_3 0 0
SLADRIP3 64 128
* WALL57_4 0 0
SLADWALL 64 128
* WLA128_1 0 0
;
BLODGR1 32 128
* TP5_1 0 0
BLODGR2 32 128
* TP5_2 0 0
BLODGR3 32 128
* TP5_3 0 0
BLODGR4 32 128
* TP5_4 0 0
;
BLODRIP1 32 128
* RP2_1 0 0
BLODRIP2 32 128
* RP2_2 0 0
BLODRIP3 32 128
* RP2_3 0 0
BLODRIP4 32 128
* RP2_4 0 0
;
FIREBLU1 128 128
* W65B_1 0 0
FIREBLU2 128 128
* W65B_2 0 0
;
FIRELAV2 128 128
* W73A_2 0 0
FIRELAV3 128 128
* W73B_1 0 0
FIRELAVA 128 128
* W73A_1 0 0
;
FIREMAG1 128 128
* W74A_1 0 0
FIREMAG2 128 128
* W74A_2 0 0
FIREMAG3 128 128
* W74B_1 0 0
;
FIREWALA 128 112
* WALL23_1 0 0
FIREWALB 128 112
* WALL23_2 0 0
FIREWALL 128 112
* WALL22_1 0 0
page 56
GSTFONT1 64 128
* WALL58_1 0 0
GSTFONT2 64 128
* WALL58_2 0 0
GSTFONT3 64 128
* WALL58_3 0 0
;
ROCKRED1 128 128
* WALL64_2 0 0
ROCKRED2 128 128
* W64B_1 0 0
ROCKRED3 128 128
* W64B_2 0 0
page 57
APPENDIX III Listing of Sound Names for DOOM I and II
*Ripped off from DMGRAPH by Bill Neisius*
Then corrected and expanded to include DOOM II Sounds for this manual.
DeuTex uses DOOM's Sound names rather than the artificial Sound numbers
used in DMGRAPH. A Conversion table for this follows.
NOTE: An asterisk '*' means the Sound is used for multiple functions.
---------------------------------------
A) SOUNDS FOUND IN BOTH DOOM I and DOOM II
---------------------------------------
Weapons
DSPISTOL* Pistol firing
DSSGCOCK* Shotgun cocking
DSSHOTGN Shotgun firing (followed by cock)
DSSAWUP Chainsaw start
DSSAWIDL Chainsaw idle
DSSAWFUL Chainsaw with trigger pulled
DSSAWHIT Chainsaw hitting monster
DSRLAUNC Rocket Launcher firing
DSBAREXP* Rocket exploding
DSFIRSHT Fireballs shot or passing
DSFIRXPL* Fireball hitting object
DSPUNCH Player punching
DSPLASMA Plasma Gun firing
DSFIRXPL* Plasma Round hitting object
DSBFG BFG9000 firing
DSRXPLOD BFG9000 round exploding
Objects
DSPSTART Floor/Lift starting
DSPSTOP Floor/Lift stops (Clunk)
DSSTNMOV Stairs/ceilings moving
DSDOROPN Mechanical Door opening
DSDORCLS Mechanical Door closing
DSBDOPN Fast Door Open
DSBDCLS Fast Door Close
DSSWTCHN* Switch 'thunk' Sound
DSSWTCHX Switch 'pop' Sound
DSTELEPT Player/Monster teleport
DSSLOP GUTS/SLOP (What the name says)
DSITMBK Item Return in MultiPlayer
DSBAREXP* Barrel explosion
Player
DSSKLDTH Player Push on wall
DSNOWAY Player blocked by wall
DSOOF Player hitting ground
DSWPNUP Weapon pickup
DSITEMUP Item pickup
DSGETPOW Power up Sound (Soul Sphere, etc.)
DSPLPAIN Player injured
DSPLDETH Player dying scream
DSPDIEHI Player higher dying scream
page 58
Former Humans
DSPOSACT Former Human nearby breathing
DSPOSIT1 Former Human sees Player
DSPOSIT2 Former Human sees Player
DSPOSIT3 Former Human sees Player
DSPOPAIN* Former Human injured
DSPODTH1 Former Human Death Moan
DSPODTH2 Former Human Death Moan
DSPODTH3 Former Human Death Yell
Imps
DSBGACT Imps nearby oinking
DSBGSIT1 Imp sees Player
DSBGSIT2 Imp sees Player
DSCLAW* Imp clawing Player
DSPOPAIN* Imp injured
DSBGDTH1 Imp dying
DSBGDTH2 Imp dying
Demons/Spectres
DSSGTSIT Demon/Spectre sees Player
DSDMACT* Demon/Spectre nearby
DSSGTATK Demon/Spectre chomping Player
DSDMPAIN* Demon/Spectre injured
DSSGTDTH Demon/Spectre dying
Cacodemons
DSCACSIT Cacodemon sees player
DSDMACT* Cacodemon nearby
DSDMPAIN* Cacodemon injured
DSCACDTH Cacodemon dying
Barons of Hell
DSBRSSIT Baron sees Player
DSDMACT* Baron nearby
DSCLAW* Baron clawing Player
DSDMPAIN* Baron injured
DSBRSDTH Baron dying
Lost Souls
DSSKLATK Lost Soul attacking
DSDMACT* Lost Soul nearby
DSDMPAIN* Lost Soul injured
DSFIRXPL* Lost Soul dying
Spider Demon
DSSPISIT Spider Demon sees Player
DSMETAL Spider Demon walking
DSSPIDTH Spider Demon dying
page 59
Cyber Demon
DSCYBSIT Cyber Demon sees Player
DSHOOF Cyber Demon walking
DSCYBDTH Cyber Demon dying
Miscellaneous
DSPISTOL* Menu selections
DSPISTOL* Kills, Items, Secrets & Time at end of Level screen
DSSWTCHN* Esc to main menu
DSBAREXP* Level finished explosion at end of Level screen
DSSGCOCK* Proceed to next Level at end of Level screen
DSTINK "TINK" To Chat in Modem Play
----------------------------
B) SOUNDS FOUND ONLY in DOOM II
----------------------------
Weapons
DSDBOPN Open Super Shotgun
DSDBCLS Close Super Shotgun
DSDBLOAD Reload Super Shotgun
DSDSHTGN Fire Super Shotgun
Revenant
DSSKESIT Revenant sees Player
DSSKEACT Revenant nearby
DSSKEATK Revenant fires missile
DSSKESWG Revenant swings at player
DSSKEPCH Revenant punches player
DSSKEDTH Revenant dying
Mancubis
DSMANSIT Mancubis sees Player
DSMANATK Mancubis attacks
DSMNPAIN Mancubis injured
DSMANDTH Mancubis dying
Pain Elemental
DSPESIT Pain Elemental sees Player
DSPEPAIN Pain Elemental injured
DSPEDTH Pain Elemental dying
Baby Spider
DSBSPSIT Baby Spider sees Player
DSBSPWLK Baby Spider walking
DSBSPACT Baby Spider nearby
DSBSPDTH Baby Spider dying
page 60
Hell Knight
DSKNTSIT Hell Knight sees Player
DSDMACT* Hell Knight nearby
DSCLAW* Hell Knight clawing Player
DSDMPAIN* Hell Knight injured
DSKNTDTH Hell Knight dying
Arch-Vile
DSVILSIT Arch Vile sees Player
DSVILACT Arch Vile nearby
DSVILATK Arch Vile attacks
DSFLAMST Arch-Vile shoots Flame?
DSFLAME Arch Vile's Flame arrives
DSVIPAIN Arch Vile injured
DSVILDTH Arch Vile dying
Final Boss
DSBOSSIT Final Boss sees Player 'to win the game...' reversed
DSBOSPIT Final Boss spits Cube
DSBOSCUB Final Boss Cube lands and expands
DSBOSPN Final Boss injured
DSBOSDTH Final Boss dying
Wolfenstein
DSSSSIT Wolfenstein SS sees player. 'Schultstaffel'-'SS'
DSSSDTH Wolfenstein SS dying. 'mein lieben' -'My Life!'
DSKEENPN Commander Keen injured
DSKEENDT Commander Keen dying
Unknown
DSRADIO Phone Sound? Modem play?
page 61
+ ----------------------------------
+ C) CONVERTING DMAUD Sounds for DEUTEX
+ ----------------------------------
+
+
+
+ For all you DMAUD users out there, here's a chart you can use to
+ convert those DMAUD Sound Numbers to DOOM or DEUTEX Sound Names.
+
+
+
+ DMAUD NO. DEUTEX/DOOM Name
+
+
+ 1 DSPISTOL
+ 2 DSSHOTGN
+ 3 DSSGCOCK
+ 4 DSSAWUP
+ 5 DSSAWIDL
+ 6 DSSAWFUL
+ 7 DSSAWHIT
+ 8 DSRLAUNC
+ 9 DSRXPLOD
+ 10 DSFIRSHT
+ 11 DSFIRXPL
+ 12 DSPSTART
+ 13 DSPSTOP
+ 14 DSDOROPN
+ 15 DSDORCLS
+ 16 DSSTNMOV
+ 17 DSSWTCHN
+ 18 DSSWTCHX
+ 19 DSPLPAIN
+ 20 DSDMPAIN
+ 21 DSPOPAIN
+ 22 DSSLOP
+ 23 DSITEMUP
+ 24 DSWPNUP
+ 25 DSOOF
+ 26 DSTELEPT
+ 27 DSPOSIT1
+ 28 DSPOSIT2
+ 29 DSPOSIT3
+ 30 DSBGSIT1
+ 31 DSBGSIT2
+ 32 DSSGTSIT
+ 33 DSBRSSIT
+ 34 DSSGTATK
+ 35 DSCLAW
+ 36 DSPLDETH
+ 37 DSPODTH1
+ 38 DSPODTH2
+ 39 DSPODTH3
page 62
+ 40 DSBGDTH1
+ 41 DSBGDTH2
+ 42 DSSGTDTH
+ 43 DSBRSDTH
+ 44 DSPOSACT
+ 45 DSBGACT
+ 46 DSDMACT
+ 47 DSNOWAY
+ 48 DSBAREXP
+ 49 DSPUNCH
+ 50 DSPLASMA
+ 51 DSBFG
+ 52 DSCACSIT
+ 53 DSCYBSIT
+ 54 DSSPISIT
+ 55 DSSKLATK
+ 56 DSCACDTH
+ 57 DSSKLDTH
+ 58 DSCYBDTH
+ 59 DSSPIDTH
+ 60 DSHOOF
+ 61 DSMETAL
page 63
APPENDIX IV DeuTex and DeuSF COMMAND SUMMARIES
---------------
A) DeuTex COMMANDS
---------------
Command Line Format: DEUTEX <-optional cmds.> <-other cmds.>
******** 1) STAND ALONE COMMANDS:
-dmtextures Lists the DOOM Textures in TEXTURE?.TXT.
-check <myown.wad> Will look for Textures containing void columns.
-help Lists the parameters.
-syntax Prints short listing of the format of WADINFO.TXT.
-unused <thatlame.wad> Checks for unused bytes in a PWAD.
******** 2) OPTIONAL COMMANDS:
-doom <doom directory> Defines the DOOM or DOOM2 directory.
-dir <working directory> Defines the working directory.
-deu* Add 64K at the end of your PWAD for DEU.
-rgb <R> <G> <B> Defines the color used for 'transparent'.
-bmp \_________________/ Format used when EXTRACTING pictures. DeuTex
-gif / \ recognizes both when STORING pictures.
-ppm /
-wave \_______________/ Format used when EXTRACTING Sounds. DeuTex
-au / \ recognizes both when INSERTING Sounds).
-voc /
-fullsnd* For extracting oversize Sound entries.
-level \ / These tell DeuTex to select Sprites, Patches,
-lump \ / Sounds, etc. when composing, decomposing, or
-texture \___________/ merging PWADS. Commands can be combined.
-sound / \ By default, all entries are selected.
-graphic / \ Those switches can be combined.
-sprite /
-patch /
-flat /
******** 3) OTHER COMMANDS:
-iwad Used with -make, makes IWAD instead of a PWAD.
-wadir <thatcool.wad> Directory list, with entry identification.
-xtract <thatcool.wad> \/ Extracts resources from a PWAD and puts them
-extract <thatcool.wad> /\ into a subdirectory having the resource name.
-make <wadinfo.txt> <myown.wad>\ /Reads WADINFO.TXT and uses it to
-build <wadinfo.txt> <myown.wad> >< compose MYOWN.WAD from the files
-create <wadinfo.txt> <myown.wad>/ \in the subdirectories.
-merge <myown.wad> Will merge MYOWN.WAD with DOOM.WAD.
-restore Will restore DOOM.WAD and the merged MYOWN.WAD.
-join <myown.wad> <this.wad> Will merge THIS.WAD with MYOWN.WAD
-app <myown.wad> Will append DOOM sprites to MYOWN.WAD
-res <myown.wad> Will restore MYOWN.WAD
All these commands are like those of DeuSF
page 64
--------------
B) DeuSF COMMANDS
--------------
Command Line Format: DeuSF <optional cmds.> <mandatory cmds.>
******** 1) STAND ALONE COMMANDS:
-help Lists these parameters.
-format Displays format conventions a PWAD must follow.
-wadir <thatcool.wad> Lists the entries in the PWAD directory.
******** 2) OPTIONAL COMMANDS:
-doom <doom directory> Defines the DOOM or DOOM2 directory.
-sprite Used with -add or -app, to add only Sprites or only Flats. If
-flat neither of these commands is present, DeuSF will add both.
******** 3) MANDATORY COMMANDS:
-add <myown.wad> <allsf.wad> Creates ALLSF.WAD, with all Sprites and
Flats of DOOM.WAD and MYOWN.WAD.
-app <myown.wad> Appends unchanged DOOM Sprites and Flats
to MYOWN.WAD.
-join <this.wad> <that.wad> Appends the Sprites and Flats in THAT.WAD
to THIS.WAD.
-res <myown.wad> Restores PWAD modified with -app command.
-merge <myown.wad> Like DeuTex
-restore Like DeuTex
page 65
AFTERWORD
TRINITY.WAD: HOW I MADE IT.
For lost drunken men who no longer know
where they are, but DO care. (Cell #2)
Steve McCrea
<<FIRST DRAFT 8th September 1994>>
-----------------------------------------------------------------------
This information is published with DeuTex
with permission from Steve McCrea
This file is a bit obsolete. Get the last
version directly from Steve McCrea.
-----------------------------------------------------------------------
I am writing this article in response to numerous inquiries about the
techniques used in the creation of Trinity, and in particular a direct
request from Ian Mapleson. It is in no way intended as a textbook
approach, and I accept no responsibility for any time wasted as a
result of following the procedures documented here. I may stray from
the subject matter from time to time, as I said to the producer last
week... Although titled "How I Made It", this may not be strictly true.
I leave it as an exercise to the reader to determine which bits have
been glossed over for clarity.
LEVEL DESIGN
As with all design, it is important to have the right tools and be
familiar with them. I restricted myself unnecessarily at this early
stage by only downloading DEU. I think this was a big mistake. The
other editors out there may well have some great features I missed out
on totally. I know, for instance, that at least one of the others
supports auto stair construction. But since I didn't get the others, I
don't know what else is available to speed design. My recommendation
for those starting out in WAD design is to get them all, find out which
does what best and then mix and match. You may find yourself using one
for most of the layout and then just switching quickly to another to do
some trick or other. Hopefully you won't get too confused!
Before I started on Trinity, I had designed a few mini-levels in DEU.
The first was just one room, then I did a couple of Wolfenstein levels,
and so on. This got all the big mistakes out of the way, such as
overlaying lines and vertices, splitting sectors wrongly, and losing
work because DEU crashed. Then I laid out the courts in Trinity from
memory, and ran about in Doom checking that the scale felt right.
Initially there was an area surrounding the college but I dropped it
because it was going to be boring, and the map was huge anyway. I left
most walls the standard texture, and only added things like wood for
gates. Having satisfied the sense of scale, I put in most of the rooms
and passages, and added rough doors.
page 66
SCANNING PHOTOGRAPHS
About this time, I realized that it would be doing the college an
injustice to use the standard Doom textures. I decided to scan some
photographs of the college and put them in, so I borrowed Peter
Morgan's (thanks Pete) camera on a sunny day and wandered over to
Trinity. I tried to make the photographs I took clear from
obstruction, shadow free and square to the viewer, i.e., with as
little distortion as possible. I then scanned standard sized 6"x4"
prints at on average 150dpi with Bill Milne's (thanks Bill) color
scanner. I used Adobe PhotoShop on Bill's Mac to straighten the
images and crop off what I was sure I didn't need, but I DIDN'T
change the resolution or convert from 24 bit color and I DIDN'T
crop right up to the edges of what I wanted.
This was AFTER the test run on the Wren library, the southern upper
wall of the southwest courtyard (NOTE: Apologies to those who know
Trinity: yes, I have rotated the college 90 degrees!), when I scaled
the image to 64x256 and saved it as an 8 bit GIF. If you look
carefully at the texture in the level, you will see that it is now
128 wide, scaled from 64! Yech. I wasn't going to make that mistake
again, although I couldn't be bothered to rescan the Wren library.
When I was pretty sure what size I wanted for graphics, I COPIED
the images, cropped, scaled, tinted, smoothed, converted to GIF, and
so on. Some graphics didn't tile very well, and I either touched
them up to tile properly (e.g., stone) or mirrored one half (e.g.,
the windows on the outside of the dining hall).
There are three hand drawn graphics in Trinity: the sky, plaster, and
the burgundy wood paneling. Again I started with a 24 bit palette,
and used the pencil and airbrush tools before blending, motion
blurring, tinting etc. to produce the final image. Several edit
cycles were required to get something that I was (sort of) happy with
in Doom.
TALL WALLS
The standard Doom texture is a maximum of 128 pixels high, and on walls
higher than this the texture repeats vertically. Clearly I didn't want
this in Trinity, so I use a couple of tricks to avoid it. On walls with
void space behind (no sector behind) a sector is added with floor and
ceiling heights chosen to divide the wall into sections less than 128
high. (Notice that I say _less_ than 128 high. Initially you might
think, as I did, that 128 high would be perfect. However, if there is a
substantial color change from top to bottom of a texture then, as in
Trinity, glitches appear on the walls at the dividing lines due to
round off in the vertical texture mapping.)
page 67
_____________
/ added \
/ sector \
---------------------
tall wall
----------------- top of wall
| upper texture
| ----------------- ceiling of added sector
+----> normal texture
----------------- floor of added sector
lower texture
----------------- bottom of wall
Textures are applied as shown. The line between the sectors is marked
as 2S/Im/So in DEU, i.e., two sided, impassable, and blocks sound. The
blocks sound bit is to reduce the size of the REJECT data. See the
unofficial specs for details. The impassable bit is to prevent you or
monsters going into the sector (I had this problem with skulls
initially. It was disturbing to find skulls appearing from nowhere!).
The normal texture must be a single patch or the Medusa effect (looks
like snakes and you turn to stone) will occur.
In Doom, each texture is constructed from one or more graphics patches.
The texture definition contains no image data, just the size of the
texture, and a list of patches and their position in the texture. The
_patch_ definition contains the image data. For walls which already had
sectors behind them (e.g., above a doorway) non-repeating tall textures
are achieved by "stepping" the wall. A separate sector is required for
each step. In side view,
------- ceiling
|
|<-- top texture
|
-
|
|<-- middle texture
|
---------
doorway
------------------- floor
This is not as neat as the other method because the ceiling texture of
the sector between the top and middle textures will always be visible,
and must be chosen to minimize breaking up the look of the wall. It is
also harder to add because the sector should clearly be very thin (in
Trinity they are 2 units thick) and this is very fiddly work away from
the autogrid.
page 68
GRAPHICS ADDITION
Initially I just replaced patches in single patch textures. I hacked
around with DMGRAPH to make it convert a GIF directly to a patch.
Then I used a program I had previously written for sound lumps to
make a PWAD of patches with names the same as the names of patches in
single patch textures. These then replaced the same-named patches
when the PWAD is included using -file.
However a better solution was necessary as (a) I was running out of
single patch textures, and (b) I needed some user defined multipatch
textures. So I wrote a program to convert the texture definition
entries in the main Doom WAD to an ASCII format, and another which
recreated the binary definition entries from the ASCII format. The
big advantage of this method was that it allowed the creation of NEW
textures with sensible names like "stone" and "plaster". A typical
definition of a new texture "doorcrst", a 128x128 texture with
three old patches and one new:
DOORCRST 128 128
* door11_1 4 0
* door11_1 124 0
* door11_1 -116 0
* pcrest4 46 37
For textures to repeat properly when the length is greater than the
width of the texture, the width should be a power of two. For some
reason, the "aastinky" texture in Doom is 24 units wide. The last
eight columns of the graphic will never be seen (but they're not
very exciting anyway).
The first released version of Trinity had redefined switch textures,
so that when the switch was encountered later in the standard levels,
it looked really bad. In the second version I fixed this by setting
the switches into walls so that only the switch part of the texture
was visible. This is _highly_ recommended for levels which may be
grouped into PWAD episodes.
old switch texture
|
v
x--------x <-- thin sector with 'metal' textures
-----x---x--------x---x-----
^ ^ wall
| |
+------------+------ new switch surround
page 69
Actually it's just occurred to me that there is a neater, if more
memory hungry, way to do this seamlessly. Widen the switch texture
and put the new switch on the right of the old one, then when using
your new switch offset the texture by the appropriate amount. As
long as no other levels use a repeated switch on a wall, then this
is perfect. For example, say you wanted a new switch pair, you could
tack them on the right of the SW1BRN1 and SW2BRN1 switch pair. The
original definition of SW1BRN1 is
SW1BRN1 64 128
* wall02_2 0 56
* wall02_2 0 0
* sw3s0 16 75
which you redefine to be
SW1BRN1 256 128
* wall02_2 192 56
* wall02_2 192 0
* wall02_2 64 56
* wall02_2 64 0
* wall02_2 0 56
* wall02_2 0 0
* sw3s0 16 75
* pplast 96 0
* pplast 160 0
* sw3s0 144 75
The old switch is still at offset 0. The new switch is at offset 128.
Note the repetition of the wall patch. This allows for roundoff error
in the texture mapping engine, which expects similar texture to be
just to the left and just to the right of the texture being drawn.
Don't forget to define the other switch position SW2BRN1 similarly!
This technique allows for a large number of different switch designs
to be used in a PWAD. Not that I'm condoning the use of a large
number of switches in PWADs - in fact, some of the best PWADs are
totally ruined by switches everywhere. (No Return01s, I mean names,
mentioned. Speaking of which, which I'm not of course, did you know
that there are two graphics added to Return to Phobos? Switches!
Both of them! Good grief, Michael! _Beautiful_ WAD, but...)
Note: remember to make the textures a power of two wide if you want to
allow for roundoff.
[ The program used for trinity was DOOMTEX, available as dmtex10c.zip
[ DeuTex is easier to use that DOOMTEX, which was brilliant, but some
[ kind of hack, with no securities. DeuTex can do all DOOMTEX did.
page 70
THE "ANIMATION"
If you haven't seen Trinity.WAD, I recommend you look at it before
reading this section as it contains a massive spoiler. However if you
haven't seen Trinity you probably aren't reading this document (?!?),
so...
Several people have asked how the cyberdemon movie is done. I have
even heard it described as "voodoo magic"! Nothing could be further
from the truth. It is actually very simple. To quote Matt Fell in
the unofficial Doom specs 1.3,
"It is possible to change the walls and floors that are
animated, like the green blocks with a sewer-like grate that's
spewing green slime (SLADRIPx). The game engine sets up as many as 8
animation cycles for walls based on the entries in the TEXTURE
resources, and up to 5 based on what's between F_START and F_END. The
entries in FirstTexture and LastTexture, below, and all the entries
between them (in the order that they occur in a TEXTURE list), are
linked. If one of them is called by a sidedef, that sidedef will
change texture to the next in the cycle about 5 times a second,
going back to First after Last. Note that the entries between First
and Last need not be the same in number as in the original, nor do
they have to follow the same naming pattern, though that would
probably be wise. E.g. one could set up ROCKRED1, ROCKREDA, ROCKREDB,
ROCKREDC, ROCKREDD, ROCKREDE, ROCKRED3 for a 7-frame animated wall!"
Hence the movie in Trinity is defined in the ASCII texture file as a
series of textures SLADRIP1, MOVIE01, MOVIE02, ..., MOVIE98,
SLADRIP3. The important thing is the order in which the textures
are listed. The Doom EXE contains the names of the FirstTextures
and LastTextures so it isn't possible to have additional animation
cycles in a PWAD.
And because the Sprites and the Doom logo have the same format
as patches, they are just listed as if they were patches. For
example, a frame of the movie is defined
MOVIE08 256 128
* pblak 0 0
* pblak 64 0
* pblak 128 0
* pblak 192 0
* t 67 40
* r 86 40
* i 106 40
* n 124 40
* i 144 40
* t 162 40
* y 181 40
* m_doom 67 50
* cybre7 -20 20
* playf3f7 198 64
where "pblak" is a totally black patch, and t, r, i, n, and y are
the characters. Initially, the movie used the character set in the
game but this caused crashes (for a reason I won't go into now) so
after consulting ID, I included the character set again in the PWAD
with new names.
page 71
The technique described in the Graphics Addition section for adding
new switches can also be applied to new animated textures. Just
make the new animation length a multiple of the old length, and
put the old animation at the left of the textures. Don't forget to
satisfy the roundoff errors! You could squeeze twenty or more thin
animations into a large texture!
THE SKY
You may not have noticed, but the sky in the latest version of Trinity
doesn't repeat anywhere around the horizon. (Thanks to Olivier
Montanuy, author of DeuTex, for teaching me this trick.) This is done
by defining a sky texture (SKY1, SKY2, or SKY3 depending on the
episode) which is 1024x128 in size, and pasting patches into it so
that 0=East, 256=North, 512=West, and 768=South. Note that this means
that the textures are left/right mirrored! I can't think of any way
to make the sky texture animated. However you could fake twin skies
by only allowing the player to see half the sky during one part of a
level, and then later only allowing him to see the other half! A
crap example would be bright blue skies -> red skies+mushroom cloud.
It's probably a good idea to disorient the player in between with,
for example, a teleport, so he doesn't catch on to the trick too
quickly.
CONCLUSION
In this document I have outlined some techniques which can be used to
seemingly extend the Doom engine. The use of these inevitably slows
down Doom and so should be used sparingly, unless you _really_ need
(well, really _want_, anyway) the effect.
If you're about to start your first big WAD, collect together as many
tools as you can, and read all the documentation you can find,
particularly the Unofficial specs. Good luck!
page 72