Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
• ### Announcements

• #### Signatures03/04/2016

Hi everyone. It appears that the update to the new forum has affected the format of the majority of signatures (adding extra spaces, changing sizes etc.). Due to this, could everyone please check their own signature, ensuring that it complies with the site rules. See the http://www.emergency-planet.com/tos.html/ or http://www.emergency-planet.com/topic/16848-acceptable-signature-sizes/ for more information.  We'll give it a few weeks to give enough time to edit signatures, after that the unnecessarily large signatures will simply be removed. Thanks for your cooperation. Regards, EMP Staff.

# File Packing/Unpacking Utility

## Recommended Posts

Hey everyone! Yesterday I actually sat down and worked on a project that's been sitting on the back burner for close to a year. With a little help from Oleg, the creator of ZModeler, I was able to figure out the algorithm used to compress ("Pack") Emergengy 4 files (Thanks Oleg!!). So being a bit on the bored side yesterday, I decided to stretch my programming legs a bit and create a utility that would allow you to Pack/Unpack various file types en masse. After a few hours of pounding on the key boards and losing a few hairs, I've managed to create this very useful utility.

What does it do exactly?
Well, this utility makes packing/unpacking files in emergency 4 much faster. Previously, in order to pack or unpack a file, you had to launch the editor and unpack each file individually. It was a time consuming process. Additionally, Emergency 4 supports the compression ("packing") of .dds texture files and .script files. To pack these files in the editor, you would have to change their extension to .v3o, then use the editor to pack them, and then change the extension from .v3o to whatever type of file it was to begin with. This was an even more annoying process.

This utility allows you to pack or unpack individual files and entire folder and subfolders. What used to take forever, now takes a matter of seconds.

What is Packing and what is it good for?
Packing a file takes the contents of a file and compresses it using a compression algorithm to produce a file which is smaller and uses less space on your hard drive. The Los Angeles Mod v2.1, when completely unpacked, takes up approximately 400MB of space on disk. When completely packed (all .v3o, .dds, and .script packed), the mod only consumes about 310MB which is about a 24% reduction in file size. This test is not to say all uses will result in a space savings of 24%, however significant savings can be seen especially in modification that use high resolution models, textures, or are script heavy.

So Packing files saves me disk space. What's the trade off?
The trade off is definitely in initial mod loading time. If you start your computer and launch an Emergency 4 Modification, you will notice that it always takes up to twice as long to load a mod the first time. With a fully packed Los Angeles Mod, it took approximately 22% longer to load the fully packed version than it did to load the fully unpacked version (an average of 3 trials was used). The time it took to load Freeplay on a fully packed Los Angeles Mod v2.1 Mod was also effected and found to load 32% slower than a fully unpacked version.

So packing my files saves disk space but also makes my game load slower...lame!

Okay, enough talk and stats and junk...how do I use the darn thing?

I've made a whole video on how to use it.

Click to view Demo/Tutorial

This is a command line utility! It must be run through the command prompt!

How to pack individual files:

> em4packer -pack "C:\path\to\file.v3o" "C:\path\to\file2.dds" ...-or-> em4packer -pack file1.v3o myscript.script "My Model 1.v3o" ...

*Spaces are considered separators between arguments. If your file name or path to your file name has ANY SPACES in it, you need to surround it with double quotes ".

To unpack an individual file, the command is the same as above except for the changing of the "-pack" for a "-unpack".

> em4packer -unpack "C:\path\to\file.v3o" "C:\path\to\file2.dds" ...-or-> em4packer -unpack file1.v3o myscript.script "My Model 1.v3o" ...

To pack ALL selected files within a folder (including all sub-folders) the commands are a bit different.

> em4packer -dir -pack -files=v3o,dds,script "C:\path\to\em4\mods\mymod"-or-> em4packer -dir -unpack -files=v3o "C:\path\to\em4\mods\mymod"

"-dir" tells the packer that we are in directory packing mode not individual file packing mode. "-pack" states that we want to pack the files. To unpack the files, used "-unpack" instead. "-files=" tells which kind of files we want to process. You can select any combination of v3o, dds, and script separated by commas NO SPACES.

That's it! I hope you guys enjoy it. Let me know if there are any bugs or if you know any improvements.

This utility requires that you have Java 6 or greater installed on your PC. It will not work without Java.

DISCLAIMER: NEVER USE THIS UTILITY ON YOUR ONE AND ONLY COPY OF SOMETHING. A BUG COULD DESTROY YOUR FILE, HOWEVER IT IS UNLIKELY. WHY RUN THE RISK?

##### Share on other sites

I followed the steps but it just says invalid command when i type in em4packer. It is ran as an admin.

##### Share on other sites

You can only use the em4packer command by itself if the command prompt is pointed to the same folder as the utility.

Otherwise you will need to define the path to the utility.

Use the "cd" command to move the command prompt around.

"cd C:/path/to/utility/folder/"

Then you can use em4packer command directly.

Alternatively you can use it like:

"C:/path/to/utility/folder/em4packer.exe -unpack file1.v3o"

##### Share on other sites

Not trying to bump an old topic; but this is what I am looking for. Hopefully after a day of studying I'll be able to use it.

Norm,

##### Share on other sites

I will look into adding a GUI to this. Gotta see if I can find the project file.

##### Share on other sites

Thank you much) was searching for this