This is an improvement of 30 seconds over the previous run thanks to new clips and optimizations. I started this run after finding Clam Clip and after the Trip World speedrunners told me about a faster route in World 5. I found a few other tricks along the way, which I will explain below. Enjoy watching Yacopu travel through Trip World! You may want to watch before reading on. :P
If you find the beep beep annoying, go watch this instead.
And if you still have questions later, feel free to ask me.
Objectives
- Genre: Platform
- Abuses glitches
- Emulator used: VBA v24 svn391
About the run
Unlike the previous run which was created on VBA 19~23, this run was created with the newer VBA 24m which has added LCD emulation and thus there is 00:04.07 seconds more lag than previously.
The optimization level has increased since last time. I would spend more time to grind out each section until it was tightly optimized. In fact, I believe I have spent around 80~100 hours to create this run, livestreaming much of it on my Twitch channel.
I put together a new lua script prior to starting the project which I made little additions to as I went on with the run. For example, I made it so that it could not only show the "speed" of a given object, but also the difference in position between two frames, thus giving me the "true speed". I later found that it depends on this value, whether or not an object can clip into a wall. I will explain wall clips below. I also found that there is a global timer, $FF99, which some aspects of the game depend on - for example at what time a boss is supposed to attack, or when a Drop Frame should occur (every 16th frame). A drop frame is when the game depletes 1 from your x-speed.
Tricks
Here I will explain the tricks used in the run. Because pretty much everything is already covered on the Game Resource page, I will not go into much detail though.
Preserving x-speed
When in flying form and landing/hopping, you gain 3 additional x-speed on top of your maximum allowed x-speed. The game would normally deplete from it every 16th frame (on what I like to call a Drop Frame). Such a drop frame can be prevented if the game is paused during it. I also found that the drop frame has no effect when Yacopu is landing/hopping at the same time, or when a vertical screen transition occurs. So it was sometimes tried to abuse this to cut down on the pausing (thus saving frames).
Preserving speed can be done in other forms as well, even the normal form.
Preventing bosses from attacking
Many of the bosses have certain attack patterns, most notably the boss in World 2, which can acquire a long invincibility period. This can be prevented by juggling those bosses, by jumping into them and carrying them on your head.
Wall clipping
This is something that wasn't done before: Wall clipping. Basicly, when Yacopu gets pushed into a ceiling, he will get pushed to the side and if there is a wall there, he can clip into it. I think it may only work on right walls, though I'm not sure anymore. It does not matter because there is no place where it would save time to clip into a left wall anyway.
If you are in fish form, you can clip even though there is no wall tile in the bottom diagonally from you, thus allowing me to save about 3 seconds in World 3. This clip could also be done on the ceiling enemies in this level, but it is slower.
Later on I found a few special cases of wall clipping, such as Ball Clip and Goku Clip (We call him Goku because he shoots ki blasts). Instead of being pushed by an enemy from a standstill, you can use speed to experience a 1-frame speed boost - in the case of ball clipping, this is done by first pushing an enemy, then getting in the enemies path to get pushed yourself.
It seems to take 81 "true speed" to clip. True speed is the difference in x-position between two frames. The game keeps track of a normal "speed" but when you ride or otherwise interact with an enemy, the speed you experience is not kept track of, hence why I refer to it as "true speed". When in goku form, it seems it takes more than 81 though - the lowest I have gotten it to work with was around 94.
Level-specific comments
World 1
This is a straightforward level that hasn't changed much. I saved a split second here, not counting the added lag from the new LCD emulation.
World 2
This is a straightforward level as well, and no time could really be saved here. This level was already perfect since the purpose in this level is to grab the ball form and then make it to the boss, dealing the kick perfectly after transforming back. Only a few frames are saved from better hopping at the beginning.
World 3
Here things get interesting. I used the fish clip and clam clip I had found to save about 20 seconds.
After the clam clip is done, I end up in the windy section that prevents me from moving on quick, unfortunately, but hopping forward proved to be the best thing to do. It is not possible to fly up and then forward - above the wind, because as soon as your x-speed ever hits 0, Yacopu falls down like a rock.
World 4
This first seemed like an unspectacular level until the ball fruit at the beginning caught my attention. I eventually found ball clip and investigated if it could be used as a time saver. Theoretically, you can clip above the boss room and zip down (because transforming back from the ball form makes you zip down, somehow). Unfortunately, the ball transformation lasts an entire 30 seconds so you would have about 10 seconds unnecessary waiting time that you can't do anything about. I later concluded that if the ball clip was done, I would have been only about 100 frames behind the alternative (going through the level)!
I later found a wall clip with goku form, by chance. I did not expect that it could be done like that, but I'm very glad that I was able to defeat a boss from inside a wall. It reminds me of Bubble Man in NES Megaman 2.
World 5
Due to the spectacular findings in World 4, I was eager to go and find a wall clip with the butterflies to either skip the entire level or at least some of it. Sadly, the butterflies did not cooperate, flying into undesireable directions. Due to the butterflies' small size, a wall clip would only have worked if two of them would have pushed me from below into a ceiling, which was never going to happen, and definitely not within 10 seconds (where it would have been worthwhile). So I went through the level normally - only this time, I took the better of the two routes, saving about 10 seconds or so. The absence of goku form made the last bosses more interesting.
There are two things to note about this level: Normally, when you are in the flying form and you touch an enemy, your speed gets transfered to it - you lose all your speed. But some of the enemies in the beginning of World 5 can be used to boost off of, even giving 4 additional speed than just 3. This is because those enemies were in a solid state, immobile and invincible, just like the cake miniboss and clam miniboss can be sometimes.
The other thing is about the very last boss, Gundam Bunny. When the fight starts, you can prevent him from going all the way to the right but it turned out to be slower, because he would have done his kick attack. When he does a kick, he is invincible.
Links
- Previous run (5:40)
- RTA Leaderboards (The WR is 6:20 at the time of this writing)
- Latest version of the Lua script I used (You may want to edit lines 133~136 and 170~179 depending what you want it to display on the screen)
- Game Resources page (This page briefly explains most tricks and movement basics)
Thanks to
- #tripteam on irc2.speedrunslive.com
- BioSpark for his maps
- anyone whom I might have forgotten
ars4326: Judging!
ars4326: Hi again, MUGG. Very impressed with the time investment into this improvement and the meticulous detail included in the submission text (which really helped in understanding the finer technical elements). As for run itself, aside from the slight distraction due to the frequent pauses, optimization was just excellent. The wall clips were also a pleasant surprise, and added onto the overall entertainment value. Outstanding work on this one!
Accepting as an improvement to the published run!
Spikestuff: Why am I picking up the short TASes? Publishing.