Page 1 of 9

Harbinger

Posted: Sun Nov 25, 2007 3:56 pm
by Altimit01
Harbinger

Image

Early Beta footage

What It Is:
This program uses an automated process to fully convert most CE maps to playable PC/Mac maps. It is designed to let more people enjoy custom maps, allow greater flexibility in the modding community and simplify a tedious process. It is not designed for ripping and as such will not convert protected maps and includes an option to protect maps once they are converted (although I'm sure HEK+ does it better). I ask all users who download this program to not use it for any purpose that goes against the map makers wishes.

Use:
Keep the application in the same folder as data.map and index.txt. Make sure the maps folder you're using contains only mapfiles (others will be ignored but still it's a good idea) and only clean original maps. Select your "Target Map" as the CE map you wish to convert. Select "Maps Folder" as your clean maps folder containing original maps. If you wish to protect the tag names check the "Protect Map" check box. Select the type of map you wish to convert to (SP, MP or UI) and then select which map the CE target will be converted to. Find Ones will only replace indexed tags (see "How It Works" below) and works for most MP maps. Find All will replace indexed tags as well as snd! and bitm tags that in the CE map would refer to the CE sounds.map and bitmaps.map respectively. If you have "corrupted" sounds and bitmaps after using Find Ones, I suggest trying Find All. Find All is recommended for UI and SP maps. Once all the options are set, hit "Convert" and you will be prompted where to save the converted map. The program will then do the entire conversion internally. Altering the maps folder or target map during the process may cause it to fail. Additionally some maps simply do not work after being converted (unsure why) and for Mac users, some maps do not work on PowerPC processors. If you wish to cancel the conversion, simply close the window and/or quit the program. No damage will be done to either the target map or your maps folder. Once the program has finished converting, it will alert you with a popup indicating how many seconds have elapsed during the conversion process.

How It Works:
CE maps are very similar to PC maps with a few exceptions. Obviously the header has different values in certain sections. Next, there are internalized bitmaps and sounds which act exactly like a normal bitm or snd! file except that the data which would normally be in bitmaps.map or sounds.map is in the raw section after the bsp(s) and before the tag index. There's a value somewhere in those metas that tells halo to search within the map it self instead of bitmaps.map or sounds.map which still works on PC. The only significant difference is in the tag index. Normally in the index tags have the form:

Code: Select all

string tagclass1 //4 characters
string tagclass2 //4 characters
string tagclass3 //4 characters
uint32 tag_id
int32 nameoffset //need to be modified by magic
int32 metaoffset //needs to be modified by magic
int32 zero1
int32 zero2
However, for some CE tags that already exist with the stock MP maps are of this form:

Code: Select all

string tagclass1 //4 characters
string tagclass2 //4 characters
string tagclass3 //4 characters
uint32 tag_id
int32 nameoffset //need to be modified by magic
int32 indexvalue //should NOT be modified by magic
int32 CE_flag //this value is 1 for indexed tags
int32 zero2
The methods to find these tags relied on finding the value of 1 where normally there would be a zero which is where the term "Find Ones" comes from. These tags are called either indexed tags, reused tags or simple "1's". The indexvalue of these tags does not change for bitm, ustr, hmt and similar metas but does change for snd! files. (Currently I do not know the indexing scheme used for snd! indexed files.) The index value is unique to each meta of a given tag class, but is not exclusive to that tag class. (So you could have a bitm with indexvalue = 1 and a ustr with indexvalue = 1.) Meta Editors that do not expect this format will often have problems as they try to read from nonexistent offsets. The meta data for these tags exists no where in the map and as best I can tell, the CE game itself reads these out of bitmaps.map, sounds.map and loc.map (which contains the ustr, hmt and the like tags) supplying the header data for snd! and bitm tags itself.

By adding the tag data for these tags using the original PC maps and updating the tag index, the maps become playable. The last obstacle to conversion is that an indexed tag for CE called ustr ui\shell\main_menu\settings_select\multiplayer_setup\playlist_edit\slayer_edit\var_kill_penalty does not exist within the PC map files. Thanks to Conure, data.map included in the download includes a useable version of the tag which is faster to inject than hunting down all of the dependencies and nulling them out. That covers the general method of converting CE maps to PC. Find One's and replace them with the tag data from original maps. As mentioned in "Use", some bitm and snd! tags aren't indexed but use the CE bitmaps.map and sounds.map files. Find all uses a list (index.txt) of all the tags in the CE bitmaps.map and sounds.map files and compares that list to all of the tags in the target map and replaces those with PC versions of the tags as well as any "1's" in order to successfully convert UI and SP maps. Harbinger uses a special class to store tag data in RAM removing the clutter of batch extracting to folders and then importing from those folders.

Notes:
Will not convert protected maps.
Does convert SP maps and multiple BSP maps (biohalo and hugeass are confirmed to work).
Some maps convert but are not playable. The reasons are unknown and there are likely several.
Has the option to protect tags once the map is converted.
PowerPC Macs are unable to play some conversions.
Find All is used to convert maps which have bitmaps and/or sounds that are not internalized or indexed and will appear corrupted in PC.
Simple to use and no clutter.

