home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Gamer 2.4
/
1996-05_-_Disc_2.4.bin
/
doom2
/
dhe30a.zip
/
DEHACKED.HLP
< prev
next >
Wrap
Text File
|
1995-09-03
|
52KB
|
1,027 lines
DeHackEd v3.0a
By Greg Lewis (Tree)
gregl@umich.edu
This is a general help file for DeHackEd version 3.0a. For more specific
product information, see the file DEHACKED.TXT. For important start-up
info and instructions, read README.TXT. And, if you are more interested
in simply finding fun stuff to experiment with, check out the file
"Fun with DeHackEd" (DHEFUN12.TXT) bundled with this program. It includes
some fun things to try! And, if you have problems or questions with
DeHackEd you are encouraged to take a look at the Frequently Asked
Questions section in this file.
This file is arranged in the following sections:
1. Internet Resources
2. Donations/Source code
3. A Glossary
4. Patch File Info
5. Command Line Options
6. DeHackEd.ini Options
7. Available Keys
8. Mouse Support
9. Thing Editor
a. Thing fields
b. Bit fields
10. Frame Editor
11. Misc Editor
a. Weapon fields
b. Cheat codes
c. Miscellaneous data
12. Sound Editor
13. Sprite Editor
14. Text Editor
15. Frequently Asked Questions
So, without further ado, here it is!
1. *** Internet Resources
\------====================
This section contains some pointers to other sources of information
regarding DeHackEd on the Internet. There isn't too much out there, but
there are a few places to look.
First of all, there are some locations where you can find DeHackEd
itself, along with patch files for the program. The main FTP site for
this program is
DeHackEd FTP site: ftp.cdrom.com /pub/idgames/utils/exe_edit
In this directory you will find the latest release of this program, along
with numerous patch files. There are also quite a number of mirrors of
this site, though I will not list them here.
Two DeHackEd-specific WWW pages are available for general use. For up to
the minute program information, bug reports, or other news check out the
Official DeHackEd Homepage. LummoxJR's DeHackEd Grabbag contains info
about fun things that are possible, along with some sample patches. From
these pages you can also browse through a large part of the Doom WWW
network.
Official DHE Page: http://www.umich.edu/~gregl/dhe.html
The DHE Grabbag: http://www.daimi.aau.dk/~hykkelbj/doom/special/DHE
And finally, I am always available through email. I will warn that I
generally get very busy during the school year, so email sometimes takes
the back burner and it takes several days for me to reply. I can be
reached at the following address.
Email address: gregl@umich.edu
Here is some information on the Linux/SGI version of DeHackEd. It was
ported over to Linux by Sam Lantinga, email at slouken@cs.ucdavis.edu. It
is available at the following two sites.
ftp.cdrom.com:/pub/doom/utils/exe_edit/ldhe-bin.0.8a.tar.gz
ftp.cdrom.com:/pub/doom/utils/exe_edit/ldhe-src.0.8a.tar.gz
ftp.cc.gatech.edu:/pub/Linux/games/doom/ldhe-bin.0.8a.tar.gz
ftp.cc.gatech.edu:/pub/Linux/games/doom/ldhe-src.0.8a.tar.gz
This version is based on DeHackEd v2.3, so it is slightly older. The
author is hard at work on a DHE v3.0 compatible version, however, so
keep an eye peeled for those FTP sites (and the DeHackEd web page) for
the new version.
2. *** Donations/Source code
\------=======================
I've released this program to the public domain without requiring a
registration fee for a "registered" version. However I have put a large
chunk of time into this program, especially with the new Ultimate Doom
compatible version, and I would appreciate donations from those who have
found this program to be useful or interesting. I estimate a suitable
sum to be about $10 for my efforts. Consider what else you can get for
$10... maybe an hour in a video arcade, if you're decent, or 8 hours of
movie watching. Mess around with DeHackEd for a bit and you'll soon
realize that you can spend a lot more time for your money with it than
with many other things. Support a poor college student today! :)
My snail-mail address is:
Greg Lewis
1205 Sylvan Lane
Midland, MI 48640
If you are interested in the source code for this program, I am willing
to email you a copy of it. Just drop me an email message at the address
listed at the top of this file and I'll send it your way. Note that if
you are interested enough in the program to be asking for the source code,
I would highly appreciate a donation from you (hint hint). I feel that is
only fair to receive some payment for giving away the long hours of hard
work I put into DeHackEd. Be sure that you know how to receive UUEncoded
or MIME encoded messages, because that is how I'll be sending it to you.
DeHackEd is written in Borland C++ v3.1, although it is 95% straight C
code.
3. *** A Glossary
\------============
There are a few new terms that I will be using throughout this file,
so first off I'll define everything and explain it in simple terms.
Thing: A Thing in Doom is any object that's in the game, such as
monsters, the player, items, weapons, and decorations. If some-
thing isn't part of the floor, ceiling, or walls, it's a Thing.
These are the most complicated objects in the exe, and have the
most information stored about them. This information includes
what pictures to show onscreen, what sounds are associates with
it, its height, width, speed, etc.
Sprite: A Sprite is a collection of all the pictures that belong to
one Thing. For instance, there is a Sprite that contains all of
the pictures for the Baron of Hell, from first activation to gory
death. Sprites can be referred to by a 4-letter name (which
DeHackEd will display for you on the Sprite editing screen). The
Sprite for the Baron is called BOSS, and is Sprite #42.
Frame: A Frame is one picture individual picture of a Sprite. For
example, there is one Frame that shows the Baron with its hand back,
ready to throw a fireball at the player. The most complex Sprites
may have 20-25 individual Frames in them, whereas simple Sprites
only have one or two Frames. Frames also contain info about how
long the picture should be displayed, and which picture to display
after the current one. Frames are named by adding a letter to the
end of a Sprite name. The name for the Baron with its arm back is
BOSSE, with a Sprite number of 42 and a Sprite sub-number of 4. The
code for converting the sub-number to the letter is 0=A, 1=B, 2=C,
3=D, etc.
Weapon: A weapon of the player, and associated info, such as what
picture to use for the weapon, and the ammunition that the weapon
uses.
Sound: A sound that's played at some time. The name is obvious, but
other sound values (labeled with "descriptive" names such as "0 / 1"
and "Value"), are still uncertain. Play around with them, and
perhaps you'll find something new.
Patch: A patch file is a file that DeHackEd uses to make its changes
to the Doom executable file. This is explained in more detail in
the next section.
4. *** Patch File Info
\------=================
This is some more info on patch files, which may help explain any
difficulties you are having with them.
Patch files are entirely different from WAD files. WAD files can
contain level info, sound, and graphics info (stuff normally found in
the main Doom WAD file). They are used simply by typing
doom -file <wadname>
at the command line. Patch files, however, contain info from inside the
exe file, and cannot be used with the "-file" parameter. DeHackEd is the
only program that can apply these patches and change the Doom exe file.
The newest format of patch files includes only the information you've
modified and NOT all the data (as older types of patch files used to do).
They now have an easy-to-understand text format and can be created with any
common text editor (if you know what the different names are). Load the
SAMPLE.DEH patch file that came with your copy of DeHackEd into a text
editor for full information on the text format. Or just play around and
create your own patch files and look at 'em.
Because of the new format of patch files, any changes you've made to Doom
will stay even when you load a new patch file. The 'z' command has been
added so that you can return to the original Doom settings at any time. So
in order to load a patch and remove any other previous changes, you'll need
to hit 'z' before 'l'oading the new patch. To make this easier on the user
DeHackEd will now ask if you wish to reload the original exe data every time
you load a patch. Normally, if you want to remove all traces of previous
patches, you should answer yes. If you have a good grasp of what is going
on you can set the 'askatload' variable to false in the ini file and skip
that question.
5. *** Command Line Options
\------======================
Next, an explanation of command line options. All parameters are totally
optional; if you don't include anything more than the path DeHackEd will run
normally and go to the editing screens. If any options other than just
the path are included, DeHackEd will run in 'batch' mode and not actually
enter the editor. If present, the doom path must be first. Other than that
restriction the arguments can be included in any order, any number of times.
They will be processed in the order they appear, left to right. The full
command line syntax for DeHackEd is:
dehacked [doompath] [-reload] [-load <patch1> <patch2> ...] [-save <patch>]
[doompath] is optional, and specifies a different location for the
doom files, doom.exe and doom.wad, other than the current directory. If
you give a path on the command line it will override the exename and
wadname that you give in the DEHACKED.INI file.
-reload will return the exe file to its original data. Because the new
patch format does not overwrite all data, but only values that need to be
changed, it's sometimes necessary to ensure that the exe is back to normal.
-load <patch1> <patch2> ... will update the doom.exe file with the
patches called <patch1>, <patch2>, etc.
Conversely, the -save <patch> option will save the current doom.exe
status to a patch file named <patch> and return to the DOS prompt. These
options are similar to 'l' and 's' in DeHackEd, although when used in
DeHackEd the 'l' option requires a 'w' after it to actually write the
changes to the doom.exe file. See section 7 for more info on 'l'oading
and 's'aving.
Example command line:
dehacked c:\games\doom -load sample.deh
This will start DeHackEd, using the Doom files found in c:\games\doom,
load in the info from the sample.deh patch file, and return to the DOS
prompt.
The command line parameters are processed from left to right, so it's
possible to do several things at once. The next example is what I would
imagine is the best way to automatically load a patch file from a batch
file:
dehacked -save current.deh -reload -load newpatch.deh
doomhack . . .
dehacked -reload -load current.deh
del current.deh
This will save the current state of the exe file, then reset it to the
original Doom data and load your custom patch file. Then doomhack is run,
with whatever parameters you want. Finally the exe is reset to normal
once again and the user's data is restored.
6. *** DeHackEd.ini Options
\------======================
Included with DeHackEd is an ini file which can specify several parameters
for DeHackEd. They allow you to customize where you want your patch files
located, what your doom files are named, and more. A summary of the
allowable command line options follows:
# Start comment lines with a pound sign. Anything after the pound
sign is ignored.
editname = <filename>
This is the name of the doom exe file that DeHackEd will perform
the actual changes to, and full path if necessary. This doesn't
need to be included if you are running DeHackEd from the directory
that your the exe file resides in, and it's got the proper name.
Normally this file is named doomhack.exe. The doomhack.exe file
is not part of Doom, it is merely a copy of the doom.exe (or
doom2.exe) file.
normalname = <filename>
This is the name of your regular, UNCHANGED doom.exe file. DeHackEd
will never change the data in this file. It's mostly used by
DeHackEd to save patches.
wadname = <filename>
This is the name of your doom.wad file, and full path if necessary.
This must be a registered wad file, not a shareware file. This is
needed for verification that you are really registered, and not
just trying to fake it. Once again, if this is in the same
directory that DeHackEd is run from you don't need this parameter.
pathname = <path>
This is the path from which you want Doom to be run. This is only
used when using the 'r'un option from inside DeHackEd.
params = <Doom parameters>
These are command-line parameters that are fed to Doom when it's
run using the 'r'un option from within DeHackEd. Useful if you
are using DeHackEd for a custom patch for a WAD you are writing;
you can simply include a '-file <wadname>' in this line, and
Doom will load your level every time DeHackEd runs it.
patchdir = <path>
This is the directory that DeHackEd will look in for patch files.
A nifty way of keeping all of your thousands of .DEH files out
of the Doom main directory.
askatload = <true | false>
By default this option is true. If it is true, every time you
load a new patch file in the editor it will ask if you wish to
reload the original exe data. When set to false the question is
NOT asked and it is up to you to know what you are doing.
loadlogo = <true | false>
This determines if DeHackEd shows the cool logo when the program
starts up. If you don't like the logo for some reason, just give
this variable a value of "false". It is true by default.
The following parameters are all totally optional, and need only be
used if you have a really wierd doom.exe file.
doomver = <0 | 1 | 2 | 3>
This is the version of Doom you are hacking. 0 is for Doom v1.666
and Doom 2 v1.7(a). 1 is Doom 2 v1.666, 2 is Doom 1 or 2 v1.9,
and 3 is the Ultimate Doom v1.9. This *must* be included if any of
the following options are set.
doomsize = <size>
The size of your Doom.exe file. I've had a few people complain
that they have a non-standard doom.exe file size, and this may
fix your problem simply by changing this. If you get erroneous
results though, you may have to play with the following params...
thingoff = <offset>
soundoff = <offset>
frameoff = <offset>
spriteoff = <offset>
ammooff = <offset>
weaponoff = <offset>
textoff = <offset>
cheatoff = <offset>
codepoff = <offset>
These are the offsets in the Doom exe file for their corresponding
data chunks. PLAY WITH THESE AT YOUR OWN RISK. Note that there
is no "miscoff" variable... the miscellaneous data is too
widespread to be controlled as easily as everything else. Also,
the codepoff variable is almost certainly useless, due to the
way the code pointers are stored.
textlength = <length>
This is the length of the text data and should be used in
conjunction with the previous offsets.
7. *** Available Keys
\------================
Available keys are as follows:
ESC Exits to DOS. Or, if you are in an input box, or just about
*anywhere* in the program for that matter, it will back you
out to whatever you had previously been doing.
Enter Edits the current field, if it is an editable field. To leave an
editing box if you hit Enter by mistake, simply hit ESC.
Space Displays or plays the current field, if applicable. If you are
on a "frame" field, such as any of the Thing frames, it shows the
frame that you've got highlighted. (Note: If you are on the
"Next Frame" field in the Frame editor you WILL see the next frame,
not the current frame.) If the frame you are viewing is the first
in a series of frames, repeatedly pressing the spacebar will cycle
through all of the frames. Use the right and left arrow keys to
view different sides of the Thing, if it has more than one different
view. Escape will exit. The spacebar will also view the full text
strings in the Text Editor, and play the sounds when you are in a
sound field.
A The About window. This brings up two windows that shows you
what version of DeHackEd you are working with (and some credits),
and also a small summary of what Doom exe you are editing, and
how much memory you have free, etc.
C The copy command. This will copy information from one entry to
another. The syntax is fairly basic: enter the number of the
entry to copy FROM, and the entry number to copy TO. A clipboard
for Things is available as Thing #138, which is just a temporary
storage Thing (and is not actually present in the Doom.exe file).
When entering the number of the object to copy from or to simply
hit the enter key to use the current object.
G Goes to a specific Thing. If you are in the Thing editor and know
which Thing you want to see, you can go right to it by picking the
name out of a list of names without bothering to page through all
the Things looking for it. When the list of Things appears, you
can do a speed-search by typing in the first few letters of the
name. Or, another quick alternative is to just type in the Thing
number. If you are in the Frame editor, you will see a list of
all of the Things exactly as if you were in the Thing editor. When
you choose Thing, DeHackEd will find the Initial Frame for that
Thing and jump to it. Entering a number will again allow you to
jump straight to a certain Frame.
If you not in the Thing or Frame editing screens you will be able
to enter the number directly and go straight to that object (like
hopping straight to Sound #45 by typing in that number).
In the Text editor the 'g' key allows you to search for a text
string. Type in any search string up to 40 characters in length,
and DeHackEd will examine the entire Text data to find any
occurences of that string.
J Jumps to the information in the current field, in it's respec-
tive editor. For example, if you are in the Thing editor and the
'Death Frame' is highlighted, and you press the 'j' key, you will
jump to the Frame editor with the corresponding Frame number high-
lighted. A very handy tool for moving around the various editors.
Generally it'll jump to a "logical" place, if there is one.
L Loads a patch file. You can enter a patch file (complete with
path, if necessary) in the input box, or you can just hit the
enter key to choose the patch from a list of all the patches in
your patch directory. An extension of ".deh" will be assumed for
the patch file if none is given. Note that you will need to use
'w' to write the changes to the exe file after loading it, or the
changes will not show up if you try to run Doom. DeHackEd will do
its best to convert patch files between all of the different exe
formats to the current version of Doom that you have, but be warned
that sometimes some of the information (usually the Text data)
will not be compatible. When the information is loaded, only
values that are replaced are actually changed... all other data
(including any changes you have made) will be left intact. If you
want to avoid this, use 'z' to reload the original exe information
before loading the patch. Alternately you can answer 'y'es to the
question about reloading the original exe data when you load the
patch. You can also load patches from the command line by typing
dehacked -load <patchname>
R Runs Doom. It allows you to quickly test-run Doom, to check out
the changes you've made (remember to hit 'w' before running!).
After Doom finishes, you will be returned to your current place
in the editor to continue working. You can specify command-line
parameters for Doom and the directory to run Doom from in the
DeHackEd.ini file (see section 6).
S Save a patch file. You must enter the patch filename, and it
will save all changed material to the patch file, in a text
format. An extension of ".deh" is assumed if you don't give one.
You can also do this from the command line by typing
dehacked -save <filename>
U Undo all changes. This reloads the information straight from the
hacked Doom exe file, which in effect returns you to your most
recent 'w'rite of all the data.
W Writes all changes to the Doom exe file. This step is necessary
to get any results!
Z Reload the ORIGINAL exe data. So if you've been playing around
and now all the monsters look like med-kits, and your rocket
launcher shoots plasma that looks like lost souls, hit this key
to get back to the real original Doom data.
F2 Thing Editor. This is the main Thing editor, the default screen in
DeHackEd. See section 9 for more detailed Thing info.
F3 Frame Table. Displays Frame information, in a list format.
See section 10 for more detailed Frame info.
F4 Misc Editor. This allows you to edit the weapons, ammunition,
cheat codes, and other miscellaneous data, including player health
and similar goodies. Section 11 talks more about this screen.
F5 Sound Table. A jolly good table of all the sounds. Check out
section 12 for more Sound table info.
F6 Sprite Table. A handy list of all the sprites, in case someone
needs it. Section 13 deals with the Sprites.
F7 Text Editor. This shows all the text strings in the Doom.exe
file. Section 14 has more info.
8. *** Mouse Info
\------============
Some notes on the mouse support. Generally just click places to find
out what happens! The status bars on the top and bottom of the screen are
there expressly for the mouse users (click on 'em to get help, exit, see
the "About" window, load/save patch files, or switch screens). Clicking
on any of the fields will switch to it, and double-clicking will bring up
the editing box for that field. Click on the "Thing Number" in the upper
left window as a shortcut to the Goto Thing function. Clicking on any
sound or frame name will play the sound or show the frame for you. Right
clicking at any time will act exactly like the Escape key was pressed
(except for exiting the program), i.e. get you out of input boxes, leave
the frame viewer, etc. The way it's designed should (hopefully) be
intuitive.
A problem has been reported with some mice where the mouse only moves
in the top half of the screen. I have not been able to duplicate the bug
with my Microsoft mouse and driver, so it must be something fruity with
other mouse drivers. I'm hoping that a minor change I made has fixed the
problem, but I won't be sure of this until I hear from someone who can
tell me one way or another. Either way, just remember that you can do
anything with the keyboard that you can do with the mouse.
9. *** Thing Editor
\------==============
a. Thing fields
This is the first thing you see when you start up DeHackEd. It is also
one of the main areas of the program. Edit Things by highlighting the
desired field and hitting Enter, or double-clicking on it with the mouse.
The Player entry is slightly "special" in regards to how much Doom
uses the info in the Player fields. Entries such as Speed and Hit
Points are NOT changable through DeHackEd; they are controlled else-
where in the exe and aren't easily accessible. Several of these fields
have been discovered and are now available in the Misc editor (F4). Most
of the Player entries, however, can be used and changed normally.
Thing Number:
The number of the Thing. Basically it's just for reference,
numbered in order according to how the Things are stored in the
Doom exe file.
Thing Name:
A short descriptive name for the Thing. This info can now be
edited, but any changes you make to the Thing Name will be erased
as soon as you leave DeHackEd... the only way to make them stick
is to 's'ave a patch file just before you leave, and then 'l'oad
that patch back up when you enter DeHackEd the next time.
Thing ID#:
This is the Thing's 'identification number' which is used in level
development (WAD files). Wherever this number appears in a WAD
file, this Thing will appear.
Hit Points:
How much damage it can sustain. For all non-living Things, its
generally 1000 (not necessary though).
Speed:
How fast it can go. Projectiles have their speed multiplied by
65536, but DeHackEd displays projectiles the same way it does
normal speeds (so you don't need to wade though large numbers for
projectile speeds). Whether a certain Thing is a projectile or not
is determined by bit #16, 'Projectile'. If that bit is set, the
speed is displayed as a Projectile, otherwise it is a "normal"
speed. Basically though, just ignore it and DeHackEd will take
care of it for you. =-}
Width:
The radius of the Thing. A narrow Thing is harder to hit! To fit
a Thing through a narrow passageway, you need to have the passage
slightly wider than twice it's width. Thus a passage must be 33
to allow the Marine through, even though his actual radius is 16.
Height:
Same as width, but it's height. Duh. :-)
Missile Damage:
If it's a projectile, how much damage it does upon impact. Note
that Lost Souls have this set to 3, because they function as
projectiles during their attack.
Reaction Time:
For monsters, their reaction time. Lower=quicker to attack,
higher=slower to attack.
Pain Chance:
Chance out of 256 that a monster's attack will be interrupted by an
injury. The Lost Soul always will (256), and the Spider Boss
rarely will (40).
Mass:
Thing's mass. Set a trooper's to 1 and watch him fly! Note the
Cyberdemon has a high mass, and your rockets don't budge him much.
Bits:
This is the actual value of all of the bits. Just change this one
number if you want to set all of the bits at once to something.
See also the Bit fields portion of the text, coming up in a few
pages (section 9b).
SOUNDS
Alert:
Sound made when the monster first spots the player, or a projectile
is launched. These all point to the sounds in the Sound table.
Attack:
Sound made during a close attack.
Pain:
Sound made when the Thing is injured.
Death:
Sound made when the Thing dies. For projectiles and barrels, the
sound of its explosion.
Action:
Sound made when the Thing is just milling around.
FRAMES
First Normal:
What an inactive thing looks like, or a monster that's not yet
active. All frame numbers refer to the Frame table. Only the first
frame is listed, you will need to refer to that Frame entry in the
Frame table to find out if it's actually a sequence of frames.
First Moving:
A movable Thing's "first steps."
Injury:
Frame played for an injured Thing.
Close Attack:
Attacks that are close (clawing imps).
Far Attack:
Attacks that are far away (imp winding up for a fireball attack).
Death:
Monster death or barrel/projectile explosion.
Explode Death:
Exploding death (slop!) for players, troopers, imps, and sargeants.
Respawn:
This is the frame that's shown when the Thing comes back to life
due to the ArchVile. Things that do not have a Frame shown for
this field cannot be raised by the ArchVile.
b. Bit Editor
0.Can be picked up: Something that can be picked up by the player,
like an ammo clip.
1.Obstacle: Something that can't be walked through.
2.Shootable: It will only take damage if this is set. Note
that barrels also have this set.
3.Total invisibility: The Thing just can't be seen, no-how, no-way. It
won't even show up with iddt-iddt.
4.Can't be hit: This is set for objects that will collide with
something themselves, but can not be hit by
anything else. E.g. rockets, which collide with
things (obviously) but can not be shot down.
5.Semi-deaf Monsters become active if they see you (like
normal), or if you fire a weapon AND there is a
direct line of sight between you and the monster.
6.In pain: Used internally by the Doom exe to determine if a
monster is in pain or not.
7.Steps before attack: Reportedly the monster will take a step before
attacking the player. This hasn't been verified.
8.Hangs from ceiling: For those gory legs & mangled bodies. Have it
set if the Thing hangs from the ceiling.
9.No gravity: Used for floating monsters and Things that aren't
on the ground.
10.Travels over cliffs: Set for projectiles and players. This bit allows
the Thing to travel from one sector to another
even when the dropoff height difference is greater
than 16 (or 24?). Turn this on for Imps, and the
Imps on E1M1 will jump off their platform after you.
11.Picks up items: This Thing (i.e. the player) can pick up Gettable
Things.
12.No clipping: Same effect as idspispopd/idclip, but also
effective for monsters.
13.Slides along walls: Apparently available for monster types that were
never used in Doom. Reportedly this bit will
only work in the beta versions of Doom and was
disabled for the release versions.
14.Floating: For floating monsters, like the Cacodemon and the
Lost Soul.
15.Semi-no clipping: Kinda like no-clipping, kinda not. You can't
walk through walls, or trigger any linedefs, but
you can walk over any height cliff in your way.
16.Projectiles: Set for projectiles. Allows the projectile to
leave your body. If it is turned off, the proj-
ectile explodes as soon as it is fired, because
it originates from "inside" your body.
17.Disappearing Weapon: This is used for weapons such as the shotgun that
the sargeants use, so that it disappears when
picked up in a multi-player game. Normal weapons
do not have this set, however, because they stick
around in normal multi-player games when picked up.
18.Partial invisibilty: The Spectre effect.
19.Puffs (vs. bleeds): Whether a thing bleeds (bit off) or puffs (bit on)
when hit. The barrel is the only default Thing
that has this set.
20.Sliding helpless: ???
21.No auto-leveling: Valid only for floating Things, this bit makes it
so that flying monsters do not need to rise/sink
to the player's level before attacking. This makes
it quite unfair for the player!
22.Affects Kill %: This Thing counts as part of the Kill% at the end
of the level.
23.Affects Item %: Just like Kill%, but for Things.
24.Running ??? Perhaps active if the player is holding down
the Run key.
25.Not in deathmatch: Things not present in Deathmatch mode, such as keys
and the normal "Player" starting spots (deathmatch
spots are used instead).
26.Color 1 \ 00-greens->greens 01-greens->browns
27.Color 2 / 10-greens->indigos 11-greens->dark reds
28.Unused
29.Unused
30.Unused
31.Unused
10. *** Frame Editor
\------==============
This displays the majority of the Frame information. Each frame has six
editable fields (of 8 total that are stored in the exe). The only two
fields that are NOT shown on the screen are always 0 in all of the Frames,
so I decided it would be pointless to try to squeeze them onscreen also.
Frame #:
This is the number that is specified in the Thing Frame fields.
Name:
A lookup done on the Text info in the doom.exe file, specified by a
reference to the Sprite #, the Sprite Table, and the Sprite subnumber.
Sprite #:
The sprite that is shown for this Frame.
Sprite Sub #:
The individual "picture" (for lack of a better word... I think the
technical term is "lump") suffix for this Frame. In the Doom WAD file,
there is (for example) a Sprite called TROO, for the trooper. The
sub # specifies which TROO picture to use... TROOA, TROOB, TROOC, etc.
Bright Sprite:
This check box determines if a Sprite is ALWAYS displayed at it's full
brightness. Sprites that are always displayed at their full brightness
are Lost Souls, plasma bullets, etc... they are always visible no
matter what the lighting of the room they are in is.
Next Frame #:
Which Frame to play next. You can skip a few shotgun frames this way,
to make the super-fast ("combat") shotgun.
Duration:
How long the frame stays on the screen. Make 'em all 1 to make the
super fast shotgun *really* be super fast! Notice that the notoriously
slow BFG has a value of 20 and 10 for a few of its Frames.
(hint hint... =-)
Code pointer:
An offset in the Doom exe file to where it should look for the "action"
associated with this Frame. This field is now editable in v3.0! When
you edit it, DeHackEd will ask for a new Frame number. It will then
replace the code pointer with the code pointer from the Frame you
specify. This makes certain that invalid code pointers won't
accidentally be entered. The code pointer determines what action
happens when a certain Frame is displayed. For example, for Frame 811
(which is part of the sequence of a barrel exploding) the code pointer
will cause damage to be done to anything standing near the barrel. If
you replace an Imp's Close Attack Frame's code pointer with this one,
the Imp would do damage just like an exploding barrel whenever the
player was close to it. Ouch!
11. *** Misc Editor
\------=============
a. Weapon fields
Weapon Name:
The name of the weapon (not editable)
Ammo Type:
A pithy description. This will be 'N/A' when an 'unknown' ammo
type is given for the Ammo Number. Ammo type 5 is listed as
"Unlimited".
Ammo Number:
0=bullets 3=rockets
1=shells 4= ??? (none)
2=cells 5=unlimited (fist/chainsaw)
Max ammo cap:
The starting capacity for the current type of ammo. It's listed on
the right side of the slash on the status bar. Backpacks will
double this limit automatically. This will be 'N/A' for unknown
ammo types.
Ammo per item:
How much ammo you get when you pick up a power-up of the current
ammo type. For example, normally the bullet power-up gives you 10
bullets. This value is multiplied by 5 for the 'large' power-ups,
i.e. boxes of rockets, boxes of shells, etc. Different difficulty
modes also change this. Also 'N/A' for unknown types.
Deselect frame:
This is the frame that's shown when another weapon is selected and
the current weapon drops off the screen. This is the number that
Doom refers to in the Frame list for more info.
Select frame:
The frame that's shown when the weapon is selected and is rising
onto the screen.
Bobbing frame:
Frame number for the bobbing weapon.
Shooting frame:
Frame played when the weapon shoots.
Firing frame:
Frame that actually shows the "flames" from the weapon.
b. Cheat codes
The cheat codes are a little tricky to deal with, but not as stringent
as the Text data. Cheat codes may consist of lowercase letters of the
alphabet, numbers, and some punctuation, as far as I have verified. I
don't believe anything that requires a shift key is allows (such as
!&@#$)% etc) but you may want to try it out yourself. Every cheat except
for IDMUS and IDCLEV (which required addition input) may be truncated as
much as you wish, although null cheats are not allowed. If several cheats
are modified to be exactly the same, Doom will activate all of them at once.
So you could, if you wished, set every cheat to activate on the letter 'i',
and then when you hit that letter EVERY cheat would activate. Fun! The
names should be obvious, but I will list them here for completeness' sake.
Change music IDMUS, sets music to that of any level
Chainsaw IDCHOPPERS, gives the player the chainsaw
God mode IDDQD, player can not be hurt
Ammo & Keys IDKFA, player recieves all weapons, ammo, and keys
Ammo IDFA, player receives all weapons and ammo
No Clipping 1 IDSPISPOPD, the walk-through-walls cheat in Doom 1
No Clipping 2 IDCLIP, the walk-through-walls cheat in Doom 2
Invincibility IDBEHOLDV, gives the player the Invincibility Sphere
Berserk IDBEHOLDS, gives the player the berserk box
Invisibility IDBEHOLDI, gives the player the Invisibility Sphere
Radiation Suit IDBEHOLDR, gives the player the radiation suit
Auto-map IDBEHOLDA, gives the player the auto map
Lite-Amp Goggles IDBEHOLDL, gives the player the lite amp goggles
BEHOLD menu IDBEHOLD, shows the little menu of options
Level Warp IDCLEV, warps the player to a different level
Player Position IDMYPOS, shows the player's x and y position and angle
Map cheat IDDT, used on map screen, shows the entire level
c. Miscellaneous data
The miscellaneous data is by far the most difficult for DeHackEd to deal
with (which is why it has taken so long for it to get included in the
program :). These difficulties also impose a few limits on some of the data
listed, which will be described below.
For those who are not familiar with "Armor Class" now is probably a good
time for me to explain it. Doom has three separate armor classes... 0, 1,
and 2. 0 corresponds to the player having no armor, 1 corresponds to the
green armor and 2 corresponds to the blue armor. With an armor class of 2
any attack on the player will be divided so that 2/3 of the damage is taken
from the armor and 1/3 is taken from the player's health. An armor class of
1 divides the damage equally between the player's health and armor, and
(of course) an armor class of 0 means that the armor takes no damage at all.
Using DeHackEd it is possible to give the armors different armor classes,
but Doom will NOT adjust the damage data accordingly. Doom will regard any
armor class higher than 2 as being armor class 2. Why then, you ask, did
I include it? It is because Doom bases the amount of armor that you get on
the armor class. An armor class of 5 gives 500% armor when it is picked up.
An armor class of 10 would give 1000% armor. However this armor would still
behave just like blue armor when it comes to damage.
Initial Health:
How much health the player starts out with. Set this to a negative
number for some REALLY whacked out effects.
Initial Bullets:
How many bullets the player starts out with. Start 'em out with 5%
health and 2 bullets and see how much the players like you. :)
Max Health:
The maximum health gained by picking up the little blue bonus
bottles. Note that medkits and stimpacks will still take the
player's health up to 100%.
Max Armor:
The maximum health gained by picking up the little brown armor
thingies.
Green Armor Class:
The armor class of the Green Armor. (See above for a description
of armor classes.) The formula for armor gained is 100 * armor class.
Blue Armor Class:
The armor class of the Blue Armor. (See above for a description
of armor classes.) The formula for armor gained is 100 * armor class.
Max Soulsphere:
The maximum health gained from the Soulsphere.
Soulsphere Health:
How much health the Soulsphere will give you (if this much health
will not take the player's total past the Max Soulsphere amount).
This must be a value in the range -128 through 127.
Megasphere Health:
How much health the Megasphere will give you.
God Mode Health:
How much health the player gets when he uses the god-mode cheat.
IDFA Armor:
How much armor the player gets when using the IDFA cheat.
IDFA Armor Class:
The armor class of the armor received from an IDFA.
IDKFA Armor:
How much armor the player gets when using the IDKFA cheat.
IDKFA Armor Class:
The armor class of the armor received from an IDKFA.
BFG Cells/Shot:
How many cells the BFG uses per shot. This must also be in the
range -128 through 127.
Monsters Infight:
If this check box is checked, monsters will fight their own kind.
Normally Doom does not allow Imps to fight Imps, for example, or
Cacodemons to fight each other. If an Imp gets hit by an Imp
fireball, it ignores it. Click this box to change all that. It
makes things much easier!
12. *** Sound Editor
\------==============
Sound Number:
This is the number that's referenced by the Things for each sound.
Text Offset:
The offset into the Text section where the sound name is found.
Sound Name:
Found by simply checking the Text section at the correct offset.
0 / 1:
This may be related to whether a given sound is ALWAYS played at
its full volume, no matter how far away it is. For example, some
boss activation sounds are always played very loudly even if you
are far away from them.
Value:
This is the mixing value when more than one sound is being played
at one time. Lower numbers indicate that the sound will be less
emphasized among other sounds.
13. *** Sprite Editor
\------===============
Sprite Number: The number in the Frame table that refences this
Sprite.
Text Offset: The offset into the Text section where the Sprite
name is found.
Sprite Name: Also found through a simple lookup in the Text
section.
14. *** Text Editor
\------=============
Text Offset: The offset into the Text section of the current
Text string.
Text: This is the actual text that's located at the
text offset.
Some notes are in order on the Text viewing, editing, etc. First of
all, if the Text is longer than about 60 characters (too long to fit on
one line in the general Text screen) three ellipses are displayed at the
end of the line. Non-printing characters, such as new-lines, tabs, and
other screwy characters are shown by a tilde symbol in the text (~).
If you want to view the actual text, just hit the Spacebar and a window
will pop up with the actual text string in it. A newline is shown by a
'\n' shown in black (dark grey), tabs by '\t' in black, and so on. The
text is formatted in basically the same way that it would be on-screen.
To edit the text, just hit Enter and the view window and an edit window
will pop up. Enter your new text in the edit window, and hit Escape when
you are done editing. If you are hitting Escape to cancel the current
editing operation, answer 'n'o when asked if you want your changes saved,
otherwise answer 'y'es and the text will change to your modification.
Because each text string is a fixed length in the Doom exe file, you
have only a slight lee-way in how long the edited text needs to be. The
minimum and maximum length for the string you are editing are shown on the
top line of the editing window, along with the current position of the
character you're on. You will have a range of 4 characters that the new
string must fit into. Typing beyond the maximum number of characters is
not allowed, and stopping short of the minimum is also not allowed.
The text editor is not exactly a full-fledged version of Wordperfect, so
the only movement key you have is the back-space... no arrow keys, no
macros, no spell checker, etc. :-)
15. *** Frequently Asked Questions
\------============================
This section is devoted to questions that I have received regularly in
the past in the hopes that people will read this and not bug me. :)
Q: Help! I start up DeHackEd up it complains that it can't find my Doom
files. What can I do?
A: Take a look at the README.TXT file. You most likely do not have the
paths set up correctly so that DeHackEd will know where to find all of
your Doom files. Follow the directions in the README.TXT file to solve
the problem.
Q: I've started up DeHackEd and loaded a patch file, but when I run Doom
all I get is the original game. I can't see any changes. What am I
doing wrong?
A: There are two possible causes for this. The first happens if you are
'r'unning Doom from within DeHackEd. You need to be sure to write all
of the changes (using the 'w' key) after loading a patch, but before
running Doom. Otherwise the changes won't be made, and you won't see
any results.
The second possible problem is if you try to run Doom directly from
DOS. DeHackEd does not alter your doom.exe or doom2.exe files... those
files are always preserved in their original state. So, if you load
a patch and try to run Doom you will get exactly the same thing as you
have always seen. What you need to do is use a file called DOOMHACK.EXE
that should be in your Doom directory. Run this file instead, exactly
as you would normally run Doom, and you should see the changes that
were made.
Q: A friend and I are trying to run a deathmatch game. I want to give
myself some extra health so that he can't win as easily, but I don't
know how to do it. Can you help me?
A: Well, yes and no. :) First of all, if you make any changes to your
Doom file you need to be sure that ALL players in a multi-player
game have exactly the same changes made. If one person loads up a
patch file, then everyone must load up that patch file. If players
have different changes made to their exe files, Doom will abort with
a "Consistency failure". This is a benefit of the very strict "cheat
prevention" policy that Doom uses. There is no way around this,
period.
Q: OK, now my friend and I are trying to play with that really cool
DMARMY3.DEH patch. We both load it up in DeHackEd, but when we run
the setup program (or sersetup or ipxsetup) we see the normal monsters
and stuff. Why can't we see any changes?
A: This goes back to the way DeHackEd modifies the exe file. DeHackEd
does not actually modify the Doom.exe (or Doom2.exe) file. It instead
makes its changes on the DOOMHACK.EXE file. Whenever you run setup
(or sersetup or ipxsetup), though, those programs use the normal
Doom exe file. You can set up DeHackEd to work with different file
names by editing the ini file. So for your problem you could do the
following (substitute "doom2.exe" for "doom.exe" if you use Doom 2):
1. Copy doom.exe to doomorg.exe
2. Copy doomhack.exe to doom.exe
3. Edit the DEHACKED.INI file, and modify the line that says
"editname" to end in "doom.exe"
4. Edit the DEHACKED.INI file, and modify the line that says
"normalname" to end in doomorg.exe
After you do this you will be able to use patches just like normal,
but the setup programs will run the altered Doom file rather than the
original one. Fun fun fun!
Q: I want to edit the rocket's radius of damage, and the damage bullets
do, and change how many bullets the shotgun shoots. How do I do it?
A: You can't. Version 3.0 of DeHackEd allowed the capability to edit a
bunch of previously unalterable things (like player's initial health,
BFG ammo used, etc), but there are still things that can not be changed.
You'll just have to design your patch around the limitations. These
things are such a fundamental part of the exe file that it would be
quite difficult to do any modification at all to them.
That's about it. Any more question? Feel free to write me at
gregl@umich.edu for more information. Have fun!