View Single Post
Old March 17th, 2013 (9:47 AM). Edited March 17th, 2013 by karatekid552.
karatekid552's Avatar
What happens if I push it?....
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Posts: 1,766
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Originally Posted by Reygok View Post
Thanks miksy, I'll try with that size

Edit: Okay, that did not work out the way I assumed it would. I'm using the Pokémon Editor in 0xRH's GBA Pokémon Game Editor to add new moves to my newly created pokémon. It now only has Tackle, by default, and I can't figure out how to add new ones. Does anybody know how to do that ?

Thanks in advance
I'm just going to going to tell you how to expand movesets in PGE. The only problem with this is that all old moves will be deleted so you will have to reinsert them.

I shall assume you have the move editor tab of P.E. open.

1. Click "Insert Attacks at Offset".

2. Type in the address of some free space (use FSF and just search for 1000 bytes, well more than enough). Copy the address into a notepad or such as we will we need it later.

3. Type in the number of attacks you want your Pokémon to learn. (In decimal)

4. Click insert.

5. Now paste the address we saved earlier into the box labeled "Level-up Attack Pointer" and click "repoint". Save the original address, you may want it later.

6. Now you have a brand new *clean* moveset that you can edit however you wish. If you want the old moveset in there because it sucks entering them all in again, you will have to copy it from the old location and paste it over the new location in a hex editor.

7. To do that, open HxD and go to the original address of the level-up attack pointer.

[miksy91: your guess on how moves are stored was an educated one... but wrong:/. That is how most people would think they are stored, myself included, but they are actually squished into 2 bytes by some formula instead of 3. I'm trying to figure out the formula right now... But it is weird....]

8. Find out the orginal number of attacks by some means, multiply that by two, and select that many bytes.

9. Copy and paste-WRITE to our new level-up attack pointer that we found using FSF.


Edit: I figured out the formula!

Okay, for moves that are numbered 255 and below, they are stored [move number] [level x 2].

For moves above 255, they are stored [move number - 255] [level x 2 + 1]

So, as you can see, if the level byte is odd, it knows to read from the set of moves above 255 and if it is even, it reads from the set of moves below 255. Quite the thought that went into this one!

Paired with Simba