Profile/Need for Speed Hot Pursuit
< Profile
Row definitions
Row definitions define the fields, or columns, used in each table. With different schema versions, new row definitions may be added and existing ones may be altered or removed.
Although row definitions are best read programmatically with the rest of the database, the structures they define are provided in a subpage for those who want to read them manually.
Row definitions |
Structures
Savegame
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 4, Switch
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 | 0x40000 | Db | ? | MUD database | |
0x40004 | 0x4700C | ? | ? | Unknown data, always null |
PC
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 | 0x40000 | Db | ? | MUD database | |
0x40004 | 0x4700C | ? | ? | Unknown data, always null | |
0x87010 | 0x410 | ? | ? | EA account/login information | See account info |
0x87420 | 0x10 | ? | ? | 128-bit hash | Used for save validation. Unknown algorithm |
PC (Remastered)
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 | 0x40000 | Db | ? | MUD database | |
0x40004 | 0x4700C | ? | ? | Unknown data, always null | |
0x87010 | 0x1 | char | ? | Unused. Replaces account info | Always 0x20 |
0x87011 | 0x10 | ? | ? | 128-bit hash | Used for save validation. Unknown algorithm. Not padded |
Mud::Db
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x1 | uint8_t | muFormatVersion | Always 2 | |
0x1 | 0x3 | Padding | |||
0x4 | 0x4 | uint32_t | muSchemaVersion | Schema version | 1 on PC and 360, 5 on PS3 |
0x8 | 0x100 | uint8_t[256] | mauReserved | ||
0x108 | 0x4 | ArrayList<Table, 200>* | mTables | Database tables | Always 0x180 |
0x10C | 0x8 | Allocator | mPageAllocator | Database allocation |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x1 | uint8_t | muFormatVersion | Always 2 | |
0x1 | 0x3 | Padding | |||
0x4 | 0x4 | uint32_t | muSchemaVersion | Schema version | 8 in HPR |
0x8 | 0x100 | uint8_t[256] | mauReserved | ||
0x108 | 0x8 | ArrayList<Table, 200>* | mTables | Database tables | Always 0x180 |
0x110 | 0xC | Allocator | mPageAllocator | Database allocation |
Mud::Table
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0xD | char[13] | macName | Table name | |
0xD | 0x3 | Padding | |||
0x10 | 0x178 | RowDef | mRowDef | Row | |
0x188 | 0x4 | Page* | mpFirstPage | ||
0x18C | 0x4 | Allocator* | mpAllocator | Always 0x10C | |
0x190 | 0xB8 | uint8_t[184] | mauDefaultRow | Default values | Data length is same as row size |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0xD | char[13] | macName | Table name | |
0xD | 0x3 | Padding | |||
0x10 | 0x178 | RowDef | mRowDef | Row | |
0x188 | 0x8 | Page* | mpFirstPage | ||
0x190 | 0x8 | Allocator* | mpAllocator | Always 0x110 | |
0x198 | 0xB8 | uint8_t[184] | mauDefaultRow | Default values | Data length is same as row size |
Mud::RowDef
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x2 | uint16_t | mRowSize | Number of columns | |
0x2 | 0x2 | Padding | |||
0x4 | 0x174 | ColumnList | mColumns | Columns |
Mud::Column
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0xD | char[13] | macName | Name | |
0xD | 0x1 | uint8_t | muType | Field type | See type |
0xE | 0x2 | uint16_t | muRowOffset | Offset in structure |
Mud::Page
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x10 | Header | mHeader | ||
0x10 | 0xEC | uint8_t[236] | mBody | ||
0xFC | 0x4 | Footer | mFooter |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x18 | Header | mHeader | ||
0x18 | 0xE4 | uint8_t[228] | mBody | ||
0xFC | 0x4 | Footer | mFooter |
Mud::Page::Header
32-bit
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 |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Page* | mpNext | Next node | |
0x8 | 0x8 | Table* | mpTable | Type | |
0x10 | 0x2 | uint16_t | muNextAllocation | Length | |
0x12 | 0x2 | padding | |||
0x14 | 0x4 | uint32_t | muSentinelPre |
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muSentinelPost |
Mud::Allocator
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | Page* | mpaPages | Always 0x1CA00 | |
0x4 | 0x4 | int32_t | miNumPages | Always 0x236 |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Page* | mpaPages | Always 0x1D080 | |
0x8 | 0x4 | int32_t | miNumPages | Always 0x22F |
Account info
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
Mud::RowDef::ColumnList
Name | Type | Length | Comments |
---|---|---|---|
ColumnList | MudArrayList<Column, 23>::type | 0x174 |
Mud::MudArrayList<Mud::Column, 23>::type
Name | Type | Length | Comments |
---|---|---|---|
type | ArrayList<Column, 23> | 0x174 |
Enumerations
Mud::EType
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 |