home *** CD-ROM | disk | FTP | other *** search
- DeHackEd v2.2
- By Greg Lewis (Tree)
- gregl@umich.edu
-
-
- This is a general help file for DeHackEd version 2.2. 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 "Fun with DeHackEd"
- (DHEFUN03.TXT) bundled with the program. It was originally written by Dan
- Lottero, and includes some wild things to try!
-
-
- This help file is arranged in the following sections:
-
- 1. Patch File Info
- 2. Command Line Options
- 3. DeHackEd.ini Options
- 4. Available Keys
- 5. Mouse Support
- 6. Thing Editor
- a. Thing fields
- b. Bit fields
- 7. Frame Editor
- 8. Ammo Editor
- 9. Sound Editor
- 10. Sprite Editor
- 11. Text Editor
-
- So, without further ado, here it is!
-
-
- 1. *** 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 Doom WAD file). They are used simply by typing "doom -file <wadname>"
- at the command line. Patch files, however, contain info from inside the
- doom.exe file, and cannot be used with the "-file" parameter. DeHackEd
- is (currently) the only program that can apply these patches and change
- the Doom exe file.
-
- Patch files save ALL the info on Frames, Ammo, Things, Weapons, Sound,
- Sprites, and Text, NOT just changed data. This way, several people can
- load a specific patch, you KNOW everyone will have the same Doom exe file.
- This may change in the near future (a new patch format).
-
- The patch files that DeHackEd 1.3 created saved only 4 pieces of info:
- the Frames, Things, Ammo and Weapons. If you are editing Doom 1.2,
- DeHackEd will only save those pieces of information in order to create
- a patch file backwards-compatible with DeHackEd 1.3.
-
- It is a good idea to save back-up patch files before messing around
- with your Doom exe file. The standard naming convention for back-up
- patches is "NORMAL??.DEH", where the ?? are replaced by the version
- number (see the README.TXT for specific instructions). Those files are
- then also used for merging patches, as a "clean" copy of your doom.exe
- file. For example, if you are merging in a patch for Doom 1.666, DeHackEd
- expects to find a clean patch file called "NORMAL16.DEH" in your patch
- directory.
-
-
- 2. *** Command Line Options
- \------======================
-
- First, an explanation of command line options. The full command line
- syntax for DeHackEd is:
-
- dehacked [doompath] [-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.
-
- -load <patch1> <patch2> ... will update the doom.exe file with the
- patches called <patch1>, <patch2>, etc and return to the DOS prompt--
- great for batch files!. The first patch is just loaded normally, and all
- others after it (if there are any) are merged with the first one.
-
- And, 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 4 for more info on
- 'l'oading, 's'aving, and 'm'erging.
-
- Example command line:
-
- dehacked c:\games\doom -load suprwep5.deh army1.deh
-
- This will start DeHackEd, using the doom.exe file found in c:\games\doom,
- will load in the info from the suprwep5.deh patch file. Then it will
- merge in the patch file army1.deh, and return to the DOS prompt. And of
- course, just typing a plain 'dehacked' will take you straight into the
- DeHackEd main program.
-
-
- 3. *** DeHackEd.ini Options
- \------======================
-
- Included with DeHackEd 2.2 is a DeHackEd.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.
- Note: you must keep a space on both sides of the equal signs for a
- parameter to be processed properly. A summary of the allowable command
- line options follows:
-
- # Start comment lines with a pound sign. Anything after the pound
- sign is ignored.
- doomexe = <exename>
- This is the name of your doom.exe file, and full path if necessary.
- This doesn't need to be included if you are running DeHackEd from
- the directory that your doom.exe file resides in, and it's got the
- proper name (doom.exe or doom2.exe).
- doomwad = <wadname>
- 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.
- doompath = <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.
- doomargs = <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.
-
- 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>
- This is the version of Doom you are hacking. 0 is Doom 1.2,
- 2 is Doom 2 v1.666, and 1 is everything else, Doom 2 v1.666 and
- Doom 2 v1.7(a). 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>
- These are the offsets in the Doom exe file for their corresponding
- data chunks. PLAY WITH THESE AT YOUR OWN RISK.
-
-
- 4. *** 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 Views, plays, or displays the current field, if applicable. If
- you are on a "frame" field, such as any of the Thing frames, or
- any field in the Frame table, or the Frame fields in the Ammo
- editor, you can see the frame that you've got highlighted simply
- by hitting the spacebar. (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. Escape will exit. The spacebar will
- also view the full text strings in the Text Editor. And it will
- also play the sounds when you are in a sound field (currently not
- quite working yet).
-
- 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 (Thing #104 for Doom 1.2),
- which is just a temporary storage Thing (and is not actually
- present in the Doom.exe file). Note that the Thing names will
- not change... the Thing name is not actually in the Doom.exe, and
- is just included for your own benefit. The Thing # is also only
- for the convenience of the hacker, and is not in the doom.exe
- file. A specific Thing # will always have the same Thing Name,
- and this cannot be changed.
-
- D Change numeric mode to Decimal. This displays all numbers as
- normal decimal numbers. 'H' will switch to hexidecimal displays,
- which may be helpful sometimes.
-
- G Goes to a specific Thing. If you know exactly which Thing or
- Frame you want to see, go right to it without bothering to
- page around looking. The Things now have a goto window arranged
- alphabetically by name. That's so that you don't need to remember
- lots of Thing numbers all the time!
-
- H Displays all numbers in the hexidecimal number format. Useful
- for those true hackers who live in hex their whole lives. Use
- 'D' to return to the normal decimal world.
-
- 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 must enter the patch filename, and it
- will replace the current information. Note that 'w' must still
- be used to make the changes permanent. You can also do this
- from the command line by typing
- dehacked -load <patchname>
- One caveat: the load feature was updated to allow automatic
- conversion of DeHackEd 1.3 patch files to DeHackEd 2.2 patch files.
- With the patches I've tested I have not noticed any problems, but
- if you have any difficulties, please let me know.
- Note: conversion TO Doom 1.2 will NOT work.
-
- M Merges a new patch file into Doom. The 'l'oad option overwrites
- all information with the information from the new patch file.
- The 'm'erge option will do it's best to merge the file that you
- are loading into the Doom exe, without touching any data that may
- already be changed. It will not always give the expected
- results when the new patch file changes something that's already
- changed in the current Doom exe, but it will usually work. Also,
- you will need to have a "normal" patch file for Doom to compare
- against. See the section 1 (patch files) for more information on
- "normal" patch files.
-
- R Runs Doom. This option is slightly tempermental, and every once
- in a while it just flashes the screen and refuses to run Doom.
- Try it to see if it'll work for you. 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.
-
- S Save a patch file. You must enter the patch filename, and it
- will save all editable material to the patch file. It saves either
- a Doom 1.2 or 1.666 patch depending on what Doom exe you are
- editing at the time. 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
- Doom exe file, and will return you to your most recent 'w'rite
- of the Doom exe file.
-
- W Writes all changes to the Doom exe file. This step is necessary
- to get any results!
-
- F2 Thing Editor. This is the main Thing editor, the default screen in
- DeHackEd. See section 6 for more detailed Thing info.
-
- F3 Frame Table. Displays Frame information, in a list format.
- See section 7 for more detailed Frame info.
-
- F4 Ammo/Weapon Editor. This allows you to edit the ammo and weapon
- amounts and graphics. Section 8 talks more about this screen.
-
- F5 Sound Table. A jolly good table of all the sounds. Check out
- section 9 for more Sound table info.
-
- F6 Sprite Table. A handy list of all the sprites, in case someone
- needs it. Section 10 deals with the Sprites.
-
- F7 Text Editor. This shows all the text strings in the Doom.exe
- file. You can also edit the strings, a capability new to
- DeHackEd (new to version 2.0, that is). Section 11 has more info.
-
- F8 Thing List. This is a Table version of the Thing editor. It shows
- only the most important Thing information, and is meant as a quick-
- reference guide.
-
-
- 5. *** Mouse Info
- \------============
-
- Some notes on the mouse support (new to version 2.2). Generally just
- click places to find out what happens! The new 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, or switch editors). Clicking
- on any of the fields will bring up an editing box to let you change the
- value. Click on the "Thing Name" in the upper left window to Go to any
- of the Things by name. Clicking on any sound or frame names 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),
- ie get you out of input boxes, leave the frame viewer, etc. The way it's
- designed should (hopefully) be intuitive.
-
-
- 6. *** 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 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. Most of the rest of
- the Player entries, however, are used and can be 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. Note: these are different between 1.2 and
- newer versions, because new Things have been added!
- Thing Name: A short descriptive name for the Thing. This info
- is NOT stored in the Doom exe file, and thus you can't edit it, and
- it will always remain the same. So a Thing #55 (the rocket launcher
- in Doom 1.2) will always be described as a "Rocket Launcher", even
- if you change it to something entirely different, like a Cacodemon.
- Thing ID#: This is the Thing's 'identification number' which is
- used in level developement (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, it's 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 #10, '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
- "death" (explosion). Note that Lost Souls have this set to 3.
- 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 action/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 6b).
-
- 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 it's 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. This field is only shown for
- versions other than Doom 1.2.
-
-
- b. Bit Editor
-
- 0.Gettable Thing: Something that can be picked up by the player,
- like an ammo clip.
- 1.Obstacle: Something that can't be walked through.
- 2.Shootable Thing: 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.'Automatics': From Jason Gorski: "Okay well if you don't want
- your weapons to auto-lock onto something set the automatics to yes."
- Basically Things like PUFF, TFOG, BLUD, and projectiles.
- 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. Strange.
- 6.In Pain: Used internally by the Doom exe to determine if a
- monster is in pain or not.
- 7.Unknown
- 8.Hangs From Ceiling: For those gory legs & mangled bodies. Have it
- set, well, 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.Can pick 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.Unknown
- 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 projectile 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.Unknown
- 22.Counts for Kill% This Thing counts as part of the Kill% at the end
- of the level.
- 23.Counts for Item% Just like Kill%, but for Things.
- 24.Unknown
- 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.Unknown \
- 29.Unknown Perhaps these are unused???
- 30.Unknown /
- 31.Unknown /
-
- 7. *** 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 is not actually included in the
- Doom.exe file. The Sprite Sub# is multiplied by 32768 if the
- Sprite is to always be displayed at it's full brightness. I've
- just changed that into a check box to make it easier to make a
- Sprite bright, or not-bright. Sprites that are always displayed
- at their full brightness are Lost Souls, plasma bullets, etc... they
- are always visible no matter what the lighting 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. It appears after
- more digging that this value is really useless. The actual location
- in the code is specified by a relocation table elsewhere in the
- Doom exe, which is referred to instead of the code pointer.
-
-
- 8. *** Ammo Editor
- \------=============
-
- 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.
-
-
- 9. *** 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: ??? Perhaps some complicated sound thingy.
- Value: ??? Another unknown sound value, perhaps something
- dealing with how the sound was sampled.
-
-
- 10. *** 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.
-
-
- 11. *** 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 variable 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. :-)
-
-
- That's about it. Any more question? Feel free to write me at
- gregl@umich.edu for more information. Have fun!
-