Kirby and the Amazing Mirror 100% TAS

It's been almost two years since I submitted my second TAS on this site, the any% run of this game. I'm very happy that I was able to finally finish this project. :D
I began working on it in March 2008 when girfanatic501 and Sir_VG were discussing about a potential 100% run. Actually I considered working on that run long before but I didn't quite know the exact requirements to achieve 100% on the file. There was a time I started a thread at Kirby's Rainbow Resort in hope to get the information I wanted, but that was not the case. I also asked Sir_VG over at SDA at some time. I can't really remember but testings and discussion have shown that the following requirements need to be met in order to achieve 100%.
  • Open every treasure chests
  • Visit every room
  • Press every big switch
  • Activate every lever
  • Collect every Mirror Piece
  • Complete the game

Objectives

  • Takes damage to save time
  • Aims for fastest time
  • Manipulates luck
  • Abuses programming errors in the game
  • 100%
  • Genre: Platform
  • Used emulator: Visual Boy Advance 1.7.2 rerecording v19.3

Why Japanese ROM?

Because at the time I started the project, just like the any% I thought the japanese version would have advantage. I thought hits were more powerful or enemies and bosses were weaker. Floogal found out that this was only the case with the Missile ability, which was weakened in the US and EU version for no apparent reason. I was already 50.000 frames in when he discovered this so I didn't bother, given the fact that there was only very little text, in the ending sequence. As a side info, the intro is slightly faster in the Japanese version.

How I approached the project

Definitely, the first thing to do was to create a map. I took the ones from GameFAQs and put them in one large BMP. I played through the game and took a ton of notes. For instance, I marked every room which contained a treasure chest with a red circle, every instance which offered two special enemies, and much more. Sometimes, with complicated rooms I also drew the layout. I connected the warpstars and their landing point and rooms that went from one map to another. And for some parts I worked out solutions while still making the great map. Creating this map took over a month, and I was still optimizing it all the time.
While TASing the game, I never had in mind which route to take throughout the whole game. I always ascertained that there wasn't a better way to go. Planning was very hard and there was never a time I wasn't questioning a part of a route or a certain solution to a problem.
Producing routes with clearly defined "input abilities" (abilities I need for a certain route) and clearly defined "output abilities" (abilities I have acquired after a route is done), I began this just some time after I reached Carrot Castle in the run. I worked out said routes in June 2009 and it made running the game a whole lot easier. All I had to worry about was to make sure that I somehow got all the abilities I needed for certain routes and that after a boss fight I was on a convenient place in the starting room (If you win a boss battle you get the mirror piece of it and are placed at the door at which you began your route).
Here's an easy example of how I created a route while relying on certain facts: After having beaten king golem, you have access to the mirror gate of Rainbow Route. You have two potential routes to go. One starts with a wheel enemy in the beginning of the first room, goes down to Olive Ocean and other areas. The other goes up towards Mustard Mountain. Now which one shall I take? Hmmm. Let's take the latter one, because I can save the wheel from the king golem fight and I practically "save" one instance which will give me wheel later, at a time at which I have lost my current wheel. This was a rather easy example, planning the routes went much more difficult than that!
The great map looks like this. It may look like a whole mess and it has german notes at some parts. http://img525.imageshack.us/img525/8035/kam102.jpg
The fact that I worked everything out all by myself and no-one else helped (aside from the ones who posted in the thread and motivated me) is what now makes me truly proud. This run is a great accomplishment and it means a lot to me!

Influences

I wasn't only working on this run. There are lots of other projects I've been running that are not finished yet. However, the game I have touched the most aside from Kirby Amazing Mirror was Kirby Superstar. I planned not only to do the 100% run of Kirby Amazing Mirror but also of that game. My attempt with the greatest progress reached till Metaknight's Revenge, but then a Japanese TASer named smns72 popped up and his new Spring Breeze run was of such high quality that I was forced to start over because I didn't want to make a half-assed movie at that time. I was impressed by his high level of optimization but I didn't want to give up on the game although I never played it or even possessed a SNES. I first learned about the game when watching Nitsuja's run here on TASvideos. Feeling that it would be a great thing to do, to obsolete his outdated any% with a new glitched 100% run of the same time, I continued to work on it. The main problem was that it seemed almost impossible to communicate with all the Japanese TASers and gocha oftentimes acted as a kind of middleman to carry WIPs and new TASes to either side, while not being an active Kirby Superstar TASer. I was able to communicate a bit with one over Youtube and another in a japanese forum, I was even suggested to join a certain IRC channel but I wasn't able to connect to it and I finally gave up on the game - After having been forced to start over more than two times, often unnecessarily due to not having been informed about new strategies. I found it to be bothersome and tedious to go on like this. I don't blame anyone.
Right now, a TASer named OGA is known to work on the any% along with a few other japanese TASers and I'm really looking forward to his speedrun. It will be one of my all-time favourite TASes.

Tricks and Glitches

Now to come back to Kirby & The Amazing Mirror. I present you most of the tricks and glitches that are used in my speedrun.

Best way to accelerate

Just acquire running state and jump. If you are in a situation where you can slide all the time and your last slide will be canceled, it is often faster to do that.

Best way to move forward

Best way to move horizontally is, aside from sliding, to jump all the time. Running is slower than jumping by a small margin. If you slide off a platform and are now about to land it is often best to blow up and gain running state this way, because just landing and gaining running state will slow you down. But sometimes it is equally fast to just land, walk for one frame, and then acquire running state. You can run by pressing >, v, then >.
Sliding is faster than jumping all the time, if your last slide is canceled by a ledge. My testings have proven that it is best to be sliding for 10 frames before getting airborne.

Driving through enemies

Due to how the game works, if you drive through an enemy, you will get 4*3 or 2*3 hitlag frames most of the time.
If you have wheel ability acquired and need to navigate through an enemy, it's sometimes possible to reduce the hitlag frames from 4*3 to 2*3. This means reducing 4 hits to 2 hits, each hit lags Kirby for 3 frames. It's dependant on whether the ground is even or not, the size of your enemy, and sometimes also the enemy type and movement. For example, it is sometimes impossible to get a 2*3 outcome although the enemy is small and not moving. As far as I can remember, I had trouble with these in this matter.
Reducing the hitlag is done by altering Kirby's position, often at the beginning of a room. For an example, you can move to the right for 3 frames, and reduce 4*3 to 2*3 and thus save 3 frames.

Keeping momentum while blowing up

If you let go of the directional buttons, you won't get slowed down when blowing up.

Skip the backwards movement when going into wheel form

If you have momentum to one side and are facing to the other side while bumping into a wall, you will not lose your momentum. This way, you can jump against obstacles without losing momentum. But moreover, if you are in this state and are now starting to go into wheel form, you will not move backwards. This works only as long as you are still nearby the wall.

Luck Manipulation

You can luck-manipulate certain enemies to go out of your way or to otherwise behave as you desire. It's often dependent on timing, otherwise on your movements (if you are running, how many times you crouch while running, if and how many times you go into the opposite direction while running). Sometimes I wasn't able to get the outcome I wanted, even by delaying for a few frames performing said movements. It is probably possible to play through the game with perfect luck, but that would mean redoing tens of thousands of frames all the time. I simply couldn't bother. If I had planned to only accept perfect luck all the time, it would probably have taken another year or more to get the run done. This doesn't mean that the run is full of bad luck, of course.

Climbing ladders faster

When climbing ladders, it is fastest to climb for 6 frames, then let go or wait, then go on for another 6 frames.

Skip the 'spitting puff of air'-animation (glitch)

Sometimes, the game instantly sets you to the normal state after you press b while you're floating. So you are instantly capable again. If you are not fully blown up yet, you can still use your ability's actions or inhale. So you can combine this trick with the 'skip backwards movement when going into wheel mode'-trick if you are nearby a ledge.
The rate at which this bug happens is set, but kind of dependent on your movements. It will work sometimes if you are floating in a direction, but if you quit proceeding into that direction it won't work anymore for that specific frame it would have worked at. I used trial-and-error for this trick.

Skip animation after going underwater

When going underwater, you can't move for ~10 frames. Sometimes though, you can instantly move. This happened somewhere at frame 47100. I don't have an explanation for this, and since it happens very rarely it doesn't seem very abusable. That's why I didn't go for using this exploit.
EDIT: It happens if you have proper y-position while driving into a body of water. If your y-position is good, you will land and start driving on one "block" of water which allows you to skip the delay. However: - driving into a body of water with "delay" means you'll have constant speed of 316 which is the fastest for swimming. - driving into a body of water while skipping the "delay" means you need to build up speed until it's 316. So after all, this is slower and should be avoided.

Going through cannons

You can move towards a cannon, then duck and glide through it. That's because the hitbox is somewhere in the upper half of its sprite. Not really a trick but good thing to know.

Inside the ceiling.

