Save File

Located in %USERPROFILE%\Documents\Disney Interactive Studios\Tron Evolution\SaveData\<XUID>\Save\CHECKPT.

XUID Folder is formatted as a 16 zero-padded hex-string of type of type unsigned __int64. Example: 0xE00000FDBD7D2113.

Todo

What is XUID?

Warning

Always make a backup of the file! Apparently a game crash during saving can corrupt it lol.

Structure

File OffsetTypeNameDescription
0x00000int32Version0x0001 = CRC32
0x00004int32Body SizeSize of body
0x00008int32Body CRCCRC32 of body
0x003FCint32Header CRCCRC value from offset 0-1020
0x00400byte[]BodyMap save data, statistics, specific options
0x1A800byte[360]Protected DataXLive encrypted data

Save Data Checks

The game does roughly the following:

  • Read Header (size = 1024 bytes)
    • Verify header CRC from offset 0-1024
    • Verify body CRC32
  • Read Body (size = from header)
  • Read Encrypted Data (size = 360)
    • Decrypted with XLiveUnprotectData function
      • First call is used to determine size of data (always 8 bytes) and to get a handle
      • Second call is used to get the original data with the values of the first call
        • Original data (size = 8 bytes) contains CRC values
          • First 4 bytes is the CRC value of the header (header offset 0x03FC)
          • Next 4 bytes is the CRC value of the body (header offset 0x0008)
    • Final call to XLiveCloseProtectedDataContext is used to close the handle

Protected Data

The game does this when saving:

  • Call to XUserGetSigninInfo to get some information for the next call
  • Call to XLiveCreateProtectedDataContext
    • Requires context information such as
      • How much to allocate (always 8 bytes)
      • Flags which will be set to 0x0001 if the user is signed in online
    • Provides a handle
  • Two calls to XLiveProtectData
    • First call to determine the size of data (always 8 bytes)
    • Second call to protect the data
      • First 4 bytes is the CRC value of the header (header offset 0x03FC)
      • Next 4 bytes is the CRC value of the body (header offset 0x0008)
  • Final call to XLiveCloseProtectedDataContext with the handle

Save Data

