Gez
Why don't I have a custom title by now?!
Posts: 9159
Registered: 07-07 |
Heh. So the infamous XWE+SLumpEd combo bug is also an XWE+DEUTEX combo bug!
To make the explanation short, here's what happens. XWE thinks a lump name (whether in the WAD directory or in the PNAMES lump) is a full 8 characters. Whereas in reality, they may be shorter than that, and then a 0x00 is used to mark the end. But XWE doesn't accept that and changes the 0x00 into a space (if I'm not mistaken), which means that the name doesn't stop there but continue to its full length, which means that if there are any garbage character after the terminator, they become part of the name.
And since XWE has the genius idea of constantly overwriting all the files that are open with what it thinks it should contain, even the IWADs, this screws up TNT and Plutonia completely. (They were built with DEUTEX, you can find a _DEUTEX_ lump in them as a proof.)
How you can solve this:
-Open the faulty IWADs in a hex editor.
-Search (as ASCII string) for a known troublesome flat name. It should be towards the end since usually directories are written at the end, but it could be anywhere.
-Overwrite with 00 in the hex part all the non-character values that are after a flat name shorter than 8 character. Like for LAVA1, you will see 4C 41 56 41 31 00 5F 38. 4C 41 56 41 31 corresponds to LAVA1, 00 is the terminator, 5F 38 are the garbage characters, turn them into 00 as well. Beware not to overwrite values that shouldn't be overwritten, though!
That said -- looking at TNT.wad in a hex editor, this thing is horribly dirty. And by horribly, I mean abominably and terribly. This doesn't even look valid. Dirtectory entries are supposed to be 16-byte long, and therefore to align nicely with a standard hex display. This is just weird.
|