Hello! This is a improvement of 1119 frames (18.62 seconds) to the previous run of this game, via new glitches and better optimization. I hope you enjoy the run!
- Emulator used: lsnes rr2-β23
- Aims for fastest time
- Glitch abuse
- Takes damage to save time
- Uses hardest difficult
I've started this run with very little knowledge about this game, and discovered useful glitches in the process. I literally run through the game five times, because it happened 4 times that I found a useful glitch while TASing the last stage (examples are the fast acceleration glitches and the camera manipulation trick). Amaraticando and BrunoValads wrote a lua script with sprites's hitboxes, which was extremely helpful.
It's very weird that lsnes claims the game is lagging all the time, when it actually isn't, so it's hard to notice lag and control it. Some frames of lag were saved in this TAS, especially after bosses (that's why I stay still and action-less after most of them).
First, a introduction of how movement works in this game:
Pressing direction and L = Stanley moves at 1 pixels per frame
Pressing direction = Stanley moves at 2 pixels per frame
Pressing direction and R = Stanley moves at 6 pixels per frame
Pressing direction and LR = Stanley moves at 15 pixels per frame
In all these cases, he always accelerates and decelerates 1 pixels per frame². Pressing the opposite direction of his movement intending to decelerate is the same as not pressing anything.
Fast 16 speed
After running for a while, it is possible to press down to slide and get speed 16. However, there is a faster way to do that. If you run one frame with R, and 5 frames with LR, pressing down will give Stanley 16 speed. That means you speed will, running from a stop, accelerate that way: 1, 2, 3, 4, 5, 6, 16. This is only possible when running on the ground, and saved 3 frames in every situation it was used.
If you run one frame with R, then one frame with LR, and another frame with R, pressing down makes your speed to go to 8, and gives you sliding state. This is useful to use slide hit in bosses, and to get 8 speed faster in some specific situations in which 16 speed isn't useful.
Keeping sliding status
If Stanley is sliding, and uses some ability, pressing down immediately after the ability's animation finishes returns him to the sliding status. This is specially useful in bosses, and to recover speed after the usage of an ability. Also, it is possible finish the animation sliding to the opposite direction with this trick.
Reaching platforms faster
Normally, when jumping to a platform that can be passed by upwards, Stanley needs to reach at least the same Y position he would have if standing in the platform. However, if he approaches the platform from the side and lands on it in its very edge, he can warp to it even being 7 pixels lower. This saves 2 or 3 frames in every jump to platforms that can be passed by upwards. It doesn't work when jumping to solid floor, neither in moving platforms.
When you press B, the jump button, it takes 4 frames to Stanley to get his jumping Y speed. However, if he is spinning, he gets the Y speed immediately (3 frames sooner). The problem with that is that the spinning animation (and every other ability animation) makes the game to think you are pressing B all the way, which makes the jump to be too high, and the time save doesn't worth. It was only used once in the run, in an specific situation in which it was possible to cancel that bug.
When Stanley enters a tube (or those things that look like vent outlets), if the place he is being warped to is too far away, sometimes he needs to wait for the camera to get there. It is possible to manipulate the initial camera position by turning him to the direction of the second tube, one frame after entering the first tube. This saved many frames in the last stage, and a few in the first 5. Sometimes it is possible to manipulate the camera before entering the first tube, by moving to the desired direction before, and then quickly going back for the tube and entering. This saves one additional frame, and was used twice in the run.
When sliding, it is possible to manipulate the camera position by punching the air while looking back, with no lost of time. This can avoid enemies to spawn, for example.
When Stanley uses an ability, what actually happens is that his hitbox is extended in a certain way, depending of what the attack is, and his whole hitbox can deal damage. This was abused in the previous run in level 6, by using the horn to extend Stanley hitbox, which touches the ending door. However, there are more ways to abuse of that. In level 5, for example, I could use punches and the hammer to pull some levers.
If Stanley is sliding, it is possible to use a punch without losing speed, and then to go back to the sliding state. It you press down in the frame this punch would hit an enemy, it will cause the effect of the punch, but the damage of the sliding attack, which is higher. Also, if you are sliding in the direction of an enemy an uses the guns, touching the enemy will cause the effect of the sliding attack, but the damage of the guns (the principle of triple-damaging).
When Stanley tries to use the horn, the hammer or guns next to a wall, the animation of the ability is canceled. However, using the previous glitch, it is possible to deal damage with the guns thanks to the sliding status, and then cancel the guns animation. This saved a good amount of time in the second boss.
Canceling long jump
When you jump pressing up, Stanley decelerate every 4 frames instead of 3. By using the hammer in some situations (sometimes it doesn't work, not sure why), you can cancel this effect and decelerate every 3 frames. I only realized this because TASeditor mentioned that it is faster to use the hammer in a certain jump, and this saved 2 frames in the run, so thanks to him for this.
Stage by stage comments
Stage 1 (53)
The acceleration and camera tricks saved a few frames in some circumstances, and acceleration was improved after braking the glasses. A coupe frames were also saved when braking the floor with the hammer. When getting out of the first tube, I could avoid hitting the floor, saving 8 frames, and the jumps that precedes glass braking were significantly improved. 2 frames were saved with the platforms reaching trick, and both boss fights were optimized (about 20 frames saved in the first, and 1 in the second). Overall, 53 frames were saved.
Stage 2 (479)
Many small improvements occurred in this level, specially with the platform trick. The acceleration and camera tricks was also useful sometimes. (For the next stages, consider 'small optimizations' as the usage of these 3 tricks and generic movement optimization). I figured out that it is possible to triple damage the machines that Stanley has to fight with during the level, thanks to the sliding glitches. This way, I saved about 70 frames in each machine. Also, after the first machine, the only use in the run of the quick jump trick happened. I could use it there because machine's death glitches Stanley jumps, allowing him to go back to his normal in-floor animation, which cancels his Y speed. You can notice it seems he is 'running' in the air, there.
A more efficient use of the M points in the bosses allowed me to not lose time going for M bonus points, which saved 60 frames. In the boss, I initialized which a hammer attack with no cost of time, as Stanley was still falling, and then I used sliding + guns to double damage him while going for the wall, which canceled the guns animation. Another hammer and another double attack was enough to kill him, much faster and spending less M points. About 200 frames were saved in the boss, and 426 in the whole stage
Stage 3 (550)
Besides the small optimizations, I could save some frames when jumping in the platform that propels Stanley upwards by hitting in in a lower Y position, so that I have to wait less to fall down back. In a certain moment I could save many frames by jumping from a platform directly to another that is pretty distant, while the previous run used an intermediary extra jump. Right before the boss, I could save 10 frames by reaching M points using the hammer, instead of jumping to get them.
In the boss fight, I manipulate the frames Stanley is running so that I don't lose any M points. That allowed me to use the guns three times instead of two, which saved a lot of time. Overall, in this level, 71 frames were saved.
Stage 4 (624)
Besides small improvements, in this level I improved the jump to a tree right before a water squirt. It is impossible to reach the hole in the tree with the water, because Stanley decelerates too fast, and with a single jump, because his initial speed is too low. However, if you jump and then touch the water, Stanley will have the speed from the water boost, and the usual deceleration from a jump. This allowed me to reach the hole with 1 jump rather than 2. The boss was also a bit optimized and I could start attacking him sooner. 74 frames saved in this stage.
Stage 5 (724)
A lot of acceleration improvements happened in this level, and many frames were saved with the hitbox glitches. Instead of running to the levers, I used the hammer or a punch to have Stanley hitbox touching theirs. In one specific case I could pull the lever through a lighting, and used this lighting damage as a boost to the opposite direction.
In the room with moving platforms, I don't fall until the ground and jump from the first platform, using the ceiling to reduce the jump weight and fall faster, and some frames were saved optimizing the boss. In this stage, 100 frames were shaved off.
Stage 6 (725)
As in the previous run, this stage is skipped. I saved one frame of lag thanks to a shorter time with the spinning animation.
Stage 7 (1119)
A lot of small optimizations. The camera trick was especially useful in this level, saving a lot of time. The jumps in the blue stars were optimized, and some time was saved by not getting extra M points, as I could get them in the boss anyway, while waiting for his animation.
394 frames were saved in this stage, being 279 of them in the boss fight. A lot of things were improved in the boss, such as:
- Performing only triple damages (the previous run failed to do this twice)
- I started sliding before the fight starts, and kept sliding status until the end, thanks to the sliding glitches. I only used sliding attacks, that deal 3 damage, while the previous run used punches that deal 2 damage.
- I manipulated the guns attacks so that the boss don't try to attack Stanley after them, which would make me to lose time. Also, it is impossible to use a gun attack without losing a M bonus point, but it is possible to use 2 gun attacks losing only 1 bonus point, so I did that every time.
- I manipulated a lot the boss position, so that I never lost M bonus points: the sliding attack pushes the boss to the opposite direction of Stanley, but the punch doesn't. So, if I wanted the boss to move to some direction, I used the sliding attack, and if I wanted him to stay still, I used a punch, still dealing 3 damage because I kept sliding status and pressed down in the frame of the punch.
- TASeditor, for the previous run and for pointing out a 2 frame improvement from a trick that I overlooked.
- Amaraticando and BrunoValads for writing a lua script with sprite's hitbox, which was really helpful.
Noxxa: Replaced movie file with a 2-frames improvement.
Noxxa: Any time when the The Mask run gets an improvement, it never disappoints. While the previous run is already entirely a ludicrously fast platforming spectacle, the new improvements just make it that extra bit better. And so we end up with yet another amazing The Mask run. Accepting to Stars as an improvement to the published movie.