Introduction:
Hello everyone! After several months of work, I have finished my Battletoads & Double Dragon: The Ultimate Team TAS for the NES! The result is over a minute faster than the currently published movie. This game has a very similar engine to Battletoads, but nevertheless, before we get into the level-by-level breakdown, let’s describe some basic techniques used here to save time in Battletoads & Double Dragon (referred to as BTDD for conciseness from here on out)… Wait a minute! Before I tell you about tricks and timesaves, you probably want to know what the plot of this game is first, right? Don’t worry, I’ve got you covered!
Plot:
After the dark queen’s long-thought-out plan to conquer the galaxy was painfully ended by the Battletoads in
a mere 11 minutes, she vowed to get revenge on the Battletoads, and to rule the galaxy. At the same time as this, the shadow warriors were still angry from being beaten by Billy and Jimmy Lee in
9 minutes. Realizing that they had a lot to gain by working together, the dark queen and the shadow warriors decided to team up to conquer the galaxy.
The two forces built a giant ship called the Colossus, which then emerged from the moon and destroyed the earth’s military. Realizing the danger that the world was in, the 3 Battletoads (Rash, Pimple and Zitz) and the 2 dragons (Billy and Jimmy) decided to team up to defeat the dark queen and the evil leader of the shadow warriors known only as the shadow boss. In this TAS, Pimple (player 1) and Billy (player 2) are dropped off on the tail of the Colossus to start off the game. Will Pimple and Billy together be strong enough to save the world, or will the combined weight of the dark queen and the shadow boss overwhelm them? Stay tuned to find out!
Techniques & Glitches:
- Fast Acceleration
- If you press right, release right for a frame, and then press right again on the next frame, you will start moving forwards immediately with a speed of 192. The fastest speed you can reach by just holding right is 128 (which takes a couple of frames to reach), so this fast acceleration is used to save time throughout the TAS.
- Combined Lag Hits
- If one player hits an enemy or capsule, and another player hits a different enemy or capsule on the same frame, then lag is generated for only one hit, but both objects are hit (normally, whenever you hit an enemy you generate a certain number of lag frames). This can be exploited further by combining a hit that creates a lot of lag with a hit that creates very little lag. For example, ramming an enemy takes about 8 frames of lag, and destroying a capsule takes about 2 frames of lag. Thus, if we hit an enemy with a toad and destroy a capsule with a dragon, then only 2 frames of lag will occur, and the enemy will be killed. Given the usefulness of this strategy, this trick is used on almost all levels.
- Hitting Enemies Through Walls
- Certain bosses and enemies which hide behind walls or inside doors before appearing can actually be hit through the wall (if you are on the right frame and have the right position when you attack). This allows us to get an extra hit in on certain enemies before we start fighting them, which helps save time. This trick is used in levels 1, 3 and 5 to save time.
- Drain a Boss’s Health in One Hit
- This game has two types of bosses: bosses who take a certain number of hits to kill (in which case the type of attack doesn’t matter, just how many times you’ve hit them does), and bosses who have a certain number of health points that have to be reduced to 0 before they die. If the boss has health points instead of a hit counter, then a toad can charge up an attack that would be fatal on a dragon, and the dragon can move out of the way, causing the boss to get hit instead (or vice versa with a dragon performing the hit). For some reason, the game calculates how many health points your attack should drain based on the enemy you charged up the attack on. As a result, the boss immediately loses all of his health points, causing him to die immediately. Since this only works on bosses with health bars, this only works on the levels 1 and 2 bosses.
- RNG Manipulation/Attack Manipulation
- In this game, all of player 1’s inputs are used on a given frame to determine the next value of RNG. This also includes the select button, which has no in-game function. As such, by pressing select a random number of times, we can manipulate random events to work in our favor without losing any time. Additionally, since the type of attack that each player does when you try to attack is also determined by RNG, we can manipulate the type of attack our player does to be as fast as possible (which is generally the downward punch for Pimple and the body-slam attack for Billy). As you can imagine, this is used in every stage where RNG plays a part in deciding what happens next (which is every level in the game).
- Dynamite Duplicating
- In levels 2 and 5, there are enemies which throw dynamite at you through a wall. To kill them, you have to throw the dynamite back at them through a door a certain number of times based on how much health they start off with. However, if right before the dynamite you throw is about to go through the door, you press grab (the B button), then the dynamite will go through the wall and damage the enemy, but another stick of dynamite will appear in your hand when you finish the grabbing animation. This is useful because the dynamite-throwers have a long delay between each dynamite throw, but using this glitch, you can chain together dynamite throw after dynamite throw to kill the dynamite-throwers without having to ever wait for them to throw a second stick, regardless of how much health they start off with!
- Void Jumping
- In level 3, there are several long cavernous pits that you normally need to climb over, with one of them spanning several screens. In the current published movie, the giant pit was crossed by climbing part way across, kicking one toad so that he would get shoved forward (but die), and then repeating this process when the toad respawned on the climbable ceiling. Using void jumping, however, we can skip this slow process entirely! When a player is falling and their depth + on screen height = 255, the game will let the player jump, even if there is no ground beneath them. As such, by jumping right as we are about to void out at the bottom of the screen, we can keep running and jumping across the entire pit without having to stop to grab the climbable ceiling! This trick saves over 20 seconds, and is the largest single timesave in this TAS over the old movie.
- Inter-Dimensional Walking
- Huh? What’s that, you must be wondering? Admittedly, I made this name up since there’s really no better way to describe what happens here more concisely. In level 5, the level is supposed to be 2D, and your y-coordinate only changes when you go in a doorway. However, if you press both Left+Right at the same time (on the same frame), then your y-position will shift from its normal position. Since your collision and the floor’s collision are no longer in the same plane, you start falling. However, for some reason, the game thinks that you can jump in this state no matter where you are on the screen. As such, we can keep repeatedly jumping in midair to avoid falling off the screen and dying. And the best part? Each player can now run through walls (because their collision check fails), but each player can still attack and kill enemies. Now, not even the laws of physics can slow you down in your quest to save the galaxy!
Encode:
Below, I have included a link to an encode of my TAS. However, if you would like to read about the techniques used in each individual level before watching the movie, then please read the section below before watching this video. Special thanks to EZGames69 for creating this encode!
Level-By-Level Description:
Now, I will go through a more specific description of the techniques used in each of the 7 levels to save time.
Level 1:
We start off with an autoscroller on the tail of the ship. There’s not a lot to say in this level. Some time is saved by destroying capsules on the same frame we kill enemies, so 2 lag frames happen instead of 8, but other than that, there’s not many tricks going on here. When we reach the hands that throw balls, we charge up an attack on one player that would kill them but hit the hand instead, causing it to die instantly.
On the first level boss (Abbo), we save some time over the old TAS by skipping an extra hit on him, which saves about a second. To start with, we hit the boss through the wall before he appears to reduce his health. Then, we charge up an attack on one player and unleash it on Abbo, which kills him in one hit. And with that, we enter the interior of the ship!
Level 2:
This level is also pretty straightforward. Note that we are often able to charge up a fatal kick on a capsule, and then unleash it on an enemy to kill them in one hit. If you look closely for the spots were I start a kick right next to a capsule in mid-air, then you can tell where I used this technique. When fighting the two dynamite-throwers, I used RNG-Manipulation to make them throw their dynamite the shortest possible distance, and then grabbed the dynamite as it was going through the wall to duplicate it so that I could kill the dynamite-throwers without having to wait for their next dynamite throw.
After 2 sub-stages, we arrive at a section closely resembling the turbo tunnel from the original Battletoads. By jumping as we grab the bikes, we do a really high jump (which doesn’t actually save any time, btw).
In this section, you are chased by an onslaught of enemies on bikes. No matter how many you kill (or don’t kill), they won’t go away until you have travelled a certain distance, which makes this section effectively an auto-scroller. Normally, these enemies are a pain to beat casually, since they can stun lock you with repeated punches (which have a hitbox that goes up vertically very high and across horizontally very long) and then kill you. However, since this is a TAS, I just jump over these enemies and make them look easy. Additionally, I show off how the enemies in this game only chase one player (which is chosen when the enemy spawns), since player 2 doesn’t move during this section but still never gets attacked, even though the biker enemy goes right through him multiple times! Such is the fate of primitive AI…
At the end of this section, we fight the boss, Big Blag. He also has a life bar, so we charge up a hit on one player and hit Big Blag instead, causing him to die right away.
Level 3:
We are now in the innermost section of the ship. This level contains many women with whips who come out from behind doors. Some of these women can be hit through the wall before they even open the door, which will cause them to come out the door already in a recoil state and one hit away from death.
In the vertical sections with the ropes, we time our hits on the cameras so that we generate only 8 frames of lag (normally, you generate 16 total lag frames, with 8 of those coming from hitting the wall after hitting the camera).
However, the main time-save of this level (and of this TAS) comes in 3-2. Here, we cross the long pit using repeated void jumps, which saves 20+ seconds over the old TAS!
In the auto-scroller horizontal rope section in 3-3 with lots of lasers, there is normally a lot of lag. However, by taking damage on the lasers, we greatly reduce the amount of lag that occurs, which allows us to save a few more seconds. This technique is also used in other sections of the level with laser beams as a means of lag reduction as well.
Finally, at the end of the level, we reach the boss fight with Roper. Unfortunately, he takes a fixed number of hits to kill, so our earlier boss-fighting techniques won’t speed up this fight. After many hits, he goes down, and the two players jump into 2 mini-ships to try to destroy the Colossus from the outside!
Level 4:
We start this level off shooting at some asteroids. Then, we fire at the 4 UFOs. By getting really close to the UFOs, we can fire more shots before the game “blocks” us from firing more shots (I don’t 100% understand how this mechanic even works, I just know being closer is better). Also, I make a 1-up spawn to use it as a target for a homing missile (which is activated by holding down B). By firing as the 1-up despawns, the missiles gains the ability to hurt any enemy (normally, it can only hurt the enemy initially targeted). This lets me destroy one of the UFOs very quickly.
I also take an intentional gameover as soon as I kill the last of the UFOs. I then respawn immediately at the level 5 boss fight, without having to wait for the ship to move into position in front of the toad (normally, after killing the last UFO, you have to wait several seconds before the game lets you begin the boss fight). This ultimately saves about 4.5 seconds over just waiting for the boss to appear. Special thanks to Koh1fds for pointing out that I could use this strategy to save time here!
In the boss fight against the ship, I am able to save a few seconds over the published run by shooting the ship while really close to it, which seems to prevent the game from getting into a state where no bullets can spawn for a second.
After 5 phases, the ship is destroyed, but the dark queen and the shadow boss escape using a missile from the ship’s interior, which is now headed towards earth! The players fly onto the missile and land on it, which is where we start level 5.
Level 5:
In this level, by holding Left+Right, we disable all collision with walls and floors, and can jump perpetually in mid-air. This is of course abused to save time whenever possible (which is pretty much everywhere in this level). We also have 3 mini-boss fights against General Slaughter, who requires a specific number of hits to kill him.
Other than that, there’s not a whole lot of strategy in this stage: just kill the enemies as fast as possible, and run+jump through all the walls, floors and ceilings in sight. At the end of the level, we arrive at a boss fight against Robo-Manus. He also takes a specific number of hits to kill. After we kill him, we are able to enter the inside of the missile, which is where the final showdown will begin!
Level 6:
We start this level off by fighting a lot of enemies in quick succession. There’s not a lot to say about this: just kill every enemy on screen. After a few fights, we arrive at the level boss: The Shadow Boss! Much like the last few bosses, he also takes a specific number of hits to kill (in this case, 32 hits). Normally, after every 10 hits, the shadow boss becomes invincible and smashes accross the screen several times. However, if our 10th hit knocks him into the air and we hit him for the 11th time as he is landing back on the ground, then he will skip becoming invincible and continue fighting us normally. This in turn saves about 13 seconds over what the old TAS did here. Special thanks to Koh1fds for pointing out this strategy to me!
Since the shadow boss bases his movement/attacks on where player 2 is relative to him, the position of Billy is manipulated throughout the fight to stop the shadow boss from pummeling us. After all 32 hits have been administered, the shadow boss is defeated, and we run right and through the door to exit the level. This takes us to the final level, where we will have our final showdown with the dark queen!
Level 7:
Much like level 6, this level also starts off with a bunch of quick fights with regular enemies. After this is all done, the dark queen appears for the final battle! By having player 2 (Billy) body slam her at the right time, we can prevent her from going underground and teleporting somewhere else on the stage.
Since I was aiming for fastest end-of-input in this TAS, I re-worked the final blows to land the last hit sooner, and cut out all of the play-around stuff that was in the original TAS after the last hit, which saved about 10 or so seconds.
And with that, the dark queen is defeated, and she and the shadow boss are forced to retreat away from earth with their missile to recoup their losses, thus saving the day. Hooray!
Attribution:
The majority of the input in this TAS was made by me (Lobsterzelda). However, a substantial minority of the input in this TAS (somewhere in the neighborhood of 30-40%) was copied from feos from his 2010 TAS of the game. Below is a list explaining where the input for each level came from:
- From power-on up to the level 1 boss was copied directly from feos’s old TAS. However, I re-did the level 1 boss in order to save about a second.
- I did all of level 2 on my own.
- The start of level 3 up to the beginning of the first vertical section on ropes was copied from feos’s TAS. Then, I TASed the rest of level 3 up to the Roper boss fight. The Roper boss fight, however, was copied from feos’s TAS.
- Destroying the first set of asteroids in level 4 was copied from feos (about the first 2 seconds of the level). The rest of level 4 was TASed by me.
- All of level 5 was TASed by me except for the 3 General Slaughter fights, which were mostly just copied from feos’s input.
- Level 6 up to the shadow boss fight was copied directly from feos’s old TAS. From the shadow boss fight to the end of the level however was TASed by me.
- Level 7 was copied directly from feos’s old TAS, with a minor change at the end of the level to end input early.
Special Thanks:
No TAS is an island entire of itself. This TAS certainly would not have been possible were it not for the following people:
- feos: For creating the input used for several of the levels in this TAS, for discovering several of the tricks and glitches of this game, and for challenging me to obsolete his old TAS of the game, which gave me the motivation to make this TAS.
- Koh1fds: For pointing out the level 4 gameover strategy and the faster kill strategy on the level 6 boss, which allowed me to save an additional 17 seconds over what I originally had for this TAS.
- EZGames69: For creating the encode for this TAS.
Now that I am finished with this TAS, I am done TASing games in the Battletoads series for the foreseeable future. I hope you all have enjoyed this new attention paid to the series. My input from this TAS focused mainly on optimization, with a lower emphasis on entertainment. feos’s input on the other hand focused more on entertainment, trading away certain optimizations for entertainment value. Thus, by combining our 2 inputs together into one movie, I believe that I have created “The Ultimate Team” of TASing!... Or not… After all, user ratings are the only way to determine how good a movie actually is, and time will tell if this movie is considered better or worse than its predecessor. Regardless, I hope you enjoy this TAS!
Samsara: Added "2 players" branch for parity with the published run.
Ah, Battletoads is always a good time, Double Dragon is always a good time, and so putting them together makes a really bad time a GREAT TIME. And with well over a minute's worth of improvement, this is indeed a great time.
The only thing that bothers me is
this post in the submission thread, but with Koh1fds not having been on the forums in a month, the "1 trillion small time saves" mentioned only amounting to about 4 things in the subsequent post (with a follow-up of not being able to think of anything else), and Lobsterzelda stating he wasn't intending to improve the run further after the major saves, I think this is still a safe acceptance. There's far more than enough here to warrant acceptance, and given the overall quality of this run, I think that 16:00 estimate is way off anyway.
Accepting as an improvement to the
published run, inheriting the Star. Excellent work!
fsvgm777: Processing. Note to self: Inherit tier.