MREA (File Format)

Revision as of 04:27, 26 January 2015 by imported>Antidote

The .MREA file format is used to define areas in Metroid Prime and Donkey Kong Country Returns. MREA files are broken up into many sections, and each section serves a specific purpose. However for the sake of brevity this article will only cover each revision of the MREA header.

Universal Header

This header is shared between Metroid Prime and Donkey Kong Country, and is fairly straight forward.

Offset Size Description
0x0 4 Magic Number 0xDEADBEEF
0x4 4 File Version See below
0x8 48 Transformation Matrix The position of the area in world-space
0x38 4 Mesh Count
0x3C 4 SCLY Count Note: Not present in Metroid Prime 1
0x40 4 Section Count
Version Game
15 Metroid Prime 1
25 Metroid Prime 2
30 Metroid Prime 3
32 Donkey Kong Country Returns

Metroid Prime 3 & Donkey Kong Header

Metroid Prime 3 and Donkey Kong Country Returns share the same header, also Metroid Prime 2 contains the Compressed Block Count present in this header as well.

Offset Size Description
0x0 4 Compressed Block Count Note: Present in Metroid Prime 2 0x4 Section Number Count Note: see below

Section Numbers

Metroid Prime 1 and 2

In metroid Prime 1 and 2 Immediately following the header each section in an MREA is given it's own number, the following is the order in which they appear:

Description
Materials
SCLY
SCGN Note: Not present in Metroid Prime 1
Collision
Unknown
Lights
VISI
PATH
AROT
PTLA Note: Not present in Metroid Prime 1
EGMC Note: Not present in Metroid Prime 1

Metroid Prime 3 and Donkey Kong Country Returns

Metroid Prime 3 and Donkey Kong Country Returns does it differently, and it is also preceded by the compressed blocks, each section is designated in the following:

let N=Section Number Count

Type Description
FourCC Section type
Long Section Number

Repeat N times, one for each section, and the sections sections are associated with the following FourCC values:


FourCC Description
AABB Axis Aligned Bounding Boxes
APTL Unknown
COLI Collision
DEPS Dependencies
EGMC Unknown
GPUD Submesh data, e.g, vertices, normals, etc.
LITE Lights
LLTE Unknown
PFL2 Path file
PVS! Area vis octree, used for culling unseen geometry
ROCT Unknown
RSOS Revolution Shared Objects
SOBJ SCLY Layer data, there can be multiple copies, but only the first is indicated.
SGEN Unknown
WOBJ Mesh Header, always 0 and there are usually two.