I extracted everything fine but when I choose to extract a DRM file the program says

Any ideas?

Code: Select all
id resource flag
95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00
05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00
95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00
05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00
95 02 00 00 00 00 00 00 01 00 00 00 20 03 02 00
05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00
17 00 00 00 00 00 00 00 03 00 00 00 8C 02 00 00
06 00 00 00 00 00 00 00 00 00 00 00 2D 00 00 00
95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00
05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00
95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00
05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00
Code: Select all
MaterialStream.Position = MaterialStream.Length - 0x120;
uint test = 0;
while (test != 0x00020020 && test !=0x00020120 )
{ test = MaterialStream.ReadValueU32();}
MaterialStream.Position -=0x10;
I wrote a material parser for Tomb Raider: Underworld not so long ago. You're best off reading the entire format rather than skipping to the EOF. That code was adapted by Aman who made it compatible with TR2013. You could take a look at his variant of the Noesis importer.Paliha wrote:Material strange life, a single pointer, even to the number of names graphics.Stupid option parsing :Code: Select all
id resource flag 95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00 05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00 95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00 05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00 95 02 00 00 00 00 00 00 01 00 00 00 20 03 02 00 05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00 17 00 00 00 00 00 00 00 03 00 00 00 8C 02 00 00 06 00 00 00 00 00 00 00 00 00 00 00 2D 00 00 00 95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00 05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00 95 02 00 00 00 00 00 00 01 00 00 00 20 00 02 00 05 00 00 00 00 00 00 00 00 00 00 00 20 01 00 00Can anyone a better idea ?Code: Select all
MaterialStream.Position = MaterialStream.Length - 0x120; uint test = 0; while (test != 0x00020020 && test !=0x00020120 ) { test = MaterialStream.ReadValueU32();} MaterialStream.Position -=0x10;
The problem is not in the table, and how to get it to start.Gh0stBlade wrote: I wrote a material parser for Tomb Raider: Underworld not so long ago. You're best off reading the entire format rather than skipping to the EOF. That code was adapted by Aman who made it compatible with TR2013. You could take a look at his variant of the Noesis importer.
Nevertheless, loading material files is a waste of time.
Regards.
I'm confused and find it difficult to understand what point you are trying to make. From your previous post you suggested you wanted better ideas on how to parse the Material format and I provided you with a solution. It's not too difficult to port Python code to other languages, it took me a few minutes to port some of the mesh importers I wrote for Noesis to my engine:Paliha wrote:The problem is not in the table, and how to get it to start.Gh0stBlade wrote: I wrote a material parser for Tomb Raider: Underworld not so long ago. You're best off reading the entire format rather than skipping to the EOF. That code was adapted by Aman who made it compatible with TR2013. You could take a look at his variant of the Noesis importer.
Nevertheless, loading material files is a waste of time.
Regards.
In Tomb Raider: Underworld were pointers to the offset , and number of resources in the table.
Suggest that in Rice the same story, haven't watched, but will soon undertake.
In my program I did the formats that are supported by NoeSis, but only if conservation of the resource. In NoeSis, very weak Help_SDK, and Python is almost non-typed language, not very comfortable to read such scripts, plus have not figured out how to debug using the console window, the same is not an option.

Code: Select all
MaterialStream.Position = 0x4F; << !!!!
int tcount = MaterialStream.ReadByte(); << !!!!
MaterialStream.Position = MaterialStream.Length - tcount * 0x10; < !!!

