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 October 11th, 2013, 06:50 AM
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
There are tutorials on how to add new attack moves without replacing older or already existing ones.
Yes, I am aware, but they're all for FireRed.
This tutorial will teach you on how to add new moves with Ruby, for the weird people like me who doesn't hack Emerald or FireRed. =/

Anyway, always remember the golden rule in hacking: always save a back-up.
Spoiler:


Now then...
These were my notes while I was doing it with my hack.
And I decided to share it~



Adding New Attacks In Ruby

(This Tutorial Will Add 157 New Attacks)

Step 1...
- Navigate to the attack data table.
--- Ruby = 1FB12C
- Select and copy 4,260 (hex = 10A4) bytes of data.
--- Ruby = 1FB12C to 1FC1D0
- Paste it on free space.
--- Example: Your offset: 800000 to 8010A4
- Repoint all references of the attack data to the new offset.
--- Ruby = 1FB12C => 2CB11F08
--- Example: Your offset: 800000 => 00008008
- Repoint the PP data to the new offset + 4 bytes.
--- Ruby = 1FB12C + 4 bytes = 1FB130 => 30B11F08
--- Example: Your offset: 800000 + 4 bytes = 800004 => 04008008

Step 2...
- Navigate back to the attack data table.
--- Ruby = 1FB12C
- Select and copy 1,884 (hex = 75C) bytes of data.
--- Ruby = 1FB12C to 1FB888
- Select and paste 1,884 (hex = 75C) bytes of free space data at the end of the attack data on the new offset.
--- Example: Your offset: 8010A4 to 801800

Step 3...
- Navigate to the attack name table.
--- Ruby = 1F8320
- Select and copy 4,615 (hex = 1207) bytes of data.
--- Ruby = 1F8320 to 1F9527
- Paste it on free space.
--- Example: Your offset: 802000 to 803207
- Repoint all references of the attack data to the new offset.
--- Ruby = 1F8320 => 20831F08
--- Example: Your offset: 802000 => 00208008

Step 4...
- Navigate back to the attack name table.
--- Ruby = 1F8320
- Select and copy 2,041 (hex = 7F9) bytes of data.
--- Ruby = 1F8320 to 1F8B19
- Select and paste 2,041 (hex = 7F9) bytes of free data at the end of the attack name data on the new offset.
--- Example: Your offset: 803207 to 803A00

Step 5...
- Navigate to the attack animation table.
--- Ruby = 1C7168
- Select and copy 1,420 (hex = 58C) bytes of data.
--- Ruby = 1C7168 to 1C76F4
- Select and paste it on free space that ends with a 0, 4, 8 or C.
--- Example: Your offset: 803A04 to 803F90
- Repoint all references of the attack data to the new offset.
--- Ruby = 1C7168 => 68711C08
--- Example: Your Offset: 803A04 => 043A8008

Step 6...
- Navigate back to the attack animation table.
--- Ruby = 1C7168
- Select and copy 628 (hex = 274) bytes of data.
--- Ruby = 1C7168 to 1C73DC
- Select and paste 628 (hex = 274) bytes of free space data at the end of the attack animation table on the new offset.
--- Example: Your offset: 803F90 to 804204

Optional Step...
- Navigate to the attack animation table...
--- Ruby = 3C09D8
- Select and copy 1,420 (hex = 58C) bytes of data.
--- Ruby = 3C09D8 to 3C0F64
- Paste it on free space.
--- Example: Your offset: 804500 to 804A8C
- Repoint all references of the attack data to the new offset.
--- Ruby = 3C09D8 - D8093C08
--- Example: Your offset: 804500 => 00458008
- Navigate back to the attack description table...
--- Ruby = 3C09D8
- Select and copy 628 (hex = 274) bytes of data.
--- Ruby = 3C09D8 to 3C0F64
- Select and paste 628 (hex = 274) bytes of free space data at the end of the attack animation table on the new offset.
--- Example: Your offset: 804A8C to 804D00

Step 7...
- Update the data on PGE's ini file.
--- NumberOfAttacks=511
--- AttackData=&H(new attack data table offset)
--- AttackNames=&H(new attack name table offset)
--- AttackAnimationTable=&H(new attack animation table offset)

Step 8...
- Disable the 6-byte limiter to 00 00 00 00 00 00.
--- Ruby = 120DF4 = B1 20 40 00 81 42 ==> 00 00 00 00 00 00


