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
  #51    
Old April 20th, 2015 (9:01 PM).
daniilS's Avatar
daniilS daniilS is offline
busy trying to do stuff not done yet
     
    Join Date: Aug 2013
    Age: 18
    Gender: Male
    Posts: 409
    Quote:
    Originally Posted by kleenexfeu View Post
    Ok I think I found a way to have an almost legit form for Giratina and Arceus.
    Use Darthatron's routine to run a script by using an item, the script has to contain the changing script form and it works fine
    I created a Green orb that can mega evolve/devolve my rayquaza, so it's not very legit for this one, but for Arceus/Giratina it's not bad. This makes them slightly overpowered because this way they can care any item instead of the normally needed Griseous orb/plates but anyway, if someone is interested, it works just fine :)

    Perhaps it can help for the judgment move, something like :

    ........
    gettypepokemon
    makeattackmatchwithtype
    ........

    Or using the hidden power effect, now we know how to fix its power, perhaps if the type is taken from the user rather than its IV it would be a Judgment-like :)

    Don't know if it's possible with BSP though, I suppose it would require some ASM

    Oh, another idea. We know how to manipulate IV with descryption/encryption, why don't manipulate ID when arceus changes of form ? This way we'll just have to generate IV to make hidden power the type we want. It wouldn't be bad to having fix IV since the gen 6 has introduces 3 IV max for legendary pokemon anyway

    But I'm getting out of subject I guess... x)
    By the name of Arceus: EWWWWW
    I have already stated that I got Arceus and Giratina working using hold items, they just don't work yet from the pc, I know why, but somehow I still never have had the time to sit down and no-life port the routine to four different places.

    Neither will I use any kind of IV cheating for judgement, getting it to have variable type shouldn't be that hard.
    __________________
    Reply With Quote

    Relevant Advertising!

      #52    
    Old April 21st, 2015 (4:40 PM).
    Sisyphean Sisyphean is offline
       
      Join Date: Nov 2014
      Location: California
      Gender: Male
      Nature: Bold
      Posts: 16
      Quote:
      Originally Posted by daniilS View Post
      I have already stated that I got Arceus and Giratina working using hold items, they just don't work yet from the pc
      Didd you manage to figure out male/female form changes? I think it would be somewhat easier in that you only need to change sprite and not the index number or stats of the poke
      __________________
      Though I'm far from a pro, I try can help you on your ROM with scripting, ASM, mapping WHATEVER.

      Just ask
      Reply With Quote
        #53    
      Old April 21st, 2015 (9:01 PM).
      daniilS's Avatar
      daniilS daniilS is offline
      busy trying to do stuff not done yet
         
        Join Date: Aug 2013
        Age: 18
        Gender: Male
        Posts: 409
        Quote:
        Originally Posted by Sisyphean View Post
        Didd you manage to figure out male/female form changes? I think it would be somewhat easier in that you only need to change sprite and not the index number or stats of the poke
        Where does a male/female form change exist in the games?
        And no, it isn't. Not at all. Changing the index number is the easiest thing to do.
        __________________
        Reply With Quote
          #54    
        Old April 21st, 2015 (11:35 PM).
        Spherical Ice's Avatar
        Spherical Ice Spherical Ice is online now
        • Crystal Tier
         
        Join Date: Nov 2007
        Location: Bristol, UK
        Age: 19
        Posts: 5,235
        Quote:
        Originally Posted by daniilS View Post
        Where does a male/female form change exist in the games?
        I think they're referring to gender differences, like Jellicent or Hippowdon or whatever.
        __________________

        A Pokemon that is discriminated!
        Support squirtle and make it everyone's favourite.
        Reply With Quote
          #55    
        Old April 21st, 2015 (11:38 PM).
        daniilS's Avatar
        daniilS daniilS is offline
        busy trying to do stuff not done yet
           
          Join Date: Aug 2013
          Age: 18
          Gender: Male
          Posts: 409
          Quote:
          Originally Posted by Spherical Ice View Post
          I think they're referring to gender differences, like Jellicent or Hippowdon or whatever.
          Unless somebody decides to sprite them I see no need to ASM them.
          __________________
          Reply With Quote
            #56    
          Old April 22nd, 2015 (12:22 AM).
          jirachiwishmaker's Avatar
          jirachiwishmaker jirachiwishmaker is offline
             
            Join Date: Jul 2007
            Location: Forina
            Gender: Male
            Nature: Lonely
            Posts: 75
            May I know how about the form of Cherrim?
            Reply With Quote
              #57    
            Old April 22nd, 2015 (1:46 AM).
            Touched's Avatar
            Touched Touched is offline
            Resident ASMAGICIAN
               
              Join Date: Jul 2014
              Gender: Male
              Posts: 626
              Quote:
              Originally Posted by jirachiwishmaker View Post
              May I know how about the form of Cherrim?
              I don't think in-battle forms are handled yet.
              __________________

              A Pokemon that is discriminated!
              Support squirtle and make it everyone's favourite.
              Reply With Quote
                #58    
              Old April 22nd, 2015 (1:55 AM).
              daniilS's Avatar
              daniilS daniilS is offline
              busy trying to do stuff not done yet
                 
                Join Date: Aug 2013
                Age: 18
                Gender: Male
                Posts: 409
                Quote:
                Originally Posted by jirachiwishmaker View Post
                May I know how about the form of Cherrim?
                I have actually made a routine for it, based on Castform, but I couldn't test it because Castform itself was broken in PRPB somehow. I should look at it again soon.
                __________________
                Reply With Quote
                  #59    
                Old April 22nd, 2015 (2:57 AM).
                jirachiwishmaker's Avatar
                jirachiwishmaker jirachiwishmaker is offline
                   
                  Join Date: Jul 2007
                  Location: Forina
                  Gender: Male
                  Nature: Lonely
                  Posts: 75
                  Quote:
                  Originally Posted by Touched View Post
                  I don't think in-battle forms are handled yet.
                  As I read from the first page, Daniiis had been talked a little bit about it last three months ago.
                  Reply With Quote
                    #60    
                  Old April 22nd, 2015 (3:01 AM). Edited April 22nd, 2015 by jirachiwishmaker.
                  jirachiwishmaker's Avatar
                  jirachiwishmaker jirachiwishmaker is offline
                     
                    Join Date: Jul 2007
                    Location: Forina
                    Gender: Male
                    Nature: Lonely
                    Posts: 75
                    Quote:
                    Originally Posted by daniilS View Post
                    I have actually made a routine for it, based on Castform, but I couldn't test it because Castform itself was broken in PRPB somehow. I should look at it again soon.
                    Ok. Thank you very much for sharing it.
                    Reply With Quote
                      #61    
                    Old April 24th, 2015 (9:01 AM).
                    Sisyphean Sisyphean is offline
                       
                      Join Date: Nov 2014
                      Location: California
                      Gender: Male
                      Nature: Bold
                      Posts: 16
                      Quote:
                      Originally Posted by Spherical Ice View Post
                      I think they're referring to gender differences, like Jellicent or Hippowdon or whatever.
                      Exactly, there are some big gender differences in mons like unfezant, pyroar, jellicent, meowstic, and it would be nice to make nidoran one pokemon lol
                      __________________
                      Though I'm far from a pro, I try can help you on your ROM with scripting, ASM, mapping WHATEVER.

                      Just ask
                      Reply With Quote
                        #62    
                      Old May 1st, 2015 (11:58 PM).
                      Lance32497's Avatar
                      Lance32497 Lance32497 is offline
                      LanceKoijer of Pokemon_Addicts
                         
                        Join Date: Aug 2014
                        Location: Criscanto town-Ginoa Region xD
                        Gender: Male
                        Nature: Adamant
                        Posts: 793
                        Hello, I tried to insert the burmy routine but it doesn't work

                        Quote:
                        plant plant sandy 0000 0000 0000 sandy sandy trash plant
                        What does those mean?

                        Should I insert the index number of Plant burmy, Sand Burmy and Trash burmmy in reverse hex? And I just leave those 0's or vice versa?
                        __________________
                        This signature has been disabled.
                        Scrollbar appears
                        Please review and fix the issues by reading the signature rules.

                        You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                        Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                        Reply With Quote
                          #63    
                        Old May 2nd, 2015 (12:53 AM).
                        PurpleOrange's Avatar
                        PurpleOrange PurpleOrange is offline
                        still don't know what I'm doing
                           
                          Join Date: Sep 2013
                          Location: Littleroot Town (UK)
                          Age: 20
                          Gender: Male
                          Posts: 358
                          Quote:
                          Originally Posted by Lance32497 View Post
                          Hello, I tried to insert the burmy routine but it doesn't work

                          Quote:
                          plant plant sandy 0000 0000 0000 sandy sandy trash plant
                          What does those mean?

                          Should I insert the index number of Plant burmy, Sand Burmy and Trash burmmy in reverse hex? And I just leave those 0's or vice versa?
                          yes, you do put the index number in reverse hex, and don't touch those zeros
                          __________________

                          Reply With Quote
                            #64    
                          Old June 6th, 2015 (7:00 AM).
                          Lance32497's Avatar
                          Lance32497 Lance32497 is offline
                          LanceKoijer of Pokemon_Addicts
                             
                            Join Date: Aug 2014
                            Location: Criscanto town-Ginoa Region xD
                            Gender: Male
                            Nature: Adamant
                            Posts: 793
                            This might be a noob question, but does this code
                            Spoiler:
                            ldr r3, burmytransform
                            mov pc, r3
                            burmytransform: .word 0x________
                            @address of burmytransform.asm here
                            continue:
                            str r0, [sp]
                            can be modifiedso that, not only burmy can be used but also Vivilion..

                            *Just asking*
                            __________________
                            This signature has been disabled.
                            Scrollbar appears
                            Please review and fix the issues by reading the signature rules.

                            You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                            Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                            Reply With Quote
                              #65    
                            Old June 6th, 2015 (7:10 AM).
                            daniilS's Avatar
                            daniilS daniilS is offline
                            busy trying to do stuff not done yet
                               
                              Join Date: Aug 2013
                              Age: 18
                              Gender: Male
                              Posts: 409
                              Quote:
                              Originally Posted by Lance32497 View Post
                              This might be a noob question, but does this code
                              Spoiler:
                              ldr r3, burmytransform
                              mov pc, r3
                              burmytransform: .word 0x________
                              @address of burmytransform.asm here
                              continue:
                              str r0, [sp]
                              can be modifiedso that, not only burmy can be used but also Vivilion..

                              *Just asking*
                              This code is the hook for the form changing routine. Vivillon only has different patterns. Also, the GBA doesn't know what region you're in.
                              __________________
                              Reply With Quote
                                #66    
                              Old June 6th, 2015 (7:39 AM).
                              Lance32497's Avatar
                              Lance32497 Lance32497 is offline
                              LanceKoijer of Pokemon_Addicts
                                 
                                Join Date: Aug 2014
                                Location: Criscanto town-Ginoa Region xD
                                Gender: Male
                                Nature: Adamant
                                Posts: 793
                                Quote:
                                Originally Posted by daniilS View Post
                                This code is the hook for the form changing routine. Vivillon only has different patterns. Also, the GBA doesn't know what region you're in.
                                oohhh, I have a question, about the burmy's evolution, what if I have Sandy Burmy then I make Sandy Wormadam as its evolution, does it register the index number in National Dex?
                                __________________
                                This signature has been disabled.
                                Scrollbar appears
                                Please review and fix the issues by reading the signature rules.

                                You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                                Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                                Reply With Quote
                                  #67    
                                Old June 6th, 2015 (7:50 AM).
                                daniilS's Avatar
                                daniilS daniilS is offline
                                busy trying to do stuff not done yet
                                   
                                  Join Date: Aug 2013
                                  Age: 18
                                  Gender: Male
                                  Posts: 409
                                  Quote:
                                  Originally Posted by Lance32497 View Post
                                  oohhh, I have a question, about the burmy's evolution, what if I have Sandy Burmy then I make Sandy Wormadam as its evolution, does it register the index number in National Dex?
                                  Give them the same dex number.
                                  __________________
                                  Reply With Quote
                                    #68    
                                  Old June 6th, 2015 (8:13 AM).
                                  Lance32497's Avatar
                                  Lance32497 Lance32497 is offline
                                  LanceKoijer of Pokemon_Addicts
                                     
                                    Join Date: Aug 2014
                                    Location: Criscanto town-Ginoa Region xD
                                    Gender: Male
                                    Nature: Adamant
                                    Posts: 793
                                    Quote:
                                    Originally Posted by daniilS View Post
                                    Give them the same dex number.
                                    Ohhh, thanks
                                    __________________
                                    This signature has been disabled.
                                    Scrollbar appears
                                    Please review and fix the issues by reading the signature rules.

                                    You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                                    Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                                    Reply With Quote
                                      #69    
                                    Old June 29th, 2015 (8:46 PM). Edited June 30th, 2015 by You Watanabe.
                                    You Watanabe's Avatar
                                    You Watanabe You Watanabe is offline
                                    Now Leaving...
                                       
                                      Join Date: Feb 2014
                                      Location: Shiganshina District, Wall Maria
                                      Gender: Female
                                      Nature: Adamant
                                      Posts: 430
                                      Quote:
                                      Originally Posted by daniilS View Post
                                      0x8004 needs to be the slot in your party containing the Swampert, 0x8005 the index number of Mewtwo. And it's worth noting that after the routine finishes, both vars will remain unaltered.
                                      Ahh. So, 0x8004 is the PARTY SLOT. Ok! I got it now working. Thanks dude. But, what about if a certain Pokemon is selected? If that certain Pokemon is selected, it will change. If not, it does nothing. Example, I have Charizard want to change into someone else but I have picked Blastoise then it will do nothing. I guess after the special that picks Pokemon, there should be a comparison if a certain index slot is selected. Can you post an example of a script as well? Hope you can understand this if confusing. Thanks! Nah! I've figured it out about specific Pokemon. I've combined the script with the "checkpokemon" script found at quick research thread.
                                      __________________

                                      Userpage


                                      Pokémon Dark Jade Version (Coming Soon!)


                                      The Omsoc Empire (Coming Soon!)
                                      Reply With Quote
                                        #70    
                                      Old July 22nd, 2015 (6:14 AM).
                                      Circaoffire's Avatar
                                      Circaoffire Circaoffire is offline
                                      Clueless Scripter :/
                                         
                                        Join Date: Apr 2012
                                        Gender: Male
                                        Nature: Adamant
                                        Posts: 48
                                        Quote:
                                        Originally Posted by daniilS View Post
                                        By the name of Arceus: EWWWWW
                                        I have already stated that I got Arceus and Giratina working using hold items, they just don't work yet from the pc, I know why, but somehow I still never have had the time to sit down and no-life port the routine to four different places.

                                        Neither will I use any kind of IV cheating for judgement, getting it to have variable type shouldn't be that hard.
                                        So, I see you said you got the hold item forme changes working. If it's fully complete and working, would you mind updating the original post with that one too? Your ASM is super rad, and I'm curious as to how you got hold items working. :D Cheers!
                                        __________________
                                        Reply With Quote
                                          #71    
                                        Old September 3rd, 2015 (8:10 AM). Edited January 3rd, 2016 by kleenexfeu.
                                        kleenexfeu kleenexfeu is offline
                                           
                                          Join Date: Aug 2013
                                          Gender: Male
                                          Posts: 219

                                          Arceus and Giratina forms


                                          Spoiler:

                                          Emerald
                                          Spoiler:

                                          Insert this routine anywhere :
                                          Spoiler:

                                          Code:
                                          .thumb
                                          .thumb_func
                                          
                                          .equ GriseousIndex, 0x____
                                          .equ GiratinaIndex, 0x____
                                          .equ GiratinaOIndex, 0x____
                                          
                                          .equ ArceusNormal, 0x____
                                          
                                          .equ FistPlateIndex, 0x____
                                          .equ ArceusFight, 0x____
                                          
                                          .equ SkyPlateIndex, 0x____
                                          .equ ArceusFly, 0x____
                                          
                                          .equ ToxicPlateIndex, 0x____
                                          .equ ArceusPoison, 0x____
                                          
                                          .equ EarthPlateIndex, 0x____
                                          .equ ArceusGround, 0x____
                                          
                                          .equ StonePlateIndex, 0x____
                                          .equ ArceusRock, 0x____
                                          
                                          .equ InsectPlateIndex, 0x____
                                          .equ ArceusBug, 0x____
                                          
                                          .equ SpookyPlateIndex, 0x____
                                          .equ ArceusGhost, 0x____
                                          
                                          .equ IronPlateIndex, 0x____
                                          .equ ArceusSteel, 0x____
                                          
                                          .equ FlamePlateIndex, 0x____
                                          .equ ArceusFire, 0x____
                                          
                                          .equ SplashPlateIndex, 0x____
                                          .equ ArceusWater, 0x____
                                          
                                          .equ ZapPlateIndex, 0x____
                                          .equ ArceusElectric, 0x____
                                          
                                          .equ MeadowPlateIndex, 0x____
                                          .equ ArceusGrass, 0x____
                                          
                                          .equ IciclePlateIndex, 0x____
                                          .equ ArceusIce, 0x____
                                          
                                          .equ DracoPlateIndex, 0x____
                                          .equ ArceusDragon, 0x____
                                          
                                          .equ DreadPlateIndex, 0x____
                                          .equ ArceusDark, 0x____
                                          
                                          .equ PixiPlateIndex, 0x____
                                          .equ ArceusFairy, 0x____
                                          
                                          Start:
                                          ldrb r1, [r4]
                                          ldrb r0, [r4, #1]
                                          lsl r0, r0, #8
                                          add r1, r1, r0
                                          mov r0, r8
                                          strh r1, [r0, #2]
                                          push {r0-r7}
                                          
                                          Initialising:
                                          ldrh r2, [r0]
                                          ldr r6, GiratinaO
                                          cmp r2, r6
                                          beq GrisCheck
                                          ldr r6, Giratina
                                          cmp r2, r6
                                          beq GrisCheck2
                                          
                                          LoadGivenItem:
                                          mov r6, #6
                                          adr r5, Table
                                          add r5, #4
                                          mov r7, r1
                                          bl LoopLoad
                                          cmp r6, #0
                                          bne ItemInTable
                                          
                                          ItemNotInTable:
                                          adr r5, Table
                                          add r5, #6
                                          mov r6, #6
                                          mov r7, r2
                                          bl LoopLoad
                                          cmp r6, #1
                                          bne Return
                                          ldrh r4, [r5, #2]
                                          b Changing
                                          
                                          GrisCheck:
                                          ldr r6, GriseousOrb
                                          cmp r1, r6
                                          beq LoadGivenItem
                                          ldr r4, Giratina
                                          b Changing
                                          
                                          GrisCheck2:
                                          ldr r6, GriseousOrb
                                          cmp r1, r6
                                          bne LoadGivenItem
                                          ldr r4, GiratinaO
                                          b Changing
                                          
                                          ItemInTable:
                                          ldrh r3, [r5, #2]
                                          mov r7, r2
                                          mov r6, #6
                                          adr r5, Table
                                          bl LoopLoad
                                          cmp r6, #1
                                          bne Return
                                          mov r4, r3
                                          b Changing
                                          
                                          Return:
                                          pop {r0-r7}
                                          Return3:
                                          ldr r0, Back
                                          bx r0
                                          Return2:
                                          ldr r0, Back2
                                          bx r0
                                          
                                          Changing:
                                          strh r4, [r0]
                                          pop {r0-r7}
                                          ldr r3, Limit
                                          cmp r0, r3
                                          bhi Return3
                                          mov r0, r7
                                          ldr r3, pokemon_calc_checksum
                                          bl Call
                                          strh r0, [r7, #0x1C]
                                          mov r0, r7
                                          ldr r3, pokemon_encrypt
                                          bl Call
                                          mov r0, r7
                                          ldr r3, pokemon_calculate_stats
                                          bl Call
                                          b Return2
                                          
                                          LoopLoad:
                                          push {lr}
                                          Looping:
                                          ldrh r4, [r5]
                                          cmp r4, #0
                                          beq Nope
                                          cmp r4, r7
                                          beq Yep
                                          add r5, r6
                                          b Looping
                                          Nope:
                                          mov r6, #0
                                          pop {pc}
                                          Yep:
                                          mov r6, #1
                                          pop {pc}
                                          
                                          Call:
                                          mov pc, r3
                                          
                                          .align 2
                                          GriseousOrb: .word GriseousIndex
                                          Giratina: .word GiratinaIndex
                                          GiratinaO: .word GiratinaOIndex
                                          pokemon_calc_checksum: .word 0x08068C78
                                          pokemon_encrypt: .word 0x0806A228
                                          pokemon_calculate_stats: .word 0x08068D0C
                                          Back: .word 0x0806B3D8+1
                                          Back2: .word 0x0806B3EC+1
                                          Limit: .word 0x02024744
                                          Table:
                                          .hword ArceusNormal, ArceusNormal, FistPlateIndex, ArceusFight, ArceusNormal, SkyPlateIndex, ArceusFly, ArceusNormal, ToxicPlateIndex
                                          .hword ArceusPoison, ArceusNormal, EarthPlateIndex, ArceusGround, ArceusNormal, StonePlateIndex, ArceusRock, ArceusNormal, InsectPlateIndex
                                          .hword ArceusBug, ArceusNormal, SpookyPlateIndex, ArceusGhost, ArceusNormal, IronPlateIndex, ArceusSteel, ArceusNormal, FlamePlateIndex
                                          .hword ArceusFire, ArceusNormal, SplashPlateIndex, ArceusWater, ArceusNormal, ZapPlateIndex, ArceusElectric, ArceusNormal, MeadowPlateIndex
                                          .hword ArceusGrass, ArceusNormal, IciclePlateIndex, ArceusIce, ArceusNormal, DracoPlateIndex, ArceusDragon, ArceusNormal, DreadPlateIndex
                                          .hword ArceusDark, ArceusNormal, PixiPlateIndex, ArceusFairy, ArceusNormal, 0x0, 0x0, 0x0, 0x0

                                          How to use it ? :
                                          Spoiler:

                                          At the start of the routine, just replace the 0x___ with the values you use.

                                          /* 00 49 08 47 xx+1 xx xx 08 at 0806B04C with xx xx xx being the reversed address of your routine*/


                                          Fire Red :
                                          Spoiler:

                                          Insert this routine anywhere :
                                          Spoiler:

                                          Code:
                                          .thumb
                                          .thumb_func
                                          
                                          .equ GriseousIndex, 0x____
                                          .equ GiratinaIndex, 0x____
                                          .equ GiratinaOIndex, 0x____
                                          
                                          .equ ArceusNormal, 0x____
                                          
                                          .equ FistPlateIndex, 0x____
                                          .equ ArceusFight, 0x____
                                          
                                          .equ SkyPlateIndex, 0x____
                                          .equ ArceusFly, 0x____
                                          
                                          .equ ToxicPlateIndex, 0x____
                                          .equ ArceusPoison, 0x____
                                          
                                          .equ EarthPlateIndex, 0x____
                                          .equ ArceusGround, 0x____
                                          
                                          .equ StonePlateIndex, 0x____
                                          .equ ArceusRock, 0x____
                                          
                                          .equ InsectPlateIndex, 0x____
                                          .equ ArceusBug, 0x____
                                          
                                          .equ SpookyPlateIndex, 0x____
                                          .equ ArceusGhost, 0x____
                                          
                                          .equ IronPlateIndex, 0x____
                                          .equ ArceusSteel, 0x____
                                          
                                          .equ FlamePlateIndex, 0x____
                                          .equ ArceusFire, 0x____
                                          
                                          .equ SplashPlateIndex, 0x____
                                          .equ ArceusWater, 0x____
                                          
                                          .equ ZapPlateIndex, 0x____
                                          .equ ArceusElectric, 0x____
                                          
                                          .equ MeadowPlateIndex, 0x____
                                          .equ ArceusGrass, 0x____
                                          
                                          .equ IciclePlateIndex, 0x____
                                          .equ ArceusIce, 0x____
                                          
                                          .equ DracoPlateIndex, 0x____
                                          .equ ArceusDragon, 0x____
                                          
                                          .equ DreadPlateIndex, 0x____
                                          .equ ArceusDark, 0x____
                                          
                                          .equ PixiPlateIndex, 0x____
                                          .equ ArceusFairy, 0x____
                                          
                                          Start:
                                          ldrb r1, [r4]
                                          ldrb r0, [r4, #1]
                                          lsl r0, r0, #8
                                          add r1, r1, r0
                                          mov r0, r8
                                          strh r1, [r0, #2]
                                          push {r0-r7}
                                          
                                          Initialising:
                                          ldrh r2, [r0]
                                          ldr r6, GiratinaO
                                          cmp r2, r6
                                          beq GrisCheck
                                          ldr r6, Giratina
                                          cmp r2, r6
                                          beq GrisCheck2
                                          
                                          LoadGivenItem:
                                          mov r6, #6
                                          adr r5, Table
                                          add r5, #4
                                          mov r7, r1
                                          bl LoopLoad
                                          cmp r6, #0
                                          bne ItemInTable
                                          
                                          ItemNotInTable:
                                          adr r5, Table
                                          add r5, #6
                                          mov r6, #6
                                          mov r7, r2
                                          bl LoopLoad
                                          cmp r6, #1
                                          bne Return
                                          ldrh r4, [r5, #2]
                                          b Changing
                                          
                                          GrisCheck:
                                          ldr r6, GriseousOrb
                                          cmp r1, r6
                                          beq LoadGivenItem
                                          ldr r4, Giratina
                                          b Changing
                                          
                                          GrisCheck2:
                                          ldr r6, GriseousOrb
                                          cmp r1, r6
                                          bne LoadGivenItem
                                          ldr r4, GiratinaO
                                          b Changing
                                          
                                          ItemInTable:
                                          ldrh r3, [r5, #2]
                                          mov r7, r2
                                          mov r6, #6
                                          adr r5, Table
                                          bl LoopLoad
                                          cmp r6, #1
                                          bne Return
                                          mov r4, r3
                                          b Changing
                                          
                                          Return:
                                          pop {r0-r7}
                                          Return3:
                                          ldr r0, Back
                                          bx r0
                                          Return2:
                                          ldr r0, Back2
                                          bx r0
                                          
                                          Changing:
                                          strh r4, [r0]
                                          pop {r0-r7}
                                          ldr r3, Limit
                                          cmp r0, r3
                                          bhi Return3
                                          mov r0, r7
                                          ldr r3, pokemon_calc_checksum
                                          bl Call
                                          strh r0, [r7, #0x1C]
                                          mov r0, r7
                                          ldr r3, pokemon_encrypt
                                          bl Call
                                          mov r0, r7
                                          ldr r3, pokemon_calculate_stats
                                          bl Call
                                          b Return2
                                          
                                          LoopLoad:
                                          push {lr}
                                          Looping:
                                          ldrh r4, [r5]
                                          cmp r4, #0
                                          beq Nope
                                          cmp r4, r7
                                          beq Yep
                                          add r5, r6
                                          b Looping
                                          Nope:
                                          mov r6, #0
                                          pop {pc}
                                          Yep:
                                          mov r6, #1
                                          pop {pc}
                                          
                                          Call:
                                          mov pc, r3
                                          
                                          .align 2
                                          GriseousOrb: .word GriseousIndex
                                          Giratina: .word GiratinaIndex
                                          GiratinaO: .word GiratinaOIndex
                                          pokemon_calc_checksum:	.word 0x0803E3E8+1
                                          pokemon_encrypt:	.word 0x0803F8F8+1
                                          pokemon_calculate_stats:	.word 0x0803E47C+1
                                          Back:	.word 0x08040ADA+1
                                          Back2:	.word 0x08040AEE+1
                                          Limit: .word 0x02024540
                                          Table:
                                          .hword ArceusNormal, ArceusNormal, FistPlateIndex, ArceusFight, ArceusNormal, SkyPlateIndex, ArceusFly, ArceusNormal, ToxicPlateIndex
                                          .hword ArceusPoison, ArceusNormal, EarthPlateIndex, ArceusGround, ArceusNormal, StonePlateIndex, ArceusRock, ArceusNormal, InsectPlateIndex
                                          .hword ArceusBug, ArceusNormal, SpookyPlateIndex, ArceusGhost, ArceusNormal, IronPlateIndex, ArceusSteel, ArceusNormal, FlamePlateIndex
                                          .hword ArceusFire, ArceusNormal, SplashPlateIndex, ArceusWater, ArceusNormal, ZapPlateIndex, ArceusElectric, ArceusNormal, MeadowPlateIndex
                                          .hword ArceusGrass, ArceusNormal, IciclePlateIndex, ArceusIce, ArceusNormal, DracoPlateIndex, ArceusDragon, ArceusNormal, DreadPlateIndex
                                          .hword ArceusDark, ArceusNormal, PixiPlateIndex, ArceusFairy, ArceusNormal, 0x0, 0x0, 0x0, 0x0

                                          How to use it :
                                          Spoiler:

                                          At the start of the routine, just replace the 0x___ with the values you use.

                                          /* 00 49 08 47 xx+1 xx xx 08 at 08040780 with xx xx xx being the reversed address of your routine*/


                                          __________________
                                          Links for my work:
                                          Dynamic Emerald Attack ROMbase
                                          Arceus and Giratina Forms

                                          Touched's Emerald IDB + Battle stuff (probably outdated)
                                          Touched's Emerald IDB 6.8 + Battle stuff (probably outdated)
                                          Reply With Quote
                                            #72    
                                          Old September 4th, 2015 (6:58 AM).
                                          Marky Vigoroth's Avatar
                                          Marky Vigoroth Marky Vigoroth is offline
                                          ...I just liked the Scyther icon.
                                             
                                            Join Date: Aug 2015
                                            Location: Puerto Rico
                                            Gender: Male
                                            Nature: Naive
                                            Posts: 79
                                            How can I, in theory, add another form of Castform? (One example would be Castform's Forecast turning Castform into a 'Sandy' form when the weather turns into a Sandstorm.)
                                            __________________
                                            Hack-player; hack-maker.
                                            Reply With Quote
                                              #73    
                                            Old September 4th, 2015 (7:17 AM). Edited September 4th, 2015 by kleenexfeu.
                                            kleenexfeu kleenexfeu is offline
                                               
                                              Join Date: Aug 2013
                                              Gender: Male
                                              Posts: 219
                                              Quote:
                                              Originally Posted by Marky Vigoroth View Post
                                              How can I, in theory, add another form of Castform? (One example would be Castform's Forecast turning Castform into a 'Sandy' form when the weather turns into a Sandstorm.)
                                              Create a new type for castform isn't really hard, the problem would be to create a new sprite and update it correctly

                                              I edit this post rather than response with another one to not fill the thread with questions/answers

                                              If you're new in ASM, you should read some ASM tutorial. Look in tool tutorials and resource, look for FBI's one, it is very good.

                                              If you have trouble to understand some part, feel free to post your question in the ASM/disassembly help thread. You can also PM me while it's not too complicated.

                                              Finally, you should let castform away for now, as even very experimented hackers don't understand everything about the routines that handle its sprite
                                              Reply With Quote
                                                #74    
                                              Old September 4th, 2015 (7:26 AM).
                                              Marky Vigoroth's Avatar
                                              Marky Vigoroth Marky Vigoroth is offline
                                              ...I just liked the Scyther icon.
                                                 
                                                Join Date: Aug 2015
                                                Location: Puerto Rico
                                                Gender: Male
                                                Nature: Naive
                                                Posts: 79
                                                Quote:
                                                Originally Posted by kleenexfeu View Post
                                                Create a new type for castform isn't really hard, the problem would be to create a new sprite and update it correctly
                                                ...you are talking to someone who is new at scripting and ASM hacking.
                                                __________________
                                                Hack-player; hack-maker.
                                                Reply With Quote
                                                  #75    
                                                Old November 13th, 2015 (7:28 PM).
                                                Lance32497's Avatar
                                                Lance32497 Lance32497 is offline
                                                LanceKoijer of Pokemon_Addicts
                                                   
                                                  Join Date: Aug 2014
                                                  Location: Criscanto town-Ginoa Region xD
                                                  Gender: Male
                                                  Nature: Adamant
                                                  Posts: 793
                                                  Quote:
                                                  Originally Posted by kleenexfeu View Post

                                                  Arceus and Giratina forms


                                                  Spoiler:

                                                  Emerald
                                                  Spoiler:

                                                  Insert this routine anywhere :
                                                  Spoiler:

                                                  Code:
                                                  .thumb
                                                  .thumb_func
                                                  
                                                  .equ GriseousIndex, 0x____
                                                  .equ GiratinaIndex, 0x____
                                                  .equ GiratinaOIndex, 0x____
                                                  
                                                  .equ ArceusNormal, 0x____
                                                  
                                                  .equ FistPlateIndex, 0x____
                                                  .equ ArceusFight, 0x____
                                                  
                                                  .equ SkyPlateIndex, 0x____
                                                  .equ ArceusFly, 0x____
                                                  
                                                  .equ ToxicPlateIndex, 0x____
                                                  .equ ArceusPoison, 0x____
                                                  
                                                  .equ EarthPlateIndex, 0x____
                                                  .equ ArceusGround, 0x____
                                                  
                                                  .equ StonePlateIndex, 0x____
                                                  .equ ArceusRock, 0x____
                                                  
                                                  .equ InsectPlateIndex, 0x____
                                                  .equ ArceusBug, 0x____
                                                  
                                                  .equ SpookyPlateIndex, 0x____
                                                  .equ ArceusGhost, 0x____
                                                  
                                                  .equ IronPlateIndex, 0x____
                                                  .equ ArceusSteel, 0x____
                                                  
                                                  .equ FlamePlateIndex, 0x____
                                                  .equ ArceusFire, 0x____
                                                  
                                                  .equ SplashPlateIndex, 0x____
                                                  .equ ArceusWater, 0x____
                                                  
                                                  .equ ZapPlateIndex, 0x____
                                                  .equ ArceusElectric, 0x____
                                                  
                                                  .equ MeadowPlateIndex, 0x____
                                                  .equ ArceusGrass, 0x____
                                                  
                                                  .equ IciclePlateIndex, 0x____
                                                  .equ ArceusIce, 0x____
                                                  
                                                  .equ DracoPlateIndex, 0x____
                                                  .equ ArceusDragon, 0x____
                                                  
                                                  .equ DreadPlateIndex, 0x____
                                                  .equ ArceusDark, 0x____
                                                  
                                                  .equ PixiPlateIndex, 0x____
                                                  .equ ArceusFairy, 0x____
                                                  
                                                  Start:
                                                  ldrb r1, [r4]
                                                  ldrb r0, [r4, #1]
                                                  lsl r0, r0, #8
                                                  add r1, r1, r0
                                                  mov r0, r8
                                                  strh r1, [r0, #2]
                                                  push {r0-r7}
                                                  
                                                  Initialising:
                                                  ldrh r2, [r0]
                                                  ldr r6, GiratinaO
                                                  cmp r2, r6
                                                  beq GrisCheck
                                                  ldr r6, Giratina
                                                  cmp r2, r6
                                                  beq GrisCheck2
                                                  
                                                  LoadGivenItem:
                                                  mov r6, #6
                                                  adr r5, Table
                                                  add r5, #4
                                                  mov r7, r1
                                                  bl LoopLoad
                                                  cmp r6, #0
                                                  bne ItemInTable
                                                  
                                                  ItemNotInTable:
                                                  adr r5, Table
                                                  add r5, #6
                                                  mov r6, #6
                                                  mov r7, r2
                                                  bl LoopLoad
                                                  cmp r6, #1
                                                  bne Return
                                                  ldrh r4, [r5, #2]
                                                  b Changing
                                                  
                                                  GrisCheck:
                                                  ldr r6, GriseousOrb
                                                  cmp r1, r6
                                                  beq LoadGivenItem
                                                  ldr r4, Giratina
                                                  b Changing
                                                  
                                                  GrisCheck2:
                                                  ldr r6, GriseousOrb
                                                  cmp r1, r6
                                                  bne LoadGivenItem
                                                  ldr r4, GiratinaO
                                                  b Changing
                                                  
                                                  ItemInTable:
                                                  ldrh r3, [r5, #2]
                                                  mov r7, r2
                                                  mov r6, #6
                                                  adr r5, Table
                                                  bl LoopLoad
                                                  cmp r6, #1
                                                  bne Return
                                                  mov r4, r3
                                                  b Changing
                                                  
                                                  Return:
                                                  pop {r0-r7}
                                                  Return3:
                                                  ldr r0, Back
                                                  bx r0
                                                  Return2:
                                                  ldr r0, Back2
                                                  bx r0
                                                  
                                                  Changing:
                                                  strh r4, [r0]
                                                  pop {r0-r7}
                                                  ldr r3, Limit
                                                  cmp r0, r3
                                                  bhi Return3
                                                  mov r0, r7
                                                  ldr r3, pokemon_calc_checksum
                                                  bl Call
                                                  strh r0, [r7, #0x1C]
                                                  mov r0, r7
                                                  ldr r3, pokemon_encrypt
                                                  bl Call
                                                  mov r0, r7
                                                  ldr r3, pokemon_calculate_stats
                                                  bl Call
                                                  b Return2
                                                  
                                                  LoopLoad:
                                                  push {lr}
                                                  Looping:
                                                  ldrh r4, [r5]
                                                  cmp r4, #0
                                                  beq Nope
                                                  cmp r4, r7
                                                  beq Yep
                                                  add r5, r6
                                                  b Looping
                                                  Nope:
                                                  mov r6, #0
                                                  pop {pc}
                                                  Yep:
                                                  mov r6, #1
                                                  pop {pc}
                                                  
                                                  Call:
                                                  mov pc, r3
                                                  
                                                  .align 2
                                                  [b]GriseousOrb: .word GriseousIndex
                                                  Giratina: .word GiratinaIndex
                                                  GiratinaO: .word GiratinaOIndex
                                                  pokemon_calc_checksum: .word 0x08068C78
                                                  pokemon_encrypt: .word 0x0806A228
                                                  pokemon_calculate_stats: .word 0x08068D0C
                                                  Back: .word 0x0806B3D8+1
                                                  Back2: .word 0x0806B3EC+1
                                                  Limit: .word 0x02024744
                                                  Table:
                                                  .hword 
                                                  ArceusNormal, 
                                                  ArceusNormal, 
                                                  FistPlateIndex, 
                                                  ArceusFight, 
                                                  ArceusNormal, 
                                                  SkyPlateIndex, 
                                                  ArceusFly, 
                                                  ArceusNormal,
                                                  ToxicPlateIndex, 
                                                  ArceusPoison, 
                                                  ArceusNormal
                                                  EarthPlateIndex, 
                                                  ArceusGround, 
                                                  ArceusNormal
                                                  StonePlateIndex, 
                                                  ArceusRock, 
                                                  ArceusNormal
                                                  InsectPlateIndex, 
                                                  ArceusBug, 
                                                  ArceusNormal
                                                  SpookyPlateIndex, 
                                                  ArceusGhost, 
                                                  ArceusNormal
                                                  IronPlateIndex, 
                                                  ArceusSteel, 
                                                  ArceusNormal
                                                  FlamePlateIndex, 
                                                  ArceusFire, 
                                                  ArceusNormal
                                                  SplashPlateIndex, 
                                                  ArceusWater, 
                                                  ArceusNormal
                                                  ZapPlateIndex, 
                                                  ArceusElectric, 
                                                  ArceusNormal
                                                  MeadowPlateIndex, 
                                                  ArceusGrass, 
                                                  ArceusNormal
                                                  IciclePlateIndex, 
                                                  ArceusIce, 
                                                  ArceusNormal
                                                  DracoPlateIndex, 
                                                  ArceusDragon, 
                                                  ArceusNormal
                                                  DreadPlateIndex, 
                                                  ArceusDark, 
                                                  ArceusNormal
                                                  PixiPlateIndex, 
                                                  ArceusFairy, 
                                                  ArceusNormal,
                                                  0x0, 0x0, 0x0, 0x0

                                                  How to use it ? :
                                                  Spoiler:

                                                  At the start of the routine, just replace the 0x___ with the values you use.

                                                  /* 00 49 08 47 xx+1 xx xx 08 at 0806B04C with xx xx xx being the reversed address of your routine*/


                                                  Fire Red (untested) :
                                                  Spoiler:

                                                  /* 00 49 08 47 xx+1 xx xx 08 at 08040780 with xx xx xx being the reversed address of your routine*/

                                                  pokemon_calc_checksum: .word 0x0803E3E8+1
                                                  pokemon_encrypt: .word 0x0803F8F8+1
                                                  pokemon_calculate_stats: .word 0x0803E47C+1
                                                  Back: .word 0x08040ADA+1
                                                  Back2: .word 0x08040AEE+1
                                                  Limit: .word 0x02024540

                                                  Look at the emerald part fort the routine/instructions

                                                  It's working in FireRed, thanks!
                                                  __________________
                                                  This signature has been disabled.
                                                  Scrollbar appears
                                                  Please review and fix the issues by reading the signature rules.

                                                  You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                                                  Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                                                  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 8:56 AM.