The Burnout Modding wiki has just launched - admittedly, it's just as barebones as this Gist at the moment, but proper sites are far more capable so you can expect WAY more stuff to be done there than what would've been possible to do here.
Burnout 2's vehicle format. This file contains the car's model, LODs, textures and potentially(?) physics info and other metadata. This format can be considered a precursor to the BGV format used from Burnout 3 to Dominator. RCF files are the models used for the main menu and are higher quality than the RCX models, which are the ones used ingame.
Contains track textures.
Contains track mesh data. There is a near-duplicate of this file in each track folder with the extension P2W.
This file stores all data related to the game's vehicles, including mesh data, LODs, texture data, pointers to external files (e.g. value database, the car's HWD and LWD files), deformation data and physics configuration info. BTV files are identical in every way to BGVs.
Revisions of this format (the first byte of a BGV file is its version number):
- 0x14 = Burnout 3 Demo
- 0x17 = Takedown/Legends/Dominator PSP
- 0x1D = Revenge Demo
- 0x1F = Revenge/Dominator PS2
- 0x25 = Revenge Xbox 360 (Something to note about Revenge 360 is that its BGVs are compressed with ZLib, so they'll have to be manually decompressed using Offzip if you wish to analyze/modify them.)
*DISCLAIMER: Most, if not all, of the data below currently only applies to BGV revision 0x17 unless stated otherwise.
Offsets for revision 0x17:
- 0x00: Version number
- 0x0C: Num. of BodyParts
- 0x0D: Num. of wheels
- 0x0F: Min LOD
- 0x10: Max LOD
- 0x18: Global Y Coordinate
- 0x4C: Pointer to Lowest LOD Offset
- 0x50: Pointer to Mid LOD Offset
- 0x54: Pointer to High LOD Offset
- 0x58: Pointer to Highest LOD Offset
- 0x5C: Unused LOD Pointer
- 0x60: Pointer to Texture/Palette Data
- 0x70: X Scale
- 0x74: Rotation X Related
- 0x78: Rotation X Related
- 0x7C: Rotation X Related
- 0x80: Rotation X Related
- 0x84: Y/Z Scale
- 0x88: Rotation Y/Z Related
- 0x8C: Rotation Y/Z Related
- 0x90: Rotation Y/Z Related
- 0x94: Rotation Y/Z Related
- 0x98: Z/Y Scale
- 0x9C: Rotation Z/Y Related
- 0xA0: X Position
- 0xA4: Y/Z Position
- 0xA8: Z/Y Position
- 0xAC to 0x200: Unknown floats
- 0x200 to 0x16F0: Deformation parameters/wheel positioning coords/other unknown data
Revision 0x17 has a hardcoded limit of 6 body parts (not counting the car's wheels and chassis); this limit was bumped up to 8 starting with revision 0x1D.
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.
HWD files contain pitch info for the vehicle's engine sounds; the sounds in question are stored in the LWD file.
Generic container format. These files are present in each track folder and the contents differ depending on which one it is:
- STATIC.DAT contains the track's textures (as well as the model in the Garage's case)
- STREAMED.DAT contains the track mesh data, destructible props, and LODs
- ENVIRO.DAT contains environment lighting, skybox/cloud textures, and coordinate info for the sun/moon
Revenge, Dominator PS2 and Dom PSP's track folders contain an additional .DAT named "PropInst"; it's not yet known what this file contains.
Contains configuration data and settings for each track, like the traffic density levels, whether or not the track is forward or reverse, the player's spawn coordinates, the start/end location of a lap, signature takedown data, and much more. Burnout 2 uses BGD to store its track data as well (albeit a much older version of the format). Each track has its own BGD file; it can be found in the track's folder alongside the track's other files.
Starting with Burnout 3's demo, this format started using single numbers at the very start of the file to mark the version (like BGV).
- Burnout 3 Demo = 0x07
- Takedown/Legends = 0x09
- Revenge Demo = 0x10
- Revenge 0714 alpha/Revenge Final= 0x11
- Dominator PS2 = 0x13
- Dominator PSP = 0x0B
AKA Track List and Vehicle List. These files are present in the TRACKS
and PVEH
folders, respectively, and contain custom-encoded strings with the names of tracks and player vehicles.
Named VDB.BIN
starting with the Revenge Demo; this file is a hash map containing configuration data for various aspects of the game, including:
- Per-car AI/sound/camera settings
- Per-car boost gain/loss rates
- Various per-car performance and physics statistics (i.e top speeds, which are stored in the file as floating-point numbers)
- Miscellaneous camera configuration data
- Sound configuration
Files containing model data on Burnout PS2 and PSP contain both the actual mesh data as well as the GPU commands required to render the models (these commands use arguments related to the specific vertices being drawn, so they have to be included as data). PS2 models from the Takedown-Era store their vertex data as rows of 4-byte floating-point numbers, with 3 floats in each row; it's possible each of the floats represent the X, Y and Z coordinates of the vertex.
Each "block" of mesh data on the PS2 version starts with the hex sequence 00 00 00 05 03 01 00 01 00 80
.
Files that contain model data:
- .BGV and .BTV
- .DAT (STATIC and STREAMED)
Burnout PS2 and PSP's textures are uncompressed bitmaps, which use CLUT4 (16-color) and CLUT8 (256-color) color palettes, with the palette itself being a little ways underneath the texture data.
Burnout PS2's texture headers are 0x250 bytes in length; PSP texture headers are 0x110. Both games use different texture swizzling methods, and PS2 texture CLUTs seem to use a signed char(?) for the texture's alpha channel as opposed to an unsigned one.
Burnout Xbox textures seem to use some form of compression (likely DXT1).
Files that contain texture data:
- .BGV and .BTV
- .TXD (Texture Dictionaries)
- .DAT (STATIC, STREAMED and ENVIRO)
The PS2 versions of Burnout use Sony's proprietary PS-ADPCM format for its sound data, while the Xbox versions use Microsoft's XWB format. Burnout PSP uses Electronic Arts' SDT/BNKL format.
Per-car statistics and IDs (Burnout 3, Revenge and Paradise): https://drive.google.com/drive/u/0/folders/1mqYJZ5Izm98jTETJm8t7VskyEUgkaY9J
RWS audio container spec by Edness: https://media.discordapp.net/attachments/479352816100573186/698519410926682142/unknown.png