home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 19
/
CD_ASCQ_19_010295.iso
/
vrac
/
dtexman.zip
/
DTEXMAN.TXT
< prev
next >
Wrap
Text File
|
1994-12-07
|
131KB
|
3,955 lines
DEUTEX/DEUSF 2.9
November 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.
-----------------------------------------------------------------------
****************************** FEATURES *******************************
------------
DeuTex
------------
DeuTex stands for DEU's Texture Companion.
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:
- Reverse engineer existing PWADs.
- Compose your own wall textures, by reusing DOOM patches or adding
your own patches as .BMP or .GIF files.
- Load sounds as .WAV, PC sounds as text (don't laugh!) and Music as
.MUS format.
- Add your own floors (still quite tricky. see manual).
- Add your own sprites (a bit tricky. see manual).
- Simple WAD creation directives from a text file.
- Simple directory structure (for the resources).
- Work in batch mode (like a compiler).
- Compatible with other level editors (like DEU).
- Merge a PWAD into the main IWAD, recreating the WAD directory, so
that ANY or ALL kinds of 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.
page i
-------------
DEUSF
-------------
DeuSF stands for DEU Sprite and Flats.
DEU is a DOOM level editor by Brendon Wyber and Raphael Quinet.
(Heck, I know the DeuSF name is lame, but it's short.)
DeuSF is inspired from DMADDS by Bernd Kreimeier, but is an alternative
to it. DeuSF will enable you to distribute PWADS with only the SPRITES
and/or FLATS that you wish to replace. There are some caveats here, so
read the manual! DeuSF will work with PWADs composed for DMADDS, but
DeuSF's preferred PWAD composer is of course DeuTex.
DEUSF Features:
- Recreate a complete sprite and flat PWAD from a partial sprite or
flat PWAD and the main WAD of DOOM.
WARNING: These programs have been used with DOOM2, but I cannot be
sure that all the functions will work perfectly with DOOM2.
The sprite names VILE[ VILE\ VILE] are not valid DOS file
names, and are replaced by VIL@A VIL@B VIL@C if and only
if used for file names.
***************************** DISCLAIMER *****************************
I cannot held be liable for damages consecutive to the use of
this program. I did my best to avoid any such occurrence, and
use only very basic commands. However, it is impossible to
state that these will work for all hardware and software
configurations.
Legalese: Read the license information at the end of this manual.
DeuTex/DeuSF are freeware and Copyright (c) O.Montanuy 1994.
DeuSF can be freely distributed.
DeuTex cannot be distributed for *any* commercial purpose,
with the sole exception of Compuserve download charges.
***************************** WHAT'S NEW? *****************************
FUTURE (DeuTex 3.0)
- Color Quantization, allowing TGA/PPM support.
- VOC sounds.
- Loading of Dehacked patches in a clean fashion (IF ALLOWED BY ID).
- Second Visual Basic shell (still under progress.)
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 executed: 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
page ii
New in version 2.7:
- Bad news for those who didn't register DOOM. I have received mail
from John Romero which 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 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:
- Extension to -merge. You can now change the number of viewpoints of
a sprite. DOOM wants either one view point (ex: COLUA0) or eight
viewpoints (ex: COLUA1 COLUA2A8 COLUA3A7 COLUA4A6 COLUA5). These are
mutually exclusive. DEUTEX will delete those viewpoints you do not
want, but take care to provide all the necessary viewpoints, or else
DOOM will lockup.
- Extension to -extract. When extracting sound, you can now tell
DEUTEX to extract the whole entry, beyond the declared sound length.
This is necessary for some PWADs, who cheat with the sound entry
length. I dunno why. (I believe it's due to a feature of DMAUD).
- Extension to -make. When loading a sound, DEUTEX now converts to
11025 sample/s. Better not rely too much on this, and use a real
sound utility. This is only for convenience.
- DEUSF can now change the number of viewpoints of a sprite as well.
DEUSF will delete those viewpoints you do not want, but take care to
provide all the necessary viewpoints, or else DOOM will lockup.
- Some bug corrections. Nothing critical :-)
************************** CONVIVIALITY ******************************
DeuTex and DeuSF have NO human interface. I will seriously frown upon
complaints about the lack of human interface. DeuTex and it's companion
DeuSF are MEANT to be run from BATCH files. Think of them as PWAD
compilers. You write your batch file once, and run the batch to re-
create your PWAD, each time you modify an entry.
***********************************************************************
page iii
*************************** Known problems ****************************
- DeuTex makes limited checks on your PWAD. I check only texture
consistency, and coherency of S_START/S_END, F_START/F_END.
Any suggestions?
- BMP 24bit color quantization is slow. I have a quite fast quantizer,
but it's a bit lossy, and needs *some* init time. Not implemented
in this version.
- Entry type identification does not always work with every PWAD. No
general solution to this problem, only best effort. Void entries are
saved as LUMPS. Sprites and Flats are missed if conventions are not
respected. (files generated by hand or by WACKER-beta7)
- GIF format defaults to GIF87.
- BMP format is a bit hacked. My painting tools accept it, but Visual
Basic refuses it. If this happens, load the file with a good
program, overwrite it with a save from that program, and then it
will work. :-)
- WAVE (.WAV) and AUDIO (.AU) file format are hacked. Might not
*always* work correctly. No one ever sent me the specs! If you have
the specs, my mailbox is waiting for your kind contribution!
- No MIDI support. I dunno how to write the code, but I'm looking at
the code of Just_Joe (that I don't understand at all).
- Levels must be complete before DeuTex will insert them in a PWAD.
This means: nodes, reject, blockmap and such must exist.
- DeuSF does NOT test that all required sprite viewpoints are
available when changing 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.
not yet.
*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 iv
******************************* Contents *****************************
Data Utility License i
Features i
Disclaimer ii
What's New? ii
Conviviality iii
Known Problems iv
Chapter 1 OVERVIEW 1
A) What is DeuTex? 1
B) Installation 1
C) Directories and DeuTex 3
D) What do I need? 4
E) What do I do? 4
F) What is DeuSF for? 4
G) What are the Palettes For? 5
Chapter 2 DIRECTORY STRUCTURE 6
A) \Levels 7
B) \Lumps 8
C) \Textures 9
D) \Sounds 10
E \Graphics 10
F) \Sprites 11
G) \Flats 11
H) \Patches 12
Chapter 3 DEUTEX COMMANDS 13
A) Complete Command Reference 13
B) Help Commands 13
C) Optional Commands 13
D) Commands to Compose or Decompose WADS 14
E) Commands for merging PWADS into the Main IWAD 15
Chapter 4 DEUSF COMMANDS 17
A) Summary 17
B) Complete Command Reference 18
C) Help Commands 18
D) Optional Commands 18
E) Mandatory Commands 19
Chapter 5 FORMATS 20
A) The WAD Creation Directive (WADINFO.TXT) 20
B) The Texture Definition File (MYTEXT.TXT) 23
page v
Chapter 6 WORKING WITH WADS 27
INTRODUCTION 27
A) How to Decompose a PWAD 27
B) How to Create a PWAD with new TEXTURES 28
C) How to Create a PWAD with new SPRITES and FLATS 28
D) How to Create a PWAD with new SOUNDS 29
Chapter 7 TEST-ME or What's inside TRINITY.WAD? 30
A) About Test-Me 30
B) Listing the Directory 30
C) Decomposing TRINITY.WAD 30
D) Recomposing TRINITY.WAD as TRINIDAD.WAD 31
E) Customizing TRINITY.WAD
Chapter 8 VBDEUTEX 32
Chapter 9 NECESSARY STUFF 33
A) License Agreement 33
B) Legal Stuff 33
C) Thanx 35
D) Where to get DeuTex/DeuSF 37
E) Final Words 37
APPENDICES
I) Switch Textures in DOOM.WAD 38
II) Animated Wall Textures in DOOM.WAD 42
III) Sound Names for DOOM 44
A) Sounds found in BOTH DOOM I and DOOM II 44
B) Sounds found ONLY in DOOM II 46
AFTERWORD
Trinity.wad - How I Made It by Steve McCrea 48
page vi
CHAPTER 1
****************************** OVERVIEW *******************************
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 DOOM or
DOOM II 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.
This organization is the reason for all the directories involved, and
everything is actually pretty simple once it's explained. The DOOM and
DOOM II WADs provide a framework. Your PWAD modifies the framework in
various ways. For DeuTex, you put each type of change (sounds,textures,
etc.) into it's own subdirectory. When you're ready to test, you run a
batch file that takes all your modifications out of the directories and
creates a PWAD from them.
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. Your final map with nodes, reject and blockmap already
calculated is just another resource to DeuTex. If you don't redefine or
create textures, flats sounds, etc. in your PWAD, you don't need
DeuTex. If you redefine LOTS of stuff, you'll wonder how you 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 the 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.
The file name is DEUTEX.ZIP or something like it. Depending on where
you got it, the file name may differ, and there may be some changes due
to different versions, but overall this manual should cover pretty much
everything you want to know about it.
Different versions of DEUTEX contain different numbers of files. There
are 28 files in the biggest one I know of. This manual contains all the
text files from various versions, and thus makes them unnecessary.
Whatever version you have, you should unzip it with the PKUNZIP -d
option to retain the directory structure of the files. If you are
upgrading from a previous version, don't unzip the new version in the
same place as the old one. PKUNZIP will complain about creating
directories that already exist.
page 1
You don't have to make a directory for DEUTEX itself, since it will be
created when you unzip. Just copy the zip file to whatever directory
you want to start from. When unzipped, DEUTEX.ZIP will still be there,
but all the other files will have been placed in an assortment of
subdirectories.
Type: <path> PKUNZIP -d DEUTEX.ZIP
The -d tells PKUNZIP to keep the directory structure in the ZIP file.
If you put your PKZIP files in a directory on your path, you won't need
to type the path statement above, or ever again for that matter (when
you unzip files, that is).
If everything goes as planned, DEUTEX.ZIP will blow up into something
like the following structure (the example shown is the version with 28
files mentioned above):
NOTE: \msdos may be \linux,\unix or \os2 depending on your version.
C:\ -------- deutex.zip
|_
\DEUTEX\ ------- file_id.diz
| readme.txt
|_
| \MSDOS\*-- deusf.exe
| deutex.exe
| deutex.pif
| vbdeutex.exe
| vbdeutex.txt
|_
| \TEST-ME\ --- test-me.txt
| trinity.bat
| trinity.cmd
|_
\MANUAL\ ------- deusf.txt
| deutex.txt
| license.txt
| summary.txt
| thanks.txt
|_
| \EASY\ --- decompos.txt
| sound.txt
| sprites.txt
| texture.txt
|_
\ADVANCED\ ------- format.gif
| format.txt
| midi2mus.exe
| soundlis.txt
| trinity.txt
| warning.txt
|_
\PALETTE\ ------- doompal.pal
doompal.ppm
readme.txt
17 of the 28 files listed above are text files that are incorporated
in this manual. You can delete them all. If you don't have a bulletin
board fetish, you don't need file_id.diz either. Do what you like with
DEUTEX.ZIP. Put it on a floppy in case you ever have to reinstall.
page 2
After deleting the text files, do the following:
Leave DeuTex\test-Me alone, when you do this demo, you'll want it to be
in its own directory.
Copy all the other remaining files to \DeuTex. Delete all the other
directories except test-me. Now copy this manual to \DEUTEX, and let's
look at what we have:
C:\_
\DEUTEX\ ------------------- deusf.exe
| deutex.exe
| deutex.pif
| deutxman.txt
| doompal.pal
| doompal.ppm
| format.gif
| midi2mus.exe
| vbdeutex.exe
|_
\TEST-ME\ --------- trinity.bat
trinity.cmd
Ahhh! That's better. You'll probably get rid of format.gif after you
see the ascii art masterpiece gracing this manual, and after you do
test-me and understand it, that's history, too! So now DeuTex looks
like it might be manageable after all.
C. DIRECTORIES AND DeuTex
If this section's about directories, then what were we just talking
about? Well, one reason it's a good thing to get DeuTex pared down to
size on installation is that when you use it, there is a directory
structure involved, and remembering one is easier than two, right?
Chapter 2 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!
page 3
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. My time on the net is
limited. 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
DOOMSPECS 1.3 by Matt Fell. 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.
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, and it's not really legal to take DOOM's
Sprites or Flats, put them in your PWAD, and then distribute them
(kinda splitting hairs, I know). So DeuSF allows you to replace as few
sprites and flats as you desire, and distribute IT 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!
page 4
G. WHAT ARE THE PALETTES FOR?
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 are liable to 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 has the
capability, but design of a good quantizer was not the highest priority
for the type of program DeuTex is. With this in mind, if you have any
edited graphics you want to insert with DeuTex, you should be aware of
the following:
Avoid 24bit BMP format! 24bit BMP color quantization is slow. I have a
quite fast quantizer, but it's a bit lossy, and needs *some* init time.
Therefore, it's not implemented in this version.
Use 8bit (256 color) and have the color quantization done by a serious
program. If you don't quantize the colors, DeuTex will, but it's slow,
and doesn't provide any dithering, so it's lame, too.
The enclosed color 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:
1) load the file you want to convert
2) in the color menu, select: load palette
browse to find doompal.pal and select it
3) save the file as a bitmap (.BMP)
If you want to make a .PBM (portable bitmap), use ppmquant on your
picture, with doompal.ppm as the reference for colors.
You know another method? Just tell me!
page 5
CHAPTER 2
************************* DIRECTORY STRUCTURE *************************
First: You can enable DeuTex/DeuSF to locate your REGISTERED doom or
doom 2 files by creating an environmental variable DOOMWADDIR
that points to your DOOM path like:
set DOOMWADDIR= d:\doom (in autoexec.bat under DOS)
setenv DOOMWADDIR ~/doom (in .tcshrc under Linux/Unix)
This is more important for the LINUX 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 this occurs, use DOS Help for the SHELL command to find out
how to increase your environment space.
DeuTex uses the following directory structure to store DOOM entries.
First create a directory (call it MYWADIR or whatever) for your wad.
Make sure DeuTex is on your path, or put a copy of it in MYWADIR. Put
a copy of the wad 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 wad 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> -textures
DeuTex will read the textures from DOOM.WAD or DOOM2.WAD, list them in
a file called TEXTURE1.TXT (and TEXTURE2.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. See Chapter 3 for
a 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\---texture1.txt
texture2.txt
page 6
If your wad 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.
If you want to add something to your wad, put it in the proper
subdirectory (create it if it's not there), and tell wadinfo.txt about
it. Chapter 5 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 wad 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 DOOM\WADS\mywad.wad mywad.bak
copy mywad.wad DOOM\WADS\mywad.wad
This way, if you find out you've really screwed things up when you test
your wad, 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.
Suppose you want your PWAD to consist of two levels, E1M2 and E3M4.
Name the two (bare) levels E1M2.WAD and E2M4.WAD, and put them here.
Then edit the LEVELS section of WADINFO.TXT to read:
Begin: LEVELS
E1M2
E3M4
End: LEVELS
This tells DeuTex to look in the LEVELS\ subdirectory for E1M2.WAD
and E3M4.WAD.
page 7
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 corresponds to a light level of
247-255, and doesn't change the display at all. The 32nd
map corresponds to a light level of 0-7 and maps almost
all colors to the darkest one in the presently used
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 (DOOM) / Text file remapping MIDI instruments
DMXGUSC.LMP (DOOM II) \ 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:
Begin: LUMPS
ENDOOM
DEMO1
End: LUMPS
and DeuTex will look here for ENDOOM.LMP and DEMO1.LMP
page 8
C. \TEXTURES
This subdirectory contains a text file(s) describing the texture
changes you want in your PWAD (Chapter 5 describes texture definition
files). Your file can be given any name you want (except TEXTURE1.TXT
or TEXTURE2.TXT). This name (without extension) is then entered in the
TEXTURES section of WADINFO.TXT.
FILES PUT HERE HAVE THE EXTENSION (.TXT). THE TITLE OF ANY FILE PUT
HERE MUST BE DECLARED IN THE TEXTURES SECTION OF WADINFO.TXT.
The file names TEXTURE1.TXT and TEXTURE2.TXT are reserved. Due to an
amazing bug (in DOOM?), if there are any new or redefined textures in
in a PWAD, DOOM no longer looks at it's existing TEXTURE1 list. If you
use ANY new textures, TEXTURE1.TXT must be here or DOOM will crash.
Also, TEXTURE1.TXT in this subdirectory should ALWAYS contain ALL the
UNCHANGED TEXTURE1 definitions.
DeuTex defines all new and modified textures in TEXTURE1.
TEXTURE2 is redefined only if needed. This way, it works with both
DOOM1 and DOOM2 (TEXTURE2 does not exist in DOOM2).
DeuTex automatically looks here for TEXTURE1.TXT and TEXTURE2.TXT, so
you don't need to declare them in WADINFO.TXT. This is because the
order of declaration seems critical.
When DeuTex sees TEXTURE1.TXT here, it uses it to REPLACE the default
TEXTURE1.TXT in the main DOOM.WAD. It then tacks on any other texture
definition files you have put here. If you delete texture entries in
the TEXTURE1.TXT or TEXTURE2.TXT file, make sure that you redefine them
somewhere. If they are never defined, DOOM will halt when it looks for
such a texture.
EXAMPLES:
If you want to add ONLY new textures:
- Run DeuTex -textures to get the textures.
- Leave TEXTURE1.TXT here.
- Delete TEXTURE2.TXT. (if you leave it, if will be loaded. No harm
done but your PWAD will be about 8K bigger)
- Put your definition file here (e.g. MYTEXT.TXT), and declare
MYTEXT in the TEXTURES section of (WADINFO.TXT).
If you want to redefine textures in TEXTURE1:
- Run DeuTex -textures to get the textures.
- Leave TEXTURE1.TXT here.
- Delete TEXTURE2.TXT. (if you leave it, if will be loaded. No harm
done but your PWAD will be about 8K bigger)
- Cut the textures to be redefined from TEXTURE1.TXT and paste
them into MYTEXT.TXT. Edit them or change them as you wish.
- Declare MYTEXT in the TEXTURES section of WADINFO.TXT.
page 9
If you want to redefine old textures (of TEXTURE2):
- Run DeuTex -textures to get the textures.
- Leave TEXTURE1.TXT here.
- Leave TEXTURE2.TXT here.
- Cut the textures to redefine out of TEXTURE2.TXT and put them
in MYTEXT.TXT. Edit and change them as you wish.
- Declare MYTEXT in the TEXTURES section of WADINFO.TXT.
APPENDICES I and II contain lists of the animated and switch textures
from DOOM.WAD (Not the new ones from DOOM II, sorry. Use DeuTex to make
your own list). Copy the portion you want to edit into MYTEXT.TXT. It's
a little easier than hunting through the entire TEXTUREx.TXT files.
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 contains a list
of the sound names used in DOOM and DOOM II). 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]
MUS format (RAW format, which can be created from MIDI files with
MIDI2MUS.EXE, provided by ddt).
SOUNDCARD SOUND EFFECTS: [DSxxxxxx.WAV]
Windows WAVE file (.WAV). Use a converter if you prefer .AU.
Preferably use 11025 sample/second for your recording.
PC-SPEAKER: [DPxxxxxx.TXT]
Text files (.TXT) with numbers 0-255
WARNING: DeuTex assumes that any file name beginning with:
'D_' is music.
'DS' is soundcard sound effect.
'DP' is PC speaker sound effect.
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 new TITLEPIC.BMP and VICTORY2.BMP graphics.
Put the files here and just declare them in the GRAPHICS part, like:
Begin: GRAPHICS
TITLEPIC
VICTORY2
End: GRAPHICS
This tells DeuTex to look here for TITLEPIC.BMP (or .GIF)
and VICTORY2.BMP (or .GIF).
page 10
************ 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 insert SPOSA1.GIF and TROOB2.BMP as new sprites.
Put the files here, and then declare them in the SPRITES section of
WADINFO.TXT, like:
Begin: SPRITES
SPOSA1
TROOB2
End: SPRITES
This tells DeuTex to look here for SPOSA1.BMP
(then SPOSA1.GIF) and TROOB2.BMP.
G. \FLATS
For new floors and ceilings as 64x64 (.BMP) or (.GIF) files.
WARNING: TO MAKE USE OF YOUR NEW FLATS, YOU MUST MERGE YOUR PWAD WITH
DOOM.WAD OR USE DEUSF TO REGENERATE ALL THE FLATS OF THE MAIN
IWAD 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 to insert MUDDY.BMP and HATCH.BMP as new Flats. Put
the FILES here, and declare them (no extension) in the FLATS section
of WADINFO.TXT, like:
Begin: FLATS
MUDDY
HATCH
End: FLATS
This tells DeuTex to look here for MUDDY.BMP and
HATCH.BMP, BUT, SEE WARNING ABOVE!
page 11
H. \PATCHES
Put any new PATCHES here as (.BMP) or (.GIF) files. DeuTex will load
any .BMP or .GIF files it finds here. They don't have to be part of
a redefined texture in MYTEXT.TXT. If you want the little man in the
danger symbol to be a little woman, just edit the patch, and throw it
in here. You don't need to redefine all the textures that contain it.
Note that WADINFO.TXT contains no PATCHES section. The texture
definition file in the \TEXTURES directory of describes where PATCHES
go in your new textures. When DeuTex reads WADINFO.TXT, it finds the
name of your texture definition file in the TEXTURES section (e.g.
MYTEXT). It then looks for MYTEXT.TXT in the \TEXTURES subdirectory.
It looks here for any PATCHES mentioned in MYTEXT.TXT.
NOTE: If you declare a NEW or MODIFIED patch in MYTEXT.TXT, there MUST
be a corresponding .BMP or .GIF file here.
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.BMP, and WARNA0.BMP here.
THEN: Define your new TEXTURE in MYTEXT.TXT as shown below:
Begin: TEXTURES
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
End: TEXTURES
The asterisks tell DeuTex to look here for PATCHES called WOODEN0.BMP,
KNOB0.BMP, WARNA0.BMP and EXIT1.BMP. Note that WOODEN0 had better be
256x128 or bigger, otherwise 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 SHOULD automatically look here for ALL patches mentioned in
MYTEXT.TXT. Sometimes it fails to replace patches that already exist in
DOOM.WAD (e.g. WARNA0 above). Then the patch will be displayed as the
old patch even though you meant to change it. If this happens, put the
unrecognized patch in the GRAPHICS\ subdirectory, and declare it
explicitly in the GRAPHICS section of WADINFO.TXT.
page 12
CHAPTER 3
*************************** DeuTex Commands ***************************
A. COMPLETE COMMAND REFERENCE
I am lying: 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 section of 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.
-rgb* <R> <G> <B>
When you include GIF or BMP with DeuTex, the color CYAN
(R=0 G=255 B=255) is assumed to be transparent. You can
specify here an alternate color to represent transparency.
(Only the pixel of EXACTLY that color will be transparent).
page 13
-bmp File format to use when EXTRACTING pictures. DeuTex will
-gif recognize either one when STORING pictures in a PWAD. The
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
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.
-level These tell DeuTex to select sprite, patch, sounds, etc ...
-lump when composing/decomposing/merging PWADS. These commands
-sound can be combined. By default, all entries are selected.
-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 or all the flats. Enables
you to rebuild 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, floors, patches, sprites,
sounds, levels from a WAD and put them into a subdirectory
of the with the same name. Also lists any texture entries
of the wad in a file called TEXTURE1.TXT, which it puts in
a subdirectory called \TEXTURES. 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 on FORMATS for a
description of WADINFO.TXT and TEXTURE1.TXT. This command
will not overwrite already existing entries. It will
complain and stop instead.
page 14
-textures 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
subdirectory called TEXTURES. If \TEXTURES does not exist,
it will be created. This command will not overwrite
TEXTURE1.TXT or TEXTURE2.TXT if they are already present.
-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 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.
page 15
NOTE ON SAFETY:
- ONLY 8 BYTES of DOOM.WAD are modified
(but the PWAD file size increases about 32K...)
- If all else fails, you can restore your IWAD by hand.
- MYOWN.WAD is put INTACT into DOOM.WAD. It can then be
deleted since -restore recreates it. This is barely a
modification at all!
- Only about 32k of additional disk space are needed.
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.
page 16
CHAPTER 4
*************************** DeuSF Commands ****************************
A. SUMMARY:
DeuSF is an improved replacement for DMADDS. It adapts to all versions
of DOOM, requires a less perverted PWAD structure and appends to a PWAD
rather than generating a new PWAD (thereby saving space). DeuSF will
work 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
The first command appends the necessary Sprites and Flats.
The second command plays the wad.
The last command restores everything to where it was.
This kind of PWAD should PREFERABLY be built with DeuTex.
page 17
An example of DeuSF usage on ALIENDOOM 1.0:
DeuSF -doom c:\doom -sprite -add ALIENGFX.WAD ALINGRFX.WAD
or, even better:
DeuSF -doom c:\doom -sprite -app ALIENGFX.WAD
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.
Note: version 1.0 of NewWadTool is not as powerful as DeuSF for
inserting sprites and flats. This should improve in future
versions, eventually achieving full compatibility between the
two tools.
B. COMPLETE COMMAND REFERENCE:
All optional commands must appear before non-optional ones or
else they will be ignored.
Command Line Format:
DeuSF <optional cmd.>,...,<non-optional cmd.>,...,etc.
C. 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.
D. 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.
-flat Default for -add and -app is to add both.
page 18
E. MANDATORY COMMANDS (one of the following will always be used)
-add <myown.wad> <allsf.wad>
Will create a new file, ALLSF.WAD, containing all the
sprites and flats of DOOM.WAD together with those contained
in MYOWN.WAD.
-app <myown.wad>
Will append to MYOWN.WAD only those sprites of DOOM which
are not redefined. This saves disk space, compared to -add
command.
-res <myown.wad>
Restores a PWAD which had been modified with -app command.
Quite safe.
page 19
CHAPTER 5
******************************* FORMATS *******************************
----------------------------
A) The WAD Creation Directive
WADINFO.TXT
----------------------------
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
contains 6 sections: LEVELS LUMPS TEXTURES SOUNDS GRAPHICS FLATS.
They are in the same order as found in DOOM.WAD and DOOM2.WAD.
The sections MUST appear in this order. Those not in the right order
will be ignored without warning. All sections are optional, and may be
deleted provided the remaining sections are in the correct sequence.
NOTE: There is no PATCHES section. PATCH loading is automatic.
No PNAMES entry is defined. PNAMES creation is automatic.
TEXTURE1 and TEXTURE2 are reserved TEXTURE names. TEXTURE1 must
be present if *any* texture is redefined. TEXTURE2 does not have
to be present if no registered (DOOM1) texture is redefined. If
it is, no harm done, but your PWAD will be about 8K larger.
************************ WADINFO.TXT *****************************
#
# Lines beginning with '#' are comments.
# An asterisk after an entry means set equal to preceding entry
#
# The LEVELS section define the DOOM1 levels and DOOM2 maps.
#
Begin: LEVELS
E1M2 #DeuTex will look for LEVELS\E1M2.WAD
MAP04 #DeuTex will look for LEVELS\MAP04.WAD
End: LEVELS
#
# E1M2.WAD must contain all the 11 entries that define a level.
# meaning the NODES, BLOCKMAP and REJECT must have been built.
#
# if E1M2.WAD contains one level, it will be selected.
# if E1M2.WAD contains many levels, the one named 'E1M2' will be
# selected.
#
# The LUMPS section defines the lumps of raw data for DOOM.
#
Begin: LUMPS
ENDOOM #DeuTex will look for LUMPS\ENDOOM.LMP
DEMO1 #DeuTex will look for LUMPS\DEMO1.LMP
End: LUMPS
#
# 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.
#
page 20
# The TEXTURES section defines the new textures.
#
#
Begin: TEXTURES #DeuTex will first load MYWADIR\TEXTURES\TEXTURE1.TXT
MYWALLS #DeuTex will look for MYWADIR\TEXTURES\MYWALLS.TXT
#DeuTex will now look for MYWADIR|TEXTURES\TEXTURE2.TXT
End: TEXTURES
#
# In the example above, if DeuTex does not find
# MYWADIR\TEXTURES\TEXTURE1.TXT, it is not loaded, the normal TEXTURE1
# textures from DOOM will not be present, and your PWAD will crash.
# Therefore, if you REDEFINE or CREATE ANY texture (from TEXTURE1 *OR*
# TEXTURE2), TEXTURE1.TXT (with the redefined entry removed) MUST be
# present. It must ALWAYS be loaded first. Must be a bug...
#
# TEXTURE2 is optional. Redefine it only if you need to modify one of
# the DOOM1 registered textures. DOOM2 does not contain a TEXTURE2
# entry. If it's here when it's not needed, it will be loaded.
# This won't hurt your PWAD, except to make it 8K fatter.
#
# The SOUNDS section defines MUSIC, PCSOUNDS and WAVE SOUNDS
#
Begin: SOUNDS
D_E2M3 #DeuTex will look for SOUNDS\D_E2M3.MUS. It
#must be present or your wad will make DOOM
#stop and your computer lock up.
#this is the music of Episode2 Mission3
D_E3M4 * #sets D_E3M4 music to be equal to D_E2M3
D_MAP01 * #set D_MAP01 music to be equal to D_E2M3
DSSLOP #DeuTex will look for SOUNDS\DSSLOP.WAV or .AU
#this is a WAVE sound, meant for sound cards.
DPSLOP #DeuTex will look for SOUNDS\DPSLOP.TXT
#this is a PC speaker sound.
End: SOUNDS
#
# MUS format can be obtained from MIDI with MIDI2MUS, or converted
# back to MIDI by MUS2MIDI (by just_joe). These are separate utilities.
# This is not a feature of DeuTex because I have no knowledge of MIDI.
#
# The WAV and AU format were hacked. DeuTex can't read compressed data.
#
# The format PC-speaker sound is a list of integers (range 1-255).
# Must represent the inverse of frequency or something. I dunno.
#
#
# The GRAPHICS section defines all the fixed pictures.
# (Not sprites, patches, or flats)
#
Begin: GRAPHICS
WIMAP1 #DeuTex will load GRAPHICS\WIMAP1.BMP
STHURT1 23 45 #DeuTex will load GRAPHICS\STHURT1.BMP
#and set the insertion point to 23,45
STHURT2 * #DeuTex will set STHURT2 equal to STHURT1
End: Graphics
#
# 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 :-)
#
#
page 21
# This section declares the SPRITES.
#
Begin: SPRITES
BOSSB1 #DeuTex will load SPRITES\BOSSB1.BMP or .GIF
#and calculate insertion point by itself
BOSSA1 10 20 #DeuTex will load SPRITES\BOSSA1.BMP or .GIF
#and set the insertion point to 10,20
BOSSA2A8 * #DeuTex will set BOSSA2A8 equal to BOSSA1
End: SPRITES
#
# 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.
# - 'xxxx' exists as a patch in the original DOOM, and the file
# PATCHES\xxxx.BMP (or .GIF) exists. (replacement of existing patch)
#
#
#
# The FLATS section declares the Floors and Ceilings
#
Begin: FLATS
GRASS #DeuTex will load FLATS\GRASS.BMP (or .GIF)
HERBE * #DeuTex will set HERBE to be equal to GRASS
End: FLATS
#
# 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'll have to rebuild the complete FLAT
# list with DEUSF each time you want to use the PWAD.
#
#
# WAD creation directives end here.
#
page 22
-----------------------------------
B. The Texture Definitions Text File
TEXTURES\MYTEXT.TXT
-----------------------------------
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 one patch
only, or else you'll get the Medusa Effect.
- Avoid using a texture of height less than 128 on a wall with a
height greater than that of the texture (Tutti Frutti effect).
- READ the DOOM SPECS by Matt Fell.
- Texture widths should be rounded to the next power of 2.
(8,16,64,128,256,512,1024 are usable)
- The patches composing textures shall not be more than 320 wide.
- DOOM will ignore heights above 128.
- READ the DOOM SPECS by Matt Fell.
- You can create a non repeating sky texture:
Define the SKY1 (or SKY2, or SKY3) entry as a 1024x128 area
and place patches so as to cover it all. Note that the patches
will 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:
Redefine one of DOOM's existing animated
walls(beginning and end), and add any extra
entries between them in the 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 ignore everything above 128)
- Any texture is not completely covered by patches.
(DOOM exit with a void column error)
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)
page 23
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 24
Texture Definition File Example
***************************** MYTEXT.TXT ******************************
#
# Anything following a '#' is ignored (comment).
#
# An asterisk '*' at the beginning of a line indicates a PATCH.
#
#
Begin: TEXTURES
#
# 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
# respectively 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
#
# new texture HADDOCK, composed of new and old ones
#
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
#
page 25
#
ZZZA 128 128 #Frame 2 inserted.
* WALL62_1 0 0
* BOSSB1 75 47
* GOR2A0 20 -50
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
############################################
End: TEXTURES
#
#
# file ends here. bye!
page 26
CHAPTER 6
************************** WORKING WITH WADS **************************
INTRODUCTION
Read the DOOM SPECS:
Sorry. This is still unavoidable.
NOTE: In the discussion that follows, remember to avoid the
following common mistakes:
Hall of Mirrors with new textures:
Care has been taken to ensure that DeuTex loads the old
TEXTURE1 textures before adding new textures.
However, it is still a good idea to:
First, create your level.
Then, build the nodes and reject.
Then add the new textures.
I don't do this myself, and it still works, but leonardc@halcyon.com
has reported this error. It seems to be a problem with node
builders, but I'm quite confused...
Tutti Frutti and Medusa Effect:
See the DOOM specs, and the FORMATS chapter.
Doom reports a void column and exits:
Use DeuTex -check on you PWAD before running DOOM. It will tell
which textures still have void columns.
Other bugs:
Mail me a description of the bug, together with your
configuration file. Don't expect a quick answer, though.
-----------------------
A. How to decompose a PWAD
-----------------------
First check that all the entries are identified correctly:
DEUTEX -wadir NEWBIE.WAD This will list the directory.
To extract all the entries:
DEUTEX -xtract NEWBIE.WAD The whole directory structure is
extracted, and WADINFO.TXT is
created.
To extract only a part of the directory; sounds, for instance:
DEUTEX -sound -xtract NEWBIE.WAD Only the sound directory is created.
NOTE: Some PWAD creators declare PATCHES, FLATS and SPRITES outside of
the normal boundaries. In that case, DeuTex may not identify them
correctly, and they'll end up in another directory (under a wrong
format). I'm sorry about this, but there is *nothing* I can do.
page 27
Once you have decomposed a PWAD, you can rebuild it with:
DEUTEX -make WADINFO.TXT NEWBIE.WAD
WADINFO.TXT was automatically created in the first steps (cool, no?).
NOTE: DEUTEX puts a signature at the beginning of each PWAD created, to
identify the DEUTEX version that was used.
--------------------------------------
B. How to create a PWAD with new TEXTURES
--------------------------------------
First list the textures of DOOM:
DEUTEX -texture
Then look at .\TEXTURES\TEXTURE1.TXT and .\TEXTURES\TEXTURE2.TXT.
To create a new texture, declare it in .\TEXTURES\MYTEXT.TXT.
MYTEXT.TXT can be any name *except* TEXTURE1 or 2. See the chapter
on FORMATS for a more precise definition. If you want to redefine a
TEXTURE1 or TEXTURE2 entry, remove it from TEXTURE1.TXT or TEXTURE2.TXT
and put it in MYTEXT.TXT. If you don't redefine textures from
TEXTURE2.TXT, delete that file. For compatibility with DOOM2,
TEXTURE2.TXT should not exist.
Declare MYTEXT in the TEXTURES section of WADINFO.TXT:
DEUTEX -make WADINFO.TXT NEWBIE.WAD
Check your PWAD for texture errors:
DEUTEX -check NEWBIE.WAD
Note: TEXTURE1.TXT and TEXTURE2.TXT are auto-loaded if they exist,
because DOOM prefers to have it's old textures listed first
(I dunno why). DeuTex takes care of that.
-----------------------------------------------
C. How to create a PWAD with new SPRITES and FLATS
-----------------------------------------------
BEWARE: Sprite replacement is tricky. One false move and 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.
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.
page 28
To replace *SOME* of the sprites and 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.
(Safe and fast)
DEUSF -append NEWBIE.WAD Modifies NEWBIE.WAD.
(Safer, still fast, but wastes space)
DEUSF -add NEWBIE.WAD NEWBIE2.WAD Creates NEWBIE2.WAD.
(Safest, but more space wasted.)
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. See the
License Agreement at the end of this manual for the restrictions
on distributing DeuTex.
If you are adding only sprites, use the -sprite command to avoid
inheriting the flats too:
DEUSF -sprite -app NEWBIE.WAD
Alternatively, use the -flat command to add only flats without
inheriting the sprites:
DEUSF -flats -add NEWBIE.WAD NEWBIE2.WAD
----------------------------------
D. 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.
DEUTEX -make WADINFO.TXT NEWBIE.WAD
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. 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).
page 29
CHAPTER 7
*************** TEST-ME or What's inside TRINITY.WAD? *****************
-------------
A) About TEST-ME
-------------
Do you want to have a quick overview of some of the capacities of
DeuTex before deciding if it's worth the trouble?
This file is for you:
It will list the contents of TRINITY.WAD (with identifications).
It will decompose and then recompose TRINITY.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 contents of TRINITY.WAD without crediting
Steven McCrea.
Description of the file, DEMO.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 the
directory '.' (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 search for entries in TRINITY.WAD.
page 30
----------------------------------------
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 the FORMATS chapter for a precise definition of this format)
- You can put anything you want on a line that begins with a #,
because # means 'comments'.
- Don't touch any lines with Begin: or End: (they are delimiters).
- The lines between Begin: and End: describe a section.
Begin: SOUNDS
D_E1M1
End: SOUNDS
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:
Begin: SOUNDS
D_E1M1
D_E1M2
End: SOUNDS
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 31
CHAPTER 8
************************** VisualBasic Shell **************************
-------------------------------------
Vbdeutex.exe
This is the windows shell for DeuTex.
1.2 Alpha test version.
-------------------------------------
Enjoy & Criticize but don't Complain.
DeuTex 3.0 should contain a better version.
VbDeutex and deutex.pif must be in the same directory.
DeuTex.ini contains default info.
Edit DeuTex.pif to suit your needs.
DeuTex.pif calls deutex.exe and to work correctly:
- It must exit once finished.
- It must run in background.
- It must not run full screen.
Note that deutex.pif will be minimized on startup.
VB DeuTex is provided as is with no manual! (I can't compile Windoze
Help, for lack of skill :-)) You'll have to guess it all or suffer a
terrible frustration. I'm not gonna waste time on this. It should be
intuitive enough.
BEWARE: Behavior cannot entirely be predicted. Don't forget you are
running MS-Windows, and thus keep an eye on the reset button.
I don't feel at all responsible if everything goes wrong. I
wrote some code, but you can't expect a Microsoft product to
execute it correctly.
WINDOZE SUCKS!
SOMEONE PUT BILL GATES IN DOOM!
page 32
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 consecutive to 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.
-----------
B. Legal Stuff
-----------
***********************************************************************
* I have no relations with ID software (except as a registered user) *
* They don't care about this program, and certainly never will! *
* I have good relations with Raphael Quinet and Brendon Wyber. I *
* also have good relations with Steve McCrea. They CANNOT be *
* expected to answer questions about this program. They will get *
* poor if THEY receive questions about MY program. *
* *
* so please: *
* Direct all comments to me, don't bother them. *
* *
***********************************************************************
page 33
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 34
------
C. 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 Creator of Wacker, a texture
(spike@nectech.demon.co.uk) composer. Try it!
Tom Neff Doom technical information.
(tneff)
Bern Kreimeier Original DMADDS/DMADDF idea.
(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'.
Special Thanx to:
Per Allansson DeuTex Linux version.
(c91peral@und.ida.liu.se)
Mark Mathews DeuTex OS/2 port.
(mark.mathews@channel1.com)
page 35
--------------
THANKS (cont.)
--------------
Thanks to all of you who reported bugs and proposed correction
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
Finally: Thanks to Justin Fisher for letting me use DeuTex and DeuSF
on a new install for Alien-TC (despite all the small mistakes
I made).
Finally - part 2 (No really, this is it! Trust me!):
Olivier told me to put myself in the thanks section,
so, thanks to me:
Kevin McGrail, novice Manual Editor. 74107.1254@compuserve.com
Thanks for thanking me, Olivier, but this one made the thanks section
split into two pages. *I* figured it was too long already! <g>.
You sure are a grateful guy! Thank YOU for a great utility.
SHAMES
DeuSF would not have existed if there was not a stupid bug in the DOOM
code for loading FLATS and SPRITES, that locks up DOOM when you try to
replace existing entries.
page 36
-------------------------
D. Where to get DeuTex/DeuSF
-------------------------
DeuTex/DeuSF are meant to be available by anonymous FTP on Internet
sites: the same as of that of DEU.
infant2.sphs.indiana.edu,ftp.luth.se,iglou.com,...
/pub/doom/deu
/pub/doom/wad_edit/misc
DeuTex/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 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:
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.
-----------
E. FINAL WORDS
(AT LAST)
-----------
Thanx for using DeuTex.
I wasted long hours on it, so I could hope it will be of use.
Though in fact I just wanted to program *something that works*,
It's a kind of moral crisis that I had to atone in an orgy of
programmation. Such things happen when you spend too much time
dealing with norms and specifications...
Olivier Montanuy,
E-Mail:
montanuy@lannion.cnet.fr Work time mailbox
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: 1 bit of usable information per second (vocal emulation)
page 37
APPENDIX I
Here is a listing of the switch textures for DOOM.WAD
Begin: TEXTURES
#
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
SW1SLAD 64 128
* WLA128_1 0 0
* WARNB0 24 73
page 38
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
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
page 39
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
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
page 40
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
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
#
End: TEXTURES
#
#The End
page 41
APPENDIX II
This is a listing of the animated walls in DOOM.WAD
Begin: TEXTURES
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
#
GSTFONT1 64 128
* WALL58_1 0 0
page 42
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
#
#
End: TEXTURES
#
#The End
page 43
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 sound names rather than the artificial sound numbers used
in DMGRAPH.
NOTE: An asterisk '*' means 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 44
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 45
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 46
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
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 47
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.
Examples are taken from DOOMTEX, which was used for TRINITY.WAD.
To convert doomtex format to DeuTex format, simply add a '*' and a
space before each PATCH name (not wall names). Here is an example:
--------
doomtex:
--------
DOORCRST 128 128
door11_1 4 0
door11_1 124 0
door11_1 -116 0
pcrest4 46 37
-------
DeuTex:
-------
DOORCRST 128 128
* door11_1 4 0
* door11_1 124 0
* door11_1 -116 0
* pcrest4 46 37
Case is not significant for DeuTex, but it was for doomtex.
-----------------------------------------------------------------------
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.
page 48
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.
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.
page 49
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.)
_____________
/ 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 50
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 51
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 programs I mention in this section are available as a zip
dmtex10c.zip at infant2. Alternatively you could try deutex by Olivier
Montanuy which is easier to use, and will be supported and updated.
page 52
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 53
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 54