AkameTheBulbasaur
Akame Marukawa of Iyotono
- 410
- Posts
- 11
- Years
- A place :D
- Seen Apr 20, 2025
Lightningrod Update for FireRed
This has been posted for Emerald, but I don't think it has for FireRed.
Routine: Boost Special Attack
Battle Script: Put The Address to This in the Above Routine
You need to insert this Battle Script using the same THUMB compiler you use to compile routines. Compile this script to a binary file, put it at the address you wrote at the given space in the script, then put that address at the proper place in the routine above.
This has been posted for Emerald, but I don't think it has for FireRed.
Routine: Boost Special Attack
Spoiler:
/*Insert 01 48 00 47 C0 46 XX XX XX 08 at 0x1A6A2*/
.text
.align 2
.thumb
.thumb_func
.global LightningRodUpdate
Main:
push {r0-r5}
ldr r0, .Defender
ldrb r0, [r0]
bl GetAbility
mov r4, r2
ldr r0, .Attacker
ldrb r0, [r0]
bl GetItem
mov r3, r2
ldr r0, .MoveIndex
ldrh r0, [r0]
bl GetType
mov r5, r2
CheckAbilities:
cmp r4, #0xA
beq VoltAbsorb
cmp r4, #0xB
beq WaterAbsorb
cmp r4, #0x12
beq FlashFire
cmp r4, #0x1F
beq Lightningrod
b Nothing
VoltAbsorb:
cmp r5, #0xD
beq VoltReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xFB
beq VoltReturn
b Nothing
WaterAbsorb:
cmp r5, #0xB
beq WaterReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xDC
beq WaterReturn
b Nothing
FlashFire:
cmp r5, #0xA
beq FlashReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xFC
beq FlashReturn
b Nothing
Lightningrod:
cmp r5, #0xD
beq Effect
cmp r5, #0x0
bne Nothing
cmp r3, #0xFB
beq Effect
b Nothing
/*LightningRod Stuff*/
Effect:
ldr r1, .SpreadLoc
ldr r0, .Attacker
ldrb r0, [r0]
lsl r0, r0, #0x4
add r0, r0, r1
ldrb r0, [r0, #0x2]
lsl r0, r0, #0x1C
cmp r0, #0x0
bge RemovePP
ldr r0, .BattleScript
add r0, #0x1
b RunScript
RemovePP:
ldr r0, .BattleScript
b RunScript
RunScript:
ldr r1, .ScriptLoc
str r0, [r1]
mov r0, #0x1
mov r9, r4
b Return
Return:
pop {r0-r5}
ldr r1, .Boost
bx r1
Nothing:
pop {r0-r5}
ldr r1, .Return
bx r1
VoltReturn:
pop {r0-r5}
ldr r1, .VoltReturn
bx r1
WaterReturn:
pop {r0-r5}
ldr r1, .WaterReturn
bx r1
FlashReturn:
pop {r0-r5}
ldr r1, .FlashReturn
bx r1
/*BL Functions*/
GetAbility:
push {r0, r3-r4, lr}
mov r4, #0x58
ldr r3, .UserData
mul r0, r4
add r3, r3, r0
add r3, r3, #0x20
ldrb r2, [r3]
pop {r0, r3-r4, pc}
GetType:
push {r0, lr}
push {r3-r4}
ldr r3, .AttackData
mov r4, #0xC
mul r0, r4
add r0, r0, r3
add r0, r0, #0x2
ldrb r2, [r0]
pop {r3-r4}
pop {r0, pc}
GetItem:
push {r0, r3-r4, lr}
mov r4, #0x58
ldr r3, .UserData
mul r0, r4
add r3, r3, r0
add r3, r3, #0x2E
ldrh r2, [r3]
pop {r0, r3-r4, pc}
.align 2
.VoltReturn: .word 0x0801A6BF
.WaterReturn: .word 0x0801A717
.FlashReturn: .word 0x0801A76D
.Return: .word 0x0801A833
.Boost: .word 0x0801A8AF
.AttackData: .word 0x08250C04
.SpreadLoc: .word 0x02023E8C
.Attacker: .word 0x02023D6B
.Defender: .word 0x02023D6C
.BattleScript: .word 0x081A1984
.ScriptLoc: .word 0x02023D74
.UserData: .word 0x02023BE4
.MoveIndex: .word 0x02023D4A
.text
.align 2
.thumb
.thumb_func
.global LightningRodUpdate
Main:
push {r0-r5}
ldr r0, .Defender
ldrb r0, [r0]
bl GetAbility
mov r4, r2
ldr r0, .Attacker
ldrb r0, [r0]
bl GetItem
mov r3, r2
ldr r0, .MoveIndex
ldrh r0, [r0]
bl GetType
mov r5, r2
CheckAbilities:
cmp r4, #0xA
beq VoltAbsorb
cmp r4, #0xB
beq WaterAbsorb
cmp r4, #0x12
beq FlashFire
cmp r4, #0x1F
beq Lightningrod
b Nothing
VoltAbsorb:
cmp r5, #0xD
beq VoltReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xFB
beq VoltReturn
b Nothing
WaterAbsorb:
cmp r5, #0xB
beq WaterReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xDC
beq WaterReturn
b Nothing
FlashFire:
cmp r5, #0xA
beq FlashReturn
cmp r5, #0x0
bne Nothing
cmp r3, #0xFC
beq FlashReturn
b Nothing
Lightningrod:
cmp r5, #0xD
beq Effect
cmp r5, #0x0
bne Nothing
cmp r3, #0xFB
beq Effect
b Nothing
/*LightningRod Stuff*/
Effect:
ldr r1, .SpreadLoc
ldr r0, .Attacker
ldrb r0, [r0]
lsl r0, r0, #0x4
add r0, r0, r1
ldrb r0, [r0, #0x2]
lsl r0, r0, #0x1C
cmp r0, #0x0
bge RemovePP
ldr r0, .BattleScript
add r0, #0x1
b RunScript
RemovePP:
ldr r0, .BattleScript
b RunScript
RunScript:
ldr r1, .ScriptLoc
str r0, [r1]
mov r0, #0x1
mov r9, r4
b Return
Return:
pop {r0-r5}
ldr r1, .Boost
bx r1
Nothing:
pop {r0-r5}
ldr r1, .Return
bx r1
VoltReturn:
pop {r0-r5}
ldr r1, .VoltReturn
bx r1
WaterReturn:
pop {r0-r5}
ldr r1, .WaterReturn
bx r1
FlashReturn:
pop {r0-r5}
ldr r1, .FlashReturn
bx r1
/*BL Functions*/
GetAbility:
push {r0, r3-r4, lr}
mov r4, #0x58
ldr r3, .UserData
mul r0, r4
add r3, r3, r0
add r3, r3, #0x20
ldrb r2, [r3]
pop {r0, r3-r4, pc}
GetType:
push {r0, lr}
push {r3-r4}
ldr r3, .AttackData
mov r4, #0xC
mul r0, r4
add r0, r0, r3
add r0, r0, #0x2
ldrb r2, [r0]
pop {r3-r4}
pop {r0, pc}
GetItem:
push {r0, r3-r4, lr}
mov r4, #0x58
ldr r3, .UserData
mul r0, r4
add r3, r3, r0
add r3, r3, #0x2E
ldrh r2, [r3]
pop {r0, r3-r4, pc}
.align 2
.VoltReturn: .word 0x0801A6BF
.WaterReturn: .word 0x0801A717
.FlashReturn: .word 0x0801A76D
.Return: .word 0x0801A833
.Boost: .word 0x0801A8AF
.AttackData: .word 0x08250C04
.SpreadLoc: .word 0x02023E8C
.Attacker: .word 0x02023D6B
.Defender: .word 0x02023D6C
.BattleScript: .word 0x081A1984
.ScriptLoc: .word 0x02023D74
.UserData: .word 0x02023BE4
.MoveIndex: .word 0x02023D4A
Battle Script: Put The Address to This in the Above Routine
You need to insert this Battle Script using the same THUMB compiler you use to compile routines. Compile this script to a binary file, put it at the address you wrote at the given space in the script, then put that address at the proper place in the routine above.
Spoiler:
.macro AttackCanceler
.byte 0x0
.endm
.macro AccuracyCheck Address Argument
.byte 0x1
.word \Address
.hword \Argument
.endm
.macro AttackString
.byte 0x2
.endm
.macro PPReduce
.byte 0x3
.endm
.macro CriticalHitCalc
.byte 0x4
.endm
.macro DamageCalc2
.byte 0x5
.endm
.macro DamageCalc3
.byte 0x6
.endm
.macro DamageCalc4
.byte 0x7
.endm
.macro DamageCalc5
.byte 0x8
.endm
.macro AttackAnimation
.byte 0x9
.endm
.macro WaitAnimation
.byte 0xA
.endm
.macro GraphicalHPUpdate Target
.byte 0xB
.byte \Target
.endm
.macro DataHPUpdate Target
.byte 0xC
.byte \Target
.endm
.macro CritMessage
.byte 0xD
.endm
.macro MissMessage
.byte 0xE
.endm
.macro ResultMessage
.byte 0xF
.endm
.macro PrintString StringID
.byte 0x10
.hword \StringID
.endm
.macro PrintString2 StringID
.byte 0x11
.hword \StringID
.endm
.macro WaitMessage Time
.byte 0x12
.hword \Time
.endm
.macro PrintFromTable Table
.byte 0x13
.word \Table
.endm
.macro PrintFromTable2 Table
.byte 0x14
.word \Table
.endm
.macro SetEffectWithChanceTarget
.byte 0x15
.endm
.macro SetEffect
.byte 0x16
.endm
.macro SetEffectUser
.byte 0x17
.endm
.macro ClearStatus Target
.byte 0x18
.byte \Target
.endm
.macro FaintPokemon Byte Byte2 Word
.byte 0x19
.byte \Byte
.byte \Byte2
.word \Word
.endm
.macro Cmd1A Target
.byte 0x1A
.byte \Target
.endm
.macro Cmd1B Target
.byte 0x1B
.byte \Target
.endm
.macro JumpIfStatus Target Condition Address
.byte 0x1C
.byte \Target
.word \Condition
.word \Address
.endm
.macro JumpIfSecondaryStatus Target Status Address
.byte 0x1D
.byte \Target
.word \Status
.word \Address
.endm
.macro JumpIfAbility Target Ability Address
.byte 0x1E
.byte \Target
.byte \Ability
.word \Address
.endm
.macro JumpIfHalverMarkerSet Target Marker Address
.byte 0x1F
.byte \Target
.hword \Marker
.word \Address
.endm
.macro JumpIfStat Target Condition Stat Value Address
.byte 0x20
.byte \Target
.byte \Condition
.byte \Stat
.byte \Value
.word \Address
.endm
.macro JumpIfSpecialStatusFlag Target Flag Condition Address
.byte 0x21
.byte \Target
.word \Flag
.byte \Condition
.word \Address
.endm
.macro JumpIfType Condition Type Address
.byte 0x22
.byte \Condition
.byte \Type
.word \Address
.endm
.macro Cmd23 Target
.byte 0x23
.byte \Target
.endm
.macro Cmd24 Target
.byte 0x24
.word \Target
.endm
.macro Cmd25
.byte 0x25
.endm
.macro StoreLoopCounter Value
.byte 0x26
.byte \Value
.endm
.macro DecreaseLoop Address
.byte 0x27
.word \Address
.endm
.macro Goto Address
.byte 0x28
.word \Address
.endm
.macro JumpIfByte Condition RAM Byte Address
.byte 0x29
.byte \Condition
.word \RAM
.byte \Byte
.word \Address
.endm
.macro JumpIfHalfWord Condition RAM HWord Address
.byte 0x2A
.byte \Condition
.word \RAM
.hword \HWord
.word \Address
.endm
.macro JumpIfWord Condition RAM Word Address
.byte 0x2B
.byte \Condition
.word \RAM
.word \Word
.word \Address
.endm
.macro JumpIfArrayEqual Array1 Array2 Size Address
.byte 0x2C
.word \Array1
.word \Array2
.byte \Size
.word \Address
.endm
.macro JumpIfArrayNotEqual Array1 Array2 Size Address
.byte 0x2D
.word \Array1
.word \Array2
.byte \Size
.word \Address
.endm
.macro SetByte RAM Byte
.byte 0x2E
.word \RAM
.byte \Byte
.endm
.macro AddByte RAM Byte
.byte 0x2F
.word \RAM
.byte \Byte
.endm
.macro SubtractByte RAM Byte
.byte 0x30
.word \RAM
.byte \Byte
.endm
.macro CopyArray Array1 Array2 Size
.byte 0x31
.word \Array1
.word \Array2
.byte \Size
.endm
.macro CopyArrayWithOffset Array1 Array2 Array3 Size
.byte 0x32
.word \Array1
.word \Array2
.word \Array3
.byte \Size
.endm
.macro OrByte RAM Byte
.byte 0x33
.word \RAM
.byte \Byte
.endm
.macro OrHalfWord RAM HWord
.byte 0x34
.word \RAM
.hword \HWord
.endm
.macro OrWord RAM Word
.byte 0x35
.word \RAM
.word \Word
.endm
.macro BICByte RAM Byte
.byte 0x36
.word \RAM
.byte \Byte
.endm
.macro BICHalfWord RAM HWord
.byte 0x37
.word \RAM
.hword \HWord
.endm
.macro BICWord RAM Word
.byte 0x38
.word \RAM
.word \Word
.endm
.macro Pause Time
.byte 0x39
.hword \Time
.endm
.macro WaitState
.byte 0x3A
.endm
.macro Cmd3B
.byte 0x3B
.endm
.macro Return
.byte 0x3C
.endm
.macro End
.byte 0x3D
.endm
.macro EndWithoutCleanUp
.byte 0x3E
.endm
.macro ResetGame
.byte 0x3F
.endm
.macro Cmd40 Address
.byte 0x40
.word \Address
.endm
.macro Call Address
.byte 0x41
.word \Address
.endm
.macro JumpIfType2 Target Type Address
.byte 0x42
.byte \Target
.byte \Type
.word \Address
.endm
.macro JumpIfAbilityPresent Ability Address
.byte 0x43
.byte \Ability
.word \Address
.endm
.macro PlayAnimation Target Animation Word
.byte 0x44
.byte \Target
.byte \Animation
.word \Word
.endm
.macro PlayAnimation2 Target Animation Address
.byte 0x45
.byte \Target
.byte \Animation
.word \Address
.endm
.macro Cmd46
.byte 0x46
.endm
.macro Cmd47
.byte 0x47
.endm
.macro PlayStatChangeAnimation Target Color Sound
.byte 0x48
.byte \Target
.byte \Color
.byte \Sound
.endm
.macro Cmd49 Byte Byte2
.byte 0x49
.byte \Byte
.byte \Byte2
.endm
.macro AlternateDamageCalc
.byte 0x4A
.endm
.macro Cmd4B
.byte 0x4B
.endm
.macro Switch1 Target
.byte 0x4C
.byte \Target
.endm
.macro Switch2 Target
.byte 0x4D
.byte \Target
.endm
.macro Switch3 Target Byte
.byte 0x4E
.byte \Byte
.endm
.macro JumpIfCannotSwitch Target Address
.byte 0x4F
.byte \Target
.word \Address
.endm
.macro OpenPartyScreen Target Address
.byte 0x50
.byte \Target
.word \Address
.endm
.macro Cmd51 Byte Byte2
.byte 0x51
.byte \Byte
.byte \Byte2
.endm
.macro Cmd52 Byte
.byte 0x52
.byte \Byte
.endm
.macro Cmd53 Byte
.byte 0x53
.byte \Byte
.endm
.macro Cmd54
.byte 0x54
.endm
.macro Cmd5
.byte 0x55
.endm
.macro Cmd56
.byte 0x56
.endm
.macro Cmd57
.byte 0x57
.endm
.macro Cmd58 Byte
.byte 0x58
.byte \Byte
.endm
.macro Cmd59
.byte 0x59
.endm
.macro Cmd5C Byte
.byte 0x5C
.byte \Byte
.endm
.macro DoStruggle Byte
.byte 0x60
.byte \Byte
.endm
.macro Cmd62
.byte 0x62
.endm
.macro JumpToAttack Target
.byte 0x63
.byte \Target
.endm
.macro StatusAnimation Target
.byte 0x64
.byte \Target
.endm
.macro Cmd69
.byte 0x69
.endm
.macro Cmd73 Byte
.byte 0x73
.byte \Byte
.endm
.macro Cmd76 Byte1 Byte2
.byte 0x76
.byte \Byte1
.byte \Byte2
.endm
.macro SetProtectOrEndure
.byte 0x77
.endm
.macro DoExplosion
.byte 0x78
.endm
.macro EraseUserHP
.byte 0x79
.endm
.macro JumpWhileTargetValid Address
.byte 0x7A
.word \Address
.endm
.macro SetDamageToHPRecovery Address Target
.byte 0x7B
.word \Address
.byte \Target
.endm
.macro DoMirrorMove
.byte 0x7C
.endm
.macro SetRain
.byte 0x7D
.endm
.macro SetReflect
.byte 0x7E
.endm
.macro SetLeechSeed
.byte 0x7F
.endm
.macro ManipulateDamage Value
.byte 0x80
.byte \Value
.endm
.macro SetRest Address
.byte 0x81
.word \Address
.endm
.macro JumpIfNotFirstTurn Address
.byte 0x82
.word \Address
.endm
.macro Nop
.byte 0x83
.endm
.macro JumpIfTargetCantSleep Address
.byte 0x84
.word \Address
.endm
.macro SpitUpDamageCalc Address
.byte 0x86
.word \Address
.endm
.macro SwallowRecoveryCalc Address
.byte 0x87
.word \Address
.endm
.macro NegativeDamage
.byte 0x88
.endm
.macro StatBuffChange Target Address
.byte 0x89
.byte \Target
.word \Address
.endm
.macro ResetAllStats
.byte 0x8A
.endm
.macro SetBide
.byte 0x8B
.endm
.macro ConfuseIfAttackOver
.byte 0x8C
.endm
.macro SetLoopCounter Value
.byte 0x8D
.byte \Value
.endm
.macro Cmd8E
.byte 0x8E
.endm
.macro ForceRandomSwitch Address
.byte 0x8F
.word \Address
.endm
.macro SetConversion Address
.byte 0x90
.word \Address
.endm
.macro GiveMoney
.byte 0x91
.endm
.macro SetLightScreen
.byte 0x92
.endm
.macro Cmd93 Address
.byte 0x93
.word \Address
.endm
.macro SuperFangDamage
.byte 0x94
.endm
.macro SetSandstorm
.byte 0x95
.endm
.macro WeatherDamage
.byte 0x96
.endm
.macro TryToInfatuate Address
.byte 0x97
.word \Address
.endm
.macro SetStatus Target
.byte 0x98
.byte \Target
.endm
.macro DoMist
.byte 0x99
.endm
.macro DoTransform
.byte 0x9B
.endm
.macro SetSubstitute
.byte 0x9C
.endm
.macro DoMetronomeEffect
.byte 0x9E
.endm
.macro SetDamageToLevel
.byte 0x9F
.endm
.macro FalseSwipeDamageCalc
.byte 0xA0
.endm
.macro CounterDamageCalc Address
.byte 0xA1
.word \Address
.endm
.macro MirrorCoatDamageCalc Address
.byte 0xA2
.word \Address
.endm
.macro DoDisable Address
.byte 0xA3
.word \Address
.endm
.macro SetEncore Address
.byte 0xA4
.word \Address
.endm
.macro PainSplitDamageCalculator Address
.byte 0xA5
.word \Address
.endm
.macro SetConversion2 Address
.byte 0xA6
.word \Address
.endm
.macro SetLockOn
.byte 0xA7
.endm
.macro DoSketch Address
.byte 0xA8
.word \Address
.endm
.macro DoSleepTalk Address
.byte 0xA9
.word \Address
.endm
.macro DoDestinyBond
.byte 0xAA
.endm
.macro CmdAB
.byte 0xAB
.endm
.macro DoFlail
.byte 0xAC
.endm
.macro DoSpite Address
.byte 0xAD
.word \Address
.endm
.macro DoHealBell
.byte 0xAE
.endm
.macro DoCurse Address
.byte 0xAF
.word \Address
.endm
.macro SetSpikesLayers Address
.byte 0xB0
.word \Address
.endm
.macro DoPerishSong Address
.byte 0xB2
.word \Address
.endm
.macro RollOutDamageCalc
.byte 0xB3
.endm
.macro SwaggerCheck Target Address
.byte 0xB4
.byte \Target
.word \Address
.endm
.macro FuryCutterDamageCalc
.byte 0xB5
.endm
.macro ReturnDamageCalc
.byte 0xB6
.endm
.macro PresentDamageCalc
.byte 0xB7
.endm
.macro SetSafeguard
.byte 0xB8
.endm
.macro MagnitudeDamageCalc
.byte 0xB9
.endm
.macro CmdBA
.byte 0xBA
.endm
.macro SetSun
.byte 0xBB
.endm
.macro DoBellyDrum Address
.byte 0xBC
.word \Address
.endm
.macro DoPsychUp Address
.byte 0xBD
.word \Address
.endm
.macro BreakFree
.byte 0xBE
.endm
.macro SetDefenseCurl
.byte 0xBF
.endm
.macro RecoverBasedOnWeather Address
.byte 0xC0
.word \Address
.endm
.macro HiddenPowerDamageCalc
.byte 0xC1
.endm
.macro SelectNextTarget
.byte 0xC2
.endm
.macro DoFutureSight Address
.byte 0xC3
.word \Address
.endm
.macro BeatUpDamageCalc
.byte 0xC4
.endm
.macro HideAttacker
.byte 0xC5
.endm
.macro UnhideAttacker
.byte 0xC6
.endm
.macro SetMinimize
.byte 0xC7
.endm
.macro SetHail
.byte 0xC8
.endm
.macro DoMemento Address
.byte 0xC9
.word \Address
.endm
.macro SetCharge
.byte 0xCB
.endm
.macro CallTerrainAttack
.byte 0xCC
.endm
.macro CureBurnPoisonParalysis Address
.byte 0xCD
.word \Address
.endm
.macro SetTorment Address
.byte 0xCE
.word \Address
.endm
.macro JumpIfNotDamaged Address
.byte 0xCF
.word \Address
.endm
.macro CurePrimaryStatus Target Address
.byte 0xD0
.byte \Target
.word \Address
.endm
.macro DoTrick Address
.byte 0xD2
.word \Address
.endm
.macro DoRolePlay Address
.byte 0xD3
.word \Address
.endm
.macro DoWish Byte Address
.byte 0xD4
.byte \Byte
.word \Address
.endm
.macro SetIngrain Address
.byte 0xD5
.word \Address
.endm
.macro DoubleDamageIfHurt
.byte 0xD6
.endm
.macro SetYawn Address
.byte 0xD7
.word \Address
.endm
.macro EruptionPowerCalc
.byte 0xD9
.endm
.macro DoSkillSwap Address
.byte 0xDA
.word \Address
.endm
.macro SetGrudge Address
.byte 0xDC
.word \Address
.endm
.macro DoAssist Address
.byte 0xDE
.word \Address
.endm
.macro LowKickDamageCalc
.byte 0xDD
.endm
.macro SetMagicCoat Address
.byte 0xDF
.word \Address
.endm
.macro SetSnatch Address
.byte 0xE0
.word \Address
.endm
.macro CmdE2 Byte
.byte 0xE2
.byte \Byte
.endm
.macro JumpIfFainted Target Address
.byte 0xE3
.byte \Target
.word \Address
.endm
.macro DoSecretPower
.byte 0xE4
.endm
.macro PickUpItemCalc
.byte 0xE5
.endm
.macro CastformChange
.byte 0xE7
.endm
.macro DoWaterOrMudSport Address
.byte 0xE8
.word \Address
.endm
.macro ChangeTypeToWeather
.byte 0xE9
.endm
.macro DoRecycle Address
.byte 0xEA
.word \Address
.endm
.macro DoCamouflage Address
.byte 0xEB
.word \Address
.endm
.macro BreakScreens
.byte 0xEE
.endm
.macro CatchPokemon
.byte 0xEF
.endm
.macro ShowPokeDex
.byte 0xF2
.endm
.macro NickNamePokemon
.byte 0xF3
.endm
.macro SubtractHP
.byte 0xF4
.endm
.macro RemoveStatus
.byte 0xF5
.endm
.macro CallASM Address
.byte 0xF8
.word \Address
.endm
.macro SetWord RAM Address
.byte 0xF9
.word \RAM
.word \Address
.endm
.equ True, 0x0
.equ False, 0x1
.equ On, 0x0
.equ Off, 0x1
.equ User, 0x1
.equ Target, 0x0
.equ Field, 0x7
.equ Equals, 0x0
.equ NotEqual, 0x1
.equ LessThan, 0x2
.equ MoreThan, 0x3
.equ BitInCommon, 0x4
.equ NoBitInCommon, 0x5
.equ CurrentMove, 0x02023D4A
.equ PreviousMove, 0x02023D4C
.equ DamageMultiplier, 0x02023FD2
.equ MoveEffect, 0x02023E85
.equ LoopRAM, 0x02023D72
.equ StringRAM, 0x0203C020
.equ DefenderRAM, 0x02023D6C
.equ AttackerRAM, 0x02023D6B
.equ StatChange, 0x02023FDE
.equ WeatherRAM, 0x02023F1C
.equ DamageRAM, 0x02023D50
.equ TerrainRAM, 0x02022B50
.equ KnockedOffItem, 0x02023D68
.equ CriticalHitRAM, 0x02023D71
.equ AttackOutcome, 0x02023DCC
.equ HitMarker, 0x02023DD0
.equ MultiStringRAM, 0x02023E87
.equ PayDayAmount, 0x02023E7E
.equ LastBankRAM, 0x02023FDB
.equ BSCursor, 0x02023D74
.equ ActiveSideNumber, 0x02023BCC
.equ DP08Pointer, 0x02023FE8
.equ WeatherTurns, 0x02023F48
.equ BattleType, 0x02022B4C
.equ TableOffsetRAM, 0x02026C2C
.equ FreeRAM, 0x02026C30
.equ BattleOutcomeA, 0x02022AB8
.equ Defender, 0x02023D6C
.equ Attacker, 0x02023D6B
.equ Sleep, 0x7
.equ Poisoned, 0x8
.equ Burn, 0x10
.equ Freeze, 0x20
.equ Paralyze, 0x40
.equ BadPoison, 0x80
.equ MajorStatus, 0xFF
.equ Confused, 0x7
.equ NoSleep, 0x70
.equ Trapped, 0x400E000
.equ InLove, 0xF0000
.equ RechargeUp, 0x400000
.equ SubActive, 0x1000000
.equ DBondUp, 0x2000000
.equ NMareUp, 0x8000000
.equ CurseUp, 0x10000000
.equ DCurlUp, 0x40000000
.equ TormentUp, 0x80000000
.equ TwoTurn, 0x1000
.equ LSeedUp, 0x4
.equ LockOnUp, 0x10
.equ PanicModeUp, 0x20
.equ SInvulnerable, 0x400C0
.equ ChargeUp, 0x200
.equ IngrainUp, 0x400
.equ Flying, 0x40
.equ Digging, 0x80
.equ GrudgeUp, 0x4000
.equ Diving, 0x40000
.equ ReflectUp, 0x1
.equ LScreenUp, 0x2
.equ SpikesUp, 0x10
.equ SGuardUp, 0x20
.equ MistUp, 0x100
.equ SetSleep, 0x1
.equ SetPoison, 0x2
.equ SetFreeze, 0x4
.equ SetBurn, 0x3
.equ SetParalysis, 0x5
.equ SetToxic, 0x6
.equ SetConfusion, 0x7
.equ SetFlinch, 0x8
.equ SetTriAttack, 0x9
.equ SetUproar, 0x4A
.equ SetPayDay, 0xB
.equ SetRepeatMove, 0xC
.equ SetWrap, 0xD
.equ SetRecoil1, 0xE
.equ RaiseAttack1, 0xF
.equ RaiseDefense1, 0x10
.equ RaiseSpeed1, 0x11
.equ RaiseSpAttack1, 0x12
.equ RaiseSpDefense1, 0x13
.equ RaiseAccuracy1, 0x14
.equ RaiseEvasion1, 0x15
.equ LowerAttack1, 0x16
.equ LowerDefense1, 0x17
.equ LowerSpeed1, 0x18
.equ LowerSpAttack1, 0x19
.equ LowerSpDefense1, 0x1A
.equ LowerAccuracy1, 0x1B
.equ LowerEvasion1, 0x1C
.equ SetRecharge, 0x1D
.equ SetRage, 0x1E
.equ SetThief, 0x1F
.equ SetTrap, 0x20
.equ SetNightmare, 0x21
.equ SetAllStatsRaise, 0x22
.equ SetRapidSpin, 0x23
.equ SetSmellingSalt, 0x24
.equ SetSuperpower, 0x25
.equ SetRecoilParalysis, 0x26
.equ RaiseAttack2, 0x27
.equ RaiseDefense2, 0x28
.equ RaiseSpeed2, 0x29
.equ RaiseSpAttack2, 0x2A
.equ RaiseSpDefense2, 0x2B
.equ RaiseAccuracy2, 0x2C
.equ RaiseEvasion2, 0x2D
.equ LowerAttack2, 0x2E
.equ LowerDefense2, 0x2F
.equ LowerSpeed2, 0x30
.equ LowerSpAttack2, 0x31
.equ LowerSpDefense2, 0x32
.equ LowerAccuracy2, 0x33
.equ LowerEvasion2, 0x34
.equ SetKnockOff, 0x36
.equ SetOverheat, 0x3A
.equ SetSkipChargePhase, 0x4C
.equ SetSmellingSalt, 0xA4
.equ QuarterRecoil, 0xCE
.equ SetRapidSpin, 0xE3
.equ ThirdRecoil, 0xE6
.equ Attack, 0x1
.equ Defense, 0x2
.equ Speed, 0x3
.equ SpAttack, 0x4
.equ SpDefense, 0x5
.equ Accuracy, 0x6
.equ Evasion, 0x7
.equ DidntHit, 0x1
.equ Weak, 0x2
.equ Resist, 0x4
.equ Immune, 0x8
.equ OHKOMove, 0x10
.equ Failed, 0x20
.equ Endured, 0x40
.equ EndureWithItem, 0x80
.equ NotCarriedOut, 0x29
.equ NotNeutralHit, 0x6
.equ Rise, 0x0
.equ Fall, 0x1
.equ Sunshine, 0x60
.equ Rainstorm, 0x7
.equ SandyWind, 0x18
.equ HailStorm, 0x80
.equ AttackColor, 0x2
.equ DefenseColor, 0x4
.equ TickleColor, 0x6
.equ SpeedColor, 0x8
.equ SpAttackColor, 0x10
.equ SpDefenseColor, 0x20
.equ AccuracyColor, 0x40
.equ EvasionColor, 0x80
.equ DragonDanceColor, 0xA
.equ CalmMindColor, 0x30
.equ QuiverDanceColor, 0x38
.equ BulkUpColor, 0x6
.equ CosmicPowerColor, 0x24
.equ Stench, 0x1
.equ Drizzle, 0x2
.equ SpeedBoost, 0x3
.equ BattleArmor, 0x4
.equ Sturdy, 0x5
.equ Damp, 0x6
.equ Limber, 0x7
.equ SandVeil, 0x8
.equ Static, 0x9
.equ VoltAbsorb, 0xA
.equ WaterAbsorb, 0xB
.equ Oblivious, 0xC
.equ CloudNine, 0xD
.equ CompoundEyes, 0xE
.equ Insomnia, 0xF
.equ ColorChange, 0x10
.equ Immunity, 0x11
.equ FlashFire, 0x12
.equ ShieldDust, 0x13
.equ OwnTempo, 0x14
.equ SuctionCups, 0x15
.equ Intimidate, 0x16
.equ ShadowTag, 0x17
.equ RoughSkin, 0x18
.equ WonderGuard, 0x19
.equ Levitate, 0x1A
.equ EffectSpore, 0x1B
.equ Synchronize, 0x1C
.equ ClearBody, 0x1D
.equ NaturalCure, 0x1E
.equ LightningRod, 0x1F
.equ SereneGrace, 0x20
.equ SwiftSwim, 0x21
.equ Chlorophyll, 0x22
.equ Illuminate, 0x23
.equ Trace, 0x24
.equ HugePower, 0x25
.equ PoisonPoint, 0x26
.equ InnerFocus, 0x27
.equ MagmaArmor, 0x28
.equ WaterVeil, 0x29
.equ MagnetPull, 0x2A
.equ FrostVeil, 0x2B
.equ RainDish, 0x2C
.equ SandStream, 0x2D
.equ Pressure, 0x2E
.equ ThickFat, 0x2F
.equ EarlyBird, 0x30
.equ FlameBody, 0x31
.equ RunAway, 0x32
.equ KeenEye, 0x33
.equ HyperCutter, 0x34
.equ PickUp, 0x35
.equ Truant, 0x36
.equ Hustle, 0x37
.equ CuteCharm, 0x38
.equ Plus, 0x39
.equ Minus, 0x3A
.equ Forecast, 0x3B
.equ StickyHold, 0x3C
.equ ShedSkin, 0x3D
.equ Guts, 0x3E
.equ MarvelScale, 0x3F
.equ LiquidOoze, 0x40
.equ Overgrow, 0x41
.equ Blaze, 0x42
.equ Torrent, 0x43
.equ Swarm, 0x44
.equ RockHead, 0x45
.equ Drought, 0x46
.equ ArenaTrap, 0x47
.equ VitalSpirit, 0x48
.equ WhiteSmoke, 0x49
.equ PurePower, 0x4A
.equ ShellArmor, 0x4B
.equ SnowWarning, 0x4C
.equ AirLock, 0x4D
.equ QuiverDance, 0x1
.equ KarateChop, 0x2
.equ DoubleSlap, 0x3
.equ CometPunch, 0x4
.equ MegaPunch, 0x5
.equ PayDay, 0x6
.equ FirePunch, 0x7
.equ IcePunch, 0x8
.equ Thunderpunch, 0x9
.equ Scratch, 0xA
.equ ViceGrip, 0xB
.equ Guillotine, 0xC
.equ RazorWind, 0xD
.equ SwordsDance, 0xE
.equ Cut, 0xF
.equ Gust, 0x10
.equ WingAttack, 0x11
.equ Whirlwind, 0x12
.equ Fly, 0x13
.equ Bind, 0x14
.equ Slam, 0x15
.equ VineWhip, 0x16
.equ Stomp, 0x17
.equ DoubleKick, 0x18
.equ MegaKick, 0x19
.equ JumpKick, 0x1A
.equ RollingKick, 0x1B
.equ SandAttack, 0x1C
.equ Headbutt, 0x1D
.equ HornAttack, 0x1E
.equ FuryAttack, 0x1F
.equ DragonRush, 0x20
.equ Tackle, 0x21
.equ BodySlam, 0x22
.equ Wrap, 0x23
.equ TakeDown, 0x24
.equ Thrash, 0x25
.equ DoubleEdge, 0x26
.equ TailWhip, 0x27
.equ PoisonSting, 0x28
.equ Twineedle, 0x29
.equ PinMissisle, 0x2A
.equ MysticFire, 0x2B
.equ Bite, 0x2C
.equ DrillRun, 0x2D
.equ ChargeBeam, 0x2E
.equ Sing, 0x2F
.equ Supersonic, 0x30
.equ SonicBoom, 0x31
.equ Disable, 0x32
.equ Acid, 0x33
.equ Ember, 0x34
.equ Flamethrower, 0x35
.equ Mist, 0x36
.equ WaterGun, 0x37
.equ HydroPump, 0x38
.equ Surf, 0x39
.equ IceBeam, 0x3A
.equ Blizzard, 0x3B
.equ Psybeam, 0x3C
.equ BubbleBeam, 0x3D
.equ AuroraBeam, 0x3E
.equ HyperBeam, 0x3F
.equ Peck, 0x40
.equ DrillPeck, 0x41
.equ Recycle, 0x42
.equ LowKick, 0x43
.equ Counter, 0x44
.equ SeismicToss, 0x45
.equ Strength, 0x46
.equ Absorb, 0x47
.equ MegaDrain, 0x48
.equ LeechSeed, 0x49
.equ Growth, 0x4A
.equ RazorLeaf, 0x4B
.equ SolarBeam, 0x4C
.equ Poisonpowder, 0x4D
.equ StunSpore, 0x4E
.equ SleepPowder, 0x4F
.equ PetalDance, 0x50
.equ StringShot, 0x51
.equ Snatch, 0x52
.equ FireSpin, 0x53
.equ Thundershock, 0x54
.equ Thunderbolt, 0x55
.equ ThunderWave, 0x56
.equ Thunder, 0x57
.equ RockThrow, 0x58
.equ Earthquake, 0x59
.equ Fissure, 0x5A
.equ Dig, 0x5B
.equ Toxic, 0x5C
.equ Confusion, 0x5D
.equ Psychic, 0x5E
.equ Hypnosis, 0x5F
.equ FlashCannon, 0x60
.equ Agility, 0x61
.equ QuickAttack, 0x62
.equ Rage, 0x63
.equ Teleport, 0x64
.equ NightShade, 0x65
.equ MegaWhip, 0x66
.equ Screech, 0x67
.equ DoubleTeam, 0x68
.equ Recover, 0x69
.equ Harden, 0x6A
.equ Minimize, 0x6B
.equ Smokescreen, 0x6C
.equ ConfuseRay, 0x6D
.equ Withdraw, 0x6E
.equ DefenseCurl, 0x6F
.equ Barrier, 0x70
.equ LightScreen, 0x71
.equ Haze, 0x72
.equ Reflect, 0x73
.equ IceBurn, 0x74
.equ OminousWind, 0x75
.equ Metronome, 0x76
.equ MirrorMove, 0x77
.equ PowerGem, 0x78
.equ EggBomb, 0x79
.equ Lick, 0x7A
.equ Smog, 0x7B
.equ Sludge, 0x7C
.equ BoneClub, 0x7D
.equ FireBlast, 0x7E
.equ Waterfall, 0x7F
.equ Clamp, 0x80
.equ Swift, 0x81
.equ SkullBash, 0x82
.equ SpikeCannon, 0x83
.equ Constrict, 0x84
.equ Amnesia, 0x85
.equ Kinesis, 0x86
.equ SoftBoiled, 0x87
.equ HiJumpKick, 0x88
.equ Glare, 0x89
.equ DreamEater, 0x8A
.equ PoisonGas, 0x8B
.equ Barrage, 0x8C
.equ LeechLife, 0x8D
.equ LovelyKiss, 0x8E
.equ SkyAttack, 0x8F
.equ Transform, 0x90
.equ Bubble, 0x91
.equ DizzyPunch, 0x92
.equ Spore, 0x93
.equ SwitchMove, 0x94
.equ SkillSwap, 0x95
.equ PoisonJab, 0x96
.equ AcidArmor, 0x97
.equ Crabhammer, 0x98
.equ SeedBomb, 0x99
.equ FurySwipes, 0x9A
.equ Bonemerang, 0x9B
.equ Rest, 0x9C
.equ RockSlide, 0x9D
.equ HyperFang, 0x9E
.equ Sharpen, 0x9F
.equ Conversion, 0xA0
.equ TriAttack, 0xA1
.equ BeakBlast, 0xA2
.equ Slash, 0xA3
.equ Substitute, 0xA4
.equ Struggle, 0xA5
.equ Sketch, 0xA6
.equ TripleKick, 0xA7
.equ Thief, 0xA8
.equ SpiderWeb, 0xA9
.equ MindReader, 0xAA
.equ Nightmare, 0xAB
.equ FlameWheel, 0xAC
.equ Snore, 0xAD
.equ Curse, 0xAE
.equ Flail, 0xAF
.equ Conversion2, 0xB0
.equ Aeroblast, 0xB1
.equ CottonGuard, 0xB2
.equ AuraSphere, 0xB3
.equ Spite, 0xB4
.equ PowderSnow, 0xB5
.equ Protect, 0xB6
.equ MachPunch, 0xB7
.equ ScaryFace, 0xB8
.equ FeintAttack, 0xB9
.equ SweetKiss, 0xBA
.equ BellyDrum, 0xBB
.equ SludgeBomb, 0xBC
.equ MudSlap, 0xBD
.equ Octazooka, 0xBE
.equ Spikes, 0xBF
.equ ZapCannon, 0xC0
.equ Moonblast, 0xC1
.equ DestinyBond, 0xC2
.equ PerishSong, 0xC3
.equ IcyWind, 0xC4
.equ Detect, 0xC5
.equ BoneRush, 0xC6
.equ LockOn, 0xC7
.equ Outrage, 0xC8
.equ Sandstorm, 0xC9
.equ GigaDrain, 0xCA
.equ ESP, 0xCB
.equ Charm, 0xCC
.equ Rollout, 0xCD
.equ FalseSwipe, 0xCE
.equ Swagger, 0xCF
.equ MilkDrink, 0xD0
.equ Spark, 0xD1
.equ FuryCutter, 0xD2
.equ SteelWing, 0xD3
.equ MeanLook, 0xD4
.equ Attract, 0xD5
.equ SleepTalk, 0xD6
.equ HealBell, 0xD7
.equ Return, 0xD8
.equ Present, 0xD9
.equ Roost, 0xDA
.equ Safeguard, 0xDB
.equ PainSplit, 0xDC
.equ SacredFire, 0xDD
.equ Magnitude, 0xDE
.equ DynamicPunch, 0xDF
.equ Megahorn, 0xE0
.equ Dragonbreath, 0xE1
.equ BatonPass, 0xE2
.equ Encore, 0xE3
.equ Pursuit, 0xE4
.equ RapidSpin, 0xE5
.equ SweetScent, 0xE6
.equ IronTail, 0xE7
.equ MetalClaw, 0xE8
.equ VitiumVita, 0xE9
.equ MorningSun, 0xEA
.equ Synthesis, 0xEB
.equ Moonlight, 0xEC
.equ HiddenPower, 0xED
.equ CrossChop, 0xEE
.equ Twister, 0xEF
.equ RainDance, 0xF0
.equ SunnyDay, 0xF1
.equ Crunch, 0xF2
.equ MirrorCoat, 0xF3
.equ PsychUp, 0xF4
.equ Extremespeed, 0xF5
.equ Ancientpower, 0xF6
.equ ShadowBall, 0xF7
.equ FutureSight, 0xF8
.equ RockSmash, 0xF9
.equ Whirlpool, 0xFA
.equ BeatUp, 0xFB
.equ Liquidation, 0xFC
.equ Uproar, 0xFD
.equ BugBuzz, 0xFE
.equ NobleRoar, 0xFF
.equ Boomburst, 0x100
.equ HeatWave, 0x101
.equ Hail, 0x102
.equ Torment, 0x103
.equ Flatter, 0x104
.equ WillOWisp, 0x105
.equ FlameCharge, 0x106
.equ Facade, 0x107
.equ FocusPunch, 0x108
.equ Smellingsalt, 0x109
.equ DracoMeteor, 0x10A
.equ NaturePower, 0x10B
.equ Charge, 0x10C
.equ CrossPoison, 0x10D
.equ DazzleGleam, 0x10E
.equ Trick, 0x10F
.equ EarthPower, 0x110
.equ Wish, 0x111
.equ DarkPulse, 0x112
.equ Ingrain, 0x113
.equ Superpower, 0x114
.equ MagicCoat, 0x115
.equ XScissor, 0x116
.equ Revenge, 0x117
.equ BrickBreak, 0x118
.equ Yawn, 0x119
.equ KnockOff, 0x11A
.equ FlareBlitz, 0x11B
.equ Eruption, 0x11C
.equ LightOfRuin, 0x11D
.equ DrainKiss, 0x11E
.equ Refresh, 0x11F
.equ Grudge, 0x120
.equ FairyWind, 0x121
.equ SecretPower, 0x122
.equ Dive, 0x123
.equ ArmThrust, 0x124
.equ Camouflage, 0x125
.equ TailGlow, 0x126
.equ LusterPurge, 0x127
.equ MistBall, 0x128
.equ Featherdance, 0x129
.equ TeeterDance, 0x12A
.equ BlazeKick, 0x12B
.equ ShadowClaw, 0x12C
.equ IceBall, 0x12D
.equ NeedleArm, 0x12E
.equ SlackOff, 0x12F
.equ HyperVoice, 0x130
.equ PoisonFang, 0x131
.equ CrushClaw, 0x132
.equ BlastBurn, 0x133
.equ HydroCannon, 0x134
.equ MeteorMash, 0x135
.equ Astonish, 0x136
.equ WeatherBall, 0x137
.equ Aromatherapy, 0x138
.equ FakeTears, 0x139
.equ AirSlash, 0x13A
.equ Overheat, 0x13B
.equ PlayRough, 0x13C
.equ RockTomb, 0x13D
.equ SilverWind, 0x13E
.equ MetalSound, 0x13F
.equ Grasswhistle, 0x140
.equ Tickle, 0x141
.equ CosmicPower, 0x142
.equ WaterSpout, 0x143
.equ SignalBeam, 0x144
.equ ShadowPunch, 0x145
.equ Extrasensory, 0x146
.equ SkyUppercut, 0x147
.equ SandTomb, 0x148
.equ SheerCold, 0x149
.equ MuddyWater, 0x14A
.equ BulletSeed, 0x14B
.equ AerialAce, 0x14C
.equ IcicleSpear, 0x14D
.equ IronDefense, 0x14E
.equ Block, 0x14F
.equ Howl, 0x150
.equ DragonClaw, 0x151
.equ FrenzyPlant, 0x152
.equ BulkUp, 0x153
.equ Bounce, 0x154
.equ MudShot, 0x155
.equ PoisonTail, 0x156
.equ Covet, 0x157
.equ VoltTackle, 0x158
.equ MagicalLeaf, 0x159
.equ Scald, 0x15A
.equ CalmMind, 0x15B
.equ LeafBlade, 0x15C
.equ DragonDance, 0x15D
.equ RockBlast, 0x15E
.equ ShockWave, 0x15F
.equ WaterPulse, 0x160
.equ DoomDesire, 0x161
.equ PsychoBoost, 0x162
.equ A, 0xBB
.equ B, 0xBC
.equ C, 0xBD
.equ D, 0xBE
.equ E, 0xBF
.equ F, 0xC0
.equ G, 0xC1
.equ H, 0xC2
.equ I, 0xC3
.equ J, 0xC4
.equ K, 0xC5
.equ L, 0xC6
.equ M, 0xC7
.equ N, 0xC8
.equ O, 0xC9
.equ P, 0xCA
.equ Q, 0xCB
.equ R, 0xCC
.equ S, 0xCD
.equ T, 0xCE
.equ U, 0xCF
.equ V, 0xD0
.equ W, 0xD1
.equ X, 0xD2
.equ Y, 0xD3
.equ Z, 0xD4
.equ a, 0xD5
.equ b, 0xD6
.equ c, 0xD7
.equ d, 0xD8
.equ e, 0xD9
.equ f, 0xDA
.equ g, 0xDB
.equ h, 0xDC
.equ i, 0xDD
.equ j, 0xDE
.equ k, 0xDF
.equ l, 0xE0
.equ m, 0xE1
.equ n, 0xE2
.equ o, 0xE3
.equ p, 0xE4
.equ q, 0xE5
.equ r, 0xE6
.equ s, 0xE7
.equ t, 0xE8
.equ u, 0xE9
.equ v, 0xEA
.equ w, 0xEB
.equ x, 0xEC
.equ y, 0xED
.equ z, 0xEE
.equ Space, 0x0
.equ Exclamation, 0xAB
.equ Question, 0xAC
.equ Period, 0xAD
.equ Apostrophe, 0xB4
.equ Comma, 0xB8
.equ Colon, 0xF0
.equ NewLine, 0xFE
.equ Done, 0xFF
.equ Zero, 0xA1
.equ One, 0xA2
.equ Two, 0xA3
.equ Three, 0xA4
.equ Four, 0xA5
.equ Five, 0xA6
.equ Six, 0xA7
.equ Seven, 0xA8
.equ Eight, 0xA9
.equ Nine, 0xAA
.equ Normal, 0x0
.equ Fighting, 0x1
.equ Flying, 0x2
.equ Poison, 0x3
.equ Ground, 0x4
.equ Rock, 0x5
.equ Bug, 0x6
.equ Ghost, 0x7
.equ Steel, 0x8
.equ Fairy, 0x9
.equ Fire, 0xA
.equ Water, 0xB
.equ Grass, 0xC
.equ Electric, 0xD
.equ Psychic, 0xE
.equ Ice, 0xF
.equ Dragon, 0x10
.equ Dark, 0x11
.equ Ending, 0x081D694E
.equ ROM, 0x8 /* Put offset after the 0x8 */
Main:
PPReduce
AttackString
Pause 0x20
JumpIfStat User True SpAttack 0xC MaxStats+ROM
SetByte 0x02023FDF 0x0
PlayStatChangeAnimation User SpAttackColor Rise
SetByte StatChange 0x14
StatBuffChange User Ending
JumpIfByte True MultiStringRAM 0x2 Ending
PrintFromTable 0x83FE588
WaitMessage 0x40
Goto Ending
MaxStats:
Pause 0x20
OrByte 0x02023DCC 0x20
PrintString 0x45
WaitMessage 0x40
Goto Ending
.byte 0x0
.endm
.macro AccuracyCheck Address Argument
.byte 0x1
.word \Address
.hword \Argument
.endm
.macro AttackString
.byte 0x2
.endm
.macro PPReduce
.byte 0x3
.endm
.macro CriticalHitCalc
.byte 0x4
.endm
.macro DamageCalc2
.byte 0x5
.endm
.macro DamageCalc3
.byte 0x6
.endm
.macro DamageCalc4
.byte 0x7
.endm
.macro DamageCalc5
.byte 0x8
.endm
.macro AttackAnimation
.byte 0x9
.endm
.macro WaitAnimation
.byte 0xA
.endm
.macro GraphicalHPUpdate Target
.byte 0xB
.byte \Target
.endm
.macro DataHPUpdate Target
.byte 0xC
.byte \Target
.endm
.macro CritMessage
.byte 0xD
.endm
.macro MissMessage
.byte 0xE
.endm
.macro ResultMessage
.byte 0xF
.endm
.macro PrintString StringID
.byte 0x10
.hword \StringID
.endm
.macro PrintString2 StringID
.byte 0x11
.hword \StringID
.endm
.macro WaitMessage Time
.byte 0x12
.hword \Time
.endm
.macro PrintFromTable Table
.byte 0x13
.word \Table
.endm
.macro PrintFromTable2 Table
.byte 0x14
.word \Table
.endm
.macro SetEffectWithChanceTarget
.byte 0x15
.endm
.macro SetEffect
.byte 0x16
.endm
.macro SetEffectUser
.byte 0x17
.endm
.macro ClearStatus Target
.byte 0x18
.byte \Target
.endm
.macro FaintPokemon Byte Byte2 Word
.byte 0x19
.byte \Byte
.byte \Byte2
.word \Word
.endm
.macro Cmd1A Target
.byte 0x1A
.byte \Target
.endm
.macro Cmd1B Target
.byte 0x1B
.byte \Target
.endm
.macro JumpIfStatus Target Condition Address
.byte 0x1C
.byte \Target
.word \Condition
.word \Address
.endm
.macro JumpIfSecondaryStatus Target Status Address
.byte 0x1D
.byte \Target
.word \Status
.word \Address
.endm
.macro JumpIfAbility Target Ability Address
.byte 0x1E
.byte \Target
.byte \Ability
.word \Address
.endm
.macro JumpIfHalverMarkerSet Target Marker Address
.byte 0x1F
.byte \Target
.hword \Marker
.word \Address
.endm
.macro JumpIfStat Target Condition Stat Value Address
.byte 0x20
.byte \Target
.byte \Condition
.byte \Stat
.byte \Value
.word \Address
.endm
.macro JumpIfSpecialStatusFlag Target Flag Condition Address
.byte 0x21
.byte \Target
.word \Flag
.byte \Condition
.word \Address
.endm
.macro JumpIfType Condition Type Address
.byte 0x22
.byte \Condition
.byte \Type
.word \Address
.endm
.macro Cmd23 Target
.byte 0x23
.byte \Target
.endm
.macro Cmd24 Target
.byte 0x24
.word \Target
.endm
.macro Cmd25
.byte 0x25
.endm
.macro StoreLoopCounter Value
.byte 0x26
.byte \Value
.endm
.macro DecreaseLoop Address
.byte 0x27
.word \Address
.endm
.macro Goto Address
.byte 0x28
.word \Address
.endm
.macro JumpIfByte Condition RAM Byte Address
.byte 0x29
.byte \Condition
.word \RAM
.byte \Byte
.word \Address
.endm
.macro JumpIfHalfWord Condition RAM HWord Address
.byte 0x2A
.byte \Condition
.word \RAM
.hword \HWord
.word \Address
.endm
.macro JumpIfWord Condition RAM Word Address
.byte 0x2B
.byte \Condition
.word \RAM
.word \Word
.word \Address
.endm
.macro JumpIfArrayEqual Array1 Array2 Size Address
.byte 0x2C
.word \Array1
.word \Array2
.byte \Size
.word \Address
.endm
.macro JumpIfArrayNotEqual Array1 Array2 Size Address
.byte 0x2D
.word \Array1
.word \Array2
.byte \Size
.word \Address
.endm
.macro SetByte RAM Byte
.byte 0x2E
.word \RAM
.byte \Byte
.endm
.macro AddByte RAM Byte
.byte 0x2F
.word \RAM
.byte \Byte
.endm
.macro SubtractByte RAM Byte
.byte 0x30
.word \RAM
.byte \Byte
.endm
.macro CopyArray Array1 Array2 Size
.byte 0x31
.word \Array1
.word \Array2
.byte \Size
.endm
.macro CopyArrayWithOffset Array1 Array2 Array3 Size
.byte 0x32
.word \Array1
.word \Array2
.word \Array3
.byte \Size
.endm
.macro OrByte RAM Byte
.byte 0x33
.word \RAM
.byte \Byte
.endm
.macro OrHalfWord RAM HWord
.byte 0x34
.word \RAM
.hword \HWord
.endm
.macro OrWord RAM Word
.byte 0x35
.word \RAM
.word \Word
.endm
.macro BICByte RAM Byte
.byte 0x36
.word \RAM
.byte \Byte
.endm
.macro BICHalfWord RAM HWord
.byte 0x37
.word \RAM
.hword \HWord
.endm
.macro BICWord RAM Word
.byte 0x38
.word \RAM
.word \Word
.endm
.macro Pause Time
.byte 0x39
.hword \Time
.endm
.macro WaitState
.byte 0x3A
.endm
.macro Cmd3B
.byte 0x3B
.endm
.macro Return
.byte 0x3C
.endm
.macro End
.byte 0x3D
.endm
.macro EndWithoutCleanUp
.byte 0x3E
.endm
.macro ResetGame
.byte 0x3F
.endm
.macro Cmd40 Address
.byte 0x40
.word \Address
.endm
.macro Call Address
.byte 0x41
.word \Address
.endm
.macro JumpIfType2 Target Type Address
.byte 0x42
.byte \Target
.byte \Type
.word \Address
.endm
.macro JumpIfAbilityPresent Ability Address
.byte 0x43
.byte \Ability
.word \Address
.endm
.macro PlayAnimation Target Animation Word
.byte 0x44
.byte \Target
.byte \Animation
.word \Word
.endm
.macro PlayAnimation2 Target Animation Address
.byte 0x45
.byte \Target
.byte \Animation
.word \Address
.endm
.macro Cmd46
.byte 0x46
.endm
.macro Cmd47
.byte 0x47
.endm
.macro PlayStatChangeAnimation Target Color Sound
.byte 0x48
.byte \Target
.byte \Color
.byte \Sound
.endm
.macro Cmd49 Byte Byte2
.byte 0x49
.byte \Byte
.byte \Byte2
.endm
.macro AlternateDamageCalc
.byte 0x4A
.endm
.macro Cmd4B
.byte 0x4B
.endm
.macro Switch1 Target
.byte 0x4C
.byte \Target
.endm
.macro Switch2 Target
.byte 0x4D
.byte \Target
.endm
.macro Switch3 Target Byte
.byte 0x4E
.byte \Byte
.endm
.macro JumpIfCannotSwitch Target Address
.byte 0x4F
.byte \Target
.word \Address
.endm
.macro OpenPartyScreen Target Address
.byte 0x50
.byte \Target
.word \Address
.endm
.macro Cmd51 Byte Byte2
.byte 0x51
.byte \Byte
.byte \Byte2
.endm
.macro Cmd52 Byte
.byte 0x52
.byte \Byte
.endm
.macro Cmd53 Byte
.byte 0x53
.byte \Byte
.endm
.macro Cmd54
.byte 0x54
.endm
.macro Cmd5
.byte 0x55
.endm
.macro Cmd56
.byte 0x56
.endm
.macro Cmd57
.byte 0x57
.endm
.macro Cmd58 Byte
.byte 0x58
.byte \Byte
.endm
.macro Cmd59
.byte 0x59
.endm
.macro Cmd5C Byte
.byte 0x5C
.byte \Byte
.endm
.macro DoStruggle Byte
.byte 0x60
.byte \Byte
.endm
.macro Cmd62
.byte 0x62
.endm
.macro JumpToAttack Target
.byte 0x63
.byte \Target
.endm
.macro StatusAnimation Target
.byte 0x64
.byte \Target
.endm
.macro Cmd69
.byte 0x69
.endm
.macro Cmd73 Byte
.byte 0x73
.byte \Byte
.endm
.macro Cmd76 Byte1 Byte2
.byte 0x76
.byte \Byte1
.byte \Byte2
.endm
.macro SetProtectOrEndure
.byte 0x77
.endm
.macro DoExplosion
.byte 0x78
.endm
.macro EraseUserHP
.byte 0x79
.endm
.macro JumpWhileTargetValid Address
.byte 0x7A
.word \Address
.endm
.macro SetDamageToHPRecovery Address Target
.byte 0x7B
.word \Address
.byte \Target
.endm
.macro DoMirrorMove
.byte 0x7C
.endm
.macro SetRain
.byte 0x7D
.endm
.macro SetReflect
.byte 0x7E
.endm
.macro SetLeechSeed
.byte 0x7F
.endm
.macro ManipulateDamage Value
.byte 0x80
.byte \Value
.endm
.macro SetRest Address
.byte 0x81
.word \Address
.endm
.macro JumpIfNotFirstTurn Address
.byte 0x82
.word \Address
.endm
.macro Nop
.byte 0x83
.endm
.macro JumpIfTargetCantSleep Address
.byte 0x84
.word \Address
.endm
.macro SpitUpDamageCalc Address
.byte 0x86
.word \Address
.endm
.macro SwallowRecoveryCalc Address
.byte 0x87
.word \Address
.endm
.macro NegativeDamage
.byte 0x88
.endm
.macro StatBuffChange Target Address
.byte 0x89
.byte \Target
.word \Address
.endm
.macro ResetAllStats
.byte 0x8A
.endm
.macro SetBide
.byte 0x8B
.endm
.macro ConfuseIfAttackOver
.byte 0x8C
.endm
.macro SetLoopCounter Value
.byte 0x8D
.byte \Value
.endm
.macro Cmd8E
.byte 0x8E
.endm
.macro ForceRandomSwitch Address
.byte 0x8F
.word \Address
.endm
.macro SetConversion Address
.byte 0x90
.word \Address
.endm
.macro GiveMoney
.byte 0x91
.endm
.macro SetLightScreen
.byte 0x92
.endm
.macro Cmd93 Address
.byte 0x93
.word \Address
.endm
.macro SuperFangDamage
.byte 0x94
.endm
.macro SetSandstorm
.byte 0x95
.endm
.macro WeatherDamage
.byte 0x96
.endm
.macro TryToInfatuate Address
.byte 0x97
.word \Address
.endm
.macro SetStatus Target
.byte 0x98
.byte \Target
.endm
.macro DoMist
.byte 0x99
.endm
.macro DoTransform
.byte 0x9B
.endm
.macro SetSubstitute
.byte 0x9C
.endm
.macro DoMetronomeEffect
.byte 0x9E
.endm
.macro SetDamageToLevel
.byte 0x9F
.endm
.macro FalseSwipeDamageCalc
.byte 0xA0
.endm
.macro CounterDamageCalc Address
.byte 0xA1
.word \Address
.endm
.macro MirrorCoatDamageCalc Address
.byte 0xA2
.word \Address
.endm
.macro DoDisable Address
.byte 0xA3
.word \Address
.endm
.macro SetEncore Address
.byte 0xA4
.word \Address
.endm
.macro PainSplitDamageCalculator Address
.byte 0xA5
.word \Address
.endm
.macro SetConversion2 Address
.byte 0xA6
.word \Address
.endm
.macro SetLockOn
.byte 0xA7
.endm
.macro DoSketch Address
.byte 0xA8
.word \Address
.endm
.macro DoSleepTalk Address
.byte 0xA9
.word \Address
.endm
.macro DoDestinyBond
.byte 0xAA
.endm
.macro CmdAB
.byte 0xAB
.endm
.macro DoFlail
.byte 0xAC
.endm
.macro DoSpite Address
.byte 0xAD
.word \Address
.endm
.macro DoHealBell
.byte 0xAE
.endm
.macro DoCurse Address
.byte 0xAF
.word \Address
.endm
.macro SetSpikesLayers Address
.byte 0xB0
.word \Address
.endm
.macro DoPerishSong Address
.byte 0xB2
.word \Address
.endm
.macro RollOutDamageCalc
.byte 0xB3
.endm
.macro SwaggerCheck Target Address
.byte 0xB4
.byte \Target
.word \Address
.endm
.macro FuryCutterDamageCalc
.byte 0xB5
.endm
.macro ReturnDamageCalc
.byte 0xB6
.endm
.macro PresentDamageCalc
.byte 0xB7
.endm
.macro SetSafeguard
.byte 0xB8
.endm
.macro MagnitudeDamageCalc
.byte 0xB9
.endm
.macro CmdBA
.byte 0xBA
.endm
.macro SetSun
.byte 0xBB
.endm
.macro DoBellyDrum Address
.byte 0xBC
.word \Address
.endm
.macro DoPsychUp Address
.byte 0xBD
.word \Address
.endm
.macro BreakFree
.byte 0xBE
.endm
.macro SetDefenseCurl
.byte 0xBF
.endm
.macro RecoverBasedOnWeather Address
.byte 0xC0
.word \Address
.endm
.macro HiddenPowerDamageCalc
.byte 0xC1
.endm
.macro SelectNextTarget
.byte 0xC2
.endm
.macro DoFutureSight Address
.byte 0xC3
.word \Address
.endm
.macro BeatUpDamageCalc
.byte 0xC4
.endm
.macro HideAttacker
.byte 0xC5
.endm
.macro UnhideAttacker
.byte 0xC6
.endm
.macro SetMinimize
.byte 0xC7
.endm
.macro SetHail
.byte 0xC8
.endm
.macro DoMemento Address
.byte 0xC9
.word \Address
.endm
.macro SetCharge
.byte 0xCB
.endm
.macro CallTerrainAttack
.byte 0xCC
.endm
.macro CureBurnPoisonParalysis Address
.byte 0xCD
.word \Address
.endm
.macro SetTorment Address
.byte 0xCE
.word \Address
.endm
.macro JumpIfNotDamaged Address
.byte 0xCF
.word \Address
.endm
.macro CurePrimaryStatus Target Address
.byte 0xD0
.byte \Target
.word \Address
.endm
.macro DoTrick Address
.byte 0xD2
.word \Address
.endm
.macro DoRolePlay Address
.byte 0xD3
.word \Address
.endm
.macro DoWish Byte Address
.byte 0xD4
.byte \Byte
.word \Address
.endm
.macro SetIngrain Address
.byte 0xD5
.word \Address
.endm
.macro DoubleDamageIfHurt
.byte 0xD6
.endm
.macro SetYawn Address
.byte 0xD7
.word \Address
.endm
.macro EruptionPowerCalc
.byte 0xD9
.endm
.macro DoSkillSwap Address
.byte 0xDA
.word \Address
.endm
.macro SetGrudge Address
.byte 0xDC
.word \Address
.endm
.macro DoAssist Address
.byte 0xDE
.word \Address
.endm
.macro LowKickDamageCalc
.byte 0xDD
.endm
.macro SetMagicCoat Address
.byte 0xDF
.word \Address
.endm
.macro SetSnatch Address
.byte 0xE0
.word \Address
.endm
.macro CmdE2 Byte
.byte 0xE2
.byte \Byte
.endm
.macro JumpIfFainted Target Address
.byte 0xE3
.byte \Target
.word \Address
.endm
.macro DoSecretPower
.byte 0xE4
.endm
.macro PickUpItemCalc
.byte 0xE5
.endm
.macro CastformChange
.byte 0xE7
.endm
.macro DoWaterOrMudSport Address
.byte 0xE8
.word \Address
.endm
.macro ChangeTypeToWeather
.byte 0xE9
.endm
.macro DoRecycle Address
.byte 0xEA
.word \Address
.endm
.macro DoCamouflage Address
.byte 0xEB
.word \Address
.endm
.macro BreakScreens
.byte 0xEE
.endm
.macro CatchPokemon
.byte 0xEF
.endm
.macro ShowPokeDex
.byte 0xF2
.endm
.macro NickNamePokemon
.byte 0xF3
.endm
.macro SubtractHP
.byte 0xF4
.endm
.macro RemoveStatus
.byte 0xF5
.endm
.macro CallASM Address
.byte 0xF8
.word \Address
.endm
.macro SetWord RAM Address
.byte 0xF9
.word \RAM
.word \Address
.endm
.equ True, 0x0
.equ False, 0x1
.equ On, 0x0
.equ Off, 0x1
.equ User, 0x1
.equ Target, 0x0
.equ Field, 0x7
.equ Equals, 0x0
.equ NotEqual, 0x1
.equ LessThan, 0x2
.equ MoreThan, 0x3
.equ BitInCommon, 0x4
.equ NoBitInCommon, 0x5
.equ CurrentMove, 0x02023D4A
.equ PreviousMove, 0x02023D4C
.equ DamageMultiplier, 0x02023FD2
.equ MoveEffect, 0x02023E85
.equ LoopRAM, 0x02023D72
.equ StringRAM, 0x0203C020
.equ DefenderRAM, 0x02023D6C
.equ AttackerRAM, 0x02023D6B
.equ StatChange, 0x02023FDE
.equ WeatherRAM, 0x02023F1C
.equ DamageRAM, 0x02023D50
.equ TerrainRAM, 0x02022B50
.equ KnockedOffItem, 0x02023D68
.equ CriticalHitRAM, 0x02023D71
.equ AttackOutcome, 0x02023DCC
.equ HitMarker, 0x02023DD0
.equ MultiStringRAM, 0x02023E87
.equ PayDayAmount, 0x02023E7E
.equ LastBankRAM, 0x02023FDB
.equ BSCursor, 0x02023D74
.equ ActiveSideNumber, 0x02023BCC
.equ DP08Pointer, 0x02023FE8
.equ WeatherTurns, 0x02023F48
.equ BattleType, 0x02022B4C
.equ TableOffsetRAM, 0x02026C2C
.equ FreeRAM, 0x02026C30
.equ BattleOutcomeA, 0x02022AB8
.equ Defender, 0x02023D6C
.equ Attacker, 0x02023D6B
.equ Sleep, 0x7
.equ Poisoned, 0x8
.equ Burn, 0x10
.equ Freeze, 0x20
.equ Paralyze, 0x40
.equ BadPoison, 0x80
.equ MajorStatus, 0xFF
.equ Confused, 0x7
.equ NoSleep, 0x70
.equ Trapped, 0x400E000
.equ InLove, 0xF0000
.equ RechargeUp, 0x400000
.equ SubActive, 0x1000000
.equ DBondUp, 0x2000000
.equ NMareUp, 0x8000000
.equ CurseUp, 0x10000000
.equ DCurlUp, 0x40000000
.equ TormentUp, 0x80000000
.equ TwoTurn, 0x1000
.equ LSeedUp, 0x4
.equ LockOnUp, 0x10
.equ PanicModeUp, 0x20
.equ SInvulnerable, 0x400C0
.equ ChargeUp, 0x200
.equ IngrainUp, 0x400
.equ Flying, 0x40
.equ Digging, 0x80
.equ GrudgeUp, 0x4000
.equ Diving, 0x40000
.equ ReflectUp, 0x1
.equ LScreenUp, 0x2
.equ SpikesUp, 0x10
.equ SGuardUp, 0x20
.equ MistUp, 0x100
.equ SetSleep, 0x1
.equ SetPoison, 0x2
.equ SetFreeze, 0x4
.equ SetBurn, 0x3
.equ SetParalysis, 0x5
.equ SetToxic, 0x6
.equ SetConfusion, 0x7
.equ SetFlinch, 0x8
.equ SetTriAttack, 0x9
.equ SetUproar, 0x4A
.equ SetPayDay, 0xB
.equ SetRepeatMove, 0xC
.equ SetWrap, 0xD
.equ SetRecoil1, 0xE
.equ RaiseAttack1, 0xF
.equ RaiseDefense1, 0x10
.equ RaiseSpeed1, 0x11
.equ RaiseSpAttack1, 0x12
.equ RaiseSpDefense1, 0x13
.equ RaiseAccuracy1, 0x14
.equ RaiseEvasion1, 0x15
.equ LowerAttack1, 0x16
.equ LowerDefense1, 0x17
.equ LowerSpeed1, 0x18
.equ LowerSpAttack1, 0x19
.equ LowerSpDefense1, 0x1A
.equ LowerAccuracy1, 0x1B
.equ LowerEvasion1, 0x1C
.equ SetRecharge, 0x1D
.equ SetRage, 0x1E
.equ SetThief, 0x1F
.equ SetTrap, 0x20
.equ SetNightmare, 0x21
.equ SetAllStatsRaise, 0x22
.equ SetRapidSpin, 0x23
.equ SetSmellingSalt, 0x24
.equ SetSuperpower, 0x25
.equ SetRecoilParalysis, 0x26
.equ RaiseAttack2, 0x27
.equ RaiseDefense2, 0x28
.equ RaiseSpeed2, 0x29
.equ RaiseSpAttack2, 0x2A
.equ RaiseSpDefense2, 0x2B
.equ RaiseAccuracy2, 0x2C
.equ RaiseEvasion2, 0x2D
.equ LowerAttack2, 0x2E
.equ LowerDefense2, 0x2F
.equ LowerSpeed2, 0x30
.equ LowerSpAttack2, 0x31
.equ LowerSpDefense2, 0x32
.equ LowerAccuracy2, 0x33
.equ LowerEvasion2, 0x34
.equ SetKnockOff, 0x36
.equ SetOverheat, 0x3A
.equ SetSkipChargePhase, 0x4C
.equ SetSmellingSalt, 0xA4
.equ QuarterRecoil, 0xCE
.equ SetRapidSpin, 0xE3
.equ ThirdRecoil, 0xE6
.equ Attack, 0x1
.equ Defense, 0x2
.equ Speed, 0x3
.equ SpAttack, 0x4
.equ SpDefense, 0x5
.equ Accuracy, 0x6
.equ Evasion, 0x7
.equ DidntHit, 0x1
.equ Weak, 0x2
.equ Resist, 0x4
.equ Immune, 0x8
.equ OHKOMove, 0x10
.equ Failed, 0x20
.equ Endured, 0x40
.equ EndureWithItem, 0x80
.equ NotCarriedOut, 0x29
.equ NotNeutralHit, 0x6
.equ Rise, 0x0
.equ Fall, 0x1
.equ Sunshine, 0x60
.equ Rainstorm, 0x7
.equ SandyWind, 0x18
.equ HailStorm, 0x80
.equ AttackColor, 0x2
.equ DefenseColor, 0x4
.equ TickleColor, 0x6
.equ SpeedColor, 0x8
.equ SpAttackColor, 0x10
.equ SpDefenseColor, 0x20
.equ AccuracyColor, 0x40
.equ EvasionColor, 0x80
.equ DragonDanceColor, 0xA
.equ CalmMindColor, 0x30
.equ QuiverDanceColor, 0x38
.equ BulkUpColor, 0x6
.equ CosmicPowerColor, 0x24
.equ Stench, 0x1
.equ Drizzle, 0x2
.equ SpeedBoost, 0x3
.equ BattleArmor, 0x4
.equ Sturdy, 0x5
.equ Damp, 0x6
.equ Limber, 0x7
.equ SandVeil, 0x8
.equ Static, 0x9
.equ VoltAbsorb, 0xA
.equ WaterAbsorb, 0xB
.equ Oblivious, 0xC
.equ CloudNine, 0xD
.equ CompoundEyes, 0xE
.equ Insomnia, 0xF
.equ ColorChange, 0x10
.equ Immunity, 0x11
.equ FlashFire, 0x12
.equ ShieldDust, 0x13
.equ OwnTempo, 0x14
.equ SuctionCups, 0x15
.equ Intimidate, 0x16
.equ ShadowTag, 0x17
.equ RoughSkin, 0x18
.equ WonderGuard, 0x19
.equ Levitate, 0x1A
.equ EffectSpore, 0x1B
.equ Synchronize, 0x1C
.equ ClearBody, 0x1D
.equ NaturalCure, 0x1E
.equ LightningRod, 0x1F
.equ SereneGrace, 0x20
.equ SwiftSwim, 0x21
.equ Chlorophyll, 0x22
.equ Illuminate, 0x23
.equ Trace, 0x24
.equ HugePower, 0x25
.equ PoisonPoint, 0x26
.equ InnerFocus, 0x27
.equ MagmaArmor, 0x28
.equ WaterVeil, 0x29
.equ MagnetPull, 0x2A
.equ FrostVeil, 0x2B
.equ RainDish, 0x2C
.equ SandStream, 0x2D
.equ Pressure, 0x2E
.equ ThickFat, 0x2F
.equ EarlyBird, 0x30
.equ FlameBody, 0x31
.equ RunAway, 0x32
.equ KeenEye, 0x33
.equ HyperCutter, 0x34
.equ PickUp, 0x35
.equ Truant, 0x36
.equ Hustle, 0x37
.equ CuteCharm, 0x38
.equ Plus, 0x39
.equ Minus, 0x3A
.equ Forecast, 0x3B
.equ StickyHold, 0x3C
.equ ShedSkin, 0x3D
.equ Guts, 0x3E
.equ MarvelScale, 0x3F
.equ LiquidOoze, 0x40
.equ Overgrow, 0x41
.equ Blaze, 0x42
.equ Torrent, 0x43
.equ Swarm, 0x44
.equ RockHead, 0x45
.equ Drought, 0x46
.equ ArenaTrap, 0x47
.equ VitalSpirit, 0x48
.equ WhiteSmoke, 0x49
.equ PurePower, 0x4A
.equ ShellArmor, 0x4B
.equ SnowWarning, 0x4C
.equ AirLock, 0x4D
.equ QuiverDance, 0x1
.equ KarateChop, 0x2
.equ DoubleSlap, 0x3
.equ CometPunch, 0x4
.equ MegaPunch, 0x5
.equ PayDay, 0x6
.equ FirePunch, 0x7
.equ IcePunch, 0x8
.equ Thunderpunch, 0x9
.equ Scratch, 0xA
.equ ViceGrip, 0xB
.equ Guillotine, 0xC
.equ RazorWind, 0xD
.equ SwordsDance, 0xE
.equ Cut, 0xF
.equ Gust, 0x10
.equ WingAttack, 0x11
.equ Whirlwind, 0x12
.equ Fly, 0x13
.equ Bind, 0x14
.equ Slam, 0x15
.equ VineWhip, 0x16
.equ Stomp, 0x17
.equ DoubleKick, 0x18
.equ MegaKick, 0x19
.equ JumpKick, 0x1A
.equ RollingKick, 0x1B
.equ SandAttack, 0x1C
.equ Headbutt, 0x1D
.equ HornAttack, 0x1E
.equ FuryAttack, 0x1F
.equ DragonRush, 0x20
.equ Tackle, 0x21
.equ BodySlam, 0x22
.equ Wrap, 0x23
.equ TakeDown, 0x24
.equ Thrash, 0x25
.equ DoubleEdge, 0x26
.equ TailWhip, 0x27
.equ PoisonSting, 0x28
.equ Twineedle, 0x29
.equ PinMissisle, 0x2A
.equ MysticFire, 0x2B
.equ Bite, 0x2C
.equ DrillRun, 0x2D
.equ ChargeBeam, 0x2E
.equ Sing, 0x2F
.equ Supersonic, 0x30
.equ SonicBoom, 0x31
.equ Disable, 0x32
.equ Acid, 0x33
.equ Ember, 0x34
.equ Flamethrower, 0x35
.equ Mist, 0x36
.equ WaterGun, 0x37
.equ HydroPump, 0x38
.equ Surf, 0x39
.equ IceBeam, 0x3A
.equ Blizzard, 0x3B
.equ Psybeam, 0x3C
.equ BubbleBeam, 0x3D
.equ AuroraBeam, 0x3E
.equ HyperBeam, 0x3F
.equ Peck, 0x40
.equ DrillPeck, 0x41
.equ Recycle, 0x42
.equ LowKick, 0x43
.equ Counter, 0x44
.equ SeismicToss, 0x45
.equ Strength, 0x46
.equ Absorb, 0x47
.equ MegaDrain, 0x48
.equ LeechSeed, 0x49
.equ Growth, 0x4A
.equ RazorLeaf, 0x4B
.equ SolarBeam, 0x4C
.equ Poisonpowder, 0x4D
.equ StunSpore, 0x4E
.equ SleepPowder, 0x4F
.equ PetalDance, 0x50
.equ StringShot, 0x51
.equ Snatch, 0x52
.equ FireSpin, 0x53
.equ Thundershock, 0x54
.equ Thunderbolt, 0x55
.equ ThunderWave, 0x56
.equ Thunder, 0x57
.equ RockThrow, 0x58
.equ Earthquake, 0x59
.equ Fissure, 0x5A
.equ Dig, 0x5B
.equ Toxic, 0x5C
.equ Confusion, 0x5D
.equ Psychic, 0x5E
.equ Hypnosis, 0x5F
.equ FlashCannon, 0x60
.equ Agility, 0x61
.equ QuickAttack, 0x62
.equ Rage, 0x63
.equ Teleport, 0x64
.equ NightShade, 0x65
.equ MegaWhip, 0x66
.equ Screech, 0x67
.equ DoubleTeam, 0x68
.equ Recover, 0x69
.equ Harden, 0x6A
.equ Minimize, 0x6B
.equ Smokescreen, 0x6C
.equ ConfuseRay, 0x6D
.equ Withdraw, 0x6E
.equ DefenseCurl, 0x6F
.equ Barrier, 0x70
.equ LightScreen, 0x71
.equ Haze, 0x72
.equ Reflect, 0x73
.equ IceBurn, 0x74
.equ OminousWind, 0x75
.equ Metronome, 0x76
.equ MirrorMove, 0x77
.equ PowerGem, 0x78
.equ EggBomb, 0x79
.equ Lick, 0x7A
.equ Smog, 0x7B
.equ Sludge, 0x7C
.equ BoneClub, 0x7D
.equ FireBlast, 0x7E
.equ Waterfall, 0x7F
.equ Clamp, 0x80
.equ Swift, 0x81
.equ SkullBash, 0x82
.equ SpikeCannon, 0x83
.equ Constrict, 0x84
.equ Amnesia, 0x85
.equ Kinesis, 0x86
.equ SoftBoiled, 0x87
.equ HiJumpKick, 0x88
.equ Glare, 0x89
.equ DreamEater, 0x8A
.equ PoisonGas, 0x8B
.equ Barrage, 0x8C
.equ LeechLife, 0x8D
.equ LovelyKiss, 0x8E
.equ SkyAttack, 0x8F
.equ Transform, 0x90
.equ Bubble, 0x91
.equ DizzyPunch, 0x92
.equ Spore, 0x93
.equ SwitchMove, 0x94
.equ SkillSwap, 0x95
.equ PoisonJab, 0x96
.equ AcidArmor, 0x97
.equ Crabhammer, 0x98
.equ SeedBomb, 0x99
.equ FurySwipes, 0x9A
.equ Bonemerang, 0x9B
.equ Rest, 0x9C
.equ RockSlide, 0x9D
.equ HyperFang, 0x9E
.equ Sharpen, 0x9F
.equ Conversion, 0xA0
.equ TriAttack, 0xA1
.equ BeakBlast, 0xA2
.equ Slash, 0xA3
.equ Substitute, 0xA4
.equ Struggle, 0xA5
.equ Sketch, 0xA6
.equ TripleKick, 0xA7
.equ Thief, 0xA8
.equ SpiderWeb, 0xA9
.equ MindReader, 0xAA
.equ Nightmare, 0xAB
.equ FlameWheel, 0xAC
.equ Snore, 0xAD
.equ Curse, 0xAE
.equ Flail, 0xAF
.equ Conversion2, 0xB0
.equ Aeroblast, 0xB1
.equ CottonGuard, 0xB2
.equ AuraSphere, 0xB3
.equ Spite, 0xB4
.equ PowderSnow, 0xB5
.equ Protect, 0xB6
.equ MachPunch, 0xB7
.equ ScaryFace, 0xB8
.equ FeintAttack, 0xB9
.equ SweetKiss, 0xBA
.equ BellyDrum, 0xBB
.equ SludgeBomb, 0xBC
.equ MudSlap, 0xBD
.equ Octazooka, 0xBE
.equ Spikes, 0xBF
.equ ZapCannon, 0xC0
.equ Moonblast, 0xC1
.equ DestinyBond, 0xC2
.equ PerishSong, 0xC3
.equ IcyWind, 0xC4
.equ Detect, 0xC5
.equ BoneRush, 0xC6
.equ LockOn, 0xC7
.equ Outrage, 0xC8
.equ Sandstorm, 0xC9
.equ GigaDrain, 0xCA
.equ ESP, 0xCB
.equ Charm, 0xCC
.equ Rollout, 0xCD
.equ FalseSwipe, 0xCE
.equ Swagger, 0xCF
.equ MilkDrink, 0xD0
.equ Spark, 0xD1
.equ FuryCutter, 0xD2
.equ SteelWing, 0xD3
.equ MeanLook, 0xD4
.equ Attract, 0xD5
.equ SleepTalk, 0xD6
.equ HealBell, 0xD7
.equ Return, 0xD8
.equ Present, 0xD9
.equ Roost, 0xDA
.equ Safeguard, 0xDB
.equ PainSplit, 0xDC
.equ SacredFire, 0xDD
.equ Magnitude, 0xDE
.equ DynamicPunch, 0xDF
.equ Megahorn, 0xE0
.equ Dragonbreath, 0xE1
.equ BatonPass, 0xE2
.equ Encore, 0xE3
.equ Pursuit, 0xE4
.equ RapidSpin, 0xE5
.equ SweetScent, 0xE6
.equ IronTail, 0xE7
.equ MetalClaw, 0xE8
.equ VitiumVita, 0xE9
.equ MorningSun, 0xEA
.equ Synthesis, 0xEB
.equ Moonlight, 0xEC
.equ HiddenPower, 0xED
.equ CrossChop, 0xEE
.equ Twister, 0xEF
.equ RainDance, 0xF0
.equ SunnyDay, 0xF1
.equ Crunch, 0xF2
.equ MirrorCoat, 0xF3
.equ PsychUp, 0xF4
.equ Extremespeed, 0xF5
.equ Ancientpower, 0xF6
.equ ShadowBall, 0xF7
.equ FutureSight, 0xF8
.equ RockSmash, 0xF9
.equ Whirlpool, 0xFA
.equ BeatUp, 0xFB
.equ Liquidation, 0xFC
.equ Uproar, 0xFD
.equ BugBuzz, 0xFE
.equ NobleRoar, 0xFF
.equ Boomburst, 0x100
.equ HeatWave, 0x101
.equ Hail, 0x102
.equ Torment, 0x103
.equ Flatter, 0x104
.equ WillOWisp, 0x105
.equ FlameCharge, 0x106
.equ Facade, 0x107
.equ FocusPunch, 0x108
.equ Smellingsalt, 0x109
.equ DracoMeteor, 0x10A
.equ NaturePower, 0x10B
.equ Charge, 0x10C
.equ CrossPoison, 0x10D
.equ DazzleGleam, 0x10E
.equ Trick, 0x10F
.equ EarthPower, 0x110
.equ Wish, 0x111
.equ DarkPulse, 0x112
.equ Ingrain, 0x113
.equ Superpower, 0x114
.equ MagicCoat, 0x115
.equ XScissor, 0x116
.equ Revenge, 0x117
.equ BrickBreak, 0x118
.equ Yawn, 0x119
.equ KnockOff, 0x11A
.equ FlareBlitz, 0x11B
.equ Eruption, 0x11C
.equ LightOfRuin, 0x11D
.equ DrainKiss, 0x11E
.equ Refresh, 0x11F
.equ Grudge, 0x120
.equ FairyWind, 0x121
.equ SecretPower, 0x122
.equ Dive, 0x123
.equ ArmThrust, 0x124
.equ Camouflage, 0x125
.equ TailGlow, 0x126
.equ LusterPurge, 0x127
.equ MistBall, 0x128
.equ Featherdance, 0x129
.equ TeeterDance, 0x12A
.equ BlazeKick, 0x12B
.equ ShadowClaw, 0x12C
.equ IceBall, 0x12D
.equ NeedleArm, 0x12E
.equ SlackOff, 0x12F
.equ HyperVoice, 0x130
.equ PoisonFang, 0x131
.equ CrushClaw, 0x132
.equ BlastBurn, 0x133
.equ HydroCannon, 0x134
.equ MeteorMash, 0x135
.equ Astonish, 0x136
.equ WeatherBall, 0x137
.equ Aromatherapy, 0x138
.equ FakeTears, 0x139
.equ AirSlash, 0x13A
.equ Overheat, 0x13B
.equ PlayRough, 0x13C
.equ RockTomb, 0x13D
.equ SilverWind, 0x13E
.equ MetalSound, 0x13F
.equ Grasswhistle, 0x140
.equ Tickle, 0x141
.equ CosmicPower, 0x142
.equ WaterSpout, 0x143
.equ SignalBeam, 0x144
.equ ShadowPunch, 0x145
.equ Extrasensory, 0x146
.equ SkyUppercut, 0x147
.equ SandTomb, 0x148
.equ SheerCold, 0x149
.equ MuddyWater, 0x14A
.equ BulletSeed, 0x14B
.equ AerialAce, 0x14C
.equ IcicleSpear, 0x14D
.equ IronDefense, 0x14E
.equ Block, 0x14F
.equ Howl, 0x150
.equ DragonClaw, 0x151
.equ FrenzyPlant, 0x152
.equ BulkUp, 0x153
.equ Bounce, 0x154
.equ MudShot, 0x155
.equ PoisonTail, 0x156
.equ Covet, 0x157
.equ VoltTackle, 0x158
.equ MagicalLeaf, 0x159
.equ Scald, 0x15A
.equ CalmMind, 0x15B
.equ LeafBlade, 0x15C
.equ DragonDance, 0x15D
.equ RockBlast, 0x15E
.equ ShockWave, 0x15F
.equ WaterPulse, 0x160
.equ DoomDesire, 0x161
.equ PsychoBoost, 0x162
.equ A, 0xBB
.equ B, 0xBC
.equ C, 0xBD
.equ D, 0xBE
.equ E, 0xBF
.equ F, 0xC0
.equ G, 0xC1
.equ H, 0xC2
.equ I, 0xC3
.equ J, 0xC4
.equ K, 0xC5
.equ L, 0xC6
.equ M, 0xC7
.equ N, 0xC8
.equ O, 0xC9
.equ P, 0xCA
.equ Q, 0xCB
.equ R, 0xCC
.equ S, 0xCD
.equ T, 0xCE
.equ U, 0xCF
.equ V, 0xD0
.equ W, 0xD1
.equ X, 0xD2
.equ Y, 0xD3
.equ Z, 0xD4
.equ a, 0xD5
.equ b, 0xD6
.equ c, 0xD7
.equ d, 0xD8
.equ e, 0xD9
.equ f, 0xDA
.equ g, 0xDB
.equ h, 0xDC
.equ i, 0xDD
.equ j, 0xDE
.equ k, 0xDF
.equ l, 0xE0
.equ m, 0xE1
.equ n, 0xE2
.equ o, 0xE3
.equ p, 0xE4
.equ q, 0xE5
.equ r, 0xE6
.equ s, 0xE7
.equ t, 0xE8
.equ u, 0xE9
.equ v, 0xEA
.equ w, 0xEB
.equ x, 0xEC
.equ y, 0xED
.equ z, 0xEE
.equ Space, 0x0
.equ Exclamation, 0xAB
.equ Question, 0xAC
.equ Period, 0xAD
.equ Apostrophe, 0xB4
.equ Comma, 0xB8
.equ Colon, 0xF0
.equ NewLine, 0xFE
.equ Done, 0xFF
.equ Zero, 0xA1
.equ One, 0xA2
.equ Two, 0xA3
.equ Three, 0xA4
.equ Four, 0xA5
.equ Five, 0xA6
.equ Six, 0xA7
.equ Seven, 0xA8
.equ Eight, 0xA9
.equ Nine, 0xAA
.equ Normal, 0x0
.equ Fighting, 0x1
.equ Flying, 0x2
.equ Poison, 0x3
.equ Ground, 0x4
.equ Rock, 0x5
.equ Bug, 0x6
.equ Ghost, 0x7
.equ Steel, 0x8
.equ Fairy, 0x9
.equ Fire, 0xA
.equ Water, 0xB
.equ Grass, 0xC
.equ Electric, 0xD
.equ Psychic, 0xE
.equ Ice, 0xF
.equ Dragon, 0x10
.equ Dark, 0x11
.equ Ending, 0x081D694E
.equ ROM, 0x8 /* Put offset after the 0x8 */
Main:
PPReduce
AttackString
Pause 0x20
JumpIfStat User True SpAttack 0xC MaxStats+ROM
SetByte 0x02023FDF 0x0
PlayStatChangeAnimation User SpAttackColor Rise
SetByte StatChange 0x14
StatBuffChange User Ending
JumpIfByte True MultiStringRAM 0x2 Ending
PrintFromTable 0x83FE588
WaitMessage 0x40
Goto Ending
MaxStats:
Pause 0x20
OrByte 0x02023DCC 0x20
PrintString 0x45
WaitMessage 0x40
Goto Ending
Last edited: