Playstation 1 Rom Archive

0 views
Skip to first unread message

Leto Corrales

unread,
Aug 3, 2024, 4:41:48 PM8/3/24
to idanoron


The access paths are stored in a special file generated at build time called manifest, It mimics a standard tree structure of folders/files but the root of the hierarchy is not defined, this way the contents of the psarc can be "mounted" by the system/game as part of his filesystem at any place and under any device letter/name

There are 3 different methods to generate this paths that defines how the .psarc contents are mounted by the system/game, this methods are enabled by the archive flags stored in the header, the system/game knows how to recreate the filesystem paths and mounts the .psarc contents by reading the archive flags that are needed to process the access paths in the manifest


The compression algorithms, the PS3 system, and the .psarc format, allows for 9 compression levels but in the practise only are used level 0 (no compression) or 9 (max compression used as the default compression level)

Compression level 9 for generic file types results as a compression ratio of around 50% of the original size, the final compression ratio can vary for different types of files, usually multimedia files (video, audio, etc) doesnt admits much compression because are already compressed originally (as example, max compression ratio for .BIK video and .MP3 audio doesnt reachs 1% or 2%). For this reason is better to dont compress multimedia files because the size reduction is ridiculous and read access times can be reduced (causing a delay/lag/freeze when trying to load the file)

Very small files (smaller than 100 bytes or so) as well as dummy files (0 bytes) doesnt admits compression because are so small that the compression algorithm is not able to reduce them, they will be stored without compression inside the .psarc archive even when is applyed compression over them. When listing the contents of a .psarc with this kind of files will be displayed with a percentage of 100% and both his compressed and decompressed sizes the same value

In windows all the paths uses the slash "\" but when the psarc is created the paths are stored inside the manifest as "/". When making a --list command over a psarc the slashes will appear as "/"

To make things more generic all examples in wiki uses full PC paths, this allows to place the sources (files to create, or psarc to extract), targets (files to create, or psarc to extract), and psarc.exe in any path of the PC, using full paths makes needed the use of the "strip" option in all creation process to remove part of the PC path and device letter from the access paths stored in the manifest

Using an xml is the most flexible way to use psarc.exe because has full support for all features of the tool (command line doesnt), some of the options of the tool are only available when using an xml, specially per-file attributes like: per-file compression (used by lot of games), or per-file extraction

