• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Staff applications for our PokéCommunity Daily and Social Media team are now open! Interested in joining staff? Then click here for more info!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Other] What exactly are the starting Offsets for Pokemon Front & Back Sprite Animations in Emerald?

LegendChu

❤ CAREFREE, BUT CARING ❤
  • 14,123
    Posts
    10
    Years
    Can someone tell me what are the starting Animation Offsets for the Front & Back Sprites of Pokemon Emerald? (I'm talking about the Pokemon sprite's animations that happen when a Pokemon appears in wild or Trainer Battles or when you send out your Pokemon for battle)

    I read somewhere that the Animations Table starts at 309AAC, which I'm supposing is Bulbasaur's Front Sprite Animation & ends at 30A18B, with each table being 4 Bytes per Pokemon (I'm not sure though, so please correct me if I'm wrong).

    Okay, now suppose I replace say Azumarill's Sprite with Victini's Sprite, but Azumarill's Animation looks really wierd on Victini, so I want to give another Animation, like say Wurmple's Animation, will replacing Azumarill's Animation offset in the table, with that of Wurmple's Animation offset get things working? (I hope what I'm trying to say isn't too confusing)

    Just a few more questions:-

    1. The obvious first question is - am I right about the starting offsets for the Front Sprite animations?

    2. What is the exact order in which the Animations are stored, because if I'm calculating right, the table is a total of 1760 bytes, which when divided by 4 is 440, which means there are animations for 440 Pokemon. How is that possible?

    3. What about the Back Sprite Animations, what are the starting offsets for those? Are they in the same order are the Front Sprite Animations? Again, what exactly is the order?

    4. In the above example I gave (replacing Azumarill's Animation with Wurmple (if it is possible that way), will just doing what I suggested suffice or do I also have to make changes to where the Offsets point to as well?

    Pika Pika :chu:
     
    If you want to keep the animations, you should use Wichu's Sprite Editor. You can sprite out your own animation and then insert it as Frame 1(because Frame 0 is the static sprite).
     
    If you want to keep the animations, you should use Wichu's Sprite Editor. You can sprite out your own animation and then insert it as Frame 1(because Frame 0 is the static sprite).

    Yes NewDenverCity I'm aware of that, I have a custom Victini sprite for Emerald, which I've inserted into the Azumarill sprite & it is working fine, but the animation is not looking good, so I wanted to change its animation with an existing animation in the game (of Wurmple, as I mentioned). I supposing that just putting Wurmple's Table Offset Number, into Azumarill's Table Offset Number should get the job done.

    I simply wanted to know the starting Offset numbers for Front & Back Sprite Animations & the order they are in, so that I can insert more Sprites which at least look somewhat similar to their original animations or have simple animations.

    Would be grateful if someone could answer the questions I asked, coz I've just got the hang of how to make animated sprites work in Emerald & want to try out more.

    Pika Pika :chu:
     
    You should only change the pointer to the sprite and the palette number because that's more effective. I'm not honestly sure where the animation table is, but the order is the same as the order in the editor, so they're slightly out of order.
     
    Firstly C me, thanks for the reference thread, that's very helpful, but actually that's not what I wanted to know. I don't think my question was that confusing was it.

    Anyways, I searched a bit & this is the thread by ChaosRush, from were I found the Animation Table Offsets.

    https://www.pokecommunity.com/showthread.php?t=324892.

    Refer to steps 5 & 6.

    Step 5: Explanation of how Pokémon animations work in Emerald
    As you all know, in Pokémon Emerald, every Pokémon has a two-frame animation that displays went sent out in-battle, and in the SUMMARY screen. Let me first explain how the table works.

    First of all, each Pokémon has two frames in their animation (except Unown, Spinda, Castform, and Deoxys). Each Pokémon is also assigned an animation number, which is handled separately from how its frames are displayed. There is a table controlling how it switches between frames, and there is another table controlling how it animates (rotation/scaling, etc.).

    Starting at x309AAC and ending at x30A18B is a table. This table is 4 bytes per mon. Each entry in the table is a pointer to part of another table, which starts at x308CBC. At x308CBC is ANOTHER table, this time its 8 bytes per mon (2 pointers per mon). I'm not 100% on how exactly it works, but these pointers point to the code that determines how the frames are switched during its animation.

    As for the actual movement part of the animation, it is handled by a table at x3299EC, for the ront sprites. The table is one byte per mon. There is another table at x60A8C8. This table is also one byte per mon. Both use the same set of animations, however, the indexes that reference the animations are used differently in the back sprite animation table. [/spoiler]

    Step 6: Disabling Pokémon animations (optional, but recommended)
    Spoiler:
    Spoiler:
     
    Spoiler:
    Convert those numbers to hex before you use them.


    Credit to ChaosRush. These are the different kind of animations.
    Spoiler:

    Use those to find which one Wurmple fits and replace the byte that is Azumarill's regular animation and replace it with the Wurmple one.
     
    NewDenverCity my friend, thanks for really trying hard to help me out, but you're just not getting the question buddy.

    I'm already aware of the list of Pokemon that you listed. They are according to their Index numbers, I know that. But talking about Animations, as I said, if the table starts at 309AAC & ends at 30A18B (according to ChaosRush), that's a total of 1760 bytes & 4 bytes for each Pokemon would mean a total of 440 Pokemon Animations, so this is what the ANIMATION TABLE ORDER, should be, right:-

    Spoiler:


    Now the Pointer at 309AAC, is BC 8C 30 08. The first thing I want to know, is whether that Pointer points to the animation of Bulbasaur or the glitch Pokemon before Bulbasaur (most likely).

    Okay, I worked something out to explain what I exactly want to know, while supposing that the the Pointer at 309AAC (BC 8C 30 08) does indeed point to the glitch Pokemon before Bulbasaur.

    Now these are the animation pointers for the first 10 Pokemon.

    Spoiler:


    Given that the first Offset (BC 8C 30 08) is for the glitch Pokemon, Bulbasaur's Animation Offset should be C4 8C 30 08. Now suppose I change the Offsets Pointers for Charmander & Squirtle, to animate like Bulbasaur's animation (& similarly Charmeleon & Wartortle to animate like Ivysaur & also Charizard & Blastoise to animate like Venusaur), something like this:-

    Spoiler:


    If I do that, will Charmander & Squirtle animate like Bulbasaur (also will Charmeleon & Wartortle animate like Ivysaur & will Charizard & Blastoise animate like Venusaur), because I tried it & the Pokemon still animate like their original animations.

    Now what I really want to know, is where exactly is the Table (for both Front & Back Sprite Animations), where I have to make the changes, so that I can get a Pokemon to animate according to my wish. Does anyone know that?

    Do you guys understand the question now, because I've tried my best to explain.

    Pika Pika :chu:
     
    Back
    Top