Post: [Tutorial] How to properly recompress and inject without having a blackscreen !
09-24-2010, 07:43 AM #1
Gendjisan
A.k.a. Bushigan
(adsbygoogle = window.adsbygoogle || []).push({}); Hello, here is my way...

I have make video tut because i don't known good english for making tut in english...sorry Smile

Note : Don't forget to Tank's me if i help you :whistle:

1 : Decompress the patch_mp.ff

Video link : You must login or register to view this content.

2 : Exemple of extracting .gsc (_utility.gsc) into 0000b4a0.dat

Video link : You must login or register to view this content.

3 : Mod a .gsc file (_utility.gsc) and recompress it

Video link : You must login or register to view this content.

4 : Mod blocks and inject it to patch_mp.ff

Video link : You must login or register to view this content.

Originally posted by leukotic View Post
Alright, I worked on this written tut for the last few hours. So please, thank for my effort! Even though the videos are only a few mins long, it takes a while to describe and write this stuff out Happy


Take note I changed the first section about unpacking the patch (different from video). I figure this way it will help people understand whats happening better.

Also Gendjisan feel free to put this in the OP. Although a mention that I wrote it up would be nice Smile




Decompress the patch_mp.ff




1. Create a folder called "pack" on your desktop and place offzip.exe and packzip.exe into this folder.
2. Open up command prompt. Type in the following:

    cd desktop /pack


3. Get yourself a unmodified patch_mp.ff file and place it into the same folder as offzip.exe and packzip.exe.
4. Inside this same folder (the "pack" folder) make another folder named "stuff".
5. Go back to command prompt and type the following:

    offzip.exe -a -z -15 patch_mp.ff stuff 0


Hit enter.

6. You will now see 22 files in the folder "stuff". The patch is decompressed.






Exemple of extracting .gsc (_utility.gsc) into 0000b4a0.dat




1. Goto your stuff folder, and open up the file "0000b4a0.dat" in HxD.
2. Hit CTRL + E, now enter these numbers for the start and end offsets.

Start: 903F
End: C31E

Hit Ok.

3. Copy the selected area. (CTRL + C)
4. Press CTRL + N to open up a new HxD file. Then press CTRL + C to paste into that file.
5. Go ahead and save this file as "_utility_compressed.gsc" (without the quotes of course). And make sure to save it into the "stuff" folder.
6. Close HxD






Mod a .gsc file (_utility.gsc) and recompress it




1. Go back to your command prompt and type the following:

    offzip.exe -a -z -15 stuff/_utility_compressed.gsc stuff 0


Hit enter.

2. You will now see a file in the "stuff" folder named "00000002.dat". Open this up in notepad.
3. Delete the following:

    /*
saveModel()
{
info["model"] = self.model;
info["viewmodel"] = self getViewModel();
attachSize = self getAttachSize();
info["attach"] = [];

assert(info["viewmodel"] != ""); // No viewmodel was associated with the player's model

for(i = 0; i < attachSize; i++)
{
info["attach"][i]["model"] = self getAttachModelName(i);
info["attach"][i]["tag"] = self getAttachTagName(i);
info["attach"][i]["ignoreCollision"] = self getAttachIgnoreCollision(i);
}

return info;
}

loadModel(info)
{
self detachAll();
self setModel(info["model"]);
self setViewModel(info["viewmodel"]);

attachInfo = info["attach"];
attachSize = attachInfo.size;

for(i = 0; i < attachSize; i++)
self attach(attachInfo[i]["model"], attachInfo[i]["tag"], attachInfo[i]["ignoreCollision"]);
}
*/

/*
=============
///ScriptDocBegin
"Name: delayThread( <delay>, <function>, <arg1>, <arg2>, <arg3>, <arg4> )"
"Summary: Delaythread is cool! It saves you from having to write extra script for once off commands. Note you don’t have

to thread it off. Delaythread is that smart!"
"Module: Utility"
"MandatoryArg: <delay> : The delay before the function occurs"
"MandatoryArg: <delay> : The function to run."
"OptionalArg: <arg1> : parameter 1 to pass to the process"
"OptionalArg: <arg2> : parameter 2 to pass to the process"
"OptionalArg: <arg3> : parameter 3 to pass to the process"
"OptionalArg: <arg4> : parameter 4 to pass to the process"
"OptionalArg: <arg5> : parameter 5 to pass to the process"
"Example: delayThread( 3, ::flag_set, "player_can_rappel" );
"SPMP: both"
///ScriptDocEnd
=============
*/



