Page 1 of 1

Gametypes (reference)

Posted: Wed Dec 31, 2008 12:10 am
by Sparky
Sorry, but I didn't quite finish this yet. My game got corrupted when I modified some values I shouldn't have. Anyway, I'll finish this soon. In the mean time, enjoy ;P

The following is an analysis of the hex data inside a gametype (blam.lst) file.

Gametype file analysis

Code: Select all

Change Name
	Gametype Name:
		00 - 2D
			Offset 00 is 00, and then each letter is interspersed with 00. For example:

			abcdefghijklmnopqrstuvw =
			00 61 00 62 00 63 00 64 00 65 00 66 00 67 00 68
			00 69 00 6A 00 6B 00 6C 00 6D 00 6E 00 6F 00 70
			00 71 00 72 00 73 00 74 00 75 00 76 00 77 (00 00)

Player Options
	Number of Lives:
		53
			Infinite -  00
			1 -         01
			3 -         03
			5 -         05
	Maximum Health:
		
			50% - 			
			100% - 		
			150% - 		
			200% - 		
			300% - 		
			400% - 		
	Shields:
		
			Yes - 		
			No - 		
	Respawn Time:
		
			Instant - 		
			5 seconds - 		
			10 seconds - 	
			15 seconds - 	
	Respawn Time Growth:
		
			None - 		
			5 seconds - 		
			10 seconds - 	
			15 seconds - 	
	Odd Man Out:
		
			No - 		
			Yes - 		
	Invisible Players:
		
			No - 		
			Yes - 		
	Suicide Penalty:
		
			None - 		
			5 seconds - 		
			10 seconds - 	
			15 seconds - 	

Item Options
			(Note: Several options use the value at 3B. We should consider this number
			as being divided into two parts: the tens place is "x" and the ones place is "y".
			For the Item Options, the first number refers to Starting Equipment and the
			second number refers to Infinite Grenades. So 23 gives you No/Generic and
			07 gives you Yes/Custom. See Indicator Options below for shared values.)
	Infinite Grenades:
		3B
			No -        x3
			Yes -       x7
	Weapon Set:
		5F
			Normal -                00
			Pistols -               01
			Rifles -                02
			Plasma Weapons -        03
			Sniper -                04
			No Sniping -            05
			Rocket Launchers -      06
			Shotguns -              07
			Short Range -           08
			Human -                 09
			Covenant -              0A
			Classic -               0B
			Heavy Weapons -         0C
	Starting Equipment:
		3B
			Custom -    0y
			Generic -   2y

Vehicle Options
	Respawn time:
		6A - 6B
			Never -             00 00
			30 seconds -        03 84
			60 seconds -        07 08
			90 seconds -        0A 8C
			2 minutes -         0E 10
			3 minutes -         15 18
			5 minutes -         23 28
	Vehicle Types:
		61 - 63
			Default -               02 40 20
			Warthogs -              02 40 22
			Ghosts -                02 40 23
			Scorpions -             02 40 24
			Rocket Warthogs -       02 40 25
			Banshees -              02 40 26
			Gun Turrets -           02 40 27
			Custom (0 0 0 0 0 0) -  00 00 08
			Custom (1 0 0 0 0 0) -  00 00 18
			Custom (2 0 0 0 0 0) -  00 00 28
			Custom (3 0 0 0 0 0) -  00 00 38
			Custom (4 0 0 0 0 0) -  00 00 48
			Custom (0 1 0 0 0 0) -  00 00 88
			Custom (0 2 0 0 0 0) -  00 01 08
			Custom (0 3 0 0 0 0) -  00 01 88
			Custom (0 4 0 0 0 0) -  00 02 08
			Custom (0 0 1 0 0 0) -  00 04 08
			Custom (0 0 2 0 0 0) -  00 08 08
			Custom (0 0 3 0 0 0) -  00 0C 08
			Custom (0 0 4 0 0 0) -  00 10 08
			Custom (0 0 0 1 0 0) -  00 20 08
			Custom (0 0 0 2 0 0) -  00 40 08
			Custom (0 0 0 3 0 0) -  00 60 08
			Custom (0 0 0 4 0 0) -  00 80 08
			Custom (0 0 0 0 1 0) -  01 00 08
			Custom (0 0 0 0 2 0) -  02 00 08
			Custom (0 0 0 0 3 0) -  03 00 08
			Custom (0 0 0 0 4 0) -  04 00 08
			Custom (0 0 0 0 0 1) -  08 00 08
			Custom (0 0 0 0 0 2) -  10 00 08
			Custom (0 0 0 0 0 3) -  18 00 08
			Custom (0 0 0 0 0 4) -  20 00 08
		(combination examples:)
			Custom (1 1 0 0 0 0) -  00 00 98
			Custom (2 2 0 0 0 0) -  00 01 28
			Custom (0 0 3 3 0 0) -  00 6C 08
			Custom (0 0 0 0 4 4) -  24 00 08
			Custom (1 1 1 1 1 1) -  09 24 98
			Custom (2 2 2 2 2 2) -  12 49 28
			Custom (3 3 3 3 3 3) -  1B 6D B8
			Custom (4 4 4 4 4 4) -  24 92 48

