TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #2408: Randil's NES Little Nemo - The Dream Master in 22:06.95

Console: Nintendo Entertainment System
Game name: Little Nemo - The Dream Master
Game version: USA
ROM filename: Little Nemo - The Dream Master (U).nes
Branch:
Emulator: (unknown)
Movie length: 22:06.95
FrameCount: 79748
Re-record count: 27883
Author's real name: Johan Södling
Author's nickname: Randil
Submitter: Randil
Submitted at: 2009-09-25 11:21:49
Text last edited at: 2009-10-27 05:51:04
Text last edited by: OmnipotentEntity
Download: Download (15734 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
Little Nemo is a fun platformer where you collect keys to unlock the door at the end of the level. You can transform into animals by feeding them with candy and then entering them. This is a 1 minute 30.07 seconds (5404 frames) improvement to the published run of this game. The improved time comes from new routes, getting killed to save time, subpixel optimization, lag reduction, better damage boosting, etc. See below for more details.

About the game

The goal in this game, at least on all levels except the last one, is to collect all the keys to unlock the door at the end of the level. To his help, Nemo can enteranimals by feeding them 3 candies. All animals have their own strenghts and weaknesses which will become apparent when watching the run. You have a health bar at the bottom right corner of the screen, and your maximal health changes depending on what animal form you're in.

You can only fly for 3 seconds as the bee, then you have to land. That's why I land every now and then as the bee.

General strategy and tricks

Avoiding conversation with animal at the start of level

This trick was discovered by Kyrsimys and is used in the published run. By jumping constantly the conversation never triggers, because you need to stand on the ground for 2 frames for it to take place, and by jumping as soon as I land, I avoid triggering it.

Use death as a shortcut

This trick was discovered by Guybrush. By killing myself in level 2, I respawn at a convenient place, saving some time. I have not found any other place where this trick can be used.

Acceleration trick

This trick is used thoughout the whole run. Basically, I oscillating my movement speed, increasing my average movement speed. This is done by pressing right every fifth frame instead of holding down right when moving. Another way to achieve the same movement speed is by pressing left,right,left,right, wobbling your way forward. this will increase my average movement speed from by an additional 16 subpixels per frame, which adds up to quite a lot at the end.

In the example below, if I say that my speed is X it means 16*x subpixels per frame. The reason for this is because you only move in 16 subpixel intervalls. So if I say that my speed is 18, it's actually 18*16 = 288 subpixels per frame.

An example: Nemo's normal speed is 18. The game will calculate if it should increase speed by reasoning like this: When right is held down, if your speed is >=18 then set speed to 18, else increase speed by 4. If I release right when moving at top speed in air, my speed will be decrease to 17. Now, if I press right again, my speed will increase to 21. I now release right, which causes my speed to decrease by 1 per frame. The I repeat this procedure, making my movement pattern look like this: 17-21-20-19-18-17-21-20-19-18-17-..., giving me an average speed of 19, 1 higher than your normal top speed.

The same works for all your other forms. This trick makes the game tedious to TAS, but the saved subpixels add up.

Optimizing subpixels before landing

This trick is only usuable with Nemo. When Nemo lands, his speed is set to 0. By making sure that my speed is 21 or 20 right before I land, I optimize subpixels slightly. It does not save many subpixels with each use, but since Nemo tends to jump quite a lot, it adds up.

Maintaining speed after landing

This trick can be used with the gorilla, the rat and the lizard. When you land after a jump with any of these, you will maintain the speed you had right before you land for 4 frames. So by oscillating my speed in a way such that I have top speed right before I land, I gain some subpixels.

Damage boosting

When you take a hit, your speed is increased to a value that is higher than you can achieve normally, even with the acceleration trick. This means that damage boosting is often very useful in this game. Damage boosting does not save any time when you're in lizard form or in frog form under water.

Throwing candy when jumping out of the water

You'll often see me throwing candy when making a jump out of the water. This is because if you throw a candy at the same time as you jump out of the water, you'll get maximum speed upwards. Sometimes you'll get that speed anyway, but it's not certain if you don't throw a candy at the same time.

Mainting speed and position after transforming to animal

When you transform into an animal, both your X and Y speed and positions are saved. So if you want to move right after entering an animal, you want to enter the animal with a speed to the right, as well as try and hit the animal's hit box on the rightmost part.

It also goes the other way around - when transforming back into Nemo, you keep your X and Y speed. And since some animals can get a much higher Y speed than Nemo can, I can get a speed boost right after turning back to Nemo.

Improvements

I had not only the published run to compare to, but a WIP by Guybrush that ends after level 4, and a full run by max that was rejected. By having 3 runs to compare to, I could make sure that I didn't lose any time anywhere.

Besides all these tricks, the published run has been improved by reducing lag and cutting corners better, as well as some general optimized movements. Below I will provide comments for each level ("frames saved" refer to frames saved over the published run):

Dream 1 - Mushroom forest: 182 frames (3.03 sec) saved

  • Jumping up the first two mushrooms is faster than running.
  • After picking up the key above the big mushroom, keeping the frog form is faster than transforming back to Nemo, at least when using the movement trick. (I did some testing and it turns out that it's 4 frames faster to keep the frog)

Dream 2 - Flower garden: 626 frames (10.43 sec) saved

  • When climbing up the tree as the gorilla, max climbed the right side of the tree, while I (and Guybrush) climbed the left side. Climbing the left side is actually faster, even if it might not look like it. (I tested this too, and it's at least 35 frames faster than climbing the right side of the tree)
  • I use the death trick on this level (see above), so the death is not a desynch! :)

Dream 3 - House of Toys: 37 frames (0.62 sec) saved

  • This is an autoscroller, so not much time saved here. I saved time by reducing lag and reaching the train a little faster. I hope you liked my antics on this level!

Dream 4 - Night sea: 312 frames (5.20 sec) saved

  • Just like in max's rejected run, I enter the snail at the beginning of the level and move under the boat, in the sand. This neat trick saved about 150 frames!

Dream 5 - Nemo's House: 1088 frames (18.13 sec) saved

  • Picking up the first key with the frog instead of the bee (see around frame 30600). This is because the frog moves slightly faster than the bee, and I'm right next to that corridor anyway with the frog, so it's no detour at all. With the bee, picking up this key is a slight detour. This trick saved about 150 frames or so.
  • In the cellar, I keep the frog form right until I'm next to the bee (the frog moves faster than Nemo), and then use the bee to take the key instead of using the lizard. This strategy saved around 520 frames.
  • Around frame 38300, I use a strategy that max used in his run: By manipulating the enemy's position, I can do a damage boost on him, instead of stopping for some time like in the published run. This forced me to conserve one more point of HP, but it still made up for it.

Dream 6 - Cloud ruins: 122 frames (2.03 sec) saved

  • This level is mostly an autoscroller so not much time saved here. After the screen has stopped scrolling up, you have to be on the left part of the screen for it to start scrolling to the right again, that's why I don't puch against the right side of the screen after the autoscrolling parts.

Dream 7 - Topsy Turvy: 500 frames (8.33 sec) saved

  • I take the frog before getting the first key, and then take the key with the frog. This is about 1 second faster.
  • Just like max, I don't enter the first bee, but keep the frog. This saves some time, because I don't really need the bee at this part of the level.
  • I keep the rat a bit longer, because the rat moves faster than Nemo.

Dream 8 - Nightmare land (part 1): 500 frames (8.33 sec) saved

  • I take less damage and jump from the tree sooner (around frame 65900).
  • The boss is killed considerably faster than in the published run, which makes up for most of the time saved.

Dream 8 - Nightmare land (part 2): 952 frames (15.87 sec) saved

  • I don't enter the frog but keep the lizard form, like max does in his run. This is faster, and the spike roof on the second part of the level can't hurt you when you're in the lizard form.
  • I have to turn back to Nemo at the end of the level because the lizard dies if he hits water.
  • The boss is killed considerably faster than the in published run.

Dream 9 - Nightmare land (part 3): 1056 frames (17.60 sec) saved

  • The boss is killed considerably faster than in the published run.

Thanks to:

  • Kyrsimys for his published run.
  • max12187566 for his run.
  • Guybrush for his WIP.
  • All who encouraged me in the forum thread.

Enjoy!


mmbossman: A worthy replacement to the published run. Accepting.

OmnipotentEntity: Encoding.


Similar submissions (by title and categories where applicable):