Home
Halo 1
H1 tags
ui_widget_definition
...
The game uses a 640x480 UI space stretched to the player's resolution. The size of widgets within this space is usually 1:1 with their bitmap's size, making it hard to scale them down while retaining detail. You can work around it somewhat by using negative bounds values, but this doesn't help with some existing widget bitmaps that are heavily cropped by bounds already (like map previews, which use the same bitmaps from Xbox but are cropped for PC).
Field
Type
Comments
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
0x4
0x5
0x6
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
0x4
TagString
Rectangle2D
Field
Type
Comments
int16
int16
int16
int16
bitfield
Flag
Mask
Comments
0x1
0x2
0x4
0x8
0x10
0x20
0x40
0x80
0x100
0x200
0x400
0x800
0x1000
0x2000
0x4000
0x8000
uint32
uint32
TagDependency
: bitmap
Block
Field
Type
Comments
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xF
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2A
0x2B
0x2C
0x2D
0x2E
0x2F
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
Block
Field
Type
Comments
bitfield
Flag
Mask
Comments
0x1
0x2
0x4
0x8
0x10
0x20
0x40
0x80
0x100
0x200
0x400
0x800
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xF
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xF
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2A
0x2B
0x2C
0x2D
0x2E
0x2F
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
0x3B
0x3C
0x3D
0x3E
0x3F
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x5B
0x5C
0x5D
0x5E
0x5F
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x7B
0x7C
0x7D
0x7E
0x7F
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
0x88
0x89
0x8A
0x8B
0x8C
0x8D
0x8E
0x8F
0x90
0x91
0x92
0x93
0x94
0x95
0x96
0x97
0x98
0x99
0x9A
0x9B
0x9C
0x9D
0x9E
0x9F
0xA0
0xA1
0xA2
0xA3
0xA4
0xA5
0xA6
0xA7
0xA8
0xA9
0xAA
0xAB
0xAC
0xAD
0xAE
0xAF
0xB0
0xB1
0xB2
0xB3
0xB4
0xB5
0xB6
0xB7
0xB8
0xB9
0xBA
0xBB
0xBC
0xBD
TagDependency
: ui_widget_definition
TagDependency
: sound
TagString
Block
Field
Type
Comments
TagString
enum
Option
Value
Comments
0x0
0x1
0x2
0x3
TagDependency
: unicode_string_list
TagDependency
: font
ColorARGB
Field
Type
Comments
float
float
float
float
enum
Option
Value
Comments
0x0
0x1
0x2
bitfield
Flag
Mask
Comments
0x1
0x2
0x4
0x8
uint16
int16
int16
bitfield
Flag
Mask
Comments
0x1
0x2
0x4
0x8
TagDependency
: bitmap
TagDependency
: bitmap
Rectangle2D
?
Rectangle2D
?
TagDependency
: ui_widget_definition
Block
Block
Thanks to the following individuals for their research or contributions to this topic:
Jakey (Bounds scaling workaround)
Kavawuvi (Invader tag definitions)
MosesOfEgypt (Tag structure research)