Difference between revisions of "User:Claris/Sandbox"

From Retro Modding Wiki
Jump to: navigation, search
(Throwing in-progress MLVL stuff here for now)
 
m (Parax0 moved page User:Miles/Sandbox to User:Claris/Sandbox: Automatically moved page while renaming the user "Miles" to "Claris")
 
(7 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 55: Line 54:
 
|0x4/0x8
 
|0x4/0x8
 
|'''World Skybox .CMDL'''
 
|'''World Skybox .CMDL'''
 +
|All
 +
|}
 +
 +
=Memory Relays (Prime only)=
 +
 +
{| class="wikitable"
 +
!Size
 +
!Description
 +
!Games
 +
|-
 +
|0x4
 +
|'''Memory Relay count'''
 +
|Prime
 +
|}
 +
 +
For each memory relay:
 +
 +
{| class="wikitable"
 +
!Size
 +
!Description
 +
!Games
 +
|-
 +
|0x4
 +
|'''Memory Relay Instance ID'''
 +
|Prime
 +
|-
 +
|0x4
 +
|'''Connected Instance ID'''
 +
|Prime
 +
|-
 +
|0x2
 +
|'''Message'''
 +
|Prime
 +
|-
 +
|0x1
 +
|? (Always 0)
 +
|Prime
 +
|}
 +
 +
=Areas=
 +
 +
{| class="wikitable"
 +
!Size
 +
!Description
 +
!Games
 +
|-
 +
|0x4
 +
|'''Area count'''
 +
|All
 +
|-
 +
|0x4
 +
|?
 +
|Prime
 +
|}
 +
 +
For each area:
 +
 +
{| class="wikitable"
 +
!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_(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
 
|All
 
|}
 
|}

Latest revision as of 16: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