PDA

View Full Version : Modding a gametype?



Inferno
May 18th, 2009, 07:25 PM
I need to make a 1 Flag CTF with 3 minutes defend time and 3 minute time limit. Can someone hex the game type or something to make this work?

supersniper
May 18th, 2009, 07:31 PM
http://hce.halomaps.org/index.cfm?fid=345

Inferno
May 18th, 2009, 08:05 PM
:D

supersniper
May 18th, 2009, 10:23 PM
Gotta love Zion :D

Cortexian
May 18th, 2009, 10:23 PM
I wish that app had all of the game type settings available to modify...

Skarma
May 19th, 2009, 03:53 AM
Source: http://www.halo-trial.com/. Hexing the gametype members are easy, calculating the crc is another story. All the info you need to create an app for it.

BLAM.LST

FILE STRUCTURE (the "-" should be read as "through"):
-----------------------------------------------
(hex) (deci.) TYPE DESCRIPTION
-----------------------------------------------
00-2f 00-47 Unicode String Name of gametype (must be CTF or Slayer)
30-33 48-51 Word Gametype
1=CTF
2=Slayer
3=Oddball
4=KOTH
5=Race
34-37 52-55 Word Team play 0=Off; 1=On
38-3b 56-59 Word Parameters (binary)
bit 0=Other players on radar ON
bit 1=Friend indicators on screen ON
bit 2=Infinite grenades ON
bit 3=Shields 0=ON; 1=OFF
bit 4=Invisible players ON
bit 5=Starting Equipment 0=Generic, 1=Custom ***
bit 6=Only friends on Radar ON
bit 7=Indicator for Ball games
3c-3f 60-63 Word Objectives indicator
0=Motion tracker
1=Navpoints
2=None
40-43 64-67 Word Odd man out
0=No
1=Yes
44-47 68-71 Word Respawn time growth
0=off
150=5 secs
300=10 secs
450=15 secs
48-4b 72-75 Word Respawntime
0=Instant
150=5 secs
300=10 sec
450=15 secs
4c-4f 76-79 Word Suicide Penalty
0=Instant
150=5 secs
300=10 sec
450=15 secs
50-53 80-83 Word No. of lives
0=Unlimited
1=1 life
3=3 lives
5=5 lives
54-57 84-87 Word Unknown - used for something - ***
58-5b 88-91 Word Score limit (Captures for CTF, Laps for RACE, kills for Slayer,
minutes for King, any value you want can be specified.
5c-5f 92-95 Word 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
60-63 96-99 Word RED Vehicle settings \ See footnote
64-67 100-103 Word BLUE Vehicle settings / for settings.
68-6b 104-107 Word Vehicle Respawn time
6c-6f 108-111 Word Friendly fire
0=Off
1=On
70-73 112-115 Word TK penalty
0=off
150=5 secs
300=10 secs
450=15 secs
74-77 116-119 Word Team balance
0=off
1=on
78-7b 120-123 Word Time limit
0=No timelimit
18000=10 min
27000=15 min
36000=20 min
45000=25 min
54000=30 min
81000=45 min
*** ball games \/***
7c-7f 124-127 Word Moving hill 0=off; 1=on (KOH)
Racetype 0=Normal; 1=any order; 2=Rally (Race)
Random start 0=No; 1=Yes (Oddball)
80 128 Byte Team scoring 0=minimum; 1=Maximum; 2=Sum (Race)
Ballspeed 0=Slow; 1=Normal; 2=Fast (Oddball)
81 129 Byte Time limit for Assault (0=two flags)
82-83 130-131 16bit ???
84-87 132-135 Word Trait with ball 0=None; 1=Invisible;
2=Extra damage; 3=Damage Resistent
88-8b 136-139 Word Trait without ball 0=None; 1=Invisible;
2=Extra damage; 3=Damage Resistent
8c-8f 140-143 Word Balltype 0=Normal; 1=Reverse Tag; 2=Juggernaut
90-93 144-147 Word Ballcount Spawn
*** ball games/\ ***

94-95 148-149 16bit 01nn - nn is the (hex)number of the game in the game list
0000 - for a custom game type.
96-97 150-151 16bit Unused - ????

98-9b 152-155 Word "CRC-32 1's complement of the first 0x098 bytes in the file."
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.

*** 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. All max
is 48, 92, 24, 00 hex.

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 (http://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.

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