7 Studios [Fantastic 4 (PS2)] .FS (Multiplatform)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
JackTheRipper
Posts: 51
Joined: Mon Jan 10, 2022 12:12 am

7 Studios [Fantastic 4 (PS2)] .FS (Multiplatform)

Post by JackTheRipper »

Seen in Fantastic 4 (2005, GC, PS2, Xbox, Win), Rise of the Silver Surfer (2007, PS2, Wii), Sopranos (2006, PS2).

Game Extractor by Watto didn't work for the PS2 version, Xbox version works.

Rise of the Silver Surfer is mismatched.

Endian LE [STR ] (PS2, Xbox, Win), Endian BE [ RTS] (GC, Wii)
Last edited by JackTheRipper on Sat Sep 03, 2022 12:55 am, edited 2 times in total.
BloodRaynare
Posts: 367
Joined: Fri Mar 10, 2017 7:23 am

Re: 7 Studios [Fantastic 4 (PS2)] .FS (Multiplatform)

Post by BloodRaynare »

Here's BMS script to extract your sample file
GC/Wii FS file is not supported yet (I need a sample file from those platforms). Also, hopefully the TYPE string ("STR " and "DIR ") of the TOCs are the same for other games.

Code: Select all

## 7 Studios (.FS) extractor script by BloodRaynare
## As seen in:
## Fantastic 4 (GC, PS2, Xbox, PC)
## Rise of the Silver Surfer (PS2, Wii)
## Sopranos (PS2)
## For use with QuickBMS: http://aluigi.altervista.org/quickbms.htm

goto 0 0 SEEK_END
FindLoc TOC string "STR " 0 "" 0
goto TOC

log MEMORY_FILE 0 0
log MEMORY_FILE2 0 0

for i = 0
   getDstring TYPE 4
   if TYPE == "END "
      break
   endif
   
   get SECTION_SZ long
   savepos CURRPOS
   if TYPE == "STR "
      log MEMORY_FILE2 CURRPOS SECTION_SZ
   else
      log MEMORY_FILE CURRPOS SECTION_SZ
   endif
   xmath SECTION_POS "CURRPOS + SECTION_SZ"
   goto SECTION_POS
next i

get TMP_SZ asize MEMORY_FILE
xmath FILES "TMP_SZ / 0x10"

for i = 0 < FILES
   get ZERO long MEMORY_FILE
   get OFFSET long MEMORY_FILE
   get SIZE long MEMORY_FILE
   get NAME_POS long MEMORY_FILE
   goto NAME_POS MEMORY_FILE2
   get NAME string MEMORY_FILE2
   math OFFSET * 0x800
   log NAME OFFSET SIZE
next i