Submission #8526: chbld, fella8 & Riyan's NES Celeste Mario's Zap & Dash! in 06:36.03

Nintendo Entertainment System
baseline
(Submitted: Celeste Mario JPN/USA)
Bizhawk 2.9.1
23801
60.0988138974405
45239
PowerOn
Submitted by fella8 on 8/15/2023 1:11 AM
Submission Comments
  • Emulator: BizHawk 2.9.1 NesHawk Core
  • ROM SHA-1: FACEE9C577A5262DBE33AC4930BB0B58C8C037F7
  • Aims for fastest time
  • Takes major shortcuts
  • Abuses glitches
  • Uses warps
Celeste Mario’s Zap & Dash! is a ROM hack of NES Super Mario Bros., released in July 2023 as a precursor to the work-in-progress Mario Machina. Described by its main creator w7n as a “hastily done minihack”, it is the most technically impressive hack of this game by far, with heavy modifications to almost the entire game engine. The player progresses through a mostly linear world, using walljumps, Celeste-style dashes and various features in the level design to assist movement. The main collectables in the game are moons, which serve as a measure of completion as well as increasing the maximum number of dashes the player is able to store. Although the game contains 101 moons (79 excluding challenges), this TAS collects none of them and flies through each of the three worlds in under seven minutes.

Techniques

  • Super Dash
    • A dash followed immediately by a jump results in a jump with dash speed (96). Although this speed is gradually lost, the main benefit of this technique is that it eliminates the “charging” period before a regular dash. It also allows for greater distances to be covered.
  • Hyper Dash
    • Dashing towards the ground and then jumping will result in a jump with diagonal dash speed (68), again gradually decreasing over time. While significantly slower than a super dash, a hyper dash replenishes the dash counter due to touching the ground before jumping, allowing the player to dash again.
  • Boost Jump
    • Wall jumping while dashing upwards or diagonally upwards will allow a much greater amount of height to be gained, so Mario can cross large vertical areas quickly. If the wall jump is performed the frame after the dash, the charging period will be skipped.
  • Dream Block Hyper Dash
    • When exiting a dream block, the game treats Mario as if he is on the ground for a few frames, this means he can jump, or more importantly perform a hyper dash allowing him to get up to full speed immediately. The same trick can be applied when exiting pipes from above.
  • Minimap Warp
    • This mechanic finds its use in the less linear world 3, where a gate needs to be opened from one direction and entered from another. By entering and leaving a save room on the way to the gate’s button, it is possible to warp almost directly to the other side of the gate room once the button is pressed.
  • Fast Fall
    • After jumping, if A is released and then held again, Mario will start his downwards acceleration more quickly.
  • Speed Boost
    • If Mario runs on the ground for long enough, his speed will increase from 32 to 48. Only used in the first room.

Glitches

  • Double Walljump (discovered by fella8)
    • If Mario is very close to a corner when jumping into a wall, he can walljump and have the game think he is still touching a wall afterwards. This allows for a second jump to be performed in mid-air.
  • True Walljump (discovered by chbld)
    • Despite efforts to patch out SMB1-style walljumps, they still exist under specific circumstances. Mario needs close to maximum dash speed and perfect subpixel positioning. The benefits of this glitch are small, but they include being able to replenish Mario’s dash and enter horizontal pipes from their top half rather than the ground.
  • Nightmare Clip (discovered by fella8)
    • The most major glitch in the TAS. When hitting the ground from inside a dream block, Mario can jump frame-perfectly to avoid death. From here, it is possible to dash again. Through this, it is possible to disrupt the intended flow of certain rooms in world 3 via repeated dashing to move horizontally in small increments.
  • Spike Corner Clip
    • When falling from high enough above the large spikes, it is possible to position Mario to clip into the edge of them and land on the corner of the platform for one frame. This is very useful in replenishing a dash. The smaller spikes are much easier to clip into without coming from above, and Mario can freely stand on the edge without falling.
  • Spike Dash Clip
    • Horizontal dashing will allow Mario to travel through the hitbox of large spikes without dying, so long as there is nothing directly above the spikes, though this grace period will end along with the dash.
  • Speed Buffer (discovered by RiYAN)
    • When transitioning between loading zones, if either horizontal direction is held, Mario can get a small speed boost on the first frame of movement, allowing him to get up to full speed slightly sooner.
  • On/Off Spike Ball Wall Jump
    • Mario can wall jump off of an on/off spike ball by approaching it from directly above or below with x-speed moving away from the spike and turning to face it right before reaching it. This tricks the game into thinking he is touching a wall.

