Jump to content

Timesplitters: Future Perfect [Xbox][.pak]


Crusader

Recommended Posts

Wanted to extract TSFP .pak files, so later can use Noesis to convert the 3D models.

What I currently know so far:

Header = P5CK
Next 4bytes little endian = indexOffset(0x01eed800)
Num of files = based of rows at indexOffset
First file begins at 0x800

What I currently don't know:

Where the filesize hexdata is located at indexOffset?
What filetype(xbr xbt?)?
Where do other file data begin and end?

Here is sample:

...
0x01eed800  10bd b2b9 0008 0000 1c90 0000 0000 0000
0x01eed810  c022 3423 00a0 0000 8010 0000 0000 0000
0x01eed820  7d78 14a2 00b8 0000 c055 0500 0000 0000
0x01eed830  691e 27b9 0010 0600 d055 0100 0000 0000
0x01eed840  1374 861f 0068 0700 c055 0500 0000 0000
0x01eed850  c1e5 b3c6 00c0 0c00 c055 0000 0000 0000
0x01eed860  f14d 2de8 0018 0d00 d055 0100 0000 0000
0x01eed870  5b14 eba5 0070 0e00 9c15 0000 0000 0000
0x01eed880  2dbe d1d8 0088 0e00 28ab 0000 0000 0000
0x01eed890  6852 7249 0038 0f00 00ab 0000 0000 0000
...


Help would much be appreciate. :classic_biggrin:

 

Edited by Crusader
removed tsfpGun.7zip
Link to comment
Share on other sites

27 minutes ago, Crusader said:

Wanted to extract TSFP .pak files, so later can use Noesis to convert the 3D models.

What I currently know so far:

Header = P5CK
Next 4bytes little endian = indexOffset(0x01eed800)
Num of files = based of rows at indexOffset
First file begins at 0x800

What I currently don't know:

Where the filesize hexdata is located at indexOffset?
What filetype(xbr xbt?)?
Where do other file data begin and end?

Here is sample:

...
0x01eed800  10bd b2b9 0008 0000 1c90 0000 0000 0000
0x01eed810  c022 3423 00a0 0000 8010 0000 0000 0000
0x01eed820  7d78 14a2 00b8 0000 c055 0500 0000 0000
0x01eed830  691e 27b9 0010 0600 d055 0100 0000 0000
0x01eed840  1374 861f 0068 0700 c055 0500 0000 0000
0x01eed850  c1e5 b3c6 00c0 0c00 c055 0000 0000 0000
0x01eed860  f14d 2de8 0018 0d00 d055 0100 0000 0000
0x01eed870  5b14 eba5 0070 0e00 9c15 0000 0000 0000
0x01eed880  2dbe d1d8 0088 0e00 28ab 0000 0000 0000
0x01eed890  6852 7249 0038 0f00 00ab 0000 0000 0000
...


Help would much be appreciate. :classic_biggrin:

tsfpGun.7zip 9.97 MB · 2 downloads

Each index entry is 0x10 bytes, so basically you've got a value which could be a filename hash (0xb9b2bd10), then the file offset (0x800 for the first one), file size (0x901c), then a blank entry which may be uncompressed size which isn't used in this archive.

 

 

  • Thanks 1
Link to comment
Share on other sites

  • 5 months later...

Hey Crusader, what program are using to extract the .pak files? Could you share the script you used?

I've been trying to extract using quick BMS using a zenhax script but I'm getting a broken output - i think my offset or something is off

This is the script I've been trying to use:

<bms games="'Time Splitters Future Perfect'" platforms="'PC'" ext="PAK">
IDString 0 P5CK ;
SavePos TailOffOff 0 ;
Get TailOff Long 0 ;
Get TailSize Long 0 ;
Set J Long 2048 ;
GoTo J 0 ;
Get FileNum Int 0 ;
SavePos D 0 ;
Get B Byte 0 ;
GoTo D 0 ;
Set FNT String file ;
Set TJ Long TailOff ;
For T = 1 To FileNum ;
If B > 0 ;
GoTo D 0 ;
Get FNS Byte 0 ;
GetDString FN FNS 0 ;
SavePos D 0 ;
Else ;
Set FN String FNT ;
String FN += T ;
EndIf ;
GoTo TJ 0 ;
Get DUM Long 0 ;
SavePos FOO 0 ;
Get FO Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
Get DUM Long 0 ;
SavePos TJ 0 ;
Log FN FO FS #FOO FSO ;
Next T ;
</bms>

Would really appreciate your help :)

Link to comment
Share on other sites

6 minutes ago, DigDugDoug said:

