[PS2] Donald PK - *PSS File Format recreate

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
OAleex
Posts: 52
Joined: Mon Nov 04, 2019 3:18 am

[PS2] Donald PK - *PSS File Format recreate

Post by OAleex »

Image

Hi guys, I'm trying to translate Donald PK from ps2.
My biggest problem is the video file, it seems simple, but, it has a secret, when I use PSS DEMUX to extract the *.pss file it generates *.dat files:
Image
and I don't know how to reconstruct this Pss, someone. Do you know how to recreate?

Download:
https://www.mediafire.com/file/ryd473bk ... E.rar/file
gledson999
Posts: 11
Joined: Fri Jan 27, 2017 1:07 pm

Re: [PS2] Donald PK - *PSS File Format recreate

Post by gledson999 »

The best choice is using BMS, as far i know, PSSPlex and PS2Strw doesn't wotk too.

But with this information, Aluigi could make one bms.

Code: Select all

// PS2 Video 
// PSS file format

// big endian

// header (26 bytes)
4 bytes (uint32) - section ID   // 0x00 0x00 0x01 0xBA - pack_start_code
22 bytes - unknown


// ADS Audio stream = SpuStreamHeader + SpuStreamBody
// Note: Audio streams are optional
// Note: Audio structures are little endian
// Note: streams can be stored in different order

4 bytes (uint32) - section ID //  0x00 0x00 0x01 0xBD - private_stream_1 (audio data)
19 bytes - unknown

// SpuStreamHeader
4 bytes (char) - signature // "SShd"
4 bytes (uint32) - struct size // 24
4 bytes (uint32) - type // 0 - PCM 16bit big endian
                        // 1 - PCM 16bit little endian
                        // 2 - SPU2-ADPCM (VAG)
4 bytes (uint32) - sampling rate // e.g. 48000
4 bytes (uint32) - number of channels  // e.g. 2
4 bytes (uint32) - interleave size // has to be 512
4 bytes (uint32) - loop start block address
4 bytes (uint32) - loop end block sddress

// SpuStreamBody
4 bytes (char) - signature // "SSbd"
4 bytes (uint32) - size of audio data
x bytes - audio data

x bytes - data streams

x bytes - MPEG2 video stream


4 bytes (uint32) - padding ID?  // 0x00 0x00 0x01 0xBE
2 bytes (uint16) - unknown
x bytes - padding // 0xFF 0xFF 0xFF 0xFF...

4 bytes (uint32) - file end ID  // 0x00 0x00 0x01 0xB9 - MPEG_program_end_code