Submission #2765: Lord Tom, Mitjitsu, Tompa's NES Super Mario Bros. 3 in 10:25.60

Console Nintendo Entertainment System Emulator
Game Version USA PRG0 Frame Count 37598
ROM Filename Super Mario Bros. 3 (U) (PRG0) [!].nes Frame Rate 60.0988138974405
Branch Rerecord Count 52180
Unknown Authors Lord Tom, Mitjitsu, Tompa
Game Super Mario Bros. 3
Submitted by Lord Tom on 7/27/2010 8:55:08 PM

Submission Comments


This is a 49 frame (0.82 second) improvement over the published movie. There are small improvements in many areas of World 8, but nearly all of these gains were sacrificed to make use of the Bowser Quick Drop, which optimizes Bowser's death animation as seen in the published warpless movie. Details for many tricks are explained on the published submission text and the SMB3 tricks page.
Mitjitsu did not take part in this improvement, but with his permission we use much of his input from the published warps movie.

Lord Tom's comments

I was very eager to do this project once Tompa discovered the Bowser Quick Drop. I had a lot of fun working with Tompa and Co. on the warpless, and had some free time I knew I could dedicate to knocking this out. The fortress in World 8 was one of the most complicated segments I've ever done, and I was psyched to find 12 frames there after the 2 previous publications had found a combined 2 frames total.
It was frustrating to have such bad luck with the Bowser manipulation wipe out most of our gains, but it was cool to learn some more about this game's innards and we got some good entertainment in there to compensate. Tompa was, again, an enthusiastic and talented partner.

Tompa's comments

When we had finished the warpless run, we had found some improvements to this run as well, so it was a must to improve this as well. Lord Tom started the project with some improvements in the fortress. I joined in and we managed to extend that improvement further, it seemed just like one of our "frame wars" during the making of the warpless run :).
TASing this game is a lot of fun (And sometimes painful due to manipulation) and I would love to do work on it again, perhaps with Tom for a third time? Who knows...


World 1 -- 0 Frames

We attempted many strategies, with particular focus on the fortress, but nothing proved useful. To optimize the boomerang hammer brother guarding World 8's first tank, an improvement would have to be at least 14 frames.

BoomBoom Landing -- 2 Frames

Tompa discovered that the point at which BoomBoom moves toward Mario in stages where Mario drops into his room (8-Airship, 8-Tank-2) is affected by how soon Mario lands after going down the pipe. By optimizing the y subpixel, Mario can land 1 frame sooner, so Mario's second set of fireballs hit sooner despite being fired on the same frames.
In 8-Ship, it wasn't possible to save a frame, despite testing all subpixels down the pipe.

World 8 Fortress -- 12 Frames

The savings here were very hard won. First, Lord Tom found 2 frames getting to the first door by getting a bigger P-speed boost off one of the pillars. Tompa also knocked a frame or two off the first moving-walkways screen.
We then discovered that the P-block could possibly be used to our advantage because the moving walkway at the end of the level (under the spikes leading to BoomBoom) starts once the P-block expires. The P-block runs off a timer at $567, which decrements according to a 4-frame rule -- so every time we're able to decrement this counter, the moving walkway will start 4 frames sooner, getting Mario by those spikes just a bit faster. We found two ways to do this:
  1. Hit the P-block as soon as possible (i.e. land on it as far left as possible)
  2. Going through doors on certain frames can cause a double-decrement
We needed just one more frame from the first screen to drop another frame-rule from the P-block, so we started looking. Tompa seemingly found the needed frame but it got killed by a longer transition lag going through the door. After both of us looked for many hours, Lord Tom finally scratched and clawed an extra frame from the first screen by plotting an obscenely intricate path through a subpixel minefield.
All this work with the P-block paid off on BoomBoom's screen as we were able to take a shorter jump out the door, reaching the ground just as the moving walkways started. It's worth noting that despite hitting the walkways with less speed (40 vs 41 in the published run), we navigate that final room 5 frames faster.

Bowser's Castle -- ? Frames

Using the techniques discovered in the warpless run as well as those above, we were able to get to Bowser 27 frames ahead of the published movie. BUT...
The Bowser Quick Drop works by killing Bowser 1 frame before he makes a small hop. To accomplish this requires manipulating Bowser to take 6 small hops before his first big hop -- any less and there's not enough time to kill him before a time-consuming big jump. Bowser can take between 3 and 6 small hops, and this is determined soley by the frame the fight starts -- nothing Mario does afterwards can influence it.
Unfortunately, the 6-hop pattern is quite rare; we had to sacrifice 21 frames to manipulate it. Faced with this, we redid the castle trying to find the most entertaining ways we could think of to lose those frames (taking the low route on the first screen, duck-jumping off the wall, silly backward jumping).
If anyone's interested in the technical details, Bowser's y velocity is at $d4. On a small hop, this gets set to 240 (1 px/frame upward velocity). When Bowser is killed, it gets set to 204 (3.3px/frame upward). When the Quick Drop is performed correctly, Bowser's y velocity gets set to 204 when he's killed, but continues his pattern for 1 frame longer than he should - so his y velocity gets overwritten with the much slower 240 speed.
What happens when Bowser is killed just before a big jump?'s interesting.

Future improvements

Wow, it's getting tough to imagine where it might come from. As mentioned, a World 1 improvement would need to be 14+ frames. What's more, the next possible Bowser Quick Drop manipulation would require getting to Bowser 17 frames faster than our best time (38 frames faster than this submission). We'll keep looking, though!

adelikat: Accepting for publication as an improvement to the published movie.
Flygon: Decided I'll encode with hardsubs instead.

Last Edited by Flygon on 8/2/2010 10:02 PM
Page History Latest diff