Difference between revisions of "User:Claris/Sandbox"

From Retro Modding Wiki
Jump to: navigation, search
m (Parax0 moved page User:Miles/Sandbox to User:Claris/Sandbox: Automatically moved page while renaming the user "Miles" to "Claris")
 
(6 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.
  
{{researchmoderate
 
|reason=Reason
 
}}
 
 
__TOC__
 
__TOC__
 +
 +
  
 
=Header=
 
=Header=
Line 18: Line 17:
 
|-
 
|-
 
|0x4
 
|0x4
|'''Magic Number''' 0xDEAFBABE
+
|'''Magic''' 0xDEAFBABE
 
|All
 
|All
 
|-
 
|-
Line 85: Line 84:
 
|Prime
 
|Prime
 
|-
 
|-
|0x3
+
|0x2
|?
+
|'''Message'''
 +
|Prime
 +
|-
 +
|0x1
 +
|? (Always 0)
 
|Prime
 
|Prime
 
|}
 
|}
  
=Rooms=
+
=Areas=
 
+
Should "room" be changed to "area"?
+
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 100: Line 101:
 
|-
 
|-
 
|0x4
 
|0x4
|'''Room count'''
+
|'''Area count'''
 
|All
 
|All
 
|-
 
|-
Line 108: Line 109:
 
|}
 
|}
  
For each room:
+
For each area:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 116: Line 117:
 
|-
 
|-
 
|0x4/0x8
 
|0x4/0x8
|'''Room Name .STRG'''
+
|'''Area Name .STRG'''
 
|All
 
|All
 
|-
 
|-
Line 124: Line 125:
 
|-
 
|-
 
|0x18
 
|0x18
|'''Axis Aligned Bounding Box'''
+
|'''Axis-Aligned Bounding Box'''
 
|All
 
|All
 
|-
 
|-
 
|0x4/0x8
 
|0x4/0x8
|'''Room .MREA'''
+
|'''Area .MREA'''
 
|All
 
|All
 
|-
 
|-
 
|0x4/0x8
 
|0x4/0x8
|'''Room ID''' (used by layer-switching objects)
+
|'''Area ID''' (used by layer-switching objects)
 
|All
 
|All
 
|-
 
|-
 
|0x4
 
|0x4
|'''Connected room count''' (CC)
+
|'''Connected area count''' (CC)
 
|Prime/Echoes/Corruption
 
|Prime/Echoes/Corruption
 
|-
 
|-
 
|0x2 x CC
 
|0x2 x CC
|'''Connected room numbers'''
+
|'''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.


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