Forbidden Siren (PS2, unknown archive type)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Hi there!

I'm interested in doing some language swapping/modding on the PS2 game Forbidden Siren, but I'm entirely new to this and have had no luck extracting the assets I'm interested in. I wonder if anyone can help?

The top level of the disc (all regions) is as per the attached image - I suspect the SIREN.* files are perhaps vfs archives and a good place to start?

Attached samples from both the US and Japanese games (I will need to explore both).

Thanks in advance for any clues or help :)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by aluigi »

Upload SIREN.TBL
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Thankyou aluigi - uploaded.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by aluigi »

Can you upload the whole SIREN.008 of the US version?
TBL contains everything but the OFFSET/SIZE structure is not very clear.
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

SIREN.008 here: https://we.tl/mTGEytfC87
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by aluigi »

No unfortunately it doesn't have any sense to me, without OFFSET and SIZE there is no way to extract the data.
I leave my work-in-progress script here for reference in case someone will find out what I'm missing, do NOT try it because doesn't work:

Code: Select all

# Forbidden Siren TBL/000
# script for QuickBMS http://quickbms.aluigi.org

open FDDE "tbl"
filexor 0xff
idstring "SDT4"
get FILES long
get TBL_SIZE long
get SOME_CRC long
get INFO_OFF long
get NAMES_OFF long
get DUMMY long  # 1
goto INFO_OFF
math LAST_ARCHIVE_NUM = -1
for i = 0 < FILES
    get DUMMY long
    get DUMMY short
    get DUMMY byte
    get ARCHIVE_NUM byte
    get NAME_OFF long

    savepos TMP
    math NAME_OFF + NAMES_OFF
    goto NAME_OFF
    get NAME string
    goto TMP

    if ARCHIVE_NUM != LAST_ARCHIVE_NUM
        math LAST_ARCHIVE_NUM = ARCHIVE_NUM
        get TMP basename
        string TMP p "%s.%03d" TMP ARCHIVE_NUM
        open FDSE TMP 1
    endif

    filexor ""
    cleanexit # this is not a working script!
    log NAME OFFSET SIZE 1
    filexor 0xff
next i
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Ok - thanks for the time and effort.

Leaving here also the entire contents of that IOP directory on the US disc, in case it can offer any clues.
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

i modded aluigi's script into this...

Code: Select all

get TBL_BNAME basename

open FDDE "tbl"
filexor 0xff
idstring "SDT4"
get FILES long
get TBL_SIZE long
get TBL03 long # probably some kind of hash...
get INFO_OFF long
get NAMES_OFF long
get TBL04 long # 1
goto INFO_OFF
math TBL_ARCNUM = 0
math TBL_TEMPNUM = 0
math TBL_ARCSIZE = 0x20000000
for i = 0 < FILES
    get OFFSET long
    get SIZE long
    get NAME_OFF long
   
   if i = 0
      set TBL05 long OFFSET
   endif
   
   math OFFSET - TBL05
   math OFFSET * 0x800
   set OFFSET2 long OFFSET

    if OFFSET u>= TBL_ARCSIZE
       math OFFSET % TBL_ARCSIZE
      xmath TBL_ARCNUM "OFFSET2 / TBL_ARCSIZE"
    endif
   
   string FULL_TBL_LOAD p "%s.%03d" TBL_BNAME TBL_ARCNUM
   open FDSE FULL_TBL_LOAD 1
   
   xmath STBL_DRAFT1 "SIZE + OFFSET"
   xmath STBL_TEMPSIZE1 "TBL_ARCSIZE - OFFSET"
   xmath STBL_TEMPSIZE2 "STBL_DRAFT1 - TBL_ARCSIZE"

    savepos TMP
    math NAME_OFF + NAMES_OFF
    goto NAME_OFF
    get NAME string
    goto TMP
   
   filexor ""
   if STBL_DRAFT1 u> TBL_ARCSIZE
      putvarchr MEMORY_FILE SIZE 0
      log MEMORY_FILE 0 0
      
      math TBL_TEMPNUM == TBL_ARCNUM
      math TBL_TEMPNUM + 1
      string TEMP_TBL_LOAD p "%s.%03d" TBL_BNAME TBL_TEMPNUM
      open FDSE TEMP_TBL_LOAD 2
      
      append
      for xp = 0 < 2
         if xp = 0
            log MEMORY_FILE OFFSET STBL_TEMPSIZE1 1
         elif xp = 1
            log MEMORY_FILE 0 STBL_TEMPSIZE2 2
         endif
      next xp
      append
      
      log NAME 0 SIZE MEMORY_FILE
   else
      log NAME OFFSET SIZE 1
   endif
   filexor 0xff
