Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Draconius GO
Reply
 
Thread Tools
  #1    
Old January 14th, 2014 (11:37 AM). Edited March 11th, 2016 by Rasenshurikenbum.
Rasenshurikenbum's Avatar
Rasenshurikenbum Rasenshurikenbum is offline
ASM is very cool!
     
    Join Date: Apr 2011
    Location: Poland
    Age: 21
    Gender: Male
    Nature: Relaxed
    Posts: 70
    Hello everyone!

    I haven't seen any tutorial for this so I decided to make a one.
    In this tutorial you will learn how to give a pokemon with custom moves! (To be honest, the routine changes the moveset of the last pokemon in your party, so it also works when you receive a pokemon because it will be the last in your team)
    To see that it isn't any trick watch this video: http://www.youtube.com/watch?v=nP_mwbtg1TY):

    Here are the steps so it will work for you too

    Spoiler:
    1. Download ASM routine (https://www.dropbox.com/s/4fmyngfukfizvic/Att_change_all.zip?dl=0)
    2. Choose the right one depending on your version of game (rs - Ruby/Sapphire, fr - Fire Red, em - Emerald, em[US] - Emerald [US])
    3. Insert the routine into your ROM (if you don't know how to do it then just go here: http://www.pokecommunity.com/showthread.php?t=117917#ASM1)
    4. Now you just need to write a give pokemon script (I'm using XSE to make things easier).
    5. But how are you supposed to specife your attacks in the script? That so easy! You just need to set a values to the proper variables (ex. Ice Beam is 0x3A and 10PP is 0xA). And you have to set all the values (even if you want to change only 1 attack). There is a list for the variables the routine uses:

    0x8000 - move 1 data
    0x8001 - move 2 data
    0x8002 - move 3 data
    0x8003 - move 4 data
    0x8004 - number of the pokemon in your party - 1 (explanation below)
    0x8005 - PP 1 data
    0x8006 - PP 2 data
    0x8007 - PP 3 data
    0x8008 - PP 4 data

    So you do:
    setvar 0x8000 "move1"
    (...)
    setvar 0x8008 "PP4"

    Little explanation:
    Spoiler:
    0x8004 variable determines which pokemon of your party should have the moves changed - 1, so:
    0 - 1st pokemon
    1 - 2nd pokemon
    (...)
    5 - 6th pokemon


    6. Next you have to call the routine in the script. To do this, you have to use "callasm" function. So you do:

    callasm "your routine offset + 1" (so if your routine has 0x800000 offset, then you have "callasm 0x800001")

    Remember that you have to call asm routine AFTER obtaining a pokemon (otherwise it will change the moveset of the other pokemon in your party!)

    Let me know what do you think

    PS: This is my first ASM routine so Jambo, please forgive me for my code xD
    __________________
    Check out my tutorials:Next tutorials coming soon!
    Reply With Quote

    Relevant Advertising!

      #2    
    Old January 18th, 2014 (2:37 PM).
    Butterslave's Avatar
    Butterslave Butterslave is offline
       
      Join Date: Mar 2009
      Location: Texas, USA
      Gender: Male
      Posts: 74
      This looks like a really nice tutorial. I haven't experimented with ASM yet, but I do understand everything you're saying for the most part. This seems like it would be very useful for a hack involving some kind of special Pokemon you receive that knows a move it couldn't normally learn (Rattata with a Hyper Beam?! ).
      __________________
      I believe in Jesus Christ my Savior. If you do too, and aren't scared to admit it, then copy and paste this in your signature.
      Reply With Quote
        #3    
      Old January 18th, 2014 (11:01 PM).
      wael96 wael96 is offline
         
        Join Date: Jul 2013
        Location: Beijing,China
        Gender: Male
        Posts: 38
        Thank you! Does the variable from 0x8000 to 0x8009 of Ruby has the same function as compared to Fire Red?
        Reply With Quote
          #4    
        Old January 19th, 2014 (3:07 AM).
        Rasenshurikenbum's Avatar
        Rasenshurikenbum Rasenshurikenbum is offline
        ASM is very cool!
           
          Join Date: Apr 2011
          Location: Poland
          Age: 21
          Gender: Male
          Nature: Relaxed
          Posts: 70
          Quote:
          Originally Posted by wael96 View Post
          Thank you! Does the variable from 0x8000 to 0x8009 of Ruby has the same function as compared to Fire Red?
          Yes, only the adresses for variables are different but they work the same way
          __________________
          Check out my tutorials:Next tutorials coming soon!
          Reply With Quote
            #5    
          Old January 19th, 2014 (12:44 PM).
          Deokishisu's Avatar
          Deokishisu Deokishisu is offline
          Mr. Magius
             
            Join Date: Feb 2006
            Location: If I'm online, it's a safe bet I'm at a computer.
            Gender: Male
            Nature: Relaxed
            Posts: 887
            In Emerald, the setpkmnpp command in XSE can be used to change the moves of any Pokemon in the party (what XSE says is the "New PP amount" is the index number of the move to replace with in Emerald), so if you know where the given Pokemon is going in the party, you can use that command instead of the ASM.

            Either way, this is a great way to do it for the other versions!
            Reply With Quote
              #6    
            Old January 19th, 2014 (1:49 PM).
            Rasenshurikenbum's Avatar
            Rasenshurikenbum Rasenshurikenbum is offline
            ASM is very cool!
               
              Join Date: Apr 2011
              Location: Poland
              Age: 21
              Gender: Male
              Nature: Relaxed
              Posts: 70
              Quote:
              Originally Posted by Deokishisu View Post
              In Emerald, the setpkmnpp command in XSE can be used to change the moves of any Pokemon in the party (what XSE says is the "New PP amount" is the index number of the move to replace with in Emerald), so if you know where the given Pokemon is going in the party, you can use that command instead of the ASM.

              Either way, this is a great way to do it for the other versions!
              Oh, I haven't known about this
              __________________
              Check out my tutorials:Next tutorials coming soon!
              Reply With Quote
                #7    
              Old March 20th, 2014 (9:41 AM).
              cjcman95's Avatar
              cjcman95 cjcman95 is offline
              codycarol95
                 
                Join Date: Mar 2014
                Location: Earth
                Posts: 35
                i know this may be a stupid question. but im confused as hell. so if i was to put it in either PKSV or XSE, what exactly would the script look like after putting the ASM in? (for both PKSV and XSE)
                Reply With Quote
                  #8    
                Old March 20th, 2014 (11:52 PM).
                Rasenshurikenbum's Avatar
                Rasenshurikenbum Rasenshurikenbum is offline
                ASM is very cool!
                   
                  Join Date: Apr 2011
                  Location: Poland
                  Age: 21
                  Gender: Male
                  Nature: Relaxed
                  Posts: 70
                  Quote:
                  Originally Posted by cjcman95 View Post
                  i know this may be a stupid question. but im confused as hell. so if i was to put it in either PKSV or XSE, what exactly would the script look like after putting the ASM in? (for both PKSV and XSE)
                  (...)
                  givepokemon "blablablah" (parametres)
                  callasm YOUROFFSET+1 (ex. your ASM is 0x80000, so type 0x800001)
                  (...)

                  That's all.
                  __________________
                  Check out my tutorials:Next tutorials coming soon!
                  Reply With Quote
                    #9    
                  Old January 23rd, 2017 (1:35 PM). Edited February 4th, 2017 by tkim.
                  tkim tkim is offline
                     
                    Join Date: May 2011
                    Posts: 180
                    works great with eggs!

                    edit: on further thought, the command setpkmnpp also works lol.. for all versions
                    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 4:23 PM.