MLVL (File Format): Difference between revisions

Jump to navigation Jump to search
m
>Aruki
m (adding research template and splitting off attached area IDs)
>Aruki
(8 intermediate revisions by 2 users not shown)
Line 112: Line 112:
| [[SAVW (File Format)|SAVW]]
| [[SAVW (File Format)|SAVW]]
| 4/8
| 4/8
| '''World save settings'''
| '''SaveWorld ID'''
| {{check}}
| {{check}}
| {{check}}
| {{check}}
Line 120: Line 120:
| [[CMDL (File Format)|CMDL]]
| [[CMDL (File Format)|CMDL]]
| 4/8
| 4/8
| '''World skybox model'''
| '''World skybox CMDL ID'''
| {{check}}
| {{check}}
| {{check}}
| {{check}}
Line 165: Line 165:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| 0x0
| 0x0
Line 170: Line 174:
| 4
| 4
| '''Memory Relay instance ID'''
| '''Memory Relay instance ID'''
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| 0x4
| 0x4
Line 175: Line 183:
| 4
| 4
| '''Target instance ID'''
| '''Target instance ID'''
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| 0x8
| 0x8
| u32
| u16
| 2
| 2
| '''Message'''
| '''Message'''
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| 0x9
| 0x10
| u8
| u8
| 1
| 1
| {{unknown|'''Unknown''' (always 0)}}
| {{unknown|'''Unknown''' (always 0)}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|}
|}


Line 260: Line 280:
| {{check}}
| {{check}}
|-
|-
| u32
| u32/u64
| 4/8
| 4/8
| '''Area ID'''; used by layer-switching objects
| '''Area ID'''; used by layer-switching objects
Line 271: Line 291:
==== Attached Areas ====
==== Attached Areas ====


This part contains a small table listing what areas within the world are attached (connected) to this one. This is done by using indices into the MLVL's area table; so an index if 0 indicates the first area listed in the MLVL, for example.
This part contains a small table listing what areas within the world are attached (connected) to this one. This is done by using indices into the MLVL's area table; so an index of 0 indicates the first area listed in the MLVL, for example.
 


{| class="wikitable"
{| class="wikitable"
Line 285: Line 304:
| u32
| u32
| 4
| 4
| '''Attached area ID count''' (AC)
| '''Attached area index count''' (AC)
| {{check}}
| {{check}}
| {{check}}
| {{check}}
Line 319: Line 338:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| 0x0
| 0x0
Line 324: Line 347:
| 4
| 4
| '''Layer count''' (LC)
| '''Layer count''' (LC)
| {{check}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| 0x4
| 0x4
Line 329: Line 356:
| 4 × LC
| 4 × LC
| '''Layer dependency offsets'''
| '''Layer dependency offsets'''
| {{check}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|}
|}


Line 339: Line 370:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''Dock count''' (DC)
| '''Dock count''' (DC)
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| [[#Dock|Dock]]
| [[#Dock|Dock]]
| DC
| DC
| '''Docks'''
| '''Docks'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|}
|}


Line 355: Line 398:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''Connecting dock count''' (CC)
| '''Connecting dock count''' (CC)
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| [[#Connecting Dock|Connecting dock]]
| [[#Connecting Dock|Connecting dock]]
| CC
| CC
| '''Connecting docks'''
| '''Connecting docks'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| u32
| u32
| 1
| 1
| {{unknown|'''Unknown''' (always 4; possibly dock coordinate count)}}
| {{unknown|'''Unknown''' (always 4; possibly dock coordinate count)}}
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| vec3
| vec3
| 4
| 4
| '''Dock coordinates'''
| '''Dock coordinates'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|}
|}


Line 379: Line 442:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''Area index'''
| '''Area index'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| u32
| u32
| 1
| 1
| '''Dock index'''
| '''Dock index'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|}
|}