4. Save the now modded file (CTRL + S) and close notepad.
5. In your "stuff" folder, create a new text document named "_utility_recomp_mod.gsc"
6. Go back to your command prompt and type the following:

    packzip.exe -o 0x00000002 -w -15 stuff/00000002.dat stuff/_utility_recomp_mod.gsc 


Press enter.

7. Open up "_utility_compressed.gsc" and "_utility_recomp_mod.gsc" into HxD
8. Goto the "_utility_recomp_mod.gsc" tab in HxD and enter the following at the begining of the file

78 DA

Go ahead and overwrite the two 00 00 that are there.

9. Scroll to the bottom of the "_utility_recomp_mod.gsc" file. Take note of where the last entry is (the last offset).

To figure this out simply click your mouse to the right of the last Hex entry. Then look at the bottom left of HxD. It will tell you what the offset is on the area you have clicked.

10. Once you find the offset, click on the "_utility_compressed.gsc" tab in Hxd. Now goto the top menu and click "search" then click "Goto". This is where you enter the offset you found on the "_utility_recomp_mod.gsc" file.

11. Click search and it will bring your cursor to the right place. Now highlight everything after that point (all the way down the file). Then copy it (CTRL + C)

12. Go back to the "_utility_recomp_mod.gsc" and scroll down the the bottom. After the last entry you paste all the data you just copied. You will see the additions are red in color.

13. Now go ahead and highlight all the red stuff you just pasted. But leave the four "FF FF FF FF" at the bottom (don't highlight that, just all the red above it).

14. After you have highlighted that stuff, goto the HxD menu click "Edit" then find the "Fill Selection" option. Click on it. Then hit Ok. This will fill the highlighted area in with 00's. Now go ahead and save this.

15. Close all the HxD tabs.





Mod blocks and inject it to patch_mp.ff




1. Open up the files "_utility_recomp_mod.gsc" and "0000b4a0.dat" into HxD.
2. Goto the "0000b4a0.dat"tab in Hxd and hit CTRL + E. Tye in the following for start and end offsets.

Start: 903f
End: c31e

Hit Ok

3. Now goto the "_utility_recomp_mod.gsc" tab and press CTRL + A to select all. Then hit CTRL + C to copy.
4. Go back to the "0000b4a0.dat" tab and click "Edit" in the menu bar then click "Paste Write"
5. Now you will see all the red from what you just pasted. Scroll to the top of all the red stuff. if you look just a few rows up from the red, you will see a line of "FF FF FF FF". Just to the left of these FF's are 4 letters/numbers (which is next to a 00 00).

6. Minimize HxD and goto your "stuff" folder. Right click on the "00000002.dat" file and hit "Properties". You are looking for a number, which is the "Size" number (just above "Size on disk"). Go ahead and copy this, or write down the number
.
7. Head on over to google and type the following

     XXXXX to hexadecimal


Where the XXXXX is, replace with the number you found for the size of the file. So for example, if the file size was 60,273 bytes you would type "60273 to hexadecimal" on google. Once you get the number which will look similar to this 0xEB71, write it down or remember this number (ignore the 0x part).

8. Go back to HxD. The 4 letters to the left of the "FF FF FF FF" is where you are going to enter the hexadecimal you converted on google. Just go ahead and overwrite the 4 letters/numbers that are there. The difference will be marked in red. Once you do this, go ahead and save the file and close HxD.

9. Goto your command prompt and type in the following:

{code]packzip.exe -o 0x0000b4a0 -w -15 stuff/0000b4a0.dat patch_mp.ff{/code]

Hit enter.

10. Now open up your newly packed patch_mp.ff file in HxD. Goto offset 1E (this is just a few rows down from the top).

You will see three sets of numbers/letters. For example mine is 03 8C 7A. Now scroll to the bottom if the file, at the very bottom you will see a 00 followed by a 01 (the last 4 offsets in the file). Click to the left of the 00 offset.

Now this offset should match the numbers above that you found.

For example my offset for the 00 is 38C7A which is what is located at the top of the file (mine was 03 8C 7A). Make sure this matches. If not, then change the letters/numbers at offset 1E to make it match.





That's it, if done correctly you should have a modded patch. Smile :y:
(adsbygoogle = window.adsbygoogle || []).push({});

The following 53 users say thank you to Gendjisan for this useful post:

1337UNO, airghisla, AlabamaHit, bigfishbad, Blackstorm, bootboys, brentos69, Carbon0x, Chris ^_^, chris01, clizzzzz, defwegwreh, DiJiTaLNiCk, eddydiep, Gandi, GNDOOOR_KILLER, gola, Grandad Trotter, IDontbreak, iPooPublic, jb2203, jubz-2k10, Karoolus, leukotic, makizar, Mateen, Mezzid, ModThatGame, Moose Tamer, Mr Phobik, mtuck317, NGUKHI, Nolzad0, NOTANOOB, OXx_Cut_xXO, PHgua, PS3LUV3R, rico4u2day2, riotmost, Ritztro, RJP101, Sarmas, Shoot12, Solid Snake, That Guy_, TheGodZeus, Traxx, Tzee, x_DaftVader_x, XJ18, YourWelcomeN00b, zarma08, ZoneTw0
09-25-2010, 08:30 AM #92
Bradman
Bounty hunter
Originally posted by leukotic View Post
Ok, here is the first part of my tutorial on what I did. Some of you may understand exactly what you need to do once you read this.

For this example, i used the mossy patch, but this could very well work just the same for a regular patch.



Extract patch_mp.ff (mossy patch) using offzip (no -1 function, unpack all 22 files).


Open files 0000b4a0.dat and 00014f51.dat in HxD

1. In 0000b4a0.dat select from offset D7D2 to the end of the file. Copy this selected area and make new file named mission_part1.gsc (paste what you copied into the new file)

You can simply use the CTRL + E function for this. For start offset type D7D2 and end just put 99999999


2. In 00014f51.dat select from start of file (00000000) to (00000628) copy this selected area and make new file named mission_part2.gsc (paste what you copied into the new file)


3. Now open both of those files in Hxd and combine them. Paste write all of mission_part2.gsc at the end of mission_part1.gsc.

Save as mission_final_comp.gsc.

Now you have a complete compressed mission.gsc file.

Then simply decompress using offzip (use -15). The decompressed file (00000002.dat) is your full mission.gsc file. This will also tell you the accurate size of the file for the checksum values in the 0000B4A0.dat file.


Basically after you do this, and edit your mission.gsc file, reverse the process to put it back together. Just make sure you do the checksum in the b4a0 file (that makes the size of the 00000002.dat file). And don't forget to check your patch_mp.ff checksum as well once you recompile.

when u say
Originally posted by another user
offzip (no -1 function, unpack all 22 files)
do u mean wen u do this command offzip.exe -a -z -15 patch_mp.ff stuff 0 u change -15 to -1 and can u give me like the exact code to put in for
Originally posted by another user
simply decompress using offzip (use -15)
sorry but if u could do this it would really help im kinda new to this and i need some more clarification
09-25-2010, 08:42 AM #93
leukotic
Climbing up the ladder
Originally posted by Bradman View Post
when u say do u mean wen u do this command offzip.exe -a -z -15 patch_mp.ff stuff 0 u change -15 to -1 and can u give me like the exact code to put in for sorry but if u could do this it would really help im kinda new to this and i need some more clarification


No worries man, I was there too. Smile

When I say no -1, I mean when you use offzip don't use the -1 feature (this puts all the files into one file, you don't want this)

