Common Types

From Retro Modding Wiki
Jump to navigation Jump to search

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