Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Draconius GO
Reply
 
Thread Tools
  #1    
Old June 20th, 2010 (10:19 AM). Edited November 15th, 2011 by altariaking.
altariaking's Avatar
altariaking altariaking is offline
Needs NO VMs...
     
    Join Date: Dec 2009
    Location: Scotland, Lesmahagow
    Age: 43
    Gender: Male
    Nature: Naive
    Posts: 1,098
    We all know that from Emerald the Pokemon were animated. However, what if this was possible in Ruby and FireRed?
    Well, it is.
    The offset 1E7C64 in Ruby (2349BC in FireRed) is the pointer to the data that tells us how the sprites behave when they appear. So, first of all, simply repoint it to another offset. Simply take your desired offset (I'll be using 0xB00000) and split it into segments.
    Code:
    B0 00 00
    Then, swap the first two digits (B0) with the last two (00), and then add 08 to the end. So now we have this:
    Code:
    00 00 B0 08
    Now, we must go to the offset it was repointed to, and then we need the animation data.
    The first byte is the frame number.
    The second byte does nothing.
    The third byte is how long the image is displayed.
    The fourth byte, again, does nothing.
    To end the animation you must add
    Code:
    FF FF 00 00
    So, here is an example of it all in action:
    Code:
    00 00 0F 00
    01 00 0F 00
    00 00 0F 00
    01 00 0F 00
    00 00 0F 00
    FF FF 00 00
    Of course you can make this code longer if you want, and even add more frames.
    Now, all sprites will have a second frame, so now just insert the two frames for every sprite. A good, efficient way to do this is to insert a blank 128x64 image over every Pokemon in Unl-Z GBA, and then use Advanced Sprite Editor to insert all of the individual frames. You must do this for EVERY Pokemon and their Backsprite, otherwise there are a lot of bugs. Like turning into the Hero.

    There are, however, a few bugs with using this. For instance, as I stated previously, if you don't insert two frames for a Pokemon, it will turn into the player's backsprite. When you exit the bag, or Pokemon menu during a battle, the Pokemon's sprite will move again. Also, if you make the animation data short, then you might not see it during wild battles, and if you make it too long then it will take a while before it does its thing in Trainer battles and the stats screen and such. I think that's it. :\
    __________________
    http://www.pokecommunity.com/member.php?u=253113
    Reply With Quote

    Relevant Advertising!

      #2    
    Old June 21st, 2010 (10:32 PM).
    ZodiacDaGreat's Avatar
    ZodiacDaGreat ZodiacDaGreat is offline
    Working on a Mobile System
       
      Join Date: Feb 2007
      Location: South Pacific
      Age: 25
      Gender: Male
      Nature: Relaxed
      Posts: 429
      Shouldn't be too hard, ...uhm, just find the location where the animation or loading data is.
      __________________
      Reply With Quote
        #3    
      Old June 21st, 2010 (10:44 PM). Edited June 21st, 2010 by Darthatron.
      Darthatron's Avatar
      Darthatron Darthatron is offline
      巨大なトロール。
      • Silver Tier
       
      Join Date: Jan 2006
      Location: Melbourne, Australia
      Age: 26
      Gender: Male
      Nature: Modest
      Posts: 1,152
      Very nice. Thanks for the info. I'll be looking into FireRed offsets now.

      EDIT: I just tried this, and nothing happened. :\
      __________________
      あなた は しきしゃ です
      わたし は ばか です
      Reply With Quote
        #4    
      Old June 23rd, 2010 (1:06 PM).
      altariaking's Avatar
      altariaking altariaking is offline
      Needs NO VMs...
         
        Join Date: Dec 2009
        Location: Scotland, Lesmahagow
        Age: 43
        Gender: Male
        Nature: Naive
        Posts: 1,098
        Quote:
        Originally Posted by Darthatron View Post
        Very nice. Thanks for the info. I'll be looking into FireRed offsets now.

        EDIT: I just tried this, and nothing happened. :\
        I realised the example I posted was too short, so I edited the example and it should work now :D
        __________________
        http://www.pokecommunity.com/member.php?u=253113
        Reply With Quote
          #5    
        Old June 23rd, 2010 (1:11 PM). Edited June 24th, 2010 by Flandre Scarlet.
        Flandre Scarlet's Avatar
        Flandre Scarlet Flandre Scarlet is offline
        Free your mind.
        • Gold Tier
         
        Join Date: Feb 2008
        Location: Australia
        Age: 21
        Gender: Male
        Nature: Adamant
        Posts: 356
        Quote:
        Originally Posted by Darthatron View Post
        Very nice. Thanks for the info. I'll be looking into FireRed offsets now.

        EDIT: I just tried this, and nothing happened. :\
        One for Fire Red will be awesome. xD I hope this works.

        Well sorry for double posting, but I just found the offsets for FireRed, so now we can have animations in FireRed too! :D

        Go to 2349BC in your ROM using a Hex editor, and repoint the offset there. I used B00000 (00 00 B0 08).

        Then use Altariaking's code.

        Code:
        00 00 0F 00
        01 00 0F 00
        00 00 0F 00
        01 00 0F 00
        00 00 0F 00
        FF FF 00 00
        Then you have to save it, and add the animations to EVERY Pokemon or it will be buggy.

        If you use this, please give credits to:
        • Flandre Scarlet (me)
        • Altariaking
        • Shiny Quagsire
        • Crazybuizel
        __________________
        Reply With Quote
          #6    
        Old June 23rd, 2010 (2:59 PM).
        giradialkia's Avatar
        giradialkia giradialkia is offline
        • Crystal Tier
         
        Join Date: Apr 2009
        Location: Ireland
        Age: 24
        Gender: Male
        Nature: Timid
        Posts: 1,566
        Excellent work. I'm already hacking Emerald so I wont try it, but it's brilliant if it works.
        __________________

        I'm working on an album of Pokémon-inspired music. Check out the Soundcloud link if you're interested!


        This is my Soundcloud | | This is my bandcamp
        Reply With Quote
          #7    
        Old June 24th, 2010 (4:14 AM).
        Orinjmate's Avatar
        Orinjmate Orinjmate is offline
        The Orinj of the Mate
           
          Join Date: Jun 2010
          Location: England
          Gender: Male
          Nature: Calm
          Posts: 120
          This sounds rly good! But I probably won't use it because it will take aaagggeeesss to put in a second frame for every pokemon.
          __________________
          Currently working on a new hack named Hollow.
          Pokemon Sky SD Creator
          Reply With Quote
            #8    
          Old June 24th, 2010 (5:12 PM).
          Chaos Rush's Avatar
          Chaos Rush Chaos Rush is offline
             
            Join Date: May 2007
            Gender: Male
            Posts: 1,303
            For anyone who's interested, I've made secondary frames of FR/LG sprites:
            http://www.pokecommunity.com/showthread.php?t=222966

            Even though I've only uploaded up to Parasect, I have up to Slowbro complete. Here's a video of an animated FR/LG Slowbro:
            http://img688.imageshack.us/img688/7651/slowbrolol.mp4
            __________________
            Reply With Quote
              #9    
            Old June 27th, 2010 (12:15 AM). Edited June 27th, 2010 by xGGxToiZ.
            xGGxToiZ's Avatar
            xGGxToiZ xGGxToiZ is offline
            >.//:SO HOT:\\.<
               
              Join Date: Mar 2010
              Location: We're now near the Tin Tower! . xD
              Age: 22
              Gender: Male
              Nature: Modest
              Posts: 44
              Alright, finally! I've been pondering about this all week and now it's true!
              That's amazing!

              But, I have "bug" if you may want to call it reports:
              1. When in battle, when you go to your Pokémon Menu and then do anything that leads you back to the battle screen, the battling Pokémon will move again! (Weird stuff !)

              2. When you encounter a wild Pokémon, it does it's animations long before it gets to its rightful position (You know the big circle?) thus making it look like it doesn't for some Pokémon. (How do you add delay?)

              Oddities:
              1. All of the Pokémon move even the (?)'s when viewed (Not in the description page.) in the PokéDex. (Ruby)

              Oh, and one more thing, the 0F byte in 01/00 00 0F 00 not only controls its duration of being displayed but also when turned into a value like let's say, FF, it will flip the Pokémon in the status screen accordingly! (Used Ruby for this "behavior stuff")

              It's not yet perfect yet but it totally works!
              I hope that we could get it to move (Animations) at the proper moment.

              P.S. How do you make the trainer sprites move? :p
              __________________


              JOHTO ELITE FOUR


              . . .

              Reply With Quote
                #10    
              Old June 27th, 2010 (8:53 AM).
              vediel vediel is offline
                 
                Join Date: May 2010
                Gender: Male
                Posts: 2
                hello a question could put pictures and do not understand the point of re-displacement, and that point what I understand, I'm very interested to learn ^ ^
                Reply With Quote
                  #11    
                Old June 27th, 2010 (9:10 AM).
                Full Metal's Avatar
                Full Metal Full Metal is offline
                C(++) Developer.
                • Silver Tier
                 
                Join Date: Jan 2008
                Location: In my mind.
                Age: 22
                Gender: Male
                Nature: Timid
                Posts: 806
                Quote:
                Originally Posted by xGGxToiZ View Post
                Alright, finally! I've been pondering about this all week and now it's true!
                That's amazing!

                But, I have "bug" if you may want to call it reports:
                1. When in battle, when you go to your Pokémon Menu and then do anything that leads you back to the battle screen, the battling Pokémon will move again! (Weird stuff !)

                2. When you encounter a wild Pokémon, it does it's animations long before it gets to its rightful position (You know the big circle?) thus making it look like it doesn't for some Pokémon. (How do you add delay?)

                Oddities:
                1. All of the Pokémon move even the (?)'s when viewed (Not in the description page.) in the PokéDex. (Ruby)

                Oh, and one more thing, the 0F byte in 01/00 00 0F 00 not only controls its duration of being displayed but also when turned into a value like let's say, FF, it will flip the Pokémon in the status screen accordingly! (Used Ruby for this "behavior stuff")

                It's not yet perfect yet but it totally works!
                I hope that we could get it to move (Animations) at the proper moment.

                P.S. How do you make the trainer sprites move? :p
                for the bugs (1 and 2) i think that would be because we have edited the routine that loads the images, not the routine that executes during battle.
                basically, instead of
                Code:
                readybattle(&battleinfo);
                get_battle_pokemon(&battleinfo,&spriteinfo);
                load_battle_pokemon_sprite_pointer(&spriteinfo);
                load_battle_pokemon_sprite(&spriteinfo);
                get_battle_pokemon(&battleinfo,&spriteinfo1);
                load_battle_pokemon_sprite_pointer(&spriteinfo1);
                load_battle_pokemon_sprite(&spriteinfo1);
                initiate_battle(&battleinfo,&spriteinfo1,&spriteinfo);
                it might look more like this:
                Code:
                void load_sprite(battleinfo* battleinfo,spriteinfo* spriteinfo,spriteinfo* spriteinfo1)
                {
                 get_battle_pokemon(&battleinfo,&spriteinfo);
                 load_battle_pokemon_sprite_pointer(&spriteinfo);
                 load_battle_pokemon_sprite(&spriteinfo);
                 get_battle_pokemon(&battleinfo,&spriteinfo1);
                 load_battle_pokemon_sprite_pointer(&spriteinfo1);
                 load_battle_pokemon_sprite(&spriteinfo1);
                }
                wild_encounter()
                {
                 readybattle(&battleinfo);
                 load_sprite();
                 update_battle_screen();
                 initiate_battle(&battleinfo,&spriteinfo1,&spriteinfo);
                }
                and "update_battle_screen()" would occur every time you reload the screen from something (like the bag, or the pokemon party menu, etc).
                but, this is just a thoery (and no, more than likely, that will *never* compile in any language xD)
                __________________

                ★ full metal.

                I like to push it,
                and push it,
                until my luck is over.
                Reply With Quote
                  #12    
                Old June 27th, 2010 (10:49 AM).
                altariaking's Avatar
                altariaking altariaking is offline
                Needs NO VMs...
                   
                  Join Date: Dec 2009
                  Location: Scotland, Lesmahagow
                  Age: 43
                  Gender: Male
                  Nature: Naive
                  Posts: 1,098
                  Quote:
                  Originally Posted by xGGxToiZ View Post
                  Alright, finally! I've been pondering about this all week and now it's true!
                  That's amazing!

                  But, I have "bug" if you may want to call it reports:
                  1. When in battle, when you go to your Pokémon Menu and then do anything that leads you back to the battle screen, the battling Pokémon will move again! (Weird stuff !)

                  like full metal said, it changes the loading of the sprites and not the battle start.
                  Quote:
                  2. When you encounter a wild Pokémon, it does it's animations long before it gets to its rightful position (You know the big circle?) thus making it look like it doesn't for some Pokémon. (How do you add delay?)
                  just add a ew more of 00 00 0F 00 and that will show only the first frame for as long as you want[/quote]
                  Quote:
                  Oddities:
                  1. All of the Pokémon move even the (?)'s when viewed (Not in the description page.) in the PokéDex. (Ruby)

                  Oh, and one more thing, the 0F byte in 01/00 00 0F 00 not only controls its duration of being displayed but also when turned into a value like let's say, FF, it will flip the Pokémon in the status screen accordingly! (Used Ruby for this "behavior stuff")

                  It's not yet perfect yet but it totally works!
                  I hope that we could get it to move (Animations) at the proper moment.

                  P.S. How do you make the trainer sprites move? :p
                  to ake the trainer move I think it would already work with this code, as long as you add a second frame
                  __________________
                  http://www.pokecommunity.com/member.php?u=253113
                  Reply With Quote
                    #13    
                  Old June 27th, 2010 (9:11 PM). Edited June 27th, 2010 by Shiny Quagsire.
                  Shiny Quagsire's Avatar
                  Shiny Quagsire Shiny Quagsire is offline
                  I'm Still Alive, Elsewhere
                     
                    Join Date: May 2009
                    Location: Hoenn Safari Zone
                    Age: 19
                    Gender: Male
                    Nature: Jolly
                    Posts: 700
                    Wow, never expected this to happen!
                    Anyways, glad this came into the R&D!

                    Wow, never expected this to happen!
                    Anyways, glad this came into the R&D!


                    Stupid browser sent it twice...
                    __________________



                    Reply With Quote
                      #14    
                    Old June 28th, 2010 (2:09 AM).
                    Flandre Scarlet's Avatar
                    Flandre Scarlet Flandre Scarlet is offline
                    Free your mind.
                    • Gold Tier
                     
                    Join Date: Feb 2008
                    Location: Australia
                    Age: 21
                    Gender: Male
                    Nature: Adamant
                    Posts: 356
                    I tried it with trainers, unfortunately it doesn't work. I'm researching into it more, though.
                    __________________
                    Reply With Quote
                      #15    
                    Old June 28th, 2010 (7:09 AM). Edited June 28th, 2010 by Shiny Quagsire.
                    Shiny Quagsire's Avatar
                    Shiny Quagsire Shiny Quagsire is offline
                    I'm Still Alive, Elsewhere
                       
                      Join Date: May 2009
                      Location: Hoenn Safari Zone
                      Age: 19
                      Gender: Male
                      Nature: Jolly
                      Posts: 700
                      Oh, quick reminder. you could also loop an animation by putting this instead:

                      Code:
                      EF FF 00 00
                      With that, it will continuously loop forever and ever, and ever, and so on.

                      Also, I always get a black screen when I do this. I repointed the first pointer to B00000, like you said. I go outside of a building, it's all black. Go into battle, it freezes. :\
                      Fixed it!

                      *edit*
                      I think I found the offset for some other animation! It's at 3cc290. I'm not sure what it is though, but it could be a trainer's animation.
                      __________________



                      Reply With Quote
                        #16    
                      Old June 29th, 2010 (5:31 AM).
                      xGGxToiZ's Avatar
                      xGGxToiZ xGGxToiZ is offline
                      >.//:SO HOT:\\.<
                         
                        Join Date: Mar 2010
                        Location: We're now near the Tin Tower! . xD
                        Age: 22
                        Gender: Male
                        Nature: Modest
                        Posts: 44
                        Quote:
                        Originally Posted by shiny quagsire View Post
                        Oh, quick reminder. you could also loop an animation by putting this instead:

                        Code:
                        EF FF 00 00
                        With that, it will continuously loop forever and ever, and ever, and so on.

                        Also, I always get a black screen when I do this. I repointed the first pointer to B00000, like you said. I go outside of a building, it's all black. Go into battle, it freezes. :\
                        Fixed it!

                        *edit*
                        I think I found the offset for some other animation! It's at 3cc290. I'm not sure what it is though, but it could be a trainer's animation.
                        3cc290 is for FR, right? Well, I replaced the bytes found there with this:
                        00 00 A0 08. Then @ A00000 I used altariaking's code. Then added 2 extra frames to my trainer sprite.

                        [bummer]I tested it in-game but nothing happened, I checked the tile viewer in real time and I saw no extra frame in it at all.[/bummer]

                        But I know it's located somewhere in there . .

                        P.S. I also tried to change the bytes after 3cc294 and nothing happened.
                        __________________


                        JOHTO ELITE FOUR


                        . . .

                        Reply With Quote
                          #17    
                        Old June 29th, 2010 (6:29 AM).
                        Shiny Quagsire's Avatar
                        Shiny Quagsire Shiny Quagsire is offline
                        I'm Still Alive, Elsewhere
                           
                          Join Date: May 2009
                          Location: Hoenn Safari Zone
                          Age: 19
                          Gender: Male
                          Nature: Jolly
                          Posts: 700
                          Maybe it goes to something else :\ I never did say it was for trainers.
                          __________________



                          Reply With Quote
                            #18    
                          Old June 29th, 2010 (1:02 PM).
                          Flandre Scarlet's Avatar
                          Flandre Scarlet Flandre Scarlet is offline
                          Free your mind.
                          • Gold Tier
                           
                          Join Date: Feb 2008
                          Location: Australia
                          Age: 21
                          Gender: Male
                          Nature: Adamant
                          Posts: 356
                          Quote:
                          Originally Posted by shiny quagsire View Post
                          Oh, quick reminder. you could also loop an animation by putting this instead:

                          Code:
                          EF FF 00 00
                          With that, it will continuously loop forever and ever, and ever, and so on.

                          Also, I always get a black screen when I do this. I repointed the first pointer to B00000, like you said. I go outside of a building, it's all black. Go into battle, it freezes. :\
                          Fixed it!

                          *edit*
                          I think I found the offset for some other animation! It's at 3cc290. I'm not sure what it is though, but it could be a trainer's animation.
                          Yeah same, I was hoping it was the trainers animation. Guess it wasn't.

                          Also I can't seem to be able to loop the animation with EF FF 00 00. It freezes as soon as it should loop.
                          __________________
                          Reply With Quote
                            #19    
                          Old June 29th, 2010 (1:19 PM).
                          Shiny Quagsire's Avatar
                          Shiny Quagsire Shiny Quagsire is offline
                          I'm Still Alive, Elsewhere
                             
                            Join Date: May 2009
                            Location: Hoenn Safari Zone
                            Age: 19
                            Gender: Male
                            Nature: Jolly
                            Posts: 700
                            Wait, I forgot to mention he said not to do it with pokemon, and he did it with "Ivan's" backsprite. I've played his game, and the player's backsprite is moving. Maybe the place I found is the backsprite, or some other animation.
                            __________________



                            Reply With Quote
                              #20    
                            Old June 29th, 2010 (3:15 PM). Edited June 29th, 2010 by Corvus of the Black Night.
                            Corvus of the Black Night's Avatar
                            Corvus of the Black Night Corvus of the Black Night is offline
                            Wild Duck Pokémon
                            • Gold Tier
                            • Gold Tier
                             
                            Join Date: Feb 2009
                            Location: With the Birds
                            Age: 24
                            Gender: Other
                            Nature: Impish
                            Posts: 3,429
                            Make sure you repoint the animation if it's larger han the original (which it probably will be). Also, I'm way too lazy and unmotivated to find the pointer for FR, so mine only works for Ruby. I was able to edit both the Pokemon sprites (whose back and front animations are connected and thus the same) and also the backsprite. Actually all three character backsprites use different animations but I just set them all the same because it was easier, lol

                            By the way, I was using a different Edian than is used with Hex Editors (I was using a tile viewer after all), so try switching the values around a bit.

                            If this helps, you should be able to find it near the sprite tables.

                            By the way, this is Crazybuizel, if you didn't know already
                            Reply With Quote
                              #21    
                            Old June 29th, 2010 (4:59 PM).
                            Shiny Quagsire's Avatar
                            Shiny Quagsire Shiny Quagsire is offline
                            I'm Still Alive, Elsewhere
                               
                              Join Date: May 2009
                              Location: Hoenn Safari Zone
                              Age: 19
                              Gender: Male
                              Nature: Jolly
                              Posts: 700
                              Yeah, I knew that. I'll try to find it, but fire red's backsprites are uncompressed, so it will most likely not be around the sprite tables.

                              *offtopic* I love your hack. It's awesome
                              __________________



                              Reply With Quote
                                #22    
                              Old June 29th, 2010 (6:28 PM).
                              sir.euge's Avatar
                              sir.euge sir.euge is offline
                              Bunchies Back!
                                 
                                Join Date: Jun 2009
                                Gender: Male
                                Nature: Naughty
                                Posts: 143
                                Wow now someone can make all of them animated and then upload their ips patch for all of us! Yay
                                __________________
                                Reply With Quote
                                  #23    
                                Old June 29th, 2010 (6:36 PM).
                                altariaking's Avatar
                                altariaking altariaking is offline
                                Needs NO VMs...
                                   
                                  Join Date: Dec 2009
                                  Location: Scotland, Lesmahagow
                                  Age: 43
                                  Gender: Male
                                  Nature: Naive
                                  Posts: 1,098
                                  Quote:
                                  Originally Posted by sir.euge View Post
                                  Wow now someone can make all of them animated and then upload their ips patch for all of us! Yay
                                  why? it's not that hard, why don't you do it yourself instead of relying on other people to do it for you?
                                  __________________
                                  http://www.pokecommunity.com/member.php?u=253113
                                  Reply With Quote
                                    #24    
                                  Old June 29th, 2010 (7:27 PM).
                                  Shiny Quagsire's Avatar
                                  Shiny Quagsire Shiny Quagsire is offline
                                  I'm Still Alive, Elsewhere
                                     
                                    Join Date: May 2009
                                    Location: Hoenn Safari Zone
                                    Age: 19
                                    Gender: Male
                                    Nature: Jolly
                                    Posts: 700
                                    Quote:
                                    Originally Posted by altariaking View Post


                                    why? it's not that hard, why don't you do it yourself instead of relying on other people to do it for you?
                                    I agree. If they had a patch, everyone would have animated sprites, and it would be too common of a feature. It's easy enough to do as is.
                                    __________________



                                    Reply With Quote
                                      #25    
                                    Old June 29th, 2010 (8:01 PM).
                                    xGGxToiZ's Avatar
                                    xGGxToiZ xGGxToiZ is offline
                                    >.//:SO HOT:\\.<
                                       
                                      Join Date: Mar 2010
                                      Location: We're now near the Tin Tower! . xD
                                      Age: 22
                                      Gender: Male
                                      Nature: Modest
                                      Posts: 44
                                      Oh, right. I see now.

                                      Well, I have some time in my hands so I could look for them.

                                      And a patch for animations? If that were to happen, then all hacks that wish to have those animations in there hack will have the same animations. shiny quagsire's right, it'll make animations not so unique anymore. You could edit it but hey why bother? We can make it ourselves err.. right? :\

                                      Oh and altariaking, thanks for the delay tip!
                                      __________________


                                      JOHTO ELITE FOUR


                                      . . .

                                      Reply With Quote
                                      Reply

                                      Quick Reply

                                      Join the conversation!

                                      Create an account to post a reply in this thread, participate in other discussions, and more!

                                      Create a PokéCommunity Account

                                      Sponsored Links
                                      Thread Tools

                                      Posting Rules
                                      You may not post new threads
                                      You may not post replies
                                      You may not post attachments
                                      You may not edit your posts

                                      BB code is On
                                      Smilies are On
                                      [IMG] code is On
                                      HTML code is Off

                                      Forum Jump


                                      All times are GMT -8. The time now is 9:05 PM.