This patch will give the player a Celeste-style dash ability by pressing X. Some of the configurable options are how long the dash lasts, how fast you travel (too fast and you die when dashing close to a wall), the max amount of dashes that can be done consecutively, and whether or not you need a power up.
You can have the patch start with 0 dash ability and increase or decrease the amount during gameplay, which can act as an upgrade/penalty feature or you can keep it a constant value throughout if you prefer.
Requires 6 bytes of freeram, 1 of those should be SRAM-friendly to allow saving the max dash value if it's not constant.
I've included 4 custom blocks that only work with this patch, insert them with GPS if you choose.
- Allows you to dash through it, solid otherwise.
- Refresh your dash counter. (allows more consecutive dashes in the air)
- Erase the max dashes. (set the max dashes to 0)
- Set the max dashes to a specific amount. (configurable)
Thanks to K3fka for the Wario Dash v2 patch.
I've updated the script which fixes the minor cape glitch at the end of a dash on the ground while having the cape powerup. I added a new option to allow dashing while crouching, this is disabled by default, as well as a dash cooldown timer.
I also added an option to use the R button for dashing rather than X. If you use X then cape spinning will be disabled for the X button. If you use the R button cape spinning will be normal. There is another option to allow cape spinning with X only while pressing left/right on the D-Pad.
I updated the patch to add a horizontal dash only option (MMDash). You can set it to 1 if you don't want up/down dashing, disabled by default.
Fixed a death bug that caused an unexpected dash after respawning with the instant retry patch.
Fixed the sounds and effects that would play if you pressed the dash button while dying.
I noticed an issue where, if you dash mid-air, run a few tiles after landing, and then attempt to jump, you will hear the jump sound but not jump. Is there any way to alter the code to achieve the jump in this situation?
Lunar Magic 3.30
SRAM and BW-RAM Plus v1.3
A fun patch to mess around with, though not without jank. Here are some notable issues I found with it (most of them are minor):
-Blocks don't have freeram defines unlike patch
-sliding frame doesn't work (when sliding down slopes)
-smoke from dashing has inconsistent placement, sometimes aligned to nearest 16x16 tile, sometimes above player, sometimes seemingly random
-I really think there should an indication on when you regain a dash, like a sound effect or palette animation or something.
-speaking of regaining dashes, if you hold X (or R) and jump up, you won't be able to dash in air, because the dash counter is reset (checks for X/R hold when grounded). it may lead to inconsistencies and confusion, esp since there's no indication that you don't gain a dash if you hold X/R when grounded. there's probably a way to handle this better.
-entering keep_dash block and getting a power-up (e.g. fireflower when not in fire state) will reset player's dash state and kill the player inside. I can see this being used in "avoid powerups" type levels, but you may consider fixing this.
-sometimes dashing from vines/nets makes player character move "backwards", like dashing right but the player is facing left
-header has become a deprecated feature, and causes an error when inserting into SA-1 rom (can still insert it just fine)
-should be pointed out that !DashMax freeram should not reset on OW also (if using SRAM/BWRAW+ and !KeepMaxDashes = 0)
-you can still cape spin by pressing Y, which combined with X (or R, in which case X also works) still produces cape dash freakout (the one Meirdent mentioned for the first version rejection log). just disable dash ability during cape spin.
Here are some personal suggestions, that you may consider for future updates:
-more defines, like sound defines for dashing, and make dashing while grounded not kill enemies via a define
-make entering a body of water regain dashes
-add a way to define initial amount of dashes upon starting the game, if you set !KeepMaxDashes to 0, it defaults to max = 0, so with define you can set it to e.g. 2 (and you can have different !MaxDashes value), can probably be done in uberasm, this is for general userbase (those who aren't versed in ASM)
Some notes to users:
-some enemies killed via grounded dash will show glitchy graphics (just like with vanilla sliding)
-some vanilla mode 7 bosses have issues, for example Iggy/Larry, if you dash onto platform, sometimes you warp and die offscreen, in Morton/Roy boss battle intro, you can still press dash button to make a smoke and sound effect (can dash towards the end of the cutscene), and bowser can display sprite tile issues when dashing.
-can clip through blocks if dashing is high enough speed combined with layer 2 (either into moving layer 2 or stationary blocks with moving layer 2