This run beats the current published one by 4992 frames (1 minute and 39.84 seconds)
Game objectives
- Emulator used: FCEUX 2.2.1
- Aims for fastest time
- Takes damage to save time
- Uses death as a shortcut
- Abuses programming errors
- Manipulates luck
Comments
If you're familar with the previous TAS, watch this new run before reading about it for surprises.
A while ago KennyMan666 found a way to skip the light switch by using Shades, this was first thought not to be usable in a TAS as Shades was skipped in the previous run and thus a detour to get him would be required. Some time after that I decided to time how long it would take to get Shades compared to bombing your way down to the lightswitch, and the result was a surprisingly big victory for the Shades detour, 1:18 compared to 1:54. So with this as a basis I started my TAS attempt of this game, thinking it would be a rather quick project but different factors resulted in a work span of over a month (the text under the next subtitle explains it).
The global timer
In this game the global timer has a much higher impact on different things than in most others. One purpose is to control some actions of most of the enemies in the game, for example the slimes do their jumps when the value is either 0 or 128. Luckily not all bosses acts upon the timer; of the bosses I face only the three friends and the armored cat are affected by it, which in the end didn't cause that much trouble. One nifty thing with this timer is that it still ticks down while the game is paused, and of course enemies can't move while paused so if you desperatly need an enemy to not do the move it normally would, just have the game paused while the timer ticks over the values that affects them.
Moreover the timer also has inpact on your own physics above ground. In air it affects you in such a way that if you have built up some horizontal speed and jump, then release the directional buttons your horizontal speed will decrease by one everytime the timer value modulo 8 = 0. Also when you descend with Shades, his vertical speed will increase by one when the value modulo 2 = 0. If you combine this with the pause trick mentioned earlier, and also using the select button, you can skip the values for when Shades' vertical speed would increase and thus make him capable of jumping huge distances, which sadly takes forever to execute (you'll move 3 pixels every 40th frame or so) and won't be useful for speedrunning purposes. The worst thing that the timer is controlling is Gil's physics while swimming. His horizontal speed can only change when the timer value modulo 8 = 0, which means that if you've found improvements earlier in the run and the difference between the current timer value and the old one is not a multiple of 8 then you basically need to find a completely different way of optimizing the underwater parts from last time.
Improvements
First Continue | 1143 frames saved |
Second Continue | 127 frames saved |
Third Continue | 325 frames saved |
Fourth Continue | 2778 frames lost |
Fifth Continue | 6166 frames saved |
Sixth Continue | 9 frames saved |
Comments for each section
First continue - up to getting the suction cup
Freeon is taken care of a little faster. The boring thing about the friend fights are that they have an 8-frame rule for when they can be completed (global timer anyone?). Using the speed boost in the ice cavern I gained some seconds there. In the next area I utilise a walljump and Freeon's "super swim". Then in the tree area came the biggest use of the wall jump in the game as it skips the whole upper left section. On the way back I cause an egg to not spawn to reduce lag. From there it's just minor things up til the game over.
Second continue - up to getting the red key
I paused two times to manipulate the third enemy to not get into the way too much. While pushing the rock I jumped more on the side of it which proved to be slightly faster. In the fight with Gil I had to pause at the beginning since he would've jumped and completely ruined it otherwise. When crossing the lake with the rock I found a way to keep the speed when switching to Gil by performing it on the rock itself.
Third continue - up to getting Gil's secret weapon
After the horizontal water tunnels you can keep higher speed coming out of them by holding either down or up. After some smaller improvements up til the water tap, I saved quite some time in the water labyrinth by keeping higher horizontal speed over the corners of some platforms. The boss strategy was changed after the first hit, by bounching the ball on the right wall I could jump on the boss right after his invinibility stops and I also didn't need to wait to throw the ball after getting it.
Fourth continue - up to getting the blue key
In the previous run this would've been the fifth continue, I needed to do this part now though as Shades was needed for the dark area. I take damage in the two best places I could found. I grabbed Shades and went to the blue key area. Here Shades came to great use as he can just sore over the lava pits and avoid losing time by taking damage. In the boss fight he saved even more time simply because his weapon is more effective. Also the lances that drop down depends on the global timer, so by pausing away some of them I could reduce a great amount of lag. A fun thing at the end was that I had to get hit by that lance to become invincible for some time, otherwise the next part of the boss would've killed me right away.
Fifth continue - up to getting the green key
Except for the huge amount of time saved by skipping the light switch, I reduced almost 300 frames of lag in the next room by killing the enemies right after the explosions as that leads to them not dropping any laggy item. I also took damage here for later as it didn't cost any time at all. On the boss I found a way to kill him just as fast with only Gil, saving two character switches. By ducking and jumping you'll reach a little further into the celing and are able to hit the smiley face at it's highest point. For the death abuse I didn't switch back to Bop as it's only a waste of time.
Sixth continue - up to beating the game
Not much to say here. The only way to speed up the final boss slightly was to hit his little buddy lower so that you could deliver the final blow a little earlier.
New tricks/glitches
Have the others keep Bop's max speed on land and in water with Freeon
Have Bop run at his max speed, jump and then switch to another character. Now hold down or up until two frames before you land, at that point hold "left", "right" and "down" at the same time for one frame and from there hold "down". To have Freeon keep Bop's speed in water you just need to hold down or up after switching from Bop in air. In some water containers this isn't possible though as when you land in the that particular kind of water you get instantly shifted to the closest position divisible by 8 on your left side and your horizontal speed resets to zero.
Horizontal speed boost on ice sloops
If you're within the same 16*16 square block as an ice sloop but not standing on it, with any character but Freeon, your horizontal speed will continiue to increase past the normal speed cap of 24 subpixels/frame. Apparently the only thing that stops you from getting this speed with those characters while walking on ice is the routine that tells the character to slip when the speed is > 23, so if you just skip being on the ground you can continue to accelerate up to another speed cap of 48 which for some reason was choosed as the max speed.
Wall jump
A classical glitch that also found its way into this game. In this game the edge pixels of a platform works differently from the others, they're fine to stand on but it's also fine to, while standing under that precise pixel of the platform, jump and not hit the ceiling but continue up inside that platform and if you've jumped high enough you'll stand inside the wall from where you can continue to jump upwards. This is actually only halfway true though, it works this way only if you try to jump up the right wall of a platform. In order to do a wall jump from the left wall, some very precise inputs are necessary since if you jump straigt up here, you'll get ejected out of the wall. To not get ejected you must move left, that is away from the platform - it also must be a platform that is four blocks above you. The exact way to do the left wall jump is to jump from some location close to the leftmost pixel under the wall, hold the a button and after 8 frames you must be 1 subpixel to the right of that edge pixel, then push left for 1 frame and hold the a button for 3 more frames while holding either up or down to ensure that the global timer doesn't reset your speed and ruins the trick, and when your vertical speed hits zero you'll land on the wall on the last subpixel which is possible to land on, then you have one frame to jump as landing there results in you getting ejected out of the wall.
Thanks...
My thanks goes to Adebis for the previous TAS and KennyMan666 for finding the light switch skip (along with other things) which was the only reason that I started this TAS, and for support while making the TAS. Also Blublu for finding many things for this game in the early days of TASing.
feos: Judging!
feos: Replaced the movie file with the same file where the Author fixed rerecord count (sent by PM).
feos: Accepting this amazing improvement to Moons.
Ilari: Processing... Can't get this to sync.
natt: Processing...