This UberASM makes mario shoot a Yoshi Fireball if you hold a fire button (and optionally an additional button, by default R), emulating a charged fireball, just like in many platformer games like Megaman.
Check out the ChargedFire.asm file for customization options.
It also includes a minor patch (to be applied with asar!) and GFX to make Yoshi Fireballs and Flopping Cheep-Cheeps swap tilemaps, so you can have Yoshi Fireballs in every level, optional but recommended (especially if using this in gamemode 14!).