Page 1 of 2

Official Halo 2 Vista Research Thread

Posted: Wed Jan 09, 2008 11:46 pm
by Grimdoomer
I know there are a cuple apps out there that can do some modding of the Halo 2 Vista maps, but I havent found a good one yet and decided why not make one. Im just gunna through some basic stuff down, even though with a few exceptions it is basicly the same as the Halo 2 Xbox map file. So far I got most of the header figured out, I avent made a app yet gunna eat dinner then do it. I will post source for it. Also gunna do the Index wich is kinda wierd, Tags, SID's, and Unicode layouts.

Header
Header Size = 2048 bytes

Code: Select all

    public struct MapHeader
    {
        public char[4] head;
        public int Version;
        public int MapSize;
        public byte[4] null;
        public int IndexOffset;
        public int MetaStart;
        public int MetaSize;
        public int IndexSize;
        public int Unkown;
        public char[30] BuildDate;
        public int MapType;// 0 = SP 1 = MP 2 = MM 3 = S 4 = SPS - int32
        public int Unknown;
        public int always1;
        public int SIDMetaTableOffset;
        public int SIDCount;
        public int SIDTableLength;
        public int SIDIndexOffset;
        public int SIDTable1Offset;
        public int Unknown;// SID related??
        public int Unknown;// Geometry/Cache related?? 
        public int Unknown;// Geometry/Cache related??
        public int Unknown;// Geometry/Cache related??
        public int Unknown;// Geometry/Cache related??
        public int Unknown;// Geometry/Cache related??
        public int Unknown;// Geometry/Cache related??
        public char[35] MapName;
        public char[80] MapScenario;
        public int ObjectCount;
        public int  FileTableOffset;
        public int Unknown;// FileTableSize?
        public int FileTableIndexOffset;
        public int IndexToSomething;
        public int Unknown;// 252 in MP null in all others
        public int Unknown;
        public int OffsetToSomething;
        public int Unknown;
        public char[4] Foot;
    }
Index Header
Header Length = 32

Code: Select all

    public struct IndexHeader
    {
        public int IndexHeaderLength;
        public int Const 120;
        public int Const1472;
        public int TagStart = IndexHeaderLength  + IndexOffset;
        public int MapMagic - (IndexOffset + 32); 
        public int ObjectCount;
        public int TagStart; 
        TagStart = TagStart + 8 
        SecondaryMapMagic = TagStart - (IndexOffset + IndexSize)
    }
Tag Struct

Code: Select all

    public struct H2Tag
    {
        public string TagPath;
        public string TagClass;
        public int MetaOffset;
        public int MetaSize;
        public int TagID;
    }

    public struct TagInfo
    {
        public char[4] TagClass;
        public int TagID;
        public int TagMetaOffser;
        public int TagMetaSize;
    }
Unicode

Code: Select all

public struct Unicode
    {
        public int Offset;
        public int ID;
    }
public enum Languages //only 5 for vista
        {
            English,
            German,
            French,
            Spanish,
            Itlian
        }
public struct UnicodeValuesinMatgMeta
    {
        //Start at Offset + 392
        public int StringCount;
        public int IndexSize;
        public int IndexOffset;
        public int FileTableOffset;
        public int Unknown;
        public long Null; //I think I did that right long = 8 bytes???
    }
String ID's

Code: Select all

//StringIDs now have a block of meta after the name, what that meta is/does I dont know
public struct SIDBlock
        {
            public int Offset;
            public string FirstName;
            public string SecondName;
            public byte Length;
            public short Index;
            public byte[] Meta;
        }
I almost have Bitmap raw except for the actaul decoding process. I will post that when it is complete.

Re: Official Halo 2 Vista Research Thread

Posted: Thu Jan 10, 2008 12:23 am
by XZodia
o wat fun XD

i get vista tomorrow so i can start doing h2v stuff :D

Re: Official Halo 2 Vista Research Thread

Posted: Thu Jan 10, 2008 12:38 am
by Grimdoomer
Nice to see someone interested.

UPDATE: I have a lot done on the app, I will post tomaro with teh source and index info, along with other stuff too.

Re: Official Halo 2 Vista Research Thread

Posted: Mon Jan 14, 2008 1:05 am
by Grimdoomer
Finaly cracked the sucka....

Re: Official Halo 2 Vista Research Thread

Posted: Mon Jan 14, 2008 3:14 am
by Aumaan Anubis
W00t, good job Grimdoomer. Too bad I don't have Vista. Good luck with Oracle/Cortana.

Official Halo 2 Vista Research Thread

Posted: Tue Jan 15, 2008 11:35 pm
by Grimdoomer
I hacked halo 2 vista first YAY :D :D

Official Halo 2 Vista Research Thread

Posted: Tue Jan 15, 2008 11:41 pm
by XZodia
memory editing isnt hacking...its training >_>

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 12:43 am
by Grimdoomer
This isn't a memery edit, I'll send you a patch if you dont belive me.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 1:09 am
by Supermodder911
Cool.
Good job on the Header info though some stuff is off on all structs you got...
Edit also you should realy Define it in C# cause it is alot easier to understand for people who don't program.
If you want I'll update it.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 1:13 am
by Aumaan Anubis
I think it's awesome how my AIM screen name is in the picture where someone first modded H2Vista :D

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 1:53 pm
by XZodia
Grimdoomer wrote:This isn't a memery edit, I'll send you a patch if you dont belive me.
in that case...awsome, me wants to helpz write dat appz

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 5:32 pm
by neodos
I did the same thing editing RAM with the hex editor lol i even showed to Xzodia but i am running h2v on windows xp.

You should make an app that mod the map which is in the RAM, once loaded you can edit no need to sign etc.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:16 pm
by Grimdoomer
Well I have a personal trainer, but then it wont stop people from going on live with it, where as map editing will only work with NO patches appyed. Last time I checked you cant go on live with out one of the patches.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:21 pm
by Supermodder911
See how better structured I made it for you, It is alot more help to all who need it.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:25 pm
by Grimdoomer
I still think it isent but w/e

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:34 pm
by Supermodder911
How do you define "isent"?
It is so much more structured and I think everyone can agree.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:37 pm
by Grimdoomer
when you program do you make thigs structua? like a struct for the header and index?

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:38 pm
by Supermodder911
No you use a class, Its just better programming because you can have constructor, methods, etc, etc.
If you don't want to take my advice I don't realy care.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:41 pm
by Grimdoomer
well I sent you my header class and you saw how I did that. I then link them all with a class called Map, so if I need something from the header I can just call it by Map.Header.xxxx

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 7:49 pm
by Supermodder911
But there was also some more horrible code in there too...

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 8:01 pm
by Grimdoomer
well out of all the apps I have made I programed them like that and worked flawlessly.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 8:19 pm
by Supermodder911
They work whch is good.
But using bad programming practices make you a nub.
So do you and I'll do me, I know what I'm doing if you don't want my help tis fine.

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 10:05 pm
by Prey
In C#, classes and structs have several very important differences. I advise you to research them thoroughly, before making a decision on which will work best in the given situation.. keeping in mind possible future situations as well of course..

Official Halo 2 Vista Research Thread

Posted: Wed Jan 16, 2008 11:41 pm
by Grimdoomer
Boy oh boy have I got finds to post :twisted:

Official Halo 2 Vista Research Thread

Posted: Thu Jan 17, 2008 3:32 am
by Aumaan Anubis
Then post them!