TASVideos

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

Submission #2685: MUGG's GB Kirby's Dream Land in 08:44.65

Console: Game Boy
Game name: Kirby's Dream Land
Game version: USA/Europe
ROM filename: Kirby's Dream Land (UE) [!].gb
Branch:
Emulator: (unknown)
Movie length: 08:44.65
FrameCount: 31479
Re-record count: 118301
Author's real name: Christoph H.
Author's nickname: MUGG
Submitter: mugg
Submitted at: 2010-05-28 13:46:53
Text last edited at: 2010-05-29 14:32:08
Text last edited by: flygon
Download: Download (3606 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:

About the game

Dedede has stolen all the food and Kirby has to get it back. There are 5 levels in total in this platformer. The first 4 feature Whispy Woods, Lololo & Lalala, Kaboola and Kracko as bosses while the 5th level consists of a re-match of all the bosses and Dedede himself.

About the run

  • Takes damage to save time
  • Uses hardest difficulty
  • Abuses programming errors in the game
  • Manipulates luck
  • Genre: Platform

I started this run in July 2009 because I was very confident that very much time could be saved off of JXQ's run. He inhaled many enemies on his way and does other stuff which slowed him down greatly. I was afraid to make a new run because a new run could perhaps have been less entertaining. I considered JXQ's run partly as a playaround and left it be until July 2009.

This game is very laggy and much time can be saved by lag-reduction by swallowing enemies. The lag counter was a great help in this run. Without it I wouldn't even have attempted doing a new run. I found a lot of new tricks and glitches which motivated me to do this run even more. I left the project alone a couple of times because of luck-manipulation issues or bad lag behavior but in other times the progress was so fast I did several rooms in very few days. I'm very glad I finally made this run... or should I say, I'm glad that I don't have to deal with this game anymore. :)

The re-record count is not a fake, by the way. I was really serious about this run for most of the time.

I will add the missing information later.

Level by level

Level 1

I used a damage boost towards the warpstar to save some time. This level is full of enemies and therefore lag-reduction was hard, especially the end of room 2 is notably laggy. I was very obsessed with this run at some points, like in room 3 where I worked very long in order to remove as much lag as possible while floating upwards.

Level 2

I used a damage boost in room 3 though it wasted a frame it removed much lag in the next rooms for some reason. I used the instant activity trick to blast my way through the lowest row of blocks instead of jumping across. Well, nothing much to say here...

Level 3

Damage boosting inside of the water seems to be more worthwhile. I didn't get the Spicy Food item to recude more lag. Kaboola (the boss) was pretty tricky to optimize. The key here is to change the RNG so that Kaboola doesn't shoot many bullets, reducing lag.

Level 4

I had to redo some of this level when I found out that I needed 3 HP for Kracko in order to use all three bomb drops. While the initial TAS was pretty optimal, my redone TAS stumbled into a nightmare of random lag. I had saved some frames but lost all of it and was at the end 13 frames behind my old version. I tried a very long time to avoid this by changing RNG and redoing some sections but I couldn't manage it. I then found out that I would only need 2 HP for Kracko since I found a way to use his 3 bomb drops with the activity trick (floating in the room before Kracko disactivates this glitch, so I needed to do the first round by taking damage). I didn't want to go back and implement the unused health point on damage-boosting. Not only did I not know a convenient place for implementing it, I didn't want to re-enter this lag issue and the boost would only save 2 or 3 frames maybe, so I went on.

Level 5

Nothing special to say here. I have a rematch with all the bosses. Kaboola was tricky because I couldn't manipulate him properly so he fired more bullets compared to the first match but I managed to keep the lag to zero anyway. I had bad luck with Dedede. I couldn't manipulate him to always do his jumping move, otherwise I could save 1 or 2 seconds perhaps.

Tricks & Glitches

Changing RNG

Creating a small star sprite by landing or bumping into a wall has an influence on the randomness of the game and it can be used to change boss patterns. Sometimes pressing left & right seems to manipulate luck too, mysteriously.

Instant activity

If you inhale an enemy from afar there will be a notably long delay where you can't jump or inhale again. If you swallow your inhaled object or enemy and then inhale something from a close distance (or from below / above) you will have the object inhaled and the delay is skipped! You can instantly spit your star, swallow the object or jump. This is very useful for bosses and also allows for some neat tricks (using all three bomb drops of Kracko or using both stars from Dedede's stamp). The effect of this glitch is canceled if you float or inhale normally.

Damage boost

Usually, damage boosting is equally fast compared to walking. It may sometimes save some time if it doesn't create much lag. It saves notably more time, however, if there is a door or a warpstar at the end of the boost.

Keeping an animation (no time-saver)

If Kirby bumps into a wall or lands or inhales an enemy, you can keep the resulting animation by alternating "left" and "right".

Moonwalk (no time-saver)

If hold left+right, Kirby will walk in place without any horizontal movement. If you let go, he will walk into the direction he was walking into before. You can moonwalk if you press left+right every ~5th frame.

About lag reduction

Holding "up" creates very much lag for some reason, so I use the A-button to float upwards. Pressing "up" for 1 frame cancels the explosion sound effect after beating a boss and reduces much lag.

Usually, the more enemies there are onscreen the greater is the lag. So I swallow many enemies in my path. I always tried to track down the most efficient and lag-free way of doing something. For example, in room 6 of level 4 (where there is a large row of blocks) I needed to manipulate the RNG so that there are few falling stars, making for less lag, so I jump and land once (see: Changing RNG). I needed to shoot my fire in the earliest frame each time and I investigated how to gain distance without lagging to much. If I stand still and hold B, the lag count might be 600 after a certain amount of time, if I proceed to the right for 1 frame and stand still it might be 604. If I stand still for 1 frame and then proceed for 1 frame the lag count might be 601, so this is the input that I want to use.

When landing, there will be a star sprite. This will create much lag if there are many enemies onscreen. If "down" is pressed just before landing there won't be a star sprite. This is used in many places to reduce lag. The RNG won't change when using this trick.

Changing the RNG sometimes has an influence on lag behavior. For example, when entering a new room, it might be full of annoying lag but if I jump and land in the room before it might clear all the lag, mysteriously.

Possible Improvements

There are 3 "flaws" in general in this run that come to mind. First of all, there is the significant lag in level 4, starting from the middle of room 2 until the end of room 6. If done optimally ~3 seconds worth of lag could be shaved off. Secondly, the spare point of health in level 4 could be used for damage-boosting, saving 2~5 frames. Lastly, the RNG for Dedede could be improved somehow, allowing for a battle where Dedede jumps more often.

Also, I wasn't able to find X-/Y-Position or sub-pixel memory addresses. This game has sub-pixel behavior but despite not having a memory address at hand, I still optimized the sub-pixel where applicable, by using trial-and-error. Maybe the lag behavior and RNG can be investigated in memory, too.

Closing words

Here is a Youtube link: http://www.youtube.com/watch?v=wTF9hme6WZI
Have fun watching the run.


Baxter: Accepting as an improvement to the published movie.

flygon: Will try to upload encode to Archive.org, is smaller then Aktan's encode mainly in audio, talk to me for the long story.


Similar submissions (by title and categories where applicable):