Moai Kun TAS by Randil
This run improves
The improvements come from new strategies, several new tricks, and optimized movement.
I recommend that when you watch this run, open Memory Watch and enter address 003C. This address tells you what stage I'm currently on, and it will make it a lot easier to refer to a specific stage if you have any questions.
About the game
The goal on each stage is to rescue all the pink easter island figues. After you've done that, you have to reach the door to continue to the next stage.
Our easter island stague hero has a head attack that can crush blocks, kill enemies, and move boulders. He can also place bombs to blow up blocks and to kill enemies.
If you touch an enemy or spikes you die, and have to restart the stage.
There are a few ice levels in the game, and when running on ice, our hero moves twice his normal speed, but cannot turn around normally. The only way to turn around is by bumping into a wall.
Tricks and strategies
Jumping: You get pushed 1 pixel each time you jump, so I always jump instead of walk where it's possible.
Attack left, move right: By pressing left+right+B you will attack to the left but face right. This is useful when you want to keep moving to the right but have to attack something to your left (example: frame 1526).
Head butt pixel push: I know, it's an awesome name for a trick. When you use your head butt to crush a block or move or boulder, you will instantly move next to it. By using my head butt when I'm 5 pixels away from the block, I instantly get pushed these 5 frames, saving some time. (example: frames 5171-5174.) This trick doesn't work when you attack enemies.
Head butt long jump: This is a special case of the head butt pixel push trick, which allows me to jump over holes that are 2 squares (32 pixels) wide, which normally isn't possible. By performing a head butt when I'm within 5 pixels from the block on the other side, I get pushed these extra 5 pixels, allowing me to land on the other side (example: frames 2324-2350). This trick only works when there is a breakable block or a boulder on the other side.
Wallzipping: By jumping towards a block that and turning around before you start falling down, the game won't recognize that there is a block next to you and you'll move through it. You can always zip through a block that is one level above you (example: frame 1886), but you can only zip through a block that is on the same floor as you if there is another block above it (example: frame 2016). The block doesn't want me inside of it, so it will try to push me out, and by turning around at the right times while inside the block, I get pushed out faster.
Walljumping: This trick is pretty similar to the wallzipping trick. If you zip just frame into a block that has a block both above and the below itself, you can perform a jump. (example: frame 2289. You'll see that there is a blue block both above and below the one I stand on, and therefor a walljump is possible). You can only jump straight up when standing on the block like this.
Jumping through blocks: Basically the same as with wallzipping, but I don't move inside the block, instead I'm just slightly inside. (example: frame 605). By turning around after I've jumped, I'm able to move through the block without it blocking my way, saving some time.
Bomb pause trick: Once you have placed a bomb, it will explode once a certain in-game timer reaches a certain value. This timer increases when the value of another in-game timer is divisible by 4 and the game is not paused. If you pause the game when the in-game timer that determines when the bomb timer increases is divisible by 4, you can delay when the bomb explodes. This is used on stage 19 in order to allow me to jump up on the boulder before it falls down due to the bomb exploding (frames 15530-15535).
The bomb trick can also be used the other way around: By pausing at the right frames, the bomb will explode on the same frame, but I won't have moved as far. This is used on stage 21 to allow me to blow up a brick and fall down through the hole it creates. If I wouldn't pause the game, I would have run right past the hole, since I can't stop running when on ice.
Head rest trick: Normally, if you crush more than 5 blocks in 3 seconds or so, your character gets dizzy and you can't crush blocks for several seconds. I found that if you press the A button when RAM address 001B is even, you can cure your dizziness much faster. This allows me to crush as many blocks as I want without having to worry about getting dizzy. It's a little more complicated than this, but the core of the trick is to press A button every other frame to cure your dizziness much faster. (example: frames 9126-9133) This trick saves a lot of time on stage 12.
Boulder climbing: The core of this trick is to abuse that when a pile of boulders start falling down, there's a hole inside in which you can stand, right under the block that is currently falling down. Before it hits the block below, you jump up, passing through it, only to land on the block above. By repeating this, you can climb piles of boulders pretty fast. This trick is used a lot on stage 38 (frames 34193 to 34657).
Improvements table:
Note that Nitrodon's incomplete run ends after stage 29.
How to read this table: For example, I improved stage 7 by 32f over my cancelled run, 33 frames over Nitrodon's run and 40 frames over Soulriver's run.
Stage | Randil v1 | Nitrodon | Soulrivers |
---|
1 | 0 | 3 | 2 |
2 | 0 | 8 | 8 |
3 | 2 | 8 | 27 |
4 | 10 | 43 | 314 |
5 | 0 | 0 | 1 |
6 | 1 | 3 | 16 |
7 | 32 | 33 | 40 |
8 | 2 | 2 | 19 |
9 | 85 | 63 | 386 |
10 | 40 | 190 | 687 |
11 | 92 | 99 | 237 |
12 | 52 | 91 | 347 |
13 | 0 | 0 | 0 |
14 | 0 | 15 | 78 |
15 | 3 | 0 | 16 |
16 | 0 | 12 | 15 |
17 | 150 | 91 | 292 |
18 | 279 | 99 | 531 |
19 | 97 | 60 | 340 |
20 | 354 | 3 | 832 |
21 | 168 | 43 | 256 |
22 | 36 | 3 | 92 |
23 | 14 | 73 | 113 |
24 | 21 | 3 | 25 |
25 | 33 | 71 | 279 |
26 | 1 | 111 | 230 |
27 | 16 | 1 | 91 |
28 | 184 | 68 | 296 |
29 | 4 | 135 | 225 |
30 | 174 | - | 369 |
31 | 3 | - | 432 |
32 | 234 | - | 906 |
33 | 190 | - | 318 |
34 | 82 | - | 704 |
35 | 103 | - | 327 |
36 | 20 | - | 2099 |
37 | 13 | - | 166 |
38 | 190 | - | 629 |
39 | 103 | - | 144 |
40 | 6 | - | 348 |
41 | 45 | - | 1031 |
42 | 215 | - | 514 |
43 | 3 | - | 344 |
44 | 125 | - | 383 |
45 | 2 | - | 26 |
46 | 19 | - | 230 |
47 | 1 | - | 549 |
48 | 969 | - | 1402 |
49 | 15 | - | 190 |
50 | 111 | - | 1260 |
51 | 13 | - | 388 |
52 | 180 | - | 1809 |
53 | 6 | - | 124 |
54 | 80 | - | 441 |
55 | 69 | - | 1319 |
56 | 2 | - | 1057 |
Possible improvements:
I know that stage 7 can be improved by 37 frames, but I don't feel like redoing this whole run for those frames.
Of course, it would be foolish of me to think that I found the optimal strategy for all 56 stages. I tried my best to find the best strategy, but the levels get quite complex by the end, so it's hard to find the best route. However, I tried many different routes and picked the fastest one of those, so I think it's still pretty tightly optimized. :)
Then there's the usual things like further lag reduction and things like that, but I don't think that will make up a lot of time.
Thanks to:
- Soulrivers for his run.
- Nitrodon for his run.
- And you for watching! ;)
If anyone wants to give this game a try, feel free to ask me for RAM addresses, I have collected quite a lot of them.
Well, enjoy the movie!
Truncated: Accepted as an improvement to our published movie.
Bisqwit: Processing for publication.