Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Reload this Page Development Move Resource Thread

Notices
For all updates, view the main page.

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.



Reply
 
Thread Tools
  #276    
Old 4 Weeks Ago (03:05 AM).
KDS's Avatar
KDS KDS is offline
 
Join Date: Jul 2013
Age: 20
Gender: Male
Posts: 211
Quote originally posted by DizzyEgg:
Hm. You're right. Could you tell me what's the location of dexMapper in FR? I have troubles finding it myself
Compare the Pokemon expansion tutorial for FR and Emerald. You will be able to find it.
Reply With Quote
  #277    
Old 4 Weeks Ago (04:44 AM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Age: 17
Gender: Male
Nature: Quiet
Posts: 132
Quote:
Compare the Pokemon expansion tutorial for FR and Emerald. You will be able to find it.
Found it.

Quote originally posted by KDS:
Some new effects:
3. Final Gambit:
Spoiler:

Script:
Code:
#org @main
attackcanceler
accuracycheck 0x81D695E 0x0
attackstring
ppreduce
cmd6
bicbyte 0x2023DCC 0x6
callasm 0x08750051
cmd69
attackanimation
waitanimation
missmessage
cmd5c 0x0
waitstate
graphicalhpupdate 0x0
datahpupdate 0x0
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
faintpokemon 0x0 0x0 0x8000000
jumpifbyte 0x0 0x02023DCC 0x8 0x81D694E
setuserhptozero
graphicalhpupdate 0x1
datahpupdate 0x1
faintpokemon 0x1 0x0 0x8000000
goto 0x81D694E
ASM at 0x8750050:
Code:
.text
.align 2
.thumb
.thumb_func
.global finalgambit

main:
push {lr}
ldr r0, userBank
ldrb r0, [r0]
ldr r1, battleData
mov r2, #0x58
mul r0, r2
add r2, r0, r1
add r2, #0x28
ldrb r0, [r2]
ldr r2, damage
strb r0, [r2]
pop {r0}
bx r0

.align 2
userBank: .word 0x02023D6C
battleData: .word 0x02023BE4
damage: .word 0x02023D50
You made a typo there. Instead of userBank(...6B) you gave the offset for targetbank(...6C). And that means this move will always deal damage equal to target's current HP.
__________________
Summertime
Reply With Quote
  #278    
Old 4 Weeks Ago (11:52 PM).
Artemis64 Artemis64 is offline
 
Join Date: Mar 2014
Location: Singapore
Gender: Male
Nature: Hasty
Posts: 76
Quote originally posted by Urnighter:
Noob here, how did you get that background for the battle scene? It looks very nice. Any link to where/how I can do the same?
That's a battle platform (arena, background, etc.) for grassy battles that I created.
Reply With Quote
  #279    
Old 4 Weeks Ago (12:32 AM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Age: 17
Gender: Male
Nature: Quiet
Posts: 132
Quote originally posted by MrDollSteak:
I haven't contributed here in awhile (sad I know) but I'm here to bring an updated Struggle, as well as a Head Smash 1/2 recoil effect.

To make Head Smash work just give it the same move effect as Take Down (NOT Double-Edge), as the check for the move is contained in the 1/4 recoil damage effect.

Struggle and Head Smash

Spoiler:
Fire Red
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global struggleheadsmash

FailSafe:
    ldr r1, .DamageLoc
    add r0, r1, #0x4
    ldrb r0, [r0]
    cmp r0, #0x0
    bge GetMoveID
    add r0, #0x3
GetMoveID:
    push {r0-r1}
    ldr r0, .MoveIndex
    ldrb r0, [r0] /tht
StruggleCheck:
    cmp r0, #0xA5
    bne HeadSmashCheck
StruggleRecoil:
    pop {r0-r1}
    mov r0, #0x58
    ldr r4, .UserBank
    ldrb r4, [r4]
    mul r4, r0
    mov r0, r8
    add r0, r0, r4
    ldrh r0, [r0, #0x2C]
    asr r0, r0, #0x2
    b Return
HeadSmashCheck:
    ldr r1, .HeadSmashIndex
    cmp r0, r1
    bne NormalRecoil
HeadSmashRecoil:
    pop {r0-r1}
    asr r0, r0, #0x1
    b Return
NormalRecoil:
    pop {r0-r1}
    asr r0, r0, #0x2
Return:
    ldr r4, .Return
    bx r4

.align 2
.DamageLoc: .word 0x02023D50
.MoveIndex: .word 0x02023D4A
.UserBank: .word 0x02023D6B
.HeadSmashIndex: .word 0x000001C9
.Return: .word 0x08020AFB

#Insert 00 48 00 47 xx xx xx 08 at 08020AEC
1C9 refers to the move index of Head Smash as taken from Bulbapedia so just replace this with whatever index your Head Smash is.

Emerald
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global struggleheadsmash

FailSafe:
    ldr r1, .DamageLoc
    add r0, r1, #0x4
    ldrb r0, [r0]
    cmp r0, #0x0
    bge GetMoveID
    add r0, #0x3
GetMoveID:
    push {r0-r1}
    ldr r0, .MoveIndex
    ldrb r0, [r0]
StruggleCheck:
    cmp r0, #0xA5
    bne HeadSmashCheck
StruggleRecoil:
    pop {r0-r1}
    mov r0, #0x58
    ldr r4, .UserBank
    ldrb r4, [r4]
    mul r4, r0
    mov r0, r8
    add r0, r0, r4
    ldrh r0, [r0, #0x2C]
    asr r0, r0, #0x2
    b Return
HeadSmashCheck:
    ldr r1, .HeadSmashIndex
    cmp r0, r1
    bne NormalRecoil
HeadSmashRecoil:
    pop {r0-r1}
    asr r0, r0, #0x1
    b Return
NormalRecoil:
    pop {r0-r1}
    asr r0, r0, #0x2
Return:
    ldr r4, .Return
    bx r4

.align 2
.DamageLoc: .word 0x020241F0
.MoveIndex: .word 0x020241EA
.UserBank: .word 0x0202420B
.HeadSmashIndex: .word 0x000001C9
.Return: .word 0x0804939F

#Insert 00 48 00 47 xx xx xx 08 at 08049390
1C9 refers to the move index of Head Smash as taken from Bulbapedia so just replace this with whatever index your Head Smash is.
Fire Red routine, line 17(emerald one too). Please change ldrb to ldrh because now it won't work if Head Smash's index is higher than 0xFF.
__________________
Summertime
Reply With Quote
  #280    
Old 4 Weeks Ago (10:07 AM).
Urnighter Urnighter is offline
 
Join Date: Jan 2015
Posts: 14
Quote originally posted by Artemis64:
That's a battle platform (arena, background, etc.) for grassy battles that I created.
Anywhere they can be downloaded? Have you made any more? That one looks great!
Reply With Quote
  #281    
Old 3 Weeks Ago (03:39 PM).
Exodrake's Avatar
Exodrake Exodrake is offline
 
Join Date: May 2013
Gender: Female
Nature: Quirky
Posts: 87
Quote originally posted by MrDollSteak:
I haven't contributed here in awhile (sad I know) but I'm here to bring an updated Struggle, as well as a Head Smash 1/2 recoil effect.

To make Head Smash work just give it the same move effect as Take Down (NOT Double-Edge), as the check for the move is contained in the 1/4 recoil damage effect.

Struggle and Head Smash

Spoiler:
Fire Red
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global struggleheadsmash

FailSafe:
    ldr r1, .DamageLoc
    add r0, r1, #0x4
    ldrb r0, [r0]
    cmp r0, #0x0
    bge GetMoveID
    add r0, #0x3
GetMoveID:
    push {r0-r1}
    ldr r0, .MoveIndex
    ldrh r0, [r0]
StruggleCheck:
    cmp r0, #0xA5
    bne HeadSmashCheck
StruggleRecoil:
    pop {r0-r1}
    mov r0, #0x58
    ldr r4, .UserBank
    ldrb r4, [r4]
    mul r4, r0
    mov r0, r8
    add r0, r0, r4
    ldrh r0, [r0, #0x2C]
    asr r0, r0, #0x2
    b Return
HeadSmashCheck:
    ldr r1, .HeadSmashIndex
    cmp r0, r1
    bne NormalRecoil
HeadSmashRecoil:
    pop {r0-r1}
    asr r0, r0, #0x1
    b Return
NormalRecoil:
    pop {r0-r1}
    asr r0, r0, #0x2
Return:
    ldr r4, .Return
    bx r4

.align 2
.DamageLoc: .word 0x02023D50
.MoveIndex: .word 0x02023D4A
.UserBank: .word 0x02023D6B
.HeadSmashIndex: .word 0x000001C9
.Return: .word 0x08020AFB

#Insert 00 48 00 47 xx xx xx 08 at 08020AEC
1C9 refers to the move index of Head Smash as taken from Bulbapedia so just replace this with whatever index your Head Smash is.

Emerald
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global struggleheadsmash

FailSafe:
    ldr r1, .DamageLoc
    add r0, r1, #0x4
    ldrb r0, [r0]
    cmp r0, #0x0
    bge GetMoveID
    add r0, #0x3
GetMoveID:
    push {r0-r1}
    ldr r0, .MoveIndex
    ldrh r0, [r0]
StruggleCheck:
    cmp r0, #0xA5
    bne HeadSmashCheck
StruggleRecoil:
    pop {r0-r1}
    mov r0, #0x58
    ldr r4, .UserBank
    ldrb r4, [r4]
    mul r4, r0
    mov r0, r8
    add r0, r0, r4
    ldrh r0, [r0, #0x2C]
    asr r0, r0, #0x2
    b Return
HeadSmashCheck:
    ldr r1, .HeadSmashIndex
    cmp r0, r1
    bne NormalRecoil
HeadSmashRecoil:
    pop {r0-r1}
    asr r0, r0, #0x1
    b Return
NormalRecoil:
    pop {r0-r1}
    asr r0, r0, #0x2
Return:
    ldr r4, .Return
    bx r4

.align 2
.DamageLoc: .word 0x020241F0
.MoveIndex: .word 0x020241EA
.UserBank: .word 0x0202420B
.HeadSmashIndex: .word 0x000001C9
.Return: .word 0x0804939F

#Insert 00 48 00 47 xx xx xx 08 at 08049390
1C9 refers to the move index of Head Smash as taken from Bulbapedia so just replace this with whatever index your Head Smash is.
Light of Ruin also has the 50% recoil effect, and alas I don't know how to modify this code to affix the effect to multiple moves instead of just one. This should be addressed.
__________________
Reply With Quote
  #282    
Old 3 Weeks Ago (06:38 PM).
Shadowraze's Avatar
Shadowraze Shadowraze is offline
Agent of Chaos
 
Join Date: Apr 2013
Location: ur mum
Age: 16
Gender: Male
Nature: Jolly
Posts: 788
I don't know if you know this already but, the firered links keep redirecting to the OP.
__________________
Reply With Quote
  #283    
Old 3 Weeks Ago (08:54 AM).
Sky High's Avatar
Sky High Sky High is offline
Bellsprouts in Paris. Be aware a rare Victini.
 
Join Date: Feb 2014
Location: Destiny Islands
Gender: Male
Nature: Adamant
Posts: 218

Attack Order, Defend Order, and Heal Order




Alright! Since I've gotten into move animations nowadays, I've come up Vespiquen's signature moves: Attack Order, Defend Order, and Heal Order. They are all animations by the way. Their effects will be explained later.

But first, here's the particle to be used in those moves:


I used Twister's sheet to redraw the bees which I got its original particle from DPPt. Wherever you have inserted the particle, take note of its index number.

Attack Order:
Spoiler:
FireRed:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 E5 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 02 08 7C 3E 08 83 04 E0 FF F0 FF 01 00 03 00 19 84 00 3F 03 D1 8C 09 08 02 05 01 00 03 00 00 00 0C 00 01 00 03 D1 8C 09 08 02 05 03 00 03 00 00 00 0C 00 01 00 04 04 02 50 7C 3E 08 83 02 01 00 03 00 19 84 00 3F 04 04 02 50 7C 3E 08 83 02 01 00 03 00 19 84 00 3F 04 04 02 08 7C 3E 08 83 04 20 00 14 00 01 00 03 00 19 84 00 3F 05 0B 03 0D 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 D0 C9 3A 08 00 2C 3E 08 00 00 00 00 FC 1C 23 08 11 2D 0A 08

Emerald:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 EC 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 02 58 73 59 08 83 04 E0 FF F0 FF 01 00 03 00 19 8B 00 3F 03 85 54 0D 08 02 05 01 00 03 00 00 00 0C 00 01 00 03 85 54 0D 08 02 05 03 00 03 00 00 00 0C 00 01 00 04 04 02 A0 73 59 08 83 02 01 00 03 00 19 8B 00 3F 04 04 02 A0 73 59 08 83 02 01 00 03 00 19 8B 00 3F 04 04 02 58 73 59 08 83 04 20 00 14 00 01 00 03 00 19 8B 00 3F 05 0B 03 0D 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 0C 49 52 08 88 23 59 08 00 00 00 00 A8 C6 2E 08 69 F2 0F 08



Defend Order:
Spoiler:
FireRed:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 E5 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 00 C8 27 05 0B 02 0D 04 01 0E 27 B2 1C 08 05 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 D0 C9 3A 08 00 2C 3E 08 00 00 00 00 FC 1C 23 08 11 2D 0A 08

Emerald:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 EC 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 00 C8 27 05 0B 02 0D 04 01 0E 87 D6 2C 08 05 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 0C 49 52 08 88 23 59 08 00 00 00 00 A8 C6 2E 08 69 F2 0F 08



Heal Order:
Spoiler:
FireRed:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 E5 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 00 2F 27 05 0B 02 0D 04 01 0E C9 56 1D 08 05 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 D0 C9 3A 08 00 2C 3E 08 00 00 00 00 FC 1C 23 08 11 2D 0A 08

Emerald:
Spoiler:
00 YY 28 00 97 27 00 4A 27 0A 03 28 01 19 EC 00 3F 02 XX XX XX 08 82 05 78 00 46 00 05 00 46 00 1E 00 04 01 02 XX XX XX 08 82 05 73 00 37 00 06 00 3C 00 19 00 04 01 02 XX XX XX 08 82 05 73 00 3C 00 07 00 3C 00 1E 00 02 XX XX XX 08 82 05 73 00 37 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 64 00 32 00 04 00 32 00 1A 00 04 01 02 XX XX XX 08 82 05 69 00 19 00 08 00 3C 00 14 00 04 01 02 XX XX XX 08 82 05 73 00 28 00 0A 00 30 00 1E 00 04 03 02 XX XX XX 08 82 05 78 00 1E 00 06 00 2D 00 19 00 02 XX XX XX 08 82 05 73 00 23 00 0A 00 3C 00 1E 00 04 03 02 XX XX XX 08 82 05 69 00 14 00 08 00 28 00 00 00 04 03 02 XX XX XX 08 82 05 14 00 FF 00 0F 00 20 00 00 00 02 XX XX XX 08 82 05 6E 00 0A 00 08 00 20 00 14 00 05 00 2F 27 05 0B 02 0D 04 01 0E DF 79 2D 08 05 08

*YY is the particle index of the bees.

*Insert at XX XX XX:
YY 28 YY 28 0C 49 52 08 88 23 59 08 00 00 00 00 A8 C6 2E 08 69 F2 0F 08



Overall, they are created from Twister's animation. I'd plan on Recover but misdirection of the bees on the particles might occur. Anyway, these are the best ones. Attack Order is plainly Twister's animation. Defend Order is combined Twister's animation with Endure's animation. Heal Order is combined Twister's animation with the healing animation. Use Slash's effect for Attack Order's effect. Use Cosmic Power's effect for Defend Order. And, use Recover's effect for Healing Order. Tada! You now have the three Order moves!

I will come up with Ruby soon since the one I've downloaded isn't organized.
__________________
Gonna work on a fancy signature...
Reply With Quote
  #284    
Old 3 Weeks Ago (10:55 AM).
Sisyphean Sisyphean is offline
 
Join Date: Nov 2014
Location: California
Gender: Male
Nature: Bold
Posts: 15
Quote originally posted by Sky High:

Attack Order, Defend Order, and Heal Order


Alright! Since I've gotten into move animations nowadays, I've come up Vespiquen's signature moves: Attack Order, Defend Order, and Heal Order. They are all animations by the way. Their effects will be explained later.
Really good looking animations for one of my all time favorite pokes! Great work
__________________
Though I'm far from a pro, I try can help you on your ROM with scripting, ASM, mapping WHATEVER.

Just ask
Reply With Quote
  #285    
Old 2 Weeks Ago (04:29 PM).
Spherical Ice's Avatar
Spherical Ice Spherical Ice is online now
Moderator, CS
 
Join Date: Nov 2007
Location: Leicester, UK
Posts: 3,820
Apologies for leaving this un-updated for so long! It should now be up-to-date with the thread, and I promise I'll be better with keeping it updated, haha. Notify me if I've added something incorrectly!
__________________
Reply With Quote
  #286    
Old 2 Weeks Ago (10:19 AM).
kleenexfeu kleenexfeu is offline
 
Join Date: Aug 2013
Gender: Male
Posts: 141
Quote originally posted by Chaos Rush:
Spoiler:
I've worked out how to have the Gen IV Roost effect in Emerald. This is how it is achieved:
1. First, in the battle script for Recover, it checks if the move ID is Roost (by having Recover's script, the AI can use Roost properly). If the move ID is Roost, then it branches to a near identical script that also calls a custom routine
2. The custom routine checks if the attacking Pokémon has Flying type in either of its slots and then changes it to the ??? type (0x9). If it's a pure Flying type, then it will become a pure ??? type.
3. Another custom routine is run at the end of every turn that checks for any ???-type Pokémon, and changes it back to Flying.

Here's how to implement it:
1. First, you need Jambo51's callasm routine for Battle Script Pro. It is found right here. Despite Jambo writing the routine for FireRed, it works for Emerald too. However, you need to change the "scriptlocation" offset to 0x02024214. Also this is very important, but unlike FireRed, your new command is not going to be 0xF8! Your new command will be 0xF9. It appears that Emerald has an extra battle command, most likely due to the Battle Frontier.

2. Now to get BSP to recognize our new command, open up the folder where BSP is located, and then there should be another folder called "Data". Then you should see a file called, "commands.bsh". Open it up with Notepad, and put this in:

This might be confusing, but DO NOT change anything in the quotation marks! That's just there to show minor info in BSP's command list. I repeat, DO NOT CHANGE A SINGLE THING IN THAT QUOTE!!! Also note that if you were using FireRed, your command would be 0xF8, not 0xF9.

3. Now, put in this routine somewhere:
Code:
.text
.align 2
.thumb
.thumb_func

/*What this routine does is check if the attacking PKMN
is Flying-type. It then changes its Flying-type to
the ???-type.*/

GetPkmnType1:
push {r0-r5}
ldr r1, .BattleData
ldr r0, .CurPokeIndex
ldrb r0, [r0]
mov r2, #0x58
mul r2, r0
add r1, #0x21
add r1, r2
ldrb r0, [r1]
ldrb r2, [r1, #0x1]
mov r3, #0x2
cmp r0, r3
beq ChangeType1
cmp r2, r3
beq ChangeType2
b End

ChangeType1:
mov r4, #0x9
strb r4, [r1]
cmp r2, r3
beq ChangeType2
b End

ChangeType2:
mov r4, #0x9
strb r4, [r1, #0x1]
b End

End:
pop {r0-r5}
bx lr

.align 2
.BattleData:        .word 0x02024084
.CurPokeIndex:        .word 0x0202420B
4. Now open up BSP, and open up Recover's battle script. Replace it with this:

A couple things to note: At the top, we have "jumpifhalfword 0x0 0x20241EA 0x163 @RoostHandle".
Replace 0x163 with your move ID for Roost.

Towards the bottom, at "#org @changetype", you see "callasm 0x(offset of your routine +1)". Obviously, put in the offset of the routine we added earlier, but add 0x1 to the offset.

So far, we have made it so that every time a Flying-type Pokémon uses Roost, it will turn into a ???-type. (If it was part-Flying, it would become part-???, and if it was pure-Flying, it would become pure-???).

5. Now we're going to insert another routine. This second routine will be called at the end of every turn and simply checks to see if there are any ???-type Pokémon, and then changes them back to Flying types.
Code:
.text
.align 2
.thumb
.thumb_func

HandlePoke1:
push {r0-r5}
mov r3, #0x9
ldr r1, .Poke1Type
ldrb r0, [r1]
ldrb r2, [r1, #0x1]
cmp r0, r3
beq Poke1ChangeType1
cmp r2, r3
beq Poke1ChangeType2
b HandlePoke2

Poke1ChangeType1:
mov r4, #0x2
strb r4, [r1]
cmp r2, r3
beq Poke1ChangeType2
b HandlePoke2

Poke1ChangeType2:
mov r4, #0x2
strb r4, [r1, #0x1]
b HandlePoke2

HandlePoke2:
ldr r1, .Poke2Type
ldrb r0, [r1]
ldrb r2, [r1, #0x1]
cmp r0, r3
beq Poke2ChangeType1
cmp r2, r3
beq Poke2ChangeType2
b HandlePoke3

Poke2ChangeType1:
mov r4, #0x2
strb r4, [r1]
cmp r2, r3
beq Poke2ChangeType2
b HandlePoke3

Poke2ChangeType2:
mov r4, #0x2
strb r4, [r1, #0x1]
b HandlePoke3

HandlePoke3:
ldr r1, .Poke3Type
ldrb r0, [r1]
ldrb r2, [r1, #0x1]
cmp r0, r3
beq Poke3ChangeType1
cmp r2, r3
beq Poke3ChangeType2
b HandlePoke4

Poke3ChangeType1:
mov r4, #0x2
strb r4, [r1]
cmp r2, r3
beq Poke3ChangeType2
b HandlePoke4

Poke3ChangeType2:
mov r4, #0x2
strb r4, [r1, #0x1]
b HandlePoke4

HandlePoke4:
ldr r1, .Poke4Type
ldrb r0, [r1]
ldrb r2, [r1, #0x1]
cmp r0, r3
beq Poke4ChangeType1
cmp r2, r3
beq Poke4ChangeType2
b End

Poke4ChangeType1:
mov r4, #0x2
strb r4, [r1]
cmp r2, r3
beq Poke4ChangeType2
b End

Poke4ChangeType2:
mov r4, #0x2
strb r4, [r1, #0x1]
b End

End:
pop {r0-r5}
ldr r0, .ReturnAddress
bx r0


.align 2
.Poke1Type: .word 0x020240A5
.Poke2Type: .word 0x020240FD
.Poke3Type: .word 0x02024155
.Poke4Type: .word 0x020241AD
.ReturnAddress:	.word 0x080405B1
6. At 0x402A0, change the bytes there to point to where you inserted the second routine (the one right above). DO NOT ADD +1 TO THE OFFSET. I REPEAT, DO NOT ADD +1. This is because the code that is executed before this appears to already account for that.

And now we have a fully working Roost with Generation IV's effect, and the AI can use it properly too, since we're using Recover's battle script slot, but the battle script is designed so that Recover will still function separately from Roost.

A couple things to note, this routine replicates the Generation IV effect of Roost where if the user was pure-Flying, it would become ??? type upon using Roost. In Generation V+, a pure-Flying type using Roost would become Normal-type.. If anyone wants to mod my routine to have the Generation V effect, feel free to do so.

Credits:
Chaos Rush
DoesntKnowHowToPlay - for the idea of the method to achieve this
Shiny Quagsire - for suggesting to me that Emerald might have more battle commands than FireRed due to the Battle Frontier
Tchlatli - I looked at his custom Protean code to figure out how to correctly calculate the type offset of the attacking Pokémon
JPAN - his documentation on FireRed battle-related RAM offsets helped me find the Emerald offsets

To verify that it's working properly, here are some useful RAM offsets:
02024084 - Battle Data (check out this post to see how its structured.)

020240A5 - Your(1) Type 1
020240A6 - Your(1) Type 2

020240FD - Opponent(1) Type 1
020240FE - Opponent(1) Type 2

02024155 - Your(2) Type 1
02024156 - Your(2) Type 2

020241AD - Opponent(2) Type 1
020241AE - Opponent(2) Type 2
Something has to be changed here. The second routine to revert ???-type to flying doesn't handle the fact that a ???-type could exist outside of the roost effect.
Indeed it prevent us to use the 9th type or to update roost to gen V effect. (flying types become normal upon using roost, as Chaos Rush stated).

To correct this, we can check 0x02024260 (In emerald, don't know for FR) the moves used by the poke. an Half word is used for each attack used the precedent turn.
First half word for the first banked pokemon, second HW for 2nd poke, etc

I'm too lazy right know to update this, so I'll do it later, I just wanted to point that flaw
Reply With Quote
  #287    
Old 1 Week Ago (12:22 PM).
Exodrake's Avatar
Exodrake Exodrake is offline
 
Join Date: May 2013
Gender: Female
Nature: Quirky
Posts: 87
Quote originally posted by kleenexfeu:
Something has to be changed here. The second routine to revert ???-type to flying doesn't handle the fact that a ???-type could exist outside of the roost effect.
Indeed it prevent us to use the 9th type or to update roost to gen V effect. (flying types become normal upon using roost, as Chaos Rush stated).

To correct this, we can check 0x02024260 (In emerald, don't know for FR) the moves used by the poke. an Half word is used for each attack used the precedent turn.
First half word for the first banked pokemon, second HW for 2nd poke, etc

I'm too lazy right know to update this, so I'll do it later, I just wanted to point that flaw
This is a problem I have (using MrDollSteak's rombase). I want to have ???-type monsters, but because of this routine, they turn into Flying-types.
__________________
Reply With Quote
  #288    
Old 1 Week Ago (06:05 PM).
mamamama mamamama is offline
 
Join Date: Feb 2014
Posts: 169
Quote originally posted by kleenexfeu:
Something has to be changed here. The second routine to revert ???-type to flying doesn't handle the fact that a ???-type could exist outside of the roost effect.
Indeed it prevent us to use the 9th type or to update roost to gen V effect. (flying types become normal upon using roost, as Chaos Rush stated).

To correct this, we can check 0x02024260 (In emerald, don't know for FR) the moves used by the poke. an Half word is used for each attack used the precedent turn.
First half word for the first banked pokemon, second HW for 2nd poke, etc

I'm too lazy right know to update this, so I'll do it later, I just wanted to point that flaw
I've just changed it to type #14, which is one of the contest types. It does not make it consistent with Gen V in which the Pokemon turns into Normal type, but it does make the ??? usable for anyone who wants to use it.
Reply With Quote
  #289    
Old 1 Week Ago (10:16 PM).
MrDollSteak's Avatar
MrDollSteak MrDollSteak is offline
Formerly known as 11bayerf1
 
Join Date: Dec 2008
Location: Hong Kong
Age: 20
Gender: Male
Posts: 574
Quote originally posted by Exodrake:
This is a problem I have (using MrDollSteak's rombase). I want to have ???-type monsters, but because of this routine, they turn into Flying-types.
What's the point of having ???- type monsters when you can extend types so easily?
__________________
Reply With Quote
  #290    
Old 1 Week Ago (11:39 PM).
kleenexfeu kleenexfeu is offline
 
Join Date: Aug 2013
Gender: Male
Posts: 141
Quote originally posted by mamamama:
I've just changed it to type #14, which is one of the contest types. It does not make it consistent with Gen V in which the Pokemon turns into Normal type, but it does make the ??? usable for anyone who wants to use it.
Doing this will save me time. We just have to edit the type chart to make the contest/whatever type having the same resistance than the normal type
Reply With Quote
  #291    
Old 1 Week Ago (12:02 PM).
Exodrake's Avatar
Exodrake Exodrake is offline
 
Join Date: May 2013
Gender: Female
Nature: Quirky
Posts: 87
Quote originally posted by MrDollSteak:
What's the point of having ???- type monsters when you can extend types so easily?
Yeah this is true, stupid me for not thinking of this before XD Thanks for that d'oh moment, I'll just program a second ??? type which isn't affected by the routine so scumbag mons with fully unresisted STAB and no weaknesses can be a thing!
__________________
Reply With Quote
  #292    
Old 5 Days Ago (10:44 AM).
Tervaxx's Avatar
Tervaxx Tervaxx is offline
 
Join Date: Jun 2015
Location: Barcelona
Gender: Male
Nature: Gentle
Posts: 9
Hi everyone ^^, this is a discovering I made a few days ago, and I'm here to share it with you. This is about how to create Defensive Moves' Effects that raise/lower 2 or more stats. This is only for Ruby, as the effect's codes are different for other Pokemon editions.

Before starting, if you don't know how to add Moves or Effects, you shoud take a look into those 2 tutorials:

[Tutorial] [Ruby] Adding New Moves by destinedjagold
[Tutorial] Adding New Moves and Creating New Move Effects by itman

Let's see. We want to create a Work Up effect, a move that raises in 1 the user's Attack and Special Attack stats. There are only 4 moves that raise 2 stats (as far as I know). They're the following ones: Bulk Up (Attack + Defense), Cosmic Power (Defense + Sp. Defense), Calm Mind (Sp. Attack + Sp. Defense) and Dragon Dance (Attack + Speed).

For example, this is the Bulk Up effect on Ruby:

Code:
00 02 03 20 01 03 01 0C 18 8B 1D 08 20 01 00 02 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 06 00 2E 1E 60 01 02 11 89 41 43 8B 1D 08 29 00 23 4D 02 02 02 43 8B 1D 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 12 89 41 62 8B 1D 08 29 00 23 4D 02 02 02 62 8B 1D 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
I wrote as GG (effects' bytes), XX, YY, ZZ (pointers) and ?? (effects' color byte) the things that need to be changed:

Code:
00 02 03 20 01 03 GG 0C XX XX XX 08 20 01 00 GG 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 ?? 00 2E 1E 60 01 02 GG 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 GG 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
Anything else that isn't changed is in common with other moves of that kind.

I've done a list about those defensive effects on Ruby (they're on hexadecimal):
Spoiler:
Raises User's Attack = 11
Raises User's Defense = 12
Raises User's Speed = 13
Raises User's Sp. Attack = 14
Raises User's Sp. Defense = 15
Raises User's Accuracy = 16
Raises User's Evasion = 17
Sharply Raises User's Attack = 21
Sharply Raises User's Defense = 22
Sharply Raises User's Speed = 23
Sharply Raises User's Sp. Attack = 24
Sharply Raises User's Sp. Defense = 25
Sharply Raises User's Accuracy = 26
Sharply Raises User's Evasion = 27
Lowers Foe's Attack = 91
Lowers Foe's Defense = 92
Lowers Foe's Speed = 93
Lowers Foe's Sp. Attack = 94
Lowers Foe's Sp. Defense = 95
Lowers Foe's Accuracy = 96
Lowers Foe's Evasion = 97
Sharply Lowers Foe's Attack = A1
Sharply Lowers Foe's Defense = A2
Sharply Lowers Foe's Speed = A3
Sharply Lowers Foe's Sp. Attack = A4
Sharply Lowers Foe's Sp. Defense = A5
Sharply Lowers Foe's Accuracy = A6
Sharply Lowers Foe's Evasion = A7


The 2 first GG, I don't know why, but they start with 0 and end with the last number of the effect. The first GG is 01 (starts with 0 and ends with 1, that would be the last number of 11, the effect that raises user's Attack), and the second one, 02 (Defense). The third and fourth GG are the effects (11 and 12 respectively). We only need to change those values, being the first GG 01, the second one 04, the third one 11 and the fourth one 14, so it seems more a Work Up effect. It would look like this:

Code:
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 00 04 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 ?? 00 2E 1E 60 01 02 11 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 14 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
The first pointer (XX) leads to the start of the following bytes: 09 0A 2E DC. That means, in the Bulk Up effect, the pointer 18 8B 1D 08 leads to the Offset 1D8B18, that's where the bytes 09 0A 2E DC start. For example, my XX XX XX have the following pointer: 53 F4 6F 08, and this leads to the bytes 09 0A 2E DC located at the Offset 6FF453. You have to do the same, depending on where you did insert the effect, because the pointers are different for everyone unless you insert them on the same spots I did.

The next pointers (YY) are the same, but they lead to the bytes 2E 1E 60 01 02 14 89. That's the second effect (the one that raises Sp. Attack), not the first one (Attack)! In Bulk Up the pointer is 43 8B 1D 08, that leads to 1D8B43, that's where the bytes 2E 1E 60 01 02 12 89 are, and that would be the effect that raises Defense! My pointers are 7E F4 6F 08.

Finally, ZZ. Those lead to the bytes 28 62 6F 1D 08, the last 5 bytes of the effect. Bulk Up has 62 8B 1D 08 as the pointer. In my Work Up effect, it would be 9D F4 6F 08.

The ?? byte is the one that changes the color's effect. In Bulk Up that value is 06. It does that when it only raises Attack, it's red, when it only raises Defense, it's green, and when it raises both, it's gray. I don't know what value it should have for a perfect Work Up effect, but I use 09. That one makes all the colors to be gray, no matter what it raises.

This one is my Work Up effect:

Code:
00 02 03 20 01 03 01 0C 53 F4 6F 08 20 01 00 04 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 11 89 41 7E F4 6F 08 29 00 23 4D 02 02 02 7E F4 6F 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 14 89 41 9D F4 6F 08 29 00 23 4D 02 02 02 9D F4 6F 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
You only have to change the things I mentioned, put that effect to a move with PGE or G3T (I use G3T) and check it in a battle.


And if we want to do an effect that raises more than 2 stats like Quiver Dance or Coil? That's easy. I'll keep explaining with Calm Mind's effect, which raises Sp. Attack and Sp. Defense stats, and we'll do a Quiver Dance effect, which does the same but also raises Speed by 1.

This is Calm Mind's effect in Ruby:

Code:
00 02 03 20 01 03 04 0C 7C 8B 1D 08 20 01 00 05 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 30 00 2E 1E 60 01 02 14 89 41 A7 8B 1D 08 29 00 23 4D 02 02 02 A7 8B 1D 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 15 89 41 C6 8B 1D 08 29 00 23 4D 02 02 02 C6 8B 1D 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
I will mark the pointers again:

Code:
00 02 03 20 01 03 GG 0C XX XX XX 08 20 01 00 GG 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 30 00 2E 1E 60 01 02 GG 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 GG 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
To add an extra effect, copy this and paste it at the end of the 08 and before the 20: 20 01 03 GG 0C XX XX XX 08. It would look like this:

Code:
00 02 03 20 01 03 GG 0C XX XX XX 08 20 01 03 GG 0C XX XX XX 08 20 01 00 GG 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 30 00 2E 1E 60 01 02 GG 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 GG 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
You have to copy this too, and paste it before the second efect starts: 2E 1E 60 01 02 GG 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00. I've changed the YY YY YY to SS SS SS, because the pointers will be different. It will look like this:

Code:
00 02 03 20 01 03 GG 0C XX XX XX 08 20 01 03 GG 0C XX XX XX 08 20 01 00 GG 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 30 00 2E 1E 60 01 02 GG 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 GG 89 41 SS SS SS 08 29 00 23 4D 02 02 02 SS SS SS 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 GG 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
Now the code has 3 effects, we only have to change the values to get the Quiver Dance effect. We change the first 3 GG for 04, 05 y 03, and the last 3 GG for 14, 15 y 13, so it raises Sp. Attack, Sp. Defense and Speed. Then, the pointers. The XX keeps leading to 09 0A 2E DC, but YY now leads to the 2E 1E 60 before the SS, the SS leads to the 2E 1E 60 before the ZZ, and the ZZ keeps leading to 28 62 6F 1D 08.

That's my Quiver Dance effect:

Code:
00 02 03 20 01 03 04 0C 8F F6 6F 08 20 01 03 05 0C 8F F6 6F 08 20 01 00 03 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 14 89 41 BA F6 6F 08 29 00 23 4D 02 02 02 BA F6 6F 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 15 89 41 D9 F6 6F 08 29 00 23 4D 02 02 02 D9 F6 6F 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 13 89 41 F8 F6 6F 08 29 00 23 4D 02 02 02 F8 F6 6F 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08
Same as before, you put that effect to a move and check it in battle. Now I'll leave here some moves I've done by myself, you only need to put your pointers in the marks, so you can do your own Defensive moves ^^. Keep in mind that my ?? byte will always be 09, unless I know how to change it.

Spoiler:
-Work Up
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 00 04 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 11 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 14 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Coil
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 03 02 0C XX XX XX 08 20 01 00 06 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 11 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 12 89 41 SS SS SS 08 29 00 23 4D 02 02 02 SS SS SS 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 16 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Quiver Dance
00 02 03 20 01 03 04 0C XX XX XX 08 20 01 03 05 0C XX XX XX 08 20 01 00 03 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 14 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 15 89 41 SS SS SS 08 29 00 23 4D 02 02 02 SS SS SS 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 13 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Hone Claws
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 00 06 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 11 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 16 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Tail Glow > First raises 2 levels the Sp. Attack, and then raises 1 level the Sp. Attack.
00 02 03 20 01 03 04 0C XX XX XX 08 20 01 00 04 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 24 89 41 3F F8 6F 08 29 00 23 4D 02 02 02 3F F8 6F 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 14 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Cotton Guard > First raises 2 levels the Defense, and then raises 1 level the Defense.
00 02 03 20 01 03 02 0C XX XX XX 08 20 01 00 02 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 22 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 12 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08


Below there's a list of effects I've done too, but they don't work completely well. I'll tell the problems they have. I haven't realized how to fix them yet... Stockpile has the same color effect as Cosmic Power (Charge also does, but that one's not correct as it only raises Sp. Defense, not Defense). Shell Smash has 5 effects, so I've put its pointers as XX, YY, SS, MM, LL and ZZ.
Spoiler:
-Stockpile > [It's able to raise Defense and Sp. Defens up to 6 levels, and when energy is released, they don't disappear. It wastes 2 PP. It shows the animation 2 times]
00 02 03 85 09 0A 13 5E 15 40 08 12 40 00 00 02 03 20 01 03 02 0C XX XX XX 08 20 01 00 05 0C CB 8B 1D 08 00 00 2E DC 60 01 02 00 48 01 24 00 2E 1E 60 01 02 12 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 15 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Charge > [It wastes 2 PP. When Sp. Defense is at its maximum level, it shows the color's effect, but the message doesn't show up]
00 02 03 CB 09 0A 10 A5 00 12 40 00 00 02 03 20 01 03 02 0C XX XX XX 08 20 01 00 05 0C CB 8B 1D 08 00 00 2E DC 60 01 02 00 48 01 24 00 2E 1E 60 01 02 15 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Growth > [It doesn't raise 2 levels the Attack and the Sp. Attack when Sunny Day is on. It works like Work Up]
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 00 04 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 11 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 14 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Geomancy > [It works like Quiver Dance, raises 1 level Sp. Attack, Sp. Defense and Speed in one turn]
00 02 03 20 01 03 04 0C XX XX XX 08 20 01 03 05 0C XX XX XX 08 20 01 00 03 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 14 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 15 89 41 SS SS SS 08 29 00 23 4D 02 02 02 SS SS SS 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 13 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08

-Shell Smash > [Pokemon with Clear Body don't get their Defenses lowered]
00 02 03 20 01 03 01 0C XX XX XX 08 20 01 03 04 0C XX XX XX 08 20 01 03 03 0C XX XX XX 08 20 01 03 02 0C XX XX XX 08 20 01 00 05 0C CB 8B 1D 08 09 0A 2E DC 60 01 02 00 48 01 09 00 2E 1E 60 01 02 21 89 41 YY YY YY 08 29 00 23 4D 02 02 02 YY YY YY 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 24 89 41 SS SS SS 08 29 00 23 4D 02 02 02 SS SS SS 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 23 89 41 MM MM MM 08 29 00 23 4D 02 02 02 MM MM MM 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 92 89 41 LL LL LL 08 29 00 23 4D 02 02 02 LL LL LL 08 13 70 15 40 08 12 40 00 2E 1E 60 01 02 95 89 41 ZZ ZZ ZZ 08 29 00 23 4D 02 02 02 ZZ ZZ ZZ 08 13 70 15 40 08 12 40 00 28 62 6F 1D 08


That's all, probably you'll have a lot of doubts because I'm not that good explaining things xD. It seems complicated, but it isn't. You can leave here your doubts and I'll try to answer them.
Reply With Quote
Reply
Quick Reply

Sponsored Links

You may also like.. (Beta)
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

Forum Jump


All times are UTC -8. The time now is 12:07 PM.