[GBAFE] Editing existing magic animations?

I want to have Nosferatu as a Light spell in my hack, but it would obviously be very strange to associate its existing animation with a spell that’s supposed to be Light-elemental. However, I also don’t really think the animation needs to be changed completely.

What I want to do is change the palette to something more Light-elemental-looking, and change the sound effects played during the spell animation to ones used by Light spells or staves. Both of these are things that I know for a fact can be done quickly and easily by changing just a few values, but I don’t know how to locate those values. To be clear, I want to change the sound effect IDs the spell animation calls, not the sound effects themselves, because I don’t want to mess up any other places the game may use those sounds.

I understand that I could just import something as a whole new spell animation, but given the small scope of what I want to change, that feels rather excessive to me. I’d rather do it this way if possible.

I don’t suppose there’s anybody who does know who could help me out with doing this? I’d greatly appreciate it!

EDIT: Okay I’m a doofus and I didn’t notice the palette editor for vanilla spell animations until just now. The sound effects thing, though, I do need help with still.

0x0124 Nosferatu symbol
0x0125 Nosferatu drain
0x0126 Nosferatu heal


0x92 * 2 = 0x124

0x125

0x93 * 2 = 0x126

I don’t think they are used anywhere else.

1 Like

Take a look at this:

1 Like

Thanks a bunch! This is exactly what I’m looking for!

Although, I would like to ask; does it matter whether you write the song ID as “[song ID / 2] x 2” (which obviously wouldn’t work for odd-numbered song IDs) versus just “song ID”? This does seem to use both, but I don’t know if the game actually draws a distinction in how it interprets those two ways of writing song IDs, and I don’t wanna mess things up by writing things the wrong way.

Just keep the original way. No difference as long as the final result is right, no matter how it is calculated, but you may prefer hex editing to asm hacking, so don’t change even-numbered song ID to odd-numbered ID.

1 Like

If I were to change even to odd or vice versa, what would I need to do in order to make that work? It looks like each song ID call is two bytes long, in which case there’s enough room there to write any valid song ID either of the two ways used here. Is there some list somewhere else in the animation structure that tells the game how to read each sound effect call or something? 'Cause if switching even to odd or vice versa just means I’d need to go change a couple values somewhere else, too, I’m totally capable of doing that.

If you are really capable of doing that, you won’t ask me that question.
You can change parity by this:

add r0, #1
1 Like

Alright, fair enough.

Thanks for your assistance!

EDIT: Changing parity didn’t end up being necessary anyway; I’ve got things working how I want them to!