Archive for July, 2007

Unlocking the AR Max Save Format

Ar max packagingThe AR Max Save Format is one of the most popular formats used for save transferring to date. Since it’s release it has been widely accepted as the default save format at Game FAQS and was the format I was asked most about supporting.

Over the weekend I was able to steal enough time to write and release a DLL, ironically named maxDLL, that allows anyone to easily support AR Max saves in their program or application. It’s had a few downloads, more than I expected to be honest, and so far I’ve not had any complaints so I’m assuming it’s working alright for everyone. Looking back over my work in preparation to release a format document I noticed I left out one crucial ability; reading the Root/ID from an existing save. Without this command conversions to another format can be tricky.

I’m literally about to add this function to the DLL as soon as I’ve stopped writing. I’ll be looking at another weekend release to give people time to report bugs or ask for features, once maxDLL v2 is out I’ll be producing a document detailing the .max save format and as ever, publishing it PS2 Save Tools

I’m also considering releasing several DLL’s supporting various save formats with the ultimate goal being a single DLL that will handle all supported save types.

Tags: ,

PCSX2 memory card format revisited, again!

A while ago I took a couple of casual looks into the the format of the PS2 Memory Card images created by PCXS2. My initial thoughts were pretty basic and my follow up identified the basics of the format and also mentioned the ECC bytes I mistook for a regular checksum, thanks to alkarl and Matt for the corrections.

The other week I wrote out the code in Delphi to check and update the ECC sections and was set to delve into the format wholeheartedly. Until I found that Ross Ridge had been there and completed the work already!

Ross has put the information into the public domain, anyone interested should take a look at his excellent technical breakdown of the PlayStation 2 Memory Card File System and also give mymc, a tool for working with PCXS2 Memory Card images, a try.

Tags: ,

AR Max save format details coming soon

Ar max packagingThanks to some sterling work by Ross Ridge, who has already completed work on two projects I was looking at starting, the details of the .max PS2 save format have now been uncovered.

I’m documenting the file structure and compression used and also preparing a DLL that will allow people to add .max support to their programs. As a taster here’s the .max header, part 1 of a 3 part system:

TMaxheader = record
   magic : array[0..11] of char; //Ps2PowerSave
   checksum : integer; //CRC32 of entire file with checksum area treated as all 0’s
   dirname : array[0..31] of char; //parent directory name
   iconSysName : array[0..31] of char; //icon.sys text
   compressedSize : integer; //size of compressed data
   fileNum: integer; //number of files
   length: integer; //size of uncompressed data

What really suprised me is that the .max format has no provision for recording file attributes! Unlike the .psu format which maintains file system attributes, cruicial for accurate restoration of files back to a PS2 memory card, the .max format appears to restore files with a generic set of attributes. Luckily, or even by design, these attributes match those required by GTA saves but this runs the risk that a file is restored without the correct attributes and a different game will treat the save as corrupt.

On the same note, I’m concerned that the .max format does not support PSOne and Pocketstation files as these require a specific attribute to be set. More investigation is required for clarification.

Tags: , ,