Over the last several weeks, if you have been on the IRC you probably already saw me spoil it. If you are subscribed to my Youtube channel you probably also spoiled it, good job. I have been working on a series of ASM hacks: sprites, blocks, patches, etc. to add more variety to a game that has so many things added to it already. None of this was easy to make, but it was fun.
Most of the sprites included here require patches to make them function properly, or otherwise prevent the game from crashing from spawning an extended sprite that which does not exist and the like.
Walks back and forth and can be stomped. Includes a shooter to spawn them from pipes.
Hops while moving back and forth. Can be stomped twice to take it out.
Flies around Mario while dropping Micro-Goombas.
Sticks to Mario and all of the attached Micro-Goombas can shaken off with 16 button presses or jumping in water. They also die upon touching water or lava.
All 3 sprites exist in 1 ASM file as different states set in the CFG files.
Hops between platforms throwing hammers.
Walks back and forth throwing 2 boomerangs at a time. It catches the boomerangs it throws unless it jumps over them.
Walks back and forth hopping and shooting fireballs at Mario. The fireballs are now extended sprites that are essentially copies of Mario's fireballs but are capable of doing damage to the plumber himself.
Walks back and forth jumping occasionally. When it jumps it will slam down into the ground stunning Mario in his place if he is unfortunate to be on the ground to experience the shockwave.
Moves in a circle pattern before stopping and attacking Mario in a "U" formation attack. Can be killed through thrown shells and the like.
A new concept put into practice within the C32013.asm patch. It enables a variable-slot custom object table that can be used for a variety of things, but in this case they are used almost exclusively within and for blocks. All custom blocks require being changed into another map16 tile as to prevent running multiple delay blocks. All blocks and the Delay Blocks patch itself share the file in the "defines" folder as to make customizing easy. Included in this release are as follows:
Blocks that after walking or standing on them will shatter after a short delay. Potential to be used as shattering bridges.
NSMB series Appearing Coin:
Coins that, after touching, disappear for a brief moment and then generate a coin in their place to be collected later. If the Blue-POW switch is activated, it will generate the brown used bricks, that will appear as coins for the duration of the POW-switch timer.
Blocks that after touching them, turn into the next block and spawn a Sumo Bros.' lightning fire pillar in their place and then turning into another block. Can change back into the block they initially were to create permanent fire traps.
Delay Blocks (Patch):
Contains the code needed to handle the Delay Blocks properly. Also includes the routines to change to the next map16 tile, to the previous map16 tile, or to any map16 tile.
Custom Extended Sprites:
Adds several new custom sprites to Super Mario World. They are used by the Para-Goomba Bomber, Hammer Bros., Boomerang Bros., Sledge Bros., and Fire Bros., and thus this patch is required if using those sprites.
No Fireballs in Water:
Prevents the usage of the Fire Flower's fireball shooting ability while inside water, and will make fireballs (including the ones shot by the Fire Bros. as an unintended side effect) turn into puffs of smoke when they touch water blocks or when they are submerged in the layer 3 tides (though they check the coordinates directly for the tides due to the object interaction routine not taking account of other layers having interaction).
Custom Default Interaction:
When a sprites "don't use default interaction with Mario" setting is set, as well as the "can be jumped on" setting, calls for the default interaction routine. Instead of killing the sprite however, it increments $1594,x, allowing sprites to have pseudo-HP routines by killing them when they reach a certain number, or clearing $1594,x when it is nonzero as to perform another task. It is required by the Goomba Family sprites.
Super Mario Bros. 3 - Stunned Mario Timer:
Replicates the stun lock timer Mario had in Super Mario Bros. 3, in which he remains in the standing pose while bouncing on the ground.
Some features in this patch are prototypes, the Delay Blocks and Custom Extended Sprites being the main things. Should something cause errors in the hack, included is the feature to uninstall individual patches (and restore to the code used by Super Mario World originally) from within the C32013.asm patch itself. Regardless of this, it is always advised to make backups outside of Lunar Magic, as if a ROM breaks too badly it won't be able to be opened in Lunar Magic at all, therefore being unable to restore to a previously saved backup of the hack. I have done all I can do to assure that this code does not break anything too badly, and as such I can only hope this leads to greater things in the SMW hacking world.
edit: Also forgot to mention the patches can only be patched with Alcaro's asar, the sprites have to be inserted with Romi's Sprite Tool (due to the xkas capabilities) and the blocks have to be inserted with the current BTSD in the tools section, due to the corner offsets being a thing.