When a player is dropped from a game due to desyncing, Warcraft 3 generates a folder under documents\warcraft iii\errors for
every player containing:
-Desync.txt, a short log of data relevant to the desync
-two identical replays of the game from the local player's perspective up to the point where the desync occurred
-A much longer desync log with the file extension .log
-War3log.txt, a general log of events that starts recording every time the game is opened and stops recording when the game is closed
The .log file has been a mystery for a while. It's just a bunch of numbers and hex values and that's it. At surface level, it's uninterpretable. After doing some digging, I realized that a lot of the numbers in the file are FourCC codes. This made me realize that the .log files aren't as useless as previously thought. Thus, I created this program to parse desync logs, on the offchance that they
do contain useful info.
The idea is that you get one .log file from someone that didn't drop from the game, and one from a player that
did drop from the game, run them through the parser, and then diff them to see what notable differences there are, which may help determine what went wrong. I've done as much cross-referencing as I can to label the various values generated, using info provided to us from one of the 2.0.1 patches. The only value labels that I'm not 100% sure about are the
cust and
cnet values, as well as the
ipse category. Otherwise, I'm confident that everything is spot-on.
I hope this is useful to map devs. Happy bug hunting!
(P.S.: Big thanks to sotzaii_shuen for helping walk me through some of this)