Halo Mods
Register
Advertisement
under construction - needs formatting
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"):
(hex) (deci.) TYPE DESCRIPTION
0x00 Unicode String Name of gametype
0x30 Word Gametype
0x34 Bool Team play
0x38 flags Parameters
0x3C Enum Objectives indicator (0 Motion tracker, 1 Navpoints, 2 None)
0x40 Bool Odd man out
0x44 Time Respawn time growth
0x48 Time Respawn time
0x4C Time Suicide Penalty
0x50 Word No. of lives
0x58 Word 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.

Advertisement