DeHackEd / BEX Reference: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
No edit summary
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
DeHackEd with BOOM Extensions (BEX) is a form of text script for modifying various aspects of the DOOM engine. Originally, DeHackEd patches were used by the DeHackEd program to modify the DOOM.EXE file itself. Now, modern source ports provide alternative methods of use.  
DeHackEd with BOOM Extensions (BEX) is a form of text script for modifying various aspects of the DOOM engine. Originally, DeHackEd patches were used by the DeHackEd program to modify the DOOM.EXE file itself. Now, modern source ports provide alternative methods of use.  


Eternity allows use of DeHackEd files via the -deh command-line parameter, via GFS files, and as a text lump called "DEHACKED" in wad files. Eternity can also specify up to two DeHackEd patches which are always added at start-up in its configuration file. Starting with Eternity Engine v3.31 public beta 5, DeHackEd/BEX files can also be included by EDF modules.  
Eternity allows use of DeHackEd files via the -deh or -bex command-line parameter, via GFS files, and as a text lump called "DEHACKED" in wad files. Eternity can also specify up to two DeHackEd patches which are always added at start-up in its configuration file. Starting with Eternity Engine v3.31 public beta 5, DeHackEd/BEX files can also be included by EDF modules.  


DeHackEd allows editing of things, frames, codepointers, ammo and weapon data, cheats, miscellaneous settings, and text strings. Through BEX and Eternity extensions, support has also been added for a cleaner form of text substitution, default level par times, a more powerful method of codepointer editing, helper thing type editing, and better support for substitution of sprite, sound, and music names.  
DeHackEd allows editing of things, frames, codepointers, ammo and weapon data, cheats, miscellaneous settings, and text strings. Through BEX and Eternity extensions, support has also been added for a cleaner form of text substitution, default level par times, a more powerful method of codepointer editing, helper thing type editing, and better support for substitution of sprite, sound, and music names.  


DeHackEd does NOT support the addition or deletion of any of these elements, however. It is limited to the number and order of entries as they exist in the source port. For information on how Eternity addresses this problem via the EDF system, see the EDF Documentation.
DeHackEd does NOT support the addition or deletion of any of these elements, however. It is limited to the number and order of entries as they exist in the source port. For information on how Eternity addresses this problem via the EDF system, see the [[EDF]] Documentation.
 
NOTE: DeHackEd lumps are always loaded after EDF has been fully loaded.
{{backto|Eternity Engine}}
{{backto|Eternity Engine}}
 
{{editref}}
=General Syntax=
==General Syntax==
White-space, empty lines, and unrecognized tokens are ignored outside of any block, and the DeHackEd parser is in general very forgiving.  
White-space, empty lines, and unrecognized tokens are ignored outside of any block, and the DeHackEd parser is in general very forgiving.  


