FE7 Map Lightning Bolt

Hello FEU People! So, I’ve been trying to figure out how to get that awesome lightning bolt that Limstella uses to work for me in my own context, and I’ve dicked around enough to figure out most of it, but I could use some help getting it in the right place.

The code I’m using is this:
_LIGHTNING $DD 4 9 $42 0x99 0x14 0x01 0x08
with the original being:
_LIGHTNING Value Value Value Value Value Value Value Value
The “_LIGHTNING” code is in the EA, but it doesn’t actually tell me jack about what those values are supposed to be. Best I can tell, this should be close. “4” and “9” were originally 0x04 and 0x09, and they are apparently supposed to be the location on the map where it strikes. But it seems like changing them actually doesn’t do anything at all.

Here’s what it looks like right now:

I want it to hit that fighter in the middle, who’s standing at (4,9). Can anyone help me out on this one? Solve the mystery?

From disassembled FE7 Chp32:

SOUN 0xF5 _LIGHTNING 0xC0 0xFF 0xFF 0xFF 0xF0 0xFF 0xFF 0xFF

Where 0xC0 modifies the X coordinate and 0xF0 modifies the Y coordinate.
The lightning is drawn relative to the current screen. That is to say that it’s not based on map coordinates.

X values have weird rules, where 0x90 is the leftmost edge, increasing by 0x10 per (16pixel by 16pixel) tile until 0xF0, which is the middle of the screen. Values of 0x00 start one tile to the right of 0xF0, and continue to the right edge.

Y values of 0x80 to 0xF0 go from the top (0x80) of the screen to the lower middle.

It might’ve been easier to say that coordinates are signed, with 0x00 being the middle of the screen, 0x7F being the right edge, and 0x80 being the left

It’s not exactly intuitive, so here’s what you need:

_LIGHTNING 0xD0 0x00 0x00 0x00 0xD0 0x00 0x00 0x00

If it doesn’t line up, let me know.

You’re also looking at the format of EA raws wrong. 0xDD is the same as _LIGHTNING, but _LIGHTNING is easier to read. That 0x42 and the pointer after it aren’t part of the lightning code.

1 Like

It worked perfectly. Thank you!