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.
Zero Tolerance for Disrespect

Siren (2003, PS2) .tbl and chunk files

Featured Replies

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

Solved by DKDave

  • Author
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

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

 

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

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

Have you guys made any more progress on this topic? I'm new to this side of things (Using QuickBMS and looking at .tbl files) but I'm interested in going deeper into Siren hacking. 

 

Currently I am recieving an error when using the siren_tbl.txt script. Error info: (

- error in src/file.c lime 633: fdnum_open()

Error: No such file or directory

 

last script line before the error or that produced the error:

7 open FDSE "Siren.iso" 1

)

Apologies if I'm just kind of jumping in here and not doing things as I should. I'm not used to formums so please forgive me. If I'm breaking rules or being cumbersome in any way then please just let me know. I'll happily conform to the way of things are done around here. 😊 Hoping to get things snowballing besides the usual ram hacks and freecam stuff for Siren. 

17 minutes ago, ElixerShibito333 said:

Have you guys made any more progress on this topic? I'm new to this side of things (Using QuickBMS and looking at .tbl files) but I'm interested in going deeper into Siren hacking. 

 

Currently I am recieving an error when using the siren_tbl.txt script. Error info: (

- error in src/file.c lime 633: fdnum_open()

Error: No such file or directory

 

last script line before the error or that produced the error:

7 open FDSE "Siren.iso" 1

)

Apologies if I'm just kind of jumping in here and not doing things as I should. I'm not used to formums so please forgive me. If I'm breaking rules or being cumbersome in any way then please just let me know. I'll happily conform to the way of things are done around here. 😊 Hoping to get things snowballing besides the usual ram hacks and freecam stuff for Siren. 

I'm not sure what you mean by further progress?

You need to run the QuickBMS script on the SIREN.TBL file and you need the iso file in the same folder.  Either rename yours or change the name in the script to match your iso file.

It's possible other regions may not work the same, but it works fine on the US version.

 

59 minutes ago, DKDave said:

I'm not sure what you mean by further progress?

You need to run the QuickBMS script on the SIREN.TBL file and you need the iso file in the same folder.  Either rename yours or change the name in the script to match your iso file.

It's possible other regions may not work the same, but it works fine on the US version.

 

My apologies. I just really don't know how this works. Changing the name in the script to fit my ISO seems to have worked. I also use the US version. I appreciate your response and explanation greatly. 

 

What I meant by further progress is if anyone has unpacked any of the .pac files. I believe the "Event_demo" folder contains data for each level. (Script, Level parts, characters, bindings, sounds, etc) and was just curious. I'm interested in learning how .pac files work so I can do more than what I do with Cheat Engine and PCSX2Dis for this game. 

 

Again, I appreciate your helpful reply and kindness! 

Create an account or sign in to comment

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.