Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Rise of the Tomb Raider TIGER Files Struct

Featured Replies

  • Author
  • Localization

michalss, posted Tue Nov 17, 2015 7:20 pm (9861)


Hi Lugi,

please help, trying to figure it our with this format. Some smaller files are ok, but with bigger files i cannot extract all files. For example archive is about 286 MB of size, if i extract all files its only 131 MB, there must be something we missing, also ekey was involved... Please help i was not able to figure it out yet ...:(


Thx to Ekey for struct.. :)
Code:
struct iHeader
{
   uint32_t   dwID; //TAFS
   uint32_t   dwVersion; // Previous is 3 , Current is 4
   uint32_t   dwUnknown1;
   uint32_t   dwTotalFiles;
   uint32_t   dwUnknown2;
   uint8_t    iPlatform[32]; //Platform (xenon-w) or (ps3-w) or (pc-w)
};

//Entry stucture for version 3
struct iEntryV3
{
   uint32_t   dwHash; //Hash of filename
   uint32_t   dwLanguage;
   uint32_t   dwSize;
   uint32_t   dwZSize; //Posible
   uint32_t   dwFlags; //or two uint16_t
   uint32_t   dwOffset;
};

//Entry stucture for version 4
struct iEntryV4
{
   uint32_t   dwHash; //Hash of filename
   uint32_t   dwLanguage;
   uint32_t   dwSize;
   uint32_t   dwZSize; //Posible
   uint32_t   dwOffset;
   uint32_t   dwFlags; //or two uint16_t
};



This specific archive shoud has 14384 files inside. Well i can reach all of them but it is not equal to archive size, not even by the long shot :(
Code:
https://mega.nz/#!Co5kjJCR!SP9FkUNTY3JRmr8nYROPk2HbQ38v892E7gB0iifZbC8
  • Author
  • Localization

Ekey, posted Tue Nov 17, 2015 7:25 pm (9863)


Because it's contains DRM file pointers to various data blocks within the Bigfile a specific DRM uses. This could be textures, models, sound effects, scripts etc. Main entry info contained only in DRM's with structure

Code:
struct iDRMHeader
{
   uint32_t   dwVersion; //16
   uint32_t   dwStrLength1;
   uint32_t   dwStrLength2;
   uint32_t   dwNull1;
   uint32_t   dwNull2;
   uint32_t   dwNull3;
   uint32_t   dwTotalSections;
   uint32_t   dwLocaleID;
};

struct iDRMEntry
{
   uint32_t   dwUnknown1;
   uint32_t   dwType; // & 0xFF
   uint32_t   dwResourceID; //??
   uint32_t   dwSectionID; //??
   uint32_t   dwLanguageID;
};

struct iDRMSubEntry
{
   uint32_t   dwUnknown1;
   uint32_t   dwNull;
   uint32_t   dwOffset;
   uint32_t   dwFlags; // or two uint16_t
   uint32_t   dwLanguageID;
   uint32_t   dwSize;
   uint32_t   dwUnknown2;
};

struct iCDRMHeader
{
   uint32_t   dwID; //CDRM
   uint32_t   dwNull1;
   uint32_t   dwTotalBlocks;
   uint32_t   dwNull2;
};

struct iCDRMEntry
{
   uint32_t   dwUnknown;
   uint32_t   dwBlockZSize;
};


Resource type's

Code:
0 - Generic Data
1 - Empty Data
2 - Animation
5 - Texture
6 - Sound
7 - DTP Data
8 - Script
9 - Shader
10 - Material
11 - Object
12 - Render Mesh
13 - Collision Mesh
14 - Stream Group List
15 - Trigger Data
  • Author
  • Localization

michalss, posted Tue Nov 17, 2015 7:27 pm (9864)


Ekey wrote:
Because it's contains DRM file pointers to various data blocks within the Bigfile a specific DRM uses. This could be textures, models, sound effects, scripts etc.


My first impression was that it is only after you extract whole tiger file..
hmm so there is not really way to extract is as usual, all files ? Strange.. Your duper is works only with drm files extracted from archive...
  • Author
  • Localization

Ekey, posted Tue Nov 17, 2015 7:32 pm (9865)


michalss wrote:
hmm so there is not really way to extract is as usual, all files ?

It's posible but one thing: several different DRM's can have a pointer to the same data block and all extracted blocks are will be with size more than the archive itself.
  • Author
  • Localization

michalss, posted Tue Nov 17, 2015 7:35 pm (9866)


Ekey wrote:
michalss wrote:
hmm so there is not really way to extract is as usual, all files ?

It's posible but one thing: several different DRM's can have a pointer to the same data block and all extracted blocks are will be with size more than the archive itself.


Hmm but how this could be a problem ? This should not be a problem right ? If you can pls extend that structure template ill try to repack it..
  • Author
  • Localization

Ekey, posted Tue Nov 17, 2015 7:47 pm (9867)


Rick wrote:
Packer will not be possible until the DRM stuff is understood.


Also if we unpack all the data blocks for each DRM eventually we get:

howfie wrote:
1.8 million files :D


See old DRM editor for Tomb Raider 2013 > https://github.com/LazyBui/gibbedtr
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.