Halo 3 Retail Game Research
- JacksonCougAr
- Posts: 2333
- Joined: Fri Jan 12, 2007 1:56 pm
- Location: Canada
- Contact:
Sorry Anthony; I replied with the assumption that such a silly statement would not have been made in this thread. In short I didn't realize I was posting in this thread :p ...Anthony wrote:umm how about you guys get back on topic... and if you would like to continue your discussion of turtles you can go make a topic
I have a question, that could by my perspective be best answered by those here in this thread.
Is the Mauler 3P Model different or the same as the Mauler 1P Model in Halo 3?
I ask this here because you guys are currently the only ones who have access to this information in one form or another by my understanding.
- JacksonCougAr
- Posts: 2333
- Joined: Fri Jan 12, 2007 1:56 pm
- Location: Canada
- Contact:
-
- Posts: 149
- Joined: Sat Dec 16, 2006 11:16 am
- Contact:
Of course, this applies to all three halo games.fritz_da_monkey wrote:My guess is that they are different. My theory about the detail difference (or lack there of) is that the first person model has more of the geometry modeled and only gains detail from bumpmaps while the third person model is gaining geometry from bumpmaps.
-
- Posts: 149
- Joined: Sat Dec 16, 2006 11:16 am
- Contact:
-
- Posts: 50
- Joined: Mon Dec 27, 2004 7:02 am
Might of found something about raw data...
Download the spreadsheet and choose one of the three maps. I'm going to use salvation...again.
Okay, so open up salvation in a hex editor and also look at the Salvation worksheet in the spreadsheet. If you scroll all the way down...you should see the tag "levels\mutli\salvation\salvation". Look a little to the right for "RawIndex". This number is a zero-based integer. From what I've noticed, it's the count of every raw in the raw table that is NOT nulled. Salvation has 3871 (zero-indexed). Add one and it's one-indexed...
Use a program such as Engineer or Johnson to find the offset for the tag under the "play" class. Go to that offset in the hex editor your using and go over 0x30 bytes and there you see the 3872 (long)! So, I believe the following pointer has to do something with raws. Chunk sizes there I believe are 16 bytes.
Also, to support my reason...everything in the maps SHOULD be loaded dynamically all through the header. So the raws don't have a hard coded offset. The raw offset would have to be found through a pointer...which would have to be hiding in a tag. So, in order for the game to find a raw...it needs to have reference to the shared.map and it needs to know offsets to the raws (which I don't believe are actually in the raw table). So, looking at the picture below...that's the order of which the game should load the tags.
(Riverworld loaded in my program)
Draw, Play, Ugh, and Zone. Somewhere in those four tags the pointer to raw data should be found. "Draw" is only 4 bytes long (atleast that's what my [private] program says). Then the "Play" tag has references to "maps\mainmenu.map" and "maps\shared.map" in the second reflexive found in there.
So offset 0x30 of the play tag...
Code: Select all
http://e-digitalmarine.net/H3/RawTableExports_3maps.zip
Okay, so open up salvation in a hex editor and also look at the Salvation worksheet in the spreadsheet. If you scroll all the way down...you should see the tag "levels\mutli\salvation\salvation". Look a little to the right for "RawIndex". This number is a zero-based integer. From what I've noticed, it's the count of every raw in the raw table that is NOT nulled. Salvation has 3871 (zero-indexed). Add one and it's one-indexed...
Use a program such as Engineer or Johnson to find the offset for the tag under the "play" class. Go to that offset in the hex editor your using and go over 0x30 bytes and there you see the 3872 (long)! So, I believe the following pointer has to do something with raws. Chunk sizes there I believe are 16 bytes.
Also, to support my reason...everything in the maps SHOULD be loaded dynamically all through the header. So the raws don't have a hard coded offset. The raw offset would have to be found through a pointer...which would have to be hiding in a tag. So, in order for the game to find a raw...it needs to have reference to the shared.map and it needs to know offsets to the raws (which I don't believe are actually in the raw table). So, looking at the picture below...that's the order of which the game should load the tags.
(Riverworld loaded in my program)
Draw, Play, Ugh, and Zone. Somewhere in those four tags the pointer to raw data should be found. "Draw" is only 4 bytes long (atleast that's what my [private] program says). Then the "Play" tag has references to "maps\mainmenu.map" and "maps\shared.map" in the second reflexive found in there.
So offset 0x30 of the play tag...
Code: Select all
00 Location (If 0000 it's shared, 0CC4 = internal, unknown format)
02 Unk
04 Unk - Raw 1?
08 Unk - Raw 2?
12 Unk - Constant
- Aumaan Anubis
- Posts: 2938
- Joined: Fri Jun 30, 2006 1:01 pm
- Location: Aumaan
- Contact:
The question one would ask first would be, what kind of help do you need?Keablr wrote:I was wondering if anyone is willing to help me, I know this is not a place to ask for help, but I am willing to devote most of my time to help with the research. What I am asking is if anyone can give me a one on one. So I can understand more. If anyone can help thanks.
learning to edit hex?
learning to load a map file?
learning to program?
learning the format and layout of a Halo 3 map?
learning all of the above?
It is expected, and demanded.Tural wrote:MrMurder, we're going to hold you to that promise.
I would have to say all of the above. But I have an experience with hex editing and a bit in programing just for Halo apps.Aumaan Anubis wrote:The question one would ask first would be, what kind of help do you need?Keablr wrote:I was wondering if anyone is willing to help me, I know this is not a place to ask for help, but I am willing to devote most of my time to help with the research. What I am asking is if anyone can give me a one on one. So I can understand more. If anyone can help thanks.
learning to edit hex?
learning to load a map file?
learning to program?
learning the format and layout of a Halo 3 map?
learning all of the above?
- grimdoomer
- Posts: 1440
- Joined: Mon Oct 09, 2006 4:36 pm
I relly hate to spam this topic up but I would just like to say GRAET JOB you guys have gotten so close. Im working on an app to load H3 maps bit by bit just woundering if any one would like to pm me more about the map layeout?
AI Zones in MP | Ambiance | Gravemind Beta v1.1
Aumaan Anubis wrote:Grimdoomer. The first person ever to mod Halo 2 Vista.
- LuxuriousMeat
- Posts: 824
- Joined: Thu Nov 03, 2005 6:43 pm
- Location: zzzzzzzzzzzzzzzz
- Contact:
Pretty much all you need to load a map is in the 1st post.grimdoomer wrote:I relly hate to spam this topic up but I would just like to say GRAET JOB you guys have gotten so close. Im working on an app to load H3 maps bit by bit just woundering if any one would like to pm me more about the map layeout?
- Aumaan Anubis
- Posts: 2938
- Joined: Fri Jun 30, 2006 1:01 pm
- Location: Aumaan
- Contact:
By downloading Mango, is there anything those of us without hex, VB, C#, or halo 3 map file experience can do other than provide emotional support?LuxuriousMeat wrote:Pretty much all you need to load a map is in the 1st post.grimdoomer wrote:I relly hate to spam this topic up but I would just like to say GRAET JOB you guys have gotten so close. Im working on an app to load H3 maps bit by bit just woundering if any one would like to pm me more about the map layeout?
It is expected, and demanded.Tural wrote:MrMurder, we're going to hold you to that promise.
Heres a list of DXT Compression types used in the bitmaps. I found them listed in the string table. This will be useful once the raw pointers are actually found.
Code: Select all
public enum BitmapType
{
a8y8,
a8r8g8b8,
ctx1,
a8,
dxt5,
dxt1,
dxn_mono_alpha,
y8,
dxt5a_mono,
ay8,
dxt3a_mono,
dxt5a_alpha,
dxt5a,
dxt3,
dxt3a_alpha,
r5g6b5,
a4r4g4b4,
abgrfp16,
v8u8,
}
-
- Posts: 50
- Joined: Mon Dec 27, 2004 7:02 am
"...if there actually found." Don't worry, we'll find them soon.
After I write a story with somebody, or brainstorm, I'll be back on the topic of raw data. I have a few ideas of how to find it. Actually I believe I found the raw data, but I don't know any of the sizes or how to tell if it's a bitmap or mode or whatever. Still researching this area...
After I write a story with somebody, or brainstorm, I'll be back on the topic of raw data. I have a few ideas of how to find it. Actually I believe I found the raw data, but I don't know any of the sizes or how to tell if it's a bitmap or mode or whatever. Still researching this area...