Submission #5677: mamuuuut & lapogne36's PSX Legacy of Kain: Soul Reaver in 21:01.23

(Link to video)
Sony PlayStation
baseline
BizHawk 1.13.0
75598
59.94005994005994
61048
Unknown
Legacy of Kain - Soul Reaver (USA).cue
Submitted by mamuuuut on 10/21/2017 12:34:59 PM
Submission Comments

Game objectives

  • Emulator used : BizHawk 1.13.0
  • BIOS : SCPH5501.BIN
  • Aims for fastest time
  • Heavy glitch abuse

About the game

The second game of the Legacy of Kain franchise. Follow Raziel on his quest for revenge against Kain and his brothers.

Comments

Differences between PSX and PC versions

The two versions are almost the same, the only notable differences are the pause menu and the fact that the game runs at a constant 30 FPS on PC, while the PSX version is closer to 25~26 FPS (in the case of this TAS) due to technical limitations.

Speed and movement

MovementAverage Speed
Running60
Standard Bunny Hopping87
Fast Bunny Hopping87
Superspeed105
After a jump, Raziel will walk on his own (at a speed of 67) and be unable to jump again for the 8 next frames, we called this Standard Bunny Hopping. However you can jump sooner if you press L1 for 2 frames, at the cost of staying with a speed of 0 for 2 extra frames (instead of the 8 frames with a speed of 67), we called this Fast Bunny Hopping.
Since the speed while jumping is equal to 83 for the first 6 frames, then go to 85 and increases by 4 every frame, the average speed of a Bunny Hopping (Standard or Fast) depends on how long Raziel stays in the air. On a flat surface, the average speed for both variations is 89, but the travelled distance isn't the same, so a mix of the two is usually the best option, with the aim to end the last jump right when reaching the next point of interest.
The Standard Bunny Hopping is faster on a climb, while the Fast Bunny Hopping is faster on a slope. Eventually, the Superspeed is the faster way to move, but there are some serious restrictions to it's use (see below).

Route planning

To reach the credits, you must win the second fight against Kain (aka kain2). To beat kain2, you must have the Reaver. To get the Reaver, you must win the first fight against Kain (aka kain1). This is basically the minimum needed to beat the game. At one point, we considered going to kain2 first to activate the portal near him and benefit from the Superspeed that we can't use once we get the Reaver, but the cost of activating the portal and doing a round trip (around 20 seconds) was unfortunately too high in comparaison to the gains. Here is a video showing what it would have looked like : https://www.youtube.com/watch?v=CGSI3gVZSfM

Glitches and tricks

First of all, it's important to understand how the game is working. The world is split into areas (aka room). At any given time, in addition to the the room in which Raziel is, the game will physically load all the adjacents rooms. In order to get to another room, Raziel must cross the "border" between the current room and the next one. Getting in another room without crossing the border is possible thanks to some glitches and the fact that the room is physically loaded, but the game will still consider that Raziel is in the same room, and thus not loading the next rooms. Because of this, there is a limit to how much we can deviate from the intended route, and all the borders leading to kain1, then the ones leading to kain2 must be crossed properly. Also, in case you try to cross a border leading to a room not yet loaded (shouldn't be possible without glitches) a "streaming" message will appear and the game will be paused until the room is properly loaded. It is always faster when possible to wait for the room to load than to cross the border and make the message appear.
  • Instant max speed (IMS) : By pressing L1 for at least 2 frames and then releasing it, Raziel will reach his maximum running speed of 60 instantly. Not used often since the Bunny Hopping and/or the Superspeed are usually better options.
  • Superspeed : When Raziel starts to move from a 0 speed position and stop moving for 1 specific frame, he will have for unknow reasons a huge boost to his speed. However this glitch isn't possible with any other setup (IMS or jumping for example) so the distance to travel must be high enough to make up for the cost of the slow setup. Unfortunately, this glitch isn't possible anymore once Raziel gets the Reaver.
  • Instant Break Out (IBO) : If Raziel is crouched and that you successively press L2+R2 (look-around mode) then open the select menu, you will open the menu while in look-around mode, and he will keep this mode even if you quit the menu, as long as you hold L2+R2. By doing so, Raziel can move freely while keeping this mode on, and exiting this mode has the effect of giving back the control of Raziel, even if he starts an animation at the same time. In the case of this TAS, the applications of this glitch are jumping mid-air and skipping the animations of opening a door or going back in the physical world.
  • Time Stop (TS) : When opening the select menu, the time is frozen for everything but Raziel who is still sligthtly moving with his natural pendulum swing. If Raziels happens to be right on a border, his position will alternate between two rooms, and if the menu is closed at the same frame than Raziel gets on the other room, you will regain control of Raziel while everything else will remain frozen (and the select menu will still be opened). On the contrary, everything but Raziel will move normally if you exit the select menu afterwards. One of the benefits from this glitch is that cutscenes won't start as long as you don't exit the select menu. You can cancel a TS by doing the same setup, doing the IBO setup or watching a cutscene.
  • Time Stop Teleporting (TST) : The true value of the TS is to be able to do this glitch. To setup it, while in TS, you must exit the select menu near an object Raziel can interact with and that would normally "reposition" him, then reopen the select menu. From now on, each time you press square in this room, Raziel will be teleported back to the object. Now the oddity is that the game will also try to do that even if Raziel is in another room, and what determines where Raziel will be teleported isn't clear at all (though it's not random). Among the things that we identified as influencing the teleporting destination, are Raziel's current position, initial object position, the border used to do the TS, if we cross a border while the next room isn't fully loaded (even if there is no "streaming" message), pressing square again while teleporting, being or not being crouched (though you can jump mid-air after a teleport only if you were crouched), making a round trip on a border, the content of the memory cards, and so on...

