Vehicle Data

From Burnout Wiki
Revision as of 21:37, 25 January 2021 by AcuteSyntax (talk | contribs) (move main layout section above subtypes)

The Burnout Vehicle file format is used to store data for a particular vehicle in all Burnout games from Takedown to Dominator. It uses the file extension .bgv, or .btv for traffic vehicles. It is the successor to Point of Impact's Burnout 2 Race Car file format.

This format contains most of the data related to any given vehicle, including mesh data, Level of Detail models, texture data, pointers to external files, deformation matrices, collision detection parameters and physics configuration info.

Versions

Burnout Vehicle version
0x14 0x17 0x1D 0x1F 0x25
Date Apr 2004 Jul 2004 May 2005 Jul 2005 Jan 2006
Games Takedown (Early Demo) Takedown
Legends
Dominator (PSP)
Revenge (2005, Early Demo) Revenge (2005)
Dominator (PS2)
Revenge (360)
Body parts
Max body parts 6 6 8 8 8
  • Version 0x1D and onward store deformation matrices in a different order to previous revisions.

Layout

Version 0x17

Offset Name Type Value Notes
0x00 Version number RwUInt32 0x17
0x04 Loaded state RwInt32 0x00
0x08 File size in bytes RwInt32
0x0C Bodypart count RwInt8
0x0D Wheel count RwInt8
0x0E Minimum LOD RwInt16
0x10 Maximum LOD RwInt16
0x14 Object radius RwReal
0x18 Wheel radius RwReal
0x1C Wheel scales RwReal[6]
0x34 Body part radii RwReal[6]
0x4C LOD database offset(s) LOD Database*[5]
0x60 Vehicle texture offset CGtTexture*
0x64 Shadow body object offset Vehicle Object*
0x68 Shadow wheel object offset Vehicle Object*
0x6C Texture colour overlay offset CGtTexture*
...

Version 0x1F

Offset Name Type Value Notes
0x00 Version number RwUInt32 0x1F
0x04 Loaded state RwInt32 0x00
0x08 File size in bytes RwInt32
0x0C Bodypart count RwInt8
0x0D Wheel count RwInt8
0x0A Minimum LOD RwInt8
0x0B Maximum LOD RwInt8
0x0C Object radius RwReal
0x10 Wheel radius RwReal
0x14 Wheel scales RwReal[6]
0x2C Body part radii RwReal[8]
0x4C LOD database offset(s) LOD Database*[5]
0x60 Vehicle texture offset CGtTexture*
0x64 Texture colour overlay offset CGtTexture*
0x68 Shadow body object offset Vehicle Object*
0x6C Shadow wheel object offset Vehicle Object*
...

Subtypes

Being a container format, Burnout Vehicle uses quite a few internal resource types to store its data.

LOD Database

The LOD Database format stores both a given vehicle's LOD model as well as the model's rendering parameters.

LODs, or Levels of Detail, are lower-poly, lower-detail (hence the name) models that games use for objects that are far away from the player, to keep framerates smooth. BGVs contain 4 LOD Databases, which in turn each contain one LOD model of minimum (LOD 0), low (LOD 1), medium (LOD 2) and high (LOD 3) quality.

It seems the maximum amount of submeshes a LOD Database can contain is 12, though it's unknown if this rule is enforced by the game or if it can be larger than that.

Version Differences

  • The LOD Database version present in revision 0x14 BGVs are the only version to use global pointers for their submesh tables. These point to the exact location in the file of each submesh, whereas local pointers, used in all subsequent versions of the format, use offsets relative to the beginning of the LOD. For example, a pointer to offset 0x1820 in a 0x14-era LOD Database would appear to point to 0x140 in all other versions.

Layout

Offset Type Description
0x00 Submesh*[12] Submesh offset(s)

Engine Sound Model (ESM)

Contains playback parameters and pitching info for a given vehicle's engine sound effects. BGVs use two of these files for high and low speed ranges. The files were merged into the BGV starting with revision 0x17; prior to this, they were stored externally in the same folder as the BGV, with the file extensions .HSM and .LSM.