BCO (File Format)

A BCO contains the track's collision data in Mario Kart: Double Dash!!. It is split into 4 parts, where only 2 are known, and are listed below.

Triangles
Triangles are parts of the collision format that are formed from 3 vertices. Triangles also have the collision type for the defined triangle. The structure is a 0x24 byte structure defined below.

Vertices
Vertices are sets of 3 floats that form a triangle. Each vertex structure is defined in a 0x0C byte structure below.

Material Table
This is a section with an unknown purpose. It is referred to as the matTable in game code. The number of entries is defined in byte 0x18 in the header. The 0xC byte structure is defined below.

Collision Flags
Each triangle face has a collision flag that defines how the face acts when the player interacts with it. This can define whether it's sand, mud, ice, and more.

Sound Types
Each triangle also has a Sound-Type associated with it that defines how the face sounds when the player interacts with it. These are not part of the material name, but instead set in the obj_sound.txt files.

Tools
Mkdd-collision by Yoshi2