Valhalla Legends Archive

Programming => Battle.net Bot Development => Topic started by: brew on July 17, 2008, 09:58 AM

Title: Diablo II Checkrevision
Post by: brew on July 17, 2008, 09:58 AM
I've noticed that the Diablo II 0x51 packet passes, even with a blank exe info string, and a totally invalid exe version value (0xCCCCCCCC). I know that you aren't required to pass a valid exe info field, but what about the exe version? Historically, this value was enforced. What's going on? Can anyone else verify?
Title: Re: Diablo II Checkrevision
Post by: Hdx on July 17, 2008, 11:06 AM
From all accounts that I can remember, the exe version has almost never been enforced. It's used to tell you what patch you should use if you fail.
I *think* it was enforced a long time ago when things first got started, but I doubt it.
Title: Re: Diablo II Checkrevision
Post by: Barabajagal on July 17, 2008, 05:42 PM
I don't remember either ever being of importance. All it ever checked was the verbyte. The exe version was, as Hdx said, for determining which patch to use if the verbyte was incorrect.
Title: Re: Diablo II Checkrevision
Post by: Ringo on July 17, 2008, 06:02 PM
I noticed this with 1.11a/1.11b as well -- both versions of the game had the same exe versions so the server was only checking the checksum.
It forced me to rewrite my servers version detection :/
It has no need to check the exe version, since the version byte will be used to look up the checkversion lists. Its only when the checksum matchs that of the latest version you can logon, other wise it detects later versions to tell you the correct patch file to use. If no matchs then invalid game version.
Come to think of it, i'm pretty sure in the past, exe version checking has been all over the place -- somtimes its checked, other times/versions its not *shrugs*