Page 1 of 1

Xbox, Halo 2:Advnaced-Adding Chunks To Reflexives

Posted: Tue Oct 25, 2005 10:53 am
by Brok3n Halo
Adding more chunks (in a way that won't mess up the map)

By TheTyckoMan

Things you will need:
h2x
a hex editor, hex workshop is good, you can get a free 30 trial at http://www.bpsoft.com/downloads/index.html
wordpad or notepad (both come with windows)

Now to the good stuff

For this tutorial I'm gonna use ascension. What we’re gonna do is add chunks to the item collections reflexive in the scnr.

First make a copy of ascension, so you'll have "ascension.map" and "copy of ascension.map"

open the open "copy of ascension.map" in h2x.

go to scnr and extract (not recursively) the scnr (in this case “scenarios\multi\ascension\ascension").

go to the folder that you extracted them to, then copy both the files.

rename the files to some random thing like but you have to 1:name them the same thing (before the [tagtype]), 2: keep the last part starting at [.
so here is what I’ll name it:
“Copy of ascension[scnr].meta” is renamed to “tutorial[scnr].meta”;
“Copy of ascension[scnr].meta.data” is renamed to “tutorial[scnr].meta.data”

now comes the fun part, open up the ascension[scnr].meta.data file
and find Reflexive|288|9600|33|scnr-scenarios\multi\ascension\ascension|32136

now I’ll explain what each of the sections mean (between each |)

reflexive is what type it is (as opposed to dependency)
288 is the decimal offset of the reflexive
9600(also dec) is the offset (from the start of the tag) that the reflexive points to (aka translated offset)
33 is the chunk count
scnr-scenarios\multi\ascension\ascension is the tag that the offset (that the reflexive points to)is in.
32136 is the size of that tag.

okay, now open up ascension[scnr].meta in a hex editor (I use hexworkshop)

go to the translated offset of the reflexive (9600) an easy way of doing this is to go to edit>goto (make sure that dec and “from begining of file” are selected)

now there are 33 chunks and each chunk (in this reflexive) has a size of 144, so multiply 33 by 144 which equals 4752, so select that much.
To do this go to edit>select block then make sure dec and size of block are selected and put in 4752, which will select all the item collection chunks.

STOP THAT TUTORIAL!
btw how you find chunk sizes is take the reflexive's translated offset (in this case 9600) and subtract
it from the next reflexive's translated offset (not the next one in line, but go through all the reflexives and find the next TRANSLATED OFFSET)
in this case it's Reflexive|296|14352|1|scnr-scenarios\multi\ascension\ascension|32136
so 14652-9600=4752 now we take this and divide by the chunk count (33 in this case) and we get our
chunk size which is 144 because 4752/33=144
RESTART TUTORIAL

copy them and then open tutorial[scnr].meta, go to edit>select all, then paste over everything in there (so you’ll just have have the collection stuff) then save
you can close ascension[scnr].meta now, keep open tutorial[scnr].meta

now when we were testing, halo 2 didn’t like have those chunk counts over 100 so we’ll create only 99.


go to the start of tutorial[scnr].meta (offset 0) then select a block of 144 (so you’ll get the first chunk) copy it, then go to the end of the file.

at the bottom right you will see offset:(then an offset), sel:(the amount of stuff you have selected) and the size of the file (in bytes)

paste (at the end) the chunk we copied, keep pasting until the size of the file is equal to 14256 (99*144) when that’s done save.

now you can close tutorial[scnr].meta.

open the data file (tutorial[scnr].meta.data) in notepad or wordpad.

delete everything after TagType|scnr so you end up with:

Filename|scenarios\multi\ascension\ascension
TagType|scnr

rename scenarios\multi\ascension\ascension to something else, I’ll name it adding\chunks\tutorial\file so I’ll get

Filename|adding\chunks\tutorial\file
TagType|scnr

save and get out

go to h2x, open up copy of ascension.map

go to the scnr and select scenarios\multi\ascension\ascension,
click inject, select tutorial[scnr].meta and press open, after it says done click save changes (to save the name)

now extract the file again (yes this sounds stupid but do it)
put it in a new folder with nothing else in it.

open up the original ascension (ascension.map)
go to tools>add to map then select the new folder

when it gets done extract the scnr (scenarios\multi\ascension\ascension) and open the .data file for it (ascension[scnr].meta.data


find Reflexive|288|9600|33|scnr-scenarios\multi\ascension\ascension|32136
now change it so it’ll point to the added chunks

change the offset (in our new tag it is 0)
Reflexive|288|0|33|scnr-scenarios\multi\ascension\ascension|32136

change the chunk count (we have 99 chunks so change it to 99)

Reflexive|288|0|99|scnr-scenarios\multi\ascension\ascension|32136

change it to point to the new tag

Reflexive|288|0|99|scnr-adding\chunks\tutorial\file|32136

change the size of the tag the reflexive’s translated offset is in, so make it 14256 (the size of our added chunks tag)

Reflexive|288|0|99|scnr-adding\chunks\tutorial\file|14256

then save and inject it over the original scnr (scenarios\multi\ascension\ascension)

fix the encryption (in h2x it’s sign map) and test it out (to make sure it doesn't lock) then you can use it to do whatever.


edit:because pokecancer didn't release the latest version of h2x (back in june) the version I was using had more features (a few) then the released h2x, so I asked him and he said to go ahead and release this one :) so use this version when you follow the tutorial. :wink:

Posted: Tue Oct 25, 2005 11:00 am
by dec1234
Whoa Nice :shock:

im gonna try this, and does this work for all, e.g. collections,machs,bipeds and so on?

Posted: Tue Oct 25, 2005 11:07 am
by TheTyckoMan
dec1234 wrote:Whoa Nice :shock:

im gonna try this, and does this work for all, e.g. collections,machs,bipeds and so on?
you have to know the reflexive's chunk size, but yeah. It is easier (on small tags) though to just add the new stuff onto the end of the tag and add it back in(to the map), but with scnr that wouldn't really work with out rebuilding.

Posted: Tue Oct 25, 2005 11:56 am
by Zigen
thetyckoman wrote:
dec1234 wrote:Whoa Nice :shock:

im gonna try this, and does this work for all, e.g. collections,machs,bipeds and so on?
you have to know the reflexive's chunk size, but yeah. It is easier (on small tags) though to just add the new stuff onto the end of the tag and add it back in(to the map), but with scnr that wouldn't really work with out rebuilding.
awesome

Posted: Tue Oct 25, 2005 1:01 pm
by TheTyckoMan
btw I kinda wrote this tutorial to go along with zenon's active scenery tutorial :wink:

Posted: Tue Oct 25, 2005 1:49 pm
by shade45
Great tutorial :D but when im adding a chunk from another map i cant get the string ids for the added chunks to work, any suggestions?

Posted: Tue Oct 25, 2005 2:11 pm
by TheTyckoMan
shade45 wrote:Great tutorial :D but when im adding a chunk from another map i cant get the string ids for the added chunks to work, any suggestions?
I included steps for this (and anything else that changes from map to map) in the tutorial, just didn't say anything about why you do it.
TheTyckoMan wrote:click inject, select tutorial[scnr].meta and press open, after it says done click save changes (to save the name)

now extract the file again (yes this sounds stupid but do it)
put it in a new folder with nothing else in it.
that makes all the dependencies/string id's/reflexives put into the data file and therefore able to go from map to map :wink:

Posted: Tue Oct 25, 2005 2:23 pm
by shade45
nice thanks :D

Posted: Tue Oct 25, 2005 2:31 pm
by TheTyckoMan
oops forgot to say the most important thing...you have to inject into the same map, if you don't then it defeats the purpose.....once you inject and then extract out of the same map you'll be fine :)

Posted: Tue Oct 25, 2005 3:19 pm
by looknbarrel
Nice tutorial now people should know how to add chunks to a map without chunk adder. Also tycko I need to talk to you about an effe plugin and I can't talk to xbox7887 because he isnt on so if you would help me with the plugin because it keeps freezing and i got the reflexives and sizes listed correctly. Only freezes for some tags not all

Hmm now that I think more can you rebuild an extracted BSP meta with a weather dependency then add it to the map with Darkmatter and then relink the new BSP in sncr to get weather and add a reflexive for weather to sncr and add the weather itself and then link it in sncr so you can get weather in maps without it, without rebuilding?

Posted: Tue Oct 25, 2005 4:17 pm
by casuela
looknbarrel wrote:Hmm now that I think more can you rebuild an extracted BSP meta with a weather dependency then add it to the map with Darkmatter and then relink the new BSP in sncr to get weather and add a reflexive for weather to sncr and add the weather itself and then link it in sncr so you can get weather in maps without it, without rebuilding?
I think you just have a headache to all non-super1337 people.

Posted: Tue Oct 25, 2005 5:31 pm
by TheTyckoMan
looknbarrel wrote:Nice tutorial now people should know how to add chunks to a map without chunk adder. Also tycko I need to talk to you about an effe plugin and I can't talk to xbox7887 because he isnt on so if you would help me with the plugin because it keeps freezing and i got the reflexives and sizes listed correctly. Only freezes for some tags not all

Hmm now that I think more can you rebuild an extracted BSP meta with a weather dependency then add it to the map with Darkmatter and then relink the new BSP in sncr to get weather and add a reflexive for weather to sncr and add the weather itself and then link it in sncr so you can get weather in maps without it, without rebuilding?
maybe.......and probably why your plugin is locking up is because of interflexives, not sure though (what app are you writing the plugin for?)

Posted: Tue Oct 25, 2005 6:24 pm
by shade45
looknbarrel wrote: Hmm now that I think more can you rebuild an extracted BSP meta with a weather dependency then add it to the map with Darkmatter and then relink the new BSP in sncr to get weather and add a reflexive for weather to sncr and add the weather itself and then link it in sncr so you can get weather in maps without it, without rebuilding?
xbox7887 correct me if im wrong but you shouwed me your work on adding weather to a non weather map, isnt this what u did?

Posted: Tue Oct 25, 2005 6:55 pm
by looknbarrel
thetyckoman wrote:maybe.......and probably why your plugin is locking up is because of interflexives, not sure though (what app are you writing the plugin for?)
well its in XML format