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.