Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
savegame:tr1 [2017/02/01 19:48] – created zdimensiontrs:savegame:tr1 [2017/02/23 23:57] zdimension
Line 2: Line 2:
  
 <code cpp> <code cpp>
-struct tr1_savegame+struct tr1_savegame // 10675 bytes
 { {
-    uint8_t SaveName[33]; // ASCII C string; null-terminated (rdata after \0 is ignored); for accents see String Array section of TOMBPC.DAT page +    uint8_t SaveName[75]; // ASCII C string; null-terminated (there is always random data after \0, it is ignored); for accents see String Array section of TOMBPC.DAT page 
-    uint8_t Unknown1[42]; +    uint32_t SaveNumber; // game clips it to 16 bits 
-    uint16_t SaveNumber; +    uint8_t Unknown2[15];
-    uint8_t Unknown2[47];+
     // First level use block 0, second use block 1... so that at the end of the game,      // First level use block 0, second use block 1... so that at the end of the game, 
     // it sums up everything and/or checks if you found all secrets, etc     // it sums up everything and/or checks if you found all secrets, etc
Line 18: Line 17:
         uint8_t SmallMedipacks; // 255 means unlimited         uint8_t SmallMedipacks; // 255 means unlimited
         uint8_t LargeMedipacks;         uint8_t LargeMedipacks;
-        uint8_t Unknown1[3]+        uint8_t NumScionPieces; 
-        /* 00000001 Always set+        /* 0 None 
 +         * 1 Climbing 
 +         * 2 ? 
 +         Single shot.? 
 +         * 4 Combat? 
 +         */ 
 +        uint8_t HandStatus; 
 +        /* 0 None 
 +         * 1 Pistols 
 +         * 2 Magnums 
 +         * 3 Uzis 
 +         * 4 Shotgun 
 +         */ 
 +        uint8_t Weapon; // current held weapon  
 +        /* 00000001 Level unlocked
          * 00000010 Pistols          * 00000010 Pistols
          * 00000100 Magnums          * 00000100 Magnums
          * 00001000 Uzis          * 00001000 Uzis
          * 00010000 Shotgun          * 00010000 Shotgun
 +         * 00100000 Midas Hand
          */          */
         uint8_t Weapons;         uint8_t Weapons;
         uint8_t Unknown2;         uint8_t Unknown2;
-    } Blocks[19]; +    } LevelInitData[21]; // for the 21 levels (315 bytes) 
     uint32_t ElapsedTime; // in game ticks (1/30th of a second), so divide by 30 for time in seconds     uint32_t ElapsedTime; // in game ticks (1/30th of a second), so divide by 30 for time in seconds
     uint32_t Kills;     uint32_t Kills;
-    /* 00000001 Bronze +    uint16_t SecretsFound
-     * 00000010 Jade +    uint16_t LevelNumber; // First level = 1 
-     * 00000100 Gold +    uint8_t NumPickups;
-     */ +
-    uint8_t Secrets+
-    uint8_t HealthPacksUsed; // Divide by 2 for value. Large medipack = 1; Small = 0.5 +
-    uint8_t LevelNumber; // First level = 1 +
-    uint8_t Unknown5a[5];+
     uint8_t UnlimitedAmmo; // Enabled = 1     uint8_t UnlimitedAmmo; // Enabled = 1
 +    uint8_t HasItem141; // From decompiled game source.
 +    uint8_t HasItem142; // Strangely, those (unknown) items aren't present in any official TR1 level
 +    uint8_t Puzzle[4];
 +    uint8_t Keys[4];
 +    uint8_t Pickup; // the pickup item
 +    uint8_t LevelInitDataCRC; // not implemented, always 0
 +    // 10240 bytes starting from now
 +    uint8_t RoomsAreSwapped;
 +    uint8_t FlipFlags[10]; // = (FlipFlag & 0xFF00) >> 8
 +    
 +    
     uint8_t ReadToEOF[];     uint8_t ReadToEOF[];
 }; };
Line 45: Line 65:
 ===== Identifications ===== ===== Identifications =====
  
