Game objectives
- Emulator used: BizHawk-2.5.2
- Game version : v1.6
- BIOS : SCPH5501.BIN
- Collects all the secrets
- Heavy glitch abuse
- Aims for in-game time instead of real-time
About the game
The very first game of the action-adventure franchise, featuring Lara Croft as she sets out on an expedition to recover a mysterious artifact called the Scion.
Differences between PSX and PC versions
There are a few differences between the PSX and PC versions of the game, but nothing impactful on the route planning:
- Loading times on PSX between levels
- Save points that are physical objects on PSX (on PC, you can save anywhere and anytime), so they can hinder or help Lara
- PSX exclusive save/reload glitches
Aims for in-game time instead of real-time
The game runs at 30 fps, so usually 1 in-game frame = 2 real time frame. On laggy places, the game may need more real time frame to advance to the next in-game frame. Using IG time instead of RT made the route planning easier and made it viable to abuse a save/reload glitch. For the rest of these comments, I will always speak about IG frames.
Speed and movement
Movement | Speed (RAM) |
Running | 47 |
Standing jump forward | 50 |
Rolling (first frames) | 50 |
Swimming | 50 |
Sliding on a slope | 50 |
Running jump | 75 |
As you can see, the running jump is by far the fastest way to move, to the point where it is often better to take a seemingly non-optimal trajectory in order to make one more jump instead of running.
Now it is important to note that these are the speed in the RAM. In practice, the game rounds Lara's coordinates (X, Y, Z) because it only accepts integers. It means that depending if it rounds up or rounds down, Lara's true speed will be a little bit higher or smaller than the RAM speed.
Lara's speed is calculated as follows:
X:
lara->xPos += (sin(lara->angle) * lara->speed) >> 14;
Z:
lara->zPos += (cos(lara->angle) * lara->speed) >> 14;
and lara's Y speed is her fallspeed, and that's irrelevant.
When Lara is turning, her rotation speed increases by 45 each frame, until it caps to 1092 (on the ground) or 182 (in the air). However, when she is holding her guns (must be fully equipped) and turning on the spot, her rotation speed will reach 1092 almost instantly. While swimming, the rotation speed is always 1092 no matter what.
Route planning
Strictly speaking, there are only 3 enemies I need to kill to finish the game, <enemies needed to be killed>. Picking an item on the ground costs 73 frames (~2.43s) at the very least, so I needed to restricted the number of extra picks as much as possible.
Weapon | Potential damage per clip | DPS | Potential frames saved over pistols |
Pistols | 8 | 6 | 0 |
Shotgun | 48 | 21.82 | 174 |
Magnums | 100 | 12 | 250 |
Uzis | 100 | 15 | 300 |
So for the 3 enemies mentioned above, it is worth to pick any of these weapons/clips as long as it costs less time to pick them than their potential frames saved.
For Pierre, it is faster to get the shotgun and its ammo to kill him, since he only needs these 2 pickups.
As for the legless mutant (adam) fight, the uzis are the to-go choice here because each ammo pickup gives 100 bullets, and in a few instances the pickups are doubles (as in, two pickups at the same time).
Now for the medipacks, it is worth to pick them only if the alternative method to save enough health costs more time.
Glitches and tricks
- Corner bug : By entering into a corner with an angle close to 45°, Lara will get teleported to the top of this corner. There are a lot of methods to enter a corner, though I mainly used running jumps and rolls to do so.
- Wall bug : By hitting a wall while jumping, Lara is teleported to the top of this wall. It only works either if the floor under Lara is slightly-sloping or if she is between two floors of different height.
- Sidestep descending bug : If Lara does a sidestep while in the air (possible cases: start of a level, collapsible tiles, or if Lara is really close of a ledge), then she will be teleported to the floor below her without taking any damage.
- Dive bug : If Lara performs a dive and ends up at the edge of a ledge, she will not take damage even if the jump height would normally kill her.
- Delayed jump : By pressing the jump button at the right time, you can delay a running jump by one frame. While it isn't visible to the naked eye, it was useful from time to time.
- restart level bug : after saving in a level, using the "restart level" functionality actually reloads your save, but it does not reload the statistics data (timer, secrets collected, kills, etc.).
Here is a table comparing my times with the best known individual levels time. Please keep in mind that in some cases I am at a disadvantage due to not having the same amount of weapons/medipacks or because I had to pick extra items for future levels.
Level | time |
Caves | 2:51 |
City ofVilcabamba | 3:22 |
Lost Valley | 4:13 |
Tomb of Qualopec | 1:29 |
St. Francis' Folly | 5:03 |
Colosseum | 3:43 |
Palace Midas | 6:16 |
The Cistern | 3:43 |
Tomb of Tihocan | 5:58 |
City of Kahmoon | 1:29 |
Obelisk of Kahmoon | 2:21 |
Sanctuary of the Scion | 5:42 |
Natla's Mines | 4:21 |
Atlantis | 4:33 |
The Great Pyramid | 4:11 |
Total | 59:15 |
yay sub 1 hour
Now some comments about TAS specific stuff (aka RNG)
Lost Valley
the trex really likes to bite, and the little guys really like to push lara around. but Lara got through it!
Tomb of Qualopec
near the beginning of the level we glitch into a special wall and jump inside it along the hallway, to skip a trigger that closes the door above on us. in any% this trigger is skipped by avoiding a flipmap trigger at the very beginning of the level (skipping the first corner in the level), but doing this blocks the way to the secrets.
St. Francis' Folly
It took me a lot of time to figure out a way to manipulate the lions at the end, as they can easily delete my health bar in mere seconds. I expected to need to use a healthpack, but was actually able to proceed without it. while this is good and actualy saved a few frames, it meant that the healthpack pickup in the level before was useless. this is a possible improvement.
Sanctuary of the Scion
one stupid bitch of a level.
Atlantis
RNG hell.
The Great Pyramid
The legless mutant has some invulnerability frames when he turns, so I moved so that he turned as little as possible.
Possible improvements or ideas
- look on the St. Francis; Folly note. Since I can't hex-edit any section involving RNG or lag (which is literally 99% of the game), I chose to just continue the TAS.
- look on the Tomb of Tihocan note. I found the restart level glitch when I was in Atlantis. That's 4 levels after this one. there was no way I could work it in, so I just chose to continue the TAS.
Special Thanks
- Samsara because !!!!!!! loveya mom <3
- GoddessMaria because mom loves her <3 I also love her <3 she's just loved <3
- Samsara and GoddessMaria again for being gay together
- Colin for being the best brother <3
- InputEvelution for being gay
Suggest screenshot :
frame 176639, float tm
Samsara: Setting to Delayed while the author implements an improvement.
Samsara: File replaced with a 1066 frame (realtime)/21 second (IGT) improvement, also slight change to the branch name.
The run, naturally, is very well done. Entertaining, full of both normal swag and hashtag swag, and still incredibly hard to follow with Lara's usual reality warping powers. There are a couple of technical things I'd like to go over, though, as they're pretty important!
First, this run does not actually collect all secrets because a programming error in the game prevents that from being possible. In The Great Pyramid (the final area, for those like me who aren't super familiar with Tomb Raider), two different secrets trigger the same flag. More specifically, the "first" and "third" secrets both set the flag for the first secret. This means that if one is triggered, the other one cannot be, making it completely impossible to actually collect 3 out of 3 secrets in this area. Therefore, despite technically not accomplishing the goal by the metrics of the stat screen, this run does accomplish its goal of collecting all obtainable secrets.
Secondly, on the note of the stat screen, I'd like to make a note about full completion for this game. The RTA community defines full completion as collecting all secrets (except the impossible one), killing all enemies, and collecting all pickups, as these three things are all shown on the post-level stat screen. I don't quite agree with that definition for one main reason: Secrets are the only thing that has a defined amount per area. Kills and pickups are tracked, yes, but the stat screen doesn't show precisely how many possible kills and pickups there are. While there are, in theory, finite amounts of enemies and pickups, the fact that they're not explicitly tracked as such means it isn't easy to determine whether or not 100% has actually been achieved without putting in the effort to double check.
On top of that, the fastest 100% RTA run of this game is well over twice as long as this TAS, and that's on the PC version which I imagine is significantly faster. The fastest 100% run on Playstation, while glitchless, is over four times the length of this run. It's clear that adding in pickups and kills completely breaks the pacing of the run. The TAS would still be much faster than the RTA runs, naturally, but I can't imagine that the extra "content" would make for an exciting watch. On top of THAT, pickups include consumable items, which I really don't think should ever be considered in a 100% definition unless, again, they're explicitly tracked and given a finite number to collect in the stat screen. So, for right now, I'm comfortable calling this full completion for this game. I don't know if a true 100% run would obsolete this or not, but I'm still going to set the comparison here since... I can do that. Part of the job and all.
All that being said, accepting to Moons as a new branch. c: