Submission #2591: Chef Stef's GBA Mario vs. Donkey Kong in 42:19.48

Game Boy Advance
baseline
VBA-rr
152369
60
27995
Unknown
Mario vs. Donkey Kong (U).gba
Submitted by Chef_Stef on 3/2/2010 6:29:01 AM
Submission Comments
Mario vs. Donkey Kong any% TAS (v2) by Chef Stef
Uses VBA re-recording 19
Enable L+R/U+D
This TAS aims to complete the standard set of levels in Mario vs. Donkey Kong and reach the credits as quickly as possible. While the game scores your performance on a level (based on time, and points collected), this mode is ignored in this TAS. This version is 9176 frames faster (2 minutes and 22.9 seconds faster) than my previously published any% TAS through more precise play, better trick and glitch application, and the discovery of several new tricks and strategies in many levels.
Mario vs. Donkey Kong is a fairly complex game (though it may not be obvious when looking at some of the earlier levels), so it was not uncommon that I would discover a completely new strategy to beat a level much more quickly than before. I had also suspected that my previous attempt at this game was sub-optimal due to a variety of small, but common mistakes I made (e.g. autofiring A to skip past menus instead of finding the optimal frame). Because of this, I set out to make a v2 TAS that would fix these flaws and push the game to its limits. People familiar with the game might be surprised by some of the new routes I take through the levels. However, this is most assuredly a puzzle game, and people seeing "Mario" in the game title may make assumptions about how this game looks and plays. My advice to them is to forget that this is a "Mario game" and just enjoy it for what it is - a really great puzzle-platformer with Mario styles and themes.

The Story/About This Game

Donkey Kong was watching the television one day, when he saw an advertisement for the new Mini-Mario toy. Falling in love with the Mini-Marios, DK rushed to the nearest store, only to find them sold out. In a furious rage, bursts into the Mini-Mario factory and steals a bag of the toys. Coming to the rescue of his own toy company (probably worrying about his quarterly earnings at this point), Mario intercepts DK outside the factory. DK runs away, forcing Mario to give chase and try to get all the Mini-Marios back.
Mario vs. Donkey Kong has very good graphics for a GBA game. The environments are really colorful and detailed, and add a great deal to the atmosphere of the game. Mario's adventure takes him through his toy factory, a Donkey-Kong style jungle, a volcano/fire land, a ghost house, a mystical forest, and a city during twilight. What is, to me, fairly unusual for a Mario game is that it gets just a bit surreal in the mystical forest and twilight city levels. The music really sets the mood here, as well, and is quite a change from typical Mario games.
In each of the six worlds, there are eight standard levels to play through. The first six are each split into two parts. In the first half, Mario must find a key somewhere in the level and take it to the door. In the second half, the goal is simply to reach and pick up the Mini-Mario at the end of the level. The seventh level is different in format and has Mario guiding six Mini-Marios to the toybox at the end (though only one has to actually make it, a fact that I exploit to save time). The eight level is a battle against Donkey Kong.

Gameplay Mechanics/Moves

Unlike most Mario games, Mario has a variety of methods for moving and jumping. Here's a summary of each:
  • Backflip - When Mario turns around, he spends some time pivoting on one foot. Jumping during this pivot will make him do a backflip, and is about 3 times as high as a regular jump. It has the benefit of being extremely quick to execute, so it's the best way to jump up to high ledges as quickly as possible.
  • Handstand - Done by jumping while crouched down. In this state, Mario walks on his hands and can deflect certain falling objects (such as bricks) with his feet. Since Mario walks more slowly on his hands, it's usually faster to just avoid the falling objects. However, this move is an important lead-in to the double jump and somersault.
  • Somersault - After doing a handstand, jumping will give a larger jump than normal. Doing another jump immediately after landing this one will make Mario do a somersault. The somersault has great horizontal range, and is the slightest bit higher than a backflip. However, it takes a long time to set up, and backflipping is usually much faster.
