Page 1 of 1

Change a texture without affecting other maps

Posted: Sun Mar 13, 2005 12:38 pm
by Iron_Forge
Well, I'll use the warthog as the example since thats the one most people seem to be interested in...Open up coagulation in your favourite hex editor...Jump to offset 0x10. This is the offset to the index...You will want to write this number (0x023AE200) down...

Now get the offset to the warthog_standard.bitm with whatever means you find easiest...For my map, it's 0x024C9544...0x68 bytes into this meta, you should see the 6 LOD offsets, followed by their sizes...Should look something like:

Code: Select all

0036FF88 00E0FD88 008AFD88 FFFFFFFF FFFFFFFF FFFFFFFF 80550500 80550100 80550000 00000000 00000000 00000000
Now, you'll want to wipe out all the LOD's but the first, so change that to look like:

Code: Select all

0036FF88 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 80550500 00000000 00000000 00000000 00000000 00000000
We could copy the LOD's too, but it doesn't effect MP games that I've noticed...If you want to copy them too rather than eliminating them, just repeat this for them...

Now, the first offset (0x88FF3600) is a shared offset, we can tell cause the high nibble is 8...So we will subtract 0x80000000, leaving us with 0x08FF3600...Because that was an 8, we know this offset is in shared.map...If it were a 4, it would be in mainmenu.map, and a C the single_player_shared.map...

Now, we note the size of this bitmap is 0x00055580...All textures in Halo 2 are rounded up to 512, so we round this up to the nearest 512 (0x00055580 + (512 - (0x00055580 % 512)))...This gives us the new size of 0x00055600...

Before moving on, we'll replace the offset while we're here...Change the offset (0x88FF3600) with the point we will be injecting too, which is the current index offset (0x023AE200)...

So we go to offset 0x08FF3600 in shared.map, and select 0x00055600 bytes...Copying them, we return to coagulation, and jump to 0x023AE200...Paste the data here, inserting it...Now that the map has changed sizes, we'll need to fix a couple of values in the header...0x08 is the size of the map, and 0x10 is the offset to the index...Both need to be increased by the size of the injected data, since the map size has increased by this, and the index has been moved by the same value...

Now save your work, and run whatever tool you use to correct the encryptomatic signature (I use the TF6 tool, since it's quick, and I won't be making other changes to the map)...

Now the coagulation map has its own warthog_standard.bitm, and you can use your favourite editor to do to it as you please...

For those of you who are interested, this works due to the design of Halo 2 maps...Bitmaps happen to be just before the index..This is the purpose of the magic value(s), which are calculated based on some constants and the offset to the index (among some other values)...So if the index is moved, all reflexives are fixed, because magic will change corresponding to this change...This allows meta of a map to be built, without requiring knowledge of the size of the raw data...Thanks of course to TheSwampFox for verifying that this still works with Halo 2...

It should be noted that PPF's don't work correctly when maps change size (especially in this fashion)...So don't expect to be distributing this with many of your mods... ;oP

Posted: Wed Mar 16, 2005 11:51 am
by Iron_Forge
PPF works on a byte by byte comparison system (or maybe dword by dword, it's been awhile since I've needed to work with it, but the principle is the same)...

Given two files, it will go through every offset of both incrimentally, and record changes...So it compares the value at offset 0x0, then 0x4, then 0x8, and so on...When it gets to the added texture, it will be comparing the texture to the index that was in the file, which will of course be different, and it will record the texture...However, then it will get to the index in the injected file, and some point further along in the index in the other file, and also record these changes...Then it will reach end of file in the original (most PPF generators will just refuse to work with files of different sizes for this reason)...One's I've written will continue to just add all 'extra' data after that point as changed...So your texture PPF will end up containing nearly all of the meta from the map (which will be several factors larger than your injected texture)...

Then when applied, the PPF will over-write all the existing data that was changed (which is fine, it's goal is to make the old map look like the new one)...But this isn't the most efficient method, where only a few hundred KB were changed, and could have been injected had PPF supported some look-ahead changes...Though, this is well beyond the complexity that PPF was designed for...

Posted: Sun Jul 31, 2005 3:26 pm
by FooFighter
Why wouldent you just use BitmapAdder??? Also you could still make a patch. All you need tod is use serenity. This should be able to make a patch WITH your new skins aswell!

Posted: Mon Aug 01, 2005 7:23 am
by Snave
FooFighter wrote:Why wouldent you just use BitmapAdder??? Also you could still make a patch. All you need tod is use serenity. This should be able to make a patch WITH your new skins aswell!
This post was made before it was possible to inject bitmaps and make them internal, no doubt this post lead to the creation of the application you describe. Same applies for Serenity patches.

Posted: Thu Aug 11, 2005 7:09 am
by Aequitas
I was bored and was gonna be internalizing some textures so I made this thing to help out. It basically calculates all of the values you'd need to calculate if you were following this tutorial. I recommend it for the people that enjoy working with Hex Workshop every now and then, but don't necessarily enjoy repeatedly reverse edian-ing a thousand dwords and doing monotonous math. So if you're one of those people, like me, enjoy!

I've only used it once so far, but it worked fine... So, I assume it'll always work. Input the values as they are in the map, then everything should be outputed in the right format for you to paste it right into where it needs to go (goto/select block/in the map/etc).

Posted: Fri Aug 19, 2005 7:49 pm
by Agent ME
I also found an easier way too:
Agent ME wrote:After spending the last 4 hours trying, I finally figured out a way of very easily making an internal skin!

What you need:
Insolence
DotHalo

Step 1
In Insolence, open the level you want to put the skin in and another level. In the second level, you need to find a bitmap that is internal to that level and the same size or bigger than the bitmap you want to make internal.

*If you want to make the bitmap of a warthog internal, I recommend getting the creep_hull bitmap from oldmambasa*

Step 2
Drag over the bitmap to the level you want to make a skin internal.

Step 3
Close the other level.

Step 4
Rename the bitmap you dragged over to something descriptive. If you are planning to make the bitmap of a gold hog internal, try "objects\vehicles\warthog\bitmaps\warthog_gold".

Step 5
Inject the dds file you want into the tag you just renamed.

Step 6
Copy the meta offset of the new tag into the bitmap you want it to replace.

*For example, if you were internally skinning a gold hog, now copy the meta offset of "objects\vehicles\warthog\bitmaps\warthog_gold" to "objects\vehicles\warthog\bitmaps\warthog_standard".

Step 7
Resign the map, FTP to xbox, and take a look at the internal skinning!

Posted: Sun Apr 16, 2006 10:40 am
by xzodia
i thought id just point out this topic is really out of date and might want to be replaced with a nice simple one using a bitmap internaliser?

Posted: Fri Apr 21, 2006 5:48 am
by dazzajay
xzodia wrote:i thought id just point out this topic is really out of date and might want to be replaced with a nice simple one using a bitmap internaliser?
i agree, its really confusing for me.

Posted: Mon Sep 04, 2006 8:22 pm
by Juniorman030790
1337/|/355 Thank You! :D

im new

Posted: Sat Sep 30, 2006 6:59 pm
by madden156
im new on this site but is there a way to mod an xbox for free by downloading something from your computer straight to your xbox?if there is please tell me and give the website name. i will appreciate it.

Posted: Sun Oct 01, 2006 3:30 pm
by [users]MrBalll
No, it will cost you money depending on what your friends have. But, this is not the place to ask. Go to www.xbox-scene.com for xbox related questions.