Hello people
I need to ask you for some help figuring out the Resource Database archives for Age of Conan. They're huge (all ~1GB) *.RDB files. From what I can tell by scanning through them with a hex-editor, they're based on a key-file system where the engine uses a file called "le.idx" . I'm sure they use some sort of compression too.
Any help would be appreciated from anybody who has AOC out there. I can try to get some more info on the headers if you need it.
Thanks
EDIT: Here are some caps of the beginnings of the possible key-file (le.idx) and the first .rdb file. As you can see, there are XML files at the beginning. I'm yet to determine how the files are laid out, hopefully this will help.
le.idx
00.rdb
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Age of Conan *.RDB
-
- Moderator
- Posts: 652
- Joined: Wed Oct 18, 2006 9:48 pm
- Location: Germany
- Has thanked: 19 times
- Been thanked: 46 times
- Contact:
Re: Age of Conan *.RDB
That idx looks a bit strange. But hard to say something only having a picture.
Re: Age of Conan *.RDB
That's very incomplete. After noticing how shitty existing tools for the RDB files were, I wrote my own -- here's the archive format that I worked out:nicoli_s wrote:http://www.aocdev.com/wiki/index.php?title=RDBDATA
For le.idx:
magic : 4 bytes : RDBI
version : 4 bytes : int [current version is 4]
for version 4:
hash : 16 bytes
record count : 4 bytes : int [no more than 0x1000000 records allowed]
for each record up to record count:
- type : 4 bytes : uint
- id : 4 bytes : uint
for each record up to record count:
- flags+rdb index : 4 bytes : uint [flags = value & 0xFFFFFF00, rdb index = value & 0xFF]
- offset : 4 bytes : uint
- size : 4 bytes : uint
- hash1 : 4 bytes : uint
- hash2 : 4 bytes : uint
There is one record of type 1000010, which has a limited amount of filename <-> id lookup, it is not complete by any means though.
Anyway, to get a specific record just open the associated resource file (rdb index) and seek to that offset, most record types have a 12 byte header of varying data, generally starts with their type ID again, then two values indicating contents of that type. After that it is file data.
You do not have the required permissions to view the files attached to this post.
https://blog.gib.me/
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
-
- advanced
- Posts: 77
- Joined: Fri Jan 07, 2005 7:47 am
- Has thanked: 1 time
- Been thanked: 3 times
Re: Age of Conan *.RDB
have you done any work into the FCTX files? i know they are DXT data, but when you put an appropriate dds header on them, they appear slightly off, kind of tiled, i figured there was maybe a problem with the mip maps that i didnt understand
also, for me the only file in 1000010 appears to be compressed and has no plain text filenames in it
also, for me the only file in 1000010 appears to be compressed and has no plain text filenames in it
Re: Age of Conan *.RDB
Yes, they are just DXT data without a proper header, the only exception I've come across is for the type of 'MIXD' (DXIMage) which appears to have some form of compression going on.nicoli_s wrote:have you done any work into the FCTX files?
magic : 4 bytes : FCTX <- should be considered a part of the 'data header' like seen on other file data
unk1 : 4 bytes [always 2?] <- should be considered a part of the 'data header' like seen on other file data
unk2 : 4 bytes [always 1?] <- should be considered a part of the 'data header' like seen on other file data
width : 2 bytes : ushort
height : 2 bytes : ushort
flags : 4 bytes : uint
type : 4 bytes : char[4] [DXT1, DXT5, MIXD, etc...]
data : variable
It is not.nicoli_s wrote:also, for me the only file in 1000010 appears to be compressed and has no plain text filenames in it
Format is simple,
type : 4 bytes : uint
unknown : 4 bytes : uint [always 1?]
unknown : 4 bytes : uint [always 2?]
type count : 4 bytes : uint
for each type count:
- type id : 4 bytes : uint
- name count : 4 bytes : uint
- for each name count:
-- entry id : 4 bytes : uint
-- name length : 4 bytes : int
-- name : variable [name length] : char*
https://blog.gib.me/
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Re: Age of Conan *.RDB
hey Rick,
good work on figuring out the fileformats!
Do you think it would be possible to extract and reinject textures into the rdb's somehow?
I know that the patcher checks the bigfiles on startup but maybe it only checks the filesize / timestamps and no hash?
I know that theres some hash checking going on at some point (RDBHashIndex.bin ?!) but maybe thats only used for patching... atleast i hope so cause i'd love to mod some textures
good work on figuring out the fileformats!
Do you think it would be possible to extract and reinject textures into the rdb's somehow?
I know that the patcher checks the bigfiles on startup but maybe it only checks the filesize / timestamps and no hash?
I know that theres some hash checking going on at some point (RDBHashIndex.bin ?!) but maybe thats only used for patching... atleast i hope so cause i'd love to mod some textures
Re: Age of Conan *.RDB
The contents of this post was deleted because of possible forum rules violation.
https://blog.gib.me/
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Re: Age of Conan *.RDB
I don't know, what I would look for instead is a way to override content inside RDB via files outside on the normal filesystem.Itze wrote:hey Rick,
good work on figuring out the fileformats!
Do you think it would be possible to extract and reinject textures into the rdb's somehow?
I know that the patcher checks the bigfiles on startup but maybe it only checks the filesize / timestamps and no hash?
I know that theres some hash checking going on at some point (RDBHashIndex.bin ?!) but maybe thats only used for patching... atleast i hope so cause i'd love to mod some textures
https://blog.gib.me/
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Re: Age of Conan *.RDB
yeah... done that kinda heh...
i wrote a proxy.exe for texmod so now you can actually use command lines and therefore start age of conan!
how about blue hair?
a different cape?
here's the downloadlink for the proxy: http://www7.zippyshare.com/v/5071703/file.html
check the Readme.txt
Sourcecode is included (VB2008) (don't know any other program language)
oh and you need the most recent .NET framework installed
i wrote a proxy.exe for texmod so now you can actually use command lines and therefore start age of conan!
how about blue hair?
a different cape?
here's the downloadlink for the proxy: http://www7.zippyshare.com/v/5071703/file.html
check the Readme.txt
Sourcecode is included (VB2008) (don't know any other program language)
oh and you need the most recent .NET framework installed
-
- advanced
- Posts: 77
- Joined: Fri Jan 07, 2005 7:47 am
- Has thanked: 1 time
- Been thanked: 3 times
Re: Age of Conan *.RDB
thanks for posting your filename list rick, i still have yet to figure out the compression, but ill be spending some more time on it over the next week, and itze, which texture files are you overwriting? is it the tiled dds textures? or the png ones
Re: Age of Conan *.RDB
What does unreal have to do with Age of Conan?Itze wrote:none... im patching the texture in memory directly with texmod
but i rip them as .dds cause thats what the unreal engines native format is
https://blog.gib.me/
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
Don't ask me about localization tools; if you don't have the resources to develop them yourself you don't need them.
- lionheartuk
- double-veteran
- Posts: 749
- Joined: Tue May 16, 2006 10:55 pm
- Location: Everywhere
- Has thanked: 34 times
- Been thanked: 42 times
Re: Age of Conan *.RDB
I think Conan is based off the Unreal Engine 2...though there is a tiny chance it uses UNREAL ENGINE 3...but this isn't used as often as 2 as its more expensive n only seems to be used for higher end games...im sure the play station version of conan was Unreal engine 3 though. So im guessing the PC version is a port or related in someway and then yeah i suppose it might use the same engine...easier to program that way