Friday, December 25, 2015

Super Mario Bros and the Elusive 4:57

Hello all, and Merry Christmas!

I have been trying to reorganize a bit and maintain a consistent schedule lately. I haven't had much time, but relaxing tonight, I felt like doing a small write-up. Just a few days ago, I managed to achieve my personal best time for completing Super Mario Bros. The end time for that run was 4 minutes and 57.993 seconds. It is actually personally significant for me, and I'm going to explain why below.


For a very long time, a time under 4:58 was my ultimate end goal. The kind of optimization needed to achieve a 4:57 time was a very worthy challenge, and I was determined to be the one to do it. It was the dream time, and many people would ask me whether I really thought I could achieve the perfect time, a nearly unbeatable time, and something that would possibly stand forever.

The Bowser Axe Jump



With my best efforts, I got my time down to 4:58.09 roughly 2 years ago. Shortly after, I took a break, and the 4:57 remained elusive. However, a few months later, a 4:57 time was achieved (by Blubbler) with the help of a technique I foolishly considered unreasonable. This trick (bullet bill glitch) saved 0.7 seconds, which is a huge amount of time for the run. It was still an amazing feat, but the game now has plenty of room for optimization.

The Bullet Bill Glitch




The human limit time for the game is around 4:57 flat. Achieving a time under 4:57 is now within the realm of possibility, something I previously deemed absolutely impossible. With that in mind, in addition to my recent efforts on the game, I am convinced I will reach a low 4:57 (if not the "impossible" time of 4:56). The 4:56 time still remains outside of the limit we have established, but only by mere frames. Because of this, I am determined to find a way to realistically achieve a 4:56 time. With the optimization of this game seemingly approaching its definite limits, it will certainly be tough to find any further savings to the game, but I am not deterred...

And I will one day have total mastery of Super Mario Bros.


Saturday, December 12, 2015

Twitch and Speedruns!

Alright, so I'm officially back to doing speedrun attempts. I'm now actively doing attempts for Super Mario Bros. any% (that is, fastest possible completion).

My current time stands at just under 5 minutes at 4:58.09. The current world record time is 4:57.62 by a runner named Darbian. So my time is a little under half a second (0.47) slower than the record. Since I am one of the top competitors, I feel the need to give a little background info regarding how the game itself works. Technical details in bold, ignore if you'd like!


From when you turn on the NES, there are these 21 frame cycles that continuously run. Due to this, one can only save time in 21 frame (0.35 second) intervals

From Scott Kessler: "Think of it like a window at the end of a level that is only open every 21 frames  Say you have two separate runs where you reach the window on the 50th time it opens. If you arrive just after it closes the 49th time then you have to wait 20 frames for it to open the 50th time. If you get there just as it opens the 50th time then you can enter without waiting even though you arrived up to 20 frames later. Generally speaking, you can only save time in multiples of 21 frames (0.35 seconds)."

The above is true with the exception of the final stage because we obviously stop the timer immediately upon hitting the axe and beating the game. 


Summary: The current world record can only be improved by 21 frames (0.35 seconds) in 4-2 + ~12 frames (0.2 seconds) in 8-4. Realistically, and as far as we know, there's only a little over half a second worth of improvement left in the game.



My goal is to achieve a "perfect" run. I would like to beat every stage with perfect in-game times in addition to getting every single frame rule. I guess I'd say my ultimate goal is a time of 4:56, but as of now, that is very unrealistic. However, that won't stop me from trying!