Map magic and solving pointers

15 posts in this topic
2 hours ago, KasperZERO said:

The number I'm getting [what you had as 0x4048cdbc] is much smaller for me, to the effect of 0x08934f8f .. if I subtract that magic number I'm in negative .. is there a way you could explain how you found that magic number also? Where is this memory address? [not the cache file ...]

The "magic number" isn't any part of the map file. Rather, you take the memory address of where the tag data is loaded then subtract the cache file offset to this address. You can then subtract this magic number from pointers to convert to file offsets.


To find the number, go to the tag data header, find where rncs (72 6E 63 73), then subtract that from the offset to the beginning of the tag data header, then subtract that value from the pointer at the very beginning of the header (Halo is 32-bit, so pointers are 32-bit unsigned integers), then subtract the offset from the result of that.


Here's a screen shot of a decompressed damnation.map file (Xbox)




Highlighted is a pointer that points to the tag array. The tag array typically starts with the scenario tag (it doesn't have to but it usually does). The scenario tag, if unprotected, is scnr as a tag class (stored as "rncs" because it's little endian). rncs is 0x24 bytes from the beginning of the tag data header, thus you take 0x803A6024 and subtract 0x24 from that, and you get 0x803A6000. Subtract the offset (0x26D7800) from this value and you get your magic number, 0x7DCCE800.

KasperZERO likes this

Share this post

Link to post
Share on other sites


21 hours ago, KasperZERO said:

49 6c6f7665 686578 3b29




It's not the hex that bothers me, it's the hacky nature of modding stuff this way. I suppose there's no decent alternative available than to completely learn the HEK and then convert back from CE to Xbox format.


Best of luck


Share this post

Link to post
Share on other sites
On 7/6/2017 at 3:36 PM, NeX said:

Best of luck


I finished my map by manually adding the extra reference to the shotgun at the top of the weapons pallet over some null data, and then manually adjusting the pointer address to the new location.


Map worked out great :D Thank you 002, I actually prefer to do it with hex too, it feels more like hacking to get right into the binary data. ( I kinda wish I could post it somewhere but Xbox modding seems kaput :/ )

WaeV, NeX and Kavawuvi like this

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.