Jump to content

Siren (2003, PS2) .tbl and chunk files


ldvd
Go to solution Solved by DKDave,

Recommended Posts

This game uses a table file named siren.tbl that was initially encrypted. I made an assumption, given the many FF values there were on the file and how I expected the first value in the file to be an 'S', and XORed the entire file with FF. At first glance the readable filenames give away the index should now be readable. This is all I can make out on this file's structure, read in little endian:

File header - 0x20 bytes long
4 - ID (SDT4)
4 - Number of files per the filenames (matches when you subtract the number of 0x0000 in the tail to the number of 0x00 hex values)
4 - Index's total filesize
4 - Unknown (large 32 bit value)
4 - Unknown (equals to 0x20, might the the filesize limit inside the tail)
4 - Tail's offset (0x18D4)
8 - Null bytes

File header - 0x20 to 0x18D4 - file entry is 0x0B bytes long
4 - Unknown, each entry has a strictly larger value than the last one
4 - File's total size in the game's chunk files (first entry's field points to the end of the file, seems like each file is rounded out with null bytes)
4 - Filename's relative offset 

Tail - 0x18D4 to end of the file - contains multiple filenames ending with either a single or multiple null byte

I have no idea how the game's able to tell in which chunk file each file's meant to be stored in. Chunk files don't appear to be encrypted. This post contains both the original .tbl file as well as the XORed file. I haven't attached a sample of the chunk files beause of their confusing nature and the fact that they start with large FMVs, hence I'd advise tracking down the game's original files if you wish to help.

siren1.7z

Edited by ldvd
Link to comment
Share on other sites

Posted (edited)
52 minutes ago, DKDave said:

The first value in each file entry is the start sector of the file in the iso

How were you able to figure that out, or which was the number the files were rounded to? How large is the sector on this .iso?

Unfortunately, the script doesn't seem to work with QuickBMS. After renaming the disc image to Siren.iso I've got this error:

Error: incomplete input file 0: G:\PS2\siren1\Siren.iso
       Can't read 4294967296 bytes from offset 00000000153f0000.
	   
  coverage file 0     7%   356450304  4651417600 . offset 00000000153f0000

Last script line before the error or that produced the error:
  11  Log MEMORY_FILE 0 ZSIZE

- OFFSET       0x0000000000000000
- SIZE         0x00000001153f0000
  coverage file 0     7%   356450304  4651417600 . offset 00000000153f0000
  coverage file 1     0%   0          4651417600 . offset 0000000000000000

Sadly I'm illiterate in .bms scripts, but from what I can tell it seems to be trying to read a file the same size as the .iso from a certain offset. What's the exact issue here? Could the file structure above in my post be wrong?

Edited by ldvd
Link to comment
Share on other sites

1 hour ago, ldvd said:

How were you able to figure that out, or which was the number the files were rounded to? How large is the sector on this .iso?

Unfortunately, the script doesn't seem to work with QuickBMS. After renaming the disc image to Siren.iso I've got this error:

Error: incomplete input file 0: G:\PS2\siren1\Siren.iso
       Can't read 4294967296 bytes from offset 00000000153f0000.
	   
  coverage file 0     7%   356450304  4651417600 . offset 00000000153f0000

Last script line before the error or that produced the error:
  11  Log MEMORY_FILE 0 ZSIZE

- OFFSET       0x0000000000000000
- SIZE         0x00000001153f0000
  coverage file 0     7%   356450304  4651417600 . offset 00000000153f0000
  coverage file 1     0%   0          4651417600 . offset 0000000000000000

Sadly I'm illiterate in .bms scripts, but from what I can tell it seems to be trying to read a file the same size as the .iso from a certain offset. What's the exact issue here? Could the file structure above in my post be wrong?

If you open the iso in, for example, VGMToolbox, the first entry in the TBL file is 0x15f90 which is sector 90000 where the first file starts.  I've ran the script on the whole TBL file and it extracts everything fine for me.  You run the script on the TBL file not the ISO, if that's the issue ...

 

  • Thanks 1
Link to comment
Share on other sites

12 hours ago, DKDave said:

You run the script on the TBL file not the ISO

Yes, at one point I was trying to open the .iso instead of the .tbl file. The problem was I had renamed your .txt script to .bms, and somehow it broke functionality with QuickBMS. I've just tried it with your original .txt script and it now works. Very impressive.

Link to comment
Share on other sites

  • ldvd changed the title to Siren (2003, PS2) .tbl and chunk files

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...