PlayStation archive (PSARC)

From PS3 Developer wiki
Jump to navigation Jump to search

Description

PlayStation ARChive is a container that allows subfolders and per-file compression using zlib or lzma with 9 compression levels

Structure

See Discussion page

Header

Table 1

Table 2

Etc

PSARC Flags
Hexadecimal
(big endian)
Decimal Binary
(flags)
Flag Name Notes
00 00 00 01 1 00000000 00000000 00000000 00000001
00 00 00 02 2 00000000 00000000 00000000 00000010
00 00 00 04 4 00000000 00000000 00000000 00000100
00 00 00 08 8 00000000 00000000 00000000 00001000
00 00 00 10 16 00000000 00000000 00000000 00010000
00 00 00 20 32 00000000 00000000 00000000 00100000
00 00 00 40 64 00000000 00000000 00000000 01000000
00 00 00 80 128 00000000 00000000 00000000 10000000
  • Flags are stored in the header as a big endian number, and defines the characteristics and structure of the archive when it was created

PSARC Tools

There are several versions of PSARC related tools, features has been implemented along the different versions and is hard to keep a record of them, please help filling the info in the page

GUI versions are derivated from the command line versions

Command line versions

1.60.008 SDK : x
1.92.001 SDK : x
3.40.001 SDK : psarc-138.002 (C++), built on Feb 15 2010 at 16:17:41
3.41.001 SDK : psarc-138.002 (C++), built on Feb 15 2010 at 16:17:41
3.60.001 SDK : psarc-138.002 (C++), built on Feb 15 2010 at 16:17:41
3.70.001 SDK : psarc-138.002 (C++), built on Feb 15 2010 at 16:17:41
4.00.001 SDK : psarc-1310.001 (C++), built on Nov 16 2011 at 03:31:36
4.50.001 SDK : psarc-1310.001 (C++), built on Nov 16 2011 at 03:31:36

PSARC

usage:
        psarc verb [options] [file...]
        psarc --xml=XMLFILE
verbs:
 create                                  Create an archive. (default)
 extract                                 Extract contents of an existing archive.
 list                                    List contents of an existing archive.
 dump                                    Print detailed info about archive for unit testing.
 verify                                  Verify an existing archive's structural integrity and ensure that all files can be decompressed.
 dtd                                     Display a DTD describing psarc's XML input syntax.
general options:
 -h, --help                              Show this help message and exit.
     --version                           Display version and exit.
 -d, --debug                             Debug: Show debug messages.
 -v, --verbose                           Verbose: Show additional progress. (default)
 -q, --quiet                             Quiet: Don't show any progress.
 -y, --overwrite                         Overwrite existing files when creating/extracting.
 --xml=XMLFILE                           XML list of actions to perform.
create options:
 -oFILE, --output=FILE                   Archive filename to create.
 -IINPUTFILE, --inputfile=INPUTFILE      Inputfile listing files to archive. Consider --xml instead, which gives you more control.
 -m, --mself                             Create a PSARC-MSELF hybrid file for PS3, which can contain encrypted special files like SDATA, SPRX, and SPU SELF.
 --zlib                                  Use zlib when compressing. (default)
 --lzma                                  Use LZMA when compressing. (usually for PS3 PSN)
 --level=N                               Compression quality. 1 is fastest, 9 is best. (default = 9)
 -N, --nocompress                        Store all files uncompressed in the archive.
 -bBS, --blocksize=BS                    Use blocks of size BS. (default = 64KiB)
 -jJOBS, --jobs=JOBS                     Compression threads to run at a time. (default = number of CPUs)
 -sREGEX, --strip=REGEX                  Perl-compatible regex specifying a prefix to strip from the pathnames stored in the archive. This may be specified more than once. (default = current dir)
 -S, --strip-all                         Strip all paths from files stored in the archive.
 -a, --absolute                          Make the paths within the archive absolute.
 -R, --relative                          Make the paths within the archive relative. (default)
 -i, --ignorecase                        Make the archive directory case-insensitive.
 --exclude=WILDCARD                      Wildcard specifying files to exclude.
 --skip-missing-files                    If set then ignore it when a file cannot be found.
 --mergedups                             Compare the content of all files, and merge identical files so that only one copy of the data is included.
extract options:
 --input=FILE                            Archive to extract files from. (default is first file argument)
 --to=DIRECTORY                          Directory to write extracted files to. (default is current directory)

GUI versions

PS3 Games or Apps using PSARC files

Game PSARC's Notes
TITLE_ID TITLE Version Compression Block Size Flags
Uncharted 2
The Last Of Us
Killzone 3
God of War. Ascension
Mass Effect 3
Ape Escape 00010004 (v1.4) zlib 10000 2
Ni No Kuni .psarc file extensions renamed to .adat
Motorstorm. Pacific Rift
Warhawk
  • Other games that probably uses PSARC's
    • Uncharted 1?, and 3?
    • Killzone colletion ?
    • God of War. III ?
    • God of War. Collection ?
    • other Motorstorms ?