This patch makes mario shoot a yoshi fireball if you hold the fire buttons, emulating a charged fireball, just like in many plataformer games like megaman.
It also includes a minor patch and GFX to make yoshi fireballs and flopping cheep-cheeps swap tilemaps, so you can have yoshi fireballs in every level, optional but recommended.
Have in mind, that yoshi fireballs can't interact with blocks like normal fireballs, but you can fire normal fireballs so there sould be no problem. There are a billion fireball patches out there so I don't know if this patch it's compatible with them or not, but it IS compatible with the classic fireball.
Thanks to Ladida for her help, and please give her credit if you use this!
-Added a delay time between the pressing of the button and the start of the charge, configurable in the .asm
-Fixed the bug where you fired a charged fireball if you were charging and entered a pipe or door
-Added so the timer resets whenever you get hurt and clears whenever you change to another powerup (small, big, cape)
-Added a fix so tapping the attack buttons doesn't start the timer
-Fixed a graphical bug when dying, where mario would spawn a fireball and flash in the death animation
-Added a small bit of code so you can choose whether to fire holding one of the running buttons or holding one of the running buttons and the right shoulder button, so you don't have to start charging when you want to just run.
UPDATE 4-4-2020 (KevinM):
-Made SA-1 hybrid
-Fixed some bugs
Remoderation notes: made SA-1 hybrid, added some defines, optimized the code a bit, and fixed some bugs (for example, where ducking or getting a cape would not reset the charge timer). Also made a UberASM version which can be found here. Tested with LM 3.11, asar 1.71, SA-1 1.32, Snes9x 1.60.