File OffsetKey
0586Total Kills
059fTotal Deaths
05b8Highest Fall
05d0Deaths Disc
05e9Deaths Melee
0608Deaths Light Cycle
0620Deaths Tank
0638KILL STREAK
0663Distance Walked
067fDistance Driven
06adLongest Time Alive
06c4Kills Disc
06ebKills Melee
0716Kills Bomb Disc
0747Kills Corruption Disc
0774Kills Stasis Disc
07a0Kills Heavy Disc
07cdKills Light Cycle
0802Kills Tank
0832Power Nodes Captured
085bTotal Assists
0875Complete 1_01
088fComplete 1_03
08b8Complete 1_04
08e1Complete 2_01
08fbComplete 2_02
0924Complete 2_03
093eComplete 2_04
0967Complete 2_05
0981Complete 2_06
099bComplete 2_07
09b5Complete 2_08
09deComplete 2_09
09f8Complete 2_10
0a21Complete 3_01
0a3bComplete 3_02
0a55Complete 3_03
0a7dPlayer Level
0aeeMP Matches
0b08Highest Combo
0b50Tutorial_Parry
0b78Tutorial_Dodge
0ba0Tutorial_Combo
0bcbTutorial_Mobility
0beeTF_SYSMON
0c05TF_SCTSENT
0c19TF_TRON
0c2fTF_SPZUSE
0c49TF_LIGHTCYCLE
0c5fTF_SENTRY
0c76TF_SOLSAIL
0c89TF_QUO
0c9cTF_ARJ
0cb3TF_ARJIANS
0ccbTF_LIGHTANK
0cddTF_GG
0cf2TF_TCITY
0d07TF_RECOG
0d1aTF_CLU
0d31TF_BOSTCOL
0d45TF_GIBS
0d5eTF_BOSTRUMIT
0d75TF_HVYSENT
0d8bTF_BASICS
0da3TF_INFECTED
0db8TF_FLYNN
0dceTF_PLAYER
0de3TF_RADIA
0df7TF_DISC
0e0eTF_OUTLAND
0e23TF_ABRAX
0e35TF_BG
0e4aTF_REGUL
0e61ABRXSHARD1
0e78ABRXSHARD2
0e8fABRXSHARD3
0ea6ABRXSHARD4
0ebdABRXSHARD5
0ed4ABRXSHARD6
0ef2LOWEST_DIFFICULTY
0f11IRON_MAN_AVAILABLE
0f2eCompleteTutorial
0f58ItemsPurchased
0f81ModsPurchased
0fafEnhancersPurchased
0fdcUpgradesPurchased
1005LEVEL_UP_GRID
102fPLAY_GAME_GRID
105aWIN_DEATH_MATCH
108aWIN_TEAM_DEATH_MATCH
10b6WIN_POWER_MONGER
10e2CompleteGameHard
1101CompleteGameInsane
112cCurentHitStreak
117dSKIN_QUORRA
1191SKIN_GIBSON
11a2SKIN_CLU
11c0VEHICLE_DEFAULT_CYCLE
11d8SKIN_BLACKGUARD
11edSKIN_DEFAULT
120dDefault_LightcycleTrail
1223SKIN_SAMFLYNN
123cCORE_HEAVY_DISC1
1254UPGRADE_ENERGY1
126cUPGRADE_HEALTH1
1284ENHANC_SOLOHLT1
129cUPGRADE_ABSORB1
12b4MOD_HEAVY_DISC2
12ceMISC_MP_LOADOUT_2
12e6UPGRADE_ENERGY2
1300MOD_HEAVY_PASSIVE
1318ENHANC_SOLOENG1
1330UPGRADE_HEALTH2
1348CORE_BOMB_DISC1
1360ENHANC_TEAMHLT1
1377ENHANC_DMGRES1
138fUPGRADE_ABSORB2
13a7ENHANC_TEAMENG1
13beMOD_BOMB_DISC2
13d6UPGRADE_HEALTH3
13f0CORE_STASIS_DISC1
140aMISC_MP_LOADOUT_3
1422UPGRADE_ABSORB3
143bMOD_STASIS_DISC2
1454MOD_BOMB_PASSIVE
1471CORE_CORRUPTION_DISC
1488ENHANC_DMGRET1
14a0UPGRADE_ENERGY3
14bdMOD_CORRUPTION_DISC2
14dbENHANC_LINEDMGSCALES1
14f3UPGRADE_ABSORB4
1511ENHANC_LINEDMGSCALET1
152cMOD_STASIS_PASSIVE
1544UPGRADE_HEALTH4
1560VEHICLE_MOVIE_CYCLE
157fMOD_CORRUPTION_PASSIVE
1594ENHANC_DMGS1
15a9ENHANC_DMGT1
15c1ENHANC_BESERKS1
15d9ENHANC_BESERKT1
15f1ENHANC_SOLOHLT2
160dVEHICLE_FLYNN_CYCLE
1625ENHANC_SOLOENG2
163cENHANC_DMGRES2
1654ENHANC_TEAMHLT2
166cENHANC_TEAMENG2
168aENHANC_LINEDMGSCALES2
16a8ENHANC_LINEDMGSCALET2
16bfENHANC_DMGRET2
16d4ENHANC_DMGS2
16e9ENHANC_DMGT2
1701ENHANC_BESERKS2
1719ENHANC_BESERKT2
1730ENHANC_ALLINES
1734Audio Subtitles
1750Volume SFX
1754Volume Music
1758Volume Dialogue
042d or 046eTotal XP
043dDifficulty
0418HUD
0419Disc Station Grids
1738Inverted Look
0435Camera Sensitivity