ABC (File Format): Difference between revisions
No edit summary |
No edit summary |
||
| Line 14: | Line 14: | ||
| 0x04 || Int32 || Always 1. Maybe version? The game checks if this value is 1, otherwise it won't read the file. | | 0x04 || Int32 || Always 1. Maybe version? The game checks if this value is 1, otherwise it won't read the file. | ||
|- | |- | ||
| 0x08 || Int32 || '''Number of [[# | | 0x08 || Int32 || '''Number of [[#Areas|Areas]]''' ('''N'''). | ||
|- | |- | ||
| 0x0C || Byte[4] || '''Padding'''. | | 0x0C || Byte[4] || '''Padding'''. | ||
|- | |- | ||
| 0x10 || colspan=2 {{unknown|End of header, start of | | 0x10 || colspan=2 {{unknown|End of header, start of Areas}} | ||
|} | |} | ||
== | == Areas == | ||
After the header, there are '''N''' 0x40-byte | After the header, there are '''N''' 0x40-byte areas. Each area corresponds to each section of a corresponding [[VMD]] file. In Luigi's Mansion Arcade, it also references the sections from an [[ABT]] file. The area is made of a single 4x4 matrix. In Mario Kart Arcade GP DX this matrix is used to transform the current position of the camera's target. The game checks once per frame if the transformed position of each area lies within a -0.5f to 0.5f AABB cube to determine the culling status. | ||
{|class=wikitable | {|class=wikitable | ||
|+ | |+ Area | ||
! Offset !! Type !! Description | ! Offset !! Type !! Description | ||
|- | |- | ||
Latest revision as of 10:57, 4 May 2026
ABC (Area BloCk) is a file format found in Mario Kart Arcade GP DX and Luigi's Mansion Arcade. In Mario Kart Arcade GP DX it defines culling areas used in tracks, whereas in Luigi's Mansion Arcade it defines areas used for lighting.
File Format
The file byte order is always little endian.
File Header
The file starts with a header that is 0x10 bytes long.
| Offset | Type | Description |
|---|---|---|
| 0x00 | Char[4] | File magic. Always ABCT in ASCII. |
| 0x04 | Int32 | Always 1. Maybe version? The game checks if this value is 1, otherwise it won't read the file. |
| 0x08 | Int32 | Number of Areas (N). |
| 0x0C | Byte[4] | Padding. |
| 0x10 | End of header, start of Areas | |
Areas
After the header, there are N 0x40-byte areas. Each area corresponds to each section of a corresponding VMD file. In Luigi's Mansion Arcade, it also references the sections from an ABT file. The area is made of a single 4x4 matrix. In Mario Kart Arcade GP DX this matrix is used to transform the current position of the camera's target. The game checks once per frame if the transformed position of each area lies within a -0.5f to 0.5f AABB cube to determine the culling status.
| Offset | Type | Description |
|---|---|---|
| 0x00 | Float[16] | 4x4 matrix. |
Tools
The following tools can handle ABC files:
- (none)