GBA FE movement/attack/staff tile assets?

Does anyone have a link to those red/blue/green tile assets? I’m referring to the 16x16 (well, 15x15 if you look closely) tiles that appear when you select a unit and the pathfinding algorithm shows you their movement/attack/staff ranges. And possibly the correct timing/transparency specifics for these tiles.

Currently writing a GBA FE clone in C++ and I thought I could just make my own tiles here since they’re just squares, right? But on closer inspection the animation and blending is actually pretty unique, which is how the GBA games get that classic “glowing” effect on those tiles.

Did a bit of searching but I haven’t been able to find these resources so far. Any help is appreciated!

2 Likes

Animation of the squares

Animation for the squares popping up

And these 4 are the palettes

As for the transparency, I have no idea. I would suggest you try 50% or 30% oppacity. Or just trial and error.

Also keep in mind, transparent graphics may behave differently in GBA than in a more modern engine, as the GBA had more limitations on the colors it could display. So maybe the effect you want won’t be 100% accurate.

Just a correction to the above post, the palette for the squares are editable in these patches.


The patches shown in the above post are for the display of the unit portrait, name and HP when you hover over them.

1 Like

These are the decompiled functions that controls the blend effect, it goes through palette cycling

1 Like

Thanks all for these replies. My machine only runs Linux and I haven’t gotten FEBuilder to work to extract the tiles myself, but I appreciate the screenshots @Alice , they’ll be useful for reference as I recreate them in Aseprite.

It’s my understanding that the GBA hardware has support for 8x8 background tiles but not 16x16 - possibly the original games abstracted away from this limitation by treating a grid of 4 hardware-level tiles as a single “object,” which is why FEBuilder is able to show the full 16x16 square in those screenshots.

edit: took a look at the screenshot more closely and checked against the decompiled source, it looks like there’s no abstraction used here. Example from DisplayMovementViewTile():

if (gMapMovementSigned[yBmMap][xBmMap] >= 0) {
        bg[0x00 + 0] = 0x4280;
        bg[0x00 + 1] = 0x4281;
        bg[0x20 + 0] = 0x4282;
        bg[0x20 + 1] = 0x4283;

        return;
    }

So in addition to everything else it does, FEBuilder even had to piece together 8x8 tiles to make 16x16 tiles show up in the GUI in the second screenshot. I can’t imagine the work that went into that tool.

Thanks for this, wasn’t aware there was a decompiled version available online. This will be very helpful. I had a hunch the red/green/blue squares were palette swaps.

Parsing through the C source and jumping around in the codebase will be a chore but this is invaluable, if only to see the numbers they’re using for blending.

Ah. Thanks. My bad.

no$gba with break points can help find things quickly a lot of the time

function/ram/data addresses using decomp names:
https://fireemblemuniverse.github.io/fireemblem8u/symbols.txt

The above link is updated automatically based on the decomp

1 Like

Thanks, this is really nice and I’ll bookmark it. Have heard that the no$gba debugger is powerful, will try it out and play with it.