Stage by stage comments

Beginning to the first fight

Using a TS right away so that we can trigger the first two cutscenes at the same time, which is faster than triggering them one by one. Everything else is following the intended way, except for a double jump that allows to skip some jumps and a cutscene.

First fight

The two ennemies start with 40 HP, and you must deal at least 41 damage to kill them. Our fighting skills are limited to a 3 hit combo dealing 8+16+24 damage and some sort of dash attack that deals XXX damage. Neither of these attacks can hit two ennemies at a time (despite some of them giving the visual impression that it is possible).
A TS is used here to prevent the monsters to absorb souls (they will go for Raziel instead), because else it would increase their HP, preventing Raziel to kill them with a 3 hit combo. A lot of investigation was done to get a good RNG on this fight (Raziel must be pushed as close as possible to the wall), and the end result is pretty good. Very rarely, you will see one of the two monster hitting the other one by accident, dealing 7 damage. We didn't manage to find a single setup to have one monster hit the other one two times, and it isn't even sure it would allow to save any time.

Up to the box room

Nothing unusual until the door. Using an IBO allowed Raziel to move immediatly, but triggering the next cutscene must be delayed by some frames, else one of the monster would hinder us later. It's possible to not activate this cutscene, but then the monsters would not appear and we must kill them in order to continue. The double jump is to get just over a cutscene trigger, and by skipping it the monsters will not move, allowing us to kill them with the box without trouble. With a perfectly timed IMS, it's possible to be teleported in top of the box while it's still moving and then to jump mid-air, allowing us to reach the next floor without catching on the edge. There is a border near that edge, that we used to do a TS.

Up to kain1

In order to reach kain1, we needed a TST setup allowing us to pass through 5 obstacles. A round trip on a specific border at a specific timing was required in order to manipulate the RAM, else it would not have been possible to pass through the second obstacle (the first grid). With this setup, everything went pretty well, and the distance travelled without teleportations was kept to a minimum. After passing through the last grid, we used an IBO setup to get out of the TS. Entering the pillars room before it is fully loaded allowed for some reason to activate the door sooner (you can't activate it right away while the room is still loading). Also, entering with the "streaming" message causes the door to not be physically loaded (i.e. Raziel isn't blocked by the door during the cutscene, like in non-assisted speedruns), which is very important for an upcoming glitch.

kain1 to the Reaver

You just need to hit Kain 3 times to beat him. He can spawn at 3 different places each time, and he will always choose the one the farthest from Raziel, so it's easy to manipulate.
After taking the third hit, a cutscene is supposed to start, but if Raziel gets away from Kain fast, it will not until Raziel is close to Kain again. Now the funny thing is that you can reactivate the door (the fastest way is to get out of the room then coming in again) and it will play the first cutscene again. But while Raziel is walking to Kain, it will also trigger the cutscene we dodged earlier.
With the two cutscenes playing at the same time, the game is confused, and after some time it finally decides to give back the control of Raziel even if the cutscene isn't over. Shortly after Kain disappearance, Raziel is supposed to shift into the Spectral Realm (or, if Raziel is already in this realm, shift into the Material Realm), but by pressing L1 at the right time, we can dodge this animation.
Later during the cutscene, we finally got the Reaver. Since we have control of Raziel, the best would be to instantly save the game and quit, but it's not possible since earlier in the cutscene, the game got into "cutscene mode", effectively disabling the pause menu. The only way that we found to fix this issue (beside waiting for the end of the cutscene) was to activate the door (yeah, this door again) with the Reaver, starting a different, short cutscene that allowed us to get out of the "cutscene mode" and save+quit the game more than 1 minute before the end of the cutscene. Note that if the door was previously physically loaded, it will not be here at this time, and so it would not be possible to active it.

Loading game to the box room

Basically the same things than the first pass, without the cutscenes and without the Superspeed. The only notable difference is that we did an IBO when getting back in the Material Realm. Also we quickly opened and closed the pause menu, because the game was still considering us in the pause menu since the save+quit (it's a PSX only glitch), and it's not compatible with a TS.

Up to kain2

To go to kain2, there are 8 mandatory obstacles to skip with a TST, but there are also around 11 significant places where a TST can save a good amount of time. The best setup we found, which is in the end similar to the one for kain1, allowed us to pass these 8 obstacles and to get a good TST in 9 of the 11 significant places.
Some of the TST were so big that we crossed 2 borders at a time with them, leading to an unavoidable "streaming" message

kain2

Like kain1 (and literally every fight in this TAS), you need 3 hits to beat him. Same as before, he will spawn at the farthest spawn point from Raziel, so there is not much you can do to save time here.

Possible improvements or ideas

  • Better TST setups : There are most likely better setups possible, but we are currently lacking knowledge on how it works exactly, as it would require a deep reverse ingeneering of the game.
  • Less lag
  • New glitches : For example, if it was possible to use the portals system to go to a place not visited yet.

Special Thanks

The LoK speedrunning Discord for their advices, and particulary daemord.

Suggest screenshot :

Frame 49813

Fog: Judging.
Fog: Excellent run, found it thoroughly entertaining after the tutorial bits. It was a bit slow in the beginning, but once the glitches started coming it went real quick.
Accepting for Moons!
Spikestuff: Publishing.
Last Edited by adelikat on 10/23/2023 11:43 PM
Page History Latest diff List referrers