Uh, really nice.
Some contribution (since the free60 info is outdated / not really specific):
Code:
XDBF_SettingsEntry:
{
int32 SettingId;
byte[4] Unk1;
XDBF_SettingDataType DataType;
byte[7] Unk2;
*after that it gets tricky*
*seriously*
switch (DataType)
{
case XDBF_SettingDataType.Context:
int nData;
byte[4] Unknown3;
case XDBF_SettingDataType.Int32:
int nData;
byte[4] Unknown3;
case XDBF_SettingDataType.Int64:
long i64Data;
case XDBF_SettingDataType.Double:
double dblData;
case XDBF_SettingDataType.String:
int cbData;
int pbData;
case XDBF_SettingDataType.Float:
float fData;
byte[4] Unknown3;
case XDBF_SettingDataType.Binary:
int cbData;
int pbData;
case XDBF_SettingDataType.DateTime:
long i64Data;
DateTime ftData; *Just parse i64Data*
default:
byte[8] fixedData;
}
byte[cbdata] varData;
}
enum XDBF_SettingDataType : byte
{
Context = 0,
Int32,
Int64,
Double,
String,
Float,
Binary,
DateTime
}
Importand Enum´s
A XDBF-Entry can be "SyncList", "SyncData" and all XDBF_EntryType´s
Code:
enum XDBF_EntryID
{
TitleData = 0x8000,
UserData = 0x8007,
SyncData = 0x200000000,
SyncList = 0x100000000,
*Only importand for DashGPD*
Gamerscore = 0x10040006,
TitlesPlayed = 0x10040012,
AchievementsEarned = 0x10040013,
TitleGamerscoreEarned = 0x10040038,
TitleAchievementsEarned = 0x10040039,
*Those 3 are Setting-Entry´s which are for dev´s to store data inside the profile*
TitleSpecific1 = 0x63E83FFF,
TitleSpecific2 = 0x63E83FFE,
TitleSpecific3 = 0x63E83FFD
}
enum XDBF_EntryType
{
Achievement = 1,
Image = 2,
Setting = 3,
String = 5,
Title = 4,
AvatarAward = 6
}
On the "AchievementEntry" Stuff you have to switch "Locked" with "Unlocked Description".
AND I think you forgot SyncData / SyncList ... or its not in there, I didnt check.