DeHackEd
From DoomWiki.org
DeHackEd | |
![]() DeHackEd 3.0 and 3.1 splash screen. | |
Developer(s) | Greg Lewis (Tree) |
---|---|
Initial release | 1.0 (1994-06-19, 30 years ago) |
Latest release | 3.0a (1995-09-04, 29 years ago) |
Development status | Discontinued |
Written in | C++ |
Target platform | DOS |
DeHackEd (or DHE for short) is an editor originally created for vanilla Doom that allows the operation of the executable to be changed. It was developed by Greg Lewis (Tree). Hit points, sounds, frame sequences, text strings and several other miscellaneous values can be changed. Modifications can be distributed in the form of DeHackEd "patches" which can be applied to the executable. In order to do this, DeHackEd has the ability to generate an exact copy of the Doom or Doom II executable, which by default is called doomhack.exe.
The most common patches add fast monsters and weapons, player-seeking self-detonating barrels, and so on. However, more balanced and artistic modifications can and have been made. Even though many advanced effects can be achieved with DeHackEd, it does not offer the complete flexibility that a custom source port can provide. Monster AI and armor classes are fixed for example.
Older DeHackEd patches use a binary format of data to be applied to an executable file using the DeHackEd patching utility. Later versions of DeHackEd save their patches in a human-readable plain text format that can be edited with any text editor.
![](/w/images/thumb/5/51/Dhe31_text.png/250px-Dhe31_text.png)
Boom included the ability to load DeHackEd patches and affect changes to the game upon startup without any modification to the executable file. Other source ports added similar functionality, and command-line loadable DeHackEd support is now common with most modern source ports. Boom also provided the BEX (Boom EXtended) extensions for DeHackEd support. BEX allows greater flexibility in string editing, application of code pointers to any frame, and extra code pointers.
Another extension to DeHackEd editing targeted at source ports later emerged in the form of the DEHEXTRA standard, which specifies additional things, sprites, frames, and sounds which are available with specified numbers and are unused by default, allowing the addition of entirely new objects without replacing the game's built-in content.
Contents
History[edit]
- v1.0 was released around June 19, 1994. It is the first release.
- v1.1
- v1.2 was released around June 24, 1994.
- v1.3 was released around July 1, 1994.
- v2.0 (beta) was released around August 24, 1994.
- v2.0 was released on September 12, 1994.[1]
- v2.1 was released on November 2, 1994.[2]
- v2.2 was released on December 14, 1994.[3]
- v2.3 was released on February 26, 1995.[4]
- v2.4 was released around May 14, 1995.
- v3.0 was released on August 29, 1995.[5]
- v3.0a was released on September 4, 1995. It is the final release of DeHackEd by Greg Lewis.
Also, a separate version was created by John A. Kaczmarski Jr. for Final Doom. It was released as v3.1 on February 26, 1997. However, it is based on DeHackEd v2.3 and therefore lacks some of the features of the newer versions.
DoomHack[edit]
Besides being the default name of the executable DeHackEd generates as a copy of the Doom II executable, DoomHack, stylized as DOOMHACK.EXE is also an umbrella moniker to describe any custom executable that applies a DeHackEd patch to the Doom executable, commonly that of Doom II. However, the shareware release of Doom may also be used when a user wants to create a patch. In DeHackEd's INI file, one can specify a custom name for the resulting executable, set by the user.
Several WADs, primarily those released as partial conversions and total conversions such as Hacx, Mordeth and Strain, use either custom installer programs or primitive batch files to apply their .deh patch to a copy of the Doom II executable. This is done through the main DeHackEd program in conjunction with DeuSF and NWT to append extra flats and textures to the patch, but can also be used to simply merge the patch and the executable together. These installers also changed the resulting executables to a custom name to distinguish them from the main Doom or Doom II executable. Not every batch file or installer did this, however, or confusingly changed the DeHackEd exectuable back to Doom II.
This method was the primary means of modifying the engine before the existence of source ports, as nowadays the user simply loads the .deh patch alongside their port of choice, negating the use of a custom DeHackEd engine.
Supplying a modified DeHackEd doomhack executable with a release instead of relying on an installer/batch file or an instruction (or a combination of these) did also exist and was (and is) considered illegal due to it relying on id Software's executables. Supplying a patch instead avoids this by including only a minimum amount of novel information to apply to the original file and requiring the end user to possess the original. This also leaves the choice to the end user whether to play it in a source port or on vanilla Doom.
In the present day, for those projects that target pure vanilla Doom/DOS executable compatibility, DoomHack may still be used. Because of this, and because of its prior function as a means to modify the engine, DoomHack can be seen as a predecessor to the later source ports, that made modifications possible before the Doom source code was released.
VULD[edit]
The launcher VULD makes heavy use of DoomHack to automatically apply DeHackEd patches and graphics from PWADs to a new executable that can also be automatically renamed using the name of the patch as its template.
DEHACKED lump[edit]
In 1998, MBF introduced embedded DeHackEd patches in the form of the DEHACKED lump, which could be supplied inside the WAD file. Support for this lump has since become standard among source ports.
Reference tables[edit]
Thing numbers[edit]
When modifying things in DeHackEd, each thing type has an associated number. These correspond to the index in the thing info table inside the executable (mobjinfo found in info.c in the Doom source code). This number is different from the DoomEd number used to identify things when editing levels. Note that the DeHackEd index starts at 1, while the mobjinfo table index starts at 0.
For convenience, the table also lists the default DoomEd number associated to each thing, as well as the names used in popular editors, the identifier used in the Doom source code, and the corresponding ZDoom class name (which are used in UMAPINFO) and their DECOHack "Friendly" Mnemonics.
Thing number | DeHackEd name | DoomEd | Doom Builder name | SLADE name | Identifier | ZDoom class | DECOHack Mnemonics |
---|---|---|---|---|---|---|---|
1 | Player | MT_PLAYER | DoomPlayer | MTF_PLAYER | |||
2 | Trooper | 3004 | Former Human | Former Human | MT_POSSESSED | ZombieMan | MTF_ZOMBIEMAN |
3 | Sargeant | 9 | Former Sergeant | Former Human Sergeant | MT_SHOTGUY | ShotgunGuy | MTF_SHOTGUNGUY |
4 | Archvile | 64 | Archvile | Arch-Vile | MT_VILE | Archvile | MTF_ARCHVILE |
5 | Archvile Attack | MT_FIRE | ArchvileFire | MTF_ARCHVILE_FIRE | |||
6 | Revenant | 66 | Revenant | Revenant | MT_UNDEAD | Revenant | MTF_REVENANT |
7 | Revenant Fireball | MT_TRACER | RevenantTracer | MTF_REVENANT_ROCKET | |||
8 | Fireball Trail | MT_SMOKE | RevenantTracerSmoke | MTF_REVENANT_ROCKET_TRAIL | |||
9 | Mancubus | 67 | Mancubus | Mancubus | MT_FATSO | Fatso | MTF_MANCUBUS |
10 | Mancubus Fireball | MT_FATSHOT | FatShot | MTF_MANCUBUS_FIREBALL | |||
11 | Chaingun Sargeant | 65 | Chaingunner | Chaingunner | MT_CHAINGUY | ChaingunGuy | MTF_CHAINGUNNER |
12 | Imp | 3001 | Imp | Imp | MT_TROOP | DoomImp | MTF_IMP |
13 | Demon | 3002 | Demon | Demon | MT_SERGEANT | Demon | MTF_DEMON |
14 | Spectre | 58 | Spectre | Spectre | MT_SHADOWS | Spectre | MTF_SPECTRE |
15 | Cacodemon | 3005 | Cacodemon | Cacodemon | MT_HEAD | Cacodemon | MTF_CACODEMON |
16 | Baron of Hell | 3003 | Baron of Hell | Baron of Hell | MT_BRUISER | BaronOfHell | MTF_BARON |
17 | Baron Fireball | MT_BRUISERSHOT | BaronBall | MTF_BARON_FIREBALL | |||
18 | Hell Knight | 69 | Hell Knight | Hell Knight | MT_KNIGHT | HellKnight | MTF_HELLKNIGHT |
19 | Lost Soul | 3006 | Lost Soul | Lost Soul | MT_SKULL | LostSoul | MTF_LOSTSOUL |
20 | Spiderdemon | 7 | Spider Mastermind | Spider Mastermind | MT_SPIDER | SpiderMastermind | MTF_SPIDERMASTERMIND |
21 | Arachnotron | 68 | Arachnotron | Arachnotron | MT_BABY | Arachnotron | MTF_ARACHNOTRON |
22 | Cyberdemon | 16 | Cyberdemon | Cyberdemon | MT_CYBORG | Cyberdemon | MTF_CYBERDEMON |
23 | Pain Elemental | 71 | Pain Elemental | Pain Elemental | MT_PAIN | PainElemental | MTF_PAINELEMENTAL |
24 | SS Nazi | 84 | Wolfenstein SS | Wolfenstein 3D SS | MT_WOLFSS | WolfensteinSS | MTF_SSNAZI |
25 | Commander Keen | 72 | Commander Keen | Hanging Keen | MT_KEEN | CommanderKeen | MTF_COMMANDERKEEN |
26 | Big Brain | 88 | Icon of Sin | Boss Brain | MT_BOSSBRAIN | BossBrain | MTF_BOSSBRAIN |
27 | Demon Spawner | 89 | Monster Spawner | Boss Shooter | MT_BOSSSPIT | BossEye | MTF_DEMONSPAWNER |
28 | Demon Spawn Spot | 87 | Monster Target | Boss Spawn Spot | MT_BOSSTARGET | BossTarget | MTF_DEMONSPAWNER_TARGET |
29 | Demon Spawn Cube | MT_SPAWNSHOT | SpawnShot | MTF_SPAWNCUBE | |||
30 | Demon Spawn Fire | MT_SPAWNFIRE | SpawnFire | MTF_SPAWNFIRE | |||
31 | Barrel | 2035 | Barrel | Barrel | MT_BARREL | ExplosiveBarrel | MTF_BARREL |
32 | Imp Fireball | MT_TROOPSHOT | DoomImpBall | MTF_IMP_FIREBALL | |||
33 | Caco Fireball | MT_HEADSHOT | CacodemonBall | MTF_CACODEMON_FIREBALL | |||
34 | Rocket (in air) | MT_ROCKET | Rocket | MTF_ROCKET | |||
35 | Plasma Bullet | MT_PLASMA | PlasmaBall | MTF_PLASMA_BALL | |||
36 | BFG Shot | MT_BFG | BFGBall | MTF_BFG_BALL | |||
37 | Arachnotron Fireball | MT_ARACHPLAZ | ArachnotronPlasma | MTF_ARACHNOTRON_PLASMA | |||
38 | Bullet Puff | MT_PUFF | BulletPuff | MTF_BULLETPUFF | |||
39 | Blood Splat | MT_BLOOD | Blood | MTF_BLOOD | |||
40 | Teleport Flash | MT_TFOG | TeleportFog | MTF_TELEPORT_FOG | |||
41 | Item Respawn Fog | MT_IFOG | ItemFog | MTF_ITEM_RESPAWN_FOG | |||
42 | Teleport Exit | 14 | MT_TELEPORTMAN | TeleportDest | MTF_TELEPORT_EXIT | ||
43 | BFG Hit | MT_EXTRABFG | BFGExtra | MTF_BFG_TRACER | |||
44 | Green Armor | 2018 | Green armor | Green Armour | MT_MISC0 | GreenArmor | MTF_ARMOR_GREEN |
45 | Blue Armor | 2019 | Blue armor | Blue Armour | MT_MISC1 | BlueArmor | MTF_ARMOR_BLUE |
46 | Health Potion | 2014 | Health bonus | Health Potion | MT_MISC2 | HealthBonus | MTF_HEALTH_BONUS |
47 | Armor Helmet | 2015 | Armor bonus | Armour Helmet | MT_MISC3 | ArmorBonus | MTF_ARMOR_BONUS |
48 | Blue Keycard | 5 | Blue keycard | Blue Keycard | MT_MISC4 | BlueCard | MTF_KEYCARD_BLUE |
49 | Red Keycard | 13 | Red keycard | Red Keycard | MT_MISC5 | RedCard | MTF_KEYCARD_RED |
50 | Yellow Keycard | 6 | Yellow keycard | Yellow Keycard | MT_MISC6 | YellowCard | MTF_KEYCARD_YELLOW |
51 | Yellow Skull Key | 39 | Yellow skullkey | Yellow Skull Key | MT_MISC7 | YellowSkull | MTF_SKULLKEY_YELLOW |
52 | Red Skull Key | 38 | Red skullkey | Red Skull Key | MT_MISC8 | RedSkull | MTF_SKULLKEY_RED |
53 | Blue Skull Key | 40 | Blue skullkey | Blue Skull Key | MT_MISC9 | BlueSkull | MTF_SKULLKEY_BLUE |
54 | Stim Pack | 2011 | Stimpack | Stimpack | MT_MISC10 | Stimpack | MTF_STIMPAK |
55 | Medical Kit | 2012 | Medikit | Medikit | MT_MISC11 | Medikit | MTF_MEDIKIT |
56 | Soul Sphere | 2013 | Soulsphere | Soul Sphere | MT_MISC12 | Soulsphere | MTF_SOULSPHERE |
57 | Invulnerability | 2022 | Invulnerability | Invulnerability Sphere | MT_INV | InvulnerabilitySphere | MTF_INVULNERABILITY |
58 | Berserk Sphere | 2023 | Berserk | Berserk Pack | MT_MISC13 | Berserk | MTF_BERSERK |
59 | Blur Sphere | 2024 | Invisibility | Partial Invisibility Sphere | MT_INS | BlurSphere | MTF_PARTIALINVISIBILITY |
60 | Radiation Suit | 2025 | Radiation suit | Radiation Shielding Suit | MT_MISC14 | RadSuit | MTF_RADSUIT |
61 | Computer Map | 2026 | Computer map | Computer Area Map | MT_MISC15 | Allmap | MTF_COMPUTERMAP |
62 | Lite Amplification Visor | 2045 | Lite Amplification goggles | Lite-Amp Goggles | MT_MISC16 | Infrared | MTF_LIGHTAMP |
63 | Mega Sphere | 83 | Megasphere | Megasphere | MT_MEGA | Megasphere | MTF_MEGASPHERE |
64 | Ammo Clip | 2007 | Ammo clip | Ammo Clip | MT_CLIP | Clip | MTF_AMMO_BULLETS |
65 | Box of Ammo | 2048 | Box of Ammo | Box of Ammo | MT_MISC17 | ClipBox | MTF_AMMO_BULLETS_BOX |
66 | Rocket | 2010 | Rocket | Rocket | MT_MISC18 | RocketAmmo | MTF_AMMO_ROCKET |
67 | Box of Rockets | 2046 | Box of Rockets | Box of Rockets | MT_MISC19 | RocketBox | MTF_AMMO_ROCKET_BOX |
68 | Energy Cell | 2047 | Cell charge | Energy Cell | MT_MISC20 | Cell | MTF_AMMO_CELLS |
69 | Energy Pack | 17 | Cell charge pack | Energy Pack | MT_MISC21 | CellPack | MTF_AMMO_CELLS_BOX |
70 | Shells | 2008 | Shotgun shells | Shotgun Shells | MT_MISC22 | Shell | MTF_AMMO_SHELLS |
71 | Box of Shells | 2049 | Box of Shells | Box of Shells | MT_MISC23 | ShellBox | MTF_AMMO_SHELLS_BOX |
72 | Backpack | 8 | Backpack | Backpack | MT_MISC24 | Backpack | MTF_BACKPACK |
73 | BFG 9000 | 2006 | BFG9000 | BFG9000 | MT_MISC25 | BFG9000 | MTF_BFG |
74 | Chaingun | 2002 | Chaingun | Chaingun | MT_CHAINGUN | Chaingun | MTF_CHAINGUN |
75 | Chainsaw | 2005 | Chainsaw | Chainsaw | MT_MISC26 | Chainsaw | MTF_CHAINSAW |
76 | Rocket Launcher | 2003 | Rocket launcher | Rocket Launcher | MT_MISC27 | RocketLauncher | MTF_ROCKETLAUNCHER |
77 | Plasma Gun | 2004 | Plasma gun | Plasma Gun | MT_MISC28 | PlasmaRifle | MTF_PLASMARIFLE |
78 | Shotgun | 2001 | Shotgun | Shotgun | MT_SHOTGUN | Shotgun | MTF_SHOTGUN |
79 | Super Shotgun | 82 | Super Shotgun | Super Shotgun | MT_SUPERSHOTGUN | SuperShotgun | MTF_SUPERSHOTGUN |
80 | Tall Lamp | 85 | Tall techno floor lamp | Tall Techno Lamp | MT_MISC29 | TechLamp | MTF_LAMP_TALL |
81 | Tall Lamp 2 | 86 | Short techno floor lamp | Short Techno Lamp | MT_MISC30 | TechLamp2 | MTF_LAMP_TALL2 |
82 | Short Lamp | 2028 | Floor lamp | Yellow Lamp | MT_MISC31 | Column | MTF_LAMP_SHORT |
83 | Tall Green Pillar | 30 | Tall green pillar | Tall Green Pillar | MT_MISC32 | TallGreenColumn | MTF_PILLAR_GREEN_TALL |
84 | Short Green Pillar | 31 | Short green pillar | Short Green Pillar | MT_MISC33 | ShortGreenColumn | MTF_PILLAR_GREEN_SHORT |
85 | Tall Red Pillar | 32 | Tall red pillar | Tall Red Pillar | MT_MISC34 | TallRedColumn | MTF_PILLAR_RED_TALL |
86 | Short Red Pillar | 33 | Short red pillar | Short Red Pillar | MT_MISC35 | ShortRedColumn | MTF_PILLAR_RED_SHORT |
87 | Pillar with Skull | 37 | Shrot red pillar (skull) | Red Pillar + Skull | MT_MISC36 | SkullColumn | MTF_PILLAR_SKULL |
88 | Pillar with Heart | 36 | Short green pillar (beating heart) | Pillar + Pumping Heart | MT_MISC37 | HeartColumn | MTF_PILLAR_HEART |
89 | Eye in Symbol | 41 | Evil Eye | Evil Eye | MT_MISC38 | EvilEye | MTF_EVIL_EYE |
90 | Flaming Skulls | 42 | Floating skull rock | Flaming Skulls | MT_MISC39 | FloatingSkull | MTF_FLOATING_SKULLS |
91 | Grey Tree | 43 | Gray tree | Short Grey Tree | MT_MISC40 | TorchTree | MTF_TREE_SMALL |
92 | Tall Blue Torch | 44 | Tall blue firestick | Tall Blue Torch | MT_MISC41 | BlueTorch | MTF_TORCH_TALL_BLUE |
93 | Tall Green torch | 45 | Tall green firestick | Tall Green Torch | MT_MISC42 | GreenTorch | MTF_TORCH_TALL_GREEN |
94 | Tall Red Torch | 46 | Tall red firestick | Tall Red Torch | MT_MISC43 | RedTorch | MTF_TORCH_TALL_RED |
95 | Small Blue Torch | 55 | Short blue firestick | Short Blue Torch | MT_MISC44 | ShortBlueTorch | MTF_TORCH_SMALL_BLUE |
96 | Small Green Torch | 56 | Short green firestick | Short Green Torch | MT_MISC45 | ShortGreenTorch | MTF_TORCH_SMALL_GREEN |
97 | Small Red Torch | 57 | Short red firestick | Short Red Torch | MT_MISC46 | ShortRedTorch | MTF_TORCH_SMALL_RED |
98 | Brown Stub | 47 | Stalagmite | Tree Stump | MT_MISC47 | Stalagtite | MTF_STALAGMITE |
99 | Technical Column | 48 | Tall techno pillar | Tech Column | MT_MISC48 | TechPillar | MTF_TECHCOLUMN |
100 | Candle | 34 | Candle | Candle | MT_MISC49 | Candlestick | MTF_CANDLE |
101 | Candelabra | 35 | Candelabra | Candelabra | MT_MISC50 | Candelabra | MTF_CANDELABRA |
102 | Swaying Body | 49 | Hanging victim, twitching (blocking) | Hanging Swaying Body (Blocking) | MT_MISC51 | BloodyTwitch | MTF_SWAYING_BODY |
103 | Hanging Arms Out | 50 | Hanging victim, arms out (blocking) | Hanging Body Arms Out (Blocking) | MT_MISC52 | Meat2 | MTF_HANGING_BODY_ARMS |
104 | One-legged Body | 51 | Hanging victim, 1-legged (blocking) | Hanging One-legged Body (Blocking) | MT_MISC53 | Meat3 | MTF_ONE_LEGGED_BODY |
105 | Hanging Torso | 52 | Hanging pair of legs (blocking) | Hanging Legs (Blocking) | MT_MISC54 | Meat4 | MTF_HANGING_TORSO |
106 | Hanging Leg | 53 | Hanging leg (blocking) | Hanging Leg (Blocking) | MT_MISC55 | Meat5 | MTF_HANGING_LEG |
107 | Hanging Arms Out2 | 59 | Hanging victim, arms out | Hanging Body Arms Out | MT_MISC56 | NonsolidMeat2 | MTF_HANGING_BODY_ARMS2 |
108 | Hanging Torso 2 | 60 | Hanging pair of legs | Hanging Legs | MT_MISC57 | NonsolidMeat4 | MTF_HANGING_TORSO2 |
109 | One-legged Body 2 | 61 | Hanging victim, 1-legged | Hanging One-legged Body | MT_MISC58 | NonsolidMeat3 | MTF_ONE_LEGGED_BODY2 |
110 | Hanging Leg 2 | 62 | Hanging leg | Hanging Leg | MT_MISC59 | NonsolidMeat5 | MTF_HANGING_LEG2 |
111 | Swaying Body 2 | 63 | Hanging victim, twitching | Hanging Swaying Body | MT_MISC60 | NonsolidTwitch | MTF_SWAYING_BODY2 |
112 | Dead Cacodemon | 22 | Dead cacodemon | Dead Cacodemon | MT_MISC61 | DeadCacodemon | MTF_CACODEMON_DEAD |
113 | Dead Marine | 15 | Dead player | Dead Player | MT_MISC62 | DeadMarine | MTF_PLAYER_DEAD |
114 | Dead Trooper | 18 | Dead former human | Dead Former Human | MT_MISC63 | DeadZombieMan | MTF_ZOMBIEMAN_DEAD |
115 | Dead Demon | 21 | Dead demon | Dead Demon | MT_MISC64 | DeadDemon | MTF_DEMON_DEAD |
116 | Dead Lost Soul | 23 | Dead lost soul | Dead Lost Soul | MT_MISC65 | DeadLostSoul | MTF_LOSTSOUL_DEAD |
117 | Dead Imp | 20 | Dead imp | Dead Imp | MT_MISC66 | DeadDoomImp | MTF_IMP_DEAD |
118 | Dead Sargeant | 19 | Dead former sergeant | Dead Former Human Sergeant | MT_MISC67 | DeadShotgunGuy | MTF_SHOTGUNGUY_DEAD |
119 | Guts and Bones | 10 | Bloody mess 1 | Guts and Bones | MT_MISC68 | GibbedMarine | MTF_PLAYER_GUTS |
120 | Guts and Bones 2 | 12 | Bloody mess 2 | Guts and Bones 2 | MT_MISC69 | GibbedMarineExtra | MTF_PLAYER_GUTS2 |
121 | Skewered Heads | 28 | 5 skulls shish kebob | Heads on Pole | MT_MISC70 | HeadsOnAStick | MTF_HEAD_SKEWER |
122 | Pool of Blood | 24 | Pool of blood and bones | Pool of Blood | MT_MISC71 | Gibs | MTF_BLOOD_POOL |
123 | Pole with Skull | 27 | Skull on a pole | Skull on Pole | MT_MISC72 | HeadOnAStick | MTF_HEAD_POLE |
124 | Pile of Skulls | 29 | Pile of skulls and candles | Pile of Skulls | MT_MISC73 | HeadCandles | MTF_SKULL_PILE |
125 | Impaled Body | 25 | Impaled human | Impaled Body | MT_MISC74 | DeadStick | MTF_ZOMBIE_SKEWER |
126 | Twitching Body | 26 | Twitching impaled human | Impaled Body (Twitching) | MT_MISC75 | LiveStick | MTF_ZOMBIE_SKEWER_TWITCH |
127 | Large Tree | 54 | Large brown tree | Large Brown Tree | MT_MISC76 | BigTree | MTF_TREE_LARGE |
128 | Flaming Barrel | 70 | Burning barrel | Burning Barrel | MT_MISC77 | BurningBarrel | MTF_BARREL_FLAMING |
129 | Hanging Body 1 | 73 | Hanging victim, guts removed | Hanging Body, Guts Removed | MT_MISC78 | HangNoGuts | MTF_HANGING_BODY |
130 | Hanging Body 2 | 74 | Hanging victim, guts and brain removed | Hanging Body, Guts & Brain Removed | MT_MISC79 | HangBNoBrain | MTF_HANGING_BODY2 |
131 | Hanging Body 3 | 75 | Hanging torso, looking down | Hanging Torso, Looking Down | MT_MISC80 | HangTLookingDown | MTF_HANGING_BODY3 |
132 | Hanging Body 4 | 76 | Hanging torso, open skull | Hanging Torso, Open Skull | MT_MISC81 | HangTSkull | MTF_HANGING_BODY4 |
133 | Hanging Body 5 | 77 | Hanging torso, looking up | Hanging Torso, Looking Up | MT_MISC82 | HangTLookingUp | MTF_HANGING_BODY5 |
134 | Hanging Body 6 | 78 | Hanging torso, brain removed | Hanging Torso, Brain Removed | MT_MISC83 | HangTNoBrain | MTF_HANGING_BODY6 |
135 | Pool Of Blood 1 | 79 | Pool of blood and guts | Pool of Blood 2 | MT_MISC84 | ColonGibs | MTF_BLOOD_POOL_SMALL |
136 | Pool Of Blood 2 | 80 | Pool of blood | Pool of Blood 3 | MT_MISC85 | SmallBloodPool | MTF_BLOOD_POOL_TINY |
137 | Brains | 81 | Pool of brains | Pool of Brains | MT_MISC86 | BrainStem | MTF_BRAIN |
Thing number | Usage | DoomEd | Doom Builder name | SLADE name | Identifier | ZDoom class | DECOHack Mnemonics |
Boom things | |||||||
138 | Point pusher | 5001 | MT_PUSH | PointPusher | MTF_PUSHER | ||
139 | Point pulller | 5002 | MT_PULL | PointPuller | MTF_PULLER | ||
MBF things | |||||||
140 | Helper dog | 888 | MT_DOGS | MBFHelperDog | MTF_HELPER_DOG | ||
141 | Green plasma | MT_PLASMA1 | PlasmaBall1 | MTF_BFG_PLASMA1 | |||
142 | Red plasma | MT_PLASMA2 | PlasmaBall2 | MTF_BFG_PLASMA2 | |||
143 | Evil sceptre | 2016 | MT_SCEPTRE | EvilSceptre | MTF_SCEPTRE | ||
144 | Unholy bible | 2017 | MT_BIBLE | UnholyBible | MTF_BIBLE | ||
PrBoom+ things | |||||||
145 | MUSINFO music spot | 14164 | MT_MUSICSOURCE | MusicChanger | MTF_MUSICSOURCE | ||
Doom Retro things | |||||||
146 | MTF_GIBDTH | ||||||
147 | MTF_BLUEBLOOD | ||||||
148 | MTF_GREENBLOOD | ||||||
149 | MTF_FUZZYBLOOD | ||||||
150 | MTF_TRAIL | ||||||
DEHEXTRA things | |||||||
151 | MT_EXTRA00 | Deh_Actor_150 | MTF_EXTRA00 | ||||
[...] | |||||||
250 | MT_EXTRA99 | Deh_Actor_249 | MTF_EXTRA99 | ||||
ID24 things | |||||||
-1879048192 | Ghoul | -28672 | |||||
-1879048191 | Banshee | -28671 | |||||
-1879048190 | Mindweaver | -28670 | |||||
-1879048189 | Shocktrooper | -28669 | |||||
-1879048188 | Vassago | -28668 | |||||
-1879048187 | Tyrant | -28667 | |||||
-1879048186 | Tyrant (Boss 1) | -28666 | |||||
-1879048185 | Tyrant (Boss 2) | -28665 | |||||
-1879048184 | Incinerator Flame | ||||||
-1879048183 | Heatwave Spawner | ||||||
-1879048182 | Heatwave Ripper | ||||||
-1879048181 | Ghoul Ball | ||||||
-1879048180 | Shocktrooper Head | ||||||
-1879048179 | Shocktrooper Torso | ||||||
-1879048178 | Vassago Flame | ||||||
-1879048177 | Stalagmite (gray) | -28664 | |||||
-1879048176 | Large corpse pile | -28663 | |||||
-1879048175 | Human BBQ 1 | -28662 | |||||
-1879048174 | Human BBQ 2 | -28661 | |||||
-1879048173 | Hanging victim, both legs | -28660 | |||||
-1879048172 | Hanging victim, both legs (blocking) | -28659 | |||||
-1879048171 | Hanging victim, crucified | -28658 | |||||
-1879048170 | Hanging victim, crucified (blocking) | -28657 | |||||
-1879048169 | Hanging victim, arms bound | -28656 | |||||
-1879048168 | Hanging victim, arms bound (blocking) | -28655 | |||||
-1879048167 | Hanging baron of Hell | -28654 | |||||
-1879048166 | Hanging baron of Hell (blocking) | -28653 | |||||
-1879048165 | Hanging victim, chained | -28652 | |||||
-1879048164 | Hanging victim, chained (blocking) | -28651 | |||||
-1879048163 | Hanging torso, chained | -28650 | |||||
-1879048162 | Hanging torso, chained (blocking) | -28649 | |||||
-1879048161 | Skull pole trio | -28648 | |||||
-1879048160 | Skull gibs | -28647 | |||||
-1879048159 | Bush, short | -28646 | |||||
-1879048158 | Bush, short burned 1 | -28645 | |||||
-1879048157 | Bush, short burned 2 | -28644 | |||||
-1879048156 | Bush, tall | -28643 | |||||
-1879048155 | Bush, tall burned 1 | -28642 | |||||
-1879048154 | Bush, tall burned 2 | -28641 | |||||
-1879048153 | Cave rock column | -28640 | |||||
-1879048152 | Cave stalagmite, large | -28639 | |||||
-1879048151 | Cave stalagmite, medium | -28638 | |||||
-1879048150 | Cave stalagmite, small | -28637 | |||||
-1879048149 | Cave stalactite, large | -28636 | |||||
-1879048148 | Cave stalactite, large (blocking) | -28635 | |||||
-1879048147 | Cave stalactite, medium | -28634 | |||||
-1879048146 | Cave stalactite, medium (blocking) | -28633 | |||||
-1879048145 | Cave stalactite, small | -28632 | |||||
-1879048144 | Cave stalactite, small (blocking) | -28631 | |||||
-1879048143 | Office chair | -28630 | |||||
-1879048142 | Office lamp (breakable) | -28629 | |||||
-1879048141 | Ceiling lamp | -28628 | |||||
-1879048140 | Candelabra (short) | -28627 | |||||
-1879048139 | Ambient Klaxon | -28626 | |||||
-1879048138 | Ambient Portal Open | -28625 | |||||
-1879048137 | Ambient Portal Loop | -28624 | |||||
-1879048136 | Ambient Portal Close | -28623 | |||||
-1879048135 | Fuel Can | -28622 | |||||
-1879048134 | Fuel Tank | -28621 | |||||
-1879048133 | Heatwave Generator | -28620 | |||||
-1879048132 | Incinerator | -28619 |
Code pointers[edit]
Player code pointers[edit]
Frame # | Pointer # | BEX equivalent | Function |
---|---|---|---|
1 | 187520 | A_Light0 | Light restore (after flash) |
2 | 185392 | A_WeaponReady | Weapon bobbing pointer |
3 | 185808 | A_Lower | Weapon select pointer |
4 | 185872 | A_Raise | Weapon deselect pointer |
6 | 186000 | A_Punch | Player punch |
9 | 185648 | A_ReFire | If fire button is held, jumps back to first shooting frame instead of frame with this pointer |
14 | 186832 | A_FirePistol | Player pistol shot |
17 | 187536 | A_Light1 | Light flash (dim) |
22 | 186960 | A_FireShotgun | Player shotgun blast |
31 | 187552 | A_Light2 | Light flash (bright) |
36 | 187120 | A_FireShotgun2 | Player super shotgun blast |
38 | 185760 | A_CheckReload | Check shells (if 1 or 0 left, skip reloading frames and select different weapon) |
39 | 166848 | A_OpenShotgun2 | Play sound DBOPN |
41 | 166864 | A_LoadShotgun2 | Play sound DBLOAD |
43 | 166880 | A_CloseShotgun2 | Play sound DBCLS |
52 | 187312 | A_FireCGun | Player chaingun shot (check ammo; do not go to -1 ammo, change weapon) |
60 | 185936 | A_GunFlash | Display firing frame |
61 | 186432 | A_FireMissile | Player launch rocket |
71 | 186176 | A_Saw | Player use chainsaw |
77 | 186528 | A_FirePlasma | Player fire plasma bullet |
84 | 187744 | A_BFGsound | Play sound BFG |
86 | 186480 | A_FireBFG | Player fire BFG shot |
Monster / thing code pointers[edit]
Frame # | Pointer # | BEX equivalent | Function |
---|---|---|---|
119 | 187568 | A_BFGSpray | BFG blast effect |
127 | 166160 | A_Explode | Radius explosion |
157 | 166112 | A_Pain | Play pain sound |
159 | 167808 | A_PlayerScream | Play sound PLDETH or PDIEHI |
160 | 166144 | A_Fall | Dead body mode |
166 | 166096 | A_XScream | Play sound SLOP |
174 | 161536 | A_Look | Wait to wake up |
176 | 161744 | A_Chase | Standard monster walking code pointer |
184 | 162224 | A_FaceTarget | Turn to face the direction of the current target |
185 | 162320 | A_PosAttack | Zombieman pistol shot |
190 | 165984 | A_Scream | Play death sound |
243 | 164160 | A_VileChase | Arch-vile walking code pointer (check to resurrect monsters) |
255 | 164496 | A_VileStart | Play sound VILATK |
257 | 164704 | A_VileTarget | Create arch-vile flame on target, enable radius blast for frame 264 |
264 | 164784 | A_VileAttack | Target jumps in air, takes 20 points of damage |
281 | 164512 | A_StartFire | Play sound FLAMEST |
282 | 164576 | A_Fire | Continuously reposition arch-vile flame on target |
285 | 164544 | A_FireCrackle | Play sound FLAME |
316 | 163424 | A_Tracer | Revenant fireball homing & smoke trail code pointer |
336 | 163808 | A_SkelWhoosh | Play sound SKESWG |
338 | 163840 | A_SkelFist | Revenant punch, play sound SKEPCH if hit |
341 | 163328 | A_SkelMissile | Launch revenant fireball with possible homing (and smoke trail) effect |
376 | 164992 | A_FatRaise | Play sound MANATK |
377 | 165024 | A_FatAttack1 | Launch two mancubus fireballs: one straight, one left |
380 | 165152 | A_FatAttack2 | Launch two mancubus fireballs: one straight, one right |
383 | 165280 | A_FatAttack3 | Launch two mancubus fireballs: one left, one right |
397 | 166208 | A_BossDeath | Check for special sector lowering (666/667) |
417 | 162592 | A_CPosAttack | Heavy weapon dude or Wolfenstein SS shoot chaingun, fires two successive hitscan pellets |
419 | 162720 | A_CPosRefire | Check line of sight to stop firing |
454 | 162896 | A_TroopAttack | Launch imp fireball or scratch at close range |
487 | 163008 | A_SargAttack | Demon bite |
506 | 163088 | A_HeadAttack | Launch cacodemon fireball or bite at close range |
539 | 163232 | A_BruisAttack | Launch baron of Hell / Hell knight fireball or scratch at close range |
590 | 165472 | A_SkullAttack | Lost soul attack |
603 | 166784 | A_Metal | Play sound METAL & standard walking pointer |
616 | 162448 | A_SPosAttack | Spiderdemon shoot chaingun (same as shotgun guy's attack), fires three hitscan pellets |
618 | 162784 | A_SpidRefire | Check line of sight to stop firing |
635 | 166816 | A_BabyMetal | Play sound BSPWLK & standard walking pointer |
648 | 162848 | A_BspiAttack | Launch arachnotron plasma bullet |
676 | 166752 | A_Hoof | Play sound HOOF & standard walking pointer |
685 | 163184 | A_CyberAttack | Launch cyberdemon rocket |
711 | 165888 | A_PainAttack | Spawn lost soul |
718 | 165920 | A_PainDie | Spawn three or four lost souls & set body to dead |
774 | 161440 | A_KeenDie | Check for special sector lowering (tag 666) and dead body mode |
779 | 167008 | A_BrainPain | Play sound BOSPN |
780 | 167024 | A_BrainScream | Play sound BOSDTH and create explosions (frames 799-801) at 320 units south from Romero's head at heights between 128 and 640 units |
783 | 167312 | A_BrainDie | End level |
785 | 166912 | A_BrainAwake | Play sound BOSSIT and initialize boss spawn spots list (game will crash if too many spots are present) |
786 | 167328 | A_BrainSpit | Fire spawn cube - landing required on level or game will crash |
787 | 167488 | A_SpawnSound | Play sound BOSCUB |
788 | 167520 | A_SpawnFly | Check for spawn point (spawn monster other than former humans, cyberdemons or spiderdemons) |
801 | 167184 | A_BrainExplode | Create explosion (frames 127 - 129) |
Source port code pointers[edit]
Code pointer | Type | Function | Source port |
---|---|---|---|
NULL | - | Zeroes out an existing code pointer | Boom |
A_Detonate | Thing | Similar to A_Explode, but uses the "missile damage" value of the calling actor instead of 128. | MBF |
A_Die | Thing | Causes the calling actor to be killed. | MBF |
A_Face | Thing | Sets the calling actor's angle to misc1 degrees. | MBF |
A_LineEffect | Thing | Performs the action of the misc1 linedef type, on tag misc2. | MBF |
A_Mushroom | Thing | Similar to A_Explode, but also throws "missile damage" fireballs (Mancubus projectiles affected by gravity) at misc1 angle, and misc2 speed. | MBF |
A_PlaySound | Thing | Plays sound index misc1, without attenuation is misc2 is set. | MBF |
A_RandomJump | Thing | Jump to state number misc1, with a probability indicated by misc2. | MBF |
A_Scratch | Thing | Melee attack dealing misc1 damage and playing sound index misc2. | MBF |
A_Spawn | Thing | Spawns a thing of type misc1 at the same position as the calling actor, but with a vertical offset of misc2. | MBF |
A_Stop | Thing | Nullifies the calling actor's velocity/momentum. | MBF |
A_Turn | Thing | Rotates the calling actor by misc1 degrees. | MBF |
A_BetaSkullAttack | Thing | Direct attack function that deals damage at range, no projectile or hitscan trace. | MBF |
A_FireOldBFG | Weapon | Shoots two plasma balls, one red and one green, while consuming one cell ammo. | MBF |
A_NailBomb | Thing | Similar to A_Explode, but also shoots 30 hitscan "nails" in a circle. | SMMU |
A_AddFlags | Thing | A flag manipulation function. | MBF21 |
A_ClearTracer | Thing | Clears out the calling actor's tracer pointer. | MBF21 |
A_FindTracer | Thing | A parameterized projectile aiming function. | MBF21 |
A_HealChase | Thing | A parameterized arch-vile resurrection function. | MBF21 |
A_JumpIfFlagsSet | Thing | A conditional state jump function. | MBF21 |
A_JumpIfHealthBelow | Thing | A conditional state jump function. | MBF21 |
A_JumpIfTargetCloser | Thing | A conditional state jump function. | MBF21 |
A_JumpIfTargetInSight | Thing | A conditional state jump function. | MBF21 |
A_JumpIfTracerCloser | Thing | A conditional state jump function. | MBF21 |
A_JumpIfTracerInSight | Thing | A conditional state jump function. | MBF21 |
A_MonsterProjectile | Thing | A parameterized monster projectile attack function. | MBF21 |
A_MonsterBulletAttack | Thing | A parameterized monster hitscan attack function. | MBF21 |
A_MonsterMeleeAttack | Thing | A parameterized monster melee attack function. | MBF21 |
A_NoiseAlert | Thing | A non-attack function that alerts nearby monster. Taken from Strife. | MBF21 |
A_RadiusDamage | Thing | A parameterized function. | MBF21 |
A_RemoveFlags | Thing | A flag manipulation function. | MBF21 |
A_SeekTracer | Thing | A parameterized projectile homing function. | MBF21 |
A_SpawnObject | Thing | A parameterized spawn function. | MBF21 |
A_CheckAmmo | Weapon | A parameterized weapon state jump function. | MBF21 |
A_ConsumeAmmo | Weapon | A parameterized weapon ammo use function. | MBF21 |
A_GunFlashTo | Weapon | A parameterized weapon flash jump function. | MBF21 |
A_RefireTo | Weapon | A parameterized weapon state jump function. | MBF21 |
A_WeaponAlert | Weapon | A non-attack weapon function that alerts monsters. | MBF21 |
A_WeaponBulletAttack | Weapon | A parameterized weapon hitscan attack function. | MBF21 |
A_WeaponJump | Weapon | A weapon state jump function. | MBF21 |
A_WeaponMeleeAttack | Weapon | A parameterized weapon melee attack function. | MBF21 |
A_WeaponProjectile | Weapon | A parameterized weapon projectile attack function. | MBF21 |
A_WeaponSound | Weapon | A parameterized weapon sound function. | MBF21 |
Sounds[edit]
Index | Sound lump | Note |
---|---|---|
1 | DSPISTOL | |
2 | DSSHOTGN | |
3 | DSSGCOCK | |
4 | DSDSHTGN | |
5 | DSDBOPN | |
6 | DSDCLS | |
7 | DSDBLOAD | |
8 | DSPLASMA | |
9 | DSBFG | |
10 | DSSAWUP | |
11 | DSSAWIDL | |
12 | DSSAWFUL | |
13 | DSSAWHIT | |
14 | DSRLAUNC | |
15 | DSRXPLOD | |
16 | DSFIRSHT | |
17 | DSFIRXPL | |
18 | DSPSTART | |
19 | DSPSTOP | |
20 | DSDOROPN | |
21 | DSDORCLS | |
22 | DSSTNMOV | |
23 | DSSWTCHN | |
24 | DSSWTCHX | |
25 | DSPLPAIN | |
26 | DSDMPAIN | |
27 | DSPOPAIN | |
28 | DSVIPAIN | |
29 | DSMNPAIN | |
30 | DSPEPAIN | |
31 | DSSLOP | |
32 | DSITEMUP | |
33 | DSWPNUP | |
34 | DSOOF | |
35 | DSTELEPT | |
36 | DSPOSIT1 | |
37 | DSPOSIT2 | |
38 | DSPOSIT3 | |
39 | DSBGSIT1 | |
40 | DSBGSIT2 | |
41 | DSSGTSIT | |
42 | DSCACSIT | |
43 | DSBRSSIT | |
44 | DSCYBSIT | |
45 | DSSPISIT | |
46 | DSBSPSIT | |
47 | DSKNTSIT | |
48 | DSVILSIT | |
49 | DSMANSIT | |
50 | DSPESIT | |
51 | DSSKLATK | |
52 | DSSGTATK | |
53 | DSSKEPCH | |
54 | DSVILATK | |
55 | DSCLAW | |
56 | DSSKESWG | |
57 | DSPLDETH | |
58 | DSPDIEHI | |
59 | DSPODTH1 | |
60 | DSPODTH2 | |
61 | DSPODTH3 | |
62 | DSBGDTH1 | |
63 | DSBGDTH2 | |
64 | DSSGTDTH | |
65 | DSCACDTH | |
66 | DSSKLDTH | |
67 | DSBRSDTH | |
68 | DSCYBDTH | |
69 | DSSPIDTH | |
70 | DSBSPDTH | |
71 | DSVILDTH | |
72 | DSKNTDTH | |
73 | DSPEDTH | |
74 | DSSKEDTH | |
75 | DSPOSACT | |
76 | DSBGACT | |
77 | DSDMACT | |
78 | DSBSPACT | |
79 | DSBSPWLK | |
80 | DSVILACT | |
81 | DSNOWAY | |
82 | DSBAREXP | |
83 | DSPUNCH | |
84 | DSHOOF | |
85 | DSMETAL | |
86 | DSCHGUN | alias of DSPISTOL |
87 | DSTINK | |
88 | DSBDOPN | |
89 | DSBDCLS | |
90 | DSITMBK | |
91 | DSFLAME | |
92 | DSFLAMST | |
93 | DSGETPOW | |
94 | DSBOSPIT | |
95 | DSBOSCUB | |
96 | DSBOSSIT | |
97 | DSBOSPN | |
98 | DSBOSDTH | |
99 | DSMANATK | |
100 | DSMANDTH | |
101 | DSSSSIT | |
102 | DSSSDTH | |
103 | DSKEENPN | |
104 | DSKEENDT | |
105 | DSSKEACT | |
106 | DSSKESIT | |
107 | DSSKEATK | |
108 | DSRADIO | |
109 | DSDGSIT | MBF helper dog sounds |
110 | DSDGATK | |
111 | DSDGACT | |
112 | DSDGDTH | |
113 | DSDGPAIN |
Linux version[edit]
DeHackEd (version 2.3) was ported to Linux in 1995 by Sam Lantinga as Linux Doom Hack Editor or ldhe. Compared to DOS, LDHE is slower and has no mouse support, but it does support running on X11 and the Linux console. X11 and SVGA Doom Linux binaries are supported. It also supports SGI Doom 1.8, allowing DeHackEd to be used and compiled on a SGI machine alongside a specifically compiled Deutex binary.
Heretic version[edit]
In 1995, Greg Lewis created a version of DeHackEd for Heretic called Heretic Hack Editor (HHE). It was based on DHE v2.2. However, he abandonded work on it after the release of HHE v1.1 (based on DHE v2.3). The copy of the executable that HHE applies its .HHE patches to is named HereHack.
Strife version[edit]
In 2004, Mike Fredericks (Gokuma) created a version of DeHackEd for Strife called SeHackEd. It is based on DHE v3.0a.
See also[edit]
- WhackEd - an enhanced DeHackEd/BEX editor for Windows
- DeHackEd64 - DeHackEd for the Doom64 EX Plus source port
- DEH 9000 - a "programmer's dehacked"
- DEH 64000 - a custom version of DEH 9000 targetting Doom 64
- DeMackEd - a Macintosh equivalent
- DOOMinator - another Macintosh equivalent
- Cleimos - This WAD includes contains a editing utility called CLEIMSET.EXE, providing functionality similar to DoomHack. CLEIMSET.EXE will make a copy of DOOM.EXE version 1.2 and then changes the automap level names and end-episode text strings. It then renames the new executable to CLEIMOS.EXE.
- DEHEXTRA - an extension to DeHackEd that adds a significant number of free things, sprites, sounds, and states
- DSDHacked - an extension to DeHackEd that removes the limits on the number of things, sprites, sounds, and states that can be used
- Hexen Hack Editor - a similar utility for Hexen
Trivia[edit]
- The executable hack Doom32 is understood by DeHackEd when the executable is renamed to DOOM2.EXE. It will warn the user that the checksum does not match, but it will otherwise accept Doom32 as a substitute and can be used to create Doom32-compatible DoomHack executables.
External links[edit]
- DeHackEd 3.0a at Doomworld/idgames
- DeHackEd 3.1 at Doomworld/idgames
- DeHackEd 3.0 source at Doomworld/idgames
- Older versions of DeHackEd at Doomworld/idgames
- Greg Lewis' DeHackEd Homepage (archived)
- Enjay's DeHackEd info & tutorials
- ZDoom codepointer extensions at the ZDoom wiki
- Eternity Engine Definitive Code Pointer Reference
- Linux Doom Hack Editor 0.8a binary, hosted by Ibiblio
- Linux Doom Hack Editor 0.8a source code, hosted by Ibiblio
References[edit]
- ↑ Gregory Alan Lewis (12 September 1994). https://groups.google.com/g/alt.games.doom/c/uvEvkfDzj6c/m/yk83DPgM-H8J. alt.games.doom. Retrieved 29 August 2023.
- ↑ Gregory Alan Lewis (2 November 1994). https://groups.google.com/g/alt.games.doom/c/vYjcZz4B9Dg/m/zV_CpT1ExncJ. alt.games.doom. Retrieved 29 August 2023.
- ↑ Gregory Alan Lewis (14 December 1994). https://groups.google.com/g/alt.games.doom/c/MmTvMvAeUHg/m/Ceb7miJRhzEJ. alt.games.doom. Retrieved 29 August 2023.
- ↑ Gregory Alan Lewis (26 February 1995). https://groups.google.com/g/alt.games.doom/c/RKcMxss8Oak/m/Rsm66bw5-BMJ. alt.games.doom. Retrieved 29 August 2023.
- ↑ Gregory Alan Lewis (29 August 1995). https://groups.google.com/g/alt.games.doom/c/WeEbpJwWdHU/m/hx4dnHhrrpwJ. alt.games.doom. Retrieved 29 August 2023.
Source code genealogy | ||
---|---|---|
Based on | Name | Base for |
None | DeHackEd | Heretic Hack Editor |
SeHackEd |