Compatible Dehacked file not loading
I was doing some more testing of Doomsday beta 6.3, and decided to load Alien Vendetta, along with its dehacked file (so I could get its story texts replaced over Doom II's story texts). I went on a level that was followed by a story text and even with the dehacked file loaded, it still used Doom II's story text. And AV.deh was listed as compatible with Doomsday.
#1 Updated by danij about 13 years ago
The problem here is the completely bizarre way in which DeHackED choose to represent Text in its patch format. Rather than simply store indices to text strings based on their position in the vanila binaries DeHackED instead choose to store two copies of the string to be replaced; the original (extracted from the IWAD being modified) and the replacement.
Upon loading the patch, DeHackED would search all Text strings and replace all strings that match the original with the replacement.
This was a nice idea as it meant that text string patches were independant of the binaries so that if the offsets of the text strings themselves changed the patches would still work.
However, now that we arn't patching a binary this makes the format of text string DEH patches somewhat unwieldy because if any of the "original" strings have changed even slightly then the replacement will no longer work.
The solution therefore is to duplicate the original text strings from the vanilia IWAD in their entirety in their exact form in the dpDEHRead alongside their counterpart string identifiers. When applying the patch, compare the original string in the patch with the original strings to determine the identifier(s) and then do the replacement by string identifier.