BYML
BYML (not to be confused with BYAML used in games like Mario Kart 8), is a format used in Super Mario 3D Land to store data such as Map data.
NOTE: The entire file is in little endian.
Each section starts off with 0xC2 to denote a new section. (TODO: Find out what 0xC1 and 0xC0 mean ???)
Offset | Size | Description
| 0x00 | 2 | The magic ("BY")
| 0x02 | 2 | Version of the format (0x0001 in Super Mario 3D Land)
| 0x04 | 4 | Offset to the first section (Header info ???). Always 0x10
| 0x08 | 4 | Offset to the second section (Entries ???).
| 0x0C | 4 | Offset to the third section (Entry Data ???).
|
After the header data, there are a number of offsets to a string section (from the start of the section, not the file) along with one more (not included in header entry count) to point to the end of the section.
Offset | Size | Description
| 0x00 | 1 | Character for new section (0xC2)
| 0x01 | 1 | Number of entries
| 0x02 | 2 | Padding
|
1.3. Entry Info (???)
After the header data, there are a number of offsets to a string section (from the start of the section, not the file) along with one more (not included in header entry count) to point to the end of the section.
Offset | Size | Description
| 0x00 | 1 | Character for new section (0xC2)
| 0x01 | 1 | Number of entries
| 0x02 | 2 | Padding
| |