xttl Posted November 2, 2020 (edited) Here's an updated version of DeHackEd 3.0a with support for both Final Doom executable variants (regular and anthology) added. Required offset values for the first Final Doom revision are taken from the old, binary only DHE 3.1 release. For the second revision I figured them out on my own. (which wasn't really THAT difficult to do :) It is called a "special edition" (dumb name I know) because it is not an update to 3.1 (the source code to which was never released). Instead, it's really its own fork based on 3.0a. I also added a new color scheme just for the heck of it, it can be disabled via dehacked.ini (add "origpal = true") if you do not like it. Patches tested and working: - vsmooth.deh (vanilla smooth weapons) - pl2.deh (Plutonia 2) - all DHE 3.x sample patches except sample.deh please test different patches and report problems here Download (updated source code for Borland C++ 3.1 included): dhe_special_r3.zip Edited November 2, 2020 by xttl 40 Quote Share this post Link to post
Doomkid Posted November 2, 2020 (edited) Incredible! Just tested with multiple patches on multiple revisions of the 1.9 EXEs - Anthology Final Doom, plain Final Doom, Ultimate, Doom 2, and all the extended EXEs like DoomP and Doom32 just to be 100% sure, and everything seems to work as intended. That one last revision of DeHackEd we've been needing for years. I also love the new less garish color scheme, really reminds me of John Romero's "cool blue" or whatever he called it in the early versions of SETUP.EXE. No clue why they ended up ditching that nice shade and happy to see a similar variant make a return here. Great stuff. EDIT: I also tried plopping this in place of the regular DeHackEd exe found in JadingTsunami's VULD package, and it works just as intended there too, with full support for DEHPICK (which has saved me loads of collective time on DEH loading since it was made) Edited November 2, 2020 by Doomkid 11 Quote Share this post Link to post
P41R47 Posted November 2, 2020 At last, the proper Dehacked we needed for decades! Thanks, Xttl, for your work. But a little question as i'm at work and i can't test is myself: This forks makes possible to edit Final Doom strings and properly dehack for them without the need to work on a D2 patch and then manually changing the strings for FD compatibility, right? 1 Quote Share this post Link to post
xttl Posted November 2, 2020 10 hours ago, P41R47 said: This forks makes possible to edit Final Doom strings and properly dehack for them without the need to work on a D2 patch and then manually changing the strings for FD compatibility, right? I'm not sure I understand the question. You can and always could (with regular 3.0a or 3.1) load patch files which replace strings that aren't present in the current exe, but you get unmatched string warnings when loading. This is good and expected behaviour. I could add an option to not show warnings if that's what you wanted? 0 Quote Share this post Link to post
P41R47 Posted November 2, 2020 No, i mean if the Final Doom strings like maps names and text screen and so are shown and able to change them at will on the program. Modern dehacked editor, Whacked, only let you change those strings on .bex format. And if you select patching for Doom1.9 or UltimateDoom1.9 only the strings for Doom2 and UltimateDoom are shown. And so, dehacked patches for Plutonia2 and TNT:R had to be edited manually as text files, with a lot of crashes in the process. 3 Quote Share this post Link to post
xttl Posted November 2, 2020 Ah. Yes, you can edit Final Doom strings if you open a Final Doom exe in DHE 3.0a SE, just like you could in 3.1. 2 Quote Share this post Link to post
P41R47 Posted November 2, 2020 (edited) 7 minutes ago, xttl said: Ah. Yes, you can edit Final Doom strings if you open a Final Doom exe in DHE 3.0a SE, just like you could in 3.1. Oh, yes! Finaly and easy way to properly edit them :) Again, thanks for your hard work, Xttl ;) Edited November 2, 2020 by P41R47 0 Quote Share this post Link to post
xttl Posted November 2, 2020 (edited) Well, DHE 3.1 has always been there since 1996 but thanks anyway. :-) I actually just noticed a little problem: a patch created by DHE SE in Final Doom mode gives a warning about unrecognized Doom exe version when it is loaded back (though still works fine). Even original DHE 3.1 seems to have this problem, lol. Will fix it later. Edited November 2, 2020 by xttl 0 Quote Share this post Link to post
P41R47 Posted November 2, 2020 13 minutes ago, xttl said: Well, DHE 3.1 has always been there since 1996 but thanks anyway. :-) I actually just noticed a little problem: a patch created by DHE SE in Final Doom mode gives a warning about unrecognized Doom exe version when it is loaded back (though still works fine). Even original DHE 3.1 seems to have this problem, lol. Will fix it later. yeah, but 3.1 was just for the regular, and a lot of people nowdays had the anthology, and also there was no source code to make it editable for modern PC users that doesn't know how to mess with dosbox and the old dehacked. Now with your effort, a proper update with this strings could be made for Whacked, so i'm tagging @exl so he doesn't miss this ;) 0 Quote Share this post Link to post
exl Posted November 2, 2020 Interesting. I've added it to WhackEd's todo list, though I wonder how many people will get serious use out of it? 7 Quote Share this post Link to post
OpenRift Posted November 2, 2020 1 hour ago, exl said: Interesting. I've added it to WhackEd's todo list, though I wonder how many people will get serious use out of it? I might, if I get around to making a WAD for Final Doom ;P 0 Quote Share this post Link to post
OpenRift Posted November 2, 2020 Great stuff, love the new palette too ;) Remind me again, what was the problem you were having with sample.deh? 1 Quote Share this post Link to post
OpenRift Posted November 2, 2020 OH! Before I forget, I also had a really cool idea that could be implemented. Perhaps you could add a cmd parameter that specifies the normalname (default exe name) when launching it, that way you can quickly alternate between vanilla and something like doomp/2p and udoomhack without having to mess with the ini every time? Also probably a editname (hacked exe name) parameter for making specific hacked exes. 0 Quote Share this post Link to post
Walter confetti Posted November 2, 2020 Now missing only a HHE program fixing and everything will be awesome! Great job! 3 Quote Share this post Link to post
xttl Posted November 2, 2020 9 hours ago, Walter confetti said: Now missing only a HHE program fixing and everything will be awesome! Great job! The thought of updating HHE to work with Shadow of the Serpent riders has already crossed my mind, yes. I think HHE source code isn't available though? Maybe I'll see if it can be made to work well by just hex-editing the old HHE exe... 1 Quote Share this post Link to post
P41R47 Posted November 2, 2020 1 hour ago, xttl said: The thought of updating HHE to work with Shadow of the Serpent riders has already crossed my mind, yes. I think HHE source code isn't available though? Maybe I'll see if it can be made to work well by just hex-editing the old HHE exe... That the sole reason why there are not enough Heretic mapsets. Most people wants to ''rebalance it'' and having HHE would be the way to go. Hope you can work it out somehow, it would be the ebst thing to happend to Heretic in long time. 0 Quote Share this post Link to post
Redneckerz Posted November 2, 2020 8 hours ago, P41R47 said: This forks makes possible to edit Final Doom strings and properly dehack for them without the need to work on a D2 patch and then manually changing the strings for FD compatibility, right? This should produce DoomHack executables based on the Anthology version, provided you have that executable available. 2 hours ago, OpenRift said: OH! Before I forget, I also had a really cool idea that could be implemented. Perhaps you could add a cmd parameter that specifies the normalname (default exe name) when launching it, that way you can quickly alternate between vanilla and something like doomp/2p and udoomhack without having to mess with the ini every time? Also probably a editname (hacked exe name) parameter for making specific hacked exes. This is something similar to how VULD does it, which generates a name for the executable based on the name of the patch. So for instance, Astrostein's Astro.deh is, when merged, called Astro.exe. I suppose this is what you mean? 1 hour ago, xttl said: The thought of updating HHE to work with Shadow of the Serpent riders has already crossed my mind, yes. I think HHE source code isn't available though? Maybe I'll see if it can be made to work well by just hex-editing the old HHE exe... There are a few additionals that cross my mind, primarily since i added that information to the DeHacked page: Linux version: Sam Lantinga (Of SDLDoom fame) did make a port of DeHacked 2.3 for Linux, called Linux Doom Hack Editor or LDHE. Source code is available for the latest verison (0.8a). Windows version: This is silly territory, but since DeHacked can do things not Whacked even can't do (Especially with this Special Edition!) and given you have the source to version 3, would a SDL port be possible? So simply DeHackEd as a SDL prog, that literally does the same thing as DOS, but for Windows, skipping the need for DOSBox. A pure port of that could have some use in terms of people being used to DeHacked anyway and simply wanting to replicate that experience natively without using the (more powerful) toolset of Whacked. Other things: As for your question: HHE has no source code available. Greg Lewis also hosted Hex, a Hack editor for Hexen by Sune Marcher, here. Ettingrinder made a very useful document on HHE, here. @Martin Howe wanted to improve upon DeHacked by implementing Boom extensions and asked in 2002 what Greg Lewis's current e-mail was, along with a description of his progress up till then. Perhaps Martin still has this build? Google Groups post of Martin is here. Some words of compliments: Lastly, my wholeheart thank you on all your progress so far, not only on with DHE Special, but all your other hacks of the past few years aswell. I have on occassion mentioned around that if someone deserves a Cacoward for technical excellence, Xttl/Vv would be a top contender, as people with your skill are a rarity in this community And things like these are why. Your work/hobby has been infinitely useful for the community, thank you. 2 Quote Share this post Link to post
xttl Posted November 2, 2020 I just downloaded HHE 1.1. It recognizes Heretic registered v1.0 exe but all the values on F8 (pointers) page look garbled. v1.2 exe is unrecognized. FILE_ID.DIZ says says it supports Heretic v1.1, but there is no patch from v1.0 to v1.1. Actually, there are no patches FROM v1.1 to 1.2 or v1.3 either, according to https://doomwiki.org/wiki/Game_patch#Heretic. I don't think there's a shareware v1.1 up for download anywhere either. Wtf? 0 Quote Share this post Link to post
P41R47 Posted November 2, 2020 14 minutes ago, xttl said: I just downloaded HHE 1.1. It recognizes Heretic registered v1.0 exe but all the values on F8 (pointers) page look garbled. v1.2 exe is unrecognized. FILE_ID.DIZ says says it supports Heretic v1.1, but there is no patch from v1.0 to v1.1. Actually, there are no patches FROM v1.1 to 1.2 or v1.3 either, according to https://doomwiki.org/wiki/Game_patch#Heretic. I don't think there's a shareware v1.1 up for download anywhere either. Wtf? I thought you will stumble with this problem, as it was the main reason for problems back in the day. Hope you can solve it somehow... 0 Quote Share this post Link to post
xttl Posted November 2, 2020 10 hours ago, Redneckerz said: Windows version: This is silly territory, but since DeHacked can do things not Whacked even can't do (Especially with this Special Edition!) and given you have the source to version 3, would a SDL port be possible? I've thought a SDL version with exactly the same UI (on a emulated textmode screen) would be nice a couple of times, yes. However it's annoying to try to port DHE even just to a different compiler (Open Watcom) on DOS because it depends a lot on Borland C++ conio stuff. I don't know why Greg didn't want to implement his textmode UI by just doing direct writes to video memory. :( Would have ran faster and been less complicated to program at least in some respects. And much less work to port. So I don't know if I will ever want to bother doing it. Anyone else feel free though. Linux svgadoom/xdoom binary support would be 100% useless IMO, the old official Linux port is even more crappy than Doom95 in many respects (sndserv is bullshit and there is no music support at all) and it is even more difficult to get it to run in the first place on a modern system. Doom95 and WinDoom support would be fun but different executable format probably make both too complicated to bother with. Is there a patch format for Hexen that source ports support? also hacking cacoward clearly belongs to @kgsws for achieving code execution from WAD :-) 1 Quote Share this post Link to post
Redneckerz Posted November 2, 2020 (edited) 29 minutes ago, xttl said: I've thought a SDL version with exactly the same UI (on a emulated textmode screen) would be nice a couple of times, yes. Choco Dehacked, anyone? ^^ @Doomkid would be pleased. Quote However it's annoying to try to port DHE even just to a different compiler (Open Watcom) on DOS because it depends a lot on Borland C++ conio stuff. I don't know why Greg didn't want to implement his textmode UI by just doing direct writes to video memory. :( Would have ran faster and been less complicated to program at least in some respects. And much less work to port. So I don't know if I will ever want to bother doing it. Anyone else feel free though. Silly old-coot question: Would Fraggle's Libtextscreen be of any use here? Has a SDL2 port, even. I imagine it will do very little to the actual grunt code that is DeHacked (Because Borland) but perhaps it is useful. Quote Linux svgadoom/xdoom binary support would be 100% useless IMO, the old official Linux port is even more crappy than Doom95 in many respects (sndserv is bullshit and there is no music support at all) and it is even more difficult to get it to run in the first place on a modern system. Aye! I was just pointing it out. If its crap, then its crap :) Quote Doom95 and WinDoom support would be fun but different executable format probably make both too complicated to bother with. Is there a patch format for Hexen that source ports support? It would be difficult to figure out if there is an audience for that. Of Windoom, i do know that Martin Howe made a modern 2015 build out of it. If this is of any use of you, i can provide a DL. As for patch format: This is a tough one, because the only one i can recall is for HexenP, which is .crk and the Cracker.exe by Entryway. Perhaps @PVS can lend a hand? He works/has worked with Hexen/Heretic stuff prior, but usually in a demorecording capacity. Quote also hacking cacoward clearly belongs to @kgsws for achieving code execution from WAD :-) Hey :) That's the only other contender here :P And his work relied on the excellent and underutilized IDA Databases by that other legend, @Randy87. So if anything that just tells me a Cacoward of Tech Excellence is way due for any one of yours. Maybe a collective award? I don't feel that does any one of you proper justice though. Edited November 2, 2020 by Redneckerz 0 Quote Share this post Link to post
Randy87 Posted November 2, 2020 The IDA database was a joke to make. The functions in the executable almost always followed the same order as the source code and there were plenty of strings to follow. I really just eyed the op codes to see if they matched the source. It was really no big deal. Anyone with even a limited grasp of x86 op codes could have done the same. 0 Quote Share this post Link to post
xttl Posted November 2, 2020 (edited) 10 hours ago, Redneckerz said: Silly old-coot question: Would Fraggle's Libtextscreen be of any use here? Has a SDL2 port, even. I imagine it will do very little to the actual grunt code that is DeHacked (Because Borland) but perhaps it is useful. Not very useful because I already have my own SDL2 textmode screen rendering code anyway and DHE already does its own windowing and widgets. I meant Gabe Newell's (Microsoft's) WinDoom for Windows 3.1, not Bruce Lewis' WinDoom. Of course still totally useless but if adding support didn't require too much effort I'd do Doom95 and it. (due to different executable formats used you can almost certainly forget it unless I suddenly get inspired to start writing my own exe hacking tool from scratch) Honestly *nothing* I've done so far is that special, I'm actually pretty shit at coding, hacking and maths. There's just not that many other people there that want to waste time on hacking the old DOS binaries of a game that's been open source for almost 25 years. eg. this stuff requires a higher iq and more dedication and yet isn't zdoom crap (okay I like to play some gzdoom exclusive mods now and then too) Edited November 2, 2020 by xttl 2 Quote Share this post Link to post
xttl Posted November 2, 2020 11 hours ago, P41R47 said: I thought you will stumble with this problem, as it was the main reason for problems back in the day. Hope you can solve it somehow... It seems HHE starts working with the v1.3 exe using ini values from this page: https://ettingrinder.youfailit.net/heretic-hhe.html. At least the F8 page values look sensible now, I haven't tested any actual patches yet. (this is unlike DHE where changing ini values is not enough to make even basic Final Doom patching work, and there are obvious garbage values visible on misc. page and in code pointers) What are the problems with it that need fixing? (also pinging @Walter confetti) 0 Quote Share this post Link to post
Redneckerz Posted November 2, 2020 27 minutes ago, xttl said: Not very useful because I already have my own SDL2 textmode screen rendering code anyway and DHE already does its own windowing and widgets. Bummer. But how should i know what other magic toys you keep in your toybox? ;) 27 minutes ago, xttl said: I meant Gabe Newell's (Microsoft's) WinDoom for Windows 3.1, not Bruce Lewis' WinDoom. Of course still totally useless but if adding support didn't require too much effort I'd do Doom95 and it. (due to different executable formats used you can almost certainly forget it unless I suddenly get inspired to start writing my own exe hacking tool from scratch) Not worth it if you ask me. People who use Doom95 still are doing so out of a nostalgia sense more if anything else. 27 minutes ago, xttl said: Honestly *nothing* I've done so far is that special, I'm actually pretty shit at coding, hacking and maths. There's just not that many other people there that want to waste time on hacking the old DOS binaries of a game that's been open source for almost 25 years. And that automatically makes what you do that much more interesting :) because i like to waste time documenting and reporting on the things you waste time over :) 27 minutes ago, xttl said: eg. this stuff requires a higher iq and more dedication and yet isn't zdoom crap (okay I like to play some gzdoom exclusive mods now and then too) But Gooberman is friends with demoscene magicians. And Gooberman should also get an award ofcourse. 0 Quote Share this post Link to post
P41R47 Posted November 2, 2020 (edited) 15 minutes ago, xttl said: It seems HHE starts working with the v1.3 exe using ini values from this page: https://ettingrinder.youfailit.net/heretic-hhe.html. At least the F8 page values look sensible now, I haven't tested any actual patches yet. (this is unlike DHE where changing ini values is not enough to make even basic Final Doom patching work, and there are obvious garbage values visible on misc. page and in code pointers) What are the problems with it that need fixing? (also pinging @Walter confetti) Principally, that not everybody has the same version of Heretic, and so patches didn't worked as intended. So a program that could patch for every version, or at least the actual retail version, the one most people could get without much problem would be the get go for modding. I'm talking about ''The Shadow of the Serpent Rider'' expansion. Thats the most common version right now. Aside from that, i think most problem were that, unlike Doom, Heretic didn't have a larger fanbase, so not much was made for it. But through the years, that fan base solidifies and its quite large, not DOOM-large, but well caring and craving for more and more. @Ryath recently made an awesome vanilla Heretic episode that is really good. And like him, there are a lot of people wanting to dive into Heresy. This could open vanilla Heretic modding to new heights as the only Heretic modding scene right now lies on the confines of zscripting. Edited November 2, 2020 by P41R47 2 Quote Share this post Link to post
Redneckerz Posted November 5, 2020 @xttl Do you need any assistance with pushing a itch.io page of your work or this SE version on /idgames? Happy to help. 1 Quote Share this post Link to post
P41R47 Posted November 19, 2020 Hey, @xttl if you have time, can you look into this Hehacked file? It crash on Chocolate/Crispy Heretic with the error ''error parsing dehacked file''. Its a .hhe for the serpent rider expansion placed on Episode 5 Maybe this will help you testing things out of Hehacked :) 1 Quote Share this post Link to post
hawkwind Posted February 9, 2021 Any chance of allowing the mouse curser to move full screen ? This SE edition and Greg Lewis's version only alows the mouse to work from the top to middle of the screen ( for me at least ). It was an issue "back in the day". See DEH_HELP.TXT under section 8 mouse info. Also, is it possible to add support for Unused 1 and 2 parameters as does WhackEd4 ? 2 Quote Share this post Link to post
OpenRift Posted April 9, 2021 I'm curious, would it be possible to add in the ability to change par times? I know it's technically possible to do in vanilla (Alien Vendetta comes with an EXE that has altered par times), but would it be a plausable feature to add to dehacked SE? 1 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.