SIO2 PS2 Memcard Filesystem

The PS2 uses a double-indirect indexed FAT filesystem to keep track of clusters. It also has support for ECC and bad block detection, depending on MCMAN version.

Superblock Format

Byte Name
0-27 Magic string. Should contain Sony PS2 Memory Card Format
28-39 Version string. Has the format 1.x.0.0, where x is the minor version
40-41 Size in bytes of a page. Default 512
42-43 Pages per cluster. Default 2
44-45 Pages per erase block. Default 16
46-47 Set to -256. Doesn't seem to be used
48-51 Total clusters in the card. Default 8192
52-55 Offset of the first allocatable cluster, in cluster units. Immediately after the FAT
56-59 Offset of the cluster after the last allocatable cluster, relative to the first
60-63 Offset of the root directory cluster, relative to the first. Should be 0
64-67 Backup erase block. Should be the last block in the card, default 1023
68-71 Second backup block, should be the second-last block in the card
80-207 Array of 32 indirect FAT cluster indices. On a standard card, only one indirect cluster is used
208-335 Array of 32 bad blocks, which cannot be used. -1 indicates no entry
384 Memory card type. Should be 2, indicating a PS2 memory card
385 Card flags. Default 52hBit 0=ECC support if setBit 3=Card has bad blocksBit 4=Erased blocks have bits set to 0 if set

The superblock is located in the first page in the memory card.