Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Mabinogi > Mabinogi Hacks, Bots, Cheats & Exploits
You last visited: Today at 18:43

  • Please register to post and access all features, it's quick, easy and FREE!

Bitcoin Dice Game

Data Packing (Quick Explaination)

Discussion on Data Packing (Quick Explaination) within the Mabinogi Hacks, Bots, Cheats & Exploits forum part of the Mabinogi category.

Old   #1
elite*gold: 0
Join Date: Sep 2009
Posts: 1,317
Received Thanks: 472
Data Packing (Quick Explaination)

Greetings, Bishop here with yet another fun filled informational guide... Oh, wait this really isn't a guide. It's more of a informational piece, on what data packing is, why it works and the ways in which we as the modders can use this to our advantage. As always, I have to state that this may not be the exact way that this practice works in Mabi, but it is the basics, and that's what I am out to show you, how it works. So, on that note, let's begin.

Ok, so before I we go any farther, what exactly is data packing?
A textbook definition would say something like; Data packing as it refers to programming and archival push/pull rendering and retrieval refers to the process of adding external data, held in the same formats as the default package, and which upon execution of the program is pulled and rendered/retrieved instead of the intended default data via means of overwriting that data or skipping over the default packages held data.
Well, what the hell does this mean?
It means this;
1. We can bind our information to the default packages and overwrite the original information. (This requires a bind program, see below for the full explanations.).
2. By creating a "data" folder that has our files in it, through data packing we can replace defaults that come included with the game to our own custom files. (This requires the use of a data read enabled .dll).

Ok, so now we know what data packing is, so we can move on to how data packing is accomplished. First we need to look at how the game executes normally, with no packing method in place. In the following example we'll look at how the game renders your current equipment.
The game queries the server and asks- "What is the current character?"
The server will respond in this fashion-
"Human, Female, Age (Size), Face (Hair, Eyes, Mouth), Gear (Head, Body, Hands, Feet, Weapons etc.), Is Not Transformed."
The game server will verify this information-"Race, Sex, Attributes, and Equipment are OK, proceed with rendering linked to these models."
From this point on the client takes complete control and starts to make calls to the mesh groups and models, as such;
1. From library direction, navigate to the r.56 full pack, starting at the entry point "main/data"
2. Navigate to the graphics subfolder, "gfx".
3. From here, find the subfolder for the object to be rendered, "char", "monster", "transformed state" etc.
4. Find noted framework, "male", "female" etc.
5. Size model in accordance to parameters passed from the server.
6. Render with required subcomponents (Face, gear, is_state) as passed by the server.
This happens for EVERY object to be rendered. The simplified process of navigation and returns would look kind of like this;
library->package/data/subclass/particular/return to library for resolution.
And that is a default, dry run of an unaltered rendering from a stable, newly installed client.

Now lets adds our own data using 2 methods. The first method we'll discuss will be data binding. The second will be the more complex, but far more modular patching from a data folder via a library edit, i.e. IJL data reading.

The first method is known as overwriting static pack files via binding, but that's complicated so we will simply call it data binding. In this process and executable file opens the package file into a readable/writable string of information. In this open state the pack file can be navigated like any text file, but not by you as a user since it will be in some varied code language, whether it is simple ASCII markup or Unicode encryption. But that doesn't really matter since the executable can read this like its nothing. Now, with this executable open, we will need to select a similarly contained file for importing. So before hand, we'll need to create a data folder, with all our modified information plugged into the proper paths and set up exactly like its default counterpart is within the package.
Then, we point the executable to this data folder and it will read through the original pack and this data folder and simply overwrite anything in the original package that is redefined within your data folder. After the executable completes it process, the game will simply render and call as usual, but your modified data will be displayed instead of the defaults, since the defaults no longer exist. Pretty easy to follow right? If yes, continue on to the IJL method, otherwise, go sit in the corner and hang your head. Those of you that understand, let's move on to the IJL data folder read method.

For this section, you'll need to reference the original diagram of how the client makes these data read calls, because I will be making reference to that lil process.
I'm sure at this time, you are all somewhat aware of what an IJL patch is. If you already know, skip the next few sentences, otherwise, keep on reading.
An IJL patch is a modification to the dynamic link libraries that mabinogi uses to link processes and calls. The edit changes the way in how calls are made to the other libraries, what is to be read, and what information is to be displayed/rendered in the client (That's a terribly basic explanation).
So what does an IJL patch mean for a data packing escapades?
What the patch will do will add a conditional link to the first step of the client rendering process, you know that section that says, start reading the pack files at the package entry point found in main? Well what the IJL patch will do is add this condition;
Start reading from the main folder, data, found within the main exterior folder, then if the file is not found, proceed to package entry point at main. So what exactly does this mean? It means that the client will first attempt to find and cache the data that it reads from your folder before it even trys to read from the default package as a whole.
This method is more highly preferred and regarded because it allows you to make changes to the data pack without the delay and repacking that is needed with the binding method. Also it is much more easy to fix your mistakes when you can makes changes without adding the original files back into the package.

And there you have it, you now understand a bit about how data packing works! Go you! As always I hope you learned something interesting, or just something, I don't much care if it was interesting, just mainly that you actually learned something.

Any questions, comments, criticism? You know how to ask. Hope this was educational and informational.

pawntobishop is offline  
5 Users
Old 07/22/2010, 00:32   #2
elite*gold: 0
Join Date: Jul 2010
Posts: 3
Received Thanks: 0
I needed this because i was a noob when it came to this. So thank you!
SleepyTheSniiper is offline  

« [Upload] r64 XMLs and Local Dir | [Upload] r66 XML's and Local Dir »

Similar Threads Similar Threads
01/06/2013 - Grand Chase - 91 Replies
This thread is for the people who does not understand the meaning of server sided and keeps on asking questions about this drop rate hacks or EXP hacks. -I made this thread to make things clear. -remember that interested people can understand this faster. ok lets start...
help packing
08/16/2009 - Dekaron Private Server - 4 Replies
ok i got the files packed, and got my .HD and .PAK when i put them in my folder, and try running the game it dosent run. it goes to a black screen and shuts down. i changed the 0 to a 1 in shadow. and it still dosent work. can anyone help?:confused:
*Noobie to L2Walker* Need Help and Explaination
02/01/2008 - Lineage 2 - 2 Replies
Hi I'm new to this forum and just started playing Lineage 2. I was hearing that everyone uses L2walker. I've been trying to find help on google, but no luck. Can someone explain to me what cracking L2walker means? I also keep hearing people are waiting for the cracked L2walker instead of paying for it. Also what is the different between OOG and IG L2walker? I want to level quick :D
Some explaination for the recent bannings
09/17/2005 - World of Warcraft - 4 Replies

All times are GMT +2. The time now is 18:43.

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

BTC: 33E6kMtxYa7dApCFzrS3Jb7U3NrVvo8nsK
ETH: 0xc6ec801B7563A4376751F33b0573308aDa611E05

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2020 elitepvpers All Rights Reserved.