Vehicle Data: Difference between revisions

From Burnout Wiki
Content added Content deleted
(Added documentation from the (soon to be obsolete lol) Modding Wiki.)
 
(43 intermediate revisions by 4 users not shown)
Line 1: Line 1:
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.
The '''Vehicle Data''' file format is used to store data for a particular vehicle in all Burnout games from Takedown to Dominator. It uses the file extension <code>.BGV</code> for player vehicles, and <code>.BTV</code> for traffic vehicles. It is the successor to Point of Impact's [[Burnout_2_Race_Car|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.
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.


= Version history =
= Versions =
{| class="wikitable"
This format underwent a number of revisions and structural changes during the time it was in use. Because of this, BGV uses a single number at the start of the file to indicate the version.
! Format version !! Game !! Date
{|class="wikitable"
|-
|-
| 20 (0x14) || Burnout 3: Takedown (Early Demo) || Apr 2004
! Version
! Games
! Notes
|-
|-
| 0x14 || Takedown Demo ||
| 21 (0x15) || Burnout 3: Takedown (Preview Build) || May 2004
|-
|-
| 0x17 || Takedown, Legends, Dominator (PSP) ||
| 23 (0x17) || Burnout 3: Takedown<br>Burnout Legends<br>Burnout Dominator <sup>(PSP)</sup> || Jul 2004
|-
|-
| 0x1D || Revenge Demo ||
| 29 (0x1D) || Burnout Revenge (Early Demo) || May 2005
|-
|-
| 0x1F || Revenge, Dominator (PS2) ||
| 31 (0x1F) || Burnout Revenge <sup>(PS2)</sup><br />Burnout Dominator <sup>(PS2)</sup> || Jul 2005
|-
|-
| 0x25 || Revenge (360) ||
| 37 (0x25) || Burnout Revenge <sup>(X360)</sup> || Jan 2006
|}
|}


* Version 29 and onward store deformation matrices in a different order to previous revisions.
All currently known offsets for revision 0x17 can be found [https://docs.google.com/spreadsheets/d/1t0ZpOjCC9_2RJfcgQ8NLD8oJZfoZmpxxHEnNF5AN2Wo here].
* The LOD Database version present in revision 20 BGVs are the only version to use '''global pointers''' for their Vehicle Object tables. These point to the exact location in the file of each object, 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 <tt>0x1820</tt> in a version 20-era LOD Database would appear to point to <tt>0x140</tt> in all other versions.
* Versions after 23 support up to 8 body parts. Prior versions support up to 6.


= Information =
== Version Differences ==
{{subpage|Burnout 3|text=Information on the Vehicle Data format used in Burnout 3.}}
* 0x14 BGVs are the only version to use ''global pointers'' for their LOD database submesh lists. These point to the exact location in the file of each submesh, whereas local pointers, used by 0x17 and up, use offsets relative to the beginning of the LOD. For example, a pointer to offset 0x1820 in a 0x14 BGV would appear to point to 0x140 in all other revisions.
{{subpage|Burnout Revenge|text=Information on the Vehicle Data format used in Burnout Revenge and Dominator (PS2).}}
* Version 0x17 has a hardcoded limit of 6 car body parts (not counting the car's wheels and chassis); this limit was bumped up to 8 starting with revision 0x1D.
* Version 0x1D and onward store deformation matrices in a different order to previous revisions.
* Version 0x25 BGVs are compressed with ZLib, so they'll have to be manually decompressed using the [https://zenhax.com/viewtopic.php?t=5 Offzip] tool if you wish to analyze/modify them.
** 0x25 BGVs also use [https://en.wikipedia.org/wiki/Endianness big-endian byte order] due to being an Xbox 360-specific revision of the format, unlike all other revisions which store their bytes in little-endian order.


[[Category:Formats_(Takedown-Dominator)]]
= LOD database format =

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.

Each LOD in a BGV contains a list of pointers to its submeshes at the very beginning; there are always exactly 12 pointers since it seems the maximum amount of submeshes a BGV can contain is 12, though it's unknown if this rule is enforced by the game or if it can be larger than that.

Latest revision as of 16:23, 31 May 2023

The Vehicle Data 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 for player vehicles, and .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

Format version Game Date
20 (0x14) Burnout 3: Takedown (Early Demo) Apr 2004
21 (0x15) Burnout 3: Takedown (Preview Build) May 2004
23 (0x17) Burnout 3: Takedown
Burnout Legends
Burnout Dominator (PSP)
Jul 2004
29 (0x1D) Burnout Revenge (Early Demo) May 2005
31 (0x1F) Burnout Revenge (PS2)
Burnout Dominator (PS2)
Jul 2005
37 (0x25) Burnout Revenge (X360) Jan 2006
  • Version 29 and onward store deformation matrices in a different order to previous revisions.
  • The LOD Database version present in revision 20 BGVs are the only version to use global pointers for their Vehicle Object tables. These point to the exact location in the file of each object, 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 version 20-era LOD Database would appear to point to 0x140 in all other versions.
  • Versions after 23 support up to 8 body parts. Prior versions support up to 6.

Information

Burnout 3
Information on the Vehicle Data format used in Burnout 3.
Burnout Revenge
Information on the Vehicle Data format used in Burnout Revenge and Dominator (PS2).