Repoint - “it means that you should replace this address to your new offset.”
Quote:
Example...
- Repoint the PP data to the new offset + 4 bytes.
--- Ruby = 1FB12C + 4 bytes = 1FB130 => 30B11F08


The underlined reversed offset is the address you'll need to replace.
Example, your selected free offset is 0x820000.
820000 => 00008208
Swap the red ones and add 08 at the end.

So, in this example, search and replace 30B11F08 with your reversed offset, 00008208.

Spoiler:

Spoiler:

Spoiler:
Select Data - “highlight—or select—the required amount of bytes/data.”
Quote:
Example...
- Select and copy 4,260 (hex = 10A4) bytes of data.
--- Ruby = 1FB12C to 1FC1D0


Start copying on the blue arrow...
Spoiler:

...and stop at one byte behind offset 1FC1D0 at the red arrow...
Spoiler:


Resource...


And that's it~
G'luck with your hacks, pipz~
__________________

Last edited by destinedjagold; January 16th, 2014 at 09:36 PM.
Reply With Quote
  #2    
Old October 13th, 2013, 10:50 PM
hackstar's Avatar
hackstar
Check it out!!
 
Join Date: Jan 2013
Location: Dhaka
Gender: Male
Nature: Bashful
Hey congratulation and thank you very very much for this!!! now pokemon ruby on fire!!!


I have one question is that will it work for pokemon emerald...(i Hope it work)

Last edited by DrFuji; October 14th, 2013 at 12:11 AM. Reason: Off-topic. Send destinedjagold a PM/ VM instead
Reply With Quote
  #3    
Old October 14th, 2013, 07:04 AM
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
Quote:
Originally Posted by hackstar View Post
Hey congratulation and thank you very very much for this!!! now pokemon ruby on fire!!!


I have one question is that will it work for pokemon emerald...(i Hope it work)
I've done it already

Thank you DJG, I already knew how to do this, but it's nice to know that someone made a proper tutorial for this. Now, all we need to do now, is to find the move effects table.
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpos...&postcount=288
Reply With Quote
  #4    
Old November 11th, 2013, 11:56 AM
mezgo21's Avatar
mezgo21
 
Join Date: Nov 2013
Gender: Male
i have a question:
how do you do the eight step?
Reply With Quote
  #5    
Old November 11th, 2013, 05:25 PM
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
Quote:
Originally Posted by mezgo21 View Post
i have a question:
how do you do the eight step?
Ah, that one...

Quote:
Originally Posted by destinedjagold View Post
Step 8...
- Disable the 6-byte limiter to 00 00 00 00 00 00.
--- Ruby = 120DF4 = B1 20 40 00 81 42 ==> 00 00 00 00 00 00[/INDENT]
With your ROM currently opened with a hex editor, search the bytes
Code:
B12040008142
which is found in the address 120DF4, and then replace them with zeros.
Code:
000000000000
__________________
Reply With Quote
  #6    
Old November 13th, 2013, 06:27 PM
mezgo21's Avatar
mezgo21
 
Join Date: Nov 2013
Gender: Male
thanks for the answer
another question
how do you change the animation for the attacks?
Reply With Quote
  #7    
Old December 5th, 2013, 08:06 AM
Le pug's Avatar
Le pug
Creator of Pokémon: Discovery
Community Supporter
 
Join Date: Aug 2013
Location: Le bed
Age: 22
Gender: Male
Nature: Bold
The fact that you're doing ruby tutorials is amazing and very helpful to me and my hack. Many thanks on all your tuts you've provided thus far!
__________________



Check out some of my contributions:
• Check out my easy tile insertion tutorial, Inserting Tiles Into AdvanceMap For Dummies
Click here to find out how to remove clouds from the Emerald titlescreen
• Check out the most updated Emereld Decapitalization Patch around by clicking here
• Need help fixing a gross bug in your hack? Let me show you how by clicking here



Click here to view the PC thread of Pokémon: Discovery.
Click here to view the PC thread of Pokémon: Fat Kid.

Pokétch ROM Hacking Community Pokémon: Discovery Discovery Twitter Discovery FB IRC Chat
Reply With Quote
  #8    
Old December 24th, 2013, 01:55 AM
Germaniac's Avatar
Germaniac
Victoria Concordia Crescit
 
Join Date: May 2009
Location: Jakarta, Indonesia
Age: 16
Gender: Male
Nature: Relaxed
How to edit Contest data then?
EDIT: At least tell me how many bytes each move uses, I know the offset
__________________

