Seen September 7th, 2022
Posted April 10th, 2022
1,305 posts
11 Years
Tile Animation Editing

With disassembly projects making rapid progress, editing tile animations will surely become easier than ever before! To bridge the gap and cover the basics until then, I hope this tutorial is useful to some, as the question of how to edit animations seems to pop up often.

Attached are copies of Lu-Ho's tools "Animation Editor" and "Door Animation Editor", with the ini's fixed to be friendlier to EM than the original versions. You should grab those, a ROM of your choice, and a hex editor (I like HxD) - optional, but useful. These tools are handy because they let you view a proper preview of how your animation will look in-game.

Thanks to NarutoActor who wrote an animation editing tutorial that introduced me to creating my own animated tiles many moons ago, and of course to Lu-Ho for creating user-friendly tools to make the job easier. I'd also like to give thanks to Tainted for the heads-up about 16x16 doors in EM!
Please note that this tutorial only covers how to edit existing animations and not add new ones for the moment, although that might come later if it's necessary.



Editing Door Frames

Open up your ROM in Door Animation Editor and you'll see the same interface as the above image - simple enough, right? You can scroll through each door in any tileset using the clearly named buttons, and see how the animation will look in-game. You can edit each door frame by hand if you choose to - alternatively, if you already have your desired frames in the correct palette you can use the "Load Image" option to import them.


Editing Door Palettes

If you hit the "Apply Changes" button in the tool, you might have an error like the one shown above when trying to change the door's palette. I'll draw your attention to this offset circled in red in the image below:

Open your ROM in your hex editor and jump to this offset. As you can see, the palette here is 01, the number of our door's palette. Change this to your desired palette number (in hex!) and save. I'll use palette 3 for tutorial purposes.

After saving the changes you made, if you did everything correctly you should see your door with its new palette when you open your ROM in Door Anim Editor again.

I personally prefer to use Lu-Ho's animation editor to draw the images first as it lets you see the animated frames in action. If you already have frames of the correct palette ready to insert, you could just jump to the offset and import through NSE, but this way is the most beginner-friendly.


16x16 Doors In Emerald

FireRed's doors have dimensions of 16x16 - Emerald differs from this in that its doors are twice as tall at 16x32. This means you either have to have tall cathedral-worthy doors, or have the top part of your door be part of a roof if you like the look of a 16x24 door.
But what if you wanted a 16x16 square door in your Emerald hack, just like FR has? Here is where your hex editor will come in handy.
Open your rom in your hex editor and navigate to 08A4FC, then paste write(not paste insert!) 00 00 00 00. Do the same at 08A508, and save. Let's look at our door animations now...

... There we go! 16x16 door animations a la FireRed in Emerald. Edit to your heart's content. =)


Other Animated Tiles

Unfortunately, our Animation Editor requires an ASM routine to run. Use the tool's internal free space finder to choose an appropriate offset with enough free space. Once you've done this, you'll be able to view most animations - some, such as the tall grass, are not present here, but we'll cover those later!

  • "Speed" is self-explanatory.
  • "StartTile" is the number of the 8x8 block on the tileset where the animation is contained.
  • "Steps Amount" is also self-explanatory - it's the number of frames the animation has.
  • "Tile Amount" is how many 8x8 blocks the animation set consists of.

All you have to do once you've made the changes you want is hit "Save Animations" and you're done.
I personally haven't messed with the other parts of this tool such as adding animations or using its other features, but if you have I'd be happy to hear from you so we can add it here!