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!

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old June 2nd, 2012 (12:43 PM). Edited April 2nd, 2015 by Chaos Rush.
Chaos Rush's Avatar
Chaos Rush Chaos Rush is offline
     
    Join Date: May 2007
    Gender: Male
    Posts: 1,303
    So I've managed to figure out enough to make decent custom battle animations. So far, I've managed to splice multiple animations together, and to add backgrounds to an animation action.


    From what I've figured out so far, there are at least two types of actions:
    1) a background
    2) a movement of a graphic (requires loading correct graphics)

    Note: Everything in this document/tutorial is designed with FireRed in mind. There are pointers within the animation scripts, meaning that unfortunately, these have to be ROM-specific. These will work with FireRed, and only FireRed.

    Here's what I've got of the scripting language so far: (credits at bottom of post for people who found these)
    ------------------------------------------------------------------
    00 XX 27 = loads image data, XX is an argument
    00 XX 28 = same thing as above, but loads from a different bank of graphics

    02 = executes current animation segment
    05 = waits for current animation segment to finish
    06 = does absolutely nothing
    07 = does absolutely nothing
    08 = ends the animation script (DO NOT CONFUSE WITH POINTER!!!)

    0E XX XX XX 08 = jumps to another animation, continues execution of original script when finished (can be used to combine multiple animations to play right after another)
    11 XX XX XX 08 = same as above, haven't figured out the difference yet

    19 XX XX = plays a sound

    Display a non-scrolling, static background: (note: if you change 17 to 16, then transparency effects will be deactivated)
    Code:
    14 WW 17
    Display a scrolling background: (note: if you change 17 to 16, then transparency effects will be deactivated)
    Code:
    14 WW 17 03 2D B8 0B 08 05 04 00 XX 00 YY ZZ 00 FF FF
    -WW = selects which background graphics to display

    Choose one of these for the WW byte:
    Spoiler:
    00 = Dark-type BG, example: Faint Attack
    01 = same as 00
    02 = Ghost-type BG, can scroll horizontally, example: Shadow Punch
    03 = Psychic-type BG, example: Psychic (EXCEPT IT DOESN'T ANIMATE)
    04 = high-impact BG, light coming from top right, example: Focus Punch
    05 = high-impact BG, light coming from bottom left
    06 = high-impact BG, light coming from top left
    07 = Horn Drill BG, can scroll horizontally and vertically, example: Horn Drill
    08 = same as 07, but image is mirrored horizontally
    09 = high-speed BG, can scroll horizontally, example: Mach Punch
    0A = same as 09, but image is mirrored horizontally
    0B = Thunder BG, can scroll horizontally, example: Thunder
    0C = Guillotine BG, light coming from top right, example: Guillotine
    0D = Guillotine BG, light coming from bottom left
    0E = Guillotine BG, light coming from top left
    0F = Ice-type BG, can scroll horizontally, example: Sheer Cold
    10 = Space-oriented BG, can scroll horizontally and vertically, example: Cosmic Power
    11 = Seismic Toss/Sky Uppercut BG, can scroll horizontally and vertically, example: Sky Uppercut
    12 = Flying-type BG, can scroll horizontally and vertically, example: Sky Attack
    13 = same as 12, but image is mirrored horizontally
    14 = Aurora Beam BG, can scroll horizontally, example: Aurora Beam
    15 = Fissure BG, can scroll horizontally (but it artistically makes no sense to do so), example: Fissure
    16 = Silver Wind BG, can scroll horizontally, example: Silver Wind
    17 = same as 16, but image is mirrored horizontally
    18 = SolarBeam BG, light coming from top right, example: SolarBeam
    19 = SolarBeam BG, light coming from bottom left
    1A = SolarBeam BG, light coming from top left

    -XX = how fast background scrolls horizontally
    -YY = how fast background scrolls vertically
    -ZZ = not sure but its either 00 or 01

    Here is what each background looks like:
    Spoiler:
    00:


    01:


    02:


    03:


    04:


    05:


    06:


    07:


    08:


    09:


    0A:


    0B:


    0C:


    0D:


    0E:


    0F:


    10:


    11:


    12:


    13:


    14:


    15:


    16:


    17:


    18:


    19:


    1A:


    Judging by unLZ, these backgrounds are simply tilesets+tilemaps. If we could find the table(s), we could theoretically expand them and have custom backgrounds.

    To display the Psychic-background correctly, do not use the scrolling background command, instead use the 0E command, using it like this:
    Code:
    0E BB 59 1D 08
    This will display the Psychic-type BG, while also animating it correctly.

    To end any scrolling background (also works with the Psychic-BG animation):
    Code:
    0E C7 59 1D 08
    Usually this is placed at the end of the script. If you're going to place it at the end of the script, make sure you add an extra 08 byte to the end of it, otherwise the game will freeze.

    The table for the battle backgrounds starts at 0x3ADE18, and ends at 0x3ADF5B. The format goes like:
    [XX XX XX 08] [YY YY YY 08] [ZZ ZZ ZZ 08] XX = pointer to graphics, YY = pointer to palette, ZZ = pointer to tilemap
    Repoint and extend it, and you can create custom backgrounds:


    Some other info (remember, these are FireRed offsets):
    0x247094 = Attack names
    0x250C04 = Attack data
    0x4886E8 = Attack description pointers
    0x1D65A8 = Battle script pointers
    0x1C68F4 = Attack Animation pointers

    To find the offset of an animation, follow these instructions:
    Spoiler:
    1. Open up this link: http://bulbapedia.bulbagarden.net/wiki/List_of_moves
    2. Find the move you want (for the sake of this example, we'll be using Surf)
    3. According to the list, Surf is #57 in the game index
    4. Open up Windows Calculator, switch to Programmer mode
    5. (make sure the option on the left tab is set to, "Dec") type in 57 (or whatever number your attack is)
    6. Click on "Hex"
    7. Multiply it by 4
    8. Add it by 1C68F4
    9. Whatever the sum is, that offset contains the pointer to your animation. Open up a Hex editor, and go to that offset
    10. The sum I got was 1C69D8. The bytes there are 01 FA 1C 08. The 08 indicates its a pointer.
    11. If you know how to calculate pointers manually, good for you. If you don't, go find a Pointer Calculator on Google or something, or figure out how. With that said, the bytes 01 FA 1C 08 means its pointing to offset 0x1CFA01.
    12. 0x1CFA01 is the Surf animation. Congratulations, you found the offset of your animation!

    (To figure out when the animation starts and ends, simply make a new attack (assuming you've already looked at Jambo51's thread on adding new moves), and expand the attack animation table, and then paste the data of the Surf animation (or whatever attack) into free space and point one of the new attacks to that data. Then open up VBA, open up its Memory Viewer, and go to that data. Then replace the bytes and the end with FF, and keep testing it until the animation crashes (it should only crash when you change an 08 byte) Once it crashes, open up your hex editor, and go to the offset of the data, then make it look like how it does in VBA's memory viewer, then add an 08 at the end with the hex editor.

    Eventually I will post a list of all the animation offsets, I haven't finished typing them all out yet.

    Step-by-step example at creating a custom animation:
    Example 1: Adding a background to an existing animation
    Spoiler:

    So let's say we wanted to create a 4th Gen move. How about... Night Slash. We'll use Slash with the Dark-type background.

    1. Using the steps I showed earlier in this thread, find the offset of whatever animation you want to base it by. The Slash animation is at 0x1caf7b. Insert the Slash animation data into free space, and then go to Night Slash's (or whatever your move is called) slot in the animation table and point to the animation data you just inserted.

    2. For anyone else using it off of Slash's animation, this is the hex data for the Slash animation:
    Code:
    00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
    Right now, our animation looks exactly like Slash:


    3. Now earlier in this thread, I mentioned the scrolling background animation command. Use it, and set WW as the Dark-BG. Place it at the beginning of the animation, and the Slash animation right afterwords. Our animation data should now look like this:
    Code:
    14 00 16 03 2D B8 0B 08 05 04 00 00 00 00 00 00 FF FF 00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08

    Now we got the Dark-background! ...except that it doesn't disappear after the attack is done. That's because we need to add the BG-clear command.

    4. As I mentioned earlier, the BG clear command is: 0E C7 59 1D 08. Remove the 08 byte from our current animation (NOT THE BG COMMAND!!!), then add the BG clear command at the end, and add an extra 08 byte to end the animation, otherwise the game will crash. Our script should now look like this:
    Code:
    14 00 16 03 2D B8 0B 08 05 04 00 00 00 00 00 00 FF FF 00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 0E C7 59 1D 08 08

    Now we have a flawless Night Slash animation! And yes, the background will return to normal after execution of the attack.

    Just for giggles, you can alter the second byte of the BG command (which also happens to be the second byte of our entire Night Slash animation) to change the background (I referred to it as the WW byte):

    (lol Aurora Slash)


    (lol Twinkle Slash)

    And that, is essentially how you take a non-BG animation and add a BG to it.


    Example 2: Merging two animations to play right after another
    Spoiler:
    Just find two separate animation hex data, and then remove the 08 byte from the end of one of them (except if its a pointer), then place the data of the second animation right after it. Alternatively, you can use the 0E or 11 command and point directly to it, but this will limit you to merging only 2 animations. By manually placing the data, you can have as many as you want, meaning you can create a move like, "Ridiculous Tackle", and have an animation that has the player Tackling the opponent 6 times.

    If there's an 05 byte before the 08 byte, remove it, and then they'll play at the same time (perhaps with a slight delay)


    Some info on the 02 command (thanks to DoesntKnowHowToPlay):
    Quote:
    The first two bytes indicate what image data to use, while the next two bytes indicate the palette. The enumeration for this is the same as that of the 00 command- in order for an effect to work properly, the 00 command must have been called for both of these- otherwise the palette and/or image will not be loaded. While the existing animations appear to always have these be the same, they don't have to be- you can for instance give the Stun Spore seeds Fire Blast's palette this way. For some animations both of these are 00- I believe these are effects that don't use images, such as Earthquake's screen-shaking.
    Doing colored backgrounds:
    Quote:
    02 24 7B 3E 08 02 05 01 00 SS 00 00 00 YY 00 XX XX 05

    Where XX XX is the color you want, YY is the intensity (0C for Giga Drain- 10 replaces the background entirely with the given color), and SS is the speed of the transition (01 for Giga Drain, but I imagine Hyper Beam and other attacks use the same logic with a higher value). To revert the background to normal, place the following:

    02 24 7B 3E 08 02 05 01 00 SS 00 YY 00 00 00 XX XX 05 0B 03 0D

    The values here do not have to be the same, but I'd advise making the color and intensity the same or it will abruptly change at the start of the transition back.
    Getting the background to change depending on what side you're on:
    Quote:
    21 07 XX 00 YY YY YY YY branches to YY YY YY YY if the side the attacker is on matches XX. Mega Punch's custom background operates by placing two of these in a row (with XX = 00 and 01) to branch to subroutines that set the background to the correct one and then return.

    0F appears to return to where the initial script left off after a branch.
    Credits:
    -Jambo51 for explaining how to add new attacks, and the offset of several tables, which helped me test animations
    -DoestKnowHowToPlay for already documenting some of the commands
    -Darthatron for finding the table containing all the animation command routines, hopefully these can be used to find out what each command does


    EDIT: Some useful information found by Doesn'tKnowHowToPlay and dreamengine:
    http://www.pokecommunity.com/showpost.php?p=7481054&postcount=32
    http://www.pokecommunity.com/showpost.php?p=7485231&postcount=37
    http://www.pokecommunity.com/showpost.php?p=7485560&postcount=38
    __________________
    Reply With Quote

    Relevant Advertising!

      #2    
    Old June 2nd, 2012 (6:54 PM).
    Gamer2020's Avatar
    Gamer2020 Gamer2020 is offline
    Accept no Imitations!
       
      Join Date: Jun 2008
      Location: Distant Land
      Gender: Male
      Nature: Bold
      Posts: 910
      I added animation repointing to the attack editor in PGE weeks ago but just haven't released the update. There is no need for such complex instructions on repointing
      __________________

      Reply With Quote
        #3    
      Old June 2nd, 2012 (7:10 PM).
      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
      Congrats on working things out! (:
      Hopefully somebody with more talent than me will figure out the last two abilities. o:
      __________________

      ★ full metal.

      I like to push it,
      and push it,
      until my luck is over.
      Reply With Quote
        #4    
      Old June 2nd, 2012 (7:31 PM).
      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. :D We could almost make an animation editor with this data. *ponders*
      __________________
      あなた は しきしゃ です
      わたし は ばか です
      Reply With Quote
        #5    
      Old June 2nd, 2012 (8:43 PM).
      Chaos Rush's Avatar
      Chaos Rush Chaos Rush is offline
         
        Join Date: May 2007
        Gender: Male
        Posts: 1,303
        Quote:
        Originally Posted by Gamer2020 View Post
        I added animation repointing to the attack editor in PGE weeks ago but just haven't released the update. There is no need for such complex instructions on repointing
        Haha, but because you haven't released it yet, I didn't exactly have a choice. It's the only way I can find the animation offsets, as I have no knowledge of tool making. But I'm glad you're still improving PGE.

        Quote:
        Originally Posted by Full Metal View Post
        Congrats on working things out! (:
        Hopefully somebody with more talent than me will figure out the last two abilities. o:
        From what I know, particle movement is controlled by the 0E XX XX XX 08 command, so its simply a matter of loading correct graphics and correct movement to match. But I don't even know where to start for custom particle movement :/


        I also apologize for the poor quality of the second attack example, I will fix it soon. Also I realized that you can use either the 11 command or the 0E command, and place a pointer right after it to any existing attack animation, allowing you to sequentially do attacks. For instance, if you take the animation data of Tackle, remove the 08 byte at the end of it, then place 0E XX XX XX 08, and say we place the pointer to Earthquake's animation in the XX spots, then Tackle's animation will play the Earthquake animation right after it. This saves a lot of space, since it means you don't have to manually place Earthquake's animation data, it just means you can use the 0E or 11 command and point directly to it.
        __________________
        Reply With Quote
          #6    
        Old June 2nd, 2012 (8:45 PM).
        Gamer2020's Avatar
        Gamer2020 Gamer2020 is offline
        Accept no Imitations!
           
          Join Date: Jun 2008
          Location: Distant Land
          Gender: Male
          Nature: Bold
          Posts: 910
          Quote:
          Originally Posted by Darthatron View Post
          Very nice. :D We could almost make an animation editor with this data. *ponders*
          I think it would have to be some sort of script editor, that's the only way I see it working.
          __________________

          Reply With Quote
            #7    
          Old June 2nd, 2012 (9:27 PM).
          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
          Quote:
          Originally Posted by Gamer2020 View Post

          I think it would have to be some sort of script editor, that's the only way I see it working.
          Yes, but with some kind of real-time loading of it would be cool.
          __________________
          あなた は しきしゃ です
          わたし は ばか です
          Reply With Quote
            #8    
          Old June 3rd, 2012 (1:55 AM).
          Chaos Rush's Avatar
          Chaos Rush Chaos Rush is offline
             
            Join Date: May 2007
            Gender: Male
            Posts: 1,303
            I'm pretty sure I just found the table containing the Battle BG's at: 0x3ADE18.

            The format goes like:
            [XX XX XX 08] [YY YY YY 08] [ZZ ZZ ZZ 08]
            XX = pointer to graphics
            YY = pointer to palette
            ZZ = pointer to tilemap

            I haven't tried expanding it, but I will tomorrow (or whenever). This means we can use custom backgrounds, that's actually pretty big.
            __________________
            Reply With Quote
              #9    
            Old June 3rd, 2012 (6:10 AM). Edited June 3rd, 2012 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
            The routines for each of the "commands" for these animations are located in a table at 0x083ADF5C in the ROM. From this, I can say for sure that there are 0x30 commands (0x00-0x2F) and that commands 0x6 and 0x7 do nothing.

            With this we can at least see how many parameters each command has.

            EDIT1: I here-by name command 0x6 "nop" and command 0x7 "darthnop".

            EDIT2:

            Code:
            00:
            01:
            02:
            03: something  ( * byte2) 
            04:
            05: waitstate
            06: nop
            07: nop2
            08:
            09: playsound 
            0A:
            0B:
            0C:
            0D:
            0F:
            10:
            11:
            12:
            13:
            14:
            15:
            16:
            17:
            18:
            19:
            1A:
            1B:
            1C:
            1D:
            1E:
            1F:
            20:
            21:
            22:
            23:
            24:
            25:
            26:
            27:
            28:
            29:
            2A:
            2B:
            2C:
            2D:
            2E:
            2F:
            Edit3: I think when Gamefreak coded this, they set the compiler to "annoy hackers" mode.
            __________________
            あなた は しきしゃ です
            わたし は ばか です
            Reply With Quote
              #10    
            Old June 3rd, 2012 (7:30 PM). Edited June 3rd, 2012 by NintendoBoyDX.
            NintendoBoyDX NintendoBoyDX is offline
               
              Join Date: Jul 2010
              Gender: Male
              Posts: 94
              There's probably couple of tables for these image data. Most likely one for backgrounds, and one for "particles". If we can find these we'll be able to expand them and put our own tilemaps and images in...

              As far as manipulating them, that'd take some assembly work, unless we could find values like how far data moves across the screen, how many times, etc. That way we could reuse the animation, but with slight alterations.

              Edit:
              I've found the table of the "particles" / image data. Darth helped me find with researching a bit.
              It's at 0x083ACC08, and is arranged in 8 byte entries, like so:
              4: word - pointer to image data
              2: hword - something to do with size?
              2: hword - index number

              For example, the first entry...
              0x080D02520 - pointer to the bone image, used in bone rush
              0x0002 - hword that may have something to do with size? not sure needs more research
              0x2710 - hword thats the index number, when calculating, 0x2710 is subtracted from it, no idea why, but 0x2710 is the first one

              083AD510 - seems to have the palette entries that each image uses:
              4: [pointer to palette]
              2: [index number in same format as above]
              2: [unknown]
              Reply With Quote
                #11    
              Old June 4th, 2012 (3:23 PM). Edited June 4th, 2012 by Chaos Rush.
              Chaos Rush's Avatar
              Chaos Rush Chaos Rush is offline
                 
                Join Date: May 2007
                Gender: Male
                Posts: 1,303
                I can now confirm that it is possible to create custom battle backgrounds by expanding the battle background table:



                This custom battle background takes up slot 0x1B (which does not exist in the original FireRed rom)

                The table starts at 0x3ADE18, and ends at 0x3ADF5B. There's another table right after it, which I mistook as part of the same table, so just remember that it ends at 0x3ADF5B, even though it looks like it doesn't.

                I inserted my tileset, palette, and tilemap all with unLZ (I made the tilemap with NTME). Simply insert into free space, then manually point to the offsets you used in your new table with a hex editor.


                For anyone that wants to experiment, here is my tileset and tilemap (the palette is included within the tileset because it's indexed). To test it, insert these with unLZ, keep track of the offsets you inserted the tileset, palette, and tilemap, then repoint and expand the table (make sure you don't mistake the table right after it as part of the original table!!! just look at the start and end offsets I gave earlier in this post), then have the new entries in the table point to your tileset, palette, and tilemap, then make a custom battle animation (or edit an existing one) and use the background slot 0x1B. And yes, I designed the graphics so that it can scroll horizontally.
                Attached Files
                File Type: zip backgrounds.zip‎ (1.2 KB, 130 views) (Save to Dropbox)
                __________________
                Reply With Quote
                  #12    
                Old July 29th, 2012 (6:18 PM).
                Fahreza's Avatar
                Fahreza Fahreza is offline
                   
                  Join Date: Sep 2010
                  Location: Cidamar, Bandung
                  Gender: Male
                  Nature: Timid
                  Posts: 7
                  Ruby Version Please. I make Hack with Ruby Not Fire Red
                  Reply With Quote
                    #13    
                  Old July 30th, 2012 (2:57 PM).
                  FRANKTANK FRANKTANK is offline
                     
                    Join Date: May 2010
                    Age: 22
                    Gender: Male
                    Posts: 34
                    Quote:
                    Originally Posted by Fahreza View Post
                    Ruby Version Please. I make Hack with Ruby Not Fire Red
                    He's not making it specifically for you. Besides, do you know how much work it would take for him to redo all of it for Ruby?
                    Reply With Quote
                      #14    
                    Old July 31st, 2012 (5:51 PM).
                    timson733333's Avatar
                    timson733333 timson733333 is offline
                    Woah.
                       
                      Join Date: Mar 2007
                      Location: Stealth!
                      Gender: Male
                      Nature: Quiet
                      Posts: 130
                      I'd like to know if it's possible to make a tool to do all of this editing.
                      __________________
                      ROM hacking since 2008... and failing miserably still.


                      Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

                      deviantArt | YouTube
                      Reply With Quote
                        #15    
                      Old July 31st, 2012 (8:48 PM).
                      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
                      Quote:
                      Originally Posted by timson733333 View Post
                      I'd like to know if it's possible to make a tool to do all of this editing.
                      Yes it's possible. Just a matter of someone finding the time to do it.
                      __________________
                      あなた は しきしゃ です
                      わたし は ばか です
                      Reply With Quote
                        #16    
                      Old August 1st, 2012 (5:24 AM).
                      Jambo51's Avatar
                      Jambo51 Jambo51 is offline
                      Glory To Arstotzka
                         
                        Join Date: Jun 2009
                        Gender: Male
                        Nature: Quiet
                        Posts: 732
                        Quote:
                        Originally Posted by Fahreza View Post
                        Ruby Version Please. I make Hack with Ruby Not Fire Red
                        Quote:
                        Originally Posted by FRANKTANK View Post
                        He's not making it specifically for you. Besides, do you know how much work it would take for him to redo all of it for Ruby?
                        Actually, because it's a scripting language, it may well work for Ruby (and Emerald) without any modifications, apart from ROM pointers.
                        __________________
                        Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                        Reply With Quote
                          #17    
                        Old August 1st, 2012 (12:18 PM).
                        timson733333's Avatar
                        timson733333 timson733333 is offline
                        Woah.
                           
                          Join Date: Mar 2007
                          Location: Stealth!
                          Gender: Male
                          Nature: Quiet
                          Posts: 130
                          Quote:
                          Originally Posted by Jambo51 View Post
                          it may well work for Ruby (and Emerald) without any modifications, apart from ROM pointers.
                          yay Emerald

                          But for now, time to pull up the hex editor and try adding some new moves/animations manually. :P
                          __________________
                          ROM hacking since 2008... and failing miserably still.


                          Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

                          deviantArt | YouTube
                          Reply With Quote
                            #18    
                          Old August 3rd, 2012 (8:33 AM).
                          ShadowTails's Avatar
                          ShadowTails ShadowTails is offline
                          I'm working on a better Avatar
                             
                            Join Date: Aug 2005
                            Age: 26
                            Gender:
                            Nature: Relaxed
                            Posts: 638
                            Am I on to something here?
                            http://www.youtube.com/watch?v=bRguM5EI09o
                            I basically just copied and pasted Super Fang over Slash without changing any pointers to see if I had actually found the animation data.

                            Yeah, embed isn't working...

                            I'll see if I can play around more with this later and repoint the data. Slash is at 2CD3DB. (or atleast, the data I was playing around with, attempting to copy Substitute over Slash made the game crash, so I just tried the one before it and it worked other than not loading the correct graphics, which obviously it wouldn't since I didn't change any pointers)
                            __________________
                            "This is the best signature on this website."- You, reading this.
                            Reply With Quote
                              #19    
                            Old August 22nd, 2012 (12:59 PM).
                            timson733333's Avatar
                            timson733333 timson733333 is offline
                            Woah.
                               
                              Join Date: Mar 2007
                              Location: Stealth!
                              Gender: Male
                              Nature: Quiet
                              Posts: 130
                              I compared Slash's code from FireRed with Slash's code from Emerald, and this is what I got:

                              FireRed:

                              Code:
                              00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
                              Emerald:

                              Code:
                              00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 08
                              Since the codes are different, would using the scrolling animation code not work? Or would it have to be tweaked? Problem is, I don't know how to tweak it.
                              __________________
                              ROM hacking since 2008... and failing miserably still.


                              Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

                              deviantArt | YouTube
                              Reply With Quote
                                #20    
                              Old August 22nd, 2012 (2:54 PM).
                              Chaos Rush's Avatar
                              Chaos Rush Chaos Rush is offline
                                 
                                Join Date: May 2007
                                Gender: Male
                                Posts: 1,303
                                Quote:
                                Originally Posted by timson733333 View Post
                                I compared Slash's code from FireRed with Slash's code from Emerald, and this is what I got:

                                FireRed:

                                Code:
                                00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
                                Emerald:

                                Code:
                                00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 08
                                Since the codes are different, would using the scrolling animation code not work? Or would it have to be tweaked? Problem is, I don't know how to tweak it.
                                The codes are exactly the same, except for the pointers. The scrolling animation code I had in the first post is for FireRed, so you would need to find the corresponding Emerald pointers and then replace it, then it should work.
                                __________________
                                Reply With Quote
                                  #21    
                                Old August 22nd, 2012 (3:23 PM).
                                timson733333's Avatar
                                timson733333 timson733333 is offline
                                Woah.
                                   
                                  Join Date: Mar 2007
                                  Location: Stealth!
                                  Gender: Male
                                  Nature: Quiet
                                  Posts: 130
                                  Quote:
                                  Originally Posted by Chaos Rush View Post
                                  The codes are exactly the same, except for the pointers. The scrolling animation code I had in the first post is for FireRed, so you would need to find the corresponding Emerald pointers and then replace it, then it should work.
                                  How would I find them?

                                  Also, I'd like to know whether it's possible to remove a background from an existing animation, like Mach Punch or ExtremeSpeed.
                                  __________________
                                  ROM hacking since 2008... and failing miserably still.


                                  Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

                                  deviantArt | YouTube
                                  Reply With Quote
                                    #22    
                                  Old August 22nd, 2012 (4:12 PM).
                                  Chaos Rush's Avatar
                                  Chaos Rush Chaos Rush is offline
                                     
                                    Join Date: May 2007
                                    Gender: Male
                                    Posts: 1,303
                                    Quote:
                                    Originally Posted by timson733333 View Post
                                    How would I find them?

                                    Also, I'd like to know whether it's possible to remove a background from an existing animation, like Mach Punch or ExtremeSpeed.
                                    You could do one of these:

                                    1. Using a hex editor with a search function, such as GoldFinger, search the FireRed code byte-by-byte in an Emerald ROM, but have blank spots where the pointers are. I can guarantee that this is the easiest and fastest way, but you have to know how to use a hex editor.

                                    or

                                    2. Calculate the offsets of the pointers in the FireRed code, go to that offset in a FireRed ROM, and then search the exact same bytes of that offset in an Emerald rom, and then reverse-calculate that offset for Emerald to get a pointer (just write it down in Notepad or MS Word or something), then use a search function to find that new pointer in an Emerald ROM.
                                    __________________
                                    Reply With Quote
                                      #23    
                                    Old August 22nd, 2012 (6:05 PM).
                                    MarinoKadame's Avatar
                                    MarinoKadame MarinoKadame is offline
                                       
                                      Join Date: May 2012
                                      Age: 29
                                      Gender: Male
                                      Posts: 1,552
                                      Anyone tried to do the same thing with BW and B2W2 ?
                                      Reply With Quote
                                        #24    
                                      Old August 23rd, 2012 (6:12 PM).
                                      Mr155555 Mr155555 is offline
                                         
                                        Join Date: Apr 2011
                                        Age: 37
                                        Gender: Male
                                        Nature: Adamant
                                        Posts: 248
                                        Can You Do A Video Explaining Everything That Would Be Very Helpful
                                        __________________
                                        Feraligatr and Krookodile Best Pokemon Ever
                                        my pokemon alpha sapphire team
                                        swampert-ludicolo-altaria-hariyama-torkoal-froslass
                                        Reply With Quote
                                          #25    
                                        Old August 23rd, 2012 (6:37 PM). Edited August 23rd, 2012 by timson733333.
                                        timson733333's Avatar
                                        timson733333 timson733333 is offline
                                        Woah.
                                           
                                          Join Date: Mar 2007
                                          Location: Stealth!
                                          Gender: Male
                                          Nature: Quiet
                                          Posts: 130
                                          Quote:
                                          Originally Posted by MarinoKadame View Post
                                          Anyone tried to do the same thing with BW and B2W2 ?
                                          Why would anyone want to add new moves to the games that have all the moves that people want already? I'm pretty sure that B/W and B2/W2 have a completely different hex language than the GBA games, anyways, so it'd be very hard to do.

                                          Also, I recently tried adding the new animations to FireRed. I grabbed the False Swipe animation and pasted your background code for Night Slash before it (because I think that False Swipe's animation fits Night Slash better than regular Slash, but that's just me.) Then, I repointed (using PGE's Attack Editor) to the offset that I pasted the animation code in. It didn't work; it did the animation for Pound instead. So I grabbed the Night Slash code you made and repointed to that instead. Same thing, didn't work. Am I doing something wrong?
                                          __________________
                                          ROM hacking since 2008... and failing miserably still.


                                          Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

                                          deviantArt | YouTube
                                          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 5:05 AM.