next i
this script is currently untested for re-importing stuff though
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

anyway, i managed to find at least some "SLDI" files upon extraction so i'll be opening a separate thread for that.

EDIT: in other news i'm basically done with the whole siren.tbl/siren.000 format now so if you're reading this in the future i have already released that new script of mine in my "Script Compendium" thread.
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Thanks for this! I've run the version of the script from your compendium thread, and it's extracting but only getting so far:

- open input file C:\...\Siren\US\SIREN.004

Error: incomplete input file 1: C:\...\Siren\US\SIREN.004

Can't read 1050722304 bytes from offset e15f4000.

coverage file 1 0% 0 536870912 . offset e15f4000

Last script line before the error or that produced the error:
55 log MEMORY_FILE OFFSET STBL_TEMPSIZE1 1
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

oh nooooooooooooooooooooo
just give me an entire day to solve this
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

hmm... i guess the issue seems to be on your end...

in order to see if anything was wrong with my script(if at all), i had to go through getting "legit" copies of the same game, this time getting the JP and US releases just for troubleshooting purposes. i tested the script on both releases - from debugging tests to the extraction part - and [quite literally] they all work fine for me.

in the meantime i'm refining my script by trying to find a better way to handle those split archives.
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Hmm, sure enough my existing US rip was not accurate, so I ripped the disc again and this time got a Redump md5 match.

However... still getting the same error! I'm just starting quickbms with your script, and pointing it to one of the SIREN.00* files. Is there another way?
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

okay, here is something i should have told you before since the beginning: i tested the script with quickbms_4gb_files.exe
i tried to investigate your problem by executing the one and only quickbms.exe executable, and guess what the problem is actually much worse than anticipated.

simply put, the script will simply spazz out in there to the point it triggers unexpected bugs like these...

Code: Select all

.
. 00000050
. 000003e0 get     OFFSET     0x001165ef 4
. 000003e4 get     SIZE       0x019e0004 4
. 000003e8 get     NAME_OFF   0x000005a4 4
. 00000000 putarr  OFFSET     0xe032f800 0:0
. 00000000 putarr  TBL_ARCNUM 0x00000004 0:0
. 00000000 putarr  STBL_DRAFT1 0xe1d0f804 0:0
. 00000000 putarr  STBL_DRAFT2 0x00000008 0:0
. 00001e78 get     NAME       "movie\data22.pss" -1
. 019e0004 putvarc            0x00000000 1
i used my publicly-available siren.bms script as a reference for this kind of error.
as for *how* i'm going to fix this one... well, what i'm confident in saying is that i'm starting to get a clear idea of this now.
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: Forbidden Siren (PS2, unknown archive type)

Post by AnonBaiter »

ookii, i finally got around to fix Marconi's issue - now the script is working 100% on quickbms
check back here for a new update
Marconi
Posts: 7
Joined: Wed Feb 14, 2018 8:35 pm

Re: Forbidden Siren (PS2, unknown archive type)

Post by Marconi »

Thanks for the continued work on this - I got a good look at the structure of the game. Unfortunately it confirmed that there are no subtitle triggers whatsoever during actual gameplay (non-cutscene) so any worthwhile undub for this title would require implementing such a subtitle feature from scratch :shock: .