Exact command for extracting a patch properly would be

    offzip.exe -a -z -15 patch_mp.ff stuff 0


The WRONG way would be as follows

    offzip.exe -a -1 -z -15 patch_mp.ff stuff 0






As for your second question, when I say use -15, that is exactly how it sounds. When using 0ffzip or packzip, use -15 as the windowBits.

So for example, when packzipping one of the files, to use -15 you would do this.

    packzip.exe -o 0x0000b4a0 -w -15 stuff/0000b4a0.dat patch_mp.ff


Note this is only a example. But you see the -15 there? That is what I mean Smile

The reason i specify -15 is because you have all these windowBits to use

    15 | 14 |13 | 12 | 11 | 10 | 9 | 8 | -8 | -9 | -10 | -11 | -12 | -13 | -14 | -15 |



Check the help files for offzip and packzip, it really helped me understand how the program works.

Just enter like so:

offzip.exe help
packzip.exe help




Hope this helps! Smile
09-25-2010, 09:41 AM #94
EliteMossy
TheDigitalBoard.com
Sorry quoted wrong person

Why use the -1 option? thats a major fail
09-25-2010, 10:02 AM #95
Successfully edited Mossy's patch (no black screen), but once the map's loading (playing game).. i'm getting a ''Script compile error, bad token''
09-25-2010, 10:08 AM #96
leukotic
Climbing up the ladder
Alright, a little more info from my findings tonight. Apparently using my method to re-compile doesn't work on a fresh patch_mp.ff file (meaning you start and end with the original patch_mp.ff file). However it does work on the Mossy patch.

