SM64DS Level Format Doc v2.3.2
SM64DS Level Format Doc v2.3.2
By Mega-Mario
SM64DSe, since version 1.1, creates new overlays (typically overlays 103 to 154),
and moves
each level's data in its new overlay, restructuring it in a more unified structure.
The new
overlays are also programmed to load the old overlays they are replacing, so that
objects
relying on the old overlays still work.
This header is generated by SM64DSe's patching, and isn't found under this form in
the original game data.
However, the block from 0x60 to 0x7C (28 bytes) can be found in a similar format in
the original level overlays,
but at varying offsets. The block from 0x54 to 0x5B (7 bytes) is originally
hardcoded in the game binary.
The dword at 0x5C isn't an original feature of the game engine-- it is made
possible by the new level format only.
The level music data was previously stored in a 156 byte table consisting of 52 3-
byte entries. Since version 2.1x,
music data has been moved to within the individual overlays.
All the data past 0x94 is copied from the original level overlays.
Header: 8 bytes
Data:
The objects table uses the same format as the one header[0x64] points to.
Except it typically only contains objects of type 0 and 5. The other object
types are contained by the header[0x64] table.