Huge Community Tag Project - Please read...

Discuss HaloCE modding with the HEK tools here. For help, go to the Help Desk forum above.
MadCactus





Posts: 29
Joined: Mon Jun 07, 2004 1:59 pm
Location: Colorado

Huge Community Tag Project - Please read...

Post by MadCactus »

Okay. Something's been on everybody's wish lists and I think it's time to make it happen; a Halo/HaloCE tag converter. This would mean the ability to edit Halo with guerilla and import tags from Halo into HaloCE. Basically, it would mean limitless power.

So, here is what my research has found as far as the differences between Halo and HaloCE tags:

-There is a header that spans bytes 0x0-0x3F that is in every HaloCE tag and is nonexistant in normal Halo tags. This tag is very easy to reproduce.

-Halo tags are in a reverse-endian format that resets every 4 bytes. For example:

If a chunk from a HaloCE tag looked like this:
0F 13 00 04 | 66 54 A0 2B | 88 90 0A FF | FF FF 00 00

It would look like this in a Halo tag:
04 00 13 0F | 2B A0 54 66 | FF 0A 90 88 | 00 00 FF FF

So, that oughta' get the ball rolling. There are various other observations I have made as far as the difference between Halo and HaloCE tags, but I don't know enough about them to post just yet.

Post your observations right now and we will be able to successfully come up with enough data and find the pattern that seperates these two tag formats. Then, ultimate Halo power will be in our hands!
gamble





Posts: 378
Joined: Thu May 13, 2004 5:15 pm
Location: somewhere over the rainbow/not in kansas

Post by gamble »

Basically, it would mean limitless power
........yup i can see where you're coming from. With these tags we could end world hunger and conquer inter-galatic travel.


What would we use this for? What tags in Halo do we need in CE?
caboose[hk]





Posts: 203
Joined: Mon May 03, 2004 8:29 pm
Location: Where am I?

Post by caboose[hk] »

Gamble wrote: What would we use this for? What tags in Halo do we need in CE?
The pelican and wraith. Thats all i can think of.
Trkle_II





Posts: 109
Joined: Sat Apr 03, 2004 8:21 am

Post by Trkle_II »

the pelican was in the streets if earth city.
caboose[hk]





Posts: 203
Joined: Mon May 03, 2004 8:29 pm
Location: Where am I?

Post by caboose[hk] »

a very crappy version of the pelican. It sounded like a warthog!
MadCactus





Posts: 29
Joined: Mon Jun 07, 2004 1:59 pm
Location: Colorado

Post by MadCactus »

Listen, aside from ending world hunger, a tag converter could give us endless templates to use in our HaloCE maps. It would take the guesswork out of many things, allowing us to see how some of the better AI is written, how some of the scripts from SP are written, and allow us to put anything from SP into our maps.

Now wouldn't that be cool; have a platoon of respawning grunts running around using all of the various AI modules we couldn't use before. I, for one, am sick of having the crummy AI I build stand around my levels.

Of course, it would work the other way, also. (HaloCE -> Halo). Guerilla is, in my opinion, a program that gives you full control of every aspect of Halo and provides limitless possibilties for modders like you and I. If we could import the tags created with Guerilla into SP Halo, we could create an entire new story mode, one with new levels, skies, sounds, characters, weapons, vehicles... and that would be WAY cool!

So, come on, guys. This is no tougher than any other task. In fact, the similarities between the two tag formats are so great, this may be the most rewarding task yet. It could take me, alone, weeks or even months to find the missing key that seperates these two formats. But, if we all work together, the answer may become clear faster than I ever thought possible. And then modding Halo would no longer be a science of guesswork. No, modding Halo would be an ART!
Superfly





Posts: 424
Joined: Tue Nov 04, 2003 11:14 am
Contact:

Post by Superfly »

hmm, that makes it sounds very promising.

Ill help in anyway I can MadCactus.
MadCactus





Posts: 29
Joined: Mon Jun 07, 2004 1:59 pm
Location: Colorado

Post by MadCactus »

Followers: 1
YAY!

Ok...

I've done some more studies between the two types of tags and come up with some more results. All of the testing was done between assault rifle.item_collection and assault rifle.itmc from Danger Canyon.

When converting a HaloCE tag to a normal Halo tag, you basically follow these steps:

1. Get rid of the header from offsets 0x0 to 0x3F
2. Reverse the order of every 4 bytes (or quadrabytes as I call them).
3. Convert all dependency pointers (see below for instructions)
4. Convert all reflexive pointers (process not known)
5. Something else?

As you can see, I basically know what needs to be done to convert HaloCE tags to Halo tags. Now it is just a matter of doing it.

I have, however, figured out how the dependency pointers in HaloCE tags work. It goes a little somethin' like this:

assault rifle.item_collection 0xC8-0x113:

Image

assault rifle.itmc.meta 0x88-0xAF:

Image

As you can see, the HaloCE dependency pointer is much more elaborate. The Halo dependency pointer uses one quadrabyte at offset 0x8C that references back to an earlier section of the map file. The HaloCE dependency pointer has that section nulled out as FF FF FF FF, but uses a reference to a file 0x20 bytes below it at offset 0xF0. If you translate those 0x23 bytes into ASCII, you get :

weapons\assault rifle\assault rifle

The quadrabyte just before FF FF FF FF at offset 0xC8 tells the computer how many bytes the link to the file will be (in this case, 0x23 bytes long).

So, in order to convert the HaloCE dependency tag into regular Halo format you:

1. Change the quadrabyte just before the nulled pointer to 00 00 00 00 (Here it's at offset 0xC8).
2. 0x20 bytes down, get rid of the entire string that links to another tag file (here it's at offset 0xF0-0x113)
3. Change the nulled pointer to something valid. (This may not be necessary if HMT 3.5 can do this automatically when you compile a map)
MadCactus





Posts: 29
Joined: Mon Jun 07, 2004 1:59 pm
Location: Colorado

Post by MadCactus »

YIPEE! MORE FINDINGS!
P.S. Sorry if those images aren't working.

Well, I lied. This really isn't a finding. It's just I can't figure out the format change of these reflexive pointers. For instance, in Halo if you want to figure out what a reflexive is pointing to, you do a reverse endian and then subtract the magic. In HaloCE, I have no freekin' clue. Here is an example of what I'm talking about:

In assault rifle.itmc.meta one of the reflexives is 88 30 78 40 (40 79 30 88 if you reverse it) which points to something in the map file. The equivelent reflexive in assault rifle.item_collection is 88 CA 19 00, which may point to something if you subtract a special HaloCE magic. Another example of this is in the same two files where the Halo tag has 46 21 46 40 (40 46 21 46 if you reverse it). The HaloCE equivilent is 98 26 1A 00.

It would be great if others looked into to this with me to find some kind of pattern.
TheMissingLink117





Posts: 86
Joined: Sat May 22, 2004 9:06 pm

Post by TheMissingLink117 »

You could use this to turn good old halo pc mods into seperate halo ce maps, like the SP-MP Conversions.
bubbinska





Posts: 37
Joined: Mon Jan 19, 2004 1:14 pm

Post by bubbinska »

if i knew anything about hex at all i'd help dude! i'm on your side in every possible way, and i hope this gets done!

if we can find the complete process for tag conversion, we could make a program to convert to/from haloce/halopc, edit tags, create new ones, batch extract halo ce maps, and heaps more :)
iSk`Bubba
HoboRockAssassin





Posts: 732
Joined: Sun Jan 11, 2004 3:34 pm

Post by HoboRockAssassin »

ya im with him^^
id help in every way i could but i know nothing about hex and all that crap
i remember when all we could do was hex edit, i couldnt even swap projectiles without f ing something up
Relentless





Posts: 32
Joined: Mon Feb 16, 2004 11:28 am

Post by Relentless »

ill be glad to help the effort, although i do not mod much.

i do know visual basic pretty well, and can probably make a program for this if we figure it out.

im going to re-read the stuff already stated and then see if i can find some other conversion things.
Dark Cloud




Wordewatician 500

Posts: 958
Joined: Thu Jan 29, 2004 1:39 pm

Post by Dark Cloud »

Well, I've been modding since way before half of these people here probably joined Halomods, so I'm willing to give it a shot! I'm not all that experienced with hex though, but, like I said, I still mod and use the HEK A LOT. I would absolutely love this to be completed.

You've got 3 supporters now, buddy. If you have AIM, please let me know. :D
Dark Cloud




Wordewatician 500

Posts: 958
Joined: Thu Jan 29, 2004 1:39 pm

Post by Dark Cloud »

Sorry for the double post... I've got a few things here that I need to find out in order to understand this. I haven't touched a hex editor in months. XP


Ok, where do you get that 0x20 bytes down from the nulled out part of the .itemcollection file? If I'm correct, 0x20 is 35, and 35 bytes starting from the first byte of 00 after the last of the FF nulls ends up a few bytes before the dependency for the assualt rifle (the 0x23 bytes long one.). I see no 0x20 in that whole thing... Can you please explain how you got this?
Icetiger





Posts: 211
Joined: Thu Nov 20, 2003 4:55 pm
Contact:

Post by Icetiger »

Even though ive been around halo modding since the hex days, I cant really help you much in that category. But I can throw in my two cents.

Something important to remember here is that in Halo PC the maps all reference the same files for bitmaps, sound, etc.

While on the other hand CE maps have everything inside of them and thus only reference areas inside themselves.
http://icetig.com
Go there for my halo creations and much more!
User avatar
kornman00




ONI New Age

Posts: 146
Joined: Fri Dec 12, 2003 6:30 pm
Contact:

Post by kornman00 »

Not to flame but...

*cough* copy cats *cough*

Scripts are integrated into the scenario tag. They are in a COMPILED form, ie you can't edit it unless you have the code to the compiler and reverse its code to uncompile it. My new HMT will convert tags into source tags for editing in the HEK, and alot more. Its not gonna be some lame [censored] that does one or 2 things. I already have it planned out and some of it implemented. Some tags (ie bitmaps and possibably sounds) are in a different format, so they wouldn't work by doing a direct port. You would have to add them to the bitmaps or sound map file. BTW, my new HMT will also allow you to do basiclly what Guerilla allows you to do. And no more shitty XML plugins, full DLLs for complete control
HoboRockAssassin





Posts: 732
Joined: Sun Jan 11, 2004 3:34 pm

Post by HoboRockAssassin »

y you gotta be fucking negative about this
isnt it better that more than one person is working on it
and is it really necessary to post the exact same thing here and at gb forums??
User avatar
kornman00




ONI New Age

Posts: 146
Joined: Fri Dec 12, 2003 6:30 pm
Contact:

Post by kornman00 »

HoboRockAssassin wrote:y you gotta be **** negative about this
isnt it better that more than one person is working on it
and is it really necessary to post the exact same thing here and at gb forums??
How about stfu scott? Its not the same thing. And some people don't go to the gbx forums.
HoboRockAssassin





Posts: 732
Joined: Sun Jan 11, 2004 3:34 pm

Post by HoboRockAssassin »

ok your both trying to acheive the same thing
even tho you have different views
and why the fuck are you calling me scott
thats not my name retard
Post Reply