Hey Crusader, what program are using to extract the .pak files? Could you share the script you used?

I've been trying to extract using quick BMS using a zenhax script but I'm getting a broken output - i think my offset or something is off

This is the script I've been trying to use:

<bms games="'Time Splitters Future Perfect'" platforms="'PC'" ext="PAK">
IDString 0 P5CK ;
SavePos TailOffOff 0 ;
Get TailOff Long 0 ;
Get TailSize Long 0 ;
Set J Long 2048 ;
GoTo J 0 ;
Get FileNum Int 0 ;
SavePos D 0 ;
Get B Byte 0 ;
GoTo D 0 ;
Set FNT String file ;
Set TJ Long TailOff ;
For T = 1 To FileNum ;
If B > 0 ;
GoTo D 0 ;
Get FNS Byte 0 ;
GetDString FN FNS 0 ;
SavePos D 0 ;
Else ;
Set FN String FNT ;
String FN += T ;
EndIf ;
GoTo TJ 0 ;
Get DUM Long 0 ;
SavePos FOO 0 ;
Get FO Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
Get DUM Long 0 ;
SavePos TJ 0 ;
Log FN FO FS #FOO FSO ;
Next T ;
</bms>

Would really appreciate your help 🙂

Yeah, that one you've been using doesn't seem to work.  Try this one attached.

 

ts_xbox.zip

Link to comment
Share on other sites

Ah amazing, thanks Dave! That seems to run successfully and actually extracts files with names which is a big step 😄

Crusader mentioned that he could read texture files with Noesis, I wonder if he had anything additional to his script to open the unknown filetypes within the pak files..

Edited by DigDugDoug
Link to comment
Share on other sites

  • 1 month later...
Posted (edited)

Not sure if this helps anyone, but there is a .pak extraction tool someone made: GitHub - OpenRadical/tspak: A small utility for extracting TimeSplitters .pak files.

From the README on that, the creator notes that for FP files you also need an accompanying .c2n checksum file in the same directory for it to work. I was unable to find any .c2n files in the xbox .iso file that I have, but I was able to get it from the Game Cube .iso file. Tried using tspak.exe on the xbox .pak file, with the gcn .c2n and (duh) it didn't work. 

but maybe it's possible to translate from one to the other, some how?

EDIT: forgot to add that I was able to use tspak on the game cube version, and it creates a nice directory structure with assets and models and textures all organized and named, but the file format is .gcr and .gct which I have no idea how to work with. I presume these are lower quality than the xbox textures, but at least I can get to them! No idea what to do next unfortunately

chr.zip

Edited by willshakeyspear
added gcn info
Link to comment
Share on other sites

On 4/8/2024 at 1:40 PM, DigDugDoug said:

Ah amazing, thanks Dave! That seems to run successfully and actually extracts files with names which is a big step 😄

Crusader mentioned that he could read texture files with Noesis, I wonder if he had anything additional to his script to open the unknown filetypes within the pak files..

https://github.com/OpenRadical/noesis/blob/main/plugins/python/fmt_xbox.py

On 6/3/2024 at 9:33 PM, willshakeyspear said:

Not sure if this helps anyone, but there is a .pak extraction tool someone made: GitHub - OpenRadical/tspak: A small utility for extracting TimeSplitters .pak files.

From the README on that, the creator notes that for FP files you also need an accompanying .c2n checksum file in the same directory for it to work. I was unable to find any .c2n files in the xbox .iso file that I have, but I was able to get it from the Game Cube .iso file. Tried using tspak.exe on the xbox .pak file, with the gcn .c2n and (duh) it didn't work. 

but maybe it's possible to translate from one to the other, some how?

EDIT: forgot to add that I was able to use tspak on the game cube version, and it creates a nice directory structure with assets and models and textures all organized and named, but the file format is .gcr and .gct which I have no idea how to work with. I presume these are lower quality than the xbox textures, but at least I can get to them! No idea what to do next unfortunately

chr.zip 11.8 kB · 2 downloads

Yes, tspak meant for GC version.

Link to comment
Share on other sites

  • 3 months later...
On 4/8/2024 at 12:18 AM, DKDave said:

Yeah, that one you've been using doesn't seem to work.  Try this one attached.

 

ts_xbox.zip 408 B · 8 downloads

Hello everyone, pleased to meet you, i have managed to extract all characters from TS2 and now i am trying with TS:Future Perfect i have tried this script and its true that it unpacks the .pak file but it unpacks all the files inside without any type or extension, is this intended?

 

Best regards!

Link to comment
Share on other sites

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