fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
808 stars 132 forks source link

Heretic: Use HHEVER lump to set HHE version for HEHACKED lumps #1173

Open kitchen-ace opened 9 months ago

kitchen-ace commented 9 months ago

Will resolve #1167

I chose to implement checking a HHEVER lump; relying on heuristics alone is too ambiguous (though might be beneficial as an addition), and adding the info in the HEHACKED lump itself is too annoying for people who might want to work with HHE and would constantly have to manually edit their patch.

Outstanding issues:

rfomin commented 9 months ago

Although I added support for the HEHACKED lump to Crispy (it was done for this project), I'm not sure we should encourage its use for modding Heretic. It's much less developed than DEHACKED for Doom, and there are no tools other than the original DOS HHE program. I think the HHE support in Chocolate Heretic was mainly done for compatibility with old PWADs.

kitchen-ace commented 9 months ago

Everything about HEHACKED is absolutely a mess, no argument there.

I didn't read everything on the doomuniverse thread, but I assume they're only using HEHACKED for strings? Quoth The Raven also uses one for this purpose, and @NightFright2k19 was also using it for a patched up version of H!Zone. Unfortunately right now there's no way to get episode 4 or 5 strings without -hhever 1.3.

An alternative option might be to support BEX syntax strings for the obvious stuff -- level names, episode names, and end texts at a minimum. Any theoretical full-featured HEHACKED replacement is better off using this syntax anyhow. ZDoom actually supports naming Heretic map names through Dehacked with the label HHUSTR_ExMy and end texts with HExTEXT (an embedded wad lump must be named DEHACKED, but can also read other lumps with INCLUDE) but not episode names AFAICT. See https://github.com/ZDoom/gzdoom/blob/master/wadsrc/static/mapinfo/heretic.txt

rfomin commented 9 months ago

I didn't read everything on the doomuniverse thread, but I assume they're only using HEHACKED for strings?

Yes, you're right.

ZDoom actually supports naming Heretic map names through Dehacked with the label HHUSTR_ExMy and end texts with HExTEXT (an embedded wad lump must be named DEHACKED, but can also read other lumps with INCLUDE) but not episode names AFAICT.

I didn't know about this. I think it is better to implement UMAPINFO support in Crispy, but it will take time.

SoDOOManiac commented 8 months ago

Just a random idea: if the lump is HEHACKED for Heretic, then for Hexen it should be... HEXACKED? ;)