Is the most rude method to create a psarc because all folders and files will be archived alphabetically based in his names (there is no controll of the ID's that will be assigned to each file in the manifest). Cant be used to rebuild psarcs

When rebuilding a psarc from a game is needed to preserve the original ID's of ALL the files inside the archive (is posible to replace files but never remove). By replacing files (e.g: by dummyes) all the others preserves his positions

The filelist is a plain .txt file where every file is defined by a single line, composed by his path, filename, and file extension, 1 line per file. Is posible to generate this kind of filelists automatically by using the output of the --list command and some regular expressions to replace characters

Batch. This is an useless example to show how the .psarcs are created sequentially and how to create several .psarc's with only one .xml, it uses all default values for compressions, formats, flags etc...

In step 1 it creates an egg.psarc containing a dummy.txt. In step 2 it creates a chiken.psarc containing the egg.psarc made in step 1. In step 3 it creates an egg.psarc containing the chicken.psarc made in step 2 (egg.psarc created in step 3 overwrites egg.psarc made in step 1)

For rebuilding purposes is needed to verify if some of this files are present in the original filelist, by searching for this file extensions (.sdata .sprx and .self), though file extensions could not be accurate because game developers can use custom names for file extensions

When rebuilding a psarc is needed to preserve the original positions of all the files inside the archive (because every file in the original psarc has assigned an ID number, and after rebuilding this numbers must match with the original positions). for this same reason when rebuilding is not a good idea to remove files (because the other files that comes after will be displaced). When the purpose of the rebuild is to reduce the size (by removing languages, etc...) the method consists in replacing them by dummies (0kb files), this dummies preserves the positions of all the files

This need to preserve the original positions of all the files inside the archive in the practise means there are only 2 methods to rebuild a psarc: "by filelist" or "by file". For both is needed to create a list of files

The other values in the header that needs to be verifyed are the TOC entry size and the Block size, is needed to know if the original psarc we are trying to rebuild uses the default values (all i found used defaults), otherway is posible to use non-default values this way:

The output of the list command has some characters that are needed ro remove or replace, the purpose of automatizing this process by using regular expressions is because usually psarc files contains thousand of files, the examples used here are commands for fnr.exe (find and replace tool) and contains regular expressions (to search) and a character strings (to replace)

This is a perfect filelist.txt that can be used for the rebuild method by filelist from command line (usefull when the psarc doesnt uses per-file compression), remember is needed to use the strip option

The purpose of this step is to fix a posible problem that could appear in step 6, the psarc used as an example in step 1 to generate the initial list of files was created without archive flags (in other words, his access paths in the manifest was relative paths)

The other posible paths format used by the manifest is when the psarc was created with absolute archive flag, in this case all the lines of the file list in step 5 starts with an slash \ (e.g: the first file in the list that is supposed to be archived in the root of the psarc should be listed as \dummy.txt instead of dummy.txt

In step 6 is added a local path that ends with an slash too... so the result is C:\psarctests\source files\test\\dummy.txt (note the double slash), this is wrong and this step fixes it blindlly (because doesnt matters if the problem exists or not, the final result will be the same)

The purpose of this step is to fix a posible problem that only happens when the .psarc was created with absolute flag (when the paths created from the list command starts with an slash, like in the examples)

ADC Archive aims to collect and share your memories and personal experiences of the theatre. Whether you are a current student, alumnus, former employee, or patron of the theatre, we want to hear from you! To submit your story, or for more information, please send an email to arc...@adctheatre.com. To view other submissions to the archive you can click here.

Whilst you are here
As with other theatres and small arts venues up and down the country, closing our doors has had a significant impact on our financial position. If you are able to consider making a donation to the ADC Theatre please click here.

The complete archive of PS Magazine is availabe for download in PDF format at The PS Magazine Archive. Issues can also be downloaded at VCU Libraries Digital Collection (this site has downloads of all the index issues, very handy!) For the most recent issues, go to the LOGSA website.

Will Eisner, one of the earliest American cartoonists of "The Spirit" fame, was conscripted into the US Army in 1942 and assigned to the camp newspaper in Aberdeen. He quickly became involved with the Army publication, Army Motors, where he helped develop the publication into a comic-style monthly encouraging preventative maintenance of equipment within the US Army. Creating fictional characters such as Joe Dope in a cartoon format was a success in the Army teaching their ranks to respect and perform preventative maintenance. The Pentagon assigned Will Eisner as editor to their ordance Firepower magazine while he continued illustrating Army Motors.PS MagazineAfter leaving the Army, Will incorpated American Visuals Corporation which became the civilian contractor to the US Army for the illustration of the newly created Preventative Maintenance magazine for the Army, PS Magazine (PS representing Postscript). What started as a risky project by the Army to popularize previously neglected preventative maintenance through cartooned humor became a stunning success with monthly editions of PS Magazine still published and distributed to a vast audience, both government and civilian. Will Eisner and PS Magazine are studied at the reference site, www.willeisnerandpsmagazine.com.PS Magazine ArchiveIncluded in this digital library are curated and archived copies of PS Magazine since June 1951 collected with assistance directly from US Army LOGSA, Wikipedia, Virgina Commonwealth University, and RadioNerds.NSN Depot's Digital PS Magazine CollectionNSN Depot has created this archive and published it here as it has and still contains valuable information for the defence and civilian communities for operating, repairing and maintaining equipment of US Military origin for safe and extended use.Questions?

c80f0f1006
Reply all
Reply to author
Forward
0 new messages