Anet.inf - Anet Game Information File Format
This file is used by Anet, by patch programs, and
by the standard splash screen's Customer Support function.
The file is divided into three sections:
Some of these sections contain numbers or codes assigned by a
central authority. In these cases, the authority to contact
to get a new code is clearly identified.
The [ActiveNet] section is used by the Anet library, which handles crash reporting,
online gaming, and autoupdating. It is also used when launching into the game
from third-party shells.
It contains the following fields:
To get new sessionType, Language, or Platform codes assigned,
or to get answers to questions about them,
contact Dan Kegel,
This section contains information used by the 'CS' screen
and by patch programs.
(This used to be found in the file ver.txt.)
is a two-part build identifier; it consists of a the major build number
followed by a period and then the minor build number. Both
numbers must be integers in the range 0 to 255.
These version numbers can be compared between any two
games which have the same Sessiontype. When comparing
version numbers, the major number is compared first.
If that is the same, the minor number is compared.
When Production changes a product and sends it to QA for testing,
to outside beta testers, or anywhere outside their immediate control,
they must increment the version number. Once a product has been
sent outside the Production area, the Version number it carried should
never be reused (except by localizations that only add localized files
without modifying any code files).
Sessiontype is a number that identifies both the product and the
"compatibility group" of the product. If you come out with ten
versions of a game that can all play against each other on the network,
they all get the same sessiontype. A table giving
sessiontype, URL for the related game, and game name is at
See below for how to get a new sessionType
assigned for your game.
Language is a number indicating what language-specific patch
should be downloaded if a patch is needed. Choices are:
See below for how to get a new language code
assigned, if you're localizing to a language not in that list.
- 1 = English
- 2 = German
- 4 = French
- 8 = Spanish
- 16 = Italian
- 32 = Portuguese
- 64 = Japanese
Note: this field should not be used to indicate whether a
product has been censored to meet a particular country's violence
Note: QA currently requires a single patch .exe to patch
all languages, so this feature has not yet been useful. When we are able to
structure our patches to meet QA's needs, yet not be bloated with
unused languages, this feature may become useful. In anticipation
that a future patch will do this, you should be careful to put the
right language code in this field of anet.inf.
Two-character ISO standard language codes are also available, and
a mapping between them and the above numerical codes has been defined.
Ask Dan Kegel for info if you want to use these.
Platform is a number indicating what platform-specific patch
should be downloaded if a patch is needed. A new code will need to be allocated for each
platform that requires a different downloaded patch. Choices are presently limited:
Other values might be used for, e.g. large asset install options,
unlockable products, Macintosh
products, Linux products, or product versions which are highly specific to
a particular graphics card. If you're doing anything like that,
for how to get a new platform code assigned.
Don't make up new platform codes without getting them assigned first!
- 1 = Win95
- 2 = Win95/Pentium III Only (First used by Heavy Gear 2)
Name is the name of the game, for displaying to the user in
a menu of all installed games.
is the executable file to run when launching from a third party shell. It is a
path relative to the anet.inf file. This should not contain spaces (under Win95, you can use the 8.3 alias
if the real filename contains spaces or punctuation). Using this line without 'Cmdline' is equivalent to
launching the game the way the user would launch it through windows.
is the commandline to pass to the executable when launching from a
third party shell.
This contains the following fields:
This section is used by register.exe.
(This info used to be the product.ini file.)
is the external, or displayed, version of the product,
as determined by marketing.
It is referred to by register.exe, the CS screen, and patch programs.
It can be an arbitrary unquoted string, e.g. Version=1.1a Beta
is a value assigned by QA. It was originally intended to
identify the product uniquely among all of its release forms.
This has to some extent been replaced by the
[Activenet] section's Version field.
It contains the following fields:
is a unique id string to identify the product. In the past, it was
a function of cross-production to determine this string. Currently, it is the
responsibility of the production team to invent a string and communicate it to
Bob Jensen or David Vonderhaar, who are in charge of handling the registration
information sent to our servers.
used to be a string for display purposes. For versions of register.exe after 23 Nov 1998,
this field is unnecessary. E-Reg looks to Name in the ActiveNet block instead.
is a ten-digit phone number used for dialup connections. For versions of register.exe after 23 Nov 1998,
this field is unnecessary, as dialup is no longer supported. This value of this field has remained
constant for a long while now. To contrast, information sent via webreg is posted to our servers at the url:
http://cgi.activision.com/cgi/webreg/webreg. This URL string is not in the
anet.inf. It is hardcoded into register.exe. You can browse to this URL, but
you won't see anything interesting there. It's only there to receive posted
information, not send.
was the full URL used when submitting registration information via http to
the game vendor.
Game Browser Registry Usage
Games that can be launched by third-party game networks should
have their installers create a key in the Registry under
containing a subkey named 'Cwd' containing the absolute path to the
directory the game is installed in.
This allows us to browse the installed launchable games on this system.
If we wanted to allow multiple versions of a game to be installed on the
same machine, this key should have a different name for each
The suggested registry key in that case would be
SessionType.Platform.Language, e.g. 1101.1.2 for Heavy Gear version 1.0 / Win95 / German, and patches should rename this registry key
if they change the sessionType. That is, the Heavy Gear 1.1 -> 1.2 patch
should change the registry key from 1101.1.2 to 1102.1.2,
because Heavy Gear 1.2's SessionType is 1102.
If we don't want to allow multiple versions of a game to be installed,
this key should be the unvarying unique key for the product. For example, this key could use the
same name as the subkey created under the Uninstall key (described below).
Uninstaller / Splash Screen Registry Usage
Product installers must create a subkey under
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/, such as
Note that this key identifier is yet another identifier for the product.
It has the following requirements: it cannot change from version to version
of the product, since it is hardcoded in the CD-ROM.
The values contained in this key are:
This is required by Win95.
It is the command line to be executed to uninstall the product, and
is of the form
and can also be used to determine the installed directory of the product,
since the uninstall logfile is always placed in
This is the full path to the product's main executable.
This is used by the CD-ROM splash screen to decide whether the product
is installed. If the file exists, the product is installed. However, the
installer uses information hardcoded into the CD-ROM to decide which files to run,
and how to run them, not this registry value.
This is required by Win95.
It is how the product is displayed in Add/Remove Programs in the control
panel. The installer sets this to be the same string added to the line 'Name' in
Other than these two registry keys, nothing else should be added by
installers and patching programs, if avoidable, as it is wise not to
rely on the registry to store any valuable information other than the
location of the installed product.
Here is the ANET.INF for an installation of a hypothetical German
version 1.3 (build 2.44) of Heavy Gear:
To have the installer install this anet.inf file, it would be recommended to put the following partial
anet.inf file in the same directory as the installer's setup.exe file (and have no other instances of the
anet.inf file on the CD-ROM):
and then have the installer install this file and have it add the following lines:
the values of these lines are best added by the installer at install time because:
At run time, the installer would also create the the Registry key
where 'UninstallKey' is the CD-ROM hardcoded subkey name also used under the Uninstall registry key described above.
The single string value "Cwd" in this key would be set to "C:\Programm Dateien\Activision\Heavy Gear",
or whatever the user chose as a target directory.
'Name' is localized text, which is also written to the Uninstall key in the registry.
'Platform' may depend on install choices made by the user.
'Language' is a language dependent number, as described earlier.
There is some duplication between the sections of this file.
Duplication should be reduced in the future, and
some of these fields be made obsolete, by changing the fields
used by some of our programs to match the fields used by other
There are many different versions of the human-readable product name.
There are many different versions of a unique key identifying the product.
Some must change from version to version; some must remain the same.
The notion of version number is under debate. Some people want it to be
a floating-point number; others want it to be two integers separate by
a period. This is not a trivial distinction, as it radically changes
how one compares version numbers.