Log in

View Full Version : [Release] GPD Editors



godzcheater
06-24-2012, 09:29 PM
It seems all the "Devs" on this site don't know much about the format of GPD Files, You cant treat them like static saves.
(You should also stop treating STFS files like the base block is always the same, it rarely is)

The GPD(XDBF) format is the best documented and easiest Xbox format to handle.
It is made up of 3 sections:
The header,
The tables(2 tables),
And the raw binary data.

I'm not going to write out the format, as free60 (http://free60.org/XDBF) has it almost completely correct.
But I'm going to tell you stop to stop treating them like static files, show you how to handle them, and give you some basic code, for reading the tables and returning the offsets.

Games have only have direct access to the setting records, they can have a number of settings, but only upto 3 worth modding,
1676165119(0x63E83FFF)
1676165118(0x63E83FFE)
1676165117(0x63E83FFD)
They are the binary settings, they don't have to exist, and they cant be over 1024 bytes, but the first 24 bytes are not used by the game.

You can view this quick XDBF class that I made for 360 haven on git hub (https://github.com/godzcheater/XboxClasses),
Its just a lite class to read and get offsets for records,

init and reads the header and tables,


XboxClasses.XDBF.XDBF XDBF = new XboxClasses.XDBF.XDBF("C:\\Path\\To\\File\\.gpd");

Two exceptions
XboxClasses.XDBF.Exceptions.InvalidFileMagic - The file isn't valid, Its not a gpd
XboxClasses.XDBF.Exceptions.InvalidVersion - The gpd version is incorrect, the only public version is 65536

Get the setting offset


XDBF.IO.Postion = XDBF.GetSettingOffset(1676165119) + 24;//24 is the setting header, not used by the game

One exception in GetSettingOffset
XboxClasses.XDBF.Exceptions.SettingNotFound - the setting is not in the table.

Then you can just read the from the IO like normal


XDBF.IO.Reader.ReadInt32()


The IO is endian(big by default)


XDBF.IO.IsBigEndian = true;//>.< true = big, false = little


Write


XDBF.IO.Writer.WriteInt32(0);


Close


XDBF.IO.Stream.Close();


I really don't care if you use my code, It was quickly done, or if you give credit, but please, stop releasing the shitty tools that you just point a io to a static offset in GPDs

technoobie
06-24-2012, 11:26 PM
Lol, all this looks like an entire different language. R u sure this is English? Lmao j/k. That's why I'm a NOOBIE. But I'm sure the "devs" understand.

sent from my HTC EVO.

XB36Hazard
06-25-2012, 05:59 AM
It seems all the "Devs" on this site don't know much about the format of GPD Files, You cant treat them like static saves.
(You should also stop treating STFS files like the base block is always the same, it rarely is)

The GPD(XDBF) format is the best documented and easiest Xbox format to handle.
It is made up of 3 sections:
The header,
The tables(2 tables),
And the raw binary data.

I'm not going to write out the format, as free60 (http://free60.org/XDBF) has it almost completely correct.
But I'm going to tell you stop to stop treating them like static files, show you how to handle them, and give you some basic code, for reading the tables and returning the offsets.

Games have only have direct access to the setting records, they can have a number of settings, but only upto 3 worth modding,
1676165119(0x63E83FFF)
1676165118(0x63E83FFE)
1676165117(0x63E83FFD)
They are the binary settings, they don't have to exist, and they cant be over 1024 bytes, but the first 24 bytes are not used by the game.

You can view this quick XDBF class that I made for 360 haven on git hub (https://github.com/godzcheater/XboxClasses),
Its just a lite class to read and get offsets for records,

init and reads the header and tables,


XboxClasses.XDBF.XDBF XDBF = new XboxClasses.XDBF.XDBF("C:\\Path\\To\\File\\.gpd");

Two exceptions
XboxClasses.XDBF.Exceptions.InvalidFileMagic - The file isn't valid, Its not a gpd
XboxClasses.XDBF.Exceptions.InvalidVersion - The gpd version is incorrect, the only public version is 65536

Get the setting offset


XDBF.IO.Postion = XDBF.GetSettingOffset(1676165119) + 24;//24 is the setting header, not used by the game

One exception in GetSettingOffset
XboxClasses.XDBF.Exceptions.SettingNotFound - the setting is not in the table.

Then you can just read the from the IO like normal


XDBF.IO.Reader.ReadInt32()


The IO is endian(big by default)


XDBF.IO.IsBigEndian = true;//>.< true = big, false = little


Write


XDBF.IO.Writer.WriteInt32(0);


Close


XDBF.IO.Stream.Close();


I really don't care if you use my code, It was quickly done, or if you give credit, but please, stop releasing the shitty tools that you just point a io to a static offset in GPDs
Nicely said! Now let's see if any of the "Devs" will follow.

Vincent Valentine
06-25-2012, 06:27 AM
A lot of the dev's (including me) don't mess with GPD editors. Only one i know that tries is Hellboy and also XB36Hazard

Noctis Caelum
06-25-2012, 06:55 AM
fuck GPD's, lol....Na i never tried, might soon though

Jappi88
06-25-2012, 07:18 AM
first of... this thread should be placed in c# sources/classes.

second ... devs that handels gpd's as static binary would not be able to use your class... why ?! because they simply cant...

i doubt the most devs dont know how to handel gpds...
dont get me wrong though , u did great in posting this , just it wont change a lot... jizza posted his XDBF class along with a application to parse and read out all gpds entries... but didnt see anyone use it.

Vincent Valentine
06-25-2012, 07:21 AM
first of... this thread should be placed in c# sources/classes.

second ... devs that handels gpd's as static binary would not be able to use your class... why ?! because they simply cant...

i doubt the most devs dont know how to handel gpds...
dont get me wrong though , u did great in posting this , just it wont change a lot... jizza posted his XDBF class along with a application to parse and read out all gpds entries... but didnt see anyone use it.

Didn't even know Jizza made that... I don't like/try to make GPD editors. Their easier to just hex than use a tool in my opinion. A lot easier than modding a save as well... unless you have no idea on what your looking for in the GPD

JizzaBeez
06-25-2012, 08:18 AM
first of... this thread should be placed in c# sources/classes.

second ... devs that handels gpd's as static binary would not be able to use your class... why ?! because they simply cant...

i doubt the most devs dont know how to handel gpds...
dont get me wrong though , u did great in posting this , just it wont change a lot... jizza posted his XDBF class along with a application to parse and read out all gpds entries... but didnt see anyone use it.

The stuff that I posted before is really old. The XDBF class was just an example of the information posted on free60. I also posted Hex Workshop bookmarks for XDBF and XContent for those who can't code but want to learn the file systems so they can h4x...

BurdEmelry
06-25-2012, 08:31 AM
Lol, all this looks like an entire different language

godzcheater
07-17-2012, 10:21 PM
Lol, all this looks like an entire different language. R u sure this is English? Lmao j/k. That's why I'm a NOOBIE. But I'm sure the "devs" understand.

sent from my HTC EVO.
I don't think this thread is to hard to understand, but I understand people who know nothing about GPD's could get confused.

Nicely said! Now let's see if any of the "Devs" will follow.
Hopefully, but I doubt it. I posted my heavier class a while ago but that didn't take off.

A lot of the dev's (including me) don't mess with GPD editors. Only one i know that tries is Hellboy and also XB36Hazard
Its a shame because when you know understand GPD's there are so easy to mod, and make tools for ^

fuck GPD's, lol....Na i never tried, might soon though
^As above GPD's are really easy formats to understand, and alot easier to handle than STFS files, but in STFS files the base block can be same the majority, witch makes offsets seem static(there not really.)

first of... this thread should be placed in c# sources/classes.

second ... devs that handels gpd's as static binary would not be able to use your class... why ?! because they simply cant...

i doubt the most devs dont know how to handel gpds...
dont get me wrong though , u did great in posting this , just it wont change a lot... jizza posted his XDBF class along with a application to parse and read out all gpds entries... but didnt see anyone use it.
This is aimed at people about to release tools, I know I kinda changed genre to the class, but the main purpose was to inform people about the format.
They manage to add Package IO as a reference they should be able to add this, or copy the code.
Actually the first Halo reach tut used his tool, and then horizon to fix the hash, but the tool(and others) is only used by advanced modders, witch is a shame.

Lol, all this looks like an entire different language
Bot much?

Serious_M
08-07-2012, 11:13 AM
nice work on the editor godzcheater

xI cHOcOLaTe
08-07-2012, 11:59 AM
Wow, this is sick, nice work dude. Love the class/source :3