Edit: New skips found, implementing them
Shantae is a unique metroidvania game released in 2002 for the Gameboy Color. It is an incredibly ambitious title for the system, featuring a sprawling world with a plethora of content, fluid and beautiful looking graphics, and a female main character.
Naturally, it failed miserably when it was first released, but gained a following that's growing to this day thanks to the success of its two sequels.
I've TASed this game twice before, and it seems each time I do I discover some new trick or optimization. Alas. This run is a tribute to Half-Genie Hero getting released in about a month, which I'm super pumped for.
This run beats my old any% TAS by 8932 frames, thanks to new optimizations and route changes that I'll be detailing below.
- Takes damage to save time, frequently
- Uses deaths to save time
- Uses warps
- Utilizes a whole lot o' glitches
Unique to Shantae is the ability to shapeshift into various different forms once you obtain them. Similar to upgrades in Metroid or Castlevania, these can be used to access previously unreachable areas.
Shantae's regular half-genie form, and the one she has to be in order to change into any other form. She's relatively fast and is the only form besides the Elephant that has an attack right from the start. Additionally, she can run across 1-tile gaps without stopping.
The first form Shantae obtains. It can run at the same speed as base form, doesn't need to crawl in tunnels, and can climb walls. However, it's unable to attack without an upgrade, and its jumps are 1 frame slower then normal.
Second form Shantae gets. Unlike the monkey, its uses are usually situational. It has a dash move that is able to destroy any obstacles in its path, and can be used as a strong attack. However, it moves horribly slow, so it's useless for traveling long distances.
The third form Shantae obtains, and by far the least useful. It moves slowly and can't attack. Its gimmick is that it allows Shantae to climb on background walls and spider webs, which makes it even more situational then the elephant. Probably its only use outside of that is allowing Shantae to clip out of bounds in Twinkle Palace.
Shantae's last form, this one allows Shantae to fly for indefinite periods of time. However, its momentum is very slippery, making it difficult to gain speed and stop. It also can't attack. Used occasionally, but far less then the monkey form.
Tricks, Glitches, and Optimization
One interesting thing about Shantae is the ability to manipulate luck only by pressing buttons in certain combinations. Thus, Shantae can manipulate luck without ever stopping movement if you do it right.
The disadvantage to this, however, is the sheer amount of luck manipulation required in this game. Everything from enemy drops, to puzzle solutions, to even enemy spawn and movement patterns, require some degree of luck manipulation. Thus, it can take a very long time to get the proper result.
Unlike luck manipulation, lag reduction is limited to Shantae attacking with her hair.
My pet theory for this is how the game processes Shantae's animation cycle. Whenever she's running or jumping, her animation is very dynamic and requires the game to constantly check to see what's going on. Whenever she attacks, however, her animation is always fixed, freeing the game up to do other things. Or it's just random. Who knows.
Crouch Transition Extra Hit
One of the first tricks I found in this game, letting go of Down a frame before Shantae connects with an attack while crouching will immediately put Shantae in her standing pose, confusing the game and making her attack happen twice.
While this sounds very useful, its uses are mostly situational due to most enemies having instant invulnerabilty periods. It's used on the first phase of Risky's boat fight to one-cycle the bomb keg, once to open a key chest in Golem Mine, and a few times to hit eyeballs into sockets in the Cackle Mound.
To do this one, press Down a frame before Shantae starts falling from a ledge. This will put Shantae in her crouching animation until she reaches the ground. She can even jump out of it, which is used at various points throughout the run as tiny shortcuts.
A subset of the Crouch-Falling glitch, pressing Down and immediately afterwards pressing Select will allow Shantae to dance while falling through the air. I originally thought this was useless, but it manages to save me some time in Golem Mine and Cackle Mound.
While in base form, Shantae has a 1 frame window when jumping on vines or slides to jump again, skipping what was supposed to be a forced slide back down.
This is used a few times in Spider Forest to save a few frames while traveling, and once in Cackle Mound to grab a key very early.
Pressing Down as soon as you let go of Left or Right while running will immediately put Shantae to a stop. This is used whenever I need to transform, saving a bit of time everywhere. It can also be used to make Shantae start falling one frame earlier whenever she's going off a ledge to the right.
This trick can sort of be done in Monkey Form, but in that case it only saves a frame, so it's faster to just do a jump and transform out of that.
Entrance Loading Trick (New!)
Whenever Shantae goes through an entrance that goes into the screen, for example a town or labyrinth, you can reduce the amount of loading the game does by doing certain actions. Easiest things to do is either run, jump, or start the transition to a different screen. Can save between 2 to 15 frames.
Locked Door Cancel
Jumping before opening a locked door prevents the game from freezing Shantae. Saves a little bit of time.
This glitch leads directly into:
Temporary Base Form (New..sort of)
If a form jumps into a locked door at a certain angle, they will temporarily shift into a silent version of base form Shantae with an incorrect palette. This will persist until Shantae comes to a complete stop or you use abilities exclusive to the form you're in. Uses depend on the door, although most Twinkle Palace doors appear prone to this glitch.
I originally discovered this trick while making my 100% run, but it finally gets an actual speedrun use in Cackle Mound.
Pressing Left or Right will hold Monkey in place while falling, which prevents slowdown from grabbing walls.
Door Transformations (New!)
Thanks to hitboxes, transforming to and from a form in the right position will take Shantae while she's finishing a transformation or reverting to normal. This can be done in any doorways, but its uses are limited.
Twinkle Palace OOB
In one specific place in Twinkle Palace, Shantae can clip in a block by transforming from Monkey to base form. You can then continually transform back and forth to clip outside of the game map, allowing you to skip the rest of the dungeon after you get the Harpy form. Saves a good few minutes.
Route and Changes
-Lots of time was spent managing lag here, saving about a second overall.
-I attack two Tinkerbats that get in my way instead of jumping over them like before, saving 34 frames.
-Phase 2 of Risky's ship goes much faster now thanks to lag reduction.
Path to Water Town/Dribble Fountain
-Instead of clumping all the farming I need to do together, I instead spread it out throughout the run to Water Town. Figured it would be better then one huge session.
-I save in Spider Forest instead of Water Town like before. Since I already know I need to wait for Zombie Caravan, saving out here means the day/night cycle is still running while I'm doing it. This saves a good 10 seconds.
-I die once here instead of dying to the Golem Mine's boss. This saves a little bit of time, since time doesn't pass at all in the second labyrinth and doing it there wastes time.
-I don't equip the Flash Bolts to kill the first miniboss like I did last time. I need to run out that day/night counter, so why would I waste time saving time that doesn't matter?
-Lag is reduced to near zero in this dungeon. Lag is a time loss no matter what, so using my 90 second leeway to reduce that here is a good idea.
-The eyeball boss is beaten much faster thanks to a trick that skips its spinning animation after it's hit.
Path to Golem Mine
-No real significant changes, except for doing ELT to save about 20 frames between Oasis Town and Golem Mine's loading screens.
-Saved time grabbing the first key by doing CTEH, and also saved time starting the monkey transformation while waiting for the key to drop.
-Optimized moving the second chest. It's even faster then 100%, god dang it.
-Actually utilized locked door cancels. For some reason I didn't do that here in the old TAS.
-Saved time on the magnet miniboss dealing the final hit while falling to the key chest.
-I dance on an elevator while traveling to the second miniboss. This saves a good three seconds since I already need to use the elevator to advance anyway.
-Saved time leading up to the second miniboss by keeping elephant form in a ground state while falling, letting me hit him earlier.
-Did a door detransformation on the way to the dungeon boss.
-Started a transformation after doing a locked door cancel on the last door. Saved about 30 frames since I need to wait for the door to open anyway.
-Boss is optimized by only hitting it every 11 frames, greatly reducing the amount of lag in the fight.
Path to Zombie Caravan/ Cackle Mound
-Due to my earlier route change, I have to go through Waterfall one more time.
-Still needed to wait 8 seconds for the Zombie Caravan, much better then 90+.
For those wondering, over 50 additional seconds would need to be saved to get early caravan, which at this point in time is completely impossible unless some large scale glitches are found, but assuming it ever DOES happen it would save 8192 frames bare minimum. As it is now, wasting time is ironically faster.
-Thanks to a route change, I now grab the last key...first. By grouping these two keys together instead of doing it later, I save an estimated 30-40 seconds by cutting out three unneeded transformations, not grabbing the squid, and not needing to backtrack after getting the last key. A tiny bit of time is wasted actually travelling to there, but it in no way amounts to anything significant.
-Speaking of keys, improved grabbing the second key by jumping before using the exit candy, saving like 5-6 frames.
-Saved time waiting to do the monkey transformation until after I'm en route to the fourth key. No idea why I used it before. Saves about 7 seconds.
-Related to that, I performed midair dancing for the second time to cut the majority of the monkey transformation.
-Utilized Temporary Base Form right before the boss to cut a detransformation.
-Boss is 1 second faster due to using the 100% strat.
Path to Twinkle Palace
-Very minor time saved detransforming into base form before Bandit Town to do a midair jump. Also saved some time transforming into monkey on a loading screen after talking to Risky.
-Detransformed before talking to Risky outside Twinkle Palace to save a whole 1 frame.
-Saved a few seconds cutting a Monkey transformation before the second key by just doing the spinner puzzle normally.
-Minor optimization with Harpy's movement, nothing very noticeable.
-Utilized two door transformations, which has the side effect of whiting out the screen until I transform back. Oh well.
-Block puzzles gave me slightly better RNG, so some time saved there. Block puzzles are the only kind of RNG I can't manipulate for some reason.
-Boss was improved by having Shantae land on the raised section of the field twice, saving like 20-30 frames or something.
-Lost 5-6 frames grabbing a heart from a Tinkerbat.
-Used Monkey instead of Harpy climbing the Tinkertank. Saves 6 seconds.
-Finally found a use for those Flash Bolts! Saves a good chunk of time.
-Risky's boss fight has now been updated to the 100% strat, that is to say hitting her twice before she jumps.
-Found a timesaver where Shantae will exit Risky's boss map faster if she's closer to the left wall before the cutscene. I probably
-Saved 30 frames killing Shantae right before the end, making the game load faster.
I still like TASing Shantae, even after all this time. Also Fog and Samsara are cool go praise them or something I don't know.
Oh, yeah, frame 186702 for that screenshot: http://imgur.com/wS2ytf8