

This document describes how to supply product information to Classic Battle.net™.
Usage
When connecting to the Classic Battle.net service and identifying with C>S 0x50 SID_AUTH_INFO (or the older C>S 0x06 SID_STARTVERSIONING/C>S 0x07 SID_REPORTVERSION system), the clients send their Platform, Product, Version (often called Version Byte or Verbyte), and Language values.
All four fields are UINT32
values, where all but Version are a four-character "UINT32-string", as described in notational conventions.
Products and Versions
Product and Version specify what version of what game being used. The Product value is seen again when users are seen in chat with their chat statstrings. The Version value may be used again during peer-to-peer and other game-related communication to ensure clients are on the same versions. The Latest Version value is the four-16-bit-integer Windows PRODUCTVERSION field for reference (also used during Check Revision).
Client | Product | Latest Version | Version Value |
---|---|---|---|
Telnet | CHAT |
0x01 |
|
StarCraft Shareware | SSHR |
1.12.0.0 | 0xA5 |
StarCraft Japanese | JSTR |
1.12.0.0 | 0xA9 |
StarCraft | STAR |
1.20.11.3277 | ? |
StarCraft: Brood War | SEXP |
1.20.11.3277 | ? |
Diablo Shareware | DSHR |
2001.5.11.1 | 0x2A |
Diablo I Beta | DIAB |
||
Diablo I Stress Test | DTST |
||
Diablo Retail | DRTL |
2001.5.11.1 | 0x2A |
Diablo II Stress Test | D2ST |
||
Diablo II | D2DV |
1.14.3.71 | 0x0E |
Diablo II: Lord of Destruction | D2XP |
1.14.3.71 | 0x0E |
WarCraft II: Battle.net Edition | W2BN |
2.0.2.0 | 0x4F |
WarCraft III Demo | W3DM |
0x01 |
|
WarCraft III: Reign of Chaos | WAR3 |
1.30.0.9900 | 0x1E |
WarCraft III: The Frozen Throne | W3XP |
1.30.0.9900 | 0x1E |
Italic listings no longer work on official Battle.net servers.
StarCraft products are all upgraded to the new StarCraft 1.18 and later releases on official servers. You can no longer log on with JSTR
or SSHR
, for they are also given an upgrade request.
The Battle.net Chat Service briefly supported non-tunneled StarCraft version "1.18.0.1345" with code 0xD6
but now bans you for using it, even though a newer version was the latest.
Programmatically obtaining the version byte
This is not a 100% guaranteed method, but you can scan the game's binary to find the version byte. Using a simple pattern matching.
For StarCraft, the pattern is:
C7 46 10 ** ** ** ** C7 46 18 ** ** ** ** C7 46
The version byte being the first set of wildcards.
Platform
The Platform value identifies which of three possible platforms. This affects what files Battle.net gives you to work on your platform.
Operating System | Architecture | Platform Value |
---|---|---|
Windows | Intel x86 | IX86 |
Mac OS | PowerPC | PMAC |
OS X | Intel | XMAC |
Language
The Language value identifies which language the product is using. You cannot specify this using the older C>S 0x06 SID_STARTVERSIONING/C>S 0x07 SID_REPORTVERSION system. This affects what language files Battle.net gives you as well as when the service sends you informative text in chat events among other places.
These are the values supported by Classic Battle.net's servers.
Language | Language Value |
---|---|
English (United States) | enUS |
English (Great Britain) | enGB * |
German (Germany) | deDE |
French (France) | frFR |
Italian (Italy) | itIT |
Spanish (Spain) | esES |
Korean (Korea) | koKR |
Polish (Poland) | plPL |
Russian (Russia) | ruRU |
Chinese (Taiwan) | zhTW |
Chinese (China) | zhCN ** |
Japanese (Japan) | jaJA ** |
Any other values (including (UINT32) 0
) gives you 'enUS'
.
* It is unknown whether 'enGB'
or any other English varieties actually differ from 'enUS'
and the server is just giving you that.
** These languages appear to be supported, but no official clients are available that use it. JSTR is no longer accessible.