Some other gameplay notes:
  • When Mario falls, if the vertical distance is too great, he will be stunned and be stuck on the ground for a few seconds (Mario can also simply die if the fall distance is really large). This is obviously a big time-waster, so I sometimes have to get closer to the ground before jumping the whole way. If you think I'm unnecessarily stopping on platforms on the way down from some place, it's because of this limitation.
  • Mario is actually fairly hard to control once he's in the air. Once you give him forward momentum, you can only change his direction once (after the apex of the jump). This is the reason for some of the strange positioning while jumping in a few places.
  • Mini-Marios generally follow Mario around (based on his horizontal position), but can be manipulated to some extent.

Major Tricks/Glitches

Key-Climbing

When standing next to a wall with a key, face away from the wall and do a standing jump straight upwards. With the proper timing, throw the key, and it will clip the wall and get stuck. This creates an extra "platform" that Mario can then backflip up to and stand on. I use this in a couple of places (6-3a and 6-5a) where I need to get both Mario and the key over a high wall. It seems like this trick should be more useful, but it is unfortunately very limited in its application.

Midair Jumping

After picking up an item or enemy from above, throw the item/enemy while Mario is falling down. While Mario is in his "throwing" animation, the game sets the ground flag (for some reason) and allows you to jump. This trick is extremely useful because, among other things, it allows you to cross large spiked pits by repeatedly throwing an item/enemy and jumping across.

Jumping Through Enemies/Projectiles

Mario is immune to damage from most projectiles and floating enemies while jumping upwards. I have no idea why this occurs, but it is very useful for avoiding enemies and getting through levels faster.

Autofiring Near Ropes

Normally, Mario will grab onto a rope automatically if he jumps towards it, but autofiring A or B prevents Mario from grabbing the rope. This is a good trick when there are several vines in a row and I need to traverse them without grabbing each one, or when I want to jump to the floor without grabbing onto any vines.

Minor Tricks/Glitches

Standing Jumps

When moving from a stop, it takes a few frames for Mario to accelerate to his top running speed. Doing a standing jump instead will instantly accelerate Mario to this top speed and save a few frames each time.

Climb-Canceling

Pressing the B button while on a ladder or rope will make Mario drop from it and fall to the ground. This is very useful because it usually allows me to get off the rope/ladder and to the ground faster.

Ladder/Rope-Jumping

Since Mario climbs ropes and ladders very slowly, it is usually much faster to repeatedly jump your way up them. In the case of ropes, there are two methods of climbing used:
  • 2-rope climbing - If two ropes are next to each other, Mario can grab both and climb upwards at a fast rate. This is the fastest method for climbing, but it has a few frames of setup time and obviously requires two ropes to be possible.
  • Rope-Jumping - After doing a vertical jump from a rope, Mario can grab onto the rope at a higher point as long as he is moving forward at the time. The optimal strategy is to jump straight upwards, then direct the jump forwards just before the apex of the jump.
For ladders, you can just repeatedly jump up as soon as Mario grabs the ladder again. At a certain distance from the top, you can also jump upwards and land on the ground much faster than climbing there.

Rope-boosting

When Mario grabs a rope from the side, he gets boosted forward a few pixels. This is used in most levels with ropes to save a few frames each time.

Ceiling-Boosting

Whenever Mario's head hits a ceiling, he gets boosted forward by a pixel, saving a frame each time. By autofiring the down button, this fact can be exploited while on a conveyor belts with a 1-block ceiling to boost Mario forward much faster than usual.

Level-by-Level Comments

From here on, I will discuss the improvements I made in each level. I will assume that anybody reading through has seen the previous TAS for comparison, so this list is mainly for those interested in the improvements and changes in strategy.
The improvement for each level is listed in parentheses after the level name. Each of the 2-part standard levels is split into “A” and “B” section below, with the improvement for each tracked separately.
Note that in addition to the (total of) 8574 frames of in-level improvement, I also gained another 602 frames from out-of-level improvements, mainly from selecting menu options optimally instead of just autofiring a button, as I had done in v1 of this TAS.

World 1 - Mario Toy Factory

These are meant to be introductory levels, so there's usually not very much action compared to later worlds. I still managed to save a decent amount of time in many levels, however.
580 frames saved in this world.

1-1

A (3) - Really simple. There's not much to say about this level, obviously.
B (-1) - This is one of two places where I lost time compared to v1. Here, it was due to an extra frame of lag.

1-2

A (126) - I saved a small amount of time climbing the ladders at the start. The time-savings were enough to get past the oil can without having to do a handstand and double jump.
B (74) - I avoided the extra backflip and handstand/double jump I did in v1.

