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 15th, 2012, 09:41 PM
itman
Back to ROM hacking. :D
 
Join Date: May 2007
Age: 20
Nature: Adamant
This is a tutorial on how to add new moves to Pokemon Fire Red without replacing old ones, and a start on creating new move effects. This info was founded by Jambo51, and the original thread can be found here:

http://www.pokecommunity.com/showthread.php?t=263479

Due to it being a tad confusing to some (because it was never written to be a tutorial in the first place), I thought I would make it easier to follow because this is huge, and I feel like many hacks could benefit from this. This is for Fire Red BPRE 1.0 (aka FR US 1.0) by the way. To know if you have a BPRE ROM, load it up and watch the title screen. If the "Presents" after the Gamefreak symbol doesn't show up, you have BPRE. I hope this makes it easier for people to understand how to do it.

What's needed:
1. FIre Red BPRE 1.0 ROM (aka FR US 1.0)
2. A Hex Editor (I'll be using Hex Workshop).
3. Pokemon Game Editor by Gamer2020. (Download it here: http://www.pokecommunity.com/showthread.php?t=265635).
4. As Jambo excellently puts it, *PATIENCE*.


PART ONE - ADDING NEW MOVES WITHOUT REPLACING EXISTING ONE

Step One
Spoiler:
Open up your ROM in a hex editor (once again, I'll be using hex workshop).

Spoiler:





Step Two

Spoiler:
Goto address 0x250C04.

This is the address of the original move data, which we are going to be moving to a different location.

Spoiler:









Step Three

Spoiler:
Edit > Select Block > 4260 Bytes. Copy.

Spoiler:









Step Four

Spoiler:
Open up Free Space Finder and search for 4260 Bytes of Free Space. Goto that address. For this example, we'll use 0x900000.

Free Space = FF's. Basically, anything from 0x780000 - 0xFFFFFF is free space.

Spoiler:






Step Five

Spoiler:
Paste the original move data in the new location.

IMPORTANT: Paste OVER the FF's. So go to Edit > Select Block > 4260, and then paste there. DO NOT PASTE WITHOUT HIGHLIGHTING THE FF'S FIRST.

WRITE DOWN THIS ADDRESS!!! So in my case, I'd write down 0x900000 = Move data.

Spoiler:














Step Six

Spoiler:
Change all the original pointers to the original move data to your new location.

This means, basically, that anything that is directed to the old location will be sent to the new location. So, in my case, 0x900000 is the new location. I want to first go to Edit > Find .

Spoiler:





That is what will show up. Since the old table was located at 0x250C04, any pointer to that data will look like this:

Spoiler:
04 0C 25 08


So we want to search for that string of bytes in the ROM.

Spoiler:


And then replace EVERY one with our new pointer, in my case, 0x900000, which becomes:

Spoiler:
00 00 90 08


*Quick lesson on pointers.*

1. First look at your offset. Example offset: 0x594039
2. Break it into sets of two's: 59 40 39
3. Take the last byte and put it first: 39 59 40
-Remember, the two numbers together is one byte, so don't rearrange the byte itself, just the order.
4. Take the last byte and put it between the two other bytes: 39 40 59
5. Add 08 to the end: 39 40 59 08

Another example real quick:
0xA9EBB0 becomes B0 EB A9 08
Basically you're just reversing the bytes and adding 08.

*End of quick lesson*

So once again, we're replacing all of the pointers to 0x250C04 to 900000. Just keep on searching for that string and replacing them until there are no more left to be replaced.

Seriously, there are A LOT, so BE PATIENT.

Spoiler:









Step Seven

Spoiler:
Edit > Find (again).

There are ALSO pointers in the ROM to 0x250C08...for PP data. So, we once again have to replace all of those pointers with your new pointer + 4. So, 0x900000 + 4 is 0x900004.


So the pointers to 0x250C08 will look like this: 08 0C 25 08

And the replacement pointer of 0x900004 looks like this: 04 00 90 08

Spoiler:











Now replace all of those! There are a lot of these too, so be patient.



Step Eight

Spoiler:
Go back to the original move table data (0x250C04) and copy (12*number of new attacks) you want to add.
The maximum that the table can hold is 511. There are already 354 moves though. So in this example, I want to to the maximum; 511-354 is 157. So 12*157 is 1884.

Now do Edit > Select Block > 1884 and copy that data.

Spoiler:









Step Nine

Spoiler:
Return to where you put your new move data from before (in my case 0x900000). Go to the end of the data (where the FF's begin again). Once again; Edit > Select Block > 1884. And then paste.

Spoiler:


















Step Ten

Spoiler:
Goto address 0x247094. Edit > Select Block > 4615.
Copy that data.

This is the data for attack names.

Spoiler:















Step Eleven

Spoiler:
Open up Free Space Finder and search for 4615 bytes of free space. To make things easier, you can put this data right after the move data. Write down the offset you inserted this at! In my case, I'm pasting it at 0x901800.

Spoiler:












Step Twelve

Spoiler:
Much like before, we need to change all of the pointers associated with the old location and direct them to our new location. Edit > Find.

Any pointer to 0x247094 will look like 94 70 24 08

So that's what we'll search.
Once again, there's more than one!

I'll be replacing mine with 00 18 90 08.

Spoiler:












Step Thirteen

Spoiler:
Go back to 0x247094 and copy (13*number of new attacks) bytes. We'll add this onto the end of the other table just like we did with the move data. Once again, we want the table to support up to 511 moves, so 157*13 is 2041.

Now do Edit > Select Block > 2041, and copy that data.

Spoiler:












Step Fourteen

Spoiler:
Return back to your new location for the attack names data (mine was 0x901800) and go to the end of the data. Once at the bottom, once again, Edit > Select Block > 2401 and paste.


Spoiler:












Step Fifteen

Spoiler:
Goto 0x1C68F4. Edit > Select Block > 1420. Copy.

This is the animation data. The new moves wouldn't work without some sort of animation to go along with them...

Spoiler:









Step Sixteen

Spoiler:
Open up Free Space Finder and search for 1420 bytes. (Or if you know you have room, paste this data right after the new attack names data). Edit > Select Block > 1420 and paste the data. MAKE SURE the offset you paste the data on ends with a 0, 4, 8, or C, OR IT WILL NOT WORK. So the offset I'm pasting mine it is 0x90336C.

Spoiler:












Step Seventeen

Spoiler:
Edit > Find > F4 68 1C 08

Yep, you guessed it, we have to change the pointer to that data to the one of our new one. I'm pretty sure there is only one, but check just to be safe. So I will change it to 0x90336C.

So my pointer will look like this: 6C 33 90 08.

Spoiler:












Step Eighteen

Spoiler:
Go back to 0x1C68F4 and copy (4*number of new attacks) bytes. 157*4 is 628. So Edit > Select Block > 628. Copy.

Spoiler:









Step Nineteen

Spoiler:
Once again, you can open Free Space Finder and search for 628 free blocks, or to make things easier once again, just post this directly underneath the third set of data that you just placed (the animation data).

A note, each move will have an animation. As of now, each move will inherit the animations of the first however many attacks you added, so new attack number 1 (#335) will have pound's animation, etc...

Spoiler:












Step Twenty

Spoiler:
Open up Pokemon Game Editor's INI (Should be in a folder that says "ini" that came with the program).

Or you can open up Pokemon Game Editor, go to "Help", and click "Edit roms.ini".

Spoiler:



Step Twenty-One

Spoiler:
Change the offsets so it knows where the new location of your attack data and such is.

The only things we need to change are these three things:

NumberOfAttacks=354
AttackData=&H250C04
AttackNames=&H247094

We want to change those to our new offsets. Here is what mine will look like (and yours too, if you followed the tutorial).

NumberOfAttacks=511
AttackData=&H900000
AttackNames=&H901800

Spoiler:


















Step Twenty-Two

Spoiler:
Lastly, there is one limiter in the ROM. If it is not disabled, instead of saying "Bulbasaur used VenoShock!", it will say "Bulbasaur used a POISON move!".

Go to 0xD75Fc and overwrite whatever is there with:

00 00 00 00 00 00

Spoiler:






From Here...

Spoiler:
You can now easily edit these moves in Pokemon Game Editor's built in Attack Editor. To put these moves into existing movesets, use Pokemon Game Editor's built in Pokemon Editor.




PART 2 - CREATING NEW MOVE EFFECTS

Step One

Spoiler:
Open up your ROM in your hex editor and go to
address 0x1D65A8. Edit > Select Block > 856. Copy.

This is the move effect table. Right now it only goes up to 213, but by rewriting it we can make it support up to 255 (256, since 0 counts) pointers.


Spoiler:









Step Two

Spoiler:
Open up Free Space Finder and search for 856 bytes of free space. Go to that location (I'll use 0x910000 in my example). Edit > Select Block > 856. Paste.


Spoiler:












Step Two and a Half (hehe)

Spoiler:
Edit > Find > A8 65 1D 08 (again, changing the pointers from the original table to our new table). I would be changing them to 00 00 91 08 (By now, I hope everyone understands how pointers work!). Replace them all.

Spoiler:









Step Three

Spoiler:
Go to the end of your new move effects table. The last pointer, which is 5F 86 1D 08 is actually marking the end of the table. So the pointer before that (which is FB 85 1D 08) is actually the last effect in the table (#213).

We want to add a new effect, so what we are going to to is overwrite the last pointer (5F 86 1D 08) with a new pointer. Normally you would make your move effect first, and then search for free space to put it, and then make your new pointer, but for the sake of this tutorial we are going to say that my new move will be located at 0x920000.

Spoiler:












Step Four

Spoiler:
Here is where we actually make new move effects.

Just a briefing, we can't (yet) create COMPLETELY new move effects, but we can combine and edit any of the existing ones available. With much testing and experimenting, you can create almost all of the moves from Gen 1V and V. I managed to create a working U-Turn/Volt Tackle even from editing Baton Pass's script (look at the end of this tutorial for move effects already created).

For this tutorial, I am going to make the move Hammer Arm.

Hammer Arm's effect is simple - After using it, your speed gets lowered by one. Hmmm...

Let's think for a second. What other moves have effects that can help us create this one...in reality, there are MANY. Let's go with another move that lowers your stats...

There are many, but let's go with Psycho Boost (after using Psycho Boost, your special attack is lowered by two.

Go to the location of your new move effect table. (If you followed this tutorial, it's at 0x910000). To find where Psycho Boost's pointer is, we need to first find what effect number it uses.

Chaos Rush posted a list of them for us in the other thread. It saves everyone A LOT of trouble, so I'll post it here.

Spoiler:
0 = no added effect
1 = puts target to sleep
2 = posion the target
3 = abosrbs half the damage inflicted (Absorb, Mega Drain, etc.)
4 = burn the target
5 = freeze the target
6 = paralyze the target
7 = Selfdestruct, Explosion
8 = takes 1/2 of damage inflicted on sleeping foe (Dream Eater)
9 = Mirror Move
10 = raises user's Attack
11 = raises user's Defense
12 = raises user's Speed
13 = raises user's Special Attack
14 = raises user's Special Defense
16 = raises user's evasion
17 = never misses
18 = lowers opponent's Attack
19 = lowers opponent's Defense
20 = lowers opponent's Speed
21 = lowers opponent's Special Attack
22 = lowers opponent's Special Defense
23 = lowers opponent's Accuracy
24 = lowers opponent's evasion
25 = Haze (there's many effects associated exclusively with this move)
26 = Bide
27 = Thrash/Petal Dance/Outrage
28 = Whirlwind/Roar effect
29 = happens 2-5 times
30 = Conversion
31 = may cause flinching
32 = Recover 1/2 of maximum HP
33 = badly poisons foe
34 = Pay Day
35 = Light Screen
36 = may freeze, paralyze, or burn
37 = Rest
38 = 1-hit KO
39 = takes 2 turns + high critical hit ratio (Razor Wind)
40 = always cuts half of foe's current HP
41 = always do 40 HP damage (Dragon Rage)
42 = Bind/Fire Spin/Clamp/Whirlpool effect
43 = high critical hit ratio
44 = hits twice (Double Kick)
45 = if miss, then user receives 1/8 of damage it would have dealt (Jump Kick)
46 = stops stat changes (Mist)
47 = raises user's critical-hit ratio
48 = recoil damage, 1/4 of damage (Take Down)
49 = Confuse target
50 = sharply raises users Attack
51 = sharply raises users Defense
52 = sharply raises users Speed
53 = sharply raises users Special Attack
54 = sharply raises users Special Defense
57 = Transform
58 = sharply reduces foe's Attack
59 = sharply reduces foe's Defense
60 = sharply reduces foe's Speed
61 = sharply reduces foe's Special Attack
62 = sharply reduces fow's Special Defense
65 = Reflect
66 = poisons the target (again, for some reason)
67 = paralyzes the target (again, for some reason)
68 = lower opponent's Attack
69 = lower opponent's Defense
70 = lower opponent's Speed
71 = lower opponent's Special Attack
72 = lower opponent's Special Defense
73 = lower opponent's accuracy
75 = takes 2 turns, may cause opponent to flinch
76 = may Confuse target
77 = hits twice, may poison opponent (Twineedle)
78 = never misses, but attacks second
79 = Substitute
80 = immobile next turn (Hyper Beam)
81 = raises user's Attack every time is hit (Rage)
82 = Mimic
83 = Metronome
84 = steals opponent HP every turn (Leech Seed)
85 = Splash
86 = Disable
87 = damage is equal to user's level (Seismic Toss/Night Shade)
88 = amount of damage done varies (Psywave)
89 = Counter
90 = Encore
91 = Pain Split
92 = can only use this attack if user is asleep (Snore)
93 = Conversion 2
94 = next move after will not miss (Mind Reader)
95 = Sketch
97 = Sleep Talk
98 = Destiny Bond
99 = inflicts more damage if user has less HP (Flail, Reversal)
100 = Spite (cuts opponent's PP)
101 = False Swipe (will never make opponent faint)
102 = heals all status problems
103 = always attacks first
104 = attacks 3 times, gets stronger each time (Triple Kick)
105 = steal foe's held item
106 = prevents foe from fleeing/switching
107 = inflicts 1/4 damage on sleeping foe (Nightmare)
108 = raises user's evasion, receives double damage from Stomp
109 = Curse
111 = Protect/Detect
112 = Spikes
113 = Foresight
114 = Perish Song
115 = Sandstorm
116 = Endure
117 = Rollout/Ice Ball
118 = Swagger
119 = Fury Cutter
120 = Attract
121 = higher attack power if Pokemon happiness is higher
122 = Present
123 = higher attack power if Pokemon happiness is lower
124 = prevents all status problems from user
125 = thaw out if frozen, may burn target (Flame Wheel/Sacred Fire)
126 = Magnitude
127 = Baton Pass
128 = Pursuit
129 = Rapid Spin (removes Fire Spin, Whirlpool, etc.)
130 = always do 20 HP damage (SonicBoom)
132 = Morning Sun
133 = Synthesis
134 = Moonlight
135 = Hidden Power
136 = Rain Dance
137 = Sunny Day
138 = 10% chance of raising user's Defense (Steel Wing)
139 = may raise user's Attack (Metal Claw)
140 = may raise user's Attack, Defense, Speed, Special Attack, and Special Defense
142 = maximizes Attack, HP is cut in half (Belly Drum)
143 = Psych Up
144 = Mirror Coat (special version of Counter)
145 = takes 2 turns, raises user's Defense (Skull Bash)
146 = may flinch opponent, double the damage if opponent uses Fly or Bounce
147 = does double the damage if opponent is using Dig
148 = Future Sight
149 = does double the damage is opponent is using Fly or Bounce
150 = may cause flinching + attack power is doubled if opponent used Minimize
151 = takes 2 turns, unless Sunny Day is in effect. Only 1/2 the damage if Rain Dance, Sandstorm, or Hail
152 = Thunder (there's many effects associated exclusively with this move)
153 = Teleport
154 = Beat Up
155 = takes 2 turns
156 = raises user's Defense, power of Rollout and Ice Ball is now doubled
157 = Softboiled/Milk Drink (Recover, but usable out of battle)
158 = Attacks first, causes flinching (Fake Out)
159 = Prevents sleep, attacks for 2-5 turns (Uproar)
160 = Stockpile
161 = Spit Up
162 = Swallow
164 = Hail
165 = Torment
166 = Confuses foe, but raises foe's Special Attack
167 = Burns the foe, but doesn't affect Fire types
168 = Memento
169 = Boosts Attack when burned, paralyzed, or poisoned
170 = takes 2 turns, but if hit user flinches (Focus Punch)
171 = Stronger against paralyzed foes, but heals the paralysis (SmellingSalt)
172 = Makes foes attack only the user (Follow Me)
173 = Nature Power
174 = Next electric move used is now stronger (Charge)
175 = Taunt
176 = Helping Hand
177 = Trades held items with foe
178 = copies opponent's special ability
179 = Wish
180 = attacks randomly with one of partner's moves (Assist)
181 = Ingrain
182 = lowers user's Attack and Defense
183 = Magic Coat
184 = Recycle
185 = double the damage if user was hurt by opponent in the same turn
186 = destroyes Light Screen and Reflect (Brick Break)
187 = Yawn
188 = opponent loses held item (Knock Off)
189 = Endeavor
190 = the higher user's HP, the more damage
191 = user swaps abilities with opponenet (Skill Swap)
192 = Imprison
193 = Refresh
194 = Grudge
195 = Snatch
196 = more damage on heavier foes (Low Kick)
197 = Secret Power
198 = recoil damage, 1/3 of damage (Double-Edge)
199 = confuses all Pokemon on the scene (Teeter Dance)
200 = high critical hit ratio + may cause burn (Blaze Kick)
201 = Mud Sport
202 = damage + badly poison target
203 = type and power depends on weather (Weather Ball)
204 = sharply lowers Special Attack after use (Overheat)
205 = lower's opponent's Attack and Defense (Tickle)
206 = raises user's Defense and Special Defense (Cosmic Power)
207 = can hit an opponent using Fly or Bounce (Sky Uppercut)
208 = raises user's Attack and Defense (Bulk Up)
209 = high critical hit ratio + poison
210 = Water Sport
211 = raises user's Special Attack and Special Defense (Calm Mind)
212 = raises user's Attack and Speed (Dragon Dance)
213 = Camouflage


According to this list, Psycho Boost uses effect number 204 (Same effect as Overheat). Now multiply 204*4, which is 816.

Edit > Select Block > 816.

Scroll to the end of your selected bytes. The pointer RIGHT AFTER the end of the selected blocks is the one we're looking for. This is because '0' is also a move effect. So the pointer of Psycho Boost's effect is 1B 84 1D 08, or address 0x1D841B.

Go to address 0x1D841B

Spoiler:















Step Five

Spoiler:
Now you are at the move effect for Psycho Boost. To know where the data ends, you need to navigate back to the pointer for Psycho Boost (where we just were before) and see the next closest pointer. I can see that another move effect has a pointer to 0x1D8426, so I know that Psycho Boost's effect is from addresses 0x1D841B to 0x1D8425.

Spoiler:



Step Six

Spoiler:
This is the data for Psycho Boost.

Addresses 0x1D841B - 0x1D8425

Spoiler:
2E 85 3E 02 02 FB 28 00 69 1D 08


As of right now, the user of this move will have their special attack lowered two stages. But we want the user's speed to be lowered one stage! In this case, all we need to change is a single byte.

To note, most moves end with the pointers 00 69 1D 08 (0x1D6900) or 4E 69 1D 08 (0x1D694E).

If your attack does damage, it'll use the first. If it doesn't, it'll use the second.

Now, the byte we need to change is the one I bolded:

Spoiler:
2E 85 3E 02 02 FB 28 00 69 1D 08


That byte (FB) is soley responsible for the special attack drop. Now, how do we turn it into a speed drop?

Here is a list of what you can do by changing this byte. These are the ones that work 100% of the time. Meaning, these effects will ALWAYS happen. There are more (I didn't test from 00-C0) but I'm sure they are the same effects, just with less of a chance of happening. I know 01 has a 10% chance of putting an opponent to sleep, 03 has a 10% chance of burning an opponent, etc...

Spoiler:

C1: Puts yourself to sleep.
C2: Poisons yourself.
C3: Burns yourself.
C4: Freezes yourself.
C5: Paralyzes yourself.
C6: Badly poisons yourself.
C7: Confuses yourself.
C9: Freezes opponent.
CA: Uproar's effect.
CB: Payday's effect.
CD: Sand Tomb's effect.
CE: 1/4 Recoil damage.
CF: Raises users attack one level.
D0: Raises users defense one level.
D1: Raises users speed one level.
D2: Raises users special attack one level.
D3: Raises users special defense one level.
D4: Raises users accuracy one level.
D5: Raises users evasion one level.
D6: Lowers users attack one level.
D7: Lowers users defense one level.
D8: Lowers users speed one level.
D9: Lowers users special attack one level.
DA: Lowers users special defense level.
DB: Lowers users accuracy level.
DC: Lowers users evasion one level.
DD: Takes a turn to recover (Hyper Beam, etc...)
DF: Thief's effect
E2: Users stats all raise one level (Except Accuracy and Evasion).
E5: Users attack and defense lower one level.
E6: 1/3 Recoil.
E7: Users attack raises two levels.
E8: Users defense raises two levels.
E9: Users speed raises two levels.
EA: Users special attack raises two levels.
EB: Users special defense raises two levels.
EC: Users accuracy raises two levels.
ED: Users evasion raises two levels.
EE: Users attack lowers two levels.
EF: Users defense lowers two levels.
F0: Users speed lowers two levels.
F1: Users special attack lowers two levels.
F2: Users special defense lowers two levels.
F3: Users accuracy lowers two levels.
F4: Users evasion lowers two levels.
F5: Outrage's effect.
F6: Knock Off's effect.
FB: Users special attack lowers two levels.


Anyway, we want one that ALWAYS lowers speed. So if you look, D8 ALWAYS lowers the users speed by one level. So our new move code is:

Spoiler:
2E 85 3E 02 02 D8 28 00 69 1D 08


Yay! We now have a working Hammer Arm!

So all we have to do is put this code where the we made the pointer for earliar in the move effect table (0x920000 in my case).

Spoiler:





Now, in Pokemon Game Editor, simply change the move effect of any move to 214 and it will use this effect!


But what if we want to add multiple effects?
For example, Flare Blitz?

Jambo51 made a way to do so.


DON'T MOVE ON UNLESS YOU UNDERSTAND EVERYTHING ELSE!

Spoiler:
I'll use his example from his thread.

Flare Blitz not only causes recoil, but also has a chance to burn the opponent

For these kinds of moves that require multiple effects, a different code is required.

If your attack does damage (in this case it will), start out with this code:

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00


This is our current code for Flare Blitz. All it does right now is cause damage.

Now, we need to add the recoil effect!

Remember how before we found Psycho Boost's effect location? Well in this case, we need to find an existing effect for recoil. Flare Blitz deals 1/3 recoil damage...hmmm...Double Edge does too!

Double Edge's effect (according to Chaos Rush's list) is number 198. So 198*4 is 792. So starting at the top of your new effect table;
Edit > Select Block > 792. The pointer after the highlighted area is the correct one. In this case, it's 3A 83 1D 08, or 0x1D833A.

Go to that location! However, before we go, let's see if we can find where the next closest pointer is to that location, so we know where double edge's effect ends. Right after it is the pointer to 0x1D8345, so we know that the last byte of Double Edge's effect is at 0x1D8344. Make sense? :)

This is what the code for double edge's effect is:

Spoiler:
2E 85 3E 02 02 E6 28 00 69 1D 08


You might be saying "Hmm...that looks exactly like the Hammer Arm code we just made, just with the byte set at E6!" That is exactly right. And if you look, E6 means it ALWAYS does 1/3 recoil damage. This makes sense now!

Now we add that onto the other code from before. We don't need the pointer at the end, however; we'll make our own later at the end of our custom move. So we can gedt rid of the 28 00 69 1D 08 (28 means "goto" in this case...we don't need that either).

Flare Blitz's current code should look like this:

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 E6


Now, we simply add a "15" after it. 15 is used to execute the effect, in this case executing the recoil damage.

Now our code looks like this:

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 E6 15


We need the chance to burn now! Now here's the goodnews: this is much easier to do. Changing our special byte to 03 makes it so there's a 10% chance to burn. SO, we can just take the recoil code, and change that byte that we all desperately love to 03.

Spoiler:
2E 85 3E 02 02 03 28 00 69 1D 08


We can now add that code onto our current Flare Blitz one. Once again, we'll remove the 28 00 69 1D 08, and add a 15 at the end.
Here is what it should look like as of now:

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 E6 152E 85 3E 02 02 03 15


And lastly, once you have finished your move, you add a goto command (28) and have it goto address 0x1D6947, or 47 69 1D 08.

So our final code for Flare Blitz is this:

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 E6 15 2E 85 3E 02 02 03 15 28 47 69 1D 08


Now you have one fully functional Flare Blitz!

A note: All effects, like per se a chance to flinch and burn, must share the same chance of happening! (Limitation of game's code). FURTHERMORE, do not make it so there's a chance of two status allignments happening at the same time: it will not work!



Now, for more complicated moves, other moves need to be dissected and experimented with to be found. The Hammer Arm code is my own, while the Flare Blitz code is Jambo's. Here are a few more. If you have successfully made a move effect, please let me know and I'll update it to this post.

Spoiler:
U-Turn/Volt Tackle - Made by Me (Itman)

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 4F 81 47 69 1D 08 50 01 F2 7D 1D 08 E2 01 3A 51 01 02 58 01 4C 01 4D 01 73 01 10 03 00 4E 01 01 3A 52 01 28 4E 69 1D 08 28 47 69 1D 08



Wake-Up Slap - Made by Me (Itman)

Spoiler:
1D 00 00 00 00 01 00 69 1D 08 2E 85 3E 02 02 A3 1C 00 07 00 00 00 77 04 90 08 28 00 69 1D 08 2E D2 3F 02 02 02 28 00 69 1D 08



Hammer Arm - Made by me (Itman)

Spoiler:
2E 85 3E 02 02 D8 28 00 69 1D 08



Flare Blitz - Made by Jambo51

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 E6 15 2E 85 3E 02 02 03 15 28 47 69 1D 08


Quiver Dance -Made by pawell6

Spoiler:
00 02 03 1D 00 00 00 00 01 F2 7D 1D 08 1C 00 07 00 00 00 B0 69 1D 08 84 CC 69 1D 08 1C 00 FF 00 00 00 F2 7D 1D 08 01 F2 7D 1D 08 00 00 1F 00 20 00 39 8B 1D 08 09 0A 2E 85 3E 02 02 52 15 2E 85 3E 02 02 53 15 2E 85 3E 02 02 51 15 28 47 69 1D 08


Coil - Made by Garuga17

Spoiler:
00 02 03 1D 00 00 00 00 01 F2 7D 1D 08 1C 00 07 00 00 00 B0 69 1D 08 84 CC 69 1D 08 1C 00 FF 00 00 00 F2 7D 1D 08 01 F2 7D 1D 08 00 00 1F 00 20 00 39 8B 1D 08 09 0A 2E 85 3E 02 02 CF 15 2E 85 3E 02 02 D0 15 2E 85 3E 02 02 D4 15 28 47 69 1D 08


Close Combat - Made by pawell6

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 D7 15 2E 85 3E 02 02 DA 15 28 47 69 1D 08


Note: this guide does not cover assigning different animations other than the inherited ones. I will add it soon once I figure out how to do it. ;)

EDIT: Take a look at this thread to make custom animations, by Chaos Rush: http://www.pokecommunity.com/showthread.php?t=281520

EDIT2: Everyone do this too. Update PGE's ini file (Open up PGE, goto Help > Update > ROM ini file). Then, go to where we were changing the pointers for the attack data and such, and there should be a new pointer at the bottom that says "AttackAnimationPointer". Change that to your new location for the attack animations (the one originally at 0x1C68F4, in my examples I placed it at 0x90336C).

Last edited by itman; January 31st, 2013 at 11:13 PM.
Reply With Quote
  #2    
Old October 16th, 2012, 03:24 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
WHOA

whoawhoawhoawhoawhoa

This is amazing. I love how you adapted Jambo's tutorial into an easy, picture-followable tutorial. And adding the effects - I don't have time to do it right now but this will be VERY VERY VERY useful in the future. Thank you!

but I base most of my experiments on Ruby and all of this is for FireRed

/ragemovetofirered
__________________
ROM hacking since 2008... and failing miserably still.


Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

deviantArt | YouTube

Last edited by timson733333; October 16th, 2012 at 03:34 PM.
Reply With Quote
  #3    
Old October 16th, 2012, 03:31 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
In case anyone is wondering about attack animations, here is what I've documented on it:
http://www.pokecommunity.com/showthread.php?t=281520

Hopefully with itman's tutorial, we'll finally start seeing more hacks with Gen IV/V/custom moves. I linked to my thread so people won't make new moves using existing animations, because custom animations are cool
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #4    
Old October 16th, 2012, 04:06 PM
TheOrangePichu's Avatar
TheOrangePichu
Currently working on new hack
 
Join Date: Jun 2011
Location: Earth
Gender: Male
Nature: Jolly
Funny, I was just thinking of this the other day. Finally, now with Jambo's patch, Rush's Pokemon Sprites, and now the ability to insert new moves, we can finally have 4th and 5th gen Pokemon and there moves in Pokemon Fire Red! Now if only we could add new abilities...
__________________
Credit to UmbraDragonX on deviantart for the icon!

Reply With Quote
  #5    
Old October 16th, 2012, 04:39 PM
FirEmerald's Avatar
FirEmerald
Pokemon reverse engineer
 
Join Date: Aug 2012
Age: 17
Gender: Male
Did you know that someone made a repointer for pokemon GBA games that would simplify this process?
Reply With Quote
  #6    
Old October 17th, 2012, 04:43 AM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Excellent tutorial, sir. Although, I did notice you forgot to change the animations pointer in PGE's ini, which could lead to bugs down the line.

Quote:
Originally Posted by TheOrangePichu View Post
Funny, I was just thinking of this the other day. Finally, now with Jambo's patch, Rush's Pokemon Sprites, and now the ability to insert new moves, we can finally have 4th and 5th gen Pokemon and there moves in Pokemon Fire Red! Now if only we could add new abilities...
We CAN add abilities (as I have done in my 649 Patch Project). Unfortunately, however, the vast majority can only be inserted at an ASM level, making it largely inaccessible to most hackers. Some can be inserted at the Battle Scripting level though, such as adding the Multitype clause to Transform.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #7    
Old October 20th, 2012, 04:59 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Step 14 should say "2041", not "2401." Just a little note.
__________________
ROM hacking since 2008... and failing miserably still.


Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

deviantArt | YouTube
Reply With Quote
  #8    
Old October 20th, 2012, 05:54 PM
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
I tried doing this for Ruby, but you lost me at Step 15. Where is the Attack Animation offset?
__________________
"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
  #9    
Old October 20th, 2012, 06:04 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Quote:
Originally Posted by LCCoolJ95 View Post
I tried doing this for Ruby, but you lost me at Step 15. Where is the Attack Animation offset?
It's not in roms.ini. You have to find it yourself. Same thing happened to me, so I moved to FireRed :/

Also, when we select, is 4260 bytes in hex or in decimal?
__________________
ROM hacking since 2008... and failing miserably still.


Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

deviantArt | YouTube
Reply With Quote
  #10    
Old October 21st, 2012, 06:21 AM
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
This looks like it will be very helpful for people to start learning, but I'd like to point out that that Hammer Arm script will not pierce Clear Body like in the vanilla games- you have to do a little more work. (This is actually quite important as one of the most well-known users of Hammer Arm is Metagross.)

Using JPAN's old thread on Battle Scripts, I was able to piece together one that does:

Edit: This script is old and will fail on misses/hitting immunities, look on page 4 for a better one

Spoiler:
00 01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 20 01 00 03 00 47 69 1D 08 2E DF 3F 02 02 00 48 01 08 09 2E DE 3F 02 02 93 89 C1 ED 84 1D 08 13 7C E5 3F 08 12 40 00 28 47 69 1D 08


And the decompiled logic for those wondering what I'm doing:

Spoiler:

HAMMER ARM- (after damage)
20 - Jump if stat modifier
- 01 (user)
- 00 stat equal to
- 03 speed
- 00 (-6)
- 47 69 1D 08
2E - set byte
- DF 3F 02 02
- 00
48 - Display stat mod animation
- 01
- 08
- 09
2E - set byte
- DE 3F 02 02
- 93
89 - change stats
- C1 (user, can't fail)
- ED 84 1D 08 (does this matter?)
13 - print from table
- 7C E5 3F 08
12 - wait for text
- 40 00
28 - jump
- 47 69 1D 08


Also, a bit of cautionary advice- if any of the effects you're inserting are important enough that you want the AI to use them in battle, make sure they replace appropriate effects. For example, there was a Japanese hack that replaced Nightmare's somewhat useless effect with one similar to Relic Song (10% chance to inflict Sleep), which is fun for the player, but was useless for the AI because it would only use the attack if either it was their only option or the foe was already asleep. I currently have no idea how the AI treats effects in unused slots, so be careful with those.
__________________

Yet Another Fire Red Hack

Physical/Special Split

Last edited by DoesntKnowHowToPlay; April 11th, 2013 at 08:56 PM.
Reply With Quote
  #11    
Old October 21st, 2012, 11:18 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 timson733333 View Post
It's not in roms.ini. You have to find it yourself. Same thing happened to me, so I moved to FireRed :/

Also, when we select, is 4260 bytes in hex or in decimal?
I tried using a technique that incorporated using Fire Red's hex values. I was going to copy the beginning of the hex values and find them in the Ruby rom. It didn't work. Though, I found the first two hex values of the animations from Fire Red and in Ruby. The rest didn't match up though...
__________________
"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
  #12    
Old October 25th, 2012, 08:57 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
Quote:
Originally Posted by LCCoolJ95 View Post
I tried using a technique that incorporated using Fire Red's hex values. I was going to copy the beginning of the hex values and find them in the Ruby rom. It didn't work. Though, I found the first two hex values of the animations from Fire Red and in Ruby. The rest didn't match up though...
Pointers are going to be different between ROMs. The Attack Animation offset is a table, and a table in terms of ROM hacking, is a collection of pointers that the game refers to. So obviously tables will be completely different, but they will be in the same format. In order to find the Attack Animation Table in Ruby, what you should do is this:

1. Go to the offset of the table in a FireRed ROM
2. Go to the offset that the first pointer lists in the table
3. NOW search for that hex data in a Ruby ROM
4. Look at the offset that the search took you in the Ruby ROM, then convert it to a pointer
5. Search for your new pointer in the Ruby ROM
6. You should now be at the Animation Table for Ruby
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #13    
Old October 27th, 2012, 06:29 PM
Yogi1881's Avatar
Yogi1881
Unhatched Egg
 
Join Date: Oct 2012
Gender: Male
Nature: Bold
Would this apply to Hm's as well?
And would this allow you to give tms an Hm's effect (i.e. Tm Dig actually Digging with the same effects of Dive)
Reply With Quote
  #14    
Old October 28th, 2012, 12:01 AM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
@itman: Your Wake-Up Slap script doesn't work. If the opponent is not asleep, it works fine. But if the opponent is asleep, the game freezes.
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #15    
Old October 28th, 2012, 08:19 AM
itman
Back to ROM hacking. :D
 
Join Date: May 2007
Age: 20
Nature: Adamant
Quote:
Originally Posted by Chaos Rush View Post
@itman: Your Wake-Up Slap script doesn't work. If the opponent is not asleep, it works fine. But if the opponent is asleep, the game freezes.
I just tested it and it worked for me. All I did was edit smellingsalt's effect to check for sleep and then wake them up. So all I changed was two bytes.
Reply With Quote
  #16    
Old November 9th, 2012, 05:59 PM
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
I've successfully added 125 or more moves to the game. The question is, how come every time I try to use that move in game, the move does crap? Seriously, I tried using Blue Flare, but the game just reset itself, and when I tried using Bolt Strike, the game froze. And, when I tried to check out the description in the Summary window of either move, a bunch of random symbols and numbers appeared, freezing the game. Can someone please help me with this? I'm trying to make a Black 2/White 2 demake for Ruby, and I need the extra moves to work. :/

Maybe it's because there is no animation data...where is the tutorial for that?
__________________
"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

Last edited by LCCoolJ95; November 10th, 2012 at 02:20 PM. Reason: I found out why it's freezing
Reply With Quote
  #17    
Old November 11th, 2012, 12:26 PM
dreamengine's Avatar
dreamengine
 
Join Date: Aug 2012
Gender: Male
Does anyone else have errors with PGE when trying to edit the newer versions of Psywave, Focus Energy, and Reflect? It's weird, but yeah...

Also, when using the moves WITHOUT removing the limiter it says Bulbasaur used a NORMAL move when trying to use a move I added. When I got rid of the limiter it made it so that even the trainer I'm battling's pokemon moves say that. For example it'd be like Bulbasaur used a normal move. Foe Charmander used a normal move. help? lol

On to trying move effects =.= I fail

EDIT: Where did the the offset 0x1D6947 come from for the flare blitz part?
__________________
I support...

Last edited by dreamengine; November 11th, 2012 at 02:18 PM. Reason: question
Reply With Quote
  #18    
Old November 11th, 2012, 05:29 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Quote:
Originally Posted by dreamengine View Post
Also, when using the moves WITHOUT removing the limiter it says Bulbasaur used a NORMAL move when trying to use a move I added. When I got rid of the limiter it made it so that even the trainer I'm battling's pokemon moves say that. For example it'd be like Bulbasaur used a normal move. Foe Charmander used a normal move. help? lol
At 0xD75FC, you are supposed to overwrite the bytes with 00 00 00 00 00 00. Not 00 00 00 00 00 00 00 00. Overwriting the last two will make every move say "X used a <TYPE> move!" This is another error in the guide that should be fixed.
__________________
ROM hacking since 2008... and failing miserably still.


Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

deviantArt | YouTube
Reply With Quote
  #19    
Old November 11th, 2012, 08:56 PM
itman
Back to ROM hacking. :D
 
Join Date: May 2007
Age: 20
Nature: Adamant
Quote:
Originally Posted by timson733333 View Post
At 0xD75FC, you are supposed to overwrite the bytes with 00 00 00 00 00 00. Not 00 00 00 00 00 00 00 00. Overwriting the last two will make every move say "X used a <TYPE> move!" This is another error in the guide that should be fixed.
*Fixed. ;) Thanks for letting me know, I didn't even realize I put too many 00's lol.
Reply With Quote
  #20    
Old November 12th, 2012, 08:52 AM
dreamengine's Avatar
dreamengine
 
Join Date: Aug 2012
Gender: Male
Quote:
Originally Posted by timson733333 View Post
At 0xD75FC, you are supposed to overwrite the bytes with 00 00 00 00 00 00. Not 00 00 00 00 00 00 00 00. Overwriting the last two will make every move say "X used a <TYPE> move!" This is another error in the guide that should be fixed.
:D thank youu. I was thinking that I probably screwed up somewhere. After all I am very bad at this.
Reply With Quote
  #21    
Old November 23rd, 2012, 03:54 AM
SchokoInc
Unhatched Egg
 
Join Date: Nov 2012
Thanks for the amazing tutorial it worked perfectly for me :)
Still i have one major problem that prevents me from fully using and editing my moves :(
As the GameEditor doesn't work for me i use several other editors like YAPE (which also lets me fix the pointers and allowed me to add my new moves to my pokemon even if they are now just named Pound or Karate Chop) but i haven't found a move editor yet that let's me change the .ini to repoint the move table and makes it editable :(
When i opened up the .ini for A-tack the offsets shown for names/data are

[Nameoffset]
offset=2388129

[Dataoffset]
offset=2427908

which is quite confusing and changing them to my new offsets scrambles everything up :(
(YAPE had the correct offsets for moves in the .ini and changing went perfectly so there is nothing wrong with the rom itself)

EDIT: While not fixing the problem itself i solved the problem by overwriting the ORIGINAL move data instead of the newly created ones :)

Last edited by SchokoInc; November 23rd, 2012 at 10:11 AM.
Reply With Quote
  #22    
Old November 24th, 2012, 03:20 AM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Quote:
Originally Posted by dreamengine View Post
EDIT: Where did the the offset 0x1D6947 come from for the flare blitz part?
It's part of the main Battle Script Attack Handler, all moves branch back to it at some stage. In this case, it's the relevant part needed to execute the remaining effects and faints and such.

Quote:
Originally Posted by SchokoInc View Post
Thanks for the amazing tutorial it worked perfectly for me
Still i have one major problem that prevents me from fully using and editing my moves
As the GameEditor doesn't work for me i use several other editors like YAPE (which also lets me fix the pointers and allowed me to add my new moves to my pokemon even if they are now just named Pound or Karate Chop) but i haven't found a move editor yet that let's me change the .ini to repoint the move table and makes it editable
When i opened up the .ini for A-tack the offsets shown for names/data are

[Nameoffset]
offset=2388129

[Dataoffset]
offset=2427908

which is quite confusing and changing them to my new offsets scrambles everything up
(YAPE had the correct offsets for moves in the .ini and changing went perfectly so there is nothing wrong with the rom itself)

EDIT: While not fixing the problem itself i solved the problem by overwriting the ORIGINAL move data instead of the newly created ones
You can't use any editor apart from PGE for the new moves or for applying them. No older editor supports them properly. YAPE especially, is a bad choice of editor for this new move stuff!
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #23    
Old November 24th, 2012, 05:39 AM
Kyain's Avatar
Kyain
The Sky High Pokémon
Community Supporter
 
Join Date: Sep 2008
Location: Pennsylvania
Gender: Male
Nature: Jolly
Send a message via Skype™ to Kyain
The tutorial works perfectly, I'm just having a problem with repointing animations on one of the new moves. I saw Chaos Rush's post on Roost, and I decided to put it in my game. For the animation pointer, I just copied FeatherDance's animation pointer. After I finish the introduction scene, and it sends me to the hero's room in Pallet Town, the game either:
1) VBA displays a BIOS error(?!)
2) It becomes completely silent and black. I can't continue in the game.

I think this has to do with the fact also that all the animation pointers are not 'normal' pointers...
__________________

Silver-tier supporter Kyain's Signature
There's nothing here...lol
My stuff:

Space for rent


lalalalala i can't hear you. FACT.
[context: facebook]
Quote:
over a milliard of users had no access
[1:41:11 PM] Khilia-chan~: they all were forced to have a life




Reply With Quote
  #24    
Old November 25th, 2012, 12:41 PM
dreamengine's Avatar
dreamengine
 
Join Date: Aug 2012
Gender: Male
I'm trying to make the effects for Thunder fang, ice fang, and fire fang, but when I do I feel like the effect rates are really low. The flinch works fine almost too much because it seems like it's every other move, but the paralyze, freeze, and burn almost never happen. I'm not quite sure what to do because there's no effect that make paralyze freeze and burn happen 100% of the time. Here is my code for thunder fang.

Thunder Fang
Spoiler:
01 5E 69 1D 08 00 00 02 03 04 05 06 07 09 0A 0E 5C 00 3A 0B 00 0C 00 0D 12 40 00 0F 12 40 00 2E 85 3E 02 02 08 15 2E 85 3E 02 02 05 15 28 47 69 1D 08
Reply With Quote
  #25    
Old December 19th, 2012, 11:17 PM
PokemonMasters's Avatar
PokemonMasters
Always Remember Forever&After
 
Join Date: Jun 2012
Location: Nuvema Town, Unova
Gender: Male
Nature: Calm
For some reason, whenever I apply the hacked engine before I do this, it doesnt work.
__________________

+ForeverDash on PC's Battle Server | Pair | VM/PM |Partner In Crime
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 06:47 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.