Modding/Burnout Paradise/Memory map

Burnout Paradise uses the constant  for memory management. When modding, it may be necessary to increase the size of the memory pools listed in the memory map. This has been the case in the past when repairing partially corrupt development builds and was necessary when the Canary Island mod's development was stalled due to the collision resources exceeding the size of the OpenWorldPhy/OWPhysics pool.

By editing the memory map, not only can larger resources be used, more resources can be as well because the limits on numbers of resources are placed in the map. Thus, any larger mods or efforts to improve the quality of certain assets may require altering it.

= Modification = As a real-world use case, this section uses editing the OpenWorldPhy pool as an example.

The memory map is located in the game's executable. Searching for "Root Bank" and subtracting 0x40 from its start offset will place the cursor at the beginning of the memory map structure. From here, go to the pools offset (all offsets are relative to the start of the map), find the pool structure with the name "OpenWorldPhy", and change the main memory base resource size to the minimum amount that will satisfy your needs for the foreseeable future. Note the difference between the new and old sizes.

Because the OpenWorldPhy bank is a child of the OpenWorld bank, the OpenWorld bank needs to be edited as well. Go to the banks offset and find the bank structure with the name "OpenWorld". Take the size difference you noted earlier, align it to 0x20000, and add it to the main memory base resource size. Divide this size by 0x20000 and replace the number of banks with the result. Save and run the game. Note: Sizes must be a multiple of the number of banks.

= Structures =

CgsMemory::MemoryIO::CreateLinearAllocatorRequest
Identical to CreateResourceRequest.

CgsMemory::CreateGeneralAllocatorRequest
Identical to CreateResourceRequest.

= Typedefs =

CgsResource::Entry::ResourceDescriptor
= Enumerations =

CgsMemory::MemoryIO::EventType
= Base resource types =

PC, Remastered
= Small resource types =

PC, Remastered
= Banks =

Remastered
= Pools =

Remastered
= Raw resources =

Remastered
= Linear allocators =

Remastered
= Heap allocators =

Remastered
= RW linear allocators =

Remastered
= RW general allocators =