mcsfs
reverse engineering the Classpad 300 MCS filesystemStatus Quo
[Project abandoned due to time constraints]- All addresses are 4 byte aligned
This makes it easier to spot structure boundaries and pointers
since the last nibble will be always either 0, 4, 8 or C (in hex) - Offset and size information inside eg. struct VALMANSTRUCT are 32bit (4 byte / DWORD) big-endian
- Size information inside file headers is 16bit (2 byte / WORD) big-endian
- Pointers are 32bit (4 byte / DWORD) little-endian and appear to be offsetted by +0x00d6008 relative to the MCS file header
- Given the pointer offset it looks like the MCS image is stored in the higher range of a 16MB memory (0x00d60000 addresses space in the 13MB+ region)
- The filesystem structs given in MCSCommon.h of the CPSDK can be directly applied to the stored binary data in the MCS file in most cases
- The file header (struct VALMANSTRUCT) is prefixed by what appears to be a magic number (0x0c080100) in memory
