How to add a new car (Burnout Paradise)

From Burnout Wiki
Revision as of 07:43, 8 April 2022 by Derneuere (talk | contribs) (As of the latest commit it is no longer the case, that it takes a long time to apply)

Tools

Steps

  1. Get a vehicle file (_AT.BIN and _GR.BIN)
  2. Open up the vehicles/vehiclelist.bundle in Bundle Manager
  3. Copy Entry for Hunter Cavalry
  4. Give it a new vehicle id (try to format it like the game does i.e. PUSMC01 for P_US_MuscleCar_01).
  5. Give it a new AttribSys ID in the VehicleList. Can be any ID, but try to keep it as a number over 1000000 to prevent conflicts with existing IDs.
  6. Rename the Files to have the structure VEH_<vehicleid>_AT.BIN, VEH_<vehicleid>_CD.BIN, VEH_<vehicleid>_GR.BIN
    1. If you don't have a _CD.BIN file for your car, just pick another one and rename it.
  7. Edit the binary files:
    1. Find the IDs that you have to edit. For all values in the table below, do the following:
    2. Calculate the CgsResourceID, by following the schema in the table below, change all letters to lowercase, generate a CRC32 value with HxD and bit swap them
    3. Open up the File in Bundle Manager and look at the IDs. They are corrected, so you have to bit swap them when looking for them, e.g. ac21de43 is 43de21ac in the binary file.
    4. Open Hexedit and search for the IDs to find out where you have to replace it
    5. Replace
    6. If it worked the name will show up in BundleManager
  8. Unpack the VEH_<vehicleid>_AT with the Noesis and the noesis plugin to a folder
  9. Calculate the Hash Int by taking AttribSys ID from step three and hash it as a lookup8 with lookup8. The hash int is the little endian value.
  10. Edit the file in the AttributeSysVault folder, replace the values starting from 0x2E8 with the Hash Int
  11. Pack it up, rename it to VEH_<vehicleid>_AT and replace it in vehicles.

Then you should see your new car!

Values to change

File ID in BundleManager Replace with Comment
VEH__AT AttribSysVault <vehicle_id>_AttribSys
VEH__AT VehicleAnimation <vehicle_id>_ANIM
VEH__AT StreamedDeformation <vehicle_id>DeformationModel
VEH__AT BodyPartRemapData <vehicle_id>_BPR
VEH__GR GraphicsSpec <vehicle_id>Graphics
VEH__CD ResourceID <vehicle_id>

Also change the name and hash in cleartext in VEH_<vehicleid>_CD. The hash in clear text is not bitswapped.

How to select the new car

Use BPR Modder and install Brick Remastered. You can then select with F9 the new car in the mobile Junkyard.

How to name the car

Search your language in LANGUAGE/LANGUAGE_X.bundle and open it up with BundleManager

  1. Calculate the Language Resource Hash, by click on Tools → Hash in the Language Manager and typing in CAR_CAPS_<vehicle_id> for the name or CAR_BLURB_<vehicle_id> for the description
  2. Add the hash at the bottom with the new string
  3. Click on File → Apply changes to apply your changes
  4. Save your changes

You should now see your new name and description of the car!

Things, that are not yet possible

Using a new vehicle manufacturer

Adding a new icon for your new vehicle

Relevant Files

  • GUIAPT/B5PARADISEICON.bundle → Regular Cars
  • GUIAPT/B5BIKEICONS.bundle → Bikes
  • GUIAPT/B5BOOSTCARICONS.bundle → Boost Cars
  • GUIAPT/B5COPCARICONS.bundle → Cop Cars
  • GUIAPT/B5TOYCARICONS.bundle → Toy Cars
  • GUIAPT/B5ICONICARICONS.bundle → Legandary Cars

Issues

  • Not yet clear how to add an entry to AptData.
  • Importing a new icons file with BundleManager breaks the game (Issue)