11
edits
imported>Antidote (Formatting) |
(added list of mappable object types for echoes) |
||
(20 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
The '''.MAPA file format''' defines the minimap models used in the Metroid Prime series. MAPA or '''MAP A'''rea consists of several sections: The header, | The '''.MAPA file format''' defines the minimap models used in the Metroid Prime series. MAPA or '''MAP A'''rea consists of several sections: The header, Mappable Object entries, Vertices, Primitive Headers, and the primitives. | ||
{{research|2|A few things are unknown in the header and | {{research|2|A few things are unknown in the header and Mappable Object Entries}} | ||
__TOC__ | __TOC__ | ||
== Format == | == Format == | ||
=== Header === | === Header === | ||
The header is very | The header is very straightforward, and has some minor differences depending on version. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 28: | Line 27: | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
| | |u32 | ||
|''' | |'''Type'''; unknown function in MP1/3, specifies whether the area appears on the Light (0) or Dark (1) map in MP2 | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
Line 35: | Line 34: | ||
|- | |- | ||
|u32 | |u32 | ||
| | |'''Visibility Mode'''; <ol start=0><li>Always Visible (Map Universe Area)</li><li>Visible on Visit or Map Station (most MP1 areas)</li><li>Visible on Visit only (latter areas of Ruins and Phendrana)</li><li>Never Visible</li></ol> | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|{{AABox}} | |||
|{{ | |'''Bounding Box''' | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|{{Vector3f}} | |||
|{{ | |'''Map Adjustment''' | ||
|{{nocheck}} | |{{nocheck}} | ||
|{{check}} | |{{check}} | ||
Line 55: | Line 54: | ||
|{{unknown|Unknown}} | |{{unknown|Unknown}} | ||
|{{nocheck}} | |{{nocheck}} | ||
|{{ | |{{nocheck}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|u32 | |u32 | ||
| | |'''Mappable Object Count''' | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|u32 | |u32 | ||
|''' | |'''Vertex Count''' | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
Line 77: | Line 70: | ||
|- | |- | ||
|u32 | |u32 | ||
|''' | |'''Primitive Count''' | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
Line 83: | Line 76: | ||
|- | |- | ||
|u32 | |u32 | ||
|''' | |'''Environment Variable Section Size''' | ||
|{{ | |{{nocheck}} | ||
|{{nocheck}} | |||
|{{check}} | |{{check}} | ||
|- | |||
|u32 | |||
|'''Environment Variable Count''' | |||
|{{nocheck}} | |||
|{{nocheck}} | |||
|{{check}} | |{{check}} | ||
|- | |||
| colspan=5 {{unknown|End of Header}} | |||
|} | |} | ||
Line 105: | Line 106: | ||
|} | |} | ||
=== | === Environment Variables === | ||
A | Only exists in Corruption; used for some areas with Landing Sites. | ||
{|class="wikitable" | |||
!Type | |||
!Count | |||
!Description | |||
|- | |||
|string | |||
|Environment Variable Count | |||
|'''Environment Variable''' | |||
|- | |||
| colspan=3 {{unknown|Pad to 4 bytes}} | |||
|- | |||
| colspan=3 {{unknown|End of Environment Variables}} | |||
|} | |||
=== Mappable Objects === | |||
A Mappable Object in the Metroid Prime series can include: Elevators, Doors, and Save/Missile Stations. Each Mappable Object entry consists of the following struct: | |||
{|class="wikitable" | {|class="wikitable" | ||
!Type | !Type | ||
Line 114: | Line 131: | ||
|- | |- | ||
|u32 | |u32 | ||
| | |'''Type'''; See tables below for MP1/MP2 types | ||
|{{ | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|u32 | |u32 | ||
|''' | |'''Visibility Mode'''; <ol start=0><li>Always Visible</li><li>Visible on Map Station or Area Visit</li><li>Visible on Door Visit</li><li>Never Visible</li><li>Visible on Map Station or Area Visit</li></ol> | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|u32 | |u32 | ||
| | |'''Editor ID'''; Same ID format as SCLY, indicates associated world object | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
| | |[[GUID]] | ||
| | |'''Saved State ID''' | ||
|{{nocheck}} | |{{nocheck}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
| | |u32 | ||
|{{unknown|Unknown}} | |{{unknown|Unknown}} | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
| | |{{Transform4f}} | ||
|''' | |'''Transform Matrix''' The Mappable Object's position in '''world''' space. | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |- | ||
|u32 * 4 | |u32 * 4 | ||
| | |{{unknown|Unknown}} | ||
|{{check}} | |{{check}} | ||
|{{check}} | |{{check}} | ||
|- | |||
| colspan=4 {{unknown|End of Mappable Object}} | |||
|} | |||
==== MP1 Types ==== | |||
{|class="wikitable" | |||
!Type | |||
!Description | |||
|- | |||
|0 | |||
|Normal Door | |||
|- | |||
|1 | |||
|Shield Door | |||
|- | |||
|2 | |||
|Ice Door | |||
|- | |||
|3 | |||
|Wave Door | |||
|- | |||
|4 | |||
|Plasma Door | |||
|- | |||
|5 | |||
|Big Door | |||
|- | |||
|6 | |||
|Big Door 2 | |||
|- | |||
|7 | |||
|Ice Door Ceiling | |||
|- | |||
|8 | |||
|Ice Door Floor | |||
|- | |||
|9 | |||
|Wave Door Ceiling | |||
|- | |||
|10 | |||
|Wave Door Floor | |||
|- | |||
|11 | |||
|Plasma Door Ceiling | |||
|- | |||
|12 | |||
|Plasma Door Floor | |||
|- | |||
|13 | |||
|Ice Door Floor 2 | |||
|- | |||
|14 | |||
|Wave Door Floor 2 | |||
|- | |||
|15 | |||
|Plasma Door Floor 2 | |||
|- | |||
|27 | |||
|Down Arrow Yellow (Maintenance Tunnel) | |||
|- | |||
|28 | |||
|Up Arrow Yellow (Phazon Processing Center) | |||
|- | |||
|29 | |||
|Down Arrow Green (Elevator A) | |||
|- | |||
|30 | |||
|Up Arrow Green (Elite Control Access) | |||
|- | |||
|31 | |||
|Down Arrow Red (Elevator B) | |||
|- | |||
|32 | |||
|Up Arrow Red (Fungal Hall Access) | |||
|- | |||
|33 | |||
|Elevator | |||
|- | |||
|34 | |||
|Save Station | |||
|- | |||
|37 | |||
|Missile Station | |||
|} | |||
==== MP2 Types ==== | |||
{| class="wikitable" | |||
!Type | |||
!Description | |||
|- | |||
|0 | |||
|Normal Door | |||
|- | |||
|1 | |||
|Missile Door | |||
|- | |||
|2 | |||
|Dark Door | |||
|- | |||
|3 | |||
|Annihilator Door | |||
|- | |||
|4 | |||
|Light Door | |||
|- | |||
|5 | |||
|Super Missile Door | |||
|- | |||
|6 | |||
|Seeker Missile Door | |||
|- | |||
|7 | |||
|Power Bomb Door | |||
|- | |||
|16 | |||
|Elevator | |||
|- | |||
|17 | |||
|Save Station | |||
|- | |||
|20 | |||
|Ammo Station | |||
|- | |||
|21 | |||
|Portal | |||
|- | |||
|22 | |||
|Light Teleporter | |||
|- | |||
|23 | |||
|Translator Gate | |||
|- | |||
|24 | |||
|Up Arrow | |||
|- | |||
|25 | |||
|Down Arrow | |||
|} | |} | ||
Line 171: | Line 315: | ||
!Description | !Description | ||
|- | |- | ||
| | |{{Vector3f}} | ||
|''' | |'''Normal''' | ||
|- | |||
|{{Vector3f}} | |||
|'''Center of Mass''' | |||
|- | |- | ||
|u32 | |u32 | ||
|'''Primitive Table Start'''; relative to the end of | |'''Primitive Table Start'''; relative to the end of the header | ||
|- | |- | ||
|u32 | |u32 | ||
|''' | |'''Border Table Start'''; relative to the end of the header | ||
|} | |} | ||
Line 209: | Line 356: | ||
A border in a MAPA is a simple count followed by a 4 byte aligned list indices into the vertex list, each index taking up one byte. A border is simply drawn using GX_LINESTRIP. | A border in a MAPA is a simple count followed by a 4 byte aligned list indices into the vertex list, each index taking up one byte. A border is simply drawn using GX_LINESTRIP. | ||
[[Category:File Formats]] | |||
[[Category:Metroid Prime]] | [[Category:Metroid Prime]] | ||
[[Category:Metroid Prime 2: Echoes]] | [[Category:Metroid Prime 2: Echoes]] | ||
[[Category:Metroid Prime 3: Corruption]] | [[Category:Metroid Prime 3: Corruption]] |
edits