Indicator Options:
	Objectives Indicator:
		3F
			None -              02
			Motion Tracker -    00
			Nav Points -        01
	Other Players on Radar:
			(Note: Other Players on Radar shares value 3B with Infinite Grenades, 
			Starting Equipment, and Friend Indicators on Screen.)
		3B
			All -       (default value)
			Friends -   xy --- add 4 to x
			No -        xy --- subtract 1 from y
	Friend Indicators on Screen:
			(Note: Friend Indicators on Screen shares value 3B with Infinite Grenades, 
			Starting Equipment, and Other Players on Radar.)
		3B
			Yes -       (default value)
			No -        xy --- subtract 2 from y

Teamplay Options
	Friendly Fire:
		6C
			On -        01
			Off -       00
	Friendly Fire Penalty:
		72 - 73
			None -          00 00
			5 seconds -     00 96
			10 seconds -    01 2C
			15 seconds -    01 C2
	Auto Team Balance:
		74
			No -        00
			Yes -       01

---
So here is all the information. I cannot make a gametype-making application, but I'm sure someone else can. Unfortunately, there is more to it than simply modifying these values. I'm exploring the other changes necessary, but apparently, the Halo Demo application modifies the gametype file when it is opened. Everything after 9B is modified, but it looks like 1FC0 - 1FC3 and 1FD0 - 1FD3 have a significance. There are two values that can potentially screw up your entire Halo Demo application (multiplayer games) if modded incorrectly, and those are at 3A and 95, I believe. The original Slayer map contains 01 at those locations, but simply adding those values will corrupt your application.

Good luck.

-Sparky
December 31, 2008
---

Re: Gametypes (reference)

Posted: Wed Dec 31, 2008 12:13 am
by Løki
I actually get it :O
Nice

Re: Gametypes (reference)

Posted: Wed Dec 31, 2008 12:31 am
by Sparky
My hypothesis is that the values up until 9B are the actual gametype data values. This is proven by the fact that when you create a new gametype for the first time (using Taxi's gametype builder ui.map file), the data after 9B is all zeros until the very end.

However, once the gametype is loaded, a whole bunch of extra data is stuffed into those zero values after 9B. I think this is the game creating the usable data in the file. Thereafter, if you modify the info before 9B, the game will simply ignore it and jump to the usable data that it created when it used the gametype for the first time. It seems like the values just after or around 9B give you a summary of the file, or perhaps the creation time or some other variable index or account. These values always differ between gametypes. The pattern is not readily apparent, however.

P.S. Can anyone send me an extra copy of the Slayer gametype (folder 26) please? I know I've got an extra laying around here somewhere...

Re: Gametypes (reference)

Posted: Wed Dec 31, 2008 12:47 am
by Modzy
Sparky wrote:P.S. Can anyone send me an extra copy of the Slayer gametype (folder 26) please? I know I've got an extra laying around here somewhere...
Delete the folder and start a slayer game, it will come home.

Re: Gametypes (reference)

Posted: Wed Dec 31, 2008 5:20 am
by Fonzeh
Sparky I think it's time i teach you programming.


You have reached that level anyway.

Classes are open if you want to enroll.

Also

http://mac.clanhalo.net/mods/gametypes/ ... aylist.zip

Gametypes unmodified

Re: Gametypes (reference)

Posted: Wed Dec 31, 2008 10:59 pm
by Sparky
Fonzie wrote:Sparky I think it's time i teach you programming.


You have reached that level anyway.

Classes are open if you want to enroll.
Yay, sign me up.

Re: Gametypes (reference)

Posted: Fri Jan 02, 2009 12:58 pm
by nil
Sparky, are you aware of this? It may be a helpful resource or something.

http://www.freewebs.com/imiron/blamlstexplanation.htm

Re: Gametypes (reference)

Posted: Fri Jan 02, 2009 1:02 pm
by Fonzeh
nil wrote:Sparky, are you aware of this? It may be a helpful resource or something.

http://www.freewebs.com/imiron/blamlstexplanation.htm

I r mad at yew, yew did that out of mean-ness!

let him learn and experiment and dig into halo, thats how I and Mods Learned, no tuts or past research required!

Re: Gametypes (reference)

Posted: Fri Jan 02, 2009 9:46 pm
by Sparky
Modzy wrote:
Sparky wrote:P.S. Can anyone send me an extra copy of the Slayer gametype (folder 26) please? I know I've got an extra laying around here somewhere...
Delete the folder and start a slayer game, it will come home.
Sorry, but my application was messed up also. I had to redownload the application files (from mods.halodemo.net) - boy am I glad I made that backup! - and then I deleted my halo demo documents folder... and then it worked.

There was something screwy that I couldn't fix - even though I was only modding the slayer gametype file, inside the game, it showed both the slayer and CTF gametypes as -1, leading me to believe that I had ruined the application beyond repair, also... amazing how the gametype can do that... (crafty smile).

---

Thanks, nil, for the link. The term "checksum" eluded me when I wrote my hypothesis above, but that's what I meant. (And I figured that out all by myself :) .) The other details serve to verify my discoveries, but maybe, then, the gametype didn't work because of my checksum being innaccurate. Very interesting... this can then be applied to a Gametype-making application.

Re: Gametypes (reference)

Posted: Fri Jan 02, 2009 11:29 pm
by KeysOnFire
Just out of curiosity, why does the gametype have to be swapped in at the gametype screen (as in Switchers or the clanhalo method)? It'd be nice to somehow make it permanent for ease of testing mods with lots of vehicles spawned.

Re: Gametypes (reference)

Posted: Sat Jan 03, 2009 6:18 am
by seabeast
It replaces it each time you go to make a new server, or when you open Halo, I forget which. Anyway, we're technically not supposed to do that. Demo wasn't supposed have more gametypes than CTF or Slayer. Full was.