Well, not completely but you can somewhat 'enter' a ceiling with proper positioning. You are then stuck for a short time and subsequently released. You can stay inside the ceiling using Missile and UFO, but you will get ejected when pushing towards the ceiling. Can be used for various situations...

Skip dark Kirby

Sometimes you don't encounter Dark Kirby, so you basicly don't have to deal with him and thus skip him. It seems to be another random bug though. But luck-manipulating it to happen must happen about ten rooms before this encounter, and the luck-manipulation itself takes a ton of idle frames, so I didn't use it.

Gain distance with Kirby-grabbing enemies

Couldn't think of a better name for those enemies. Some enemies will grab kirby or suck him in, if such enemies are hit at the same time or after they grab Kirby, they will let go of him. Works with Phan-phan and Droppies (the elephant miniboss and the yellow ability-stealing enemies).

Get Wheel or Fight-ability from golems

Golems are obviously stone enemies and will give you stone when absorbing their ability. Some golem enemies, however, will give you wheel or fighter. It depends their current movement. Not every golem can perform all the available movements. Some can only use a stomp attack (stone), some can only use a rolling attack (wheel), and some can only use a punch (fighter). But I can recall there being one who was able to perform all the available actions. I think he was in room 22...

frame-specific comments

This section covers parts I consider improvable, parts that I find funny or that worked out well. Feel free to watch the run while reading these.
950: It's faster to activate the switch with a puff of air.
1750: After getting wheel, it's faster to slide through the blocks, then jump over the big waddle dee.
6000: It's faster to beat Mr. Flosty with wheel, but only with good luck-manipulation.
14600: I didn't press the second switch here because I thought it would save time. I planned that I will come back with UFO later and press that switch and as a side-effect I could head for the rooms to the right of which one needed a far reaching ability.
By the way, feel free to ask if you are wondering why I took a specific path while I could have taken another.
21700: Yeah, surprisingly sliding is faster here by a small margin.
33230: I don't even know why I kept this part. I think I had decided to keep it because it was faster by one or two frames, but in retrospect, it seems a whole lot slower than going up there without using the skip-wheel-backwards-movement trick. This is one of the biggest flaws in the run, I suppose.
35100: I love this part. You are off-screen and the game can't keep up with you :D
39000: Got real lucky here that Crazy hand decided to come closer, finished both hands off in one blow.
75300: Here is one of the bigger mistakes of the run. I mix for bomb ability... by getting two bomb enemies together. Could have just swallowed one enemy here.
83500: This part looks cool.
101000: This is just why I like TASing Kirby Amazing Mirror. You can be so very creative with your decisions and boss fights, it's really amazing. :)
105000: Now to go for that second switch in Mustard Mountain. I don't really know if it's the fastest way, going for the second switch with UFO. Maybe it's faster to press the second switch along with the first one, and somehow mix UFO or another far reaching ability in the room to the right of the room with the second switch (sigh, I should use a map for references. If you are really interested, just ask for more info. I'll be in IRC and on the forums).
130000: Beware the super-complicated Peppermint Palace rooms. Really, this map is full of treasures and complicated rooms...
147000: Luck-manipulating this purple guy to do the pan-throwing move would possibly save time since he might not be in the way later, in the section with the Pengies. He doesn't disappear after he's gone off-screen.
~159000: This is one of the most questionable parts in the run. I get Smash and navigate through a underwater room with breakable blocks that I could have broken with Hammer for a shortcut. I thought that I would gain this time back from the section where I used stone to fall faster and from the faster boss fight. But I think the fastest way to get the Mirror Piece from Gabriel (shark boss) is just to go there with Missile and get the Parasol ability there, like in the any% run.
166100: Too bad comboing the Flamer towards the Minny is impossible by a few pixels, so I could have gotten UFO from that mix.
167000: Quite a surprise that Cupid serves a purpose in this run, hm? :D
~169000: The Kracko (cloud boss) battle is another questionable part. I couldn't manipulate him to do the lightning move that makes him come closer to the ground so I can finish him off earlier. Well, I could manipulate him but at the cost of having touched the ground in stone form mid-battle, which costs time because Kirby goes up in the air if he transforms back while on the ground which ... costs time. In retrospect, I should have spent more time trying to manipulate him.
174000: Now to go for the treasure I left in some room of Candy Constellations. It might be able to save some time by not having to visit this room and having to wait at the warpstar, if you go for that treasure while you first visit this map, even at the cost of a good placement after the boss fight in this world and at the cost of your wheel ability. I originally planned to go after another treasure on the same map, but that was slower than to L-warp out and go to the gate of that map.
179000: I once forgot to visit the underwater room after this treasure, so I had to redo 15000 frames after I found out. The biggest fear I had while making this speedrun was that I might end up not getting 100% for some weird reason - even though I followed all the criteria - or because I failed to visit one room. I can remember me sitting in front of the emulator in a panic and checking if every room I should have visitted according to my plan flashed after this incident.
181300: Welcome to the most annoying part in the entire speedrun. The buddy kirbys I call here need to be in a good position so that at least two of them are inhaling the big block. I tried to manipulate them for two or three months, although I didn't try every day. That was a real pain in the ass... I kind of gave up to get a perfect luck situation here, so I inserted idle frames. And it worked! I found out that the way the buddy Kirbys appeared after the phone call was somehow only dependent on timing. That wasn't it all though, I needed to 'manipulate' them again to be not in the way after I visited the room where I mixed wheel... well I tried until it worked. Lol.
I was happy it finally worked out well.
Stay tuned for the end