Code: Select all
text_id
F6 01 00 00 0F D0 0F D0 00 00 00 00 04 0B 02 00
F7 01 00 00 0F D0 0F D0 00 00 00 00 03 14 02 00
84 02 00 00 0F D0 0F D0 00 00 00 00 01 19 02 00
F9 01 00 00 0F D0 0F D0 00 00 00 00 00 21 02 00
FA 01 00 00 0F D0 0F D0 00 00 00 00 03 2C 02 00
2A 00 00 00 0F D0 0F D0 00 00 00 00 02 31 02 00
FB 01 00 00 0F D0 0F D0 00 00 00 00 03 3C 02 00
07 00 00 00 0F D0 0F D0 00 00 00 00 90 01 00 00
FB 01 00 00 0F D0 0F D0 00 00 00 00 03 0C 02 00
84 02 00 00 0F D0 0F D0 00 00 00 00 01 11 02 00
FA 01 00 00 0F D0 0F D0 00 00 00 00 03 1C 02 00
F6 01 00 00 0F D0 0F D0 00 00 00 00 04 23 02 00
F9 01 00 00 0F D0 0F D0 00 00 00 00 00 29 02 00
F7 01 00 00 0F D0 0F D0 00 00 00 00 03 34 02 00
2A 00 00 00 0F D0 0F D0 00 00 00 00 02 39 02 00
07 00 00 00 0F D0 0F D0 00 00 00 00 90 01 00 00
F6 01 00 00 0F D0 0F D0 00 00 00 00 04 0B 02 00
F7 01 00 00 0F D0 0F D0 00 00 00 00 03 14 02 00
84 02 00 00 0F D0 0F D0 00 00 00 00 01 19 02 00
F9 01 00 00 0F D0 0F D0 00 00 00 00 00 21 02 00
FA 01 00 00 0F D0 0F D0 00 00 00 00 03 2C 02 00
2A 00 00 00 0F D0 0F D0 00 00 00 00 02 31 02 00
FB 01 00 00 0F D0 0F D0 00 00 00 00 03 3C 02 00
07 00 00 00 0F D0 0F D0 00 00 00 00 90 01 00


@Gh0stBlade can you please share your script to parse meshs. I'm little stuck there. The scipt posted in first page is giving me garbage meshes.I'm confused and find it difficult to understand what point you are trying to make. From your previous post you suggested you wanted better ideas on how to parse the Material format and I provided you with a solution. It's not too difficult to port Python code to other languages, it took me a few minutes to port some of the mesh importers I wrote for Noesis to my engine:
Great workrajasrijan wrote:I've made progress on packing
Screenshot of GUI. GUI can only extract and pack images. But from console you can pack all other formats(except locals) given they are already in game recognized format (FSB for audio,PDCMeshes). I'm trying to reverse more formats.
Screenshot after packing dds. Note the text was "Test" but game is mirroring texture.
@Gh0stBlade can you please share your script to parse meshs. I'm little stuck there. The scipt posted in first page is giving me garbage meshes.I'm confused and find it difficult to understand what point you are trying to make. From your previous post you suggested you wanted better ideas on how to parse the Material format and I provided you with a solution. It's not too difficult to port Python code to other languages, it took me a few minutes to port some of the mesh importers I wrote for Noesis to my engine:

Is this TRExplorer? Is there a GUI version downloadable? I have no idea how to handle source codes. Thanks in advance.rajasrijan wrote:I've made progress on packing
Screenshot of GUI. GUI can only extract and pack images. But from console you can pack all other formats(except locals) given they are already in game recognized format (FSB for audio,PDCMeshes). I'm trying to reverse more formats.
well that link is deadmichalss wrote:files 000 and 001 is basically 1 file cutted on to 2 pieces you script wont work on this unless you merge them
whare can i download Noesis?Ekey wrote:
Gibbed Tiger Unpacker (rev117) / Rick
Download: here
Usage:Example:Gibbed.TombRaider9.Unpack "szTIGERarchive" "szOutputFolder"DRM Dumper (1.0.1.2) / Ekey (h4x0r)Gibbed.TombRaider9.Unpack "c:\Tomb Raider\title.000.tiger" "c:\Tomb Raider\unpacked\title"
Download: here
Usage:Additional thanks to howfie1) Unpack Tiger archive
2) Run DRMDumper
3) Select game path
4) Open .DRM files
5) Profit
RenderMesh plugin for Noesis (1.5beta) / MrNightmareTM
Download: here
Usage:1) Download Noesis
2) Copy plugin in "plugins\python" folder
3) Profit

http://richwhitehouse.com/index.php?con ... ojects.phpdedood2008 wrote:whare can i download Noesis?Ekey wrote:
Gibbed Tiger Unpacker (rev117) / Rick
Download: here
Usage:Example:Gibbed.TombRaider9.Unpack "szTIGERarchive" "szOutputFolder"DRM Dumper (1.0.1.2) / Ekey (h4x0r)Gibbed.TombRaider9.Unpack "c:\Tomb Raider\title.000.tiger" "c:\Tomb Raider\unpacked\title"
Download: here
Usage:Additional thanks to howfie1) Unpack Tiger archive
2) Run DRMDumper
3) Select game path
4) Open .DRM files
5) Profit
RenderMesh plugin for Noesis (1.5beta) / MrNightmareTM
Download: here
Usage:1) Download Noesis
2) Copy plugin in "plugins\python" folder
3) Profit