The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.

Reply
 
Thread Tools
  #1    
Old January 14th, 2014, 11:37 AM
Rasenshurikenbum's Avatar
Rasenshurikenbum
ASM is very cool!
 
Join Date: Apr 2011
Location: Poland
Age: 18
Gender: Male
Nature: Relaxed
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 (http://www.pokecommunity.com/attachm...5&d=1389903121)
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/showthr...?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 pokemon in your party - 1 (so if you have 6 pokemon (after obtaining the script pokemon), the value should be 5)
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
So basically you can change the other pokemon moveset as well, not only the last one


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
Attached Files
File Type: zip Att_change_all.zip‎ (4.0 KB, 129 views) (Save to Dropbox)
__________________
Check out my tutorials:Next tutorials coming soon!

Last edited by Rasenshurikenbum; January 19th, 2014 at 05:47 AM.
Reply With Quote
  #2    
Old January 18th, 2014, 02:37 PM
Butterslave's Avatar
Butterslave
 
Join Date: Mar 2009
Gender: Male
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
 
Join Date: Jul 2013
Location: Beijing,China
Gender: Male
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, 03:07 AM
Rasenshurikenbum's Avatar
Rasenshurikenbum
ASM is very cool!
 
Join Date: Apr 2011
Location: Poland
Age: 18
Gender: Male
Nature: Relaxed
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
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
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, 01:49 PM
Rasenshurikenbum's Avatar
Rasenshurikenbum
ASM is very cool!
 
Join Date: Apr 2011
Location: Poland
Age: 18
Gender: Male
Nature: Relaxed
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, 09:41 AM
cjcman95's Avatar
cjcman95
codycarol95
 
Join Date: Mar 2014
Location: Earth
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
ASM is very cool!
 
Join Date: Apr 2011
Location: Poland
Age: 18
Gender: Male
Nature: Relaxed
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
Reply
Quick Reply

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
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 07:53 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.