Jump to content

[XBOX]Dino Crisis 3 ITK format help


Go to solution Solved by h3x3r,

Recommended Posts

Posted (edited)

Hello everyone,

Could someone help me analyze this ITK file from DINO 3? It’s an archive file, and the beginning seems to contain a file directory. However, there are additional ITK files nested within this ITK file, and I’m not sure how to handle this.

Furthermore, some of the files inside appear to be compressed. the included Script.itk. When I switch the text encoding to Japanese, I can see fragments of Japanese text. These fragments seem to be compressed, so the Japanese sentences are incomplete, but some words are still recognizable.

I will upload some of the ITK files. Since some of them are quite large, I’ve only uploaded a few smaller ones.

image.png.178f56d7ec87e62dd4f2aa5180acbe44.pngimage.png.8bbeca9068e56300e601f5df51bd3ac4.png

itk.zip

Edited by dylans
  • Engineers
  • Solution
Posted (edited)

pack_00.itk is compressed. The small one doesn't.

char Sign[4];
uint32 DataBaseOffset;
uint32 ResourceCount;
uint32 TotalFileSize;

struct
{
    char Name[64];
    uint32 CompFlag;
    uint32 CompressedSize;
    uint32 Offset;
    uint32 DecompressedSize;
}Table[ResourceCount];

Seems like compression is LZSS0. Here is decompressed image.

image.png.43bcb396a3c5046973ee7926882fa4ff.png

Here's bms. You can also use it on unpacked itk files. They have same struct.

####################################
# Dino Crisis 3 og xbox *.itk dump #
####################################
get BaseFileName basename
comType lzss0

idstring "ITK1"
get DataBaseOffset uint32
get ResourceCount uint32
get TotalFileSize uint32

for i = 0  < ResourceCount
	getdstring ResourceName 0x40
	get CompFlag uint32
	get ZSize uint32
	get Offset uint32
	get Size uint32
	
	string FileName p= "%s/%s" BaseFileName ResourceName
	if CompFlag == 0
		log FileName Offset Size
	else
		clog FileName Offset ZSize Size
	endif
next i

 

Edited by h3x3r
  • Like 1
Posted
23 hours ago, h3x3r said:

pack_00.itk is compressed. The small one doesn't.

char Sign[4];
uint32 DataBaseOffset;
uint32 ResourceCount;
uint32 TotalFileSize;

struct
{
    char Name[64];
    uint32 CompFlag;
    uint32 CompressedSize;
    uint32 Offset;
    uint32 DecompressedSize;
}Table[ResourceCount];

Seems like compression is LZSS0. Here is decompressed image.

image.png.43bcb396a3c5046973ee7926882fa4ff.png

Here's bms. You can also use it on unpacked itk files. They have same struct.

####################################
# Dino Crisis 3 og xbox *.itk dump #
####################################
get BaseFileName basename
comType lzss0

idstring "ITK1"
get DataBaseOffset uint32
get ResourceCount uint32
get TotalFileSize uint32

for i = 0  < ResourceCount
	getdstring ResourceName 0x40
	get CompFlag uint32
	get ZSize uint32
	get Offset uint32
	get Size uint32
	
	string FileName p= "%s/%s" BaseFileName ResourceName
	if CompFlag == 0
		log FileName Offset Size
	else
		clog FileName Offset ZSize Size
	endif
next i

 

Thank you very much! This QuickBMS script works perfectly, even on files with seemingly scrambled headers. It's truly amazing!image.png.e4ef9308f91c94328203517b2f13e499.png

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...