Difference between revisions of "EGMC (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
(Created page with "The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic for...")
 
m (Format)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic format whose main responsibility is mapping PointOfInterest script objects to static world geometry, which allows world meshes to be scanned. The same POI can be mapped to multiple meshes, and likewise, the same mesh can be mapped to multiple POIs (which can be toggled on or off via script connections so only one POI is active at a time).
 
The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic format whose main responsibility is mapping PointOfInterest script objects to static world geometry, which allows world meshes to be scanned. The same POI can be mapped to multiple meshes, and likewise, the same mesh can be mapped to multiple POIs (which can be toggled on or off via script connections so only one POI is active at a time).
 
{{research|minor|Determine exactly how the mesh indices work.}}
 
  
 
__TOC__
 
__TOC__
Line 7: Line 5:
 
== Format ==
 
== Format ==
  
The first value in the file is a 32-bit count, and the rest is an array of a small struct mapping a mesh index to a POI.
+
This is an extremely simple format; it's just an array of a small struct mapping a surface group ID to a PointOfInterest instance.
 +
 
 +
{| class="wikitable"
 +
! Offset
 +
! Type
 +
! Count
 +
! Name
 +
|-
 +
| 0x0
 +
| u32
 +
| 1
 +
| '''Mapping Count'''
 +
|-
 +
| 0x4
 +
| [[#Mapping|Mapping]]
 +
| ''Mapping Count''
 +
| '''Mapping Array'''
 +
|-
 +
| colspan=4 {{unknown|End of file}}
 +
|}
 +
 
 +
=== Mapping ===
  
 
{| class="wikitable"
 
{| class="wikitable"
 
! Offset
 
! Offset
 
! Type
 
! Type
! Description
+
! Name
 +
! Notes
 
|-
 
|-
 
| 0x00
 
| 0x00
 
| u32
 
| u32
| '''Mesh index'''
+
| '''Surface Group ID'''
 +
| Area-relative surface group ID.
 
|-
 
|-
 
| 0x04
 
| 0x04
 
| u32
 
| u32
| '''PointOfInterest instance ID'''
+
| '''PointOfInterest Instance ID'''
 +
|
 
|-
 
|-
 
| 0x08
 
| 0x08
| colspan=2 {{unknown|End of struct}}
+
| colspan=3 {{unknown|End of mapping}}
 
|}
 
|}
  

Latest revision as of 23:45, 22 May 2016

The EGMC file format is in Metroid Prime 2 and 3. Its extension stands for Editor Object to Static Geometry Map Cooked. It's a simplistic format whose main responsibility is mapping PointOfInterest script objects to static world geometry, which allows world meshes to be scanned. The same POI can be mapped to multiple meshes, and likewise, the same mesh can be mapped to multiple POIs (which can be toggled on or off via script connections so only one POI is active at a time).

Format

This is an extremely simple format; it's just an array of a small struct mapping a surface group ID to a PointOfInterest instance.

Offset Type Count Name
0x0 u32 1 Mapping Count
0x4 Mapping Mapping Count Mapping Array
End of file

Mapping

Offset Type Name Notes
0x00 u32 Surface Group ID Area-relative surface group ID.
0x04 u32 PointOfInterest Instance ID
0x08 End of mapping