NOTE:
- To play this run from start to finish, download the following IPS patch and patch it onto a PRG0 ROM of Super Mario Bros. 3.
- To play this run from start to finish, download the following IPS patch and patch it onto a PRG0 ROM of Super Mario Bros. 3.
To keep with the tradition of SMB3 TASes published so far, the PRG0 ROM is used.
ROM Hash (SHA1): 3B5A6209B6B206CF464B2037E8D8B99DAE1D9948
ROM Hash (SHA1): 3B5A6209B6B206CF464B2037E8D8B99DAE1D9948
From dump status report:
- headerless rom hash: SHA1:ECB49982AD58C05189EFC806F8B83B84785688B6
- headerless rom hash: MD5:7574D6645324C4D64B182E1872A73753
- headerless rom hash: SHA1:ECB49982AD58C05189EFC806F8B83B84785688B6
- headerless rom hash: MD5:7574D6645324C4D64B182E1872A73753
About the game
Superfast Mario Bros. 3 is a Super Mario Bros. 3 hack that includes speed hacks, letting Mario zip through the game in record time. Other speedy changes were made alongside that as well. The hack was actually created in 2008, after the first and second of its series. However, it wasn't until July 28, 2009, when a run of this hack was finally created.
This run is 2.93 seconds faster than my last run in 2018 and approximately 5.5 seconds faster than Acmlm's 2009 run.
This run is 2.93 seconds faster than my last run in 2018 and approximately 5.5 seconds faster than Acmlm's 2009 run.
A couple of things I'd like to point out regarding map movement:
- You cannot move in the map and enter a level on the same frame, but you can enter on the next frame.
- You need to wait two frames after the last movement to move again, even if the second movement is in a different direction.
- You cannot move in the map and enter a level on the same frame, but you can enter on the next frame.
- You need to wait two frames after the last movement to move again, even if the second movement is in a different direction.
Insights on Mario's super speed
Getting extra pixels by jumping/falling
Because Mario's Y speed acceleration and deceleration is more drastic in this hack, he can slightly clip blocks if he lands on them or hits them on certain frames, moving an extra pixel forward; corner and ceiling clip/boosts also apply. This is usually faster than running through the levels normally, and this is the trick I try to make use of for the majority of the run.
Usually, I would know when I have a chance to gain an extra pixel when the X speed suddenly drops to 0 (I can always check
When landing on the ground, Mario needs to be three pixels deeper than where he usually lands; I can check if it's possible by varying the jump height. When hitting the ceiling, Mario needs to be at least four pixels deeper than where he usually hits the ceiling.
I can sometimes get two extra pixels in one jump if I'm lucky enough.
Usually, I would know when I have a chance to gain an extra pixel when the X speed suddenly drops to 0 (I can always check
0x0090
). If possible, I can apply the same jump to earlier or later frames so I can get the extra pixel.When landing on the ground, Mario needs to be three pixels deeper than where he usually lands; I can check if it's possible by varying the jump height. When hitting the ceiling, Mario needs to be at least four pixels deeper than where he usually hits the ceiling.
I can sometimes get two extra pixels in one jump if I'm lucky enough.
Clipping through walls without jumping or falling
Mario's X speed is constant; on flat ground, running speed is 127, and walking speed is 32. Letting go of Left or Right stops Mario at 0, indicating that acceleration and deceleration don't exist in X speed.
With proper subpixels, Mario is able to clip through walls. This is often a slow trick to perform since Mario usually cannot get out immediately after getting in, so it's avoided for the most part.
With proper subpixels, Mario is able to clip through walls. This is often a slow trick to perform since Mario usually cannot get out immediately after getting in, so it's avoided for the most part.
With that out of the way, let's dive in; hopefully, I can keep the level-by-level comments short as well.
Level-by-level comments
World 1-1
I only did a ground clip and a corner clip, nothing more, to prevent lag frames when making my way around the Paratroopas. Everything else in this level continues like normal.
(No change compared to my previous 2023 run on the unfixed patch, despite it being redone.)
(No change compared to my previous 2023 run on the unfixed patch, despite it being redone.)
World 1-2
This level was (possibly unintentionally) designed in a way that makes corner clips and walljumps impossible to perform. It's likely impossible to clip into the ground to gain extra pixels.
However, I'm able to hit the second-to-last notebook near the end to cross the pipe without slowing down.
Slopes will not save or add frames in that they serve little to no purpose here. For that, these are avoided.
(The last jump occurs one frame earlier than my previous run; that improvement sticks with me since the Hammer Bro's movement lasted for only two frames.)
However, I'm able to hit the second-to-last notebook near the end to cross the pipe without slowing down.
Slopes will not save or add frames in that they serve little to no purpose here. For that, these are avoided.
(The last jump occurs one frame earlier than my previous run; that improvement sticks with me since the Hammer Bro's movement lasted for only two frames.)
World 1-3
I did one ground clip and one pillar clip. I then slowed down to get the Super Mushroom for World 1-Fortress, but I made up for it with pillar clips and ground clips. And of course, I was able to go behind the scenery without slowing down or lagging.
(I opened the chest three frames faster than my previous run but lost that improvement because inventory animations are three frames slower. Hammer Bro movement lasted for three frames, so I lost another frame for that.)
(I opened the chest three frames faster than my previous run but lost that improvement because inventory animations are three frames slower. Hammer Bro movement lasted for three frames, so I lost another frame for that.)
World 1-Toad House
I needed to delay for one frame to get the Fire Flower here.
(And because inventory animations are three frames slower, I come back four frames slower than my previous run.)
(And because inventory animations are three frames slower, I come back four frames slower than my previous run.)
World 1-Fortress
Because of Mario's boosted jumps and speeds, he can walljump to the top door without any powerups or charging the P meter.
The last Podoboo (at the end) always spawned no matter what I did. There was nothing I could do to de-spawn it. However, it's faster to go over it than to go under, but it's even faster to damage boost through it. I only made four clips, then stopped to make sure I could walljump without clipping into it. Then I did two more at top.
(Originally, attempting World 1-Fortress before entering World 1-3 or the Toad House will result in the last Podoboo spawning, even when delaying before entering. This damage boost saved four frames since Hammer Bro movement lasted for only two frames, luckily. Part of the improvement also came from better inputs for the walljump.)
The last Podoboo (at the end) always spawned no matter what I did. There was nothing I could do to de-spawn it. However, it's faster to go over it than to go under, but it's even faster to damage boost through it. I only made four clips, then stopped to make sure I could walljump without clipping into it. Then I did two more at top.
(Originally, attempting World 1-Fortress before entering World 1-3 or the Toad House will result in the last Podoboo spawning, even when delaying before entering. This damage boost saved four frames since Hammer Bro movement lasted for only two frames, luckily. Part of the improvement also came from better inputs for the walljump.)
(Traveling from World 1 to World 8, the map inventory takes one extra frame to open and close (six frames each); so another four frames are lost.)
World 8-Tank
I can move slightly faster after touching the ground (7 → 10 → 7 → 10 pixels gained per frame) than after touching a tank tile (7 → 9 → 7 → 9).
The downward exit sequence lasts for one frame, meaning I can move the instant Mario appears.
To proceed with the game, you need to defeat the Boomerang Bro in the next room and grab the chest that comes after.
If Mario's X pixel is 127 or less, the chest appears to the right. If 128 or more, the chest appears to the left. It's faster to grab the chest when it appears to the right.
(I defeated the Boomerang Bro six frames faster and adjusted subpixels to get the chest another frame faster. Seven frames faster overall, now pulling ahead of my previous run by three frames.)
The downward exit sequence lasts for one frame, meaning I can move the instant Mario appears.
To proceed with the game, you need to defeat the Boomerang Bro in the next room and grab the chest that comes after.
If Mario's X pixel is 127 or less, the chest appears to the right. If 128 or more, the chest appears to the left. It's faster to grab the chest when it appears to the right.
(I defeated the Boomerang Bro six frames faster and adjusted subpixels to get the chest another frame faster. Seven frames faster overall, now pulling ahead of my previous run by three frames.)
World 8-Navy
I got six ground clips at the beginning, but couldn't get any more.
In the next room, since the camera doesn't scroll, I can't stop the in-game timer from draining, despite how quickly I made it through the level; this means I can't find a way to keep it at 300 while "battling" Boom Boom. When the in-game timer drains at the end of every level, it starts with the hundreds, then the tens, then the ones, until they're all at 0.
Boom Boom has no invincibility timer, so he can be stomped on any frame (the ? orb also appears immediately after the third stomp).
(Originally, I could barely even get one ground clip in; I was five frames faster up until the warp pipe entrance. Likewise with the downward exit sequence finishing faster, that means I fall slower, meaning I need to wait longer for Mario to land before gaining control in the Boom Boom fights; lost four frames because of that. Other than that, the boss fight remains relatively the same, but I was two frames slower, possibly because I was jumping higher than usual off of Boom Boom with every stomp (I found a way to save one frame, but it wasn't beneficial in regards to the hand manipulation). Overall slower in this level by one frame. (On another note, the water now scrolls with the level.))
Boom Boom has no invincibility timer, so he can be stomped on any frame (the ? orb also appears immediately after the third stomp).
(Originally, I could barely even get one ground clip in; I was five frames faster up until the warp pipe entrance. Likewise with the downward exit sequence finishing faster, that means I fall slower, meaning I need to wait longer for Mario to land before gaining control in the Boom Boom fights; lost four frames because of that. Other than that, the boss fight remains relatively the same, but I was two frames slower, possibly because I was jumping higher than usual off of Boom Boom with every stomp (I found a way to save one frame, but it wasn't beneficial in regards to the hand manipulation). Overall slower in this level by one frame. (On another note, the water now scrolls with the level.))
(In the World 8-Pipe levels, I earn the same benefit for the downward exit sequence in World 8-Tank in that I can move sooner. I found out that downward slopes work differently than last time in that Mario doesn't stutter in place when running down them, but going over the slope here wasn't any slower than running down them. The delay before lag frames was another frame shorter as well. For each of these levels, I saved seven frames overall, for a total of 21.)
World 8-Hands
I needed to delay for two frames before crossing the first hand, then two more for second. No delay needed for the third hand.
(Originally, I did not need to delay to skip the hands; four frames lost compared to my previous run.)
(Originally, I did not need to delay to skip the hands; four frames lost compared to my previous run.)
World 8-Airship
Nothing special to report. I did five ground clips in the main area, but I still can't stop the in-game timer from ticking to 299.
(I was four frames faster in the main area than my previous run, but the Boom Boom boss fight is same as World 8-Navy in that I lose those frames because I have to fall longer. The first stomp was another frame slower.)
(I was four frames faster in the main area than my previous run, but the Boom Boom boss fight is same as World 8-Navy in that I lose those frames because I have to fall longer. The first stomp was another frame slower.)
(The next map area isn't dark anymore...)
World 8-1
In the beginning, I gained an extra pixel, "lip-jumped" (jumped off the edge of) the first pipe, and went under the fourth pipe.
Clipping the third set of Bullet Bill Blasters is one frame faster than going over.
And at the end, it's still faster to not make a three-in-a-row of cards; I delayed one frame to do so.
At one point, I was able to clip through a Bullet Bill Blaster as a potential "improvement", but it didn't help me get a different card faster. So that change is not included.
(No change compared to my previous run.)
Clipping the third set of Bullet Bill Blasters is one frame faster than going over.
And at the end, it's still faster to not make a three-in-a-row of cards; I delayed one frame to do so.
At one point, I was able to clip through a Bullet Bill Blaster as a potential "improvement", but it didn't help me get a different card faster. So that change is not included.
(No change compared to my previous run.)
World 8-2
Same as World 1-2 in that slopes are avoided. The hard part was getting over the giant hill near the end without slowing down; some spots on the downward slopes allow Mario to land and jump without moving back a pixel or dropping the X speed to 0. I was also close to touching that second-to-last Piranha Plant.
(The bounce on the last Paratroopa was extended by one frame, but other than that, the rest of the input from my previous run remains the same.)
(The bounce on the last Paratroopa was extended by one frame, but other than that, the rest of the input from my previous run remains the same.)
World 8-Fortress
There is a 29-frame delay between entering a door and gaining control in the next room, so doors must be avoided at all costs.
Clipping into walls also loses time. The wider the wall, the longer Mario will be in it, meaning I lose more time; therefore, it's best to stick to one-tile-wide walls.
Clipping into walls also loses time. The wider the wall, the longer Mario will be in it, meaning I lose more time; therefore, it's best to stick to one-tile-wide walls.
I did a ground clip at the beginning, then clipped under the second Roto-Disc. I avoided landing partially inside the ground to allow for moving forward a bit more while still avoiding the double Roto-Discs.
When clipping into the room with the enclosed door, I avoided a corner clip so that I would zip through the wall instead of bonking on it, then jumped immediately from the lowest point. I needed to walk for two frames and avoid another corner clip to clip the fifth wall without slowing down. I then did six ceiling clips and three ground clips before entering the first door at the farthest point possible (with U + L inputs).
It's faster to go through the last two doors than to avoid them. In the second room, I did a ground clip, then walk-jumped over the Roto-Disc. Then a corner clip and two more ground clips before entering the second door.
Once again, I can't prevent the in-game timer from ticking down.
(There is one less lag frame before the level loaded. I needed to do a frame-perfect wall jump to minimize the stomp time, and I did so; this redo is eight frames faster than my previous run.)
When clipping into the room with the enclosed door, I avoided a corner clip so that I would zip through the wall instead of bonking on it, then jumped immediately from the lowest point. I needed to walk for two frames and avoid another corner clip to clip the fifth wall without slowing down. I then did six ceiling clips and three ground clips before entering the first door at the farthest point possible (with U + L inputs).
It's faster to go through the last two doors than to avoid them. In the second room, I did a ground clip, then walk-jumped over the Roto-Disc. Then a corner clip and two more ground clips before entering the second door.
Once again, I can't prevent the in-game timer from ticking down.
(There is one less lag frame before the level loaded. I needed to do a frame-perfect wall jump to minimize the stomp time, and I did so; this redo is eight frames faster than my previous run.)
(Before making my way to World 8-Tank 2, the map inventory takes one extra frame to open and close. Additionally, you need to wait three frames before selecting another item that's not a whistle or a star. Lost five frames due to this.)
World 8-Tank 2
I used the Fire Flower and Star before entering. Killing Boom Boom as Star Mario is faster than killing him with fireballs.
Same as World 8-Tank in that I can move slightly faster after touching the ground and avoiding the tank tiles. I couldn't seem to get any extra pixels on the row of Rocky Wrenches; every time I clipped into the ground, either I got stopped or nothing would happen. However, I was able to clip through two Cannons, allowing for a few extra pixels to be gained.
And for the last time, I STILL can't stop the in-game timer from ticking down. However, this would be something I needed to make use of for the final level.
(In my previous run, I was able to finish with 300 in-game seconds remaining, but because I was falling slower before gaining control, this is no longer possible. One hope spot, however, is that I can collect the orb immediately after the frame I star-kill Boom Boom, which is slightly faster than killing him and running back for the orb. Otherwise, it's a disappointing 17 frames lost.)
Same as World 8-Tank in that I can move slightly faster after touching the ground and avoiding the tank tiles. I couldn't seem to get any extra pixels on the row of Rocky Wrenches; every time I clipped into the ground, either I got stopped or nothing would happen. However, I was able to clip through two Cannons, allowing for a few extra pixels to be gained.
And for the last time, I STILL can't stop the in-game timer from ticking down. However, this would be something I needed to make use of for the final level.
(In my previous run, I was able to finish with 300 in-game seconds remaining, but because I was falling slower before gaining control, this is no longer possible. One hope spot, however, is that I can collect the orb immediately after the frame I star-kill Boom Boom, which is slightly faster than killing him and running back for the orb. Otherwise, it's a disappointing 17 frames lost.)
World 8-Bowser's Castle
To my knowledge, you can't kill Bowser with the Star, as it cannot last long enough for you to make it from the start of the level to the battle.
First room
- Up and over is faster than clipping the wall in the beginning, and walljumping is faster than taking the platform.
- I skidded on the first donut block to drain the in-game timer. Also, I get out of the donut block by clipping slightly into the wall, then ducking to descend back to the empty space again.
- I clip through the second step on the stairs (practically skipping past the first column of the walls, meaning I only stayed in the walls for ten frames before I was free again), which is faster than going up them.
(As you may have noticed earlier, the camera scrolls vertically in most levels, even if the P-meter isn't full. This allows me to finally see the wall that I'm scaling in this room. So because of that, I came up with better walljump inputs and was able to properly scale the last gap to the door. The latter is better than clipping the edge, though it doesn't let me enter the door sooner. However, I got a better stairs clip, this and more totaling up to a staggering 27 frames saved!)
Second room
I needed to slow down to avoid getting hit by the flame. Nothing special here.
(The duck jump happens earlier than my previous run, but I'm still able to match the previous run.)
Final room
Bowser has 35 HP, so he takes 35 fireballs to be killed. In this hack, it's faster to shoot fireballs to the left than to the right; I also discovered it was faster to drop and shoot the rest of the fireballs as well. However, I needed to be careful with how close Mario is to taking damage...
(Compared to my previous run, I didn't need to slow down to trigger the Bowser battle, which saved another frame. In the battle, I fell back MUCH earlier to spam fireballs faster, which resulted in me defeating Bowser 11 frames faster. The final time drain occurred another frame earlier and, because of the intentional time drain in the first room, I saved yet ANOTHER frame. 14 frames saved in that room, and 41 frames saved in the final level!)
- Up and over is faster than clipping the wall in the beginning, and walljumping is faster than taking the platform.
- I skidded on the first donut block to drain the in-game timer. Also, I get out of the donut block by clipping slightly into the wall, then ducking to descend back to the empty space again.
- I clip through the second step on the stairs (practically skipping past the first column of the walls, meaning I only stayed in the walls for ten frames before I was free again), which is faster than going up them.
(As you may have noticed earlier, the camera scrolls vertically in most levels, even if the P-meter isn't full. This allows me to finally see the wall that I'm scaling in this room. So because of that, I came up with better walljump inputs and was able to properly scale the last gap to the door. The latter is better than clipping the edge, though it doesn't let me enter the door sooner. However, I got a better stairs clip, this and more totaling up to a staggering 27 frames saved!)
Second room
I needed to slow down to avoid getting hit by the flame. Nothing special here.
(The duck jump happens earlier than my previous run, but I'm still able to match the previous run.)
Final room
Bowser has 35 HP, so he takes 35 fireballs to be killed. In this hack, it's faster to shoot fireballs to the left than to the right; I also discovered it was faster to drop and shoot the rest of the fireballs as well. However, I needed to be careful with how close Mario is to taking damage...
(Compared to my previous run, I didn't need to slow down to trigger the Bowser battle, which saved another frame. In the battle, I fell back MUCH earlier to spam fireballs faster, which resulted in me defeating Bowser 11 frames faster. The final time drain occurred another frame earlier and, because of the intentional time drain in the first room, I saved yet ANOTHER frame. 14 frames saved in that room, and 41 frames saved in the final level!)
And there you have it, a speedy Superfast Mario Bros. 3 run-through that finishes in under 1:49!
Possible improvements? + additional thoughts
I'm not sure if one-frame hammer bro movements are possible and, if they are, if they can be of any use in a future run.
Perhaps the only way of saving frames in World 8-Navy and World 8-Airship is to properly adjust the horizontal and vertical subpixels to minimize the time spent between the stomps and getting the orb. It's impossible for me to know exactly which ones work best though.
I'm still trying to figure out how to use BizHawk, as this is my first TAS made on it. The only "quirk" about BizHawk that I'm not quite used to is Rewinds not counting as re-records. It definitely feels a lot different compared to how I worked all these years with FCEUX, but I guess anything to get away from its emulation inaccuracies, which you could say I'm concerned about.
Special thanks to Acmlm for coming back and fixing this superfast variant of Super Mario Bros. 3! And special thanks to feos for being committed to getting the Superfast Mario Bros. series up on romhacking.net.
This run finishes approximately 5.75x faster than the current run of the unmodified game.
This run finishes approximately 5.75x faster than the current run of the unmodified game.
Suggested screenshot?
No pictures to display this time, though I'd like to suggest those in World 1-3, World 8-1, World 8-Fortress, or World 8-Tank 2. It's totally up to the publisher, however, as always.
Approximate frames (from my previous run)
Frame 1103
Frame 3646
Frame 4813
Frame 5683
feos: Claiming for judging.
feos: I asked acmlm about fixing this hack to be beatable warpless, which would make it ideal for RHDN and our purposes. He said it's be nice, I plan to keep reminding him, meanwhile Delayed.
feos: It's up https://www.romhacking.net/hacks/8358/ Back to judging...
feos: Relacing with a resync (and improvement).
feos: Great work, accepting!
despoa: Processing...