Just putting this here in case anyone in the future wants a go at these files for the MMO Dragon's Prophet (the game is still in beta so this may change):
.idx file structure (index file for each package)
Bytes 0 -23: 24 byte header
Followed by file table entries which are 33 bytes + the file name
Bytes 0-11 ?
Bytes 12-15: Offset in package
Bytes 16-19: ?
Bytes 20-23: Zipped Size in package, not including the file's 28 byte header (see below)
Byte 24: Package file number (the data is in packages with extensions .p###, where this byte is the ### as a three digit number)
Bytes 25-28: ?
Bytes: 29-32: File name Length
Then the file name itself
.p### file structure:
Bytes 0-3: Header
Then, in succession, the file data which is of the form:
28 byte header, zlib file stream
I know this is far from complete, but if anyone wants to go out there an make an extractor for this game, I figure this is a nice start. Feel free to add in any extra details I missed.
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Dragon's Prophet idx and .p### files
-
- n00b
- Posts: 10
- Joined: Fri Sep 06, 2013 4:57 pm
- Has thanked: 4 times
- Been thanked: 1 time
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
If I understand correctly it should look like this:
About compression : It's not Zlib..
And additional :
lzham -> D:\Works\trunk\Libraries\lzham\lzhamdecomp\
crunch -> D:\Works\trunk\Libraries\crunch\crnlib\
All files with header 28 bytes looks like :
After will be the compressed data with size > pBSize. Very similar to LZMA but comtype scanner gave no results.
Code: Select all
struct IDXHeader
{
BYTE pHeader[16]; //"Rx.1.2.1157.tw + \x00
DWORD pNulls;
DWORD pTotalFiles;
};
struct IDXEntry
{
DWORD pUnknown1; // unknown.. can be 1/2
DWORD pUnknown2;
DWORD pUnknown3;
DWORD pOffset;
DWORD pUnknown4;
DWORD pSize;
BYTE pArchiveNum;
DWORD pUnknown5; // always 1
DWORD pFileNameLength;
};
About compression : It's not Zlib..
And additional :
lzham -> D:\Works\trunk\Libraries\lzham\lzhamdecomp\
crunch -> D:\Works\trunk\Libraries\crunch\crnlib\
All files with header 28 bytes looks like :
Code: Select all
struct CHeader
{
DWORD pZSize; // compressed size
DWORD pUnknown1; // unknown.. can be 1/2
DWORD pUnknown2; // hash1 ???
DWORD pUnknown3; // hash2 ???
DWORD pUnknown4; // 4
DWORD pSize; // uncompressed size
DWORD pBSize; // compressed data block size
};
My Github repo
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Well here unpacker. Currently can't decompress compressed files because algo is unknown. And as an evil game does not support WinXP
Not Compressed files can be read. Example
data\luascript\70000442.lua
Download: See below
Not Compressed files can be read. Example
data\luascript\70000442.lua
Code: Select all
--$Version=65221
function PE02_giveitem()
GiveBodyItem(OwnerID(),20001123,1)
end
Last edited by Ekey on Mon Sep 09, 2013 12:43 pm, edited 1 time in total.
My Github repo
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Okay one compression algo 100% is LZMA but a little bit of modified
Just for example file data\luascript\70000021.lua
Original header (skip 28 bytes)
Normal LZMA header must be
and we get like this
With the textures have a problem. Examples
File compressed by LZMA
But another file from this folder have unknown compression... crunch maybe?
Just for example file data\luascript\70000021.lua
Original header (skip 28 bytes)
Code: Select all
5D 00 00 00 01 6C 04 00 00
Code: Select all
5D 00 00 80 01 6C 04 00 00 00 00 00 00
Code: Select all
--$Version=96505
function TestZoneSysKey()
Say( OwnerID() , GetZoneKeyValue( -1 , 1 , EM_RegZoneKeyValue_RoomCount ) );
RegZoneKeyValue( -1 , 1 , EM_RegZoneKeyValue_RoomCount );
Sleep( 30 );
Yell( OwnerID() , GetZoneKeyValue( -1 , 1 , EM_RegZoneKeyValue_RoomCount ) );
end
function TestZoneSysKey_Reg( zoneid , type )
RegZoneKeyValue( -1 , zoneid , type );
end
function TestZoneSysKey_Set( type , value )
SetZoneKeyValue(type, value );
end
function TestZoneSysKey_Get( zoneid , type )
Yell( OwnerID() , GetZoneKeyValue( -1 , zoneid , type ) );
end
function Test_CreateInstance()
OpenCreateInstaneMenu( ownerID() , -1 , 903 , 0 , 0 , 0 , 0 , 0 );
end
function SysOpenAllPaletteBank()
for i = 1 , 1024 do
WriteRoleValue ( OwnerID() ,RoleValueName_Arrary_ColorBankFlag*1000000 +i ,1 );
end
end
function SysSendSummonPlayer()
SendSummonPlayer( TargetID() )
end
function SysSetTitleInfo(id)
SetTitleInfo( OwnerID() , id )
end
function Test_GetRoleName()
Yell( OwnerID() , " Owner=" .. GetPlayerName( OwnerID() ) .. " Target=" .. GetPlayerName( TargetID() ) );
end
File compressed by LZMA
Code: Select all
interface\icons\cooking\food_bread_01.dds
Code: Select all
interface\icons\cooking\foodfish_01.dds
My Github repo
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Updated. Now decompressing (LZMA only) files while unpacking. DDS with other compression (100% crunch) currently not supported.
Download: See below
Download: See below
My Github repo
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
You do not have the required permissions to view the files attached to this post.
My Github repo
-
- double-veteran
- Posts: 929
- Joined: Fri Jul 08, 2011 12:06 pm
- Location: Torrance, CA
- Has thanked: 10 times
- Been thanked: 274 times
Re: Dragon's Prophet idx and .p### files
nice ekey, but jesus mother of god, atlas.idx, with only a 30 MB or so p00 file is still unpacking after 20 minutes . anything you can do to make this stuff unpack a little faster ? there's like 9 GB of this stuff.
-
- double-veteran
- Posts: 929
- Joined: Fri Jul 08, 2011 12:06 pm
- Location: Torrance, CA
- Has thanked: 10 times
- Been thanked: 274 times
Re: Dragon's Prophet idx and .p### files
ekey, my friend, i will be more than happy to do this game, it looks very doable.
i see why you were interested in it now LOL!
i see why you were interested in it now LOL!
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Nopehowfie wrote:nice ekey, but jesus mother of god, atlas.idx, with only a 30 MB or so p00 file is still unpacking after 20 minutes . anything you can do to make this stuff unpack a little faster ?
Well i see now you too are interested, LOLhowfie wrote:ekey, my friend, i will be more than happy to do this game, it looks very doable.
i see why you were interested in it now LOL!
My Github repo
-
- double-veteran
- Posts: 929
- Joined: Fri Jul 08, 2011 12:06 pm
- Location: Torrance, CA
- Has thanked: 10 times
- Been thanked: 274 times
Re: Dragon's Prophet idx and .p### files
hahahaha well in-game the models actually look quite bad, but i think either the vertex normals or the lighting is bad in the game and that's fixable. the hair has no alpha either so that looks bad too (but neither did saints row: the third and lots of other games, and that's fixable too).
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Well okayhowfie wrote:well in-game the models actually look quite bad
My Github repo
-
- n00b
- Posts: 10
- Joined: Sat Nov 16, 2013 1:47 am
- Has thanked: 3 times
Re: Dragon's Prophet idx and .p### files
Hello!
I'm new here, registered to get this great program. I tested the program and... What should i say?! It's so great! Very fast unpacker Thanks for that great work!
And BTW: Do someone know, how to open the .db files? Its not an SQLite databse
I'm new here, registered to get this great program. I tested the program and... What should i say?! It's so great! Very fast unpacker Thanks for that great work!
And BTW: Do someone know, how to open the .db files? Its not an SQLite databse
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: Dragon's Prophet idx and .p### files
Seems it's custom binary base.LordDragonus wrote:And BTW: Do someone know, how to open the .db files? Its not an SQLite databse
My Github repo