*.cfs
Code:
struct CfsFile
{
int nameLen;
char fileName[nameLen];
int UncompressedSize;
int CompressedSize;
int offsetInCfs;
}
struct CfsHeader
{
char identifier[4];
int unknown001;
int version;
int numFiles;
int nulled;
CfsFile files[numFiles];
};
Additional info:
The identifier is always "\x63\x66\x73\x0A".
Filenames are XORed with 0x3A
The files can be found in the Cfs at Offset, and are CompressedSize in length
Files are LZMA compressed, UncompressedSize is the size after decompression.
----------------------------------------------------
C9CfsInfo.dat:
Code:
struct CfsInfoFile
{
int nameLength;
char fileName[nameLength];
int UncompressedSize;
int CompressedSize;
int offsetInCfsFile;
};
struct CfsInfoSection
{
char unknown001[8];
int numFiles;
CfsInfoFile files[numFiles];
};
struct CfsInfoHeader
{
char identifier[8];
int version;
int numSections;
int nulled;
CfsInfoSection sections[numSections];
};
Additional info:
The unknown001 wasn't used in the loading routine, so I have no idea what it does.
The identifier is always "\x63\x66\x73\x69\x74\x02\x08\x0A"
The file names are XORed with 0x3A
Each section corresponds with 1 cfs file.
I'll post more formats as I figure them out