Difference between revisions of "User:Claris/Sandbox"
From Retro Modding Wiki
(→Rooms) |
m (Parax0 moved page User:Miles/Sandbox to User:Claris/Sandbox: Automatically moved page while renaming the user "Miles" to "Claris") |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Note that file IDs are 4 bytes in Prime/Echoes and 8 bytes in Corruption/Returns. | Note that file IDs are 4 bytes in Prime/Echoes and 8 bytes in Corruption/Returns. | ||
− | |||
− | |||
− | |||
__TOC__ | __TOC__ | ||
+ | |||
+ | |||
=Header= | =Header= | ||
Line 18: | Line 17: | ||
|- | |- | ||
|0x4 | |0x4 | ||
− | |'''Magic | + | |'''Magic''' 0xDEAFBABE |
|All | |All | ||
|- | |- | ||
Line 85: | Line 84: | ||
|Prime | |Prime | ||
|- | |- | ||
− | | | + | |0x2 |
− | |? | + | |'''Message''' |
+ | |Prime | ||
+ | |- | ||
+ | |0x1 | ||
+ | |? (Always 0) | ||
|Prime | |Prime | ||
|} | |} | ||
− | = | + | =Areas= |
− | + | ||
− | + | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 101: | Line 101: | ||
|- | |- | ||
|0x4 | |0x4 | ||
− | |''' | + | |'''Area count''' |
|All | |All | ||
|- | |- | ||
Line 109: | Line 109: | ||
|} | |} | ||
− | For each | + | For each area: |
{| class="wikitable" | {| class="wikitable" | ||
Line 117: | Line 117: | ||
|- | |- | ||
|0x4/0x8 | |0x4/0x8 | ||
− | |''' | + | |'''Area Name .STRG''' |
|All | |All | ||
|- | |- | ||
Line 125: | Line 125: | ||
|- | |- | ||
|0x18 | |0x18 | ||
− | |'''Axis Aligned Bounding Box''' | + | |'''Axis-Aligned Bounding Box''' |
|All | |All | ||
|- | |- | ||
|0x4/0x8 | |0x4/0x8 | ||
− | |''' | + | |'''Area .MREA''' |
|All | |All | ||
|- | |- | ||
|0x4/0x8 | |0x4/0x8 | ||
− | |''' | + | |'''Area ID''' (used by layer-switching objects) |
|All | |All | ||
|- | |- | ||
|0x4 | |0x4 | ||
− | |'''Connected | + | |'''Connected area count''' (CC) |
|Prime/Echoes/Corruption | |Prime/Echoes/Corruption | ||
|- | |- | ||
|0x2 x CC | |0x2 x CC | ||
− | |'''Connected | + | |'''Connected area numbers''' |
|Prime/Echoes/Corruption | |Prime/Echoes/Corruption | ||
+ | |- | ||
+ | |0x4 | ||
+ | |? (always 0) | ||
+ | |Prime/Echoes | ||
+ | |} | ||
+ | |||
+ | ===Dependency List (Prime/Echoes)=== | ||
+ | |||
+ | Starts with [[DGRP_(File_Format)|DGRP]]. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Dependency Offset Count''' (OC) | ||
+ | |Prime/Echoes | ||
+ | |- | ||
+ | |0x4 x OC | ||
+ | |'''Dependency Offsets''' | ||
+ | |Prime/Echoes | ||
+ | |} | ||
+ | |||
+ | ===Docks=== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Dock count''' | ||
+ | |Prime/Echoes/Corruption | ||
+ | |} | ||
+ | |||
+ | For each dock: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Connection Count''' | ||
+ | |Prime/Echoes/Corruption | ||
+ | |} | ||
+ | |||
+ | For each connection: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Area Number''' | ||
+ | |Prime/Echoes/Corruption | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Dock Number''' | ||
+ | |Prime/Echoes/Corruption | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |? (Always 4, could be a count for the dock coordinates) | ||
+ | |Prime/Echoes/Corruption | ||
+ | |- | ||
+ | |0x30 | ||
+ | |4 sets of dock coordinates | ||
+ | |Prime/Echoes/Corruption | ||
+ | |} | ||
+ | |||
+ | ===.rel list (Echoes)=== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''.rel Count''' (RC) | ||
+ | |Echoes | ||
+ | |- | ||
+ | |? x RC | ||
+ | |'''.rels''' (zero-terminated) | ||
+ | |Echoes | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''.rel Offset Count''' (OC) | ||
+ | |Echoes | ||
+ | |- | ||
+ | |0x4 x OC | ||
+ | |'''.rel Offsets''' | ||
+ | |Echoes | ||
+ | |} | ||
+ | |||
+ | ===Remainder=== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |Always 0; could be something in previous games, such as the dock count, but I have no way of knowing for sure | ||
+ | |Returns | ||
+ | |- | ||
+ | |? | ||
+ | |'''Code Name''' (zero-terminated) | ||
+ | |Echoes, Corruption, Returns | ||
+ | |} | ||
+ | |||
+ | =After Areas= | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4/0x8 | ||
+ | |'''World .MAPW''' | ||
+ | |Prime/Echoes/Corruption | ||
+ | |- | ||
+ | |0x5 | ||
+ | |? (Always 0) | ||
+ | |Prime/Echoes/Corruption | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''.AGSC count''' (AC) | ||
+ | |Prime | ||
+ | |} | ||
+ | |||
+ | For each AGSC: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |? | ||
+ | |Prime | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''.AGSC ID''' | ||
+ | |Prime | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x1 | ||
+ | |? (Always 0) | ||
+ | |Prime | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Area Layer Info Count''' (should be identical to Area Count) | ||
+ | |All | ||
+ | |} | ||
+ | |||
+ | For each layer info: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Layer Count''' | ||
+ | |All | ||
+ | |- | ||
+ | |0x8 | ||
+ | |'''Layer Bit Flags''' (1 if a layer should be turned on in a new file) | ||
+ | |All | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Size | ||
+ | !Description | ||
+ | !Games | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Layer Name Count''' (LC) | ||
+ | |All | ||
+ | |- | ||
+ | |? x LC | ||
+ | |'''Layer Names''' (zero-terminated) | ||
+ | |All | ||
+ | |- | ||
+ | |0x4 | ||
+ | |(Unknown) Count (UC) | ||
+ | |Corruption/Returns | ||
+ | |- | ||
+ | |0x10 x UC | ||
+ | |? | ||
+ | |Corruption/Returns | ||
+ | |- | ||
+ | |0x4 | ||
+ | |'''Layer Name Offset Count''' (OC) | ||
+ | |All | ||
+ | |- | ||
+ | |0x4 x OC | ||
+ | |'''Layer Name Offsets''' | ||
+ | |All | ||
|} | |} |
Latest revision as of 15:05, 11 December 2016
.MLVL description here.
Note that file IDs are 4 bytes in Prime/Echoes and 8 bytes in Corruption/Returns.
Contents
Header
Size | Description | Games |
---|---|---|
0x4 | Magic 0xDEAFBABE | All |
0x4 | File Version | All |
0x4/0x8 | World Name .STRG | All |
0x4 | Dark World Name .STRG | Echoes |
0x4 | ? | Echoes/Corruption |
0x1 | Boolean, checks whether the next two values exist | Returns |
? | Level Number string (zero-terminated) | Returns |
0x10 | 4 floats | Returns |
0x4/0x8 | World .SAVW | All |
0x4/0x8 | World Skybox .CMDL | All |
Memory Relays (Prime only)
Size | Description | Games |
---|---|---|
0x4 | Memory Relay count | Prime |
For each memory relay:
Size | Description | Games |
---|---|---|
0x4 | Memory Relay Instance ID | Prime |
0x4 | Connected Instance ID | Prime |
0x2 | Message | Prime |
0x1 | ? (Always 0) | Prime |
Areas
Size | Description | Games |
---|---|---|
0x4 | Area count | All |
0x4 | ? | Prime |
For each area:
Size | Description | Games |
---|---|---|
0x4/0x8 | Area Name .STRG | All |
0x30 | Transformation Matrix | All |
0x18 | Axis-Aligned Bounding Box | All |
0x4/0x8 | Area .MREA | All |
0x4/0x8 | Area ID (used by layer-switching objects) | All |
0x4 | Connected area count (CC) | Prime/Echoes/Corruption |
0x2 x CC | Connected area numbers | Prime/Echoes/Corruption |
0x4 | ? (always 0) | Prime/Echoes |
Dependency List (Prime/Echoes)
Starts with DGRP.
Size | Description | Games |
---|---|---|
0x4 | Dependency Offset Count (OC) | Prime/Echoes |
0x4 x OC | Dependency Offsets | Prime/Echoes |
Docks
Size | Description | Games |
---|---|---|
0x4 | Dock count | Prime/Echoes/Corruption |
For each dock:
Size | Description | Games |
---|---|---|
0x4 | Connection Count | Prime/Echoes/Corruption |
For each connection:
Size | Description | Games |
---|---|---|
0x4 | Area Number | Prime/Echoes/Corruption |
0x4 | Dock Number | Prime/Echoes/Corruption |
Size | Description | Games |
---|---|---|
0x4 | ? (Always 4, could be a count for the dock coordinates) | Prime/Echoes/Corruption |
0x30 | 4 sets of dock coordinates | Prime/Echoes/Corruption |
.rel list (Echoes)
Size | Description | Games |
---|---|---|
0x4 | .rel Count (RC) | Echoes |
? x RC | .rels (zero-terminated) | Echoes |
0x4 | .rel Offset Count (OC) | Echoes |
0x4 x OC | .rel Offsets | Echoes |
Remainder
Size | Description | Games |
---|---|---|
0x4 | Always 0; could be something in previous games, such as the dock count, but I have no way of knowing for sure | Returns |
? | Code Name (zero-terminated) | Echoes, Corruption, Returns |
After Areas
Size | Description | Games |
---|---|---|
0x4/0x8 | World .MAPW | Prime/Echoes/Corruption |
0x5 | ? (Always 0) | Prime/Echoes/Corruption |
0x4 | .AGSC count (AC) | Prime |
For each AGSC:
Size | Description | Games |
---|---|---|
0x4 | ? | Prime |
0x4 | .AGSC ID | Prime |
Size | Description | Games |
---|---|---|
0x1 | ? (Always 0) | Prime |
0x4 | Area Layer Info Count (should be identical to Area Count) | All |
For each layer info:
Size | Description | Games |
---|---|---|
0x4 | Layer Count | All |
0x8 | Layer Bit Flags (1 if a layer should be turned on in a new file) | All |
Size | Description | Games |
---|---|---|
0x4 | Layer Name Count (LC) | All |
? x LC | Layer Names (zero-terminated) | All |
0x4 | (Unknown) Count (UC) | Corruption/Returns |
0x10 x UC | ? | Corruption/Returns |
0x4 | Layer Name Offset Count (OC) | All |
0x4 x OC | Layer Name Offsets | All |