Last edited by Germaniac; December 24th, 2013 at 08:40 AM.
Reply With Quote
  #9    
Old December 24th, 2013, 07:56 PM
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
Quote:
Originally Posted by アルセウス View Post
How to edit Contest data then?
EDIT: At least tell me how many bytes each move uses, I know the offset

You can easily edit the contest data thru PGE.
Attack data contains 12 bytes each attack.
Attack names contains 13 bytes each attack.
__________________

Last edited by destinedjagold; December 25th, 2013 at 06:34 AM.
Reply With Quote
  #10    
Old December 24th, 2013, 11:34 PM
Germaniac's Avatar
Germaniac
Victoria Concordia Crescit
 
Join Date: May 2009
Location: Jakarta, Indonesia
Age: 16
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by destinedjagold View Post

You can easily edit the contest data thru PGE.
Attack data contains 12 bytes each attack.
Attack names contains 3 bytes each attack.
I always get an error editing the contest data of the new moves in PGE :/, btw pretty sure you mean 13 bytes for attack names, I was asking for the bytes used for contest data though
__________________

Last edited by Germaniac; December 25th, 2013 at 12:51 AM.
Reply With Quote
  #11    
Old December 25th, 2013, 06:33 AM
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
Quote:
Originally Posted by アルセウス View Post
I always get an error editing the contest data of the new moves in PGE :/, btw pretty sure you mean 13 bytes for attack names, I was asking for the bytes used for contest data though
If you mean this error...
Spoiler:

Then I just hit [Continue] and continue making changes, and then hit Save.
My changes to the Contest data were saved no problem, however, just save some back-up in case some unknown things might occur. =/

And yesh, I meant 13 bytes for attack names.
My stupid keyboard was just being stupid. >.>
__________________
Reply With Quote
  #12    
Old December 25th, 2013, 10:51 PM
Germaniac's Avatar
Germaniac
Victoria Concordia Crescit
 
Join Date: May 2009
Location: Jakarta, Indonesia
Age: 16
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by destinedjagold View Post
If you mean this error...
Spoiler:

Then I just hit [Continue] and continue making changes, and then hit Save.
My changes to the Contest data were saved no problem, however, just save some back-up in case some unknown things might occur. =/

And yesh, I meant 13 bytes for attack names.
My stupid keyboard was just being stupid. >.>
No, it's different error, also, when I change the contest data (move effect section is the bugged one) of the new moves, some old moves also changed along with the new ones, maybe they have the same pointer?
Spoiler:

I inserted 160 appeal (the error happens with any appeal), when I go to check the move again, this happened

Also, if you look at PGE's ini, you'll find this:
ContestMoveData=&H3CF594
ContestMoveEffectData=&H3D00AC
__________________
Reply With Quote
  #13    
Old January 29th, 2014, 04:56 AM
Amy_Chan
 
Join Date: Jan 2014
After I add the new moves, when my Pokémon try to use an attack, it says:
"[Pokémon] had no moves left!"
Then the Pokémon use Struggle.
All Pokémon are stuck like this.
I followed the instructions carefully though.... and my hex editor is also Hex Workshop
Reply With Quote
  #14    
Old June 7th, 2014, 10:57 PM
Kent46
 
Join Date: May 2013
Gender: Male
oh my tool shows weird texts is it a way to fix it?
Reply With Quote
  #15    
Old August 17th, 2014, 10:14 AM
Dark Sneasel's Avatar
Dark Sneasel
dem Verdanturf flowers are sexy
Community Supporter
 
Join Date: Jun 2013
Location: Miami, FL
Age: 14
Gender: Male
Nature: Hasty
For Emerald:

Replace 1FB12C with 31C898
1F8320 with 31977C
1C7168 with 2C8D6C
3C09D8 with 61C524
120DF4 with 14E504

You're welcome :D

__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #16    
Old September 14th, 2014, 05:12 AM
Artemis64
 
Join Date: Mar 2014
Gender: Male
What are the sizes of the contest move data, so I can expand them as well?
Reply With Quote
  #17    
Old September 14th, 2014, 11:36 AM
Gamer2020's Avatar
Gamer2020
This love is a sickness...
 
Join Date: Jun 2008
Location: Distant Land
Gender: Male
Nature: Bold
Send a message via Skype™ to Gamer2020
Quote:
Originally Posted by destinedjagold View Post
If you mean this error...
Spoiler:

Then I just hit [Continue] and continue making changes, and then hit Save.
My changes to the Contest data were saved no problem, however, just save some back-up in case some unknown things might occur. =/

