January 12th, 2004 What's new: 1/11/04 This document isn't needed so much anymore since SeHackEd now works. It's available at doomworld.com/sehacked I'll leave this doc around though as it still comes in handy. Because of a limit I ran into with a memset command. SeHackEd can't edit the last 15 unknown dummy things. But with this doc and a hex editor you still can. Some fixes: I found a duplicate Aztec Pillar to actually be guts and bones that was mistakenly given the same map id#. Found that some more bits were changed and documented them. I think I may have determined the offset for sound data more accurately (while getting SeHackEd to work right). 11/16/03 Added specific sound names and all the sprites names although not everything is confirmed. Under things "some little spark/flame puff" is a missile trail. Added cheat code offsets thanks to Randi Heit. 11/12 Had some Sigil things mixed up. For Sigil E the blast projectile was mixed up with the rail lightning shot from it. Sigil Hit was actually a lightning trail. Added a note below frame's sprite subnumber about brightness. Added a ton of sprite numbers and the names they correspond to. Added some offsets for specific frames 10/25 Added more accurate info concerning gettable things. 10/19 Added info on how gettable things work. 10/18 Added notes next to toughness and accuracy stat tokens about use. Added Crash Frame description that they're mortally wounded frames, used by peasants and kneeling guy Disclaimer: You use any of this information or instructions at your own risk. By doing so you agree that no one will be held responsible for anything that may result from said use. Some information may be blatantly wrong or inaccurate. ----------------------------------------------------------------------------- SeHack.txt by Gokuma site: gokuma.neocities.org Thanks very much to: Janis Legzdinsh (http://www.vavoom-engine.com) for giving me his strfhack.cc source code (http://pit.condemned.com/hkstrife.zip) which should yield a lot of great info and already corrected the following things: Offsets for sounds, sprites, weapons, and text strings. I had alert sound and pain sound for things mixed up. Determined an unknown frame to be crash frame. Determined there to be a pointer for thing class name strings. Also thanks to Janis for hosting the complete Strife Hint pages, http://www.vavoom-engine.com/strife/ Randi Heit (http://zdoom.org) for the offsets to cheat codes Greg Lewis for DeHackEd and figuring how components of the Doom engine work, Whoever at Rogue Entertainment gave Jack Vermeulen the Official Strife Specs, Bob Lauver who contributed some Strife things to Deepsea, The primary creator of Deepsea, Jack Vermeulen, cheez me from the Strife message board at gamefaqs.com for the url to archived copies of Velocity's Strife Hint pages, http://web.archive.org/web/20000831053925/http://www.sfo.com/~jhass/hints/ Rogue and Velocity for Strife id for the Doom engine ----------------------------------------------------------------------------- ** IMPORTANT ** Patch up Strife all the way to v1.31 This information applies to that version's strife1.exe file. Then back up your strife1.exe to safe place before you hack it up. ----------------------------------------------------------------------------- I recommend the hex editor, Hexposure, which you can find at http://www.zophar.net/utilities/nesutil.html For distributing patches of your changes I recommend using SNES-Tool instead of just distributing the whole Strife1.exe file. You can search google for SNES-Tool. Simply run it and use its Create IPS and Use IPS options. It'll straight forward ask you to select changed file, unchanged file, IPS patch to use, etc. You can get various IPS patch utilies at http://www.zophar.net/utilities/genutil.html but I have only tried SNES-Tool Keep in mind these tools were designed for hacking console game roms, not PC game executables! ----------------------------------------------------------------------------- Crash course in converting normal 10 base decimal numbers to hexidecimal and back. In a hexidecimal: A=10 B=11 C=12 D=13 E=14 F=15 Converting a hexidecimal to normal 10 base: Starting with the digit all the way on the right and going left: Normal number = right most digit +next digit*16 +next digit*16*16 +next digit*16*16*16 +next digit*16*16*16*16 and so on So... ADF90 = 10*16^4 + 13*16^3 + 15*16^2 + 9*16 + 0 = 712592 Converting normal number to hexidecimal: 1) Estimate what power of 16 you'll be going up to. 2) Divide number by 16 to that power. 3) If answer is less than 1, discard that and try the next lowest power of 16. 4) If answer is more than 15 discard that and try the next highest power of 16. 5) If answer is anywhere from 1 to 15, then by chopping off the decimal point and fraction you have your left most hex digit. 6) Subtract that digit*16 to whatever power from original hex number. 7) Divide the resulting number by 16 to the next lowest power. 8) Chop off decimal point and fraction and you have your next hex digit going right. 9) Report steps 7 through 8, until you have your complete hex number. Remember to change 11 through 15 to A through F and that 16 to the zero power is just 1, so have you find the hex digit for the multiple of just 16 (to the single power) and subtract that, you already have your final right most hex digit as the result. 682232 / 16^4 = 10... Left most hex digit is A 682232 - 10*16^4 = 26872 26782 / 16^3 = 6... Next digit is 6 26782 - 6*16^3 = 2296 2296 / 16^2 = 8... Next digit is 8 2296 - 8*16^2 = 248 248 / 16 = 15... Next digit is F 248 - 15*16 = 8 Last digit is 8 So 682232 = A68F8 in hex Hex numbers are set up different for various settings such as frames, hit points, etc. The normal number = FirstTwoHexNumbersInFirstSpace + SecondSpace*256 So when see D704, the normal decimal number is 13*16 + 7 + 4*256 = 1239 ----------------------------------------------------------------------------- Here's information copied and pasted direct from dehacked.ini with additional info added.... # The size of the user-defined exe file. # Ultimate Doom.exe Strife1.exe #size = 715493 753215 # These are the offsets for the various data sections... # Ultimate Doom Strife Doom spacing Strife spacing # dec hex hex #thingoff = 677472 A5660 ADF90 Down 6 #soundoff = 645924 9DB24 A5814 Down 2 Right 4 Down 1 Right 8 #frameoff = 650396 9EC9C A68F8 Down 2 Left 4 Down 1 Right 4 #spriteoff = 649844 9EA70 A64DC #ammooff = 638872 9BF98 A4024 #weaponoff = 638904 9BFB8 588F4 Down 2 Left 4 #textoff = 691064 A8B78 8CE54 (577108), ends at 92DF0 (601584) #cheatoff = 642244 9CCC4 A5308 #textlength = 24072 5E08 5F9C # offsets for Strife in normal 10 base decimal... thingoff = 712592 soundoff = 677908 frameoff = 682232 spriteoff = 681180 ammooff = 671780 weaponoff = 362740 textoff = 577108 cheatoff = 676616 textlength = 24476 # 24476 is (601584-577108) # The automap cheat TOPO is separate from the others and at the # offset A3CCC (670924 decimal) like IDDT was in Doom. # Still looking for miscellaneous and code pointer offsets. These are not really instructions for using Dehacked with Strife, I have modifed DeHackEd to make a version called SeHackEd to edit Strife. This doc is editing Strife with hex editor or just finding out information about its exe. There are a few ideas you can carry out with SeHackEd though. ----------------------------------------------------------------------------- Now here's a whole ton of Strife info... -Thing offset 000ADF90 (712592 in normal 10 base decimal) six lines per a thing first line 0-3 Map ID# 4-5 Initial Frame 8-9 Hit Points C-D Moving Frame second line 0 Alert Sound 4 Reaction Time 8 Pain Sound C-D Injury Frame third line 0 Pain Chance 4 Attack Sound 8-9 Close Attack Frame C-D Far Attack Frame fourth line 0 Crash Frame - mortally wounded frames, used by peasants and kneeling guy 4-5 Death Frame 8-9 Exploding Frame C Death Sound fifth line 0 Speed 6 Width A Height C-D Mass sixth line 0 Missile Damage 4 Action Sound 8-B Bits C-D Name String Pointer (Changing this here doesn't work) Tapping the arrow keys Down 6 will get you to the same spot for the next thing. In Doom I think data for each thing was in this order: Map ID# Initial Frame Hit Points First Moving Frame Alert Sound Reaction Time Attack Sound Injury Frame Pain Chance Pain Sound Close Attack Frame Far Attack Frame Death Frame Exploding Frame Death Sound Speed Width Height Mass Missile Damage Action Sound Bits Respawn Frame (things don't have this in Strife) Offsets for specific things: 000ADF90 Force Field Guard HP=10 000ADFF0 Player HP=100 000AE 050 Weapon Smith Shop Keeper 4 Tan HP=10000000 0B0 Bar Keep Shop Keeper 1 Gold 110 Armorer Shop Keeper 2 Bright Green 170 Medic Shop Keeper 3 Blue 1D0 Peasant Tan 1 HP=31 230 Peasant Tan 2 290 Peasant Tan 3 2F0 Peasant Red 1 350 Peasant Red 2 3B0 Peasant Red 3 410 Peasant Gray 1 470 Peasant Gray 2 4D0 Peasant Gray 3 530 Peasant Rust 1 590 Peasant Rust 2 5F0 Peasant Rust 3 650 Peasant Dark Green 1 6B0 Peasant Dark Green 2 710 Peasant Dark Green 3 770 Peasant Bright Green 1 7D0 Peasant Bright Green 2 830 Peasant Bright Green 3 890 Peasant Gold 1 8F0 Peasant Gold 2 950 Peasant Gold 3 9B0 Peasant Blue A10 Zombie HP=31 A70 Becoming Acolyte HP=61 AD0 Zombie Spawner HP=20 B30 Huge Tank 1 B90 Huge Tank 2 BF0 Huge Tank 3 C50 Tank 4 CB0 Tank 5 D10 Tank 6 D70 Kneeling Guy HP=51 DD0 Beggar 1 HP=20 E30 Beggar 2 E90 Beggar 3 EF0 Beggar 4 F50 Beggar 5 FB0 Rebel 1 HP=60 000AF 010 Rebel 2 HP=60 070 Rebel 3 0D0 Rebel 4 130 Rebel 5 190 Rebel 6 1F0 Macil 1 Invincible HP=95 250 Macil 2 Spectral HP=95 2B0 Missile trail IF=3002 310 Reaver HP=150 370 Acolyte 1 Tan HP=70 3D0 Acolyte 2 Red 430 Acolyte 3 Rust 490 Acolyte 4 Gray 4F0 Acolyte 5 Dark Green 550 Acolyte 6 Gold 5B0 Acolyte 7 Bright Green 610 Acolyte 8 Blue 670 Shadow Acolyte 6D0 Templar HP=300 730 Crusader HP=400 790 Bishop HP=500 7F0 Oracle HP=1 850 Priest/Loremaster HP=800 8B0 Specter A HP=1000 910 Dying Specter Node IF=4203 970 Dying Specter Chunk IF=4903 9D0 Specter B HP=1200 A30 Specter C HP=1500 A90 Specter D HP=1700 AF0 Specter E HP=2000 B50 Entity HP=2500 BB0 Sub Entity HP=990 C10 Entity Nest C70 Entity Pod CD0 Player Sigil B shot (Rail Lightning) MD=70 IF=C503 DF=99 D30 Specter Sigil B Shot MD=20 IF=C503 DF=99 D90 Player Sigil C shot (Spread) MD=70 IF=C803 DF=99 DF0 Specter Sigil C Shot MD=20 IF=C804 DF=99 E50 Sigil E rail lightning shot from blast MD=10 IF=C503 DF=99 EB0 Sigil rail lightning trail IF=CD03 F10 Player Sigil E shot (big blast) MD=130 IF=D003 DF=9B F70 Specter Sigil E shot (big blast) MD=30 IF=D003 DF=9B FD0 Sigil A shot left strike MD=100 IF=D503 DF=9F 000B0 030 Sigil A shot right strike MD=50 IF=D503 DF=9F 090 Sigil A ground target IF=DA03 DF=9A 0F0 Player Sigil D Shot (Column) MD=120 IF=DE03 DF=9A 150 Specter Sigil D Shot MD=60 IF=DE03 DF=9A 1B0 Sentinel HP=100 210 Stalker HP=80 270 Inquisitor HP=1000 2D0 Dying Inquisitor Arm IF=4204 330 Programmer HP=1100 Missile Damage=4 390 Dying Programmer Base IF=6704 3F0 Grappling Hook MD=2 IF=EB (235) DF=EC (236) 450 Grappling Chain IF=ED 4B0 Player Missile MD=10 IF=EE (238) DF=0101 (257) 510 Crusader Missile MD=7 IF=EE (238) DF=0001 (256) 570 Bishop Missile MD=10 IF=EF (239) DF=0101 (257) 5D0 Electric Bolt MD=10 IF=F1 (241) DF=9A (154) at A7500 630 Poison Arrow MD=500 IF=F2 (242) DF=F3 (243) 690 Sentinel Right Laser (their right) IF=B3 DF=8C 6F0 Sentinel Left Laser (not your left) MD=1 IF=B3 DF=88 750 H-E Grenade MD=1 IF=B9 DF=C6 7B0 Phosphorus Grenade MD=1 IF=B7 DF=DC 810 Inquisitor Grenade IF=BB DF=BD 870 Phosphorus Flame IF=DD DF=E6 8D0 Mauler Torpedo MD=1 IF=F4 DF=F8 930 Mauler Torpedo Spread MD=10 IF=FD (253) DF=FF (255) 990 Player Flame MD=4 IF=6F04 (1135) DF=7204 (1138) 9F0 Crusader Flame MD=1 IF=6F04 DF=7204 A50 Mauler Blast Spark/Puff IF=B5 AB0 Bullet Puff IF=AF B10 Sparks (from Robots instead of Blood) IF=91 B70 Blood from Death (SPRY*) IF=A5 BD0 Teleport Fog IF=0801 C30 Item Respawn Fog IF=1201 C90 Teleport Destination CF0 Claxon Warning Light D50 Ceiling Turret HP=125 DB0 Gates (Piston) HP=100 E10 Computer HP=80 E70 Med Patch ED0 Medikit F30 Surgery Kit F90 Degnin Ore HP=10 FF0 Metal Armor 000B1 050 Leather Armor 0B0 Water Bottle IF=4405 110 Mug 170 Base Key (Front) 1D0 Govs Key IF=6305 230 Travel Passcard 290 Blue ID Badge 2F0 Prison Key IF=5405 350 Severed Hand 3B0 Power 1 Key IF=5505 410 Power 2 Key IF=5605 470 Power 3 Key IF=5705 4D0 Gold Key 530 Gold ID Card 590 Silver Key 5F0 Oracle Key 650 Military ID IF=5905 6B0 Order Key 710 Warehouse Key 770 Brass Key 7D0 Red Crystal Key 830 Blue Crystal Key 890 Chapel Key 8F0 Catacomb Key IF=5F05 950 Security Key IF=6105 9B0 Core Key A10 Mauler Key A70 Factory Key AD0 Mine Key B30 New Keys IF=6005 B90 Shadow Armor BF0 Environmental Suit C50 Guard Uniform CB0 Officer Uniform D10 Map D70 Scanner DD0 Teleport Beacon E30 Targeter E90 Gold Coin EF0 10 Gold F50 25 Gold FB0 50 Gold IF=6C05 000B2 010 300 Gold IF=D904 (TOKNA0) 070 Ring IF=A404 0D0 Offering Chalice 130 Ear IF=A504 190 Communicator 1F0 HE Grenades 250 Phosphorus Grenades 2B0 Bullet Clip 310 Box of Bullets IF=7905 370 Missiles 3D0 Crate of Missiles 430 Energy Pod 490 Energy Pack 4F0 Poison Arrows 550 Electric Bolts 5B0 Ammo Satchel 610 Assault Gun 670 Assault Gun Standing 6D0 Flame Thrower 730 Flame Thrower Parts IF=8905 790 Mini-Missile Launcher 7F0 Mauler 850 Crossbow 8B0 Grenade Launcher 910 Sigil A 970 Sigil B 9D0 Sigil C A30 Sigil D A90 Sigil E AF0 (Power) Crystal HP=50 B50 Rat Buddy HP=5 BB0 Wooden Barrel HP=10 C10 Explosive Barrel HP=30 C70 Target HP=99999999 CD0 Silver Flourescent D30 Brass Flourescent D90 Gold Flourescent DF0 Globe Light E50 Techno Pillar EB0 Aztec Pillar (Guts and Bones was mistakenly given the same map id#) F10 Damaged Aztec Pillar F70 Ruined Aztec Pillar FD0 Huge Tech Pillar 000B3 030 Huge Alien Pillar 090 Stalactite 0F0 Small Stalactite 150 Stalacmite 1B0 Cave Pillar Top 210 Cave Pillar Bottom 270 Stalacmite Small 2D0 Candle 330 Candelabra 390 Floor Water Drip 3F0 Waterfall Splash 450 Ceiling Water Drip 4B0 Fountain 510 Hearts in Tank 570 Teleport Swirl 5D0 Dead Crusader 630 Dead Player, disappears (frames are set that way) 690 Dead Peasant, disappears (frames are set that way) 6F0 Dead Acolyte, disappears (frames are set that way) 750 Dead Reaver 7B0 Dead Rebel 810 Sacrificed Guy 870 Guts and Bones (mistakenly given same map id# as Aztec Pillar) 8D0 Burning Barrel 930 Burning Bowl 990 Burning Brazier 9F0 Small Burning Torch A50 Small Unlit Torch AB0 Ceiling Chain B10 Cage Light B70 Statue BD0 Ruined Statue C30 Medium Torch C90 Outside Lamp CF0 Pole Lantern D50 Rock 1 DB0 Rock 2 E10 Rock 3 E70 Rock 4 ED0 Stick in Water F30 Rubble 1 F90 Rubble 2 FF0 Rubble 3 000B4 050 Rubble 4 0B0 Rubble 5 110 Rubble 6 170 Rubble 7 1D0 Rubble 8 230 Surgery Crab 290 Large Torch 2F0 Huge Torch 350 Palm Tree 3B0 Big Tree 410 Potted Tree 470 Tree Stub 4D0 Short Bush 530 Tall Bush 590 Chimneystack 5F0 Barricade Column 650 Pot 6B0 Pitcher 710 Stool 770 Metal Pot 7D0 Tub 830 Anvil 890 Silver Tech Lamp 8F0 Brass Tech Lamp 950 Tray 9B0 Ammo Filler A10 Sigil Banner A70 Rebel Boots AD0 Rebel Helmet B30 Rebel Shirt B90 Exploding Power Coupling HP=40 BF0 Broken Power Coupling C50 Alien Bubble Column CB0 Alien Floor Bubble D10 Alien Ceiling Bubble D70 Alien Asp Climber DD0 Alien Spider Light E30 Giblets (MEAT*) IF=DF04 E90 Shrapnel (JUNK*), disappears IF=F304 EF0 Little flame (FFOT*) IF=0705 F50 Ammo (Up to 50 bullets) IF=D904 (TOKNA0) FB0 Health (Fills up to half your max life) IF=D904 (TOKNA0) 000B5 010 Info IF=D904 (TOKNA0) 070 Alarm IF=D904 (TOKNA0) 0D0 ? IF=D904 130 ? IF=D904 190 Prison Pass IF=D904 1F0 ? IF=D904 250 ? IF=D904 2B0 ? IF=D904 310 Report IF=D904 (TOKNA0) 370 Toughness (each buys 10 stamina from Gerard) IF=DB04 3D0 Accuracy (each buys 10 accuracy from Feris) IF=DC04 430 Oracle Pass IF=DA04 490 ? IF=D904 4F0 ? IF=D904 550 ? IF=D904 5B0 Quest4 IF=D904 610 Quest5 IF=D904 670 Quest6 IF=D904 6D0 ? IF=D904 730 ? IF=D904 790 ? IF=D904 7F0 ? IF=D904 850 ? IF=D904 8B0 ? IF=D904 910 ? IF=D904 970 You've blown up the crystal IF=D904 9D0 ? IF=D904 A30 You've blown up the gates IF=D904 A90 ? IF=D904 AF0 ? IF=D904 B50 ? BB0 ? C10 ? C70 ? CD0 ? D30 ? D90 ? DF0 ? E50 ? EB0 ? F10 ? F70 ? FD0 ? 000B6030 ? --End of Things (344 total)-- Gettable Things that can't normally be placed in maps: Simply give them the map ID#'s and place them in maps. You can give them the ID#'s of things you don't care about and set the map ID#'s of the discarded things to FFFFFFFF. Or you can give them ID#'s that were previously unused. 000B1 1D0 Govs Key IF=6305 2F0 Prison Key IF=5405 3B0 Power 1 Key IF=5505 410 Power 2 Key IF=5605 470 Power 3 Key IF=5705 650 Military ID IF=5905 8F0 Catacomb Key IF=5F05 950 Security Key IF=6105 B30 New Keys IF=6005 000B2 010 300 Gold IF=D904 (TOKNA0) 070 Ring IF=A404 130 Ear IF=A504 730 Flame Thrower Parts IF=8905 000B4 F50 Ammo (Up to 50 bullets) IF=D904 (TOKNA0) FB0 Health (Fills up to half your max life) IF=D904 (TOKNA0) 000B5 010 Info IF=D904 (TOKNA0) 070 Alarm IF=D904 (TOKNA0) 190 Prison Pass IF=D904 (TOKNA0) 310 Report IF=D904 (TOKNA0) 370 Toughness (each buys 10 stamina from Gerard) IF=DB04 3D0 Accuracy (each buys 10 accuracy from Feris) IF=DC04 430 Oracle Pass IF=DA04 Unused map ID#'s you could use in Strife: Value for placing thing in map = hex value to put in exe numbers previously used in Doom but not Strife: 49 = 31 84 = 54 87 = 57 88 = 58 89 = 59 2008 = D807 2013 = DD07 2015 = DF07 2022 = E607 2023 = E707 2035 = F307 2045 = FD07 2049 = 0108 numbers never used but so far what've I tried works fine: 171 237 - 2000 2009 2016 2017 2020 2021 2029 - 2034 2036 - 2044 Gettable things aren't so much determined by sprites anymore. There's two things that determine what an item goes, where it goes (weapons/ammo, inventory, or keys), and the text it displays when you pick it up and or query it in your inventory with Q. 1. The class name pointer for each gettable thing always determines the text displayed and sometimes what it actually gives you and where it goes. Unfortunately this can't be changed under a thing so it pretty much makes the thing itself, for example, thing 310 toughness (stat token) at hex address B5370 in strife1.exe, determine what you get. You can change the text else where but it won't change what the item gives you. 2. The sprite name almost always determines what it gives you and where it goes. Things that use the generic TOKNA0 sprite will be determined by their name pointer what they give you and where they go. Changing the sprite will override what the name pointer tells it to give you, unless you change the sprite by changing the sprite name text rather than the frame of animation being used or that frame's sprite numbers. One thing very cool is that any thing with a class name pointer can be made gettable. Although it would just be silly, you can make portable shop keepers you can pick up and drop out of your inventory. They'd only sell you items in levels that have scripting for it though and hopefully their script would still be intact after picking them up and dropping them back out. For fun I made rats into really nasty shootable bombs that you can pick back up and use again. What's funny is rats actually have a picture for going into your inventory instead of using the generic ? for unknown things. Things that there's apparently no thing for: Player starts Teleport New Map Spots Blood (from shooting people) BLODA0-C0 Little spark POW2A0-E0 (Used at all?) Gas Canister/Grenade GASGB0,C0,A0 (Not used?) Rising Gas GASCA0-H0 (Not used?) Glass Shards SHRDA0-F0 Boat Key? BOATA0 (Not used?) Ankh Key? ANKHA0 (Not used even though there's a frame?) Some alien things FLGRA0, FLGBA0, FLGGA0 (Not used?) Changed Things bits: bit 5 semi-deaf => Standing (NPCs stand still instead of walking around) bit 6 in pain => ? (used by Peasants and Beggars) bit 11 picks up items => ? (used by Bosses and some Quest things) bit 15 semi-no clipping => ? (used by most enemies and other shootables) bit 18 partial invisibility => translucent bit 19 Puffs (vs. bleeds) => Sparks (vs. bleeds) bit 24 running => Bounces bit 26 Color 1 => Goodguy/Ally (used by Players and Rebels) bit 27 Color 2 => Affects visibility? (used by Specters) bit 28 unused => Color 1 bit 29 unused => Color 2 bit 30 unused => Color 3 bit 31 unused => Spectral (Can only be hit by projectiles with this set) Additions notes: Bit 24 Bounces: Thing bounces off surfaces and other things but will still explode on water. Bit 27 Affects visibility?: Makes things invisible, except on map and not when the translucent bit is also set. Probably modifies translucence. Only specters have this set. Bit 19: Any shootable thing that is not set to spark (vs. bleed) and is not spectral, will go into flaming or disintegration death frames if killed by flames or the mauler. Spectral enemies are of course immune. Bits 28-30, Color 1-3, change tans and browns like this: 1=red (and green to yellow and gray) 2=rust 1+2=gray 3=dark green 1+3=gold (and red or reddish orange) 2+3=bright green 1+2+3=blue (and light gray/white) Use Dehacked with Ultimate Doom to set a selection of bits for thing 1, the player. Then open up the doom.exe in a hex editor, go to A56B4 to see the eight digit value (takes up four spaces) for those bits. Use that value for the thing in Strife you want that selection of bits for. Sound numbers (not all comfirmed): 1 dsswish grappling hook action, arrows/bolts alert/action 2 dsmeatht peasant/beggar attack 3 dsmtalht target pain 4 dswpnup rebel alert 5 dsrifle acolyte attack 6 dsmislht missile/turret death 7 dsbarexp explosive barrel death 8 dsflburn flame alert 9 dsflidl 10 dsagrsee Macil/Acolyte alert 11 dsplpain player pain 12 dspcrush 13 dspespna shop keep/peasant/beggar/rebel/Macil pain 14 dspespnb 15 dspespnc 16 dspespnd 17 dsagrdpn acolyte pain 18 dspldth player death 19 dsplxdth 20 dsslop Macil 2S/Loremaster death, Entity pod alert 21 dsrebdth rebel death 22 dsagrdth acolyte death 23 dslgfire 24 dssmfire burning bowl/brazier/torch action 25 dsalarm 26 dsdrlmto 27 dsdrlmtc 28 dsdrsmto 29 dsdrsmtc 30 dsdrlwud 31 dsdrswud 32 dsdrston 33 dsbdopn 34 dsbdcls 35 dsswtchn 36 dsswbolt 37 dsswscan 38 dsyeah 39 dsmask 40 dspstart 41 dspstop 42 dsitemup 43 dsbglass 44 dswriver stick in water action 45 dswfall waterfall splash 46 dswdrip floor water drip action 47 dswsplsh water fountain action 48 dsrebact peasant alert/action, rebel/Macil action 49 dsagrac1 acolyte 1/4 action 50 dsagrac2 acolyte 2/5/shadow action 51 dsagrac3 acolyte 3/6/7/8 action 52 dsagrac4 53 dsambpplbar keep action 54 dsambbar bar keep pain 55 dstelept zombie spawner action 56 dsratact rat alert/death/action 57 dsitmbk 58 dsxbow 59 dsburnme 60 dsoof 61 dswbrldt barrel death 62 dspsdtha peasant/zombie/becomingacolyte/beggar death 63 dspsdthb 64 dspsdthc 65 dsrb2pn crusader/Bishop pain 66 dsrb2dth crusader/Programmer death 67 dsrb2see crusader/Bishop alert 68 dsrb2act crusader/Bishop action 69 dsfirxpl electric bolt(XBow) death 70 dsstnmov 71 dsnoway 72 dsrlaunc missile alert 73 dsrflite missile trail alert 74 dsradio 75 dspulchn 76 dsswknob 77 dskeycrd 78 dsswston 79 dssntsee Sentinel alert 80 dssntdth Sentinel death 81 dssntact Sentinel action 83 dspgrdat templar alert 84 dspgrsee templar pain 85 dspgrdpn templar/Bishop death 86 dspgrdth templar action 87 dsproton 88 dsprotfl mauler torpedo alert 89 dsplasma sentinel left laser alert 90 dsrptr 91 dsreavat 92 dsrevbld Loremaster/Specter/Entity/SubEntity/Programmer attack 93 dsrevsee reaver alert 94 dsreavpn reaver pain 95 dsrevdth reaver death 96 dsrevact reaver action 97 dsspisit stalker alert/action 98 dsspdwlk 99 dsspidth stalker death 100 dsspdatk stalker attack/pain 101 dschant kneeling guy action 102 dsstatic kneeling guy pain/death 103 dschain grappling hook alert 104 dstend Loremaster action, grappling hook alert 105 dsphoot Grenade alert 106 dsexplod Grenade/MTorpedo/Gates/Computer/ore/Crystal death 107 dssigil Sigil shot alert 108 dssglhit Sigil shot death 109 dssiglup 110 dsprgpn Programmer pain 111 dsprogac Programmer action 112 dslorpn Loremaster pain 113 dslorsee Loremaster alert 114 dsdifool 115 dsinqdth Inquisitor death 116 dsinqact Inquisitor action 117 dsinqsee Inquisitor alert 118 dsinqjmp 119 dsamaln1 alien spider light action 120 dsamaln2 huge alien pillar action 121 dsamaln3 alien asp climber action 122 dsamaln4 alien ceiling bubble action 123 dsamaln5 alien bubble column action 124 dsamaln6 alien floor bubble action 125 dsmnalsee Entity alert 126 dsalnsee Specter/SubEntity alert 127 dsalnpn Specter/Entity/SubEntity pain 128 dsalnact Specter/Entity/SubEntity action 129 dsalndth Specter/SubEntity death 130 dsmnaldt Entity death 131 dsreactr Crystal action 132 dsairlck 133 dsdrchno 134 dsdrchnc 135 dsvalve -Sound offset 000A5814 (677884) Tapping the arrow keys Down 1 Right 8 will get you to same the spot for the next sound. -Frame offset 000A68F8 (682232 in normal 10 base decimal) one and a quarter lines per a frame 1st space = sprite number 5th space = sub number the hex value 80 at the 6th space means it's a bright frame 9th space = duration 13th-15th space = code pointer (Changing this here doesn't work) 17th-18th space = next frame Tapping the arrow keys Down 1 Right 4 will get you to the same spot in the next frame. Specific Frame Offsets: A68F8 Frame 0 none A6CA4 Frame 47 Missile Launcher shooting frame A6D6C Frame 57 Assault Gun shooting frame A6E20 Frame 66 Flame Thrower shooting frame A6FD8 Frame 88 Mauler Torpedo shooting frame A7334 Frame 131 Mauler Blast 3rd frame A7500 Frame 154 Electric Bolt and Sigil Shot death frame A7744 Frame 183 Phosphorus Grenade in air initial frame A7A28 Frame 220 Phosphorus Grenade in air death frame A7AF0 Frame 230 Phosphorus Flame death frame A80CC Frame 305 Player corpse A816C Frame 313 gibbed Player A8608 Frame 372 toasted corpse A88C4 Frame 407 Peasant corpse A898C Frame 417 gibbed Peasant or Beggar A9170 Frame 518 gibbed Rebel A94B8 Frame 560 some little spark/flame puff A9918 Frame 616 Acolyte far attack frame A9A30 Frame 630 Acolyte corpse A9B20 Frame 642 gibbed Acolyte AA50C Frame 769 Priest/Loremaster far attack frame AAA20 Frame 834 dying specter node AB45C Frame 965 Sigil B shot initial frame AB6B4 Frame 995 Sentinel initial frame ABE20 Frame 1090 dying inquisitor arm AC104 Frame 1127 dying programmer base AC1A4 Frame 1135 Player and Crusader flame initial frame AC1E0 Frame 1138 Player and Crusader flame death frame AC58C Frame 1185 degnin ore initial frame AC604 Frame 1191 Power Crystal death frame ACA64 Frame 1247 oracle heart/random gibs ACBA4 Frame 1263 Rat buddy death frame/corpse ACBF4 Frame 1267 random shrapnel Got a frame number from things data that you want to go to? Here's how to calculate the offset to find the frame's data at: The first frame (0) is at A68F8 which equals 682232 The next frame (1) is at 682232 +20 Frame after that (2) is at 682232 +40 So if you want to get to frame 616 (Acolyte far attack frame)... 682232 + 616x20 = 6822232 + 12320 = 694552 which is A9918 in hex so that's the offset you go to and being the first space for the particular frame the value there will be its sprite number. Sprite numbers: 0 PLAY player 1 PNCH fists 2 WAVE 3 RBPY 4 TRGT 5 XBOW crossbow 6 MMIS missile launcher 7 RIFG assault gun 8 RIFF assault gun shooting 9 FLMT Flame Thrower 10 FLMF Flame Thrower shooting 11 BLST Mauler 12 BLSF Mauler Shooting 13 GREN Grenade Launcher 14 GREF Grenade Launcher Shooting 15 SIGH Sigil 16 SIGF Sigil Firing 17 POW1 sentinel laser and mauler blast puff/spark 18 POW2 19 POW3 robot spark 20 ZAP1 electric bolt exploding or sigil blast hit (hex 14) 21 SPRY blood from death 22 BLOD blood splat 23 PUFY bullet puff 24 SHT1 sentinel laser 25 SHT2 mauler blast 26 GRIN Phosphorus grenade 27 GRAP HE-grenade 28 UBAM Inquisitor grenade 29 BNG2 Inquisitor grenade explosion 30 BNG4 HE-grenade explosion 31 BNG3 Phosphorus grenade and degnin ore explosion 32 FLBE Phosphorus flame 33 XPRK degnin ore 34 OCLW grappling hook open/initial 35 CCLW grappling hook closed/death 36 TEND grappling hook chain 37 MICR mini-missile 38 MISS Bishop homing missile 39 AROW electric crossbow bolt 40 ARWP poison arrow 41 TORP mauler torpedo 42 THIT mauler torpedo explosion 43 TWAV mauler torpedo explosion spread 44 MISL missile explosion 45 TFOG teleport fog 46 IFOG item respawn fog 47 SHRD 48 RGIB Rebel/Player exploding (hex 30) 49 MRYS 50 MRNO 51 MRST shop keeper 52 MRLK 53 MRBD 54 MRPN shop keeper in pain 55 MRGT 56 BURN person on fire 57 DISR 58 PEAS peasant 59 GIBS peasant/beggar/acolyte exploding 60 AGRD Acolyte (hex 3C) 61 ARMR becoming acolyte 62 SACR sacrificed guy 63 TNK1 huge tank 1 64 TNK2 huge tank 2 65 TNK3 huge tank 3 66 TNK4 tank 4 67 TNK5 tank 5 68 TNK6 tank 6 69 NEAL Nealing guy 70 BEGR Beggar 71 HMN1 Rebel 72 LEDR Macil standing 73 LEAD Macil 74 ROB1 reaver 75 PGRD templar 76 ROB2 Crusader 77 MLDR Bishop 78 ORCL Oracle 79 PRST Loremaster (hex 4F) 80 PDED Loremaster dying 81 ALN1 Specter 82 AL1P Specter dying 83 NODE Specter node 84 MTHD Specter chunk 85 MNAM Entity forming 86 MNAL Entity 87 MDTH Sub Entity Dying 88 NEST Entity Nest 89 PODD Entity Podd 90 ZAP6 Sigil rail lightning (B, offshoots of E, and their trails) 91 ZOT3 Sigil C shots 92 ZAP7 Sigil E big blast 93 ZOT1 Sigil A vertical lightning strikes 94 ZAP5 Sigil A ground thing 95 ZOT2 Sigil D column shot 96 SEWR Sentinel 97 SPID Stalker 98 ROB3 Inquisitor 99 RBB3 dying Inquisitor parts 100 PRGR Programmer 101 BASE dying programmer base 102 FRBL Player/Crusader Flame Thrower flame 103 KLAX Claxon light 104 TURT ceiling turret 105 BALL ceiling turret death 106 PSTN gates (Piston) 107 SECR computer 108 TARG targeter 109 RING ring 110 EARS ear 111 COMM communicator 112 BOOM power crystal explosion 113 RATT rat buddy 114 HOGN shooting range target 115 DEAD? or STEL aztec pillar? 116 SBAN sigil banner 117 BOTR rebel boots 118 HATR rebel helmet 119 TOPR rebel shirt 120 COUP power coupling 121 BUBB alien bubble column 122 BUBF alien floor bubble 123 BUBC 124 ASPR alien asp climber 125 SPDL alien spider light 126 TOKN generic item 127 OTOK oracle pass 128 HELT toughness 129 GUNT accuracy 130 FULL surgery kit 131 MEAT gibs,dead rat,oracle heart 132 JUNK shrapnel 133 FFOT little flame 134 DIE1 135 BEAC teleport beacon 136 ARN1 metal armor 137 ARM2 leather armor 138 BARW wooden barrel 139 BART explosive barrel 140 LAMP outside lamp 141 LANT pole lantern 142 BARL burning barrel 143 BOWL burning bowl 144 BRAZ burning brazier 145 TRCH small burning torch 146 LTRH medium torch 147 LMPC large torch 148 LOGS huge torch unconfirmed: 149 TRHO 150 WATR 151 MUGG 152 FUSL 153 CRD1 154 CRD2 155 TPAS 156 KY1G 157 KY2S 158 KY3B 159 HAND 160 CRYS 161 PRIS 162 PWR1 163 PWR2 164 PWR3 165 ORAC 166 GYID 167 FUBR 168 WARE 169 RCRY 170 BCRY 171 CHAP 172 TUNL 173 BLTK 174 SECK 175 MINE 176 REBL 177 PROC 178 ANKH 179 GOID 180 STMP 181 MDKT 182 COIN 183 CRED 184 SACK 185 CHST 186 SHD1 187 MASK 188 UNIF 189 OFIC 190 PMAP 191 PMUP 192 BLIT 193 BBOX 194 MSSL 195 ROKT 196 BRY1 197 CPAC 198 PQRL 199 XQRL 200 GRN1 201 GRN2 202 BKPK 203 RELC 204 RIFL 205 FLAM 206 BFLM 207 MMSL 208 TRPD 209 GRND 210 CBOW 211 SIGL 212 LITE 213 CNDL 214 CLBR 215 LITS 216 LITB 217 LITG 218 ROK1 219 ROK2 220 ROK3 221 ROK4 222 LOGG 223 RUB1 224 RUB2 225 RUB3 226 RUB4 227 RUB5 228 RUB6 229 RUB7 230 RUB8 231 CHAN 232 STAT 233 DSTA 234 CRAB 235 CAGE 236 TREE 237 TRE1 238 BUSH 239 SHRB 240 STAK 241 BAR1 242 VASE 243 STOL 244 POT1 245 TUB1 246 ANVL 247 TLMP 248 TRAY 249 APOW 250 AFED 251 DRIP 252 CDRP 253 SPLH 254 WTFT 255 HERT 256 TELP 257 MONI 258 STEL 259 STLA 260 STLE 261 HUGE 262 STLG -Sprite offset 000A64DC (681180) -Ammo offset 000A4024 (671780) A4024 Max Bullets (250) A4028 Max Electric Bolts (50) A402C Max Poison Arrows (25) A4030-31 Max Energy Cells (400) A4034 Max Missiles (100) A4038 Max H-E Grenades (30) A403C Max Phosphorus Grenades (16) A4040 Bullets per item (10) A4044 Missiles per item (4) A4048 Poison Arrows from backpack (2) A404C Energy Cells per item (20) A4050 Electric Bolts from backpack (4) A4054 H-E Grenades per item (6) A4058 Phosphorus Grenades per item (4) The amount of ammo that comes with a weapon or from a bulk ammo item is 5 times the normal amount from backpack. The ammo clips dropped by Acolytes only contain half the normal ammo amount. -Weapon offset 000588F4 (362740) 1st space = ammo type 5th space = deselect frame 9th space = select frame 13th space = idle frame 17th space = shooting frame 21st space = firing frame 25th space = ? (either 0 or 1 for each weapon) Tapping the arrow keys Down 2 Left 4 will get you to the same spot in the next frame. Specific Weapon Offsets: 588F4 Fist 58910 Electric Crossbow 5892C Assault Gun 58948 Missile Launcher 58964 H-E Grenade Launcher 58980 Flame Thrower 5899C Mauler Blaster 589B8 Sigil 589D4 Poison Crossbow 589F0 Phosphorus Grenade Launcher 58A0C Mauler Torpedo Ammo types: 0 = Bullets 1 = Electric Bolts 2 = Poison Arrows 3 = Cells 4 = Missiles 5 = H-E Grenades 6 = Phosphorus Grenades 7 = Unused 8 = Unlimited -Text offset 0008CE54 (577108), ends at 92DF0 (601584) 8DAF6 STRIFE: Quest for the Sigil v1.31 8E3D3 is turbo! 8EFB8 Strife by Rogue Entertainment (shown after taking a screenshot) 8F1FC This area is only available in the retail version of Strife. 8F1FC That doesn't seem to work. 8F7D0 Congratulations! You have completed the training area. 8F8B4 PEASANT and 10 quotes 8FAE4 REBEL and 10 quotes 8FDA0 AGUARD and 10 quotes 8FF5C BEGGAR and 10 quotes 901EC PGUARD and 10 quotes 911F0 area names 917A0 sound names 91C44 sprite names 9247C thing names -Cheat offset A5308 (676616) -Text Length 5F9C (24476) ----------------------------------------------------------------------------- Examples: * How to change the crossbow's electric bolts to a grappling hook * First hex number is offset you go to with Hexposure (press F1), Original value=>New value to change to, DeHackEdish description of change. Frames for Loremaster's far attack AA50C 4F=>14 sprite number=>20 AA510 04=>00 sprite subnumber=>0 AA520 4F=>14 sprite number=>20 AA524 05=>01 sprite subnumber=>1 AA534 4F=>14 sprite number=>20 AA538 04=>02 sprite subnumber=>2 AA544 F602=>9D00 next frame=>157 Loremaster AF87C 0103=>0000 far attack frame=>0 Grappling Hook projectile, also known as Chain attack B0440 02=>00 missile damage=>0 Electric Bolt projectile B05D4 F1=>EB initial frame=>235 B05E0 01=>67 alert sound=>103 B0604 9A=>0103 death frame=>769 * Clearing the "Not in Deathmatch" bit * AE0A8 06000002 => 06000000 Weapon Smith AE108 06000052 => 06000050 Bar Keep AE168 06000062 => 06000060 Armorer AE1C8 06000072 => 06000070 Medic AF248 06004002 => 06004000 Macil 1I AF2A8 06004082 => 06004080 Macil 2S AF7E8 06804802 => 06804800 Bishop AF848 06004802 => 06004800 Oracle AF8A8 06CA4802 => 06CA4800 Loremaster AF908 07CA448A => 07CA4488 Specter A AF968 10100002 => 10100000 Dying Specter Node AF9C8 10100002 => 10100000 Dying Specter Chunk AFA28 07CA448A => 07CA4488 Specter B AFA88 07CA448A => 07CA4488 Specter C AFAE8 07CA448A => 07CA4488 Specter D AFB48 07CA448A => 07CA4488 Specter E AFBA8 07CA448A => 07CA4488 Entity AFC08 07CA448A => 07CA4488 Sub Entity AFC68 02000002 => 02000000 Entity Nest AFCC8 02000002 => 02000000 Entity Pod B0388 064A4802 => 064A4800 Programmer B11C8 01000002 => 01000000 Base Key (Front) 01000002 => 01000000 Govs Key 01000002 => 01000000 Travel Pass Card 01000002 => 01000000 Blue ID Badge B1348 01080002 => 01080000 Prison Key B13A8 01080002 => 01080000 Severed Hand B1408 01000002 => 01000000 Power 1 Key 01000002 => 01000000 Power 2 Key 01000002 => 01000000 Power 3 Key 01000002 => 01000000 Gold Key 01000002 => 01000000 Gold ID Card 01000002 => 01000000 Silver Key 01000002 => 01000000 Oracle Key 01000002 => 01000000 Military ID 01000002 => 01000000 Order Key 01000002 => 01000000 Warehouse Key 01000002 => 01000000 Brass Key 01000002 => 01000000 Red Crystal Key 01000002 => 01000000 Blue Crystal Key 01000002 => 01000000 Chapel Key B1948 01080002 => 01080000 Catacomb Key B19A8 01000002 => 01000000 Security Key 01000002 => 01000000 Core Key 01000002 => 01000000 Mauler Key 01000002 => 01000000 Factory Key 01000002 => 01000000 Mine Key 01000002 => 01000000 New Keys B1D08 01000002 => 01000000 Officer Uniform B1EE8 01000202 => 01000200 1 Gold B1F48 01000202 => 01000200 10 Gold B1FA8 01000202 => 01000200 25 Gold B2008 01000202 => 01000200 50 Gold B20C8 01080002 => 01080000 Ring B21E8 01000002 => 01000000 Communicator B4BE8 06880A02 => 06880A00 Power Coupling * Making brown Rebels blue (player 8 color) * Changed 04 to 74 at these offsets for these things to set the color bits. AF00B Rebel 1 AF06B Rebel 2 AF0CB Rebel 3 AF12B Rebel 4 AF18B Rebel 5 AF1EB Rebel 6 * Making the player spectral * Only Sigils, falls, and damaging sectors can still damage you. AE04B Changed 06 to 86 * Changing text * In Hexposure press tab so the relative text box will be where you type at the cursor location. Here you can just type your new text over the normal text in the same space (unless entering the hex value for each char sounds like fun). You could go to 8DAF6 and change STRIFE: Quest for the Sigil v1.31 to CHAOS: Quest for your mom! OMG! You could go to 8E3D3 and change is turbo! to Wheeeeee! When you can't use DeHackEd... Be DeHackEd. ----------------------------------------------------------------------------- Why I think a DeHacked-like editor for Strife could succeed when not much came from there being ones for Heretic and Hexen... Heretic is kind of blah except for the cool powered up modes of weapons. Although I didn't actually play through all six episodes, I can't really think of any particularly cool or fun level. The normal modes of weapons were mostly like Doom weapons completely redrawn with new sounds, but lack a feel that Doom's had. Heretic is still a great game, not so much compared to Doom, Hexen, and Strife. Hexen is a very cool game, but the whole Seven Portals hub kills it for a lot of people. Make no mistake though. Hexen only picks up and gets better and better after that first annoying hub. I think the biggest reason is with both Heretic and Hexen, their selection of medieval weapons and monsters doesn't seem as straight forward or flexible as say Doom and Strife's modern weapons with all purpose guns and rocket launchers you could have shoot just about anything and still look right. As cool as most of the weapons and monsters may be, not much comes to mind that would be good to hack around with. Also, now people are a bit further discouraged from making patches for Heretic and Hexen since the patches aren't supported by any source ports. Also I can't get the editor for Hexen to run on my Win98SE machine, although it does run perfectly fine under Win95B and someone else's Win98SE comp. Newer hardware is probably the problem. Now Strife just rules. Once you make a slight effort to figure things and play through the game (instead of screwing around, killing anyone in sight, and getting guard-whacked), I think it has the most engrossing single player of any first person shooter EVER. The only other Action RPG I think of that can compete with it is Castlevania: SOTN and whatever Castlevania may surpass that. Strife's multiplayer deathmatch is also very cool. You can actually have wars between opposing teams of rebels allied with different players. Strife's atmosphere feels like an awesome mesh of Doom with the post apocalyptic planet(s) of the Heavy Metal animated movies. The characters and enemies have more personality than Heretic or Hexen's, and even some of Doom's. Most importantly as far as editing goes, Strife has some really cool stuff to work with. An enemy has a grappling hook weapon and the first released mod gives a version to players. You can easily put features like shattering glass in levels. Strife's stuff is mostly very Doomish but with still a very arcane and sometimes mysterious quality. It also just plain has a lot more to work with than vanilla Doom, although slightly less than the quantity of Hexen's Things or Heretic's Weapons, but still a lot. A DeHackEd for Strife and some more complete level editing info would completely open up Strife to the modification possible with vanilla Doom and a lot more. It would also yield the a lot of useful information for Doom source mod/port authors to better attempt to emulate Strife1.exe and support the game, unless the source code is actually found and released. I think the main reasons no custom levels or mods were released for Strife until just recently are that the game came too late for it to do well in the mainstream market while it probably didn't get a very large distribution on top of that and the official editing specs from Rogue or Velocity were NEVER PUBLICLY released. So if you don't own the full version of Strife, buy it now. Look in clearance outlets or find a link to order over the internet from http://www.the-underdogs.org/game.php?name=Strife Or order it from http://www.rrcd.com/products/strife.html Trying looking on places like Amazon too.