So I did a little tweaking and now have a working baseline patch you guys can mess with. Essentially it is a Mossy patch, but I put a fresh missions.gsc file in there (so no mods whatsoever) and re-complied it. This is confirmed working on my PS3, so it should work for the rest of you granted you follow my tut without any deviation.

Here is the patch.

You must login or register to view this content.

Before any of you try modding it, first run it on your PS3 to confirm it is working. If it does work, then proceed to extract the missions.gsc file using my method on the previous page of this thread, edit it to your liking, and then re-compile also using my method.


With this patch, you should be able to edit the missions.gsc without BSOD. Before going big and doing some massive edits, first try some small stuff to make sure you have the proper methods down for re-compiling. Then experiment to your hearts content! Smile

BTW I may have another tutorial about how to properly stick the missions.gsc file back into the b4a0 and 14f51 files. If so I will post it tomorrow night. Until then I think I have given plenty of info to those that know what they are doing to figure this out. :y:

---------- Post added at 03:08 AM ---------- Previous post was at 03:05 AM ----------

Originally posted by Aaken View Post
Successfully edited Mossy's patch (no black screen), but once the map's loading (playing game).. i'm getting a ''Script compile error, bad token''


You probably aren't modding the entire missions.gsc file. You need to extract it from the b4a0 and 14f51 files and merge it into one. Do your edits, then stick it back into it's respective files (b4a0 and 14f51) in the same places you took it out from.

Also don't forget the b4a0 checksum! It needs to match the size of the 00000002.dat file via hexadecimal.

The following 2 users say thank you to leukotic for this useful post:

defwegwreh, Werpo
09-25-2010, 10:26 AM #97
DiJiTaLNiCk
BaLLiN' STaTuS
Originally posted by Aaken View Post
Successfully edited Mossy's patch (no black screen), but once the map's loading (playing game).. i'm getting a ''Script compile error, bad token''


Please post or Pm me how u did it?? not a full tut but just basics
09-25-2010, 12:20 PM #98
Default Avatar
Gizmo
Guest
Originally posted by leukotic View Post


You probably aren't modding the entire missions.gsc file. You need to extract it from the b4a0 and 14f51 files and merge it into one. Do your edits, then stick it back into it's respective files (b4a0 and 14f51) in the same places you took it out from.

Also don't forget the b4a0 checksum! It needs to match the size of the 00000002.dat file via hexadecimal.


I can only get up to the part where drag and drop 00000002.dat and _utility_compressed
When I type in the command i get an error saying that -o is a wrong command line argument?
Any ideas what im doing wrong? Ive tried both Ui and CMD versions.

Dont worry, i sorted it Smile
09-25-2010, 12:36 PM #99
little_legz
SleepinIsCheatin
Originally posted by leukotic View Post
Alright, a little more info from my findings tonight. Apparently using my method to re-compile doesn't work on a fresh patch_mp.ff file (meaning you start and end with the original patch_mp.ff file). However it does work on the Mossy patch.

So I did a little tweaking and now have a working baseline patch you guys can mess with. Essentially it is a Mossy patch, but I put a fresh missions.gsc file in there (so no mods whatsoever) and re-complied it. This is confirmed working on my PS3, so it should work for the rest of you granted you follow my tut without any deviation.

Here is the patch.

You must login or register to view this content.

Before any of you try modding it, first run it on your PS3 to confirm it is working. If it does work, then proceed to extract the missions.gsc file using my method on the previous page of this thread, edit it to your liking, and then re-compile also using my method.


With this patch, you should be able to edit the missions.gsc without BSOD. Before going big and doing some massive edits, first try some small stuff to make sure you have the proper methods down for re-compiling. Then experiment to your hearts content! Smile

BTW I may have another tutorial about how to properly stick the missions.gsc file back into the b4a0 and 14f51 files. If so I will post it tomorrow night. Until then I think I have given plenty of info to those that know what they are doing to figure this out. :y:

---------- Post added at 03:08 AM ---------- Previous post was at 03:05 AM ----------



You probably aren't modding the entire missions.gsc file. You need to extract it from the b4a0 and 14f51 files and merge it into one. Do your edits, then stick it back into it's respective files (b4a0 and 14f51) in the same places you took it out from.

Also don't forget the b4a0 checksum! It needs to match the size of the 00000002.dat file via hexadecimal.


You are a beast. Thanks for your help man should have my jailbreak with me in like 2 days time Happy +85 rep Smile
09-25-2010, 05:07 PM #100
ixfor1234
Gym leader
ok but how do u transfer the patch.ff to ps3

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo