GGPK Defragmenter

"
tpapp157 wrote:

My guess is something like Grinding Gears PacKage file.


Correct.

"

The hashes are murmurhash2 on a lowercase'd copy of the entry's name, i think


The hashes for each filename entry in a directory is a lowercase Murmur2 hash. This is used to do fast traversal when looking up a file by path.

File content hashes are SHA-256, and directory content hashes are SHA-256 of the concatenated SHA-256 hashes of the children.

As I hinted above, the FREE nodes are left over when old structures are deleted (most commonly when they are resized or recreated when adding to the pack). Each free node contains the offset to the next free node in a free node chain.
Path of Exile - Lead Programmer
Last edited by Jonathan on Apr 16, 2012, 12:49:37 AM
"
Zoxc wrote:
I was bored and made a tool to defragment Path of Exile's GGPK files. I shaved 850 MB off my client by using this.

It's a console application which takes two arguments, the filename of the GGPK to copy and a filename for the defragmented output.

Download Windows executable - Source code


Shaved about ~200 MB. Good idea and work Zoxc!
Playing PoE since v0.9.1 // mirror drop is a myth
Last edited by ama on Apr 16, 2012, 1:20:23 AM
I though the FREE nodes didn't have further content so I guess bad things happens if the client appends one to the chain... (The first and only FREE node is at the end of the file where 'FREE" are the last bytes)
Last edited by Zoxc on Apr 16, 2012, 7:56:32 AM
\
-|:S
/

Please say it ain't so!
I appear to be living in "Romance Standard Time". That has to be good! :)
Uploaded a new version with larger FREE nodes. You can run it again to possibly prevent problems with the client.
Well if it goes splongie I can always redownload. I have unlimited access so it is not that much of a problem. I will chance it for now.
I appear to be living in "Romance Standard Time". That has to be good! :)
I've dragged this tool into the PoE main installation folder (with the game executable) and ran it. I saw an MS-DOS prompt flash for a second then it closed.

Did it function correctly?
1. You need to run cmd.exe

2. Go to the location of your client.exe in the command prompt by using cd.. and cd <foldername> as commands.

3. Write "ggpk_defragment.exe content.ggpk content2.ggpk"

The program will take several minutes to finish. After it has finished it will tell you.

4. Go to the folder of your client.exe.

5. Change name of content.ggpk to contentold.ggpk

6. Change name of content2.ggpk to content.ggpk

Then you have done it right! :)

ps. I assume you have moved ggpk_defragment.exe into the path of exile folder, I assume that Client.exe and content.ggpk is in the same folder and that folder is the path of exile folder - anything else would seem illogical.
I appear to be living in "Romance Standard Time". That has to be good! :)
"
radiatoren wrote:
ps. I assume you have moved ggpk_defragment.exe into the path of exile folder, I assume that Client.exe and content.ggpk is in the same folder and that folder is the path of exile folder - anything else would seem illogical.


Correct. I downloaded the program, cut/pasted it into the folder containing the client.exe and content.ggpk files and double-clicked the program.

Nothing.

I'm not understanding step 3 of what you wrote.

Edit: I took a screenshot of the box just before it closed (fast little sucker) and received the line:

Usage: ruby ggpk_defragment.rb <input ggpk> <defragment output ggpk>
Last edited by Kess9215 on Apr 16, 2012, 2:16:45 PM
"
Kess9215 wrote:
"
radiatoren wrote:
ps. I assume you have moved ggpk_defragment.exe into the path of exile folder, I assume that Client.exe and content.ggpk is in the same folder and that folder is the path of exile folder - anything else would seem illogical.


Correct. I downloaded the program, cut/pasted it into the folder containing the client.exe and content.ggpk files and double-clicked the program.

Nothing.

I'm not understanding step 3 of what you wrote.

Edit: I took a screenshot of the box just before it closed (fast little sucker) and received the line:

Usage: ruby ggpk_defragment.rb <input ggpk> <defragment output ggpk>

you need to start a command prompt as I write in 1.

If you use windows of any kind search for cmd.exe and open it. In that permanent black box you press cd.. at least 2 times intill it says

C:\:
now you write "cd program files"
it now says:
C:\program files\:
then you write "cd grinding gear games". It should result in:
C:\program files\grinding gear games\:
then you write "cd path of exile"
now the prompt says:
C:\program files\grinding gear games\path of exile\:
then you write what it says in 3. of my recipe.

Bah I guess I am too old fashioned. You can do it without the command prompt:

1. make a shortcut to ggpk_defragment.exe

2. Edit the shortcut so it says something like this in the Target field:

Target: ["C:/Program Files/Grinding Gear Games/Path of Exile/ggpk_defragment.exe" content.ggpk content2.ggpk]

3. run the shortcut.

4. continue my previous guide from point 4 and onwards
I appear to be living in "Romance Standard Time". That has to be good! :)
Last edited by radiatoren on Apr 16, 2012, 3:01:17 PM

Report Forum Post

Report Account:

Report Type

Additional Info