upgrades.dat Format

Cost: Minerals

Offset0x0000
Length122 bytes (2 bytes / Upgrade)
DescriptionCost in Minerals to research this Upgrade.
ValuesInteger value betwen 0 and 65535.

Cost Factor: Minerals

Offset0x007A
Length122 bytes (2 bytes / Upgrade)
DescriptionFactor cost in Minerals to research this Upgrade.
ValuesInteger value between 0 and 65535.

Cost: Vespene Gas

Offset0x00F4
Length122 bytes (2 bytes / Upgrade)
DescriptionCost in Vespene Gas required to research this Upgrade.
ValuesInteger value between 0 and 65535.

Cost Factor: Vespene Gas

Offset0x016E
LengthFactor Cost in Vespene Gas to research this Upgrade.
Description
ValuesInteger value between 0 and 65535.

Cost: Research Time

Offset0x01E8
Length122 bytes (2 bytes / Upgrade)
DescriptionTime required to research this Upgrade.
ValuesInteger value between 0 and 65535.

Cost Factor: Research Time

Offset0x0262
Length122 bytes (2 bytes / Upgrade)
DescriptionFactor Cost in Time required to research this Upgrade.
ValuesInteger value between 0 and 65535.

Unknown

Offset0x02DC
Length122 bytes (2 bytes / Upgrade)
DescriptionUnknown, probably a set of flags for each upgrade. All upgrades have 0xFFFF.
ValuesInteger value between 0 and 65535.

Icon

Offset0x0356
Length122 bytes (2 bytes / Upgrade)
DescriptionIndex of an icon in cmdicons.grp
ValuesInteger value between 0 and the last index of cmdicons.grp

Label

Offset0x03D0
Length122 bytes (2 bytes / Upgrade)
DescriptionIndex of label in rez\stat_txt.tbl
ValuesInteger value between 0 and the last index of rez\stat_txt.tbl

Race

Offset0x044A
Length61 bytes (1 byte / Upgrade)
DescriptionDetermines which races can research this upgrade.
Bits
0x00Zerg
0x01Terran
0x02Protoss
0x03All

Repeat

Offset0x0487
Length61 bytes (1 byte / Upgrade)
DescriptionThe number of times this upgrade can be researched.
ValuesInteger value between 0 and 255.

Brood War Flag

Offset0x04C4
Length61 bytes (1 byte / Upgrade)
DescriptionBoolean flag which determines whether this upgrade is restricted to Brood War.
Bits
0x00false (SC and BW)
0x01true (BW only)