Profile Upgrade
ProfileUpgrade | |
---|---|
Resource names | PROFILEUPG |
Type ID | 0x10021 |
Category | Game-specific (Burnout Paradise) |
Memory distribution |
Main Memory only |
Editor available? |
No |
The ProfileUpgrade resource is used to upgrade Burnout Paradise profiles from one version to another. Initial support for the resource appeared in version 1.3, but the only known instance of its use in practice is in version 1.9, where it alters the HitPropsBitArray to accommodate the island.
Behaviour
By filling the bit array with alternating 0s and 1s such that each byte reads 0x55, the following can be observed during an upgrade:
- The byte at 0x1DE2 changes to 0x59.
- The byte at 0x1DE3 changes to 0xD5.
- The byte at 0x226F changes to 0x4D.
These positions correlate to the bit indices when reading every 64 bits from least to most significant. The changes indicate that the value of the first bit is being copied to the second bit, overwriting its previous value.
As an example, take the byte at 0x226F and trace through its progression:
For values [70470,70467] For values [70471,70468] Starts as 0x55 Copies value Copies value, ends as 0x4D 01010101 / 01010101 --> 01011101 --> 01011101 / 01011101 --> 01001101 ^ ^ ^ ^ ^ ^ Bit 70470 / Bit 70467 Bit 70471 / Bit 70468
Structures
BrnProgression::ProfileUpgradeData
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | ? | Number of changes to be made | |
0x4 | 0x4 | uint32_t[2]* | ? | Indices of the bits in the HitPropsBitArray to copy from and to, respectively |