BLAM.LST files are found in "My Documents\My Games\Halo". Therein, default gametypes are in "\saved\playlists\default_playlist", each in a numbered folder, and custom gametypes are in "\savegames\", in folders named per custom gametype defined
These can be edited beyond the scope of Halo's custom gametype interface, with a hex editor like Hex Workshop. This allows hosts of Halo Trial to host more than Slayer and CTF, with custom vehicle sets. Time values can also be changed.
I recomment Hex Workshop, as it has the CRC-32 calculator needed to validate an edited BLAM.LST file
FILE STRUCTURE (the "-" should be read as "through", as in "start to end"):
Score limit (Caps for CTF, Laps for RACE, kills for Slayer)
0x5C
enum
Weapon set
0x60
Word
RED Vehicle settings
0x64
Word
BLUE Vehicle settings
0x68
Time
Vehicle Respawn time
0x6C
Bool
Friendly fire
0x70
Time
TK penalty
0x74
Bool
Team balance
0x78
Time
Time limit
0x7C
Game type specific parameters (ctf, koth, etc.)
0x94
16bit
Gametype ID, for those in the default_playlist folder. Set to 0000 for a custom game type (savegames folder)
0x96
16bit
unused
0x98
Word
CRC
*** CTF ***
*** Slayer ***
*** Oddball ***
0x7C
Bool
Random Start
0x80
enum
Speed with ball (0 Slow, 1 Normal, 2 Fast)
0x84
enum
Trait with ball (0 None, 1 Invisible, 2 Extra Damage, 3 Damage Resistant)
0x88
enum
Trait without ball (0 None, 1 Invisible, 2 Extra Damage, 3 Damage Resistant)
0x8C
enum
Oddball Game Type (1 Normal, 2 Reverse Tag, 3 Juggernaut)
0x90
Byte
Ball count
*** KOTH ***
7C-7F
124-127
Bool
Moving hill
*** Race ***
7C-7F
124-127
enum
Race Type (0 Normal, 1 any order, 2 Rally)
Enums:
5C-5F
92-95
enum
Weapon set
0
Normal
1
Pistols
2
Rifles
3
Plasma
4
Sniper
5
No sniping
6
Rockets
7
Shotguns
8
Shortrange
9
Human
10
convenant
11
Classic
12
Heavy
CRC-32 1's complement of the first 0x098 bytes in the file.
Highlight the file from 0x00 to 0x97 inclusive and have
HexEdit calculate the crc-32 with 1's complement. Remember
to reverse the byte order and insert it here.
Gametypes 1=CTF 2=Slayer 3=Oddball 4=KOTH 5=Race
Note: Vehicle settings ***
Using the following notation:
t turret
b banshee
r rocket hog
s scorpion
g ghost
h warthog
The bits are: 00000000 00tttbbb rrrsssgg ghhh1000
where the final 1000 denotes a custom vehicle set.
Then group it into bytes in reverse order:
ghhh 1000 rrrs ssgg 00tt tbbb 0000 0000
(reverse the bytes and not the bits) and plug it into
hex 60-63 and 64-67 using the hex editor. The maximum
number is 7 but only up to 4 is allowed and you only
get one banshee no matter how many you want (unless you hex edit the map). All max
is 48, 92, 24, 00 hex.
Switching Blam.lst files:
1. Start the game and go all the way to the point of picking CTF,
2. Minimize the halo game (use alt-tab)
3. Copy your desired blam.lst (rename a copy if necessary)
4. Go to "My Documents\My Games\Halo Trial\saved\playlists\default_playlist"
5. Go to 32 and paste your blam.lst.
6. Now maximize the halo game, pick CTF and start the game.
(You can also pick 26 and pick Slayer if you wish.)
You can pick any one of these:
Classic:
00 Slayer
01 Slayer Pro
02 Elimination
03 Phantoms
04 Endurance
05 Rockets
06 Snipers
07 Oddball
08 Reverse Tag
09 Accumulate
10 Juggernaut
11 Stalker
12 King
13 King Pro
14 Crazy King
15 Race
16 Rally
17 CTF
18 Invasion
19 Iron CTF
20 CTF Pro
21 Team Race
22 Team Rally
23 Team Ball
24 Team King
25 Team Slayer
Standard:
26 Slayer this is the trial version game
27 Oddball
28 Juggernaut
29 King
30 Crazy King
31 Race
32 CTF this is the trial version game
33 Assault
34 Team Slayer
35 Team Oddball
36 Team King
37 Team Race
BLAM.LST Replacement/Modification Tutorial
You can start with any of the blam.lst files supplied with Halo Trial.
(See GameList.txt) The only hex editor known to us which supplies the
needed check sum is Hex Workshop available at www.bpsoft.com.
Note that if the game keeps running slayer instead of what you made,
you probably did not get the check sum correct.
The road map:
GameList.txt gives the games by number and name.
BlamSymbolTable.txt gives the locations of most of the pertinent
variables in the blam.lst file.
The first entry is:
00-2f 00-47 Unicode String Name of gametype
This should be changed to either CTF or SLAYER.
Unicode means there are two bytes per character.
You can type characters by tabbing to the right hand
panel and you can zero out the remaining bytes by
tabbing to the left hand panel. For CTF you have:
0000000 4300 5400 4600 0000 0000 0000 0000 0000 C.T.F...........
Fill in 30 through 97 as desired and based on the road map in
BlamsymbolTable.txt.
The Checksum:
Highlight the file from 0000 to 0097 inclusive and have
hexedit calculate the crc-32 with 1's complement. Remember
to reverse the byte order and insert it here.
For example, if the hexeditor calculates: BBF1D1B1
you must type B1 D1 F1 BB starting at 98.
(0000090 0000 0000 0020 0000 B1D1 F1BB 0000 0000)
The rest of the file:
Zero the rest of the file by highlighting 9c thru the end of the file
and using the FILL function to change all of that to zero's.
Save the file and when you want to use it copy it as follows:
1. Start the game
2. Minimize the halo game (use alt-tab)
3. Copy your blam.lst (rename a copy if necessary)
4. Go to "My Documents\My Games\Halo Trial\saved\playlists\default_playlist"
5. Go to 32 and paste your blam.lst.
6. Now maximize the halo game, pick CTF and start the game.
(You can also pick 26 and pick Slayer if you wish.)
Note on Hexadecimal numbers:
Hexadecimal numbers are base 16 while regular numbers are base 10.
the digits are as follows with the equivalent base 10 value:
Hex/Decimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
This system is used since it gives a "simple" representation of
all of the possible bit combinations which can be stored in a
computer.