1-3

A (4) - You can really see the ceiling-boost trick in action here as Mario zooms along the first part of the level.
B (4) - This one is just a simple series of backflips to the finish.

1-4

A (22) - I threw the key onto the conveyor belt in a more convenient position than before, making it get to the end faster.
B (53) - I was able to hop onto the wire and jump to the upper area much earlier by optimizing the start of the level and jumping off the wire before the electricity could get to me.

1-5

A (7) - This level is now a bit more precise, but is otherwise unchanged from before.
B (51) - I found a much more direct route to the Mini-Mario this time. Three backflips get me to the upper level really quickly.

1-6

A (105) - I made a number of small optimizations to the early part of the level, and this allowed me to get past one of the falling brick cycles instead of having to wait for it.
B (15) - The strategy here is unchanged from before, though again, I optimized a few things throughout to save some time.

1-MM (88)

This level is fairly boring compared to later Mini-Mario levels. In each of these levels, I only need to take one Mini-Mario to the exit, so the others get left behind and sometimes sacrificed at strategic times. The time saved here was from better manipulation of the Mini-Marios.

1-DK (29)

I made some minor movement optimizations, but the strategy is completely unchanged. I do find it funny that Mario can press Donkey Kong's colored switches himself, and this turns out to be very handy for getting the colored trash cans to reappear much sooner than otherwise.

World 2 - DK Jungle

This is your standard jungle-themed world. Interestingly enough, it's styled after Donkey Kong games rather than Mario games (probably because Jungle levels are pretty rare in Mario games). This world had some great improvements from better vine-based movement and other tricks.
1358 frames saved in this world.

2-1

A (10) - This level is a really straightforward introduction to vines, so I didn't have to change the strategy at all.
B (369) - Last time, I missed a pretty obvious shortcut – somersaulting over the spiked wall and straight to the Mini-Mario (somebody pointed this out in the submission thread of the last version). The trick saved a lot of time here, since I didn't have to go all the way around the rest of the level.

2-2

A (69) - Basically unchanged from before, though I did save some time from rope boosting and more precise jumps. Some of them may look suboptimal, but for various reasons they are necessary to save time.
B (55) - I saved some time by not repositioning the barrel at the end; it turns out that a somersault gives just enough distance to jump straight up to the mini-Mario.

2-3

A (13) - I used the same strategy as before here, with some extra precision while jumping.
B (1) - Once again, this level is the same as before. Levels like this aren't too interesting because the developers intentionally put these kind of shortcuts into levels while leaving the slower paths for players who are still learning the techniques.

2-4

A (13) - This level is supposed to have you dodge the bird while getting the key to the lower level, but I finish it so quickly that the bird doesn't pose a threat at all.
B (30) - I had already found the optimal strategy for this level last time, but I saved some time by not jumping onto the ground before reaching the end.

2-5

A (575) - This level had one of my favorite improvements, and was probably the hardest to achieve. In the previous TAS, I had to wait for the middle platform to come down a second time because I couldn't get there soon enough. This time, I optimized the strategy and just barely made it in time to catch the platform on its first cycle (about a 3-frame margin of error).
B (9) - This is one of those levels where you're supposed to find a strategy to get as many points as possible. Here, the strategy would be to drop the fruit on the enemies and grab the presents. Obviously, I don't do any of this and instead go straight to the Mini-Mario.

2-6

A (55) - I used the climb-cancel trick to save some time when dropping from the long rope. This level also has the first use of the midair-jumping trick to cross the large spiked pit with the key.
B (27) - I used the ropes to jump over the piranha plant instead of doing a backflip (which is slower).

2-MM (14)

I optimized Mario's movement at the beginning and also manipulated the Mini-Marios s a bit better, but it didn't save very much time.

2-DK (118)

I used a new strategy on DK: Instead of haphazardly backflipping towards the fruit, I climbed onto the ropes took advantage of Mario's positioning to get to each piece of fruit with plenty of time to spare. I believe that this level cannot be improved any further because I hit DK at the first possible frame each time, and the last hit puts him as close to the side of the screen as possible. For fun, I also cancel DK's “getting hit” sound by stunning Mario on the floor (this happens whenever he falls too far).

World 3 – Fire Mountain

Here's where the levels start getting really interesting! There's a lot of lava and fire-based enemies in these levels, and some of the levels are starting to get more complex. This world had a few levels with a large amount of time saved, but this world's levels tend to be a bit cramped in terms of strategy, so sometimes I couldn't save as much time as you would think.
849 frames saved in this world.

3-1

A (8) - I saved a small amount of time by throwing the key near the door before jumping off the rising platform in the middle (I was able to jump earlier with a backflip as a result).
B (5) - I replaced the backflips with somersaults to get to the upper platforms a tiny bit sooner (Mario jumps slightly higher in a somersault compared to a backflip).

3-2

A (3) - I have to wait for the platform at the end to cycle, so the strategy is basically unchanged.
B (27) - Again, the platform cycle means that not as much time was saved, even though I optimized the strategy a lot. The actual time saved was because I set up a somersault off the last platform towards the mini.

3-3

A (143) - I had initially rejected the idea of taking the left path because you need to somersault to go that way, but the left path turned out to be much faster than the right path because the ninji there was in a great position.
B (3) - The strategy here is really simple, so there wasn't much to improve.

3-4

A (283) - This level had a really funny improvement – I discovered that Mario can enter the door from one of the moving platforms instead of having to stand on solid ground (also, if you look closely, you'll notice that Mario puts the key into part of the door instead of the keyhole). I also took a slightly different route this time, but there's no time difference between the two because I have to wait for the platform anyway.
B (43) - I basically used the same route as before, but optimized it a bit better. I also used the autofire-through-ropes trick to skip an extra rope at the end.

3-5

A (78) - I used a somersault to get to the key. Otherwise, not much has changed here (it's a short level).
B (2) - I picked up the yellow present for fun (it didn't waste any time to do so); otherwise, this level is unchanged.

3-6

A (23) - Obviously, I have to wait most of the time for the lava to drop. So, I jump around a bit and get really close to killing Mario in the lava when there's nothing else to do. The time saved was from optimizing the ascent once Mario has the key.
B (75) - Instead of climbing the ropes at the start, I just backflipped up to the upper platform. I also used rope-boosting to save a few frames at the end.

3-MM (119)

I did a much better job of manipulating the single Mini-Mario this time, mainly by positioning Mario better and avoiding jumps where they weren't needed.

3-DK (37)

DK can't really be manipulated during these battles, so there was no strategy change here. The time saved was from optimizing Mario's movement, so I was able to hit DK faster a couple of times.

World 4 – Spooky House

This world takes place in a ghost house, and actually uses a lot of elements from previous Mario games (such as boos and thwomps). The levels here may be less interesting to watch, however, since they're a bit more puzzle-oriented and have less action.
573 frames saved in this world.

4-1

A (103) - I lured the second thwomp down at the start so I could trap him along with the first thwomp with the yellow switch (in the previous version of this level, I didn't do this and thus had to hit the switches an extra time). Also, Mario is silent when entering the door – maybe he got tired of yelling all the time and wanted to take a break.
B (148) - I optimized the start of the level and saved a few frames there. More importantly, this put the thwimp in a much better position and I was able to run under it instead of waiting and jumping over it.

4-2

A (50) - Some movement was optimized here, but the strategy is basically unchanged. Climb-canceling saved some time when jumping down to the key at the end.
B (74) - This level is almost completely linear, so there's not much that's different from before. In terms of improvements, I optimized Mario's movement and used ladder-jumping to get to the upper areas much faster.

4-3

A (2) - I spent a lot of time trying to somersault from the yellow switch to the platform with the key, but it seems to be just barely out of reach. So, I had to use exactly the same strategy as last time, although I picked up a present since I had to wait for the platform to come back anyway.
B (29) - I optimized Mario's movement around the spikes, but nothing else was changed here.

4-4

A (9) - I don't think it's possible to make it to the door in a single platform cycle, as I optimized the somersault as much as possible and was about 20 frames from making it back onto the platform with the key. So, I have some fun with the boo here and abuse its hit detection while waiting for the platform to come back down.
B (25) - The strategy here is basically the same as before, but I took a slightly different route up to the platforms and optimized the somersaulting.

4-5

A (33) - Most of the time saved here is from using a different method to throw the key on the conveyor belt.
B (22) - The ghost shyguys are on a cycle, so I couldn't improve the strategy I used in the previous version of the TAS. I did, however, optimize the rope climbing at the end to save some time.

4-6

A (2) - Once again, the platforms here are on a precise cycle and prevented me from taking a different route through the level.
B (-19) - I optimized a few things throughout the level, but the improvements were unfortunately canceled out by extra lag. This was the second and only place I lost time compared to the previous TAS.

4-MM (40)

When a Mini-Mario is destroyed, the others will sometimes run away and into a corner after bouncing off a spring. I managed to avoid this by changing when the Mini-Mario bounces off the spring; otherwise, the strategy is unchanged. As an added bonus, the “Level complete!” music is overwritten by the “Help me!” music because minis are still being destroyed even after Mario picks up the toy box :)

4-DK (55)

There are a lot of things going on in this battle. I saved some time on the first hit by setting up a midair jump to reach DK much faster. I also exploited the fact that if a shyguy hits DK on the first frame it leaves Mario's hands, it will not be destroyed and you can use it to hit DK again. Finally, the extra switch-pressing was done to manipulate the other hazardous shyguys into being away from Mario, unlike last time where they weren't really a threat.

World 5 – Mystic Forest

This is where the game starts to get a bit surreal in terms of environment and music. This forest is a bit like the DK Jungle world, but more “washed out” in color with more browns and grays. The music here is quite strange and unlike anything you would hear in a typical Mario game. These levels had some large improvements from new routes and trick applications, on top of the constant puzzle-breaking throughout.
1930 frames saved in this world.

5-1

A (7) - There wasn't much to improve here, besides a couple of very small optimizations. The strategy is unchanged.
B (32) - I found a route up conveyor belts that ended up being faster. Also, I used somersaults instead of backflips because the piranha plants' fireballs get in the way when backflipping up all the platforms.

5-2

A (8) - Ladder-canceling saved a bit of time here, but this level is quite simple so nothing else is different.
B (13) - Same strategy as before, though I made a few small optimizations to save time.

5-3

A (695) - This level had the largest improvement in the game and is one of my favorite solutions yet. The intended solution is to hit the yellow switch and set up the conveyors so that get the key stuck against the yellow blocks while you climb over and grab it. Here, I found out that with good timing, you can toss the key onto the conveyor belt, backflip up to it, and grab it before it falls off. This basically skips the entire solution and saves a huge amount of time.
B (3) - There weren't any improvements to make here, mainly because the entire level depends on when the bob-ombs explode (and I already optimized that last time). I did get 100 more points, though! It looks bad for Mario to get stunned while on his way to the Mini-Mario, but it's unavoidable and worth it to be able to midair jump over the spikes.

5-4

A (208) - The large improvement came from optimizing the path and movement to the right side of the level, saving enough time to let me skip an extra platform cycle and get to the end much sooner.
B (285) - This level has a lot of isolated ropes that have to be climbed; this time around, I used the repeated jumping method to scale the ropes much faster than before. Because I got Mario through the early part of the level quickly, I didn't have to wait for any obstacles, so even more time was saved there.

5-5

A (134) - I optimized the key throw near the end so that it would end up as close to the ladder as possible. This meant that I didn't have to walk as far to grab it, and let me skip a platform cycle on the way to the key door.
B (7) - This level is unchanged from before, since it's just a simple climb to the top. I really don't know why this level has so much lag compared to others, though...

5-6

A (73) - I threw the key at the crumbling platforms so they would start breaking earlier and let me through faster. I also discovered that running against the “donut” block near the crumbling platform will hold Mario in place until the block disappears, even if the floor has already crumbled beneath him. Avoiding this saved some time over the previous version.
B (129) - Climb-canceling and more careful positioning (of both Mario and the bob-omb) saved the time here.

5-MM (263)

I discovered a new strategy here that involved using 2 bombs instead of 3, which meant that I didn't have to wait around for an extra bomb to blow up. I also manipulated the minis and bombs to be in just the right positions to make this strategy possible. If you're wondering how the Mini-Mario on the middle level was able to jump into a bob-omb without dying, it's because the Mini-Marios on the lower level ran into the other bob-omb, giving the rest temporary invincibility. Just for fun, I blew up an extra Mini-Mario on the way to the toy box.

5-DK (73)

The bob-ombs always blow up after a set amount of time, so the strategy here is exactly the same as before. I did end up saving a bit of time by hitting DK as early as possible with the last two bob-ombs.

World 6 – Twilight City

Dark and just a bit creepy... (c'mon, don't those eerily empty tinker toy-like structures in the background scare you a little bit?). I think this world is supposed to be an altered version of the city in the beginning of the game, only after dark instead of the middle of the day. This world had the largest improvement because of some huge new shortcuts.
3828 frames saved in this world.

6-1

A (2) - Since the lasers are on a timer, I wasn't able to adjust the strategy at all, though I optimized all the movements in the level anyway.
B (565) - I love it when the level designers put ledges and other things just out of reach, because sometimes clever tactics can make it possible to get there and save a lot of time. Here, I cut the level time in half by using a shyguy as a boost to reach the upper level with a somersault, basically skipping the whole level.

6-2

A (140) - I optimized the platform-hopping and was able to get to the key door an entire platform cycle earlier.
B (123) - I managed to get past the first set of falling bricks a bit faster than before. I also adjusted the strategy at the end to midair-jump across the spiked pit even faster.

6-3

A (78) - I used key-climbing at the end to avoid having to press the red switch and go all the way to the spring.
B (20) - Basically unchanged from before.

6-4

A (44) - I backflipped up to the key instead of using the rope to climb up, but the strategy here is otherwise unchanged.
B (655) - I used the throw/midair jump trick to get the shyguy as far to the right as possible. This saved a huge amount of time because in the previous version, I hit the color switches and waited for the shyguy to walk over there at his slow walking speed.

6-5

A (506) - Another huge improvement! I had previously discovered that it's possible to somersault over the spiked wall and get to the key much earlier than intended. The problem was that there was no way to get both Mario and the key back over the wall... but the new key-climb trick turned out to be the missing piece to this strategy. I do have to hit the conveyor switch twice – once to push Mario into the wall where I key-climb (Mario needs to be really close to the wall to make the key stick, and the conveyor going in the opposite direction makes it impossible), and once to get the lower conveyor going in the right direction to setup the second half of the level. This level is a really fun watch because it does a ton of things that shouldn't be possible during normal gameplay.
B (569) - Yet another huge improvement, but this one is less interesting than most of the others because it came from removing mistakes I made in the last version of the TAS. For some reason, last time I chose to use a weird strategy to get through the first part that was much slower (because I had to wait for the pushing enemies an extra time). I also incorrectly assumed that scooting across wires was faster than jumping from them repeatedly. So, this level became much shorter once these mistakes were fixed.

6-6

A (115) - Instead of using the cycling platforms on the right part of the level, I used somersaults to get to the switch much faster.
B (42) - The timing of the lasers meant that there wasn't much to improve in this level. I did manipulate the shyguy to not throw a wrench in my way, which did save a bit of time.

6-MM (425)

The large improvement here comes from two things. The first improvement is that I was able to get through the last set of lasers an entire laser cycle sooner by optimizing the early part of the level. The other improvement is that I sacrificed the second Mini-Mario at just the right time to give the others invincibility long enough to get through the lasers at the end, but no more than that. In the previous version, I got invincibility much later; this is much slower because the Mini-Marios will run into a corner after bouncing off the spring if they're still invincible at the time.

6-DK (544)

If the conveyor belts are aimed at DK after he gets hit, DK will press his switch before tossing another bob-omb. I deliberately switched the conveyor belts after each hit in order to avoid this, saving 60-70 frames per hit. I also was more efficient when hitting the switch, meaning the bob-omb hit DK much sooner each time.

Final DK Battle (27)

The final battle! This one is more or less in the style of the classic Jumpman stages, with Donkey Kong rolling barrels down the ledges. I optimized Mario's movement while climbing up the ledges with the barrels, but the timing of the level doesn't allow for much change in strategy, so it's more or less unchanged from before.
I really enjoyed making this version of the TAS, especially because I was able to save so much time over v1. Enjoy watching the run!
Last Edited by Chef_Stef on 3/4/2010 5:12 AM
Page History Latest diff List referrers