Saves are validated by a modified MD5 hash at the end of the save. It can be overcome using Bo98's save rehasher .
No protection is present.
To do: List row definitions for the Most Wanted MUD database.
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
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
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
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
Offset
Length
Type
Name
Description
Comments
0x0
0x2
uint16_t
muRowSize
0x2
0x2
Padding
0x4
0x174
ColumnList
mColumns
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
Offset
Length
Type
Name
Description
Comments
0x0
0x10
Header
mHeader
0x10
0xEC
uint8_t[236]
mBody
0xFC
0x4
Footer
mFooter
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
Offset
Length
Type
Name
Description
Comments
0x0
0x4
uint32_t
muSentinelPost
Offset
Length
Type
Name
Description
Comments
0x0
0x4
Page *
mpaPages
Always 0xB800
0x4
0x4
int32_t
miNumPages
Always 0x320
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
Mud::MudArrayList<Mud::Column, 23>::type [ 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