Language…
19 users online: Ahrion, bridgett41, cozyduck, crocodileman94, Dennsen86,  Donut, El Cuh Fermin,  Fernap, formulachicken, GiraffeKiller, Isikoro,  MarioFanGamer, MorrieTheMagpie, NikSik1,  NopeContest, playagmes169, SmashNcrab, TheJavabrew, WGDast2 - Guests: 88 - Bots: 99
Users: 56,344 (2,197 active)
Latest user: bridgett41

Yoshi Fireball Block Interaction v1.2

SMW Patches → Yoshi Fireball Block Interaction v1.2

Submission Details

Name: Yoshi Fireball Block Interaction v1.2
Author: lx5
Added:
Version History: View
Tool: Asar
Requires Free Space: Yes
Bug Fix: No
Featured: No
Description: This patch gives Yoshi Fireballs the ability to interact with Layer 1 blocks.

Read the readme for further explanations.

v1.2
-----
Fixed a bug in the exlevel flag detection that would detect versions prior LM2 greater than 53 as being having exlevel enabled. Like anyone would run into this lul.

v1.1
-----
Changed GetMap16 routine to be the same one used in pixi. Supports LM3 exlevels now.
Tags: block layer 1 lorom sa-1 yoshi fireball
Comments: 5 (jump to comments)
Download 4.39 KiB | 252 downloads

Screenshots

Comments (5)

Anas Link
Hey guys, this patch doesn't allow you to make the Yoshi fireball change your defined tiles into Map16 tiles outside of the $9C range (i.e., a muncher). To do so, first add the following code (which is, btw, GPS's 'ChangeMap16' routine) under line 332 of 'yoshi_fire.asm':



And then add this macro under the macro list:

Code
macro  change_map16()
	JSR ChangeMap16
endmacro


Then, in 'yoshi_effects.asm', add this under 'db KillFire' (let's say it's pointer 0x04 and is called 'muncher'):

Code
muncher:
	%generate_smoke()
	REP #$10
	LDX #$XXXX
	%change_map16()
	SEP #$10
	%return()


'XXXX' = your Map16 tile

Finally, under 'interact_table', call the Map16 tile to be interacted with as well as the pointer 0x06 like so:
Code
dw $YYYY : db $06


'YYYY' = Map16 tile obviously

You can add more pointers like this for turning your tiles into different tiles. Thank Yoshifanatic for the help!
 Maarfy Link
I was this close to rejecting this update due to regular crashing. With a bit of digging, however, it turns out that the new subroutine call (JSR GetMap16) could end up at an RTL. Since it was a whole one byte's worth of oversight, I just fixed it. Remember kids, always carefully inspect a subroutine transplant!

Anyway, while making the fix, I tweaked a few other minor things:

• Merged the changelog with the readme, as the readme already had a changes section
• Removed mention of the %create_glitter subroutine from the readme, as no such macro exists in the patch itself
• Tweaked the BreakRainbow macro call, as it did not generate rainbow pieces by default

Note that this patch does not grant interaction with blocks in vertical levels or on Layer 2. The former is all but obsolete given LM3 exlevels (which work just fine), and the latter was never an aim of the patch to begin with. These small points aside, this patch is cool! The "build your own subroutine" setup using a handful of easy to understand macros is a very steal-able inventive idea.
 Maarfy From older version: Yoshi Fireball Block Interaction v1.2 Link
I was this close to rejecting this for causing regular crashes. Digging around a bit, it seems that the call to the new subroutine (JSR GetMap16) could run into a RTL - since it was one byte's worth of oversight, I just fixed it. Remember kids, always thoroughly inspect a subroutine transplant!

While I was adding the correction, I touched up a few minor things:

• Merged the changelog into the readme, as the latter already had a changelog section
• Removed mention of the %create_glitter subroutine from the readme, as no such macro exists in the patch itself
• Tweaked the BreakRainbow subroutine, as it did not generate rainbow pieces by default

Note that the patch does not apply the interaction to blocks in vertical levels or on Layer 2. The former is virtually obsoleted by LM3 exlevels (which work just fine), and the latter was never an aim of the patch. Those small points aside, this patch is cool! The "build your own subroutine" setup using a collection of easy to understand macros is a very steal-able inventive idea, too.
lx5 Author From older version: Yoshi fireball block interaction Link
nice, thanks
Akaginite From older version: Yoshi fireball block interaction Link
I did modded some part.
-fixed memory remap issue on macro.
-changed to re-reference act num table if act num is greater than 0x200.
(this behavior is same as Lunar Magic's act num routine)
-optimized a little.