MLVL (File Format): Difference between revisions

Jump to navigation Jump to search
>Aruki
imported>Darkszero
(5 intermediate revisions by one other user not shown)
Line 273: Line 273:
| u32
| u32
| 1
| 1
| '''Layer State ID Count'''
| '''Layer GUID Count'''
| Count of layer state IDs in the next array.
| Count of layer GUIDs in the next array.
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
Line 280: Line 280:
| {{check}}
| {{check}}
|-
|-
| [[Saved State ID]]
| [[GUID]]
| ''Layer State ID Count''
| ''Layer GUID Count''
| '''Layer State ID Array'''
| '''Layer GUID Array'''
| Array of saved state IDs for each layer. These IDs are responsible for storing the layer's active state in the save file and are referenced by ScriptLayerController objects.
| Array of GUIDs for each layer. These GUIDs are responsible for storing the layer's ''Active'' state in the save file and are referenced by ScriptLayerController objects.
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
| {{nocheck}}
Line 362: Line 362:
| Script message sent to the receiver object.
| Script message sent to the receiver object.
|-
|-
| 0x10
| 0xA
| bool
| bool
| '''Active'''
| '''Active'''
| Whether this Memory Relay object is active by default; almost always 0.
| Whether this Memory Relay object is active by default; almost always 0.
|-
|-
| 0x11
| 0xB
| colspan=3 {{unknown|End of Memory Relay connection}}
| colspan=3 {{unknown|End of Memory Relay connection}}
|}
|}
Line 509: Line 509:
This is a data chunk appearing in the area definition in Metroid Prime 1 and 2 that lists all assets needed to load the area. It's extremely important that this list be optimized and complete, as all assets listed here will be perpetually kept in memory as long as the area itself is in memory; the list also specifies the order that assets are loaded in, so '''it must be grouped by load order to roughly match the [[PAK (File Format)|PAK]] file for optimized load times'''. Assets that are missing will still be dynamically loaded after the area itself is loaded, but this will cause the game to freeze up until the load is finished. There are a few exceptions that are excluded from this list in the original game files (and should be excluded in custom MLVLs as well to avoid out-of-memory crashes):
This is a data chunk appearing in the area definition in Metroid Prime 1 and 2 that lists all assets needed to load the area. It's extremely important that this list be optimized and complete, as all assets listed here will be perpetually kept in memory as long as the area itself is in memory; the list also specifies the order that assets are loaded in, so '''it must be grouped by load order to roughly match the [[PAK (File Format)|PAK]] file for optimized load times'''. Assets that are missing will still be dynamically loaded after the area itself is loaded, but this will cause the game to freeze up until the load is finished. There are a few exceptions that are excluded from this list in the original game files (and should be excluded in custom MLVLs as well to avoid out-of-memory crashes):


* [[SCAN (File Format)|SCAN]] files and their dependencies are not included in the list. These are loaded dynamically after the area itself is finished loading.
* [[SCAN (File Format)|SCAN]] files and their dependencies are not included in the list in MP1. These are loaded dynamically after the area itself is finished loading, presumably so that scan dependencies are not kept in memory when the scan isn't actually in use. In MP2, SCANs are actually included in the list but their dependencies aren't.
* [[ANCS (File Format)|ANCS]] per-character dependencies for PlayerActor script instances are not included; this allows the game to avoid keeping assets in memory for suits that the player doesn't have. The exception is the Empty Suit character (character index 5), which is a low-memory-overhead character that allows for the list to include all common assets that are stored in the file per-character (such as particle effects).
* [[ANCS (File Format)|ANCS]] per-character dependencies for PlayerActor script instances are not included; this allows the game to avoid keeping assets in memory for suits that the player doesn't have. The exception is the Empty Suit character (character index 5 in MP1, and index 3 in MP2), which is a low-memory-overhead character that allows for the list to include all common assets that are stored in the file per-character (such as particle effects).
* The skybox model and its dependencies are not included.
* The skybox model and its dependencies are not included.


Line 522: Line 522:
! Name
! Name
! Notes
! Notes
|-
| u32
| 1
| {{unknown|Unknown}}
| Always 0?
|-
|-
| u32
| u32
Line 606: Line 611:
|-
|-
| 0x4
| 0x4
| u32
| u16
| '''Dock Index'''
| '''Dock Index'''
| Index of this dock within its area.
| Index of this dock within its area.
|-
| 0x6
| u16
| '''Load other'''
| TODO
|}
|}


Anonymous user

Navigation menu