Profile/Need for Speed Most Wanted

From Burnout Wiki

Protection[edit | edit source]

PC[edit | edit source]

Saves are validated by a modified MD5 hash at the end of the save. It can be overcome using Bo98's save rehasher.

Other platforms[edit | edit source]

No protection is present.

Row definitions[edit | edit source]

Hmmm...
To do:
List row definitions for the Most Wanted MUD database.

Structures[edit | edit source]

Profile[edit | edit source]

This is the overall savegame structure. Only the MUD database itself is defined in Criterion's debugging symbols; the rest is from independent research and prone to error.

PlayStation 3, Xbox 360, PlayStation Vita, Wii U[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Database length All pointers in the database are relative to offset 0x4 because of this
0x4 0x3FFFC Db ? MUD database
0x40000 0x400 ? ? Unknown data, always null

PC[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Database length All pointers in the database are relative to offset 0x4 because of this
0x4 0x3D800 Db ? MUD database
0x3D804 0x2BFC ? ? Unknown data, always null
0x40400 0x410 ? ? EA account/login information See account info
0x40810 0x10 ? ? MD5 hash See protection

Mud::Db[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x1 uint8_t muFormatVersion Always 3
0x1 0x3 char[3] macMagic
0x4 0x4 uint32_t muAllocatedSize
0x8 0x4 uint32_t muSchemaVersion 26, 27 or 28
0xC 0xC TableList mTables
0x18 0x8 Allocator mPageAllocator
0x20 0x100 uint8_t[256] mauReserved

Mud::SampleExternalArrayList<Mud::Table>[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muCount
0x4 0x4 uint32_t muCapacity
0x8 0x4 Table* mpaStorage

Mud::Table[edit | edit source]

Offset Length Type Name Description Comments
0x0 0xD char[13] macName
0xD 0x3 Padding
0x10 0x178 RowDef mRowDef
0x188 0x4 Page* mpFirstPage
0x18C 0x4 Allocator* mpAllocator
0x190 0xB8 uint8_t[184] mauDefaultRow

Mud::RowDef[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x2 uint16_t muRowSize
0x2 0x2 Padding
0x4 0x174 ColumnList mColumns

Mud::Column[edit | edit source]

Offset Length Type Name Description Comments
0x0 0xC char[12] macName
0xC 0x1 uint8_t muType See type
0xD 0x1 uint8_t muSize
0xE 0x2 uint16_t muRowOffset

Mud::Page[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x10 Header mHeader
0x10 0xEC uint8_t[236] mBody
0xFC 0x4 Footer mFooter

Mud::Page::Header[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 Page* mpNext Next node
0x4 0x4 Table* mpTable Type
0x8 0x2 uint16_t muNextAllocation Length
0xA 0x2 Padding
0xC 0x4 uint32_t muSentinelPre

Mud::Page::Footer[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muSentinelPost

Mud::Allocator[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x4 Page* mpaPages Always 0xB800
0x4 0x4 int32_t miNumPages Always 0x320

Account info[edit | edit source]

Offset Length Type Name Description Comments
0x0 0x400 char[1024] ? Token
0x400 0x4 uint32_t ? Version?
0x404 0x4 Padding
0x408 0x8 uint64_t ? Account ID? Possibly uint32_t followed by 4 bytes of padding

Typedefs[edit | edit source]

Mud::Db::TableList[edit | edit source]

Name Type Length Comments
TableList SampleExternalArrayList<Table> 0xC

Mud::RowDef::ColumnList[edit | edit source]

Name Type Length Comments
ColumnList MudArrayList<Column, 23>::type 0x174

Mud::MudArrayList<Mud::Column, 23>::type[edit | edit source]

Name Type Length Comments
type ArrayList<Column, 23> 0x174

Enumerations[edit | edit source]

Mud::EType[edit | edit source]

Name Value Comments
E_TYPE_INT32 0
E_TYPE_FLOAT 1
E_TYPE_INT16 2
E_TYPE_INT8 3
E_TYPE_INT64 4
E_TYPE_BOOL 5
E_TYPE_UINT8 6
E_TYPE_UINT16 7
E_TYPE_UINT32 8
E_TYPE_UINT64 9
E_TYPE_STRING 10
E_TYPE_COUNT 11