Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Age of Conan *.RDB

The Original Forum. Game archives, full of resources. How to open them? Get help here.
aritheory
ultra-n00b
Posts: 2
Joined: Mon Mar 26, 2007 4:49 am

Age of Conan *.RDB

Post by aritheory »

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
Image

00.rdb
Image
Rheini
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

Post by Rheini »

That idx looks a bit strange. But hard to say something only having a picture.
nicoli_s
advanced
Posts: 77
Joined: Fri Jan 07, 2005 7:47 am
Has thanked: 1 time
Been thanked: 3 times

Re: Age of Conan *.RDB

Post by nicoli_s »

Rick
Moderator
Posts: 388
Joined: Tue Aug 09, 2005 10:10 pm
Been thanked: 84 times
Contact:

Re: Age of Conan *.RDB

Post by Rick »

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:

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.
nicoli_s
advanced
Posts: 77
Joined: Fri Jan 07, 2005 7:47 am
Has thanked: 1 time
Been thanked: 3 times

Re: Age of Conan *.RDB

Post by nicoli_s »

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
Rick
Moderator
Posts: 388
Joined: Tue Aug 09, 2005 10:10 pm
Been thanked: 84 times
Contact:

Re: Age of Conan *.RDB

Post by Rick »

nicoli_s wrote:have you done any work into the FCTX files?
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.

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
nicoli_s wrote:also, for me the only file in 1000010 appears to be compressed and has no plain text filenames in it
It is not.

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.
Itze
veteran
Posts: 81
Joined: Sat Mar 15, 2008 4:43 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Age of Conan *.RDB

Post by Itze »

hey Rick,
good work on figuring out the fileformats! :ninja:

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 :D
nicoli_s
advanced
Posts: 77
Joined: Fri Jan 07, 2005 7:47 am
Has thanked: 1 time
Been thanked: 3 times

Re: Age of Conan *.RDB

Post by nicoli_s »

The contents of this post was deleted because of possible forum rules violation.
Rick
Moderator
Posts: 388
Joined: Tue Aug 09, 2005 10:10 pm
Been thanked: 84 times
Contact:

Re: Age of Conan *.RDB

Post by Rick »

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.
Rick
Moderator
Posts: 388
Joined: Tue Aug 09, 2005 10:10 pm
Been thanked: 84 times
Contact:

Re: Age of Conan *.RDB

Post by Rick »

Itze wrote:hey Rick,
good work on figuring out the fileformats! :ninja:

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 :D
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.
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.
Itze
veteran
Posts: 81
Joined: Sat Mar 15, 2008 4:43 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Age of Conan *.RDB

Post by Itze »

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! :D


how about blue hair?
Image

a different cape?
Image


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) :oops:
oh and you need the most recent .NET framework installed
nicoli_s
advanced
Posts: 77
Joined: Fri Jan 07, 2005 7:47 am
Has thanked: 1 time
Been thanked: 3 times

Re: Age of Conan *.RDB

Post by nicoli_s »

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
Itze
veteran
Posts: 81
Joined: Sat Mar 15, 2008 4:43 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Age of Conan *.RDB

Post by Itze »

none... im patching the texture in memory directly with texmod :D
but i rip them as .dds cause thats what the unreal engines native format is :)
Rick
Moderator
Posts: 388
Joined: Tue Aug 09, 2005 10:10 pm
Been thanked: 84 times
Contact:

Re: Age of Conan *.RDB

Post by Rick »

Itze wrote:none... im patching the texture in memory directly with texmod :D
but i rip them as .dds cause thats what the unreal engines native format is :)
What does unreal have to do with Age of Conan?
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.
User avatar
lionheartuk
double-veteran
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

Post by lionheartuk »

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
Post Reply