Credits:
Altimit01 - code
Sword - CE->PC process information, testing
>Shadow< - testing
Cloud - testing
Conure - lots of research, help, testing and for compiling data.map and index.txt without which this program wouldn't be nearly as good

Posted: Sun Nov 25, 2007 4:08 pm
by bcnipod
OMG THIS IS AWESOME O_O

Posted: Sun Nov 25, 2007 4:13 pm
by CtrlAltDestroy
Nifty.

Posted: Sun Nov 25, 2007 4:14 pm
by Cryticfarm
Pwnage.

Posted: Sun Nov 25, 2007 4:18 pm
by {TP}Spartan
sweetnezz

Posted: Sun Nov 25, 2007 4:23 pm
by MoDFox
Yay! Nice work, Converted Hugeass in 264s but it appears to be intel only.

Posted: Sun Nov 25, 2007 4:24 pm
by UntalkativeBunny
love it! must be stickied :)

Posted: Sun Nov 25, 2007 4:29 pm
by bcnipod
OMG i just did few conversions, they all worked on my PPC. ^_^

Altimit01 you are GOD. there are no questions about it you are God my friend. I am a convert to your new ways. i used to do the old fashion way, but now, this is amazing. you have really broken down the borders of what macs can do for Halo modding. also i have a question. I am in charge of making Pepsi's Redux available for macs. i have tried everything that can be done, for PC to Mac conversions, they don't work would this make it work if i put it in and tried it?

Posted: Sun Nov 25, 2007 4:33 pm
by Pepsi
EPIC MOMENT.

Posted: Sun Nov 25, 2007 4:36 pm
by Cryticfarm
Now I can finally go, Its just another conversion... Lol jks.
Lawl, just tried to convert my ui, I almost got it
http://img159.imageshack.us/img159/3379/dsfbb5.png
http://img248.imageshack.us/img248/7513/sdfsdfgy5.png

Posted: Sun Nov 25, 2007 4:38 pm
by Tyler777
bravo a macro

Posted: Sun Nov 25, 2007 4:39 pm
by bcnipod
lol those look better than redux. no j/k.

i just converted the multiplayer map "New_Mombasa_Classic" i will not post it since i do not have the permission of the author. i just did it to see if it would work on my PPC and it does.

Posted: Sun Nov 25, 2007 4:40 pm
by Altimit01
bcnipod wrote:... i have tried everything that can be done, for PC to Mac conversions, they don't work would this make it work if i put it in and tried it?
I don't think this would make it work any differently than if you opened the maps in HHK and saved. All it really does is replace the tags that make them only work on CE with tags that make them work on PC. But then of course I don't really understand why some PC mods don't work on the UB version of Halo:Mac on intel computers. Sorry.

@Cryticfarm: did you try "Find All"?

@Tyler:
Hmm...sounds like you wish you could've done this
tyler777 wrote:fuck it i cant understand a word your saying someone eltse can make the got damn app errrrrrrrr i aint got the paitence




i wanted it to auto scan all map files in a selected map folder so it would prety much automate the prossess. so that the add from list you select list then select map folder then select folder you want the recursive tags saved

and i wanted the find ones to automaticly make the txt file with everything listed in it thats needed to convert the map

Posted: Sun Nov 25, 2007 4:45 pm
by MoDFox
Yay! It works great for me, just tested it on Isolation http://hce.halomaps.org/index.cfm?pg=3&fid=3295 and it worked!
Took me about 173 seconds I believe.

Image:
http://img519.imageshack.us/img519/3208/picture1sb5.png

Thanks!

Posted: Sun Nov 25, 2007 4:47 pm
by DeadHamster
This is great. In 602 seconds I converted Hyrule Field to PC. When I download maps they never work on CE, including this one, but now it looks like I can make them work on PC instead. Thank you very much.

Posted: Sun Nov 25, 2007 4:50 pm
by Tyler777
i ahve to say alt it was my idea to do but i never thougth it possible but i left halo modding i am now in CE so good luck all expect some H3 Maps Soon i might ocnvert since alt humbly added protection to this

Posted: Sun Nov 25, 2007 4:53 pm
by Patrickh
Moderators please read this post! I think it should now be against the rules for anybody but the mapmaker to post their CE maps as PC conversions. It would severely cut down on all of the noobs that will inevitably start rapidly converting every map they get their hands on and flooding the downloads section. Anybody with me on that?

Posted: Sun Nov 25, 2007 4:54 pm
by Cryticfarm
Me

Posted: Sun Nov 25, 2007 4:58 pm
by DECOY
Awesome.
As long as their are no objections from Altimit01, I will also host the app in the archive over Halopc.net in case this post gets taken down....or something.

Posted: Sun Nov 25, 2007 5:02 pm
by Altimit01
Of course. I don't mind at all.