ROM Hacking Help Need a helping hand? You can get help on any ROM Hacking-related problems or questions you have here.

Closed Thread
 
Thread Tools
  #25901    
Old August 7th, 2013 (5:46 PM).
destinedjagold's Avatar
destinedjagold destinedjagold is offline
Oh Hai Thar~
 
Join Date: May 2007
Location: Philippines
Age: 28
Gender: Male
Nature: Careful
Posts: 8,591
A simple question: what are the variables which are safe to use in a Ruby ROM?

I am just recently introduced to vars (don't ask), and I created my very first script using vars, but I am not sure what variables are safe to use. :3
__________________

  #25902    
Old August 7th, 2013 (5:49 PM).
GoGoJJTech's Avatar
GoGoJJTech GoGoJJTech is offline
(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
 
Join Date: Nov 2012
Location: Earth
Age: 20
Gender: Female
Nature: Jolly
Posts: 2,475
Well DJG, there is no list for Ruby, but maybe deleting certain events that use them can ensure they're free. However, a var can hold a value from 0-65535, so you may only need like two. So just to be safe, vars in the 4000 area. I'm pretty sure 8000 and higher are unsafe or temporary

Pokefreake
Use NSE or in un-lz, import an image, write the import offset, import pal, and don't click automatically fix pointers.
__________________
I believe in Jesus Christ my Savior. If you do too, and aren't scared to admit it, then copy and paste this into your signature.
The HGSS Music Patch - The BW/2 Music Patch - ASM: Switch Music Based on Seasons
Romhack.me Profile - Pokecommunity Profile - Youtube Channel

Support me at my site!
Pokémon Platinum Red and Blue
  #25903    
Old August 7th, 2013 (6:51 PM).
destinedjagold's Avatar
destinedjagold destinedjagold is offline
Oh Hai Thar~
 
Join Date: May 2007
Location: Philippines
Age: 28
Gender: Male
Nature: Careful
Posts: 8,591
Quote:
Originally Posted by gogojjtech View Post
Well DJG, there is no list for Ruby, but maybe deleting certain events that use them can ensure they're free. However, a var can hold a value from 0-65535, so you may only need like two. So just to be safe, vars in the 4000 area. I'm pretty sure 8000 and higher are unsafe or temporary
Yesh, the very first var I used is 4000, since I based it on Birch's script where he's being chased by a Poochyena.

Thankies for the info, by the way~ ;)
__________________

  #25904    
Old August 7th, 2013 (8:06 PM).
kearnseyboy6's Avatar
kearnseyboy6 kearnseyboy6 is offline
Aussie's Toughest Mudder
     
    Join Date: Dec 2008
    Posts: 300
    Hi all, I am new to ASM and it's going pretty well. Here's my code

    Quote:
    .text
    .align 2
    .thumb
    .thumb_func
    .global nature

    main:
    push {r0-r1, lr} \\lets me work with r0 and r1
    ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
    ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
    add r1, r1, #0x1 \\ adds 1 to the word in r1
    str r0, [r1] \\ stores the 'word' in r1 to the address in r0.
    pop {r0-r1, pc} \\ puts the registers back :)


    .align 2
    .POKE_DATA:
    .word 0x02024284 \\address of the the PID
    Now is their a reason why this doesn't add 1 to the PID? I know its encrypted but I expected a bad egg instead of nothing. 100% sure the script works.
    __________________
    HOLIDAYING CURRENTLY!!
      #25905    
    Old August 7th, 2013 (8:28 PM). Edited August 7th, 2013 by karatekid552.
    karatekid552's Avatar
    karatekid552 karatekid552 is offline
    What happens if I push it?....
       
      Join Date: Nov 2012
      Location: Do you really want to know? Really?
      Gender: Male
      Nature: Bold
      Posts: 1,766
      Quote:
      Originally Posted by kearnseyboy6 View Post
      Hi all, I am new to ASM and it's going pretty well. Here's my code



      Now is their a reason why this doesn't add 1 to the PID? I know its encrypted but I expected a bad egg instead of nothing. 100% sure the script works.
      Just because it doesn't make a bad egg, doesn't mean it doesn't work. Did you open up the memory viewer at that address and check it before and after? (I haven't read your asm yet, I'm going back now..)

      Edit: You made a very common mistake. One sec...

      Code:
      .text
      .align 2
      .thumb
      .thumb_func
      .global nature
      
      main:
      push {r0-r1, lr} \\lets me work with r0 and r1
      ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
      ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
      add r1, r1, #0x1 \\ adds 1 to the word in r1
      str r1, [r0] \\ stores the 'word' in r1 to the address in r0.
      pop {r0-r1, pc} \\ puts the registers back 
      
      
      .align 2
      .POKE_DATA:
      .word 0x02024284 \\address of the the PID
      Str and ldr tend to confuse people.

      ldr works like this:

      ldr rX, [rH]
      <-----------

      str works like this:

      str rX, [rH]
      ------------>

      Understand? They move in different directions. You load right to left, and store left to right. There are very few commands that work left to right, and str is one of them, which trips people up. Remember, [] signify the data at an address. So, str r0, [r1] would read the PID as a memory address and try and store the address in r0 there. Not good..XD
      __________________

      Paired with Simba
        #25906    
      Old August 7th, 2013 (8:39 PM). Edited August 7th, 2013 by Elaitenstile.
      Elaitenstile's Avatar
      Elaitenstile Elaitenstile is offline
      I am legend
         
        Join Date: Feb 2013
        Posts: 1,908
        Quote:
        Originally Posted by DoesntKnowHowToPlay View Post
        (not to mention that if you retype curse and don't have eggs, ??? is perfectly usable as long as you either use the phys/spec split or break all the related checks)

        http://www.pokecommunity.com/showthread.php?t=266698 relevant
        The only problem being I'm positive that the escapade move Struggle is the ??? type. I'm not sure about that but I think so. However Curse is a defensive move so yeah, the re-typing wont effect it

        Quote:
        Originally Posted by destinedjagold View Post
        A simple question: what are the variables which are safe to use in a Ruby ROM?

        I am just recently introduced to vars (don't ask), and I created my very first script using vars, but I am not sure what variables are safe to use. :3
        You'd be surprised to know that after a certain point (near Fortree I think) the game stats using vars like 0x1, 0x2, 0x3 etc.
        __________________
        ~
          #25907    
        Old August 7th, 2013 (8:51 PM). Edited August 7th, 2013 by kearnseyboy6.
        kearnseyboy6's Avatar
        kearnseyboy6 kearnseyboy6 is offline
        Aussie's Toughest Mudder
           
          Join Date: Dec 2008
          Posts: 300
          Spoiler:
          Quote:
          Originally Posted by karatekid552 View Post
          Just because it doesn't make a bad egg, doesn't mean it doesn't work. Did you open up the memory viewer at that address and check it before and after? (I haven't read your asm yet, I'm going back now..)

          Edit: You made a very common mistake. One sec...

          Code:
          .text
          .align 2
          .thumb
          .thumb_func
          .global nature
          
          main:
          push {r0-r1, lr} \\lets me work with r0 and r1
          ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
          ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
          add r1, r1, #0x1 \\ adds 1 to the word in r1
          str r1, [r0] \\ stores the 'word' in r1 to the address in r0.
          pop {r0-r1, pc} \\ puts the registers back 
          
          
          .align 2
          .POKE_DATA:
          .word 0x02024284 \\address of the the PID
          Str and ldr tend to confuse people.

          ldr works like this:

          ldr rX, [rH]
          <-----------

          str works like this:

          str rX, [rH]
          ------------>

          Understand? They move in different directions. You load right to left, and store left to right. There are very few commands that work left to right, and str is one of them, which trips people up. Remember, [] signify the data at an address. So, str r0, [r1] would read the PID as a memory address and try and store the address in r0 there. Not good..XD
          Yes it does thanks! Thanks for clearing it up the [] as well, I now understand how values are pulled from an address without moving the address too XD. But are you 100% on the str though? In JPANs doc it quotes thumb assembly doesn't swap the convention unlike other languages:

          Quote:
          Notice that str, unlike some other assembly languages, is not an inverted form of Ldr. In thumb, both str’s and ldr’s have the same format
          I am happy to change my thinking but when I use this code (modifies HP) it works perfectly. I also have memory viewer on auto update too
          Spoiler:
          .text
          .align 2
          .thumb
          .thumb_func
          .global healthbooster

          main:
          push {r0-r1, lr}
          ldrh r0, .POKE_DATA
          ldr r1, [r0]
          add r0, r0, #0x64
          strh r0, [r1]
          pop {r0-r1, pc}


          .align 2
          .POKE_DATA:
          .word 0x02024287


          Sorry KK552, your method worked, I must have understood JPAN wrong. It worked like a charm! I got my bad egg :) Now to fix the checksum and I will be rolling. Thanks for the push!

          Also has anyone edited the PID? Or is it impossible haha!
            #25908    
          Old August 7th, 2013 (9:04 PM). Edited August 7th, 2013 by karatekid552.
          karatekid552's Avatar
          karatekid552 karatekid552 is offline
          What happens if I push it?....
             
            Join Date: Nov 2012
            Location: Do you really want to know? Really?
            Gender: Male
            Nature: Bold
            Posts: 1,766
            Quote:
            Originally Posted by kearnseyboy6 View Post
            Yes it does thanks! Thanks for clearing it up the [] as well, I now understand how values are pulled from an address without moving the address too XD. But are you 100% on the str though? In JPANs doc it quotes thumb assembly doesn't swap the convention unlike other languages:



            I am happy to change my thinking but when I use this code (modifies HP) it works perfectly. I also have memory viewer on auto update too :)
            Spoiler:
            .text
            .align 2
            .thumb
            .thumb_func
            .global healthbooster

            main:
            push {r0-r1, lr}
            ldrh r0, .POKE_DATA
            ldr r1, [r0]
            add r0, r0, #0x64
            strh r0, [r1]
            pop {r0-r1, pc}


            .align 2
            .POKE_DATA:
            .word 0x02024287
            What he meant there, was that str and ldr don't look like this:

            ldr r1, [r0]
            str [r0], r1

            see how they are opposites?

            ~~~~~~~~
            Judging from what I know, that code should not work.....
            Seeing as how I wrote my own forme change code... I know how str works.....


            Edit: what threw me off was the ldrh. That code will work. One sec....


            .text
            .align 2
            .thumb
            .thumb_func
            .global healthbooster

            main:
            push {r0-r1, lr}
            ldrh r0, .POKE_DATA /*You are loading an address into r0, always load the full thing, not half. Though, it may not make a difference, not a good habit.*/
            ldrh r1, [r0] /*load what is at the address .POKE_DATA into r1. Here you are loading a word, shouldn't you be loading a half-word?*/
            add r0, r0, #0x64 /*Add 100 to r0, and place on r0. Looks like, we are moving to the next pokemons HP, which is 100 bytes away...*/
            strh r0, [r1] /*Store the bottom half of the address of the second pokemon at the random number you loaded from the pokemon data.*/
            pop {r0-r1, pc}


            .align 2
            .POKE_DATA:
            .word 0x02024287


            Creating a correct version now....

            Code:
            .align 2
            .thumb
            .thumb_func
            .global healthbooster
            
            main:
                push {r0-r1, lr}
                ldr r0, .POKE_DATA
                ldrh r1, [r0]
                add r1, r1, #0x64
                strh r1, [r0]
                pop {r0-r1, pc}
            
            
            .align 2
            .POKE_DATA:
                .word 0x02024287
            That should work. I also seriously confused myself while correcting the first one. Let me fix that... Fixed.
            __________________

            Paired with Simba
              #25909    
            Old August 7th, 2013 (9:18 PM).
            kearnseyboy6's Avatar
            kearnseyboy6 kearnseyboy6 is offline
            Aussie's Toughest Mudder
               
              Join Date: Dec 2008
              Posts: 300
              Quote:
              Originally Posted by karatekid552 View Post
              What he meant there, was that str and ldr don't look like this:

              ldr r1, [r0]
              str [r0], r1

              see how they are opposites?

              ~~~~~~~~
              Judging from what I know, that code should not work.....
              Seeing as how I wrote my own forme change code... I know how str works.....


              Edit: what threw me off was the ldrh. That code will work. One sec....


              .text
              .align 2
              .thumb
              .thumb_func
              .global healthbooster

              main:
              push {r0-r1, lr}
              ldrh r0, .POKE_DATA /*You are loading an address into r0, always load the full thing, not half. Though, it may not make a difference, not a good habit.*/
              ldrh r1, [r0] /*load what is at the address .POKE_DATA into r1. Here you are loading a word, shouldn't you be loading a half-word?*/
              add r0, r0, #0x64 /*Add 100 to r0, and place on r0. Looks like, we are moving to the next pokemons HP, which is 100 bytes away...*/
              strh r0, [r1] /*Store the bottom half of that address as the new HP on the original first pokemon.*/
              pop {r0-r1, pc}


              .align 2
              .POKE_DATA:
              .word 0x02024287


              So, effectively, you stored the address of the second pokemon as the HP of the first pokemon. Which would have maxed it out.

              Creating a correct version now....
              Oh god! Sorry this is not my code! I edited it for my new one! This is the original (I know it's not 100% efficient!)

              Spoiler:
              .text
              .align 2
              .thumb
              .thumb_func
              .global healthbooster

              main:
              push {r0-r1, lr}
              ldr r0, .POKE_DATA
              ldr r0, [r0]
              ldr r1, .POKE_DATA
              add r0, r0, #0x64
              strh r0, [r1]
              pop {r0-r1, pc}


              .align 2
              .POKE_DATA:
              .word 0x020242DC


              Thanks for the help!
                #25910    
              Old August 7th, 2013 (9:22 PM).
              karatekid552's Avatar
              karatekid552 karatekid552 is offline
              What happens if I push it?....
                 
                Join Date: Nov 2012
                Location: Do you really want to know? Really?
                Gender: Male
                Nature: Bold
                Posts: 1,766
                Quote:
                Originally Posted by kearnseyboy6 View Post
                Oh god! Sorry this is not my code! I edited it for my new one! This is the original (I know it's not 100% efficient!)

                Spoiler:
                .text
                .align 2
                .thumb
                .thumb_func
                .global healthbooster

                main:
                push {r0-r1, lr}
                ldr r0, .POKE_DATA
                ldr r0, [r0]
                ldr r1, .POKE_DATA
                add r0, r0, #0x64
                strh r0, [r1]
                pop {r0-r1, pc}


                .align 2
                .POKE_DATA:
                .word 0x020242DC


                Thanks for the help!

                No problem.:P

                Spoiler:
                .text
                .align 2
                .thumb
                .thumb_func
                .global healthbooster

                main:
                push {r0-r1, lr}
                ldr r0, .POKE_DATA
                ldr r0, [r0]
                ldr r1, .POKE_DATA <- REALLY IMPORTANTE!!!
                add r0, r0, #0x64
                strh r0, [r1]
                pop {r0-r1, pc}


                .align 2
                .POKE_DATA:
                .word 0x020242DC


                Edit: Don't worry about being inefficient. Game freak was SUPER inefficient in their code. When you start looking at the in game code, you will see what I mean.
                __________________

                Paired with Simba
                  #25911    
                Old August 7th, 2013 (9:40 PM).
                Aethestode's Avatar
                Aethestode Aethestode is offline
                Hacker
                   
                  Join Date: Jan 2008
                  Location: Australia
                  Gender: Male
                  Nature: Serious
                  Posts: 1,690
                  How to remove the need of Badge to use HM moves outside of battle for Firered?

                  e.g. I want to remove the need of Soul Badge to use the move, Hm: Surf.
                  __________________

                  Name: Sinep
                  Adopt one yourself! @Pokémon Orphanage
                    #25912    
                  Old August 7th, 2013 (9:45 PM).
                  karatekid552's Avatar
                  karatekid552 karatekid552 is offline
                  What happens if I push it?....
                     
                    Join Date: Nov 2012
                    Location: Do you really want to know? Really?
                    Gender: Male
                    Nature: Bold
                    Posts: 1,766
                    Quote:
                    Originally Posted by rockmanmegaman View Post
                    How to remove the need of Badge to use HM moves outside of battle for Firered?

                    e.g. I want to remove the need of Soul Badge to use the move, Hm: Surf.
                    Find the scripts, remove the check flag.
                    __________________

                    Paired with Simba
                      #25913    
                    Old August 7th, 2013 (9:59 PM).
                    Aethestode's Avatar
                    Aethestode Aethestode is offline
                    Hacker
                       
                      Join Date: Jan 2008
                      Location: Australia
                      Gender: Male
                      Nature: Serious
                      Posts: 1,690
                      Quote:
                      Originally Posted by karatekid552 View Post
                      Find the scripts, remove the check flag.
                      That's the thing. If i remove the checkflag, it'll set the badge on. I don't want that. I want the player to be able to use the HM freely without the need of the badges.
                        #25914    
                      Old August 7th, 2013 (10:09 PM).
                      karatekid552's Avatar
                      karatekid552 karatekid552 is offline
                      What happens if I push it?....
                         
                        Join Date: Nov 2012
                        Location: Do you really want to know? Really?
                        Gender: Male
                        Nature: Bold
                        Posts: 1,766
                        Quote:
                        Originally Posted by rockmanmegaman View Post
                        That's the thing. If i remove the checkflag, it'll set the badge on. I don't want that. I want the player to be able to use the HM freely without the need of the badges.
                        No, not that script. The script that is called when you want to use an HM. It has a check flag, that needs to be removed. If it doesn't check the flag, it will just move through without the need of a badge. You are like the 500th person to ask that on this thread.
                        __________________

                        Paired with Simba
                          #25915    
                        Old August 8th, 2013 (4:41 AM).
                        AtecainCorp.'s Avatar
                        AtecainCorp. AtecainCorp. is offline
                        Rejishan awake...
                           
                          Join Date: Jun 2008
                          Location: Takoabe Town (Region Thonsu)
                          Age: 25
                          Gender: Male
                          Nature: Hardy
                          Posts: 1,297
                          Two questions about Pokemon Ruby.

                          1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
                          - If it was possible... How to edit their effectivnese.

                          2. How add new Voicegroup to Pokemon Ruby? I want add to my hack something like GB PLAYER. And I need to inster GBC Soundfonts.
                          __________________
                          - My new Project comming Soon
                            #25916    
                          Old August 8th, 2013 (5:10 AM). Edited August 8th, 2013 by Wobbu.
                          Wobbu's Avatar
                          Wobbu Wobbu is offline
                          Drag a needle on the good today
                             
                            Join Date: Mar 2012
                            Location: Stardew Valley
                            Gender: Male
                            Nature: Relaxed
                            Posts: 2,793
                            Quote:
                            Originally Posted by Ksiazek Bartlomiej View Post
                            Two questions about Pokemon Ruby.

                            1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
                            - If it was possible... How to edit their effectivnese.

                            2. How add new Voicegroup to Pokemon Ruby? I want add to my hack something like GB PLAYER. And I need to inster GBC Soundfonts.
                            1. A couple pages earlier in this thread there was a discussion about adding types.

                            2. Using a hex editor, find 0x600 free bytes, then write 00 3C 00 00 00 00 00 08 00 00 00 00 to the free space 128 times (I recommend using a fill selection feature). This would be the setup for a single sample instrument. Fortunately, Sappy can change the setup for you if you have a multi sample instrument.

                            I'd rather not go too in-depth because gogojjtech has explained this: http://www.pokecommunity.com/showthread.php?t=301027

                            Fortunately for you, Ruby already has the GBC 'soundfonts.' They're called squares, waves, and noises, and can be created with Sappy.
                            __________________

                            My Favorite Song
                              #25917    
                            Old August 8th, 2013 (6:27 AM).
                            karatekid552's Avatar
                            karatekid552 karatekid552 is offline
                            What happens if I push it?....
                               
                              Join Date: Nov 2012
                              Location: Do you really want to know? Really?
                              Gender: Male
                              Nature: Bold
                              Posts: 1,766
                              Quote:
                              Originally Posted by Ksiazek Bartlomiej View Post
                              Two questions about Pokemon Ruby.

                              1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
                              - If it was possible... How to edit their effectivnese.
                              Stop asking questions like these. You know that in order to increase limits and add more, it will require a little bit of ASM, even if it is just following the loading routine and increasing the limits. However, you adamantly refuse to learn even the most basic of ASM. Instead hounding us for a different answer, which there is none.
                              __________________

                              Paired with Simba
                                #25918    
                              Old August 8th, 2013 (1:53 PM).
                              Alice's Avatar
                              Alice Alice is offline
                              (>^.(>0.0)>
                               
                              Join Date: Mar 2009
                              Location: Oregon
                              Age: 26
                              Gender: Female
                              Nature: Careful
                              Posts: 3,079
                              So this is weird... the name of routes/towns/etc only display in the starter town, and nowhere else. Any idea why that's happening? I have it set to show name of course.
                                #25919    
                              Old August 8th, 2013 (2:05 PM).
                              sCr45h's Avatar
                              sCr45h sCr45h is offline
                              The Littleroot Champ
                                 
                                Join Date: Jun 2012
                                Location: Littleroot Town
                                Gender: Male
                                Nature: Relaxed
                                Posts: 138
                                So, I was wandering, if I start working on a hack, can I make the maps now and insert the new tiles and sprites later or do I have to do it while creating the maps? Im a noob so I'm trying to learn abit more. Its just that I started a Hack and I want to make it the best I can but Im still learning.
                                __________________
                                "The more you stare, the funnier it gets"
                                -sCr45h 2k16
                                  #25920    
                                Old August 8th, 2013 (3:26 PM).
                                athenian200 athenian200 is offline
                                   
                                  Join Date: Jun 2013
                                  Gender: Male
                                  Posts: 17
                                  I'm working with Pokémon Ruby, and I'm trying to replace the move Cotton Spore with Electroweb (a move from Generation V). I've figured out how to edit the move name, description, and the actual effects of the attack using A-Tack and a hex editor with tables.

                                  But I have no idea how to change the battle animation/effect. I'd settle for making it use the same one as Spider Web, although ideally I'd like the web to be tinted yellow.

                                  All the information I've been able to find about this talks about Fire Red, and the one tool I found that claimed to do this (PGE's built in attack editor), causes the game to display a white screen and crash on start up, if I so much as TOUCH the game with that tool.

                                  So now I'm thinking of just trying to find the tables/pointers manually and do this in a hex editor or something, unless there's a better way. Anyone have any idea how to do this?
                                    #25921    
                                  Old August 8th, 2013 (4:09 PM).
                                  GoGoJJTech's Avatar
                                  GoGoJJTech GoGoJJTech is offline
                                  (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
                                   
                                  Join Date: Nov 2012
                                  Location: Earth
                                  Age: 20
                                  Gender: Female
                                  Nature: Jolly
                                  Posts: 2,475
                                  Athenian, use pokemon game editor's attack editor.

                                  sC45h, it doesn't matter as long as you're using advance map 1.92, not 1.95
                                  __________________
                                  I believe in Jesus Christ my Savior. If you do too, and aren't scared to admit it, then copy and paste this into your signature.
                                  The HGSS Music Patch - The BW/2 Music Patch - ASM: Switch Music Based on Seasons
                                  Romhack.me Profile - Pokecommunity Profile - Youtube Channel

                                  Support me at my site!
                                  Pokémon Platinum Red and Blue
                                    #25922    
                                  Old August 8th, 2013 (4:31 PM).
                                  DoesntKnowHowToPlay's Avatar
                                  DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
                                  Tiny Umbrella with Lots and Lots of Good
                                     
                                    Join Date: Jan 2012
                                    Posts: 258
                                    Quote:
                                    Originally Posted by athenian200 View Post
                                    I'm working with Pokémon Ruby, and I'm trying to replace the move Cotton Spore with Electroweb (a move from Generation V). I've figured out how to edit the move name, description, and the actual effects of the attack using A-Tack and a hex editor with tables.

                                    But I have no idea how to change the battle animation/effect. I'd settle for making it use the same one as Spider Web, although ideally I'd like the web to be tinted yellow.

                                    All the information I've been able to find about this talks about Fire Red, and the one tool I found that claimed to do this (PGE's built in attack editor), causes the game to display a white screen and crash on start up, if I so much as TOUCH the game with that tool.

                                    So now I'm thinking of just trying to find the tables/pointers manually and do this in a hex editor or something, unless there's a better way. Anyone have any idea how to do this?
                                    Simplest way would be to take bits of move animation data in FR in a hex editor (offsets for this are documented somewhere in R&D) and search for it in Ruby. It'll probably take a few tries to get something that isn't different between the two ROMs, but the general structures of the scripts and the commands are the same so it should be doable. Once you've found a battle script in Ruby, search for the pointer to it and there's your animation pointer table.
                                    __________________

                                    Yet Another Fire Red Hack

                                    Physical/Special Split
                                      #25923    
                                    Old August 8th, 2013 (6:38 PM).
                                    karatekid552's Avatar
                                    karatekid552 karatekid552 is offline
                                    What happens if I push it?....
                                       
                                      Join Date: Nov 2012
                                      Location: Do you really want to know? Really?
                                      Gender: Male
                                      Nature: Bold
                                      Posts: 1,766
                                      Quote:
                                      Originally Posted by sCr45h View Post
                                      So, I was wandering, if I start working on a hack, can I make the maps now and insert the new tiles and sprites later or do I have to do it while creating the maps? Im a noob so I'm trying to learn abit more. Its just that I started a Hack and I want to make it the best I can but Im still learning.
                                      As long as the new tiles line up with the old ones (ie, you insert new trees where old ones are, new flowers where old flowers were, new water where old water was...) then it won't matter. If your tilesets do no line up, then you need to do those first.
                                      __________________

                                      Paired with Simba
                                        #25924    
                                      Old August 8th, 2013 (7:01 PM). Edited August 8th, 2013 by Tlachtli.
                                      Tlachtli's Avatar
                                      Tlachtli Tlachtli is offline
                                      Crit happens.
                                         
                                        Join Date: Jan 2012
                                        Location: Faraway place
                                        Age: 28
                                        Gender: Male
                                        Nature: Lax
                                        Posts: 267
                                        Egg types are always ???, but I'd like to change that. For Emerald, what kind of editing would be required to make eggs show the type combo of what will actually hatch (hex vs. ASM, ect.)?

                                        EDIT: Also, is there an easy(ish) way to find out exactly how much the DMA is shifting the memory addresses?
                                        __________________
                                        Pokemon Sigma Σmerald:
                                        (now under management by DraconianWing)

                                        A Gen 3 remake de-make, featuring many new encounters and Gen VI mechanics

                                          #25925    
                                        Old August 8th, 2013 (10:52 PM).
                                        athenian200 athenian200 is offline
                                           
                                          Join Date: Jun 2013
                                          Gender: Male
                                          Posts: 17
                                          Quote:
                                          Originally Posted by DoesntKnowHowToPlay View Post
                                          Simplest way would be to take bits of move animation data in FR in a hex editor (offsets for this are documented somewhere in R&D) and search for it in Ruby. It'll probably take a few tries to get something that isn't different between the two ROMs, but the general structures of the scripts and the commands are the same so it should be doable. Once you've found a battle script in Ruby, search for the pointer to it and there's your animation pointer table.
                                          Thanks, I looked over the threads a bit more carefully. I didn't have the patience to expand the move table, learn animation scripting, or look at RAM in VBA to figure out where moves start and end, so I took something of a shortcut.

                                          1. I found a list of moves in the order they're listed in the ROM itself. You could also just load up your ROM in PGE or A-Tack and use that list as a reference, I guess. I CAN'T link to what I used, thanks to this site's annoying rule against linking. :(

                                          2. I noted the number of the move Spider Web (169), and converted it to Hex (A9).

                                          3. I multiplied A9 by 4, and got 2A4.

                                          3. I found the offset of the Ruby Attack Animation Table in a thread, 1C7168.

                                          4. I added 1C7168 to 2A4, and got 1C740C.

                                          5. I went to 1C740C in a Hex editor, and wrote down the pointer 6A1D1D between the two 08 bytes (big-endian/ARM form of 1D1D6A, if you care).

                                          6. I repeated step 1, and got 178 for the move Cotton Spore (which I'm changing into Electroweb).

                                          7. I converted 178 into Hex, giving B2.

                                          8. I multiplied B2 by 4, and got 2C8.

                                          9. I added 1C7168 to 2C8, and got 1C7430.

                                          10. I went to 1C7430, and OVERWROTE the three-byte pointer there with the 6A1D1D pointer I wrote down earlier.

                                          Now Electroweb has the Spider Web animation! I tested it, and it works perfectly. This method should work any time you want to "borrow" an animation from an existing move to overwrite another existing move, provided you DON'T need to customize or change the animation at all.

                                          I hope it helps someone out there, so they don't have to wade through all the stuff I did.
                                          Closed Thread

                                          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
                                          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 7:24 PM.