And yesh, I meant 13 bytes for attack names.
My stupid keyboard was just being stupid. >.>
Quote:
Originally Posted by Germaniac View Post
No, it's different error, also, when I change the contest data (move effect section is the bugged one) of the new moves, some old moves also changed along with the new ones, maybe they have the same pointer?
Spoiler:

I inserted 160 appeal (the error happens with any appeal), when I go to check the move again, this happened

Also, if you look at PGE's ini, you'll find this:
ContestMoveData=&H3CF594
ContestMoveEffectData=&H3D00AC

I can't remember if I have fixed this yet. Try the new version of PGE in my signature. If the error still happens send me a PM and I'll fix it.
__________________
Pokemon Game Editor Download!
Pokemon TCG Assistant!
Fun Fact: Even though PGE isn't posted on PC anymore it still has the same number of downloads per day.
Reply With Quote
  #18    
Old October 11th, 2014, 01:17 AM
Felix Fireblaze's Avatar
Felix Fireblaze
 
Join Date: Jun 2014
Gender: Male
What hex Editor do you use?
Reply With Quote
  #19    
Old October 11th, 2014, 02:45 AM
Ksiazek Bartlomiej's Avatar
Ksiazek Bartlomiej
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 21
Gender: Male
Nature: Hardy
I found one glitch after using this method. I use your method destinedjagold in my hack <Which trailer was in my signature> And I have strange failure with display Pokemon Nature names. Some of them become glitchy text <It was not freezing game.>
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
Reply With Quote
  #20    
Old October 12th, 2014, 05:36 PM
RaileysXerilyasRX's Avatar
RaileysXerilyasRX
You have failed me from the last time.
 
Join Date: Feb 2014
Location: Philippines
Gender: Male
Nature: Adamant
Send a message via Skype™ to RaileysXerilyasRX
Alright! I have figured out the problem for contest data. Everytime when you open PGE with the added moves, there are errors for viewing or editing contest data. The reason why it errors is because the contest data is not expanded. Here goes! Just add this to your tutorial:

Spoiler:

Step #...
- Navigate to the contest data table.
--- Ruby = 3CF594
- Select and copy 2,840 (hex = B18) bytes of data.
--- Ruby = 3CF594 to 3D00AC
- Select and paste it on free space that ends with a 0, 4, 8 or C.
--- Example: Your offset: 804D00 to 805818
- Repoint all references of the attack data to the new offset.
--- Ruby = 3CF594 => 94F53C08
--- Example: Your Offset: 804D00 => 004D8008

Step #...
- Navigate back to the contest data table.
--- Ruby = 3CF594
- Select and copy 1,256 (hex = 4E8) bytes of data.
--- Ruby = 3CF594 to 3CFA7C
- Select and paste 1,256 (hex = 4E8) bytes of free data at the end of the attack name data on the new offset.
--- Example: Your offset: 805818 to 805D00

Step #...
- Update the data on PGE's ini file.
--- NumberOfAttacks=511
--- AttackData=&H(new attack data table offset)
--- AttackNames=&H(new attack name table offset)
--- AttackAnimationTable=&H(new attack animation table offset)
--- AttackDescriptionTable=&H(new attack description table offset)
--- ContestMoveData=&H(new contest data table offset)


If anyone follows these steps, when you open GBAPGE, there will be no error for viewing contest data. I hope this helps. I'm not actually a Ruby hacker but I just researched for helping. BY THE WAY, THE OPTIONAL STEP (the Attack Description Table) ISN'T OPTIONAL AT ALL. IT IS REQUIRED TOO. Good luck with this!
__________________
RaileysXerilyasRX
Pokémon Dark Vengeance Version

Last edited by RaileysXerilyasRX; October 12th, 2014 at 05:38 PM. Reason: missing with the attack desc
Reply With Quote
  #21    
Old October 12th, 2014, 06:18 PM
HidoranBlaze's Avatar
HidoranBlaze
 
Join Date: Apr 2013
Age: 18
Gender: Male
Quote:
Originally Posted by Ksiazek Bartlomiej View Post
I found one glitch after using this method. I use your method destinedjagold in my hack <Which trailer was in my signature> And I have strange failure with display Pokemon Nature names. Some of them become glitchy text <It was not freezing game.>
Again, your move description table is probably why you're getting glitchy natures. Look at this: http://www.pokecommunity.com/showpos...&postcount=168
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 05:58 PM.


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.