-TODO+==== Levels ==== 
 + 
 +^ ID ^ Level ^ Filename ^ Cameras ^ Items ^  Secrets ^ Puzzle ^^^^ Key ^^^^ 
 +^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ 1 ^ 2 ^ 3 ^ 4 ^ 1 ^ 2 ^ 3 ^ 4 ^ 
 +|  0 |  Lara's Home  |  ''%%GYM%%''  |  1 |  1 |  0 |  |  |  |  |  |  |  |  | 
 +|  1 |  Caves  |  ''%%LEVEL1%%''  |  2 |  60 |  3 |  |  |  |  |  |  |  |  | 
 +|  2 |  City of Vilcabamba  |  ''%%LEVEL2%%''  |  6 |  95 |  3 |  Gold Idol  |  |  |  |  Silver Key  |  |  |  | 
 +|  3 |  Lost Valley  |  ''%%LEVEL3A%%''  |  6 |  64 |  5 |  Machine Cog  |  |  |  |  |  |  |  | 
 +|  4 |  Tomb of Qualopec  |  ''%%LEVEL3B%%''  |  10 |  77 |  3 |  |  |  |  |  |  |  |  | 
 +|  5 |  St. Francis' Folly  |  ''%%LEVEL4%%''  |  14 |  107 |  4 |  |  |  |  |  Neptune Key  |  Atlas Key  |  Damocles Key  |  Thor Key  | 
 +|  6 |  Colosseum  |  ''%%LEVEL5%%''  |  10 |  86 |  3 |  |  |  |  |  Rusty Key  |  |  |  | 
 +|  7 |  Palace Midas  |  ''%%LEVEL6%%''  |  7 |  136 |  3 |  Gold Bar  |  |  |  |  |  |  |  | 
 +|  8 |  The Cistern  |  ''%%LEVEL7A%%''  |  7 |  112 |  3 |  |  |  |  |  Gold Key  |  Silver Key  |  Rusty Key  |  | 
 +|  9 |  Tomb of Tihocan  |  ''%%LEVEL7B%%''  |  15 |  88 |  2 |  |  |  |  |  Gold Key  |  Rusty Key  |  Rusty Key  |  | 
 +|  10 |  City of Khamoon  |  ''%%LEVEL8A%%''  |  3 |  93 |  3 |  |  |  |  |  Saphire Key  |  |  |  | 
 +|  11 |  Obelisk of Khamoon  |  ''%%LEVEL8B%%''  |  8 |  103 |  3 |  Eye of Horus  |  Scarab  |  Seal of Anubis  |  Ankh  |  Saphire Key  |  |  |  | 
 +|  12 |  Sanctuary of the Scion  |  ''%%LEVEL8C%%''  |  12 |  74 |  1 |  Ankh  |  Scarab  |  |  |  Gold Key  |  |  |  | 
 +|  13 |  Natla's Mines  |  ''%%LEVEL10A%%''  |  15 |  101 |  3 |  Fuse  |  Pyramid Key  |  |  |  |  |  |  | 
 +|  14 |  Atlantis  |  ''%%LEVEL10B%%''  |  6 |  192 |  3 |  |  |  |  |  |  |  |  | 
 +|  15 |  The Great Pyramid  |  ''%%LEVEL10C%%''  |  2 |  129 |  3 |  |  |  |  |  |  |  |  | 
 +|  16 |  Cut Scene 1  |  ''%%CUT1%%''  |  1 |  3 |  N/A  ||||||||| 
 +|  17 |  Cut Scene 2  |  ''%%CUT2%%''  |  0 |  1 | ::: ||||||||| 
 +|  18 |  Cut Scene 3  |  ''%%CUT3%%''  |  0 |  4 | ::: ||||||||| 
 +|  19 |  Cut Scene 4  |  ''%%CUT4%%''  |  0 |  6 | ::: ||||||||| 
 +|  20 |  Title  |  ''%%TITLE%%''  |  0 |  1 | ::: ||||||||| 
 +|  21 |  Current Position  |  ''%%CURRENT%%''  |     | ::: ||||||||| 
 + 
 +<note important>The level "Current Position" (ID 21) seems to have been used internally during the development of the game, and its purposes are unknown. Its file "''%%CURRENT.PHD%%''" isn't present in any of the official releases. TODO: Check in the betas.</note>
trs/savegame/tr1.txt · Last modified: 2021/07/15 05:00 by stohrendorf
Back to top
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0