Line 397: Line 472:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''.rel count''' (RC)
| '''.rel count''' (RC)
| {{nocheck}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| string
| string
| RC
| RC
| '''.rel filenames''' (all zero-terminated)
| '''.rel filenames''' (all zero-terminated)
| {{nocheck}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| u32
| u32
| 1
| 1
| '''Layer count''' (LC)
| '''Layer count''' (LC)
| {{nocheck}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| u32
| u32
| LC
| LC
| '''Layer .rel offsets'''
| '''Layer .rel offsets'''
| {{nocheck}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
|}
|}


Line 428: Line 523:
| u32
| u32
| 4
| 4
| {{unknown|'''Unknown'''; always 0
| {{unknown|'''Unknown'''; always 0}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
Line 451: Line 546:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| [[MAPW (File Format)|MAPW]]
| [[MAPW (File Format)|MAPW]]
| 4/8
| 4/8
| '''World map'''
| '''World map'''
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| u32
| u32
| 1
| 1
| {{unknown|'''Unknown'''; always 0
| {{unknown|'''Unknown'''; always 0}}
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|-
|-
| u8
| u8
| 1
| 1
| {{unknown|'''Unknown'''; always 0
| {{unknown|'''Unknown'''; always 0}}
| {{check}}
| {{check}}
| {{check}}
| {{nocheck}}
|}
|}


Line 473: Line 584:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 4
| 4
| {{unknown|'''Unknown'''}}
| {{unknown|'''Unknown'''}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|-
|-
| [[AGSC (File Format)|AGSC]]
| [[AGSC (File Format)|AGSC]]
| 4
| 4
| '''Audio Group file'''
| '''Audio Group file'''
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|}
|}


There's two values following this, at the end of the AGSC table.
There's one byte following this, at the end of the AGSC table.


{| class="wikitable"
{| class="wikitable"
Line 489: Line 612:
! Size
! Size
! Description
! Description
|-
! MP1
| u32
! MP2
| 4
! MP3
| {{unknown|'''Unknown'''; always 0
! DKCR
|-
|-
| u8
| u8
| 1
| 1
| {{unknown|'''Unknown'''; always 0
| {{unknown|'''Unknown'''; always 0}}
| {{check}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
|}
|}


Line 513: Line 640:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 4
| 4
| '''Area layer count'''
| '''Area layer count'''
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|-
|-
| u64
| u64
| 8
| 8
| '''Area layer flags'''
| '''Area layer flags'''
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|}
|}


Line 531: Line 670:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''Layer count''' (LC)
| '''Layer count''' (LC)
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|-
|-
| string
| string
| LC
| LC
| '''Layer names''' (zero-terminated)
| '''Layer names''' (zero-terminated)
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|}
|}


==== Unknown Array ====
==== Layer IDs ====


This array is only present in Prime 3 and DKCR.
This array is only present in Prime 3 and DKCR, and is used by layer-switching objects.


{| class="wikitable"
{| class="wikitable"
Line 549: Line 700:
! Size
! Size
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 4
| 4
| {{unknown|'''Unknown count'''}} (UC)
| '''Layer ID count''' (IC)
| {{nocheck}}
| {{nocheck}}
| {{check}}
| {{check}}
|-
|-
| unknown struct
| u128
| 0x10 × UC
| 0x10 × IC
| {{unknown|'''Unknown struct array'''}}
| '''Layer ID'''
| {{nocheck}}
| {{nocheck}}
| {{check}}
| {{check}}
|}
|}


Line 567: Line 730:
! Count
! Count
! Description
! Description
! MP1
! MP2
! MP3
! DKCR
|-
|-
| u32
| u32
| 1
| 1
| '''Area count''' (AC)
| '''Area count''' (AC)
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|-
|-
| u32
| u32
| AC
| AC
| '''Area layer names offsets'''
| '''Area layer names offsets'''
| {{check}}
| {{check}}
| {{check}}
| {{check}}
|}
|}


Anonymous user

Navigation menu