Game objectives
- Emulator used: BizHawk-2.7.0
- BIOS: scph1001.bin
- Takes damage to save time
- Uses death to save time
- Uses game over to save time
- Luck manipulation
Spyro: Year of the Dragon 100 Egg is fundamentally an “Any% No Sorceress Skip” category that was branched from modern Spyro 3 Any% when a skip into the final boss was discovered in 2013 saving more than 20 minutes in a 1 hour run immediately. In order to enter the Sorceress fight intendedly, which this category requires, 100 eggs must be collected so that it’s possible to initiate a level-unlocking interaction with Bianca, the Sorceress’s former apprentice turned ally-to-Spyro. There are 150 eggs in the game. 146 of them are accessible before entering the Sorceress fight, so we had plenty of options to choose from. In many cases, eggs were obviously fast or slow. We’ll discuss the logic and testing that went into deciding the final egg route after outlining some generalities related to the context of this TAS and the techniques used in the run.
Authors and Contributors
This TAS was authored by wafflewizard1 with contributions from JeremyThompson, Nitrofski, Rui2Pop, and Drashed.
- JeremyThompson
- - Theorycrafting and testing in collaboration with wafflewizard1, route guidance, quality assurance
- Nitrofski
- - Insight into the technical aspects of TASing Spyro, route conversations, and help with inputs from his and lapogne36’s any% TAS
- Rui2Pop
- - Testing, draft authoring, and the person who inspired wafflewizard1 to make this TAS
- Drashed
- - Desert Ruins Sharks Subs challenge authoring
Videos
Here is the base encode:
https://youtu.be/itr81my3aWw
This is a version with commentary, as well as it being when the TAS premiered:
https://youtu.be/r9FDw2gnu9o
Previous Relevant TAS
This was a 2012 attempt at a TAS of 100 Egg when it was still Spyro 3 Any%. It was rejected due to being unable to finish the game as a result of piracy protection. Virtually everything done in this TAS has been obsoleted in some way by modern techniques, so its utility is mostly in being a comparison point.
This TAS is the gold standard of Spyro 3 TASes. We used it as a reference for some of the more intricate techniques and strategies and will be using sections of its submission text for our own submission.
In some cases, it was possible to reference egg challenges from this TAS to estimate egg detours and to inspire 100-Egg-specific egg challenge routes/strategies
Version Considerations
It’s well established that for various reasons the NTSC-U version of this game is faster than the PAL version; however, there were 2 distinct versions released for NTSC: version 1.0 (black label) and version 1.1 (Greatest Hits and Collector's Edition). This project uses version 1.0 mostly because it introduces a skippable section of the title screen and omits the long “Spike Is Born” cutscene that plays in version 1.1 upon entering Spike instead of a regular loading screen.
Other version differences:
Bianca's text outside of Sunny Villa scrolls normally on 1.0, but is skipped instantly on 1.1 (obsoleted by a glitched entry into Sunny Villa),
balloon descent differences between versions after the teleport to the end of homeworld vehicle in Sunrise Spring (slower on 1.0),
differences in fundamental Buzz mechanics (observable, but unclear — faster on version 1.1),
different and more nuanced egg placement for the "Defeat Spike" egg on version 1.0,
solidity differences for the boundary in Evening Lake (lower on version 1.0).
Generalities
Game Mechanics
Stored Level Portals
An important mechanic that will occasionally resurface throughout this TAS is how the game handles locked level portals. Level portals for locked levels are always loaded.
Area Portal Bleeding
Unlike level portals, area (or “sub-level”) portals are blocked rather than stored. In many cases, the area of effect of the portal is larger than the structure that encases it.
Most area portals can be entered early or unintendedly either by approaching them from behind out of bounds or by touching a section on the top of the portal structure.
Flop/Death Planes
Levels and sub-levels are generally constructed with an invisible horizontal death plane underneath a parallel “flop plane”. While the death plane affects Spyro in all situations, the flop plane only affects him when he is not swimming.
Some levels with underwater sections have flop planes that are positioned below the lowest grounded section of the level, but above the lowest swimming in-bounds section. In those cases, entering swimming sections without swimming and touching the flop plane results in Spyro immediately flopping straight down (even if he was gliding a moment before) and a total loss of player control.
Stored Eggs
If an egg needs to be used for some reason before it is collected rather than being awarded from nothing by an NPC for completing a task, that egg is generally stored somewhere within the level.
In almost every case, stored eggs are deactivated until they’re intended to be collected.
Eggs that are stored include eggs from deloaded thieves and other eggs that are needed for some sort of animation or sequence before they’re meant to be collected like the Sleepyhead egg in Spooky Swamp and the egg received for beating the Sorceress in the Super Bonus Round.
Fodder Lives
Normally, killing a fodder spawns a pink and yellow butterfly that, when consumed by Sparx, increases his health if he is damaged. After a certain amount of fodder have been killed, a blue butterfly spawns instead that fully replenishes Sparx’s health and awards Spyro a life.
The number of fodder required to receive a fodder life depends on Spyro’s current life count.
Certain circumstances reset the fodder count. For example, dying or Sparx consuming a blue butterfly from a butterfly jar or a skill point challenge.
"End-of-Level" Eggs
Every level has an egg which the game considers the "End-of-Level" (EoL) egg. The only condition required for the game to consider that a level has been completed is for this egg to be marked as collected. Collecting the EoL egg of each of the 5 main levels of the first 3 homeworlds is the only necessary requirement for accessing each homeworld boss and progressing onto the next world. Additionally, unlocking the homeworld's boss triggers an End-of-Homeworld teleport sequence in Sunrise Spring and Midday Gardens.
RNG
The RNG works the same way as with most PSX games : Next RN = (Current RN * 0x41C64E6D + 0x3039) (though the RNG is at the address 0x73F3C instead of the usual 0x9010).
RNG can be most efficiently manipulated by flaming (each of the flame "spikes" angle is random, as well as the puff of smoke when they hit something or timeout) or rotating the camera to keep control of the number of RNG-consuming actors currently activated.
Glitches, Techniques and Exploits
Spin jump
Exploiting properties of moving backwards and sideways while jumping to reach higher ledges.
By pulling Spyro backwards through a jump, the peak of that jump happens to be higher than normal. Additionally, the instant sideways acceleration when rotating ("spinning") mid-jump helps capitalize on this extra height by moving Spyro over ledges that would otherwise be too high to reach.
Wallglide
Gliding against a slanted wall to reduce, nullify or even counter normal height loss.
Slanted walls can prevent Spyro from losing height during his glide or, in some cases, even allow him to gain some height depending on his angle against that wall. As long as Spyro remains close to a wall, his glide height can be maintained indefinitely, but the game will automatically cancel the glide and make Spyro fall if too much height is gained from this technique. The height cap depends on the lowest point in Spyro’s glide.
Sproderman
Briefly charging then gliding again during a wallglide to surpass and even raise the wallglide's height cap.
When charging out of a glide, the current vertical speed is maintained momentarily. If this is applied right before Spyro is forced out of the glide due to reaching the gliding height cap, it’s possible to surpass that height cap. By gliding again at the apex of that charge, it’s possible to start a new wallglide with a fresh, higher height cap. This technique is a lot less powerful in this game than it is in Spyro 2, but still useful for TAS.
A “Sproderman" is either a single repetition of the above definition, or multiple repetitions chained together.
Flop
Using the falling state/animation to lift and push Spyro up onto a ledge normally too high to reach.
Momentary Speed Conservation (MSC)
Conservation of momentarily high speeds through the use of a character state transition.
When Spyro is subject to an artificially large instantaneous displacement, its possible to conserve that displacement as our base units/frame speed using any of the following state transitions:
Any -> Charging (aerial)
Standing/Walking -> Jumping
Any (aerial) -> Hovering
Any (aerial) -> Standing/Walking
Charging -> Skid-turning
For completeness, it’s relevant to note that, with higher-than-normal speeds, any form of charging has a higher speed decay rate than walking, jumping, falling or hovering. On the other hand, charging — especially when airborne, and even more so when rising almost vertically — has a much higher turn rate than other movement methods. On top of that, any form of charging as well as walking can perfectly redirect any magnitude of velocity forward..
Proxy
Attainment of momentary higher speeds through being ejected outside of a hitbox, and conservation thereof (see MSC — Momentary Speed Conservation).
When attempting to avoid the intersection of Spyro's hitbox and other bodies or surfaces, the game may instantaneously displace Spyro directly outside of the offending body. A proxy consists of maintaining the momentary speed of that displacement by using state transitions (see MSC).
Proxies fall into a few distinct categorizations:
Dead-body Proxy:
Likely the most common form of proxy you will encounter in any Spyro 2 or 3 speedrun. To achieve instantaneous displacement from a dead body, we exploit a property of the game where certain hitbox interactions are ignored when Spyro is charging. More specifically, several enemies, fodders, and other objects have hitboxes that can be charged straight through in certain situations (most commonly for enemies and fodder, when they are in their death animation). By interrupting a charge while Spyro's hitbox intersects such a hitbox, the game will force Spyro out of the interaction, causing a usable displacement.
Animation Proxy:
The instantaneous displacement of an animation proxy comes from, as the name suggests, intersecting with the animation of a body. More specifically, we intersect either with a fast animation or an unnaturally fast-moving portion of an animation. Spawning/teleporting body proxies are more or less sub-classes of animation proxies.
Squeeze Proxy:
At its most basic, a squeeze proxy is very similar to a dead-body proxy: you cause Spyro's hitbox to intersect that of another body or surface. However, this time, another opposing body or surface hinders the "path of least resistance", forcing a displacement to a further point unobstructed by the opposing body. In other words: you cause Spyro to get squeezed between 2 or more bodies/surfaces and cause a soap bar effect (given you successfully apply MSC). Squeeze proxies can have the proxy power of a perfectly aligned horizontal proxy when 2 hitboxes are involved, and greater power still when 3 or more hitboxes are involved — though the game often refuses to move Spyro in such situations.
Boundary/Re-entry Proxy:
This proxy type is unique in that it takes advantage of the property of surface hitboxes being directional. In other words, instead of pushing Spyro away from the offending hitbox, the game always pushes Spyro in the direction of the normal of the surface the hitbox is attached to. It does not involve any interaction other than approaching said hitbox from OoB (and the usual MSC involvement). It is, however, worth mentioning that despite pushing Spyro inbounds, it is possible to remain OoB while still benefiting from a small version of boundary proxies.
Swim in Air:
Maintaining swimming state outside of the intended swimmable areas.
The game handles taking Spyro in and out of the swimming state by identifying when he charges through water surfaces. By avoiding interaction with a water surface, we can maintain the swimming state "in the air" or out-of-bounds. Swim in air can be achieved by either:
- Obtaining swimming state OoB
Once OoB, we can start swimming by charging or headbashing through shallow water placed inbounds or through overhanging portions of deep water.
:Obtaining swimming state using inbounds oversights: Some oversights in how Spyro interacts with water surfaces under unusual conditions allow Spyro to obtain swimming state outside of the intended body of water while remaining inbounds through the entire process. Examples of this are the Sunrise Spring waterfall swim and the Bamboo Terrace swim in air.
- Obtaining swimming state by spawning swimming in “Zombie” state
While in the Zombie state, no interaction occurs between Spyro and water surfaces, allowing him to swim right through them and into the air. For more information, see the Zombie state glitch section below.
- Teleport anticipation
It’s possible to cause post-teleport dialogue boxes to appear early by positioning Spyro in such a way that we trigger the dialogue sequence to start before the teleport occurs. In such a situation, the teleport still occurs, but the dialogue sequence starts as the screen is still fading to black.
Ground trigger jump/glide
A ground trigger is a trigger to speak to an NPC or to hatch an egg.
While entering a ground trigger, you maintain control over Spyro for 1 or 2 more visual frames. This translates to at most 4 input frames, which allows for 2 actions to be input if they are spaced property. The most relevant action combination is a simple jump into a glide. During this sequence, Spyro is usually meant to move to a specific point in space (allowing a degree of error) and stop. In most cases, when Spyro finally lands from the glide, he will be auto-walked to stand in front of the subject of the ground trigger, rendering the glide unproductive. However, if Spyro glides over his intended stopping point, he’ll abandon his intent to stand in front of the subject and simply rotate in place to face the NPC or egg as he lands from his glide. This technique can be used to avoid parts of some of the lengthy end-of-level sequences by keeping out of the ground triggers used to progress through them.
Alternatives to this technique include charge-jumping or jumping in a way that results in Spyro’s death by falling while still triggering (and thus, collecting) an egg.
Zombie state
If the game is paused on the frame Spyro receives lethal damage, the game is unable to continue through the death process and it’s possible to exit the area or level through the pause menu. Doing so puts Spyro in Zombie state, where he can move freely, but certain interactions are in part or totally disabled. Among the most important effects, the pause menu is inaccessible, the interaction with water surfaces is disabled (allowing Spyro to stay swimming when leaving water basins), and all warps/teleports are disabled, as well as some cutscenes — which can also strip Spyro of this Zombie state, for better or for worse.
While in Zombie state, NPCs that are meant to teleport only do so while they are visible on camera when a camera button is released.
Camera lock
This technique is some kind of target velocity lock that can be used while playing as any of the critters (Sheila, Sgt. Byrd, Bentley, Agent 9). It is achieved by pressing the "center camera" buttons for a single frame (60-fps frame, and only works every other frame) in a way that would cause the camera to move substantially. When doing so, the current target velocity, controlled by current input direction and not current character angle, will be locked as long as no other action is taken. It can also be used to maintain speed through state transitions. For example: with Sgt. Byrd this technique can be used to walk at strafe-flight speed and with Bentley, this technique can be used to push boxes at walking speed.
As this technique locks the target velocity, it cannot be used to maintain higher-than-normally-achievable speeds (e.g. proxy speeds).
Agent 9’s Movement
If one of Agent 9’s strafe directions is held down, it’s possible to gain incredible speed by repeatedly pressing the other strafe direction while holding a forward direction.
In 1st person, this technique can be used while holding forward by itself. In 3rd person, a forward diagonal must be used.
General Routing Considerations
Selecting Which Eggs to Collect
As was mentioned in the introduction to this submission text, there are 150 eggs in Spyro 3, but only 146 are available before entering the final boss’s level. Eggs in levels that aren’t required to progress through the game (namely, speedways and Sparx levels) are very clearly slow - this does not include most main levels in Midnight Mountain, which generally contain efficient eggs. Eggs that are in required levels and don’t require any in-level area loads are obviously fast without exception. This allowed us to create a list of about 90 eggs that we immediately knew were fast enough to be included and a separate list of around 15 eggs that we needed to test in some way. We were able to estimate the detours of some of those 15 eggs by using sections of Nitrofski’s 117% TAS. For the remainder, we optimized challenges within the context of the category, designed level routes that included and excluded the eggs, and then tested the total detour for each egg with those comparisons.
These are all of the challenge eggs included in this project (all eggs that required an area portal entry).
- Bell Towers Challenge
- Thief in Bell Towers Challenge Area - Cloud Spires
- Thief Challenge 1
- Thief Challenge 2 - Molten Crater
- Broken Wall in Sgt. Byrd Challenge Area in Molten Crater
- Secret Cave in Sheila Challenge Area - Seashell Shore
- Boat Challenge in Bamboo Terrace
- Thief Challenge 1
- Thief Challenge 2 - Icy Peak
- Submarine Challenge 1
- Submarine Challenge 2 - Lost Fleet
- Beanstalk Challenge 1
- Beanstalk Challenge 2 -Charmed Ridge
- Agent 9 Challenge 1
- Agent 9 Challenge 2 - Fireworks Factory
- Ninja HQ Challenge - Fireworks Factory
- Slide Challenge - Crystal Islands
- Shark Subs Challenge - Desert Ruins
- Sheila Challenge 1
- Sheila Challenge 2 - Desert Ruins
- Tanks Challenge 1
- Tanks Challenge 2 - Haunted Tomb
- Agent 9 Challenge - Haunted Tomb
- Hidden Egg in Agent 9 Challenge Area - Dino Mines
Life Routing
Spyro begins the game with 4 lives. When Spyro runs out of lives, a game over screen occurs and Spyro reloads to the beginning of the homeworld with all progress saved. The game over screen is shorter than a standard load, so we wanted to use that to our advantage at some point in the run. Since there’s no end-of-homeworld teleport in Evening Lake, we designed our level route so that we could end on and game over in Fireworks Factory (the most remote level in the homeworld) to create a facsimile of an end-of-homeworld teleport.
Before Fireworks Factory, there are 5 optimal death abuses, so we needed to collect a life at some point in the run before our final pre-Fireworks Factory death abuse. Lives can be collected either from life bottles, skill points, or fodder count. We were able to create a fodder route that awarded us an extra life with no detouring at all.
Gem Routing
There weren’t any situations where it was faster to collect gems for a gem payment rather than skipping the payment or, in the case of Agent 9’s Lab, not doing the level.
Stage by Stage Comments
Sunrise Spring Level Route
The egg directly in front of our homeworld spawn, Isabelle, pulls the route forward initially and close enough to Sunny Villa that it clearly becomes the first level entered. From there, the route funnels obviously, so there wasn’t a lot of testing required for the broader details on the level and homeworld egg order. Molten Crater (10) and Seashell Shore (14) both have egg requirements, but they’re both met in stride with the fast eggs we collect before we reach the locked levels, so there wasn’t a need for any added consideration for our egg count. Sheila’s Alp requires 300 gems normally, so we felt we definitely needed to skip into it rather than creating a gem route and backtracking to the level.
Sunny Villa
The Sunny Villa route is restricted by the fact that Spyro becomes functionally trapped in the end of level room when he gets there unless we flame the gate enemy as we approach and wait for the gate to open. Dead body proxies can be performed from any soldier rhynoc in the level and they’re scattered all throughout, so we have mostly full access to anything we want.
Originally, we believed that an enemy manipulation through the whirlwind tower was the fastest option in between the first 2 eggs of the level, but, after some testing, it became evident that the path we took was slightly faster.
Summary: After gaining control of Spyro, we wallglide to Isabelle, then set up a dialogue box skip on Bianca by intentionally falling off the dialogue platform as she comes down. We then engage that text box on the same frame we touch the Sunny Villa portal. We use the first available proxy within the level to gain enough height to reach Miles and then optimize the path to Miles with a boundary proxy forward from the hills. The path to the second egg, Vanessa, isn’t direct because we need to manipulate an enemy to move left before we collect her in order to set us up for a more efficient end of level skip. We use two more dead body proxies on the way to Vanessa and then a ground trigger jump to get behind the egg as we engage the hatch for a better angle after the hatch. Finally, we proxy to the end of level egg with the manipulated enemy. We use another ground trigger jump, then a glide to skip the second textbox of the end of level NPC, which allows us to access the pause menu earlier and exit the level.
Total eggs collected by the end of Sunny Villa: 4
Sheila’s Alp
In general, escort missions like the one in this level are moved along by completing certain flagged tasks (e.g. killing specific enemies, passing through doorways, etc.). Until a given task is completed, the escorted NPC waits at a set location. In this particular level, the escorted NPCs always stop and wait at the determined location, even if the task is already completed when they reach the area.
Inside the level, there are 8 "roaming" enemies that need to be manipulated individually, each with complex random movement patterns. Furthermore, there's a subtle layer of randomness that adds nuance to the final room in that one of the roaming enemies spawns randomly at one of four mushroom huts. Manipulating this spawn allowed us to create a more efficient final room path before the backtrack.
Summary: After leaving Sunny Villa, we trigger a swim in air from the waterfall to the left, allowing us to both skip to the egg in the cave and get out of bounds afterward. We swim to that egg, Ami, collect it, then swim out of bounds and into the stored Sheila’s Alp portal. Once inside Sheila’s Alp, we hop through the level completing relevant tasks efficiently as we go and manipulating enemy spawns and pathing along the way. Although we complete the eggs in order, we leave the second egg behind temporarily so we don’t have to wait for the NPC to arrive at his hut and can kill enemies in the final room in the downtime instead (contributing to the checkpoints of the end of level NPC).
Total eggs collected by the end of Sheila’s Alp: 8
Cloud Spires
Normally, the only way to access the Bell Towers challenge area is to collect the end of level egg, which spawns a whirlwind to the challenge. We knew before even testing that it was possible and faster to get an animation proxy from the winged rhynoc enemy high enough to reach the challenge area before speaking to the end of level NPC. There was only really one route that worked here, so we focused on optimizing those paths.
Summary: After leaving Sheila’s Alp, we skip past Hunter and enter Cloud Spires immediately. Once inside Cloud Spires, we use an animation proxy from the winged rhynoc to enter the Bell Towers challenge early. Within that challenge, we overlap the thief catch with the end of the Bell Towers challenge to save a little bit of time, then exit the area with some forward momentum preserved during the load. By flaming the NPC frame perfectly in between text boxes, we’re able to move Spyro early after the text. We reach the egg on the island, Clare, with another animation proxy from a conveniently placed winged rhynoc and then optimize the path to the final egg, Stephanie, with a squeeze proxy between a different winged rhynoc and the ground.
Total eggs collected by the end of Cloud Spires: 13
Molten Crater
In Sunrise Spring, we originally assumed that we’d be able to use a ground trigger jump and glide to get away from the final platform for the Hunter gliding challenge while we collected the egg, but, after some testing, we determined that the construction of the text interaction was atypical and prevented any such techniques from being used.
The two main operators in guiding the route for Molten Crater are an egg death abuse opportunity on Rikki, the egg by the lava river, and the need to skip into the Thief challenge area, which normally requires a 300 gem Moneybags payment to enter. We were able to recycle and optimize the RTA route, which had already been timed against other options.
Summary: After leaving Cloud Spires, we complete the Hunter gliding challenge by jumping to the cave and waiting for Hunter to arrive behind us and give us the egg. After that, we charge to the NPC in front of Molten Crater, open the level by speaking to him, then collect the headbash rock egg before entering. Once inside Molten Crater, we use an animation proxy from the boar and then a squeeze proxy from the boar and the ground to optimize the path on our way to performing an egg death abuse on Rikki. After respawning, we use another animation proxy from the first boar to skip into the Thief challenge area. We efficiently catch each thief and then exit the area. After exiting, we use the bridge posts to reach the top of the Sgt. Byrd area portal structure and take advantage of a bleeding loading trigger to enter the area and collect the egg behind the breakable wall. Finally, we exit that area and collect the end of level egg.
Total eggs collected by the end of Molten Crater: 20
Seashell Shore
It wasn’t immediately clear what the fastest route here was. We could, however, immediately narrow it down to two options: using the swim in air used in the Any% TAS to skip to the end of the level first and then backtracking – or – collecting the egg under the dock first, moving forward through the level, and ending on the end of level egg. We tested each of these and the latter turned out to be slightly faster.
It’s possible to perform an interesting glitch in the Sheila area which allows the area to be entered with Spyro instead of Sheila. We tested this and discovered a new animation proxy from the cannon to the right of the secret cave, but, unfortunately, it was barely too slow because we had to wait on the cannon’s shooting cycle to give us a proxyable animation.
Summary: After leaving Molten Crater, we collect the underwater egg, Bruce, then swim up and position Spyro with a ground trigger jump and glide so that Snappy the Seal pushes him into the level before Spyro would normally be able to move. Once inside Seashell Shore, we use a squeeze proxy between the fodder and the doorway to optimize our path to Jason, the egg under the dock. After collecting Jason, we dead body proxy from the nearest seashell rhynoc to enter the Sheila area from out of bounds. We collect the egg there, exit, and use a single sproderman on top of the palm tree to make the glide to the edge of the pool without a hover.. On our way to the end of level, we turn the camera away to manipulate the position of the octopus and the end of level NPC, then position ourselves to receive an anticipated textbox before the teleport.
Total eggs collected by the end of Seashell Shore: 24
Buzz’s Dungeon
We attempted to copy exactly what was done in the Spyro 3 Any% TAS. Because some of the eggs collected in this run increase the in-game difficulty, we weren’t able to manipulate a fodder drop like in the Spyro 3 Any% TAS since fodder never spawns into the fight unless the game is in easy mode. We’ll quote the relevant submission text from that project:
“On the surface, this fight seems reasonably straightforward, but, in trying to reproduce certain unexplained phenomena, we soon realized that there was untapped depth and a lack of total understanding in the intricacies of the fight. It'll be useful to explain the pre-existing fundamentals of the fight before unpacking what we learned throughout the TASing process.
After being hit into the lava, Buzz returns to the arena performing a "buzzsaw" attack that follows Spyro around the arena until it ends naturally after a certain period of time. Buzz is programmed to curtail this attack when he is close to the lava, so, by positioning Spyro on the edge of the arena near where Buzz returns after being hit, we're able to halt his attack almost immediately. After Buzz has been damaged twice, he begins to spawn a defensive wall of fire around himself after his attack phase is completed. Conveniently, this can be neutralized by pulling it offscreen with the camera. Combining those techniques trivializes the boss fight even in an RTA setting.
With some experimentation, we discovered a more efficient method for damaging Buzz as he returns to the arena involving using the window of invulnerability gained by taking damage in the lava to push Buzz back earlier in his animation than was previously possible. This method can only be used as long as Spyro has health, so we made sure to enter the fight with full health”
“In trying to hex-edit the inputs from Nitrofski's original WIP, we encountered an unexplained desyncing issue with the first instance of trying to knock Buzz back into the lava. For some reason, even though there was no RNG present for that section of the fight, Buzz was not knocked back sufficiently in our new draft. Eventually, we concluded that there must be a fundamental difference between versions in how Buzz is pushed after being charged by Spyro. After all, Nitrofski's original WIP was TASed using version 1.1 and our new draft used version 1.0. We didn't clarify exactly what the difference was but believe that we can infer its existence with reasonable confidence.
Finally, we examined how Sheila interacted with Buzz during the fight. We were aware that knocking Buzz as close to the arena's edge as possible (and in the direction of Sheila) allowed her to not only reach him more efficiently, but also favorably changed the height of her jump to attack him; however, there were recordings of a uniquely optimized first hit with an unidentified cause that we wanted to reproduce. We discovered that Sheila's movement is dependent on her radial distance from Buzz along the arena. Within a certain range (if you must know: pi/2-1 to 1 rad on her either side), she will stay still and, if Buzz leaves that range, she will move to follow him. We were able to recreate the optimized hit by leading Buzz barely outside of her range and then manually pushing him back into it as she began moving to follow him.
In the end, an unexpectedly complex segment, but one that was very satisfying to understand more completely. Applying this new knowledge allowed us to save 5 seconds over the same fight in the previously mentioned 117% TAS.”
Summary: We pivot and charge away from Buzz in order to lead him just far enough away from Sheila so that she begins to follow him, then turn toward him and knock him into the lava with Sheila waiting to deliver the optimized hit described above. After that, we perform the damage abuse pushes until our health is exhausted. For the final 2 pushes, we wait for Buzz's attack to finish completely and then knock him back into the lava. Sunrise complete.
Total eggs collected by the end of Buzz: 25
Midday Gardens Level Route
Traditionally, RTA runs use a route that gets a swim in air quickly after entering Midday Gardens, completes some of the egg challenges within the homeworld, then uses the swim in air to enter Sgt. Byrd’s Base from out of bounds. We felt that this route included too much of a backtrack through the homeworld and that we would be better served entering Enchanted Towers first and completing the Midday Gardens homeworld egg challenges on our way to Bamboo Terrace. Later on, we’d be able to use a proxy from a headbash crate near Spooky Swamp to enter Sgt. Byrd’s Base from out of bounds. After a little bit of testing, it was evident that our theory was correct. Conveniently, with our route, we just barely had enough eggs (30) to unlock Bamboo Terrace before we arrived, so it wasn’t necessary to use an inefficient out of bounds for that level entry or to consider replacing a later egg with one in a Enchanted Towers or a Sunrise Spring level. Spooky Swamp’s egg requirement (25) was also a non-issue for this route. Normally, Sgt. Byrd’s Base requires 700 gems. Entering Midday Gardens, we had just 109 gems, so we obviously needed to use a skip to enter the stored level portal rather than routing in that many extras.
Enchanted Towers
We tested a theory for a Midday Gardens Bianca skip that involved repeatedly pivoting into and then out of the Bianca trigger and trying to get her to complete her path to the ground without Spyro being auto-walked to meet her. It was soon clear that no matter what, this theory would not be fast, but we continued to test for the sake of determining whether or not it was possible. Although we made some progress on getting it to work, it seemed that, inevitably, her rainbow path would reset after a few repetitions of incrementally luring her down.
We were hoping originally to somehow incorporate the Bone Dance challenge egg into the Enchanted Towers route, but it was about 10 seconds too slow even with our best efforts in pre-draft testing, so our route only included one additional egg beyond the required end of level egg. We were able to use the RTA concept of death abusing on the extra egg to burn a life and save time and improved it by recreating the level skip used in the Spyro 3 Any% TAS after the death abuse to reach the end of level quickly from the death respawn.
Summary: After gaining control of Spyro, we charge forward and auto-walk to meet the unavoidable Bianca interaction. From there, we collect the egg under the bridge, Dave, and resurface to clip out of bounds while triggering swim in air so that we can enter the locked Enchanted Towers portal from out of bounds. Once inside Enchanted Towers, we progress ⅓ of the way through the level, carefully avoiding a save point so that when we perform an egg death abuse on Gladys, we respawn at the beginning of the level. After respawning, we use a jackhammer rhynoc to clip through the corner of the wall that separates us from the end of the level and then flame the 3 rockets to begin the end of level sequence. Swag ensues - followed by teleport anticipation on the end of level text.
Total eggs collected by the end of Enchanted Towers: 28
Bamboo Terrace
We focused on two concepts for Bamboo Terrace: one that manipulated the fodder at the beginning to the right for a dead body proxy directly into the Boat challenge area and another that manipulated that same fodder forward for a dead body proxy into the cave with the Madison egg. For the latter concept, which ended up being optimal, we experimented with a couple of options for getting into the Boat challenge area including a sproderman sequence from the cave onto the roof of the structure to the left (when exiting the cave) that hadn’t been done before.
The Boat challenge is casually viewed as an autoscroller, but our methods were a bit more interesting than that. With a precise glide, we were able to skip past the challenge trigger that normally would place us on the boat and collect the powerup with free movement. Some enemies that typically spawn late in the challenge are invisible (and killable) high in the air. We took inspiration from an example TAS draft of the challenge that Nitrofski made in 2020 on the heels of the original discovery.
The end of level area provided a minor inconvenience in that the stored thief egg under the fragmented bridge could only be collected while swimming, but the only method of skipping the cutscene attached to the end of level sequence was a ground trigger jump/glide (which requires Spyro to not be swimming). These circumstances forced a brief backtrack to the thief egg after the end of level egg. The horizontal proxies we were able to get from the firework rhynocs on the way to the end of level allowed the sequence to still be visually appealing and quick.
Summary: After leaving Enchanted Towers, we use a sproderman to reach the fireball powerup and then destroy the pots that contribute to the Matt egg on the way to the ladder egg. We collect each of those eggs and then enter Bamboo Terrace. Once inside Bamboo Terrace, we get a dead body proxy into the cave with the Madison egg, glide down to the island egg, then use a firework rhynoc for a squeeze proxy into the Boats challenge. From there, we bypass the challenge trigger and complete the challenge with a series of angled fireballs to kill all of the required enemies. After exiting the challenge area, we optimize the path to the end of level with a series of horizontal squeeze proxies using firework rhynocs and then use a ground trigger jump/glide to disrupt the end of level sequence after collecting the end of level egg so that we’re not forced to watch the bridge opening cutscene. Finally, we trigger a swim in air using the low container ledge near the end of level and collect the stored thief egg, Pee Wee.
Total eggs collected by the end of Bamboo Terrace: 35
Spooky Swamp
The first section of the only viable route in Spooky Swamp is identical to what’s used in Nitrofski and lapogne36’s Any% TAS, so, with that in mind, we’ll quote the relevant submission text for the section from that project:
“The end of level NPC is atypical in that it moves continuously until we take action against the enemy it's avoiding projectiles from. We noticed not only that the movement of the NPC is cycle based, but also that the first iteration of the cycle only begins once Spyro is close enough to it. In this case though, distance is not the only relevant variable: camera direction also influences the definition of "close enough". That is to say, there's a certain distance from the NPC that will activate the cycle only if the camera is pointed in the direction of the NPC and another distance that will activate the cycle irrespective of the direction of the camera. This subtlety allowed us to suspend the cycle under certain camera conditions and we exercised that power to force the NPC into its lowest possible position on the frame the antagonizing enemy was killed. It's worth noting that, while the movement of the NPC isn't strictly vertical, the lateral movement is unimportant since it's possible to reach the area of effect of the interaction before the NPC touches the ground in every situation.”
After collecting the end of level egg, the focus became optimizing the paths to the remaining 2 eggs since we already knew what order they would be collected in.
Summary: After exiting Bamboo Terrace, we travel directly to Spooky Swamp. Once inside, we skip to the end of level area with a dead body proxy from the alligator in the first area, manipulating the end of level NPCs position on the way by strategically averting the camera. We were able to optimize our path to the egg on the island with a sproderman to achieve a hoverless glide to the distant platform and then a horizontal squeeze proxy using a fodder and the ground. We then used the combination of a horizontal squeeze proxy followed by an animation proxy from the mosquito beneath the final egg to reach Frank, the egg in the treetops.
Total eggs collected by the end of Spooky Swamp: 38
Sgt. Byrd’s Base
The entirety of the Sgt. Byrd segment, including the entry, could theoretically be identical to what’s used in the Spyro 3 Any% TAS except for an extra hard-mode enemy in the weight room that’s attached to one of the checkpoint groups that influence the escorted NPC’s movement through the level. As such, we’ll once again quote relevant submission text from the Spyro 3 Any% TAS authored by lapogne36 and Nitrofski:
“In addition to mandatory flagged tasks (for the escort), we discovered the existence of an intricate system of optional flags that are almost universally faster when used properly together with the mandatory tasks. Furthermore, there are also "doubled" tasks - ones that could be flagged as complete in multiple ways - that opened up more routing options for us to consider.
The escorted NPC's pathing is deceptively complex. There is a "stopping point" attached to each flagged task (optional and mandatory alike) where the NPC will stay until the next relevant action is completed. Before that stopping point, there's often a decision moment where a flag check is run. If a later flagged task is already complete when this check occurs, the NPC will move forward without detouring to her stopping point. If the latest task to have been completed at the time of this check is the one attached to the next stopping point, she will detour to that stopping point and another check won't be run until her first frame of rest after she reaches it. We were able to optimize her pathing in every case with the caveat that, in order to do so, we had to delay the completion of the first mandatory task (a doubled task where we chose the option that flagged completion of the task later, but avoided a stopping point that couldn't be avoided otherwise) and the optional task in the weight room, meaning that the NPC was momentarily static at her original stopping point as well as for some time after we collected the first egg.
It's also worth noting that the weights used to complete the mandatory task in the room where we receive the first egg cannot be picked up before that egg is collected and that the movement of the flying enemies is random (but relatively confined).”
During our pre-draft testing, we discovered that it’s possible to position the weights in Sgt. Byrd pixel-perfectly inside of each other. When this happens, they display unusual properties never before seen in a Spyro game (as far as we’re aware) that, due to functional similarities to a trick in Ocarina of Time, provide some hope for the possibility of arbitrary code execution.
Reference Video with Time Stamp: https://www.youtube.com/watch?v=r9FDw2gnu9o&t=3033s
Summary: After exiting Spooky Swamp, we use a headbash crate proxy and a non-solid section of the Spooky Swamp portal structure to get out of bounds, then enter the stored Sgt. Byrd's Base portal. In general, once inside, we move through the level completing both the mandatory and optional tasks as efficiently as possible except in the two cases mentioned. We use some light manipulation of the flying enemies for efficiency. We also receive teleport anticipation time save from both instances of NPC dialogue.
Total eggs collected by the end of Sgt. Byrd’s Base: 40
Icy Peak
Whole-level skips, proxies, an MSC, textbox skips, glitched thieves… This level has it all.
The first half of Icy Peak clearly would center around the MSC discovered during the TASing process of the Any% TAS. It can give incredible, directable speed - enough to cross the level in less than a second. We experimented with whether we should direct it to the island egg, Reez, or Maynard, the other egg in the vicinity. We were hopeful that, in the case of directing the MSC to the island egg, we could use our speed to bounce backward in the direction of the other egg. Through our testing, we learned that eggs can only hatch if Spyro is within a certain distance, so that idea was ruled out, unfortunately, since Spyro would be too far from the island egg after triggering it.
We’ll include specifics of the wall MSC in the form of another quoted section from the Spyro 3 Any% submission text:
“Basically, when the wall of ice is broken, it is instantaneously (in one frame) moved to its storage location underneath the neighboring scenery. If Spyro is standing on the wall of ice as it breaks, he is moved along with it until his path is obstructed by the solid surface of the scenery, at which point he stops and flops to the ground. Amazingly, if instead we use a state transition to conserve this very high momentary speed, we can cause Spyro to be launched at unseen-before speeds directly toward the mountainside, and gradually slide up it. If we then use a charge to redirect the remaining speed forward, we can achieve an astonishingly quick skip to the end of the level.
Even after discovering this, we were unsure why the wall broke in the first place. It was clear that no shot from the cannon had touched it directly, yet it acted as if one had. With some further experimentation, we observed that the wall typically broke in that manner when Spyro was next to the wall and a shot from the cannon "missed" (that's to say, it was shot past everything and exploded based on its timer rather than by contacting a solid object). Curiously, we also observed that we could not reproduce the wall break if we did not have Sparx or had died at some point after entering the level. We concluded that, for some reason, when a cannon shot explodes due to its timer while the NPC is on the cannon, the explosion is applied to whatever happens to be first on the actors list — in this case, Sparx — and that the wall breaks in these situations because Sparx is near it. We confirmed this theory by placing Sparx in a different ice structure by hacking his coordinates and recreating the same situation. The ice structure in question broke as expected.”
We were unsure of the most efficient way to reach the end of level after the MSC sequence, so we timed the top 2 contenders and used the one that was (very) slightly faster. The unused option proxied through the ice room and then used a squeeze proxy from a shooting rhynoc and the corner underneath the cannon in the end of level area to gain enough height to reach the end of the level.
We tested for the possibility of an efficient double thief catch in the Thief challenge area without success. The yellow thief begins running away on the frame the red thief is flamed regardless of where Spyro is relative to the yellow thief. With any flame angle we took to the red thief, the yellow thief was out of reach by enough that we abandoned the idea.
Summary: After exiting Sgt. Byrd’s Base, we charge forward and catch the thief right in front of us. On the way to Icy Peak afterward, we detour into the ice cave to collect Mingus. Once inside Icy Peak, we jump to skip past the wall of ice, temporarily delaying a cannon shot on the way by moving out of range of the event. As we complete the skip, we snap the camera to load the cannon again, then position ourselves for the momentary speed conservation, which we direct to a far away egg on the other side of the level. We then use a dead body proxy from a shooting rhynoc to reach the egg on the island, death abuse, and respawn based on the save point of the first egg we collected. We optimize our path to the end of the level with a series of proxies from the shooting rhynocs scattered throughout the map and then use one final shooting rhynoc squeeze proxy to fall from the end of level egg’s platform while we interact with the end of level NPC, allowing us to ignore the second textbox on our way to the Thief challenge area. For the first Thief challenge, we catch the red thief with a flame charge jump. This breaks the yellow thief, so we’re able to respawn it at the front of its path by releasing a camera button as we approach it.
Total eggs collected by the end of Icy Peak: 47
Spike’s Arena
The Spike fight is separated into three weapon phases: the rock phase, the red powerup ("flame crystal") phase, and the blue powerup ("bomb crystal") phase. The rocks spawn randomly (in terms of location) from the edge of the arena. After the rock phase is complete and Sgt. Byrd (who is flying above the arena with random pathing) is off-screen, a red powerup spawns held by Sgt. Byrd with a drop timer that's activated as soon as it spawns. The subsequent powerups spawn with similar conditions, influenced additionally by whether or not another weapon of the same type is present in the arena.
Spyro 3 has both global and local adaptive difficulty and the number of hits required for each phase changes depending on if you're on "easy" mode or "hard" mode. In this case, because we've collected multiple "hard" eggs we're forced to play the fight on the most difficult setting where Spike requires 9 hits to defeat — 3 for each weapon phase. It is, however, possible and generally fast to carry weapons to the next phase so that they can be used productively while the timer for the next phase's drop is running.
Among other things (namely, weapon spawn timers), we had to consider how to manipulate the end-of-fight teleport to position Spyro correctly around the egg we would receive for defeating Spike. This is because on version 1.0 of the game, the egg is misplaced when the fight ends, which allows us to momentarily control Spyro when he would otherwise slowly walk toward the vehicle. The teleport location is dependent on the angle Spike is facing on the frame of his defeat.
During the fight, we also wanted to take damage 2 times (preferably, without losing time) in order to prepare for a damage induced death abuse in Lost Fleet.
Summary: We beat Spike quickly.
Total eggs collected by the end of Spike’s Arena: 48
Evening Lake Level Route
The level order in Evening Lake ended up being mostly intuitive.
We had decided during our pre-draft testing that we were going to intentionally game over in Fireworks Factory to finish Evening Lake since it’s the most remote level in the homeworld (Evening Lake doesn’t have a teleport to the homeworld vehicle after completion of the last level like in Sunrise Spring and Midday Gardens). Beyond that, we couldn’t start in Charmed Ridge since we didn’t have the required number of eggs (58) to unlock the level coming out of Spike. We also couldn’t begin in Bentley because Bentley hugely benefits from being in zombie, which we couldn’t efficiently carry into (or initiate in) Spike’s Arena. Finally, we couldn’t begin in Frozen Altars because it would essentially force the order Frozen Altars → Lost Fleet (Zombie) → Bentley (Zombie) → Charmed Ridge (Zombie), which creates issues during the Charmed Ridge Beanstalk challenges that require significant detours to prevent.
In other words, we knew definitively that the route would begin with Lost Fleet and end on Fireworks Factory. The rest of the route followed naturally with other minor considerations.
Lost Fleet
We tested two route concepts for Lost Fleet: one that used a death abuse to skip the escort mission by abusing a quirk of the Zoe save point and another that broke the first ship wall for the escort and relied on Crazy Ed progressing through the level more naturally.
The submarines in the Submarine challenges are not on cycles. Instead, they react to the position of Spyro’s submarine with certain tendencies/paths depending on which submarine is reacting. Sparx is always replenished during the Submarine challenge, so taking damage before the challenge in anticipation of engaging zombie later on is meaningless.
Summary: After gaining control of Spyro after the Bianca interaction, we travel directly to Lost Fleet. Once inside, we perform a squeeze proxy between Crazy Ed and a crab using our invincibility frames from being damaged by the crab’s attack. This proxy allows us to skip to the end of the level. We get saved by Zoe and then die in order to teleport Crazy Ed to the front of the ship in the end of level area. Then, we complete the escort by breaking the ship’s wall and collecting the end of level egg from Crazy Ed (using a ground trigger jump/glide to position ourselves advantageously). We swim through the acid and use a small animation proxy from a crab to reach the Submarine challenge area. We complete both challenges, then, after exiting, take damage from a crab and the acid to prepare to engage zombie after the next egg and also to provide invincibility frames that create an opportunity for another crab squeeze proxy against the wall and up to the final egg, Chad. Finally, we initiate zombie as we exit.
Total eggs collected by the end of Lost Fleet: 52
Bentley’s Outpost
It’s possible to approach Stooby from out of bounds and remain out of bounds throughout the egg hatching process as long the dragon cutscene is not skipped until a particular part of its animation. Skipping the cutscene early results in Spyro going back in bounds.
Entering Bentley’s Outpost while zombie is engaged allows us to manually teleport Bartholomew to his snowball-throwing spots by releasing a camera button in the right circumstances (i.e. when Bartholomew is meant to have teleported, but remains in the spot where you last spoke to him). The main advantage of this is that we can teleport Bartholomew on top of Bentley to gain a proxy large enough to launch Bentley with conviction over previously unclearable gaps.
One of the main challenges in comparison to the methods used in the Any% TAS was efficiently using the Bartholomew proxies to collect the additional eggs. In particular, the final result for the second egg in the level of bouncing over the egg while triggering the hatch and then getting stuck behind the box as Bentley attempted to walk back to the egg took considerable effort to achieve.
As with other mandatory (unbreakable) escort missions, there are a series of flagged tasks that must be completed along the way to lead the NPC – in this case, Bartholomew – to the end of the level.
Summary: After exiting Lost Fleet, a byproduct of zombie mode allows us to gain an instant swim in air, which we use to clear the eggs out in the open in the Evening Lake homeworld. After collecting Stooby, we enter the locked Bentley’s Outpost portal. Once inside, we move through the level completing mandatory tasks and collecting the two unrequired eggs as efficiently as possible. We use each of Bartholomew's teleports as well as a strong chests to proxy forward at different points in the level. We also manipulate the cycle of the seals by pulling the camera away from them and push boxes faster than should be possible by using a movement locking technique specific to the critter characters (See definition for Camera Lock). After collecting the end of level egg, we use the movement locking technique frame perfectly to begin walking to the exit portal and then exit the level through that portal.
Total eggs collected by the end of Bentley’s Outpost: 59
Frozen Altars
Frozen Altars ended up being one of the easiest levels to route since we went into it knowing that we would end on the end of level egg because of the ground trigger jump/glide that would allow us to skip the cutscene after collecting the egg (discovered and used originally in the Any% TAS).
The coal piles display interesting speed-building properties that, before this TAS, had never been used productively as far as we know.
Summary: After exiting Bentley’s Outpost, still in zombie, we fall into the swimming container and use a wallglide flop to reach the Frozen Altars portal. Once inside, we perform a proxy to the egg on the high ledge by freezing an object - in this case, an NPC - while we jump into it so that we’re interpreted as inside of the object for a moment as it freezes. We optimize the path to the island egg by taking advantage of some horizontal speed we gather from a coal pile and then use another freezing proxy to gain enough height to reach the island platform. We use a ground trigger jump for an egg death abuse and respawn at the save location of the first egg we collected. After that, we return to the lower level to get a dead body proxy from the mammoth there to the end of level room. We use a ground trigger jump/glide to position ourselves so that the exit portal spawns on top of Spyro during the cutscene. This pulls us out of the level before we would normally regain control.
Total eggs collected by the end of Frozen Altars: 62
Charmed Ridge
Another obvious level route. This one is restricted by the fact that if you don’t end on the end of level egg, you’re forced to sit through a cutscene of Prince Azrael riding his motorcycle.
In the Beanstalk challenge, we discovered a method for getting substantial animation proxies from growing mushroom seeds that outclassed by a decent margin the many other skip techniques that were already known within the challenge.
Summary: After exiting Frozen Altars, we cancel the cutscene by pausing and unpausing the game the frame before it would normally fade out for a moment and then swim directly to Charmed Ridge. Once inside, we use a couple of proxies to reach the egg in the turret (Moe) and then another to skip directly to the egg in the cave. We then use 2 more proxies on the way to the Beanstalk challenge area. We make short work of the Beanstalk challenges by using a squeeze proxy from the frog on the lowest level and then 2 new animation proxies from freshly planted mushrooms to reach the first and second egg, respectively. We use one more proxy on the way to the end of level after exiting the challenge and glide to meet our teleport after killing the end of level cat wizard so that we’re able to save some time with an anticipated teleport.
Total eggs collected by the end of Charmed Ridge: 67
Fireworks Factory
The route for this level was obvious, however, we spent a week testing the Agent 9 challenge area with Spyro and Agent 9 and stumbled onto a way to clip out of bounds with Agent 9 by squeezing into the doorframes of the sliding doors. Theoretically, we believe that this is the fastest method for the challenge, but we were unable to achieve a clip that we could use. The clips we did get either didn’t make it to the room we wanted them to get to or they were way too high to be efficiently usable (unlike Spyro, Agent 9 doesn’t have a method of halting vertical momentum).
Reference Video: https://youtu.be/1sqOTxgra6Q
Summary: After exiting Charmed Ridge, we swim into the whale’s mouth to collect the final egg in the Evening Lake homeworld. From the whale’s mouth, we travel directly to Fireworks Factory. Once inside, we use an animation proxy from the armored rhynoc being thrown by Greta to skip to the end of the level. We collect the end of level egg, then enter the Agent 9 challenge area. Using Agent 9’s broken strafe, we complete each challenge quickly (intentionally taking damage twice) and exit. In the Ninja HQ challenge area we use a damage boost to skip most of the challenge, then we return to the lower part of the level to collect Noodles. After collecting Noodles, we death abuse and game over.
Total eggs collected by the end of Fireworks Factory: 73
Scorch’s Pit
Red rockets (Bentley) and raining fireballs (Scorch) are the best RNG patterns
Summary: We manipulate red rockets and raining fireballs and damage Scorch on his first frame of vulnerability whenever possible.
Total eggs collected by the end of Scorch’s Pit: 74
Midnight Mountain Level Route
The level route in Midnight Mountain was obvious from the start. We explored the idea of fully removing Dino Mines to save time on loading screens, but weren’t able to find suitable replacements for the 4 eggs that are collected there. It’s not possible to skip into Agent 9’s Lab, which requires a 1300 gem payment to enter (we had just 368 gems entering Midnight Mountain) and it wouldn’t be fast even if we could skip into the level.
Crystal Islands
Crystal Islands was a bit of a beast to route because there were so many options that seemed realistically viable when we entered that it was mostly unclear what the fastest route was going to be. Although we did guess which route was the fastest correctly on day 1, it was only after a week of testing and proof of concept segments that we were able to definitively move onto a final draft of the level.
Each of the two unused routes had a unique foundational concept that we based the route from:
- Slide Glitch
- - The end of level NPC has an enormously large talk trigger, which extends as far as the Slide challenge area on that side. If you touch the ground and trigger that text interaction on the same frame that you touch the area portal for the challenge and then death abuse, the entities (e.g. gems, egg) from the Slide challenge area load on top of the main level map.
- Double Egg
- - It’s possible to bait the plane thief in a way where you’re positioned to catch it and then to touch Manie, the egg on the island, before the teleport occurs. This can overlap the two eggs and save time on hatching/movement in the level.
- Slide Glitch and Baited Thief Concept
- - Unviable Route #1 and Related Issues
The slide glitch was much more restrictive than we originally thought it would be. In our theory phase of testing, we designed routes that relied on main level entities being present after the slide glitch death abuse when, in fact, those entities get deloaded as the entities from the Slide area get loaded in. That meant that any route that used the slide glitch was mostly forced to death abuse and get the slide egg after first collecting every other egg in the level rather than us being able to intertwine it more naturally as we had hoped. Beyond that, one of our variants of this concept relied on baiting the plane thief first without killing it, letting it move through the level, and then catching it immediately after activating the slide glitch and being subsequently teleported to the middle of the level by its capture. Unfortunately, we weren’t able to do this efficiently because the thief recognized that we were there and turned around to avoid us fairly early. As a third inconvenience, once the slide glitch was activated, the flop/death planes in the main level were moved to the heights in the slide challenge, meaning that any enemies (mainly, a crystal bear we were intending to use to gain height) on lower sections of the level were automatically killed before we could arrive to them.
- Double Egg Concept
- - Unviable Route #2 and Related Issues
We expected to be able to use a variation of the double thief with both our Double Egg concept route and our Forward concept route, but encountered unexpected hurdles with the circumstances surrounding the double egg setup. With the double egg, it’s possible (based on when you trigger the island egg after catching the thief) to either stay on the island in front of Manie while collecting both eggs or to teleport up to the thief island.
Here are all situations we were able to create by altering our state when performing the double hatch or by changing the trigger timing of the second egg relative to the first:
- Ground State Stay on Island - Spyro stands still on the island
- Ground State Teleport to Thief - Spyro autowalks to his death from the Thief island
- Swim State Stay on Island - Spyro stands still on the island
- Swim State Teleport to Thief 1 - Spyro stands still on the Thief island
- Swim State Teleport to Thief 2 - Spyro begins to walk, then the game crashes
- General Teleport to Thief - Distance from Manie during the hatch softlocks the game
Although the “Swim State Stay on Island” circumstances were ideal, it would have been better for our Forward concept route if we were able to remain stationary in the “Ground State Teleport to Thief” as in the case of “Swim State Teleport to Thief 1”.
Summary: After gaining control of Spyro, we climb the stairs to our left and use a ground trigger jump to death abuse on the island egg. After respawning, we travel directly to Crystal Islands. Once inside, we perform a dead body proxy forward from the beaver at the beginning of the level in combination with an animation proxy from a crystal bear to reach the egg above. With a precise jump from one of the crystals adorning the top of the building, we glide to the plane thief and catch it with a hover and a flame. From there, we use a squeeze proxy between a fodder and the ground to optimize our path to the egg on the island and then use a ground trigger jump to death abuse on that egg. After respawning, we superfly to the end of the level and collect the end of level egg before entering the Slide challenge area. Inside the Slide challenge area, we use another squeeze proxy from a fodder and the ground to skip the sliding trigger and glide to the end of the challenge.
Total eggs collected by the end of Crystal Islands: 80
Desert Ruins
After testing the Shark Subs challenge for viability within this project, it was clear to us that we needed to find something new within the main level for the challenge to be seriously considered. We used a tool called Spyro-Scope that reveals collision meshes to determine that the roof and top section of the wall in the main building had no collision from the inside. After testing a couple of ideas, we were able to find a proxy that gave us sufficient height to escape from the building with very little detour. The proxy is especially notable for its RTA viability where it saves 8 seconds and has remarkably high consistency.
Unlike the submarines in Lost Fleet, the Shark Subs in Desert Ruins are on scripted paths that begin as soon as the challenge area is loaded.
Summary: After exiting Crystal Islands, we catch the thief on the way to Desert Ruins and then enter Desert Ruins. Once inside, we use a squeeze proxy from a scorpion’s attack animation and the ground to skip to the end of the level and begin the end of level egg interaction sequence. Spyro is unavoidably (and justifiably) mesmerized by Tara for a moment after collecting the end of level egg. We then use another squeeze proxy with the same method as the first in the level to skip out of bounds and into the Shark Subs challenge area. We complete the challenge quickly. After exiting the challenge, we use a squeeze proxy between the ground, a small scorpion’s attack animation, and a large scorpion’s body to gain enough height to escape the temple and get to Andy, the next egg. Next, we enter the Sheila challenge, where we use a series of horizontal proxies from the stinging scorpions throughout the challenge to optimize our path. Finally, we exit the Sheila challenge and collect the last egg in the level.
Total eggs collected by the end of Desert Ruins: 87
Haunted Tomb
The route in Haunted Tomb centered around a skip into the Agent 9 challenge area. We knew of two options for achieving this: clipping out of bounds with the rising door at the beginning of the level and using a dead body proxy from a fodder near the Tanks challenge area. Because of how long it took for the door to be raised after it was lowered, we eventually ruled out the first option and moved forward with the dead body proxy route.
Summary: After exiting Desert Ruins, we use a ground trigger jump to death abuse on the island egg behind the breakable wall. After respawning, we climb the stairs to the inside of the castle and collect the egg at the top of the waterfall before gliding into Haunted Tomb. Once inside, we use a dead body proxy from the mummified rhynoc to skip to the end of the level and then travel directly to the Tanks challenge area. We complete the 2 Tanks challenges with a series of positional manipulations and snipes. After exiting the Tanks challenge area, we skip into the Agent 9 challenge area with a dead body proxy from a fodder and complete that challenge by zigzagging onto the wall out of bounds and skipping the challenge tasks. We collect the end of level egg after exiting the challenge area, then skip the sliding trigger for the snake slide and glide to the egg at the bottom. Finally, we use a dead body proxy from another mummified rhynoc to optimize the path to the final egg of the level.
Total eggs collected by the end of Haunted Tomb: 95
Dino Mines
Our first step in routing Dino Mines was in determining whether or not it would be possible to get a headbash crate proxy high enough near the end of the level to get directly out of bounds. After confirming that, we focused on testing routes after the first egg to the Agent 9 challenge area. In doing so, we were able to basically confirm a theory for a damage boost skip (unused), discover a scenery proxy that would obsolete the RTA squeeze proxy method for this project (unused), and discover a new method of proxying from the dynamite dinosaurs (dyna-saurs).
Summary: After exiting Haunted Tomb, we collect the final egg in the homeworld and then enter Dino Mines. Once inside, we collect the hidden egg to the left and then perform a precise window frame jump to reach the middle of the level. We use a fodder to get a horizontal squeeze proxy and direct it into a newly discovered proxy from a dyna-saur, which we use to enter the Agent 9 challenge area. In the Agent 9 area, we skip past the text trigger that would normally force us into the long “shoot ‘em up” challenge and collect the egg out in the open. We exit the area, pause to avoid being roped into the sign text near the Agent 9 challenge portal, then collect the end of level egg. After collecting the end of level egg, we use a headbash crate proxy to get out of bounds and glide to the final egg of the level (and our 100th egg).
Total eggs collected by the end of Dino Mines: 100🥳
Sorceress’s Lair
This fight was functionally identical to what was used in the Spyro 3 Any% TAS, so we’ll quote the relevant submission text from that project one final time:
“The Sorceress fight is split into 3 phases defined by which vehicle is supposed to be used to damage the Sorceress during that phase: the cannon phase (2 hits; 2 total hits), the tank phase (4 hits; 6 total hits), and the UFO phase (6 hits; 12 total hits). It's possible, like with the phases of the Spike fight, to carry weapons intended for a previous phase into the next under certain conditions.
At the beginning of the cannon phase, Agent 9 retreats to the separated outer circle of the arena and travels around most of its circumference before finally beginning to make decisions relating to which vehicle he will shoot down. During that time, 3 cannons spawn randomly spread over 5 possible spawn locations (forming a regular pentagon). Notably, if Sparx's value is anything less than blue, Agent 9 will target a fodder before any vehicle. After the Sorceress is damaged twice, Spyro is forced off any cannon he is boarded on and the arena is cleared of all grounded cannons. However, if Agent 9 is already shooting down or targeting another cannon under certain circumstances after the end of the phase, that cannon may be dropped after the conclusion of the phase. Additionally, if a cannon shot is already in the air, that shot does not disappear when the phase is completed and can still damage the Sorceress normally.
After the cannon phase is completed, 2 tanks spawn randomly spread over 5 possible spawn locations in between those of the cannons. After the Sorceress is damaged a total of 6 times, Spyro is forced off any tank he is boarded on and the arena is cleared of all grounded vehicles. However, like with the cannon phase, if Agent 9 is already shooting down or targeting another tank under certain circumstances after the end of the phase, that tank may be dropped after the conclusion of the phase. Additionally, if a tank shot is already in the air, that shot does not disappear when the phase is completed and can still damage the Sorceress normally.
The UFO phase is irrelevant to this TAS.
The Sorceress has 3 random methods of attacking Spyro and 1 conditional method: a raining lightning ball attack, a fireball attack, a rushing attack, and a melee attack that she only uses if Spyro is close enough to her.
In specific situations, it had been observed that the Sorceress could damage herself with her own fireball attack. In the past, this had exclusively happened while Spyro was piloting a UFO. The fireball homing is broken and it's possible for the fireball to boomerang back to her especially when Spyro is circling her closely at her shoulder level as she attacks. We developed an early theory for recreating that boomerang effect without a vehicle by luring the Sorceress to the edge of the arena, proxying from Agent 9, and manipulating her to attack with a fireball as Spyro glided around her shoulder. Before we got around to testing this theory though, we saw a recording of the Sorceress damaging herself inexplicably while a player simply ran around the arena with the camera averted. It was clear that this was the best opportunity to achieve what we wanted in the fight, but, since we couldn't see anything apparently relevant to the hit and only had a recording, it was difficult to confidently identify the cause of the self-inflicted damage. We filed the information away and intended to revisit it to determine the cause when we finally arrived in Midnight Mountain.
However, while developing RTA strategies for the fight in an unrelated project, we noticed that we could somehow separate the Sorceress from her staff while on a cannon (which has a fixed swiveling camera) by turning the camera away from the Sorceress as she ran through her scripted fleeing patterns. Although this was on a vehicle and the video we had seen was not, to us, this was a breakthrough answer to what caused the self-inflicted damage. We suspected that the player who recorded the video of the self-inflicted damage had unintentionally managed to separate the Sorceress from her staff in a similar fashion and then coincidentally was positioned such that the Sorceress was directly between her staff and Spyro as she attacked using her fireball. Because the fireball was aimed at Spyro and she obstructed its path to him, she was hit instead and received damage from the attack. We theorized further that this could be done all the way until the conclusion of the fight with no restrictions; we just needed to stay in place at the appropriate spot and manipulate the Sorceress to select consecutive fireball attacks until she killed herself completely. After some testing, we confirmed this theory in full.
When attempting to optimize the self-inflicted damage, we noticed that even more variables than we thought played a role: the fireball itself is not what damages the sorceress, but instead the fireball blast radius is. The fireball blast isn't caused by the fireball interacting with the sorceress (it goes right through her), but instead with the fireball hitting the floor shortly after it spawns. The fireball blast also has an expanding radius. Putting all this together, the required conditions for an optimal staff dislocation location and angle were:
The staff pitch should be -17° to -25° (pitch being the angle along side-to-side axis).
The staff position should be close enough that the fireball blast core (hitbox on first frame) affects the Sorceress directly.
It should be possible to move Spyro quickly enough so that the Sorceress is between her staff and Spyro when she launches her first fireball.
Although already much quicker than playing the fight optimally with just vehicles, we realized that the space between each of these self-inflicted hits was longer than the optimal space between hits administered by a vehicle's weapon since, with these, the Sorceress had to both complete her damage animation and her attacking animation each time the technique was applied. As a result, we believed that it could be valuable to manipulate Agent 9 to shoot a tank down as the tank phase ended so that tank could be used for the remainder of the fight (most or all of the UFO phase). As it turns out, this theory is also correct, so we manipulated the most efficient tank to drop and used that one.
Another complicating facet of the staff separation is that the staff returns to the Sorceress immediately if Spyro gets too close to it while it's separated or if it's in view at any time after it separates. This made navigating the arena optimally to reach the appropriate position nontrivially complex.”
Summary: After exiting Dino Mines, we climb the stairs to the inside of the castle, speak to Bianca to open the door to the Sorceress fight, and enter to challenge the Sorceress. Once inside, “we manipulate the Sorceress to select her rushing attack first so that we can separate the staff sufficiently far away from her body. We use a proxy from Agent 9 to improve the path to the appropriate location across from the staff. After we reach that location, we manipulate the Sorceress to only select fireball attacks while we concurrently manipulate our desired tank to spawn after the cannon phase is completed. We then force that tank to be dropped as the tank phase is completed by the Sorceress and use it to complete the remainder of the fight, distancing ourselves from the Sorceress as much as possible to optimize our final decisive action.”
ThunderAxe31: Claiming for judging.
ThunderAxe31: 36664 blank frames removed at the end of the movie file.
Getting 100 eggs is the requirement for accessing the final boss fight, which this movie achieves despite the existence of a known exploit for skipping it. For this reason, this goal fits nicely into the "forgoes major skip glitch" definition of Standard. As such, accepting as a new branch.
Spikestuff: Processing...