Submission #4293: lapogne36 & Crash41596's PSX Spyro 2: Ripto's Rage! in 07:32.47

Sony PlayStation
baseline
(Submitted: Spyro the Dragon 2 - Ripto's Rage [NTSC-U] [SCUS-94425] USA)
PSXjin 2.0.2
27148
60
19840
Unknown
Submitted by lapogne36 on 5/2/2014 6:48 AM
Submission Comments
Follow Spyro on his quest to save Avalar squeeze a poor bear, now 74355 frames, or 20 minutes and 39 seconds, faster

Game objectives

  • Emulator used: Psxjin v2.0.2
  • Aims for fastest time
  • Heavy glitch abuse
  • Takes damage to save time

Comments

It's been four years since I submitted the first TAS of this game, and a lot of route improvements were found since this time.

Tricks and glitches

Double jump

By pressing square and X at the same time while jumping (and not moving), Spyro will reach an unexpected height.

Proxy ejections

For most of the monsters you can kill with a charge attack, their body will take some seconds before disappearing. This body will not be a solid object if you try to go through it will charging, however it will be solid in all other cases. So if you stop charging while in the body, 2 solid object will be at the same place, and the game will eject Spyro (the closer you are from the monster "center", the the fastest you will be eject). You can use this game mechanic to reach REALLY HIGH heights.

Stage by stage comments

Glimmer

RTA runners use another route which could have been faster, but after TASing both of them it ends up 3 frames slower than the one we kept...

Summer Forest

I used a frog to be proxy ejected to another one, then a proxy jump to reach a platform that would take longer to reach otherwise. With an accurate jump you can then go through the wall without a double jump. The next proxy jump was a hard one, as the edge of the ceiling is solid, but it saved some seconds compare to the "normal" way to go to Crush's Dungeon.

Crush

He will stop his attacks and move to another circle if Spyro is wound, the good new is that he doesn't check if it is him who hurt Spyro.

Autumn Plains

The maximum speed you can get from a proxy with perfect position is a little bit more than 20000, which is just enough to go from the frogs in the plain to a part of the roof. However all monsters in the game (or at least all the ones I checked) have a "z position" under the ground, so it is impossible to get a "perfect" proxy jump. The Gulp skip was found 6 month ago and require very accurate movements (even if it doesn't look like that here...), and it is the only know way to reach Gulp's Overlook without the 14 talismans.

Gulp

For each egg, you can manipulate 2 things apart :
  • The moment and the place it will be drop
  • The time before the egg hatch and the item it contains
While the second part of the luck manipulation wasn't really hard, the first one gives me a lot of troubles. There is no RAM value that gives the time before the egg is dropped (there is one which start at 1000 when the bird appear, then decrease until the egg is dropped, then stop moving), and I don't have enough knowledge to try to understand how the rng works, so I used a lua script to make brute force searching, but there was no way I would have been able to test all possible outputs. This fight was 10 seconds shorter than the one in my old TAS.

Winter Tundra

A proxy jump to reach the second part of the level faster, then what I like to call the "Divine Jump". Assuming you have the perfect proxy jump on the penguin (same x and y position, and a difference less than 400 with the z position), I am not sure you can reach a speed of 18000. To reach Ripto's Arena, your proxy jump must give you a speed of more than 17300 ! This is pretty much impossible to get as Spyro's x and y coordinates move by more than 100 every 2 frames (the game update the coordinates 30 times a second) when you are charging. For reference the difference between the coordinates (x and y) of Spyro and the penguin were 11 and 17 in this TAS, however a difference of 13 and 17 would not have give a good enough proxy jump. Also I waited before killing the penguin because I needed him to die on the left side of the ground, otherwise I would not have been able to make a z difference under 400.

Ripto

For any powerup, the first hit deals 10 damage, then all others deal 4 damage. Ripto has 60 HP and Mecha Gulp has 80 HP. The "green powerup" allows me to deal 34 damage in a row to Ripto, so I was able to finish him with only 4 hits, plus dealing 2 hits to Mecha Gulp (which for some reasons deal 8 and 4 damage, so 68 HP left) However for some reasons the green powerup ends 38 frames sooner in the phase 2 than in the phase 1, and this prevents me from dealing more than 30 damage in a row to Mecha Gulp, so it was impossible to beat him with only 2 powerup.
Also, usually RTAs first go to Dragon Shores to take infinite Fireball and then fight Ripto, but it would have cost time in the TAS as Ripto can be defeated really fast thanks to the green powerup.

Special thanks

Crash41596, as we started the TAS together, and I ended up keeping some of the early part of our work
Spyro runners, for finding glitches like the proxy jumps or the Gulp skip

feos: There seem to be notable differences between this run and the existing one. The existing one is beating the game obtaining the minimal amount of talismans that the intended route allows. Similar to SM64 "70 stars, no BLJ". This run heavily uses glitches and skips the usual requirement to obtain talismans to advance in the game, collecting the minimal amount of them possible within the unintended route. Similarly to SM64 "0 star".
By the Spyro 2 speedrunning community, the "1 talisman" run is already referred to as any%, not glitched%, so I think it deserves to go unlabeled here. And since 14 of them isn't an arbitrary number, but the exact minimum that the intended route allows, calling it "14 talisman" makes the best sense.
Accepting as a new branch to Moons.
Spikestuff: Publishing... damn that took some time.
Sorry for delay. I was trying to get all the audio to work but sadly the audio at the end kinda cuts off, and I could not create a proper solution. Resuming as it is.
Last Edited by adelikat on 10/11/2023 12:29 AM
Page History Latest diff List referrers