Generally

The way I controlled missile throughout the run is not optimal. I noticed rather late that Missile Kirby's diagonal speed is basicly horizontal and vertical speed added together, so I don't think you have to navigate nearby walls as I did, you can gather more speed for curves and you can possibly perform weird movements for straight distances (although I don't think that would be particularly entertaining).
When I discovered this I didn't want to change the way I navigated Missile to keep the constancy in the run. I wouldn't be surprised if you could save some seconds with this new way in missile navigation.
Also, this run is theoretically improvable by >1 minute if you could somehow luck-manipulate your buddy Kirbys to get Magic and use it all the time, so you can acquire the abilities you need out of the blue. But that requires insight into the inner workings of the game and I'm not this technical.
Also, you could save many seconds by using soft reset (after acquiring treasure or mirror pieces).

Future

I don't plan to do any new Kirby Amazing Mirror run in the near future, especially will I not do a new 100% run. This was way too time-consuming... :)

Closing words

Thanks to everyone who posted in the Kirby Amazing Mirror thread, and thanks to Comicalflop for motivating me. Also, I'd like to thank the Japanese Kirby Super Star TASers (smns72, OGA, WaddleDXsp, yukihis, persona4432, and everyone I forgot, lol) at this point, even though they didn't actively contribute to this submission, I gained quite some experience while TASing Kirby Super Star and trying to improve their work. Thanks to girfanatic501 for getting this 100% idea rolling in the first place and for finding the wheel-from-golem trick. Thanks to SirVG for contributing in the thread.
Hope I didn't forget something important. Otherwise, enjoy the run. ;) If you've got questions, ask them.

adelikat: Accepting for publication along side the existing publication as a 100% category.

Raiscan: Sucking up run and absorbing its abilities.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
Joined: 6/4/2009
Posts: 893
omg it's finaly out, will watch this tomorow
gocha
Any
Emulator Coder, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I think it was hard to make a route for a large map. Really good job, MUGG. As for Kirby Super Star, it's sad that language barrier drains your motivation. Anyway, an any% run is advanced by smns72 and OGA and they're working on Revenge of Meta Knight at present.
I am usually available on Discord server or Twitter.
Player (79)
Joined: 7/7/2008
Posts: 873
Location: Utah
Confound it all! I can't find a (J) version of Kirby & The Amazing Mirror anywhere! Encode please?
Joined: 8/23/2008
Posts: 417
Captain Forehead wrote:
Confound it all! I can't find a (J) version of Kirby & The Amazing Mirror anywhere! Encode please?
Note that the rom name for the (J) version is not the same as the American name, and it is listed in the submission info page.
I will not use self-reference in my signature.
Player (79)
Joined: 7/7/2008
Posts: 873
Location: Utah
I know, that's what I've been trying to find but I can't find it anywhere.
Joined: 8/23/2008
Posts: 417
This was a fun little watch. I mean, it's a Kirby game and 100%, so maybe more wheel than I'd like, but planning seems solid and it really does make a big game look small, so yes vote from me. Question: any analysis of the randomness of the roulette wheel? There was a time or two that you had to wait until near the end of the roulette to get what you wanted. No way to manipulate that, I'm guessing?
Captain Forehead wrote:
I know, that's what I've been trying to find but I can't find it anywhere.
I found it very easily. Sorry, obviously I can't say any more than that. If I were you, I'd just keep looking.
I will not use self-reference in my signature.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Question: any analysis of the randomness of the roulette wheel? There was a time or two that you had to wait until near the end of the roulette to get what you wanted. No way to manipulate that, I'm guessing?
The roulette is dependant on which two enemies you are sucking in, and in which order (EDIT: might actually be dependent on which is the first enemy you are sucking in). So there's no luck involved and I tried to make the best of the situation all the time.
I know, that's what I've been trying to find but I can't find it anywhere.
Try using quotation marks (").
Player (79)
Joined: 7/7/2008
Posts: 873
Location: Utah
This is starting to tick me off.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
At first I was skeptical about enjoying a run that aims to go through 100% of the rooms, since that usually means annoying things like entering and leaving rooms quickly or repeating the same entry areas a lot. I was pleasantly surprised to see how much variety the game has and how much those earlier annoyances didn't come up much. It was also fun to see the run use other powers, like UFO and Smash. Very nice exploration through this very colorful game. Also, I still love watching Missile get used. It's clear that a TASer has so much more control over it than the average player.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Joined: 6/4/2009
Posts: 893
amazing run, fast paced and the backtracking is almost invisible for non used eyes. the game is very colorfull and you use a lot of different powers easy yes vote
Former player
Joined: 5/24/2005
Posts: 405
Location: France
I' do not TAS anymore (for now), but I'm still really happy to come back here from time to time and see such good runs ! This Kirby run of yours is truly amazing and that planning must have been a considerable work! I can recall when I was playing this game myself that I never understood the routes as every world was link with any other world... Yes vote of course and really great work !
Not dead yet... still very busy... damn...
Player (79)
Joined: 7/7/2008
Posts: 873
Location: Utah
I finally found the rom, will watch it when I get the chance to.
Sir_VG
He/Him
Player (40)
Joined: 10/9/2004
Posts: 1913
Location: Floating Tower
This run is making me rethink my 1P and 2P route ideas for 100%. Quit crushing my dreams, MUGG. ;_;
Taking over the world, one game at a time. Currently TASing: Nothing
Joined: 2/11/2007
Posts: 45
Location: Iowa
For the record, Hoshi no Kirby - Kagami no Daimeikyuu (Japan) (Rev A) also works. It runs a little long, but it was always entertaining. The planning, technique and execution are all star-worthy. Very nice job!
Joined: 1/27/2008
Posts: 236
Location: Somewhere
I know, I know, I haven't been on here at all lately (again >_>, go figure) but my personal has caught up to me (again XD) but I ope I can start TASing again soon. In the mean time, I LOVE THIS RUN SO MUCH <3. Best run I've seen in a long time and a great run to see toget me back into the TAS scene. Great work, obvious yes!
See Youtube page (GIRfanaticTAS) for all runs and stuff.
Emulator Coder
Joined: 1/12/2007
Posts: 95
I enjoyed watching that quite a bit. It wasn't long into the run that I started thinking about how confusing the route was, which suggests a style of planning that would take an interested mind. Seeing the run completed in less time than it originally took for me to understand the game's objective was also pretty interesting.
Joined: 9/29/2005
Posts: 46
Location: Denver, CO
Holy crap that was awesome! Honestly, I'm amazed at this run. As a long-time fan of the series, and someone who rather enjoyed this game, I love seeing it be torn apart in such an entertaining manner. Certain yes vote from me, looking forward to any improvements to this.
"If any man is not free, then I too, am a small pie made of chicken"
Joined: 6/23/2009
Posts: 150
I watched about half of it. It looks really well done. Perhaps a bit long, but still very nice. Voting Yes.
Joined: 4/29/2005
Posts: 1212
I gave this a yes vote. It was intersting to see more than 3 power ups used in a Kirby TAS for a change. xD
Editor, Experienced player (734)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Yes vote. Any plans on improving the any%?
Homepage ☣ Retired
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3933
Location: Germany
I began to work on a new any% version but I don't plan to continue it right now. I'd actually like to see someone go ahead and abuse the technique I described near the end of the submission text, having the CPU-controlled Kirbys obtain Magic all the time and use it to get you an ability roulette, resulting in you getting a desired ability when you need it out of the blue. I know that the Kirbys can acquire abilities even though there wasn't a single enemy in their specific room, but that's already it. With that said, I don't think the current any% is outdated that much anyway. I'm working on other projects for now.
Joined: 4/17/2004
Posts: 275
Yes for variety, planning, and awesome. Why hasn't this been published yet?
Joined: 7/2/2007
Posts: 3960
Because our publishers are very busy people. They'll get to the movies when they can.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [1359] GBA Kirby & the Amazing Mirror "100%" by MUGG in 58:10.02