![]() |
[Ruby] Adding New Moves
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~ http://i40.*.com/33f3x2u.jpg
(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 00http://i40.*.com/33f3x2u.jpg Repoint - “it means that you should replace this address to your new offset.” Quote:
Quote:
Resource... http://i40.*.com/33f3x2u.jpg And that's it~ G'luck with your hacks, pipz~ |
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) |
Quote:
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. |
i have a question:
how do you do the eight step? |
Quote:
Quote:
Code:
Code:
|
thanks for the answer
another question how do you change the animation for the attacks? |
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!
|
How to edit Contest data then?
EDIT: At least tell me how many bytes each move uses, I know the offset |
Quote:
You can easily edit the contest data thru PGE. Attack data contains 12 bytes each attack. Attack names contains 13 bytes each attack. |
Quote:
|
Quote:
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:
Spoiler:
Also, if you look at PGE's ini, you'll find this: ContestMoveData=&H3CF594 ContestMoveEffectData=&H3D00AC |
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 |
oh my tool shows weird texts is it a way to fix it?
|
For Emerald:
Replace 1FB12C with 31C898 1F8320 with 31977C 1C7168 with 2C8D6C 3C09D8 with 61C524 120DF4 with 14E504 You're welcome :D http://i.snag.gy/MGmX0.jpg |
What are the sizes of the contest move data, so I can expand them as well?
|
Quote:
Quote:
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. |
What hex Editor do you use?
|
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.>
|
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:
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! |
Quote:
|
Quote:
But I got a problem with the pokemon natures when I did this http://www.pokecommunity.com/picture.php?albumid=9365&pictureid=78052http://www.pokecommunity.com/picture.php?albumid=9365&pictureid=78053 And one more thing, I don't know which to follow and which is not Quote:
if i followed this Quote:
Quote:
Quote:
by the way I use HxD EDIT: I didn't follow the optional step. |
Quote:
Quote:
Quote:
|
I going to report one bug. Expanded move table destroyed Nature Names. Three nature names become glitchy text.
|
Quote:
EDIT here are the images don't know if you can see this now http://i.imgur.com/doYhyo5.pnghttp://i.imgur.com/W2scToc.png |
| All times are GMT -8. The time now is 2:54 AM. |
![]()
© 2002 - 2018 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 - 2016 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.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.