Common Types
Types that are commonly seen in Retro Studios file formats.
Note: Avoid linking directly to this page from articles. There's a template defined for each of the types on this page; use that instead.
Asset ID
Asset IDs are used to uniquely identify assets. They are assigned in the PAK table of contents and are used by resources to reference each other. The size of an asset ID depends on which game you're looking at:
- 32-bit IDs are used in Metroid Prime and Metroid Prime 2: Echoes.
- 64-bit IDs are used in Metroid Prime 3: Corruption and Donkey Kong Country Returns.
- 128-bit IDs are used in Donkey Kong Country: Tropical Freeze. The reason for the seemingly-unnecessary length increase is because it internally uses a new GUID system that's used commonly in a lot of different places throughout the game.
FourCC
FourCCs are a 32-bit identifier that uses four ASCII characters. These are usually seen to represent either magic values or IDs.
Offset | Type | Name |
---|---|---|
0x0 | char[4] | Characters |
0x4 | End of FourCC |
Vector3f
A Vector3f is a vector made up of three floats. Commonly used to represent a point in 3D space or a direction.
Offset | Type | Name |
---|---|---|
0x0 | float | X |
0x4 | float | Y |
0x8 | float | Z |
0xC | End of Vector3f |
Quaternion
Used to represent orientations in some file formats.
Offset | Type | Name |
---|---|---|
0x0 | float | W |
0x4 | float | X |
0x8 | float | Y |
0xC | float | Z |
0x10 | End of Quaternion |
Color4f
A Color4f is an RGBA color that uses floats where each color component ranges between 0.0 and 1.0.
Offset | Type | Name |
---|---|---|
0x0 | float | R |
0x4 | float | G |
0x8 | float | B |
0xC | float | A |
0x10 | End of Color4f |
Color4i
A Color4i is an RGBA color that uses 8-bit integers to represent each color component. Color4f is much more common; Color4i is generally only seen on colors that interface closely with hardware (as they usually map to a GXColor structure instead of Retro's CColor class).
Offset | Type | Name |
---|---|---|
0x0 | u8 | R |
0x1 | u8 | G |
0x2 | u8 | B |
0x3 | u8 | A |
0x4 | End of Color4i |
AABox
An AABox is an axis-aligned bounding box formed by the minimum and maximum XYZ coordinates. Because the box is axis-aligned, all other vertices forming the box can be derived from the min/max.
Offset | Type | Name |
---|---|---|
0x0 | Vector3f | Minimum Coordinate |
0xC | Vector3f | Maximum Coordinate |
0x18 | End of AABox |