Submission #7899: despoa's NES Superfast Mario Bros. "warpless" in 04:01.54

Nintendo Entertainment System
warpless
FCEUX 2.6.3
14516
60.0988138974405
6376
PowerOn
Submitted by despoa on 12/22/2022 2:41:45 PM
Submission Comments
This is a warpless tool-assisted speedrun of Superfast Mario Bros, a sped up romhack of Super Mario Bros., and serves as a companion branch to #4247: Denial140, negative_seven & chatterbox's NES Superfast Mario Bros. "warps" in 01:09.07.

Game objectives

  • Emulator used: FCEUX 2.6.3
  • Fastest Completion
  • Forgoes warps
  • Contains speed/entertainment tradeoffs

General Comments

Having watched Denial140 and negative seven's warps run many years ago, I became enamored and fascinated by the romhack. Looking around in the submissions area for runs of this game, I noticed that nobody has done a warpless run, so I decided to do one myself.
A few techniques I have to mention here. The big one is that the lag reduction trick described in the other run doesn't really work. When you let go of the Right button for a frame while running or press left then hold right while in midair, what the game would do half of the time is just move the lag frame to another place. The other half of the time, the lag frame may be gone, but there will be no net gain in frames saved due to the very brief loss of speed. Now there could be a way to actually save frames by letting go of the Right button at certain frames, but that would require extensive trial and error that I don't really have the patience to do manually. Because of all that, I just let lag frames happen if they aren't caused by an action I took myself.
There is another application for this kind of input technique, however. Thanks to the romhack struggling to keep up with rendering everything on screen, certain objects may not have proper collision detection, the big ones being the flagpole and the axe at the end of the castle stages; Mario may pass through the flagpole half the time and the axe can only be triggered if Mario touches it at a certain angle. By slowing down Mario by pressing Left for a frame and then holding down Right right after, Mario can properly touch the those objects and properly trigger the end level sequence.
One question you may ask is "Why did you grab the Super Mushroom at any point?" I actually did that in an earlier iteration of the run but to my horror, Big Mario actually causes more lag frames to suddenly appear than if I were to use Small Mario. I suppose that's due to Big Mario's animation cycle, but I could be wrong about that. Another question you may ask is "Why didn't you collect every coin you saw?" Also to my horror, I found that by collecting coins at certain sections of certain levels, lag frames may occur as a result. And if you collect over 99 coins and reset the coin counter, the game really starts lagging at that point.

Notable Stages

World 1-2: What Denial140 and negative seven did in their run at the beginning of this level immediately jump in midair and run across the top of the level. I deemed that unentertaining and decided to properly go through the level, stomping enemies and all. I didn't test if I lost time doing this, though.
World 1-3: This is the first of many levels where I have to slow down and move back for a frame in order to be in a better position to jump across the platforms while maintaining top speed.
World 2-1: If it weren't for the walljump glitch, I would have to use the trampoline to get over the wall at the end. Wallclipping doesn't work here due to how fast Mario movies.
World 2-2: There is one big thing that can make this level and other underwater levels very frustrating. The spawn points of the Cheep-Cheeps throughout the level is determined by the RNG. Should you get very unlucky, a Cheep-Cheep can actually spawn right in front of the exit pipe, which is exactly what happened to me in a previous iteration of this run.
World 4-1: Surpisingly, Lakitu doesn't appear to be affected by the romhack, so Mario outruns him and spends most of the level without him. This applies to every other level with Lakitu in it.
World 4-2: Another level where I forgo taking the roof route in favor of going through the underground portion for entertainment purposes. Unlike 1-2, however, I have to slow down for a better position to jump on or I'll hit a wall and lose even more time. And even if I did take the roof section, I have to get down there eventually and the way the last part of the level is designed forces me to slow down as there isn't enough space for speedy Mario to get to the warp pipe and maintain constant max speed.
World 4-4: What would normally be done in the maze-like section in the middle of this level is that Mario would clip through the block and bypass the maze. However, Mario can't wallclip in this romhack so I have to go through the maze conventionally. This level is also the first instance where touching the axe doesn't cause the bridge to open up and drop the fake Bowser. I don't know why this happens and I'm not sure if this can be done on command without losing time.
World 5-4: That huge firebar at the beginning is a big speed killer. Maybe with better RNG, the firebar could be in a more favorable position. The platform near the axe at the end is also a time killer as it serves as a barrier in the case of this romhack and leaves little space for Mario to get to the axe, forcing me to very briefly hover over the axe so Mario can touch it. This platform situation also happens in number of other castle levels.
World 6-2: Funny thing about the Starman powerup. Not only does the Starman move as fast as you, the powerup only lasts for half a second. The staircase at the end has a hidden tangible block that forced me to move back for a frame so I can get over it.
World 6-3: I encountered some hidden barriers in this level. Whether it's due to the glitched pulley platforms or a hidden block that suddenly became tangible, I don't know.
World 6-4: Here, I noticed that Bowser's flames can only affect Mario at certain positions. A good chunk of the time, Mario can pass through them unharmed.
World 7-2: The two Bloopers at the top are bastards here. They will always sweep that portion of the level, preventing me from going near the top. I actually have to slow down for a frame at the beginning because of them.
World 7-4: Here, I'm late to the party where people know that the loop triggers can only be activated while Mario is walking on the ground. This limits the amount of space Mario can move in while maintaining top speed. The fake Bowser in this level decides to leave to his home planet, which I guess explains why the bridge didn't open when Mario touched the axe.
World 8-1: I tested this level without using the Starman and as it turns out, it's faster to use it to kill the Goombas and the Piranha Plant you run into as that eliminates lag frames. Looks like this proves that the loading of multiple enemies on screen as explained in the "warps" submission does cause lag frames.
World 8-2: The big gapped staircase in the beginning required me to slow down for a frame as Mario can't make it over while maintaining top speed.
World 8-4: The first warp pipe appeared to be blocked by a Piranha Plant. Luckily, if I just hover over it just slightly to the right, it will despawn and I can safely enter the pipe. The third warp pipe was also blocked and the Piranha Plant in it won't despawn by hovering over it, but also lucky for me, I can enter it the moment I get into the right position and Mario won't be hurt by the Piranha Plant. I couldn't find a better way to end the underwater section of the level without hugging the warp pipe at the end for a few frames thanks to the position of the last firebar. Input ends when Mario makes his last jump.

Possible Improvements

  • Application of the frame rule? Being fast is tantamount in this run and Mario can't slow down unless he really has to. Also, with how fast things move in this run, I'm not sure if any difference will be made.
  • Slowing down could actually remove lag frames and save time, but I think a script would have to be devised in order to figure out which places are best to do so and I'm not good enough for that.
  • Late into the creation of this run, I learned while playing the later castle levels that you can save a frame by having Mario run for a frame, then jumping right after. I didn't want to go back and redo the earlier castle levels to incorporate this trick as this might affect the RNG and a romhack like this is very sensitive to the effects of the RNG. I might have to redo large parts of the run just to save like four frames.

Special Thanks

  • To Mizumaririn for helping me find the RAM address that keeps track of the looping sections of the game.

feos: Claiming for judging.
feos: Delaying, hoping acmlm will send this hack to RHDN (as we asked). If it doesn't happen in like a month, we'll see what we can do.
feos: It's finally accepted to RHDN (and other such hacks are now potentially RHDN-submittable since Acmlm attached the MIT license to them), accepting.

EZGames69: Processing...
Last Edited by despoa on 5/16/2023 9:28 PM
Page History Latest diff List referrers