Comments can be provided for your own benefit, or for that of other editors. Comments start with a pound sign (#) and extend to the end of the line. Example:  
Comments can be provided for your own benefit, or for that of other editors. Comments start with a pound sign (#) and extend to the end of the line. Example:  
  # This is a comment
# This is a comment
Note that comments are not allowed within some blocks, including several of the BEX extension blocks. It is best to keep all comments outside of blocks for this reason.  
Note that comments are not allowed within some blocks, including several of the BEX extension blocks. It is best to keep all comments outside of blocks for this reason.  


It is common for this header to appear in DeHackEd files which pre-date the DOOM source release:  
It is common for this header to appear in DeHackEd files which pre-date the DOOM source release:  
  Patch File for DeHackEd v3.0
Patch File for DeHackEd v3.0
 
  # Note: Use the pound sign ('#') to start comment lines.
# Note: Use the pound sign ('#') to start comment lines.
 
  Doom version = 21
Doom version = 21
  Patch format = 6
Patch format = 6


However, none of this information is needed or used by Eternity in any way, and it is discarded as unrecognized text. You do not need to include any header information in your own files. Note that the patch version information is important for old patches in that it will tell you whether or not Eternity can use the file. Patches of format other than 6 are not guaranteed to work, and Eternity does NOT support the older, obsolete binary patch format.
However, none of this information is needed or used by Eternity in any way, and it is discarded as unrecognized text. You do not need to include any header information in your own files. Note that the patch version information is important for old patches in that it will tell you whether or not Eternity can use the file. Patches of format other than 6 are not guaranteed to work, and Eternity does NOT support the older, obsolete binary patch format.


=BEX Extension: INCLUDE Directive=
==BEX Extension: INCLUDE Directive==
To include a DEH or BEX file in another one, put one or more of the following lines in your BEX file:  
To include a DEH or BEX file in another one, put one or more of the following lines in your BEX file:  
   INCLUDE filename
   INCLUDE filename
Line 35: Line 37:
You may not nest include files (one include file can't include another). In addition, DEHACKED lumps in wads cannot use INCLUDE directives in any form.
You may not nest include files (one include file can't include another). In addition, DEHACKED lumps in wads cannot use INCLUDE directives in any form.


=Thing Block=
==Thing Block==
{{See|DeHackEd / BEX Reference/Thing Block}}
{{See|DeHackEd / BEX Reference/Thing Block}}


=Frame Block=
==Frame Block==
{{see|DeHackEd / BEX Reference/Frame Block}}
{{see|DeHackEd / BEX Reference/Frame Block}}


=Sound Block=
==Sound Block==
{{see|DeHackEd / BEX Reference/Sound Block}}
{{see|DeHackEd / BEX Reference/Sound Block}}


=Ammo Block=
==Ammo Block==
{{see|DeHackEd / BEX Reference/Ammo Block}}
{{see|DeHackEd / BEX Reference/Ammo Block}}


=Weapon Block=
==Weapon Block==
{{see|DeHackEd / BEX Reference/Weapon Block}}
{{see|DeHackEd / BEX Reference/Weapon Block}}


=Cheat Block=
==Cheat Block==
{{see|DeHackEd / BEX Reference/Cheat Block}}
{{see|DeHackEd / BEX Reference/Cheat Block}}


=Misc Block=
==Misc Block==
{{See|DeHackEd / BEX Reference/Misc Block}}
{{See|DeHackEd / BEX Reference/Misc Block}}


=BEX Extension: [STRINGS] Block=
==BEX Extension: [STRINGS] Block==
{{see|DeHackEd / BEX Reference/BEX Extension: STRINGS Block}}
{{see|DeHackEd / BEX Reference/BEX Extension: STRINGS Block}}


=BEX Extension: [PARS] Block=
==BEX Extension: [PARS] Block==
{{see|DeHackEd / BEX Reference/BEX Extension: PARS Block}}
{{see|DeHackEd / BEX Reference/BEX Extension: PARS Block}}


=BEX Extension: [CODEPTR] Block=
==BEX Extension: [CODEPTR] Block==
{{see|DeHackEd / BEX Reference/BEX Extension: CODEPTR Block}}
{{see|DeHackEd / BEX Reference/BEX Extension: CODEPTR Block}}


=Eternity Extension: [HELPER] Block=
==Eternity Extension: [HELPER] Block==
{{See|DeHackEd / BEX Reference/Eternity Extension: HELPER Block}}
{{See|DeHackEd / BEX Reference/Eternity Extension: HELPER Block}}


=Eternity Extension: [SPRITES] Block=
==Eternity Extension: [SPRITES] Block==
{{see|DeHackEd / BEX Reference/Eternity Extension: SPRITES Block}}
{{see|DeHackEd / BEX Reference/Eternity Extension: SPRITES Block}}


=Eternity Extension: [SOUNDS] Block=
==Eternity Extension: [SOUNDS] Block==
{{see|DeHackEd / BEX Reference/Eternity Extension: SOUNDS Block}}
{{see|DeHackEd / BEX Reference/Eternity Extension: SOUNDS Block}}


=Eternity Extension: [MUSIC] Block=
==Eternity Extension: [MUSIC] Block==
{{See|DeHackEd / BEX Reference/Eternity Extension: MUSIC Block}}
{{See|DeHackEd / BEX Reference/Eternity Extension: MUSIC Block}}


=BEX String Mnemonics Table=
==BEX String Mnemonics Table==
Note:
{{see|DeHackEd / BEX Reference/BEX String Mnemonics Table}}


If the original initial value is longer than about 40 characters, the string will have been truncated and will have an ellipsis (...) after the closing double-quote. There should be enough in the part that is shown to recognize it. If a string has C language printf() characters in it, such as %s or %d, you should be sure that your replacement string either contains the same ones in the same order, or that you leave them out of your string. If that confuses you, you need to learn C or leave 'em alone <g>. Some trailing linefeeds have been removed for clarity, though \n in the middle of a string indicates an internal linefeed and your replacement can do likewise.
==Sound Table==
 
{{see|DeHackEd / BEX Reference/Sound Table}}
==Part 1 - GENERAL INITIALIZATION AND PROMPTS==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
D_DEVSTR          What shows during init if -devparm is used
                      "Development mode ON."
D_CDROM            Init: if switch -cdrom is used
                      "CD-ROM Version: default.cfg from c:\\doomdata"
QUITMSG            Default display when you pick Quit
                      "are you sure you want to\nquit this great game?"
LOADNET            Warning when you try to load during a network game
                      "you can't do load while in a net game!"
QLOADNET          Warning when you try quickload during a network game
                      "you can't quickload during a netgame!"
QSAVESPOT          Warning when you quickload without a quicksaved game
                      "you haven't picked a quicksave slot yet!"
SAVEDEAD          Warning when not playing or dead and you try to save
                      "you can't save if you aren't playing!"
QSPROMPT          Prompt when quicksaving your game
                      "quicksave over your game named\n\n'%s'?"
QLPROMPT          Prompt when quickloading a game
                      "do you want to quickload the game named\n\n'%s'?"
NEWGAME            Warning if you try to start a game during network play
                      "you can't start a new game\nwhile in a network"...
NIGHTMARE          Nightmare mode warning
                      "are you sure? this skill level\nisn't even rem"...
SWSTRING          Warning when you pick any episode but 1 in Shareware
                      "this is the shareware version of doom.\n\nyou '...
MSGOFF            Message when toggling messages off (F8)
                      "Messages OFF"
MSGON              Message when toggling messages back on (F8)
                      "Messages ON"
NETEND            Message when you try to Quit during a network game
                      "you can't end a netgame!"
ENDGAME            Warning when you try to end the game
                      "are you sure you want to end the game?"
DETAILHI          Message switching to high detail (obsolete in BOOM)
                      "High detail"
DETAILLO          Message switching to high detail (obsolete in BOOM)
                      "Low detail"
GAMMALVL0          Message when gamma correction is set off
                      "Gamma correction OFF"
GAMMALVL1          Message when gamma correction is set to 1
                      "Gamma correction level 1"
GAMMALVL2          Message when gamma correction is set to 2
                      "Gamma correction level 2"
GAMMALVL3          Message when gamma correction is set to 3
                      "Gamma correction level 3"
GAMMALVL4          Message when gamma correction is set to 4
                      "Gamma correction level 4"
EMPTYSTRING        Value that shows up in an unused savegame slot
                      "empty slot"
GGSAVED            Message after a savegame has been written to disk
                      "game saved."
SAVEGAMENAME      Saved game name, number is appended during save
                      "ETRNSAV"
------------------ -----------------------------------------------------
==Part 2 - MESSAGES WHEN THE PLAYER GETS THINGS==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
GOTARMOR          Picking up the Green armor (100%)
                      "Picked up the armor."
GOTMEGA            Picking up the Blue armor (200%)
                      "Picked up the MegaArmor!"
GOTHTHBONUS        Picking up a health bottle (1%)
                      "Picked up a health bonus."
GOTARMBONUS        Picking up an armor helmet (1%)
                      "Picked up an armor bonus."
GOTSTIM            Picking up a stimpack (10%)
                      "Picked up a stimpack."
GOTMEDINEED        Picking up a medikit (25%) when very low on health
                      "Picked up a medikit that you REALLY need!"
GOTMEDIKIT        Picking up a medikit (25%) under normal conditions
                      "Picked up a medikit."
GOTSUPER          Picking up the blue health orb (200%)
                      "Supercharge!"
GOTBLUECARD        Picking up the blue keycard
                      "Picked up a blue keycard."
GOTYELWCARD        Picking up the yellow keycard
                      "Picked up a yellow keycard."
GOTREDCARD        Picking up the red keycard
                      "Picked up a red keycard."
GOTBLUESKUL        Picking up the blue skull key
                      "Picked up a blue skull key."
GOTYELWSKUL        Picking up the yellow skull key
                      "Picked up a yellow skull key."
GOTREDSKULL        Picking up the red skull key
                      "Picked up a red skull key."
GOTINVUL          Picking up the invulnerability sphere
                      "Invulnerability!"
GOTBERSERK        Picking up the berserk box
                      "Berserk!"
GOTINVIS          Picking up the invisibility sphere
                      "Partial Invisibility"
GOTSUIT            Picking up the rad suit
                      "Radiation Shielding Suit"
GOTMAP            Picking up the computer map
                      "Computer Area Map"
GOTVISOR          Picking up the light-amp goggles
                      "Light Amplification Visor"
GOTMSPHERE        Picking up the mega orb (200%/200%)
                      "MegaSphere!"
GOTCLIP            Picking up an ammo clip
                      "Picked up a clip."
GOTCLIPBOX        Picking up a box of ammo
                      "Picked up a box of bullets."
GOTROCKET          Picking up a single rocket
                      "Picked up a rocket."
GOTROCKBOX        Picking up a box of rockets
                      "Picked up a box of rockets."
GOTCELL            Picking up an energy cell (20 units)
                      "Picked up an energy cell."
GOTCELLBOX        Picking up an energy pack (100 units)
                      "Picked up an energy cell pack."
GOTSHELLS          Picking up a set of 4 shells
                      "Picked up 4 shotgun shells."
GOTSHELLBOX        Picking up a box of 20 shells
                      "Picked up a box of shotgun shells."
GOTBACKPACK        Picking up a backpack
                      "Picked up a backpack full of ammo!"
GOTBFG9000        Picking up the BFG (weapon 7)
                      "You got the BFG9000!  Oh, yes."
GOTCHAINGUN        Picking up the chaingun (weapon 4)
                      "You got the chaingun!"
GOTCHAINSAW        Picking up the chainsaw (weapon 8)
                      "A chainsaw!  Find some meat!"
GOTLAUNCHER        Picking up the rocket launcher (weapon 5)
                      "You got the rocket launcher!"
GOTPLASMA          Picking up the plasma gun (weapon 6)
                      "You got the plasma gun!"
GOTSHOTGUN        Picking up the shotgun (weapon 3)
                      "You got the shotgun!"
GOTSHOTGUN2        Picking up the double-barreled shotgun (weapon 9)
                      "You got the super shotgun!"
                     
*New to Eternity: These are mnemonics for collectable items in Heretic.
HGOTBLUEKEY      Picking up Heretic blue key
                      "BLUE KEY"
HGOTYELLOWKEY    Picking up Heretic yellow key 
                      "YELLOW KEY"
HGOTGREENKEY      Picking up Heretic green key
                      "GREEN KEY"
HITEMHEALTH      Picking up Crystal Vile item
                      "CRYSTAL VIAL"
HITEMBAGOFHOLDING Picking up Bag of Holding item 
                      "BAG OF HOLDING"
HITEMSHIELD1      Picking up Silver Shield armor
                      "SILVER SHIELD"
HITEMSHIELD2      Picking up Enchanted Shield armor
                      "ENCHANTED SHIELD"
HITEMSUPERMAP    Picking up Map Scroll automap item
                      "MAP SCROLL"
------------------ -----------------------------------------------------     
==Part 3 - MESSAGES WHEN KEYS ARE NEEDED==
(*)= BOOM extensions
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
PD_BLUEO          When you don't have the blue key for a switch
                      "You need a blue key to activate this object"
PD_REDO            When you don't have the red key for a switch
                      "You need a red key to activate this object"
PD_YELLOWO        When you don't have the yellow key for a switch
                      "You need a yellow key to activate this object"
PD_BLUEK          Blue key needed to open a door
                      "You need a blue key to open this door"
PD_REDK            Red key needed to open a door
                      "You need a red key to open this door"
PD_YELLOWK        Yellow key needed to open a door
                      "You need a yellow key to open this door"
PD_BLUEC          Blue card key needed, not skull (*)
                      "You need a blue card to open this door"
PD_REDC            Red card key needed, not skull (*)
                      "You need a red card to open this door"
PD_YELLOWC        Yellow card key needed, not skull (*)
                      "You need a yellow card to open this door"
PD_BLUES          Blue skull key needed, not card (*)
                      "You need a blue skull to open this door"
PD_REDS            Red skull key needed, not card (*)
                      "You need a red skull to open this door"
PD_YELLOWS        Yellow skull key needed, not card (*)
                      "You need a yellow skull to open this door"
PD_ANY            You need a key but any of them will do (*)
                      "Any key will open this door"
PD_ALL3            You need red, blue and yellow keys (*)
                      "You need all three keys to open this door"
PD_ALL6            You need both skulls and cards in all 3 colors (*)
                      "You need all six keys to open this door"
                     
* New to Eternity: These are used by locked doors instead of some of the above when in Heretic
HPD_GREENO        Replaces PD_REDO in Heretic mode
                      "You need a green key to activate this object"
HPD_GREENK        Replaces PD_RED(K/C/S) in Heretic mode
                      "You need a green key to open this door"
------------------ -----------------------------------------------------
==Part 4 - MULTIPLAYER MESSAGING==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
HUSTR_MSGU        If you try to send a blank message?
                      "[Message unsent]"
HUSTR_MESSAGESENT  After you send a message?  Haven't seen it
                      "[Message Sent]"
* Chat macros 1-10
* Original values in quotes
HUSTR_CHATMACRO1    "I'm ready to kick butt!"
HUSTR_CHATMACRO2    "I'm OK."
HUSTR_CHATMACRO3    "I'm not looking too good!"
HUSTR_CHATMACRO4    "Help!"
HUSTR_CHATMACRO5    "You suck!"
HUSTR_CHATMACRO6    "Next time, scumbag..."
HUSTR_CHATMACRO7    "Come here!"
HUSTR_CHATMACRO8    "I'll take care of it."
HUSTR_CHATMACRO9    "Yes"
HUSTR_CHATMACRO0    "No"
* What shows up when you message yourself, depending
* on how many times you've done it during the game
HUSTR_TALKTOSELF1    "You mumble to yourself"
HUSTR_TALKTOSELF2    "Who's there?"
HUSTR_TALKTOSELF3    "You scare yourself"
HUSTR_TALKTOSELF4    "You start to rave"
HUSTR_TALKTOSELF5    "You've lost it..."
* Prefixes for the multiplayer messages when displayed
HUSTR_PLRGREEN      "Green: "
HUSTR_PLRINDIGO      "Indigo: "
HUSTR_PLRBROWN      "Brown: "
HUSTR_PLRRED        "Red: "
------------------ -----------------------------------------------------
==Part 5 - LEVEL NAMES IN THE AUTOMAP==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
* For DOOM - These names are made up of HUSTR_ and
* ExMx for the episode and map numbers.  Original
* names are shown in quotes.  Episode 4 entries are
* for Ultimate DOOM only. 
* Blank lines separate sky change groupings
HUSTR_E1M1          "E1M1: Hangar"
HUSTR_E1M2          "E1M2: Nuclear Plant"
HUSTR_E1M3          "E1M3: Toxin Refinery"
HUSTR_E1M4          "E1M4: Command Control"
HUSTR_E1M5          "E1M5: Phobos Lab"
HUSTR_E1M6          "E1M6: Central Processing"
HUSTR_E1M7          "E1M7: Computer Station"
HUSTR_E1M8          "E1M8: Phobos Anomaly"
HUSTR_E1M9          "E1M9: Military Base"
HUSTR_E2M1          "E2M1: Deimos Anomaly"
HUSTR_E2M2          "E2M2: Containment Area"
HUSTR_E2M3          "E2M3: Refinery"
HUSTR_E2M4          "E2M5: Command Center"
HUSTR_E2M6          "E2M6: Halls of the Damned"
HUSTR_E2M7          "E2M7: Spawning Vats"
HUSTR_E2M8          "E2M8: Tower of Babel"
HUSTR_E2M9          "E2M9: Fortress of Mystery"
HUSTR_E3M1          "E3M1: Hell Keep"
HUSTR_E3M2          "E3M2: Slough of Despair"
HUSTR_E3M3          "E3M3: Pandemonium"
HUSTR_E3M4          "E3M4: House of Pain"
HUSTR_E3M5          "E3M5: Unholy Cathedral"
HUSTR_E3M6          "E3M6: Mt. Erebus"
HUSTR_E3M7          "E3M7: Limbo"
HUSTR_E3M8          "E3M8: Dis"
HUSTR_E3M9          "E3M9: Warrens"
HUSTR_E4M1          "E4M1: Hell Beneath"
HUSTR_E4M2          "E4M2: Perfect Hatred"
HUSTR_E4M3          "E4M3: Sever The Wicked"
HUSTR_E4M4          "E4M4: Unruly Evil"
HUSTR_E4M5          "E4M5: They Will Repent"
HUSTR_E4M6          "E4M6: Against Thee Wickedly"
HUSTR_E4M7          "E4M7: And Hell Followed"
HUSTR_E4M8          "E4M8: Unto The Cruel"
HUSTR_E4M9          "E4M9: Fear"
* For DOOM2 - These names are made up of HUSTR_ and
* a number for the map number.  Original names are shown in quotes.
* Blank lines separate sky change groupings
HUSTR_1              "level 1: entryway"
HUSTR_2              "level 2: underhalls"
HUSTR_3              "level 3: the gantlet"
HUSTR_4              "level 4: the focus"
HUSTR_5              "level 5: the waste tunnels"
HUSTR_6              "level 6: the crusher"
HUSTR_7              "level 7: dead simple"
HUSTR_8              "level 8: tricks and traps"
HUSTR_9              "level 9: the pit"
HUSTR_10            "level 10: refueling base"
HUSTR_11            "level 11: 'o' of destruction!"
HUSTR_12            "level 12: the factory"
HUSTR_13            "level 13: downtown"
HUSTR_14            "level 14: the inmost dens"
HUSTR_15            "level 15: industrial zone"
HUSTR_16            "level 16: suburbs"
HUSTR_17            "level 17: tenements"
HUSTR_18            "level 18: the courtyard"
HUSTR_19            "level 19: the citadel"
HUSTR_20            "level 20: gotcha!"
HUSTR_21            "level 21: nirvana"
HUSTR_22            "level 22: the catacombs"
HUSTR_23            "level 23: barrels o' fun"
HUSTR_24            "level 24: the chasm"
HUSTR_25            "level 25: bloodfalls"
HUSTR_26            "level 26: the abandoned mines"
HUSTR_27            "level 27: monster condo"
HUSTR_28            "level 28: the spirit world"
HUSTR_29            "level 29: the living end"
HUSTR_30            "level 30: icon of sin"
HUSTR_31            "level 31: wolfenstein"
HUSTR_32            "level 32: grosse"
* For PLUTONIA - These names are made up of PHUSTR_ and
* a number for the map number.  Original names are shown in quotes.
* Blank lines separate sky change groupings
PHUSTR_1            "level 1: congo"
PHUSTR_2            "level 2: well of souls"
PHUSTR_3            "level 3: aztec"
PHUSTR_4            "level 4: caged"
PHUSTR_5            "level 5: ghost town"
PHUSTR_6            "level 6: baron's lair"
PHUSTR_7            "level 7: caughtyard"
PHUSTR_8            "level 8: realm"
PHUSTR_9            "level 9: abattoire"
PHUSTR_10            "level 10: onslaught"
PHUSTR_11            "level 11: hunted"
PHUSTR_12            "level 12: speed"
PHUSTR_13            "level 13: the crypt"
PHUSTR_14            "level 14: genesis"
PHUSTR_15            "level 15: the twilight"
PHUSTR_16            "level 16: the omen"
PHUSTR_17            "level 17: compound"
PHUSTR_18            "level 18: neurosphere"
PHUSTR_19            "level 19: nme"
PHUSTR_20            "level 20: the death domain"
PHUSTR_21            "level 21: slayer"
PHUSTR_22            "level 22: impossible mission"
PHUSTR_23            "level 23: tombstone"
PHUSTR_24            "level 24: the final frontier"
PHUSTR_25            "level 25: the temple of darkness"
PHUSTR_26            "level 26: bunker"
PHUSTR_27            "level 27: anti-christ"
PHUSTR_28            "level 28: the sewers"
PHUSTR_29            "level 29: odyssey of noises"
PHUSTR_30            "level 30: the gateway of hell"
PHUSTR_31            "level 31: cyberden"
PHUSTR_32            "level 32: go 2 it"
* For TNT:Evilution - These names are made up of THUSTR_ and
* a number for the map number.  Original names are shown in quotes.
* Blank lines separate sky change groupings
THUSTR_1            "level 1: system control"
THUSTR_2            "level 2: human bbq"
THUSTR_3            "level 3: power control"
THUSTR_4            "level 4: wormhole"
THUSTR_5            "level 5: hanger"
THUSTR_6            "level 6: open season"
THUSTR_7            "level 7: prison"
THUSTR_8            "level 8: metal"
THUSTR_9            "level 9: stronghold"
THUSTR_10            "level 10: redemption"
THUSTR_11            "level 11: storage facility"
THUSTR_12            "level 12: crater"
THUSTR_13            "level 13: nukage processing"
THUSTR_14            "level 14: steel works"
THUSTR_15            "level 15: dead zone"
THUSTR_16            "level 16: deepest reaches"
THUSTR_17            "level 17: processing area"
THUSTR_18            "level 18: mill"
THUSTR_19            "level 19: shipping/respawning"
THUSTR_20            "level 20: central processing"
THUSTR_21            "level 21: administration center"
THUSTR_22            "level 22: habitat"
THUSTR_23            "level 23: lunar mining project"
THUSTR_24            "level 24: quarry"
THUSTR_25            "level 25: baron's den"
THUSTR_26            "level 26: ballistyx"
THUSTR_27            "level 27: mount pain"
THUSTR_28            "level 28: heck"
THUSTR_29            "level 29: river styx"
THUSTR_30            "level 30: last call"
THUSTR_31            "level 31: pharaoh"
THUSTR_32            "level 32: caribbean"
* New to Eternity:
* For Heretic - These names are made up of HHUSTR_ and ExMx for the episode
* and map numbers.  Original names are shown in quotes.  Episode 4 and 5 entries
* are for the extended Shadow of the Serpent Riders version of Heretic. Note these
* are also used by the Heretic intermission code.
* Blank lines separate sky change groupings
HHUSTR_E1M1          "E1M1:  THE DOCKS"
HHUSTR_E1M2          "E1M2:  THE DUNGEONS"
HHUSTR_E1M3          "E1M3:  THE GATEHOUSE"
HHUSTR_E1M4          "E1M4:  THE GUARD TOWER"
HHUSTR_E1M5          "E1M5:  THE CITADEL"
HHUSTR_E1M6          "E1M6:  THE CATHEDRAL"
HHUSTR_E1M7          "E1M7:  THE CRYPTS"
HHUSTR_E1M8          "E1M8:  HELL'S MAW"
HHUSTR_E1M9          "E1M9:  THE GRAVEYARD"
HHUSTR_E2M1          "E2M1:  THE CRATER"
HHUSTR_E2M2          "E2M2:  THE LAVA PITS"
HHUSTR_E2M3          "E2M3:  THE RIVER OF FIRE"
HHUSTR_E2M4          "E2M4:  THE ICE GROTTO"
HHUSTR_E2M5          "E2M5:  THE CATACOMBS"
HHUSTR_E2M6          "E2M6:  THE LABYRINTH"
HHUSTR_E2M7          "E2M7:  THE GREAT HALL"
HHUSTR_E2M8          "E2M8:  THE PORTALS OF CHAOS"
HHUSTR_E2M9          "E2M9:  THE GLACIER"
HHUSTR_E3M1          "E3M1:  THE STOREHOUSE"
HHUSTR_E3M2          "E3M2:  THE CESSPOOL"
HHUSTR_E3M3          "E3M3:  THE CONFLUENCE"
HHUSTR_E3M4          "E3M4:  THE AZURE FORTRESS"
HHUSTR_E3M5          "E3M5:  THE OPHIDIAN LAIR"
HHUSTR_E3M6          "E3M6:  THE HALLS OF FEAR"
HHUSTR_E3M7          "E3M7:  THE CHASM"
HHUSTR_E3M8          "E3M8:  D'SPARIL'S KEEP"
HHUSTR_E3M9          "E3M9:  THE AQUIFER"
HHUSTR_E4M1          "E4M1:  CATAFALQUE"
HHUSTR_E4M2          "E4M2:  BLOCKHOUSE"
HHUSTR_E4M3          "E4M3:  AMBULATORY"
HHUSTR_E4M4          "E4M4:  SEPULCHER"
HHUSTR_E4M5          "E4M5:  GREAT STAIR"
HHUSTR_E4M6          "E4M6:  HALLS OF THE APOSTATE"
HHUSTR_E4M7          "E4M7:  RAMPARTS OF PERDITION"
HHUSTR_E4M8          "E4M8:  SHATTERED BRIDGE"
HHUSTR_E4M9          "E4M9:  MAUSOLEUM"
HHUSTR_E5M1          "E5M1:  OCHRE CLIFFS"
HHUSTR_E5M2          "E5M2:  RAPIDS"
HHUSTR_E5M3          "E5M3:  QUAY"
HHUSTR_E5M4          "E5M4:  COURTYARD"
HHUSTR_E5M5          "E5M5:  HYDRATYR"
HHUSTR_E5M6          "E5M6:  COLONNADE"
HHUSTR_E5M7          "E5M7:  FOETID MANSE"
HHUSTR_E5M8          "E5M8:  FIELD OF JUDGEMENT"
HHUSTR_E5M9          "E5M9:  SKEIN OF D'SPARIL"
------------------ -----------------------------------------------------
==Part 6 - MESSAGES AS A RESULT OF TOGGLING STATES==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
AMSTR_FOLLOWON    Automap follow mode toggled on (F)
                      "Follow Mode ON"
AMSTR_FOLLOWOFF    Automap follow mode toggled off (F)
                      "Follow Mode OFF"
AMSTR_GRIDON      Automap grid mode toggled on (G)
                      "Grid ON"
AMSTR_GRIDOFF      Automap grid mode toggled off (G)
                      "Grid OFF"
AMSTR_MARKEDSPOT  Automap spot marked (M)
                      "Marked Spot"
AMSTR_MARKSCLEARED Automap marks cleared (C)
                      "All Marks Cleared"
STSTR_MUS          Music changed with IDMUSnn
                      "Music Change"
STSTR_NOMUS        Error message [IDMUS] to bad number
                      "IMPOSSIBLE SELECTION"
STSTR_DQDON        God mode toggled on [IDDQD]
                      "Degreelessness Mode On"
STSTR_DQDOFF      God mode toggled off [IDDQD]
                      "Degreelessness Mode Off"
STSTR_KFAADDED    Ammo and keys added [IDKFA]
                      "Very Happy Ammo Added"
STSTR_FAADDED      Ammo no keys added [IDK or IDKA]
                      "Ammo (no keys) Added"
STSTR_NCON        Walk through walls toggled on [IDCLIP or IDSPISPOPD]
                      "No Clipping Mode ON"
STSTR_NCOFF        Walk through walls off [IDCLIP or IDSPISPOPD]
                      "No Clipping Mode OFF"
STSTR_BEHOLD      Prompt for IDBEHOLD cheat menu
                      "inVuln, Str, Inviso, Rad, Allmap, or Lite-amp"
STSTR_BEHOLDX      Prompt after toggling the special with IDBEHOLD
                      "Power-up Toggled"
STSTR_CHOPPERS    Message when the chainsaw is picked [IDCHOPPERS]
                      "... doesn't suck - GM"
STSTR_CLEV        Message while changing levels [IDCLEVxx]
                      "Changing Level..."
STSTR_COMPON      Message when turning on DOOM compatibility mode (*)
                      "Compatibility Mode On"
STSTR_COMPOFF      Message when turning off DOOM compatibility mode (*)
                      "Compatibility Mode Off"
------------------ -----------------------------------------------------
==Part 7 - EPISODE INTERMISSION TEXTS==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
* DOOM/Ultimate DOOM Intermissions
E1TEXT            Message after Episode 1 of DOOM
                      "Once you beat the big badasses and\nclean out "...
E2TEXT            Message after Episode 2 of DOOM
                      "You've done it! The hideous cyber-\ndemon lord"...
E3TEXT            Message after Episode 3 of DOOM
                      "The loathsome spiderdemon that\nmasterminded t"...
E4TEXT            Message after Episode 4 of Ultimate DOOM
                      "the spider mastermind must have sent forth\nit"...
* DOOM2 Intermissions
C1TEXT            Message after MAP06
                      "YOU HAVE ENTERED DEEPLY INTO THE INFESTED\nSTA"...
C2TEXT            Message after MAP11
                      "YOU HAVE WON! YOUR VICTORY HAS ENABLED\nHUMANK"...
C3TEXT            Message after MAP20
                      "YOU ARE AT THE CORRUPT HEART OF THE CITY,\nSUR"...
C4TEXT            Message after MAP30
                      "THE HORRENDOUS VISAGE OF THE BIGGEST\nDEMON YO"...
C5TEXT            Message when entering MAP31
                      "CONGRATULATIONS, YOU'VE FOUND THE SECRET\nLEVE"...
C6TEXT            Message when entering MAP32
                      "CONGRATULATIONS, YOU'VE FOUND THE\nSUPER SECRE"...
* PLUTONIA Intermissions
P1TEXT            Message after MAP06
                      "You gloat over the steaming carcass of the\nGu"...
P2TEXT            Message after MAP11
                      "Even the deadly Arch-Vile labyrinth could\nnot"...
P3TEXT            Message after MAP20
                      "You've bashed and battered your way into\nthe "...
P4TEXT            Message after MAP30
                      "The Gatekeeper's evil face is splattered\nall "...
P5TEXT            Message when entering MAP31
                      "You've found the second-hardest level we\ngot."...
P6TEXT            Message when entering MAP32
                      "Betcha wondered just what WAS the hardest\nlev"...
* TNT:Evilution Intermissions
T1TEXT            Message after MAP06
                      "You've fought your way out of the infested\nex"...
T2TEXT            Message after MAP11
                      "You hear the grinding of heavy machinery\nahea"...
T3TEXT            Message after MAP20
                      "The vista opening ahead looks real damn\nfamil"...
T4TEXT            Message after MAP30
                      "Suddenly, all is silent, from one horizon\nto "...
T5TEXT            Message when entering MAP31
                      "What now? Looks totally different. Kind\nof li"...
T6TEXT            Message when entering MAP32
                      "Time for a vacation. You've burst the\nbowels "...
* New to Eternity: Heretic Intermissions
H1TEXT            Message after Episode 1
                      "with the destruction of the iron\nliches and t"...
H2TEXT            Message after Episode 2
                      "the mighty maulotaurs have proved\nto be no ma"...
H3TEXT            Message after Episode 3
                      "the death of d'sparil has loosed\nthe magical "...
H4TEXT            Message after SOSR Episode 4
                      "you thought you would return to your\nown worl"...
H5TEXT            Message after SOSR Episode 5
                      "as the final maulotaur bellows his\ndeath-agon"...
------------------ -----------------------------------------------------
==Part 8 - CREATURE NAMES FOR THE FINALE==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
CC_ZOMBIE          Trooper
                      "ZOMBIEMAN"
CC_SHOTGUN        Sargeant
                      "SHOTGUN GUY"
CC_HEAVY          Chaingunner
                      "HEAVY WEAPON DUDE"
CC_IMP            Imp
                      "IMP"
CC_DEMON          Demon
                      "DEMON"
CC_LOST            Lost Soul
                      "LOST SOUL"
CC_CACO            Cacodemon
                      "CACODEMON"
CC_HELL            Hell Knight
                      "HELL KNIGHT"
CC_BARON          Baron of Hell
                      "BARON OF HELL"
CC_ARACH          Arachnotron (baby spider)
                      "ARACHNOTRON"
CC_PAIN            Pain Elemental
                      "PAIN ELEMENTAL"
CC_REVEN          Revenant
                      "REVENANT"
CC_MANCU          Mancubus
                      "MANCUBUS"
CC_ARCH            Arch Vile
                      "ARCH-VILE"
CC_SPIDER          Spider Mastermind
                      "THE SPIDER MASTERMIND"
CC_CYBER          Cyberdemon
                      "THE CYBERDEMON"
CC_HERO            Green player
                      "OUR HERO"
------------------ -----------------------------------------------------
==Part 9 - INTERMISSION TILED BACKGROUNDS==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
BGFLATE1          End of DOOM Episode 1
                      "FLOOR4_8"
BGFLATE2          End of DOOM Episode 2
                      "SFLR6_1"
BGFLATE3          End of DOOM Episode 3
                      "MFLR8_4"
BGFLATE4          End of DOOM Episode 4
                      "MFLR8_3"
BGFLAT06          DOOM2 after MAP06
                      "SLIME16"
BGFLAT11          DOOM2 after MAP11
                      "RROCK14"
BGFLAT20          DOOM2 after MAP20
                      "RROCK07"
BGFLAT30          DOOM2 after MAP30
                      "RROCK17"
BGFLAT15          DOOM2 going MAP15 to MAP31
                      "RROCK13"
BGFLAT31          DOOM2 going MAP31 to MAP32
                      "RROCK19"
BGCASTCALL        Panel behind cast call   
                      "BOSSBACK"
                     
* New to Eternity
BGFLATHE1          End of Heretic Episode 1
                      "FLOOR25"
BGFLATHE2          End of Heretic Episode 2
                      "FLATHUH1"
BGFLATHE3          End of Heretic Episode 3
                      "FLTWAWA1"
BGFLATHE4          End of Heretic:SOSR Episode 4
                      "FLOOR28"
BGFLATHE5          End of Heretic:SOSR Episode 5
                      "FLOOR08"
------------------ -----------------------------------------------------
==Part 10 - NEW: STARTUP BANNERS==
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
STARTUP1          Starting strings to be displayed during startup
                      ""
STARTUP2          Leave them blank to not display
                      ""
STARTUP3          You may include \n to split a line
                      ""
STARTUP4          Have a nice time
                      ""
STARTUP5          Burma Shave
                      ""
------------------ -----------------------------------------------------
==Part 11 - NEW: OBITUARIES==
These are the built-in obituary strings, which are new to Eternity. They are shown to the player when he/she dies in certain ways. Note that obituaries for enemy kills are defined via EDF, and cannot be edited by DeHackEd/BEX files. The player name is always inserted before the beginning of an obituary string, along with a space.
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
OB_SUICIDE        Displayed when player kills self via console command
                      "suicides"
OB_FALLING        Displayed when player dies by falling too far
                      "cratered"
OB_CRUSH          Displayed when player dies via crusher
                      "was squished"
OB_SLIME          Displayed when player dies via damaging floor
                      "melted"
OB_BARREL          Displayed when player killed by inanimate explosion
                      "was blown up"
OB_COOP            Displayed when player kills player in coop mode
                      "scored a frag for the other team"
OB_DEFAULT        Displayed on unknown or miscellaneous death
                      "died"
OB_ROCKET_SELF    Displayed when rocket kills self
                      "should have stood back"
OB_BFG11K_SELF    Displayed when BFG11k splash damage kills self
                      "used a BFG11k up close"
OB_FIST            Displayed when player dies by punch in DM
                      "was punched to death"
OB_CHAINSAW        Displayed when player dies by chainsaw in DM
                      "was mistaken for a tree"
OB_PISTOL          Displayed when player dies by pistol in DM
                      "took a slug to the head"
OB_SHOTGUN        Displayed when player dies by shotgun in DM
                      "couldn't duck the buckshot"
OB_SSHOTGUN        Displayed when player dies by SSG in DM
                      "was shown some double barrels"
OB_CHAINGUN        Displayed when player dies by chaingun in DM
                      "did the chaingun cha-cha"
OB_ROCKET          Displayed when player dies by rocket in DM
                      "was blown apart by a rocket"
OB_PLASMA          Displayed when player dies by plasma in DM
                      "admires the pretty blue stuff"
OB_BFG            Displayed when player dies by BFG shot in DM
                      "was utterly destroyed by the BFG"
OB_BFG_SPLASH      Displayed when player dies by BFG tracer in DM
                      "saw the green flash"
OB_BETABFG        Displayed when player dies by Beta BFG in DM
                      "got a blast from the past"
OB_BFGBURST        Displayed when player dies by Plasma Burst BFG in DM
                      "was caught in a plasma storm"
OB_GRENADE_SELF    Displayed when grenade kills self
                      "lost track of a grenade"
OB_GRENADE        Displayed when player dies by grenade in DM
                      "tripped on a grenade"
------------------ -----------------------------------------------------
==Part 12 - NEW: DEMO SEQUENCE/HELP/CREDITS==
These are the names of resources used by the demo/title sequence, help screens, and credit/about screens.
MNEMONIC          Purpose
                      Initial original value (just the first part if long)
------------------ -----------------------------------------------------
TITLEPIC          DOOM / DOOM II Titlepic resource
                      "TITLEPIC"
TITLE              Heretic Titlepic resource
                      "TITLE"
CREDIT            Static credits screen for original game authors
                      "CREDIT"
HELP2              Shareware advertisement help screen
                      "HELP2"
ORDER              Shareware advertisement help screen
                      "ORDER"
DEMO1              First demo played in title sequence
                      "DEMO1"
DEMO2              Second demo played in title sequence
                      "DEMO2"
DEMO3              Third demo played in title sequence
                      "DEMO3"
DEMO4              Fourth demo played in title sequence
                      "DEMO4"
------------------ -----------------------------------------------------
=Sound Table=
This is a current list of the default sounds defined by sounds.edf. The number by each sound is the number that is used in Thing blocks and elsewhere to call for this sound by number (also known as its sound DeHackEd number). Note: Heretic sounds have not been standardized yet and thus are not listed here. You should not attempt to use them until they have been documented.
  Number Name
  ------------------------
  0      None
  1      "pistol"
  2      "shotgn"
  3      "sgcock"
  4      "dshtgn"
  5      "dbopn"
  6      "dbcls"
  7      "dbload"
  8      "plasma"
  9      "bfg"
  10    "sawup"
  11    "sawidl"
  12    "sawful"
  13    "sawhit"
  14    "rlaunc"
  15    "rxplod"
  16    "firsht"
  17    "firxpl"
  18    "pstart"
  19    "pstop"
  20    "doropn"
  21    "dorcls"
  22    "stnmov"
  23    "swtchn"
  24    "swtchx"
  25    "plpain"
  26    "dmpain"
  27    "popain"
  28    "vipain"
  29    "mnpain"
  30    "pepain"
  31    "slop"
  32    "itemup"
  33    "wpnup"
  34    "oof"
  35    "telept"
  36    "posit1"
  37    "posit2"
  38    "posit3"
  39    "bgsit1"
  40    "bgsit2"
  41    "sgtsit"
  42    "cacsit"
  43    "brssit"
  44    "cybsit"
  45    "spisit"
  46    "bspsit"
  47    "kntsit"
  48    "vilsit"
  49    "mansit"
  50    "pesit"
  51    "sklatk"
  52    "sgtatk"
  53    "skepch"
  54    "vilatk"
  55    "claw"
  56    "skeswg"
  57    "pldeth"
  58    "pdiehi"
  59    "podth1"
  60    "podth2"
  61    "podth3"
  62    "bgdth1"
  63    "bgdth2"
  64    "sgtdth"
  65    "cacdth"
  66    "skldth"
  67    "brsdth"
  68    "cybdth"
  69    "spidth"
  70    "bspdth"
  71    "vildth"
  72    "kntdth"
  73    "pedth"
  74    "skedth"
  75    "posact"
  76    "bgact"
  77    "dmact"
  78    "bspact"
  79    "bspwlk"
  80    "vilact"
  81    "noway"
  82    "barexp"
  83    "punch"
  84    "hoof"
  85    "metal"
  86    "chgun"
  87    "tink"
  88    "bdopn"
  89    "bdcls"
  90    "itmbk"
  91    "flame"
  92    "flamst"
  93    "getpow"
  94    "bospit"
  95    "boscub"
  96    "bossit"
  97    "bospn"
  98    "bosdth"
  99    "manatk"
  100    "mandth"
  101    "sssit"
  102    "ssdth"
  103    "keenpn"
  104    "keendt"
  105    "skeact"
  106    "skesit"
  107    "skeatk"
  108    "radio"
  109    "dgsit"
  110    "dgatk"
  111    "dgact"
  112    "dgdth"
  113    "dgpain"
  ------------------------
[[category:dehacked]]
[[category:dehacked]]

Revision as of 10:29, 25 April 2020

DeHackEd with BOOM Extensions (BEX) is a form of text script for modifying various aspects of the DOOM engine. Originally, DeHackEd patches were used by the DeHackEd program to modify the DOOM.EXE file itself. Now, modern source ports provide alternative methods of use.

Eternity allows use of DeHackEd files via the -deh or -bex command-line parameter, via GFS files, and as a text lump called "DEHACKED" in wad files. Eternity can also specify up to two DeHackEd patches which are always added at start-up in its configuration file. Starting with Eternity Engine v3.31 public beta 5, DeHackEd/BEX files can also be included by EDF modules.

DeHackEd allows editing of things, frames, codepointers, ammo and weapon data, cheats, miscellaneous settings, and text strings. Through BEX and Eternity extensions, support has also been added for a cleaner form of text substitution, default level par times, a more powerful method of codepointer editing, helper thing type editing, and better support for substitution of sprite, sound, and music names.

DeHackEd does NOT support the addition or deletion of any of these elements, however. It is limited to the number and order of entries as they exist in the source port. For information on how Eternity addresses this problem via the EDF system, see the EDF Documentation.

NOTE: DeHackEd lumps are always loaded after EDF has been fully loaded.

Back to Eternity Engine
  • This section incorporates text from the HTML Eternity documentation.

General Syntax

White-space, empty lines, and unrecognized tokens are ignored outside of any block, and the DeHackEd parser is in general very forgiving.

Comments can be provided for your own benefit, or for that of other editors. Comments start with a pound sign (#) and extend to the end of the line. Example:

# This is a comment

Note that comments are not allowed within some blocks, including several of the BEX extension blocks. It is best to keep all comments outside of blocks for this reason.

It is common for this header to appear in DeHackEd files which pre-date the DOOM source release:

Patch File for DeHackEd v3.0

# Note: Use the pound sign ('#') to start comment lines.

Doom version = 21
Patch format = 6

However, none of this information is needed or used by Eternity in any way, and it is discarded as unrecognized text. You do not need to include any header information in your own files. Note that the patch version information is important for old patches in that it will tell you whether or not Eternity can use the file. Patches of format other than 6 are not guaranteed to work, and Eternity does NOT support the older, obsolete binary patch format.

BEX Extension: INCLUDE Directive

To include a DEH or BEX file in another one, put one or more of the following lines in your BEX file:

  INCLUDE filename
  INCLUDE NOTEXT filename

Filename must be specified in full, including a path if it's not going to be in the current directory, and including its .deh or .bex extension. It is better by far to ship a file completely self-contained, but you can use this during testing and development, or to adjust existing patches for your own use.

The NOTEXT directive will cause Eternity to skip any DeHackEd-style text blocks in the included file, with the assumption that you're doing something else in your main BEX file instead.

You may not nest include files (one include file can't include another). In addition, DEHACKED lumps in wads cannot use INCLUDE directives in any form.

Thing Block

See DeHackEd / BEX Reference/Thing Block

Frame Block

See DeHackEd / BEX Reference/Frame Block

Sound Block

See DeHackEd / BEX Reference/Sound Block

Ammo Block

See DeHackEd / BEX Reference/Ammo Block

Weapon Block

See DeHackEd / BEX Reference/Weapon Block

Cheat Block

See DeHackEd / BEX Reference/Cheat Block

Misc Block

See DeHackEd / BEX Reference/Misc Block

BEX Extension: [STRINGS] Block

See DeHackEd / BEX Reference/BEX Extension: STRINGS Block

BEX Extension: [PARS] Block

See DeHackEd / BEX Reference/BEX Extension: PARS Block

BEX Extension: [CODEPTR] Block

See DeHackEd / BEX Reference/BEX Extension: CODEPTR Block

Eternity Extension: [HELPER] Block

See DeHackEd / BEX Reference/Eternity Extension: HELPER Block

Eternity Extension: [SPRITES] Block

See DeHackEd / BEX Reference/Eternity Extension: SPRITES Block

Eternity Extension: [SOUNDS] Block

See DeHackEd / BEX Reference/Eternity Extension: SOUNDS Block

Eternity Extension: [MUSIC] Block

See DeHackEd / BEX Reference/Eternity Extension: MUSIC Block

BEX String Mnemonics Table

See DeHackEd / BEX Reference/BEX String Mnemonics Table

Sound Table

See DeHackEd / BEX Reference/Sound Table