Commentary

  • World 1: There are some pretty big skips in this world.
    • The first thwomp room saves about a second by very precisely climbing up the spike chute rather than riding the thwomp.
    • In the big TNT room we clip through the spikes into the TNT by dashing at the right time, saving about 1.5 seconds.
    • Pretty much the entire room right after gets skipped by climbing up through the chute. I think this probably saves around 8 seconds since it's a pretty long room but I have nothing to compare to.
    • We can squeeze through the final spike balls in the ON/OFF thwomp room by performing a very precise super jump so we don't have to go back and hit the block.
    • The moon skip in the big shell room is a very tight gap that saves about 7 seconds by cutting out the first moon grab cutscene and textbox.
    • The big gap-crossing room has a final thwomp that gets skipped in the bottom right corner by using the momentum from the previous thwomp to make the jump up to the pipe.
  • World 2
    • The propeller room can probably be improved by skipping the wall jump right before the second spike clip, but we couldn't get it to work. Also, using a wall kick to cross the spikes rather than replenishing the dash doesn't work, as we can't jump far enough with the ceiling in the way.
    • The intended solution in the room right after is to raise the platform between the spikes by lowering the one beneath the thwomp, but we can just skip this with a spike clip. The end of the room also gets skipped using another spike clip instead of climbing to the top.
    • In the final room we are supposed to ride the thwomp from the beginning to the end, going over the obstacles while it keeps moving, but it's pretty easy to just skip using it.
  • World 3
    • By loading the save room before pressing the switch, we can warp back very quickly after opening the gate.
    • Nightmare clip allows us to take the top path to the plus room, which is much quicker than the lower path.
    • It also helps to skip the intended route within many individual rooms, so I won't go through all of them, but overall this glitch helped to save about 25-30 seconds

RAM Values

AddressSizeTypeNoteDescription
0x00501 byteSignedX-SpeedThe horizontal speed that Mario is trying to go. This does not account for any external speed changes (moving platforms, slopes, etc.)
0x03C01 byteHexadecimalX-SubspeedEssentially Mario’s acceleration value. When it is high, he will accelerate quicker, and when it is low, he will decelerate quicker.
0x00651 byteHexadecimalX-PageThe horizontal screen page that Mario is currently on.
0x007A1 byteHexadecimalX-PixelThe horizontal pixel that Mario is at.
0x03C11 byteHexadecimalX-SubpixelThe horizontal subpixel that Mario is at. Though there is no visible difference, a higher value means further to the right.
0x008F1 byteSignedY-SpeedThe vertical speed that Mario is trying to go, positive down.
0x03EB1 byteHexadecimalY-SubspeedMario’s vertical acceleration.
0x00B91 byteHexadecimalY-PixelThe vertical pixel that Mario is at. Higher value = lower on the screen.
0x03D61 byteHexadecimalY-SubpixelMario’s vertical subpixel
0x000E1 byteHexadecimalPlayer StateIf this value is equal to 8, the player can control Mario.
0x00201 byteHexadecimalAirborne State0 = standing on ground, 1 = jumping, 2 = falling
0x070C1 byteHexadecimalGrounded StatusA moon will not be counted until Mario is on solid ground. If this is equal to 1, Mario can collect a moon.
0x079C1 byteUnsignedWall Jump Leniency TimerIf the timer is at 2 or higher, Mario can wall jump.
0x079D1 byteUnsignedWall Kick TimerAfter a wall kick, Mario will be forced away from the wall until this timer is complete
0x05451 byteUnsignedDash TimerA dash will last until this timer is complete
0x05461 byteUnsignedDash Ready TimerWhen a dash is initiated, the game will freeze until this timer is complete.
0x070F1 byteHexadecimalDream Block Status7D = inside dream block, 7E = exiting dream block
0x052B1 byteSignedSpeed Boost BonusIf this value is 16, then speed boost is active
0x052C1 byteUnsignedSpeed Boost TimerIn order for the speed boost to activate, this timer must count up to 96.

Samsara: Claiming for judging.
Samsara: File replaced with an identical version with a more accurate rerecord count, and then replaced again with a 7 frame improvement.
Samsara: Yup, this is incredible. The hack itself is insane enough, but TAS precision pushes it to the same level as actual Celeste TASes, which honestly is one of the biggest compliments I think any run can get. Accepting!
fsvgm777: Processing!
Last Edited by fella8 on 1/16/2024 9:19 PM
Page History Latest diff List referrers