Introduction

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...

Improvements

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? Well...it'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.


Lord_Tom
He/Him
Expert player (3143)
Joined: 5/25/2007
Posts: 399
Location: New England
Update on the 1-1 lag issue. It may not be possible to remove that lag without losing a normal frame (which would ruin the hammer manipulation). It certainly isn't easy, at least! If anyone has actually seen it done, please speak up, otherwise I'll ask the judges to give us until the weekend to succeed or fail. And thanks for the comments!
Lord_Tom
He/Him
Expert player (3143)
Joined: 5/25/2007
Posts: 399
Location: New England
Ok, we give up on trying to get rid of that lag frame in 1-1. There are various ways to eliminate the lag, but all of them seem to require losing at least 1 normal frame. And losing even 1 normal frame wrecks the hammer brother manipulation at the end of 1-1. I contacted andymac, and he has not done so either. However, Mitjitsu is correct in that were someone to find a way to remove this lag without losing any normal frames, that would be an improvement that would be immune to the now sizable pseudo-frame-rules of World 8.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15582
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. ---- [1590] NES Super Mario Bros. 3 "warps" by Lord_Tom, Mitjitsu & Tompa in 10:25.60
Joined: 7/8/2009
Posts: 43
Location: Catalonia
of course YES amazing run, congratulations!
Player (36)
Joined: 9/11/2004
Posts: 2630
Link to video (FlyBowserFly.fm2)
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Joined: 7/2/2007
Posts: 3960
Thanks for encoding that, OmnipotentEntity. Man, Bowser's got some impressive hops there.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.