summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/battle_scripts_1.s200
-rw-r--r--data/battle_scripts_2.s8
-rw-r--r--data/data2a.s1029
-rw-r--r--data/data2b.s296
-rw-r--r--data/specials.inc4
5 files changed, 1431 insertions, 106 deletions
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index fbb0826fc..853760b4a 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -4,7 +4,7 @@
.section script_data, "aw", %progbits
-gUnknown_081D6BBC:: @ 81D6BBC
+gBattleScriptsEffectsTable:: @ 81D6BBC
.4byte MoveEffect_Hit
.4byte MoveEffect_Sleep
.4byte MoveEffect_PoisonHit
@@ -305,11 +305,11 @@ MoveEffect_Sleep: @ 81D6F81
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, SLP, BattleScript_1D6FC4
jumpifcannotsleep BattleScript_1D6FE0
- jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
+ jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -638,9 +638,9 @@ MoveEffect_Roar: @ 81D72C5
ppreduce
jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_1D988D
jumpifspecialstatusflag TARGET, 0x400, 0, BattleScript_1D93EC
- accuracycheck BattleScript_1D83D6, 65535
+ accuracycheck BattleScript_ButItFailed, 65535
accuracycheck BattleScript_1D6F77, 0
- forcerandomswitch BattleScript_1D83D6
+ forcerandomswitch BattleScript_ButItFailed
MoveEffect_MultiHit: @ 81D72ED
attackcanceler
@@ -707,7 +707,7 @@ MoveEffect_Conversion: @ 81D73B1
attackcanceler
attackstring
ppreduce
- changetypestoenemyattacktype BattleScript_1D83D6
+ changetypestoenemyattacktype BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_TypeTransform
@@ -737,13 +737,13 @@ MoveEffect_Toxic: @ 81D73F4
attackstring
ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_1D7463
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, PSN, BattleScript_1D7455
jumpifstatus TARGET, TOX, BattleScript_1D7455
- jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_1D83D6
+ jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
jumpiftype TARGET, TYPE_POISON, BattleScript_1D83E8
jumpiftype TARGET, TYPE_STEEL, BattleScript_1D83E8
- accuracycheck BattleScript_1D83D6, 0
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -810,7 +810,7 @@ MoveEffect_Ohko: @ 81D74E4
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 65535
+ accuracycheck BattleScript_ButItFailed, 65535
atk6
jumpifbyte 4, 0x2024c68, 41, BattleScript_1D6F48
koplussomethings BattleScript_1D7505
@@ -939,7 +939,7 @@ MoveEffect_FocusEnergy: @ 81D7689
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus USER, S_FOCUS_ENERGY, BattleScript_1D83D6
+ jumpifsecondarytstatus USER, S_FOCUS_ENERGY, BattleScript_ButItFailed
setincreasedcriticalchance
attackanimation
waitanimation
@@ -958,9 +958,9 @@ MoveEffect_Confuse: @ 81D76BF
attackstring
ppreduce
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifsecondarytstatus TARGET, S_CONFUSED, BattleScript_1D76FE
- accuracycheck BattleScript_1D83D6, 0
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -1041,13 +1041,13 @@ MoveEffect_Poison: @ 81D7795
attackstring
ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_1D7463
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, PSN, BattleScript_1D7455
jumpifstatus TARGET, TOX, BattleScript_1D7455
jumpiftype TARGET, TYPE_POISON, BattleScript_1D83E8
jumpiftype TARGET, TYPE_STEEL, BattleScript_1D83E8
- jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
+ jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -1062,12 +1062,12 @@ MoveEffect_Paralyze: @ 81D77F6
attackstring
ppreduce
jumpifability TARGET, ABILITY_LIMBER, BattleScript_1D7859
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D83D6
+ jumpifbyte 4, 0x2024c68, 41, BattleScript_ButItFailed
jumpifstatus TARGET, PAR, BattleScript_1D784B
- jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
+ jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -1190,9 +1190,9 @@ MoveEffect_Mimic: @ 81D7988
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 65535
- copyattack BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 65535
+ copyattack BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_LearnedMove2
@@ -1214,7 +1214,7 @@ MoveEffect_LeechSeed: @ 81D79C2
attackstring
pause 32
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_1D79D9, 0
BattleScript_1D79D9: @ 81D79D9
@@ -1240,8 +1240,8 @@ MoveEffect_Disable: @ 81D79FB
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 0
- disablelastusedattack BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 0
+ disablelastusedattack BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_MoveWasDisabled
@@ -1285,7 +1285,7 @@ MoveEffect_Encore: @ 81D7A5D
accuracycheck BattleScript_1D6F72, 0
attackstring
ppreduce
- setencore BattleScript_1D83D6
+ setencore BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_EncoreGot
@@ -1296,8 +1296,8 @@ MoveEffect_PainSplit: @ 81D7A79
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 65535
- painsplitdamagecalculator BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 65535
+ painsplitdamagecalculator BattleScript_ButItFailed
attackanimation
waitanimation
orword 0x2024c6c, 0x100
@@ -1315,7 +1315,7 @@ MoveEffect_Snore: @ 81D7AB0
jumpifstatus USER, SLP, BattleScript_1D7AC2
attackstring
ppreduce
- jump BattleScript_1D83D6
+ jump BattleScript_ButItFailed
BattleScript_1D7AC2: @ 81D7AC2
jumpifhalfword 0, 0x2024be8, 214, BattleScript_1D7AD6
@@ -1334,7 +1334,7 @@ MoveEffect_Conversion2: @ 81D7AEA
attackcanceler
attackstring
ppreduce
- settypetorandomresistance BattleScript_1D83D6
+ settypetorandomresistance BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_TypeTransform
@@ -1345,8 +1345,8 @@ MoveEffect_LockOn: @ 81D7AFF
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
setalwayshitflag
attackanimation
waitanimation
@@ -1358,8 +1358,8 @@ MoveEffect_Sketch: @ 81D7B21
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- copymovepermanently BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ copymovepermanently BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_SketchedMove
@@ -1371,7 +1371,7 @@ MoveEffect_SleepTalk: @ 81D7B40
jumpifstatus USER, SLP, BattleScript_1D7B52
attackstring
ppreduce
- jump BattleScript_1D83D6
+ jump BattleScript_ButItFailed
BattleScript_1D7B52: @ 81D7B52
printstring BATTLE_TEXT_FastAsleep
@@ -1382,7 +1382,7 @@ BattleScript_1D7B52: @ 81D7B52
orword 0x2024c6c, 0x800
selectrandommovefromusermoves BattleScript_1D7B72
pause 64
- jump BattleScript_1D83D6
+ jump BattleScript_ButItFailed
BattleScript_1D7B72: @ 81D7B72
attackanimation
@@ -1410,8 +1410,8 @@ MoveEffect_Spite: @ 81D7B99
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 0
- reducepprandom BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 0
+ reducepprandom BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_ReducedBy
@@ -1512,8 +1512,8 @@ MoveEffect_MeanLook: @ 81D7CCC
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 65534
- jumpifsecondarytstatus TARGET, S_MEAN_LOOK, BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 65534
+ jumpifsecondarytstatus TARGET, S_MEAN_LOOK, BattleScript_ButItFailed
attackanimation
waitanimation
setbyte 0x2024d21, 32
@@ -1526,10 +1526,10 @@ MoveEffect_Nightmare: @ 81D7CF4
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- jumpifsecondarytstatus TARGET, S_NIGHTMARE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifsecondarytstatus TARGET, S_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus TARGET, SLP, BattleScript_1D7D1A
- jump BattleScript_1D83D6
+ jump BattleScript_ButItFailed
BattleScript_1D7D1A: @ 81D7D1A
attackanimation
@@ -1553,7 +1553,7 @@ MoveEffect_Curse: @ 81D7D3B
ppreduce
jumpifstat USER, 2, 3, 0, BattleScript_1D7D60
jumpifstat USER, 1, 1, 12, BattleScript_1D7D60
- jumpifstat USER, 0, 2, 12, BattleScript_1D83D6
+ jumpifstat USER, 0, 2, 12, BattleScript_ButItFailed
BattleScript_1D7D60: @ 81D7D60
copyarray 0x2024c08, 0x2024c07, 1
@@ -1588,8 +1588,8 @@ BattleScript_1D7DC4: @ 81D7DC4
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- cursetarget BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ cursetarget BattleScript_ButItFailed
orword 0x2024c6c, 0x100
setbyte 0x2016002, 0
attackanimation
@@ -1640,7 +1640,7 @@ MoveEffect_PerishSong: @ 81D7E3D
attackcanceler
attackstring
ppreduce
- setperishsong BattleScript_1D83D6
+ setperishsong BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_PerishSong
@@ -1687,7 +1687,7 @@ MoveEffect_Swagger: @ 81D7EA2
accuracycheck BattleScript_1D6F72, 0
attackstring
ppreduce
- jumpifconfusedandattackmaxed 1, BattleScript_1D83D6
+ jumpifconfusedandattackmaxed 1, BattleScript_ButItFailed
attackanimation
waitanimation
setbyte 0x201601e, 33
@@ -1724,8 +1724,8 @@ MoveEffect_Attract: @ 81D7F1F
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 0
- tryinfatuatetarget BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 0
+ tryinfatuatetarget BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_FellLove
@@ -1773,10 +1773,10 @@ MoveEffect_BatonPass: @ 81D7F7C
attackcanceler
attackstring
ppreduce
- jumpifcannotswitch 129, BattleScript_1D83D6
+ jumpifcannotswitch 129, BattleScript_ButItFailed
attackanimation
waitanimation
- openpartyscreen USER, BattleScript_1D83D6
+ openpartyscreen USER, BattleScript_ButItFailed
atke2 USER
waitstateatk
atk51 USER, 2
@@ -1858,7 +1858,7 @@ MoveEffect_BellyDrum: @ 81D8038
attackcanceler
attackstring
ppreduce
- maxattackhalvehp BattleScript_1D83D6
+ maxattackhalvehp BattleScript_ButItFailed
orword 0x2024c6c, 0x100
attackanimation
waitanimation
@@ -1872,7 +1872,7 @@ MoveEffect_PsychUp: @ 81D805A
attackcanceler
attackstring
ppreduce
- copyfoestats BattleScript_1D83D6
+ copyfoestats BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_CopyStatChanges
@@ -1971,7 +1971,7 @@ MoveEffect_FutureSight: @ 81D817D
attackcanceler
attackstring
ppreduce
- setfutureattack BattleScript_1D83D6
+ setfutureattack BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable BattleTextList_4015E2
@@ -2017,9 +2017,9 @@ MoveEffect_Teleport: @ 81D8233
attackcanceler
attackstring
ppreduce
- jumpifhalfword 4, 0x20239f8, 8, BattleScript_1D83D6
+ jumpifhalfword 4, 0x20239f8, 8, BattleScript_ButItFailed
atk76 USER, 2
- jumpifbyte 0, 0x2024d1e, 1, BattleScript_1D83D6
+ jumpifbyte 0, 0x2024d1e, 1, BattleScript_ButItFailed
jumpifbyte 0, 0x2024d1e, 2, BattleScript_1D8839
attackanimation
waitanimation
@@ -2038,7 +2038,7 @@ MoveEffect_BeatUp: @ 81D826E
BattleScript_1D8281: @ 81D8281
atk25
- beatupcalculation BattleScript_1D82C4, BattleScript_1D83D6
+ beatupcalculation BattleScript_1D82C4, BattleScript_ButItFailed
printstring BATTLE_TEXT_PokeAttack
critcalc
jumpifbyte 1, 0x2024c0d, 2, BattleScript_1D829C
@@ -2156,7 +2156,7 @@ BattleScript_1D83D4: @ 81D83D4
BattleScript_1D83D5: @ 81D83D5
ppreduce
-BattleScript_1D83D6:: @ 81D83D6
+BattleScript_ButItFailed:: @ 81D83D6
pause 32
orbyte 0x2024c68, 32
resultmessage
@@ -2243,8 +2243,8 @@ MoveEffect_Torment: @ 81D8495
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 0
- settorment BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 0
+ settorment BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_TormentSubject
@@ -2257,7 +2257,7 @@ MoveEffect_Flatter: @ 81D84B1
accuracycheck BattleScript_1D6F72, 0
attackstring
ppreduce
- jumpifconfusedandattackmaxed 4, BattleScript_1D83D6
+ jumpifconfusedandattackmaxed 4, BattleScript_ButItFailed
attackanimation
waitanimation
setbyte 0x201601e, 20
@@ -2279,12 +2279,12 @@ MoveEffect_WillOWisp: @ 81D850F
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, BRN, BattleScript_1D8575
jumpiftype TARGET, TYPE_FIRE, BattleScript_1D83E8
jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_1D855B
- jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
+ jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
@@ -2309,7 +2309,7 @@ MoveEffect_Memento: @ 81D8583
jumpifbyte 0, 0x2024d24, 1, BattleScript_1D860A
attackstring
ppreduce
- jumpifattackandspecialattackcannotfall BattleScript_1D83D6
+ jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
setuserhptozero
attackanimation
waitanimation
@@ -2415,8 +2415,8 @@ MoveEffect_Taunt: @ 81D86AB
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 0
- settaunt BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 0
+ settaunt BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_TauntFell
@@ -2427,7 +2427,7 @@ MoveEffect_HelpingHand: @ 81D86C7
attackcanceler
attackstring
ppreduce
- sethelpinghand BattleScript_1D83D6
+ sethelpinghand BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_ReadyToHelp
@@ -2438,9 +2438,9 @@ MoveEffect_Trick: @ 81D86DC
attackcanceler
attackstring
ppreduce
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
- accuracycheck BattleScript_1D83D6, 0
- itemswap BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, 0
+ itemswap BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_SwitchedItems
@@ -2453,8 +2453,8 @@ MoveEffect_RolePlay: @ 81D870A
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 65535
- copyability BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 65535
+ copyability BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_CopiedObject
@@ -2465,7 +2465,7 @@ MoveEffect_Wish: @ 81D8726
attackcanceler
attackstring
ppreduce
- atkd4 0, BattleScript_1D83D6
+ atkd4 0, BattleScript_ButItFailed
attackanimation
waitanimation
jump BattleScript_EndTurn
@@ -2484,7 +2484,7 @@ MoveEffect_Ingrain: @ 81D874D
attackcanceler
attackstring
ppreduce
- setroots BattleScript_1D83D6
+ setroots BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_PlantedRoots
@@ -2510,7 +2510,7 @@ MoveEffect_Recycle: @ 81D8782
attackcanceler
attackstring
ppreduce
- recycleitem BattleScript_1D83D6
+ recycleitem BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_FoundOne
@@ -2562,11 +2562,11 @@ MoveEffect_Yawn: @ 81D87EE
ppreduce
jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_1D882F
jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_1D882F
- jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D83D6
+ jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
jumpifhalverset TARGET, 32, BattleScript_1D9037
- accuracycheck BattleScript_1D83D6, 65535
- jumpifcannotsleep BattleScript_1D83D6
- setyawn BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 65535
+ jumpifcannotsleep BattleScript_ButItFailed
+ setyawn BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_DrowsyMade
@@ -2590,7 +2590,7 @@ MoveEffect_Endeavor: @ 81D8852
attackcanceler
attackstring
ppreduce
- setdamagetohealthdifference BattleScript_1D83D6
+ setdamagetohealthdifference BattleScript_ButItFailed
copyarray 0x2024bf0, 0x2024bec, 4
accuracycheck BattleScript_1D6F77, 0
atk6
@@ -2608,8 +2608,8 @@ MoveEffect_SkillSwap: @ 81D8893
attackcanceler
attackstring
ppreduce
- accuracycheck BattleScript_1D83D6, 65535
- abilityswap BattleScript_1D83D6
+ accuracycheck BattleScript_ButItFailed, 65535
+ abilityswap BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_AbilitySwap
@@ -2620,7 +2620,7 @@ MoveEffect_Imprison: @ 81D88AF
attackcanceler
attackstring
ppreduce
- imprisoneffect BattleScript_1D83D6
+ imprisoneffect BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_SealedMove
@@ -2631,7 +2631,7 @@ MoveEffect_Refresh: @ 81D88C4
attackcanceler
attackstring
ppreduce
- cureifburnedparalysedorpoisoned BattleScript_1D83D6
+ cureifburnedparalysedorpoisoned BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_StatusNormal
@@ -2643,7 +2643,7 @@ MoveEffect_Grudge: @ 81D88DB
attackcanceler
attackstring
ppreduce
- setgrudge BattleScript_1D83D6
+ setgrudge BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_GrudgeBear
@@ -2740,7 +2740,7 @@ MoveEffect_WaterSport: @ 81D89D7
attackcanceler
attackstring
ppreduce
- settypebasedhalvers BattleScript_1D83D6
+ settypebasedhalvers BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable BattleTextList_4015D4
@@ -2767,7 +2767,7 @@ MoveEffect_Tickle: @ 81D8A0A
jumpifstat TARGET, 0, 2, 0, BattleScript_1D8A7D
BattleScript_1D8A1F: @ 81D8A1F
- accuracycheck BattleScript_1D83D6, 0
+ accuracycheck BattleScript_ButItFailed, 0
attackanimation
waitanimation
setbyte 0x20160dc, 0
@@ -2924,7 +2924,7 @@ MoveEffect_Camouflage: @ 81D8C43
attackcanceler
attackstring
ppreduce
- settypetoterrain BattleScript_1D83D6
+ settypetoterrain BattleScript_ButItFailed
attackanimation
waitanimation
printstring BATTLE_TEXT_TypeTransform
@@ -3364,7 +3364,7 @@ gUnknown_081D90B2:: @ 81D90B2
gUnknown_081D90F1:: @ 81D90F1
printstring BATTLE_TEXT_UnleashedEnergy
waitmessage 64
- jump BattleScript_1D83D6
+ jump BattleScript_ButItFailed
gUnknown_081D90FC:: @ 81D90FC
attackanimation
@@ -3385,7 +3385,7 @@ BattleScript_1D9116: @ 81D9116
atk52 TARGET
jump BattleScript_EndTurn
-gUnknown_081D9128:: @ 81D9128
+BattleScript_MistProtected:: @ 81D9128
pause 32
printstring BATTLE_TEXT_MistProtect
waitmessage 64
@@ -3531,17 +3531,17 @@ BattleScript_RapidSpinAway:: @ 81D92C0
breakfree
return
-gUnknown_081D92C2:: @ 81D92C2
+BattleScript_WrapFree:: @ 81D92C2
printstring BATTLE_TEXT_GotFreeFrom
waitmessage 64
return
-gUnknown_081D92C9:: @ 81D92C9
+BattleScript_LeechSeedFree:: @ 81D92C9
printstring BATTLE_TEXT_LeechShed
waitmessage 64
return
-gUnknown_081D92D0:: @ 81D92D0
+BattleScript_SpikesFree:: @ 81D92D0
printstring BATTLE_TEXT_SpikesBlownAway
waitmessage 64
return
@@ -4164,7 +4164,7 @@ BattleScript_1D988D: @ 81D988D
waitmessage 64
jump BattleScript_EndTurn
-gUnknown_081D989B:: @ 81D989B
+BattleScript_AbilityNoStatLoss:: @ 81D989B
pause 32
printstring BATTLE_TEXT_PreventedStatLoss
waitmessage 64
@@ -4188,7 +4188,7 @@ BattleScript_PSNPrevention:: @ 81D98BD
waitmessage 64
return
-gUnknown_081D98C9:: @ 81D98C9
+BattleScript_ObliviousPreventsAttraction:: @ 81D98C9
pause 32
printstring BATTLE_TEXT_PreventedRomance
waitmessage 64
@@ -4214,7 +4214,7 @@ gUnknown_081D98F3:: @ 81D98F3
waitmessage 64
jump BattleScript_EndTurn
-gUnknown_081D9903:: @ 81D9903
+BattleScript_AbilityNoSpecificStatLoss:: @ 81D9903
pause 32
printstring BATTLE_TEXT_PreventedLoss
waitmessage 64
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 3f0dc8af1..b10b7f96f 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -51,7 +51,7 @@ BattleScript_1D9EBC: @ 81D9EBC
atk98 1
pokemoncatchfunction
-gUnknown_081D9EC2:: @ 81D9EC2
+BattleScript_SuccessBallThrow:: @ 81D9EC2
jumpifhalfword 0, gLastUsedItem, 5, BattleScript_1D9ED0
atk60 11
@@ -76,12 +76,12 @@ BattleScript_1D9EF8: @ 81D9EF8
setbyte gBattleOutcome, 7
activesidesomething
-gUnknown_081D9F00:: @ 81D9F00
+BattleScript_WallyBallThrow:: @ 81D9F00
printstring BATTLE_TEXT_BallCaught2
setbyte gBattleOutcome, 7
activesidesomething
-gUnknown_081D9F0A:: @ 81D9F0A
+BattleScript_ShakeBallThrow:: @ 81D9F0A
printfromtable BattleTextList_4015E6
waitmessage 64
jumpifbyte 5, gBattleTypeFlags, 128, BattleScript_1D9F34
@@ -93,7 +93,7 @@ gUnknown_081D9F0A:: @ 81D9F0A
BattleScript_1D9F34: @ 81D9F34
atkf6
-gUnknown_081D9F35:: @ 81D9F35
+BattleScript_TrainerBallBlock:: @ 81D9F35
waitmessage 64
printstring BATTLE_TEXT_BlockBall
waitmessage 64
diff --git a/data/data2a.s b/data/data2a.s
new file mode 100644
index 000000000..db2158fc7
--- /dev/null
+++ b/data/data2a.s
@@ -0,0 +1,1029 @@
+@ the second big chunk of data
+
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImageTable_81E7A10:: @ 81E7A10
+ obj_frame_tiles 0x2008000, 0x800
+ obj_frame_tiles 0x2008800, 0x800
+ obj_frame_tiles 0x2009000, 0x800
+ obj_frame_tiles 0x2009800, 0x800
+
+ .align 2
+gSpriteImageTable_81E7A30:: @ 81E7A30
+ obj_frame_tiles 0x200A000, 0x800
+ obj_frame_tiles 0x200A800, 0x800
+ obj_frame_tiles 0x200B000, 0x800
+ obj_frame_tiles 0x200B800, 0x800
+
+ .align 2
+gSpriteImageTable_81E7A50:: @ 81E7A50
+ obj_frame_tiles 0x200C000, 0x800
+ obj_frame_tiles 0x200C800, 0x800
+ obj_frame_tiles 0x200D000, 0x800
+ obj_frame_tiles 0x200D800, 0x800
+
+ .align 2
+gSpriteImageTable_81E7A70:: @ 81E7A70
+ obj_frame_tiles 0x200E000, 0x800
+ obj_frame_tiles 0x200E800, 0x800
+ obj_frame_tiles 0x200F000, 0x800
+ obj_frame_tiles 0x200F800, 0x800
+
+ .align 2
+gSpriteAnim_81E7A90:: @ 81E7A90
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81E7A98:: @ 81E7A98
+ obj_image_anim_frame 3, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7AA0:: @ 81E7AA0
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7AB0:: @ 81E7AB0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7AC0:: @ 81E7AC0
+ obj_rot_scal_anim_frame 0x28, 0x28, 0, 0
+ obj_rot_scal_anim_frame 0x12, 0x12, 0, 12
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7AD8:: @ 81E7AD8
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 18
+ obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7AF0:: @ 81E7AF0
+ obj_rot_scal_anim_frame 0xA0, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0xFFFC, 0x0, 0, 8
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_81E7B10:: @ 81E7B10
+ obj_rot_scal_anim_frame 0x2, 0x2, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7B20:: @ 81E7B20
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7B30:: @ 81E7B30
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 9
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7B48:: @ 81E7B48
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 63
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7B58:: @ 81E7B58
+ obj_rot_scal_anim_frame 0x0, 0x0, -3, 5
+ obj_rot_scal_anim_frame 0x0, 0x0, 3, 5
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_81E7B70:: @ 81E7B70
+ .4byte gSpriteAffineAnim_81E7AA0
+ .4byte gSpriteAffineAnim_81E7AC0
+ .4byte gSpriteAffineAnim_81E7AD8
+ .4byte gSpriteAffineAnim_81E7AF0
+ .4byte gSpriteAffineAnim_81E7B10
+ .4byte gSpriteAffineAnim_81E7B20
+ .4byte gSpriteAffineAnim_81E7B48
+ .4byte gSpriteAffineAnim_81E7B58
+ .4byte gSpriteAffineAnim_81E7B30
+
+ .align 2
+gSpriteAffineAnim_81E7B94:: @ 81E7B94
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 4, 63
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7BA4:: @ 81E7BA4
+ obj_rot_scal_anim_frame 0x0, 0x0, 3, 5
+ obj_rot_scal_anim_frame 0x0, 0x0, -3, 5
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7BBC:: @ 81E7BBC
+ obj_rot_scal_anim_frame 0x0, 0x0, -5, 20
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 20
+ obj_rot_scal_anim_frame 0x0, 0x0, 5, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81E7BDC:: @ 81E7BDC
+ obj_rot_scal_anim_frame 0x0, 0x0, 9, 110
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_81E7BEC:: @ 81E7BEC
+ .4byte gSpriteAffineAnim_81E7AA0
+ .4byte gSpriteAffineAnim_81E7AC0
+ .4byte gSpriteAffineAnim_81E7AD8
+ .4byte gSpriteAffineAnim_81E7AF0
+ .4byte gSpriteAffineAnim_81E7B10
+ .4byte gSpriteAffineAnim_81E7B20
+ .4byte gSpriteAffineAnim_81E7B94
+ .4byte gSpriteAffineAnim_81E7BA4
+ .4byte gSpriteAffineAnim_81E7BBC
+ .4byte gSpriteAffineAnim_81E7B30
+ .4byte gSpriteAffineAnim_81E7BDC
+
+ .align 2
+gSpriteAffineAnimTable_81E7C18:: @ 81E7C18
+ .4byte gSpriteAffineAnim_81E7AB0
+ .4byte gSpriteAffineAnim_81E7AC0
+ .4byte gSpriteAffineAnim_81E7AD8
+ .4byte gSpriteAffineAnim_81E7AF0
+ .4byte gSpriteAffineAnim_81E7B10
+ .4byte gSpriteAffineAnim_81E7B20
+ .4byte gSpriteAffineAnim_81E7B94
+ .4byte gSpriteAffineAnim_81E7BA4
+ .4byte gSpriteAffineAnim_81E7BBC
+ .4byte gSpriteAffineAnim_81E7B30
+ .4byte gSpriteAffineAnim_81E7BDC
+
+ .align 2
+gSpriteAnim_81E7C44:: @ 81E7C44
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81E7C4C:: @ 81E7C4C
+ obj_image_anim_frame 1, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81E7C54:: @ 81E7C54
+ obj_image_anim_frame 2, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81E7C5C:: @ 81E7C5C
+ obj_image_anim_frame 3, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_81E7C64:: @ 81E7C64
+ .4byte gSpriteAnim_81E7C44
+ .4byte gSpriteAnim_81E7C4C
+ .4byte gSpriteAnim_81E7C54
+ .4byte gSpriteAnim_81E7C5C
+
+@ 81E7C74
+ .include "data/graphics/pokemon/front_pic_coords.inc"
+
+@ 81E8354
+ .include "data/graphics/pokemon/front_pic_table.inc"
+
+@ 81E9114
+ .include "data/graphics/pokemon/back_pic_coords.inc"
+
+@ 81E97F4
+ .include "data/graphics/pokemon/back_pic_table.inc"
+
+@ 81EA5B4
+ .include "data/graphics/pokemon/palette_table.inc"
+
+@ 81EB374
+ .include "data/graphics/pokemon/shiny_palette_table.inc"
+
+ .align 2
+gSpriteAnim_81EC134:: @ 81EC134
+ obj_image_anim_frame 0, 7
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81EC13C:: @ 81EC13C
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81EC144:: @ 81EC144
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_81EC14C:: @ 81EC14C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC150:: @ 81EC150
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC154:: @ 81EC154
+ .4byte gSpriteAnim_81E7A90
+ .4byte gSpriteAnim_81EC134
+
+ .align 2
+gSpriteAnimTable_81EC15C:: @ 81EC15C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC160:: @ 81EC160
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC164:: @ 81EC164
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC168:: @ 81EC168
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC16C:: @ 81EC16C
+ .4byte gSpriteAnim_81E7A90
+ .4byte gSpriteAnim_81EC13C
+
+ .align 2
+gSpriteAnimTable_81EC174:: @ 81EC174
+ .4byte gSpriteAnim_81E7A90
+ .4byte gSpriteAnim_81EC144
+
+ .align 2
+gSpriteAnimTable_81EC17C:: @ 81EC17C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC180:: @ 81EC180
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC184:: @ 81EC184
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC188:: @ 81EC188
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC18C:: @ 81EC18C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC190:: @ 81EC190
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC194:: @ 81EC194
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC198:: @ 81EC198
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC19C:: @ 81EC19C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1A0:: @ 81EC1A0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1A4:: @ 81EC1A4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1A8:: @ 81EC1A8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1AC:: @ 81EC1AC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1B0:: @ 81EC1B0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1B4:: @ 81EC1B4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1B8:: @ 81EC1B8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1BC:: @ 81EC1BC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1C0:: @ 81EC1C0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1C4:: @ 81EC1C4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1C8:: @ 81EC1C8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1CC:: @ 81EC1CC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1D0:: @ 81EC1D0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1D4:: @ 81EC1D4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1D8:: @ 81EC1D8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1DC:: @ 81EC1DC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1E0:: @ 81EC1E0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1E4:: @ 81EC1E4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1E8:: @ 81EC1E8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1EC:: @ 81EC1EC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1F0:: @ 81EC1F0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1F4:: @ 81EC1F4
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1F8:: @ 81EC1F8
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC1FC:: @ 81EC1FC
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC200:: @ 81EC200
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC204:: @ 81EC204
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC208:: @ 81EC208
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC20C:: @ 81EC20C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC210:: @ 81EC210
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC214:: @ 81EC214
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC218:: @ 81EC218
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC21C:: @ 81EC21C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC220:: @ 81EC220
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC224:: @ 81EC224
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC228:: @ 81EC228
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC22C:: @ 81EC22C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC230:: @ 81EC230
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC234:: @ 81EC234
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC238:: @ 81EC238
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC23C:: @ 81EC23C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC240:: @ 81EC240
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC244:: @ 81EC244
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC248:: @ 81EC248
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC24C:: @ 81EC24C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC250:: @ 81EC250
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC254:: @ 81EC254
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC258:: @ 81EC258
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC25C:: @ 81EC25C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC260:: @ 81EC260
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC264:: @ 81EC264
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC268:: @ 81EC268
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC26C:: @ 81EC26C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC270:: @ 81EC270
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC274:: @ 81EC274
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC278:: @ 81EC278
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC27C:: @ 81EC27C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC280:: @ 81EC280
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC284:: @ 81EC284
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC288:: @ 81EC288
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC28C:: @ 81EC28C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC290:: @ 81EC290
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC294:: @ 81EC294
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC298:: @ 81EC298
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC29C:: @ 81EC29C
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gSpriteAnimTable_81EC2A0:: @ 81EC2A0
+ .4byte gSpriteAnim_81E7A90
+
+ .align 2
+gUnknown_081EC2A4:: @ 81EC2A4
+ .4byte gSpriteAnimTable_81EC14C
+ .4byte gSpriteAnimTable_81EC150
+ .4byte gSpriteAnimTable_81EC154
+ .4byte gSpriteAnimTable_81EC15C
+ .4byte gSpriteAnimTable_81EC160
+ .4byte gSpriteAnimTable_81EC164
+ .4byte gSpriteAnimTable_81EC168
+ .4byte gSpriteAnimTable_81EC16C
+ .4byte gSpriteAnimTable_81EC174
+ .4byte gSpriteAnimTable_81EC17C
+ .4byte gSpriteAnimTable_81EC180
+ .4byte gSpriteAnimTable_81EC184
+ .4byte gSpriteAnimTable_81EC188
+ .4byte gSpriteAnimTable_81EC18C
+ .4byte gSpriteAnimTable_81EC190
+ .4byte gSpriteAnimTable_81EC194
+ .4byte gSpriteAnimTable_81EC198
+ .4byte gSpriteAnimTable_81EC19C
+ .4byte gSpriteAnimTable_81EC1A0
+ .4byte gSpriteAnimTable_81EC1A4
+ .4byte gSpriteAnimTable_81EC1A8
+ .4byte gSpriteAnimTable_81EC1AC
+ .4byte gSpriteAnimTable_81EC1B0
+ .4byte gSpriteAnimTable_81EC1B4
+ .4byte gSpriteAnimTable_81EC1B8
+ .4byte gSpriteAnimTable_81EC1BC
+ .4byte gSpriteAnimTable_81EC1C0
+ .4byte gSpriteAnimTable_81EC1C4
+ .4byte gSpriteAnimTable_81EC1C8
+ .4byte gSpriteAnimTable_81EC1CC
+ .4byte gSpriteAnimTable_81EC1D0
+ .4byte gSpriteAnimTable_81EC1D4
+ .4byte gSpriteAnimTable_81EC1D8
+ .4byte gSpriteAnimTable_81EC1DC
+ .4byte gSpriteAnimTable_81EC1E0
+ .4byte gSpriteAnimTable_81EC1E4
+ .4byte gSpriteAnimTable_81EC1E8
+ .4byte gSpriteAnimTable_81EC1EC
+ .4byte gSpriteAnimTable_81EC1F0
+ .4byte gSpriteAnimTable_81EC1F4
+ .4byte gSpriteAnimTable_81EC1F8
+ .4byte gSpriteAnimTable_81EC1FC
+ .4byte gSpriteAnimTable_81EC200
+ .4byte gSpriteAnimTable_81EC204
+ .4byte gSpriteAnimTable_81EC208
+ .4byte gSpriteAnimTable_81EC20C
+ .4byte gSpriteAnimTable_81EC210
+ .4byte gSpriteAnimTable_81EC214
+ .4byte gSpriteAnimTable_81EC218
+ .4byte gSpriteAnimTable_81EC21C
+ .4byte gSpriteAnimTable_81EC220
+ .4byte gSpriteAnimTable_81EC224
+ .4byte gSpriteAnimTable_81EC228
+ .4byte gSpriteAnimTable_81EC22C
+ .4byte gSpriteAnimTable_81EC230
+ .4byte gSpriteAnimTable_81EC234
+ .4byte gSpriteAnimTable_81EC238
+ .4byte gSpriteAnimTable_81EC23C
+ .4byte gSpriteAnimTable_81EC240
+ .4byte gSpriteAnimTable_81EC244
+ .4byte gSpriteAnimTable_81EC248
+ .4byte gSpriteAnimTable_81EC24C
+ .4byte gSpriteAnimTable_81EC250
+ .4byte gSpriteAnimTable_81EC254
+ .4byte gSpriteAnimTable_81EC258
+ .4byte gSpriteAnimTable_81EC25C
+ .4byte gSpriteAnimTable_81EC260
+ .4byte gSpriteAnimTable_81EC264
+ .4byte gSpriteAnimTable_81EC268
+ .4byte gSpriteAnimTable_81EC26C
+ .4byte gSpriteAnimTable_81EC270
+ .4byte gSpriteAnimTable_81EC274
+ .4byte gSpriteAnimTable_81EC278
+ .4byte gSpriteAnimTable_81EC27C
+ .4byte gSpriteAnimTable_81EC280
+ .4byte gSpriteAnimTable_81EC284
+ .4byte gSpriteAnimTable_81EC288
+ .4byte gSpriteAnimTable_81EC28C
+ .4byte gSpriteAnimTable_81EC290
+ .4byte gSpriteAnimTable_81EC294
+ .4byte gSpriteAnimTable_81EC298
+ .4byte gSpriteAnimTable_81EC29C
+ .4byte gSpriteAnimTable_81EC2A0
+
+@ 81EC3F0
+ .include "data/graphics/trainers/front_pic_coords.inc"
+
+@ 81EC53C
+ .include "data/graphics/trainers/front_pic_table.inc"
+
+@ 81EC7D4
+ .include "data/graphics/trainers/front_pic_palette_table.inc"
+
+ .align 2
+gSpriteAnim_81ECA6C:: @ 81ECA6C
+ obj_image_anim_frame 0, 24
+ obj_image_anim_frame 1, 9
+ obj_image_anim_frame 2, 24
+ obj_image_anim_frame 0, 9
+ obj_image_anim_frame 3, 50
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81ECA84:: @ 81ECA84
+ obj_image_anim_frame 0, 24
+ obj_image_anim_frame 1, 9
+ obj_image_anim_frame 2, 24
+ obj_image_anim_frame 0, 9
+ obj_image_anim_frame 3, 50
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81ECA9C:: @ 81ECA9C
+ obj_image_anim_frame 0, 24
+ obj_image_anim_frame 1, 9
+ obj_image_anim_frame 2, 24
+ obj_image_anim_frame 0, 9
+ obj_image_anim_frame 3, 50
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_81ECAB4:: @ 81ECAB4
+ .4byte gSpriteAnim_81E7A98
+ .4byte gSpriteAnim_81ECA6C
+
+ .align 2
+gSpriteAnimTable_81ECABC:: @ 81ECABC
+ .4byte gSpriteAnim_81E7A98
+ .4byte gSpriteAnim_81ECA84
+
+ .align 2
+gSpriteAnimTable_81ECAC4:: @ 81ECAC4
+ .4byte gSpriteAnim_81E7A98
+ .4byte gSpriteAnim_81ECA9C
+
+ .align 2
+gUnknown_081ECACC:: @ 81ECACC
+ .4byte gSpriteAnimTable_81ECAB4
+ .4byte gSpriteAnimTable_81ECABC
+ .4byte gSpriteAnimTable_81ECAC4
+
+@ 81ECAD8
+ .include "data/graphics/trainers/back_pic_coords.inc"
+
+@ 81ECAE4
+ .include "data/graphics/trainers/back_pic_table.inc"
+
+@ 81ECAFC
+ .include "data/graphics/trainers/back_pic_palette_table.inc"
+
+@ 81ECB14
+ .include "data/enemy_mon_elevation.inc"
+
+@ 81ECCB0
+ .include "data/trainer_parties.inc"
+
+@ 81F0208
+ .include "data/text/trainer_class_names.inc"
+
+@ 81F04FC
+ .include "data/trainers.inc"
+
+@ 81F716C
+ .include "data/text/species_names.inc"
+
+@ 81F8320
+ .include "data/text/move_names.inc"
+
+ .align 2
+@ 81F9528
+ .4byte 0x101 @ unknown data
+
+ .align 2
+gOamData_81F952C:: @ 81F952C
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_81F9534:: @ 81F9534
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0040
+
+ .align 2
+gSpriteAffineAnim_81F953C:: @ 81F953C
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81F954C:: @ 81F954C
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
+ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_81F956C:: @ 81F956C
+ .4byte gSpriteAffineAnim_81F953C
+ .4byte gSpriteAffineAnim_81F954C
+
+ .align 2
+gSpriteTemplate_81F9574:: @ 81F9574
+ spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
+
+ .align 2
+gSpriteTemplate_81F958C:: @ 81F958C
+ spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
+
+ .align 2
+gUnknown_081F95A4:: @ 81F95A4
+ obj_tiles gUnknown_08E5DC2C, 4096, 0x2710
+
+ .align 2
+gBattleTerrainTable:: @ 81F95AC
+ @ tall_grass
+ .4byte gBattleTerrainTiles_TallGrass
+ .4byte gBattleTerrainTilemap_TallGrass
+ .4byte gBattleTerrainAnimTiles_TallGrass
+ .4byte gBattleTerrainAnimTilemap_TallGrass
+ .4byte gBattleTerrainPalette_TallGrass
+
+ @ long_grass
+ .4byte gBattleTerrainTiles_LongGrass
+ .4byte gBattleTerrainTilemap_LongGrass
+ .4byte gBattleTerrainAnimTiles_LongGrass
+ .4byte gBattleTerrainAnimTilemap_LongGrass
+ .4byte gBattleTerrainPalette_LongGrass
+
+ @ sand
+ .4byte gBattleTerrainTiles_Sand
+ .4byte gBattleTerrainTilemap_Sand
+ .4byte gBattleTerrainAnimTiles_Sand
+ .4byte gBattleTerrainAnimTilemap_Sand
+ .4byte gBattleTerrainPalette_Sand
+
+ @ underwater
+ .4byte gBattleTerrainTiles_Underwater
+ .4byte gBattleTerrainTilemap_Underwater
+ .4byte gBattleTerrainAnimTiles_Underwater
+ .4byte gBattleTerrainAnimTilemap_Underwater
+ .4byte gBattleTerrainPalette_Underwater
+
+ @ water
+ .4byte gBattleTerrainTiles_Water
+ .4byte gBattleTerrainTilemap_Water
+ .4byte gBattleTerrainAnimTiles_Water
+ .4byte gBattleTerrainAnimTilemap_Water
+ .4byte gBattleTerrainPalette_Water
+
+ @ pond_water
+ .4byte gBattleTerrainTiles_PondWater
+ .4byte gBattleTerrainTilemap_PondWater
+ .4byte gBattleTerrainAnimTiles_PondWater
+ .4byte gBattleTerrainAnimTilemap_PondWater
+ .4byte gBattleTerrainPalette_PondWater
+
+ @ rock
+ .4byte gBattleTerrainTiles_Rock
+ .4byte gBattleTerrainTilemap_Rock
+ .4byte gBattleTerrainAnimTiles_Rock
+ .4byte gBattleTerrainAnimTilemap_Rock
+ .4byte gBattleTerrainPalette_Rock
+
+ @ cave
+ .4byte gBattleTerrainTiles_Cave
+ .4byte gBattleTerrainTilemap_Cave
+ .4byte gBattleTerrainAnimTiles_Cave
+ .4byte gBattleTerrainAnimTilemap_Cave
+ .4byte gBattleTerrainPalette_Cave
+
+ @ building
+ .4byte gBattleTerrainTiles_Building
+ .4byte gBattleTerrainTilemap_Building
+ .4byte gBattleTerrainAnimTiles_Building
+ .4byte gBattleTerrainAnimTilemap_Building
+ .4byte gBattleTerrainPalette_Building
+
+ @ plain
+ .4byte gBattleTerrainTiles_Building
+ .4byte gBattleTerrainTilemap_Building
+ .4byte gBattleTerrainAnimTiles_Building
+ .4byte gBattleTerrainAnimTilemap_Building
+ .4byte gBattleTerrainPalette_Plain
+
+ .align 2
+gUnknown_081F9674:: @ 81F9674
+ .4byte REG_BG3HOFS
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+
+ .align 2
+gUnknown_081F9680:: @ 81F9680
+ .4byte gUnknown_030041D0
+ .2byte 0x20
+ .byte 0x13
+ .byte 0x10
+ .4byte BG_VRAM + 0xE104
+
+ .4byte gUnknown_03004250
+ .2byte 0x40
+ .byte 0x13
+ .byte 0x10
+ .4byte BG_VRAM + 0xF104
+
+ .4byte gUnknown_030041D0
+ .2byte 0x60
+ .byte 0x13
+ .byte 0x30
+ .4byte BG_VRAM + 0xE204
+
+ .4byte gUnknown_03004250
+ .2byte 0x80
+ .byte 0x13
+ .byte 0x30
+ .4byte BG_VRAM + 0xF204
+
+ .4byte gUnknown_030041D0
+ .2byte 0x20
+ .byte 0x13
+ .byte 0x18
+ .4byte BG_VRAM + 0xE1C4
+
+ .4byte gUnknown_03004250
+ .2byte 0x40
+ .byte 0x13
+ .byte 0x18
+ .4byte BG_VRAM + 0xF1C4
+
+gUnknown_081F96C8:: @ 81F96C8
+ .string "ヌケニン$" @ "Nukenin" (Shedinja)
+
+ .align 2
+gSpriteTemplate_81F96D0:: @ 81F96D0
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828
+
+ .align 2
+gOamData_81F96E8:: @ 81F96E8
+ .2byte 0x0100
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_81F96F0:: @ 81F96F0
+ .2byte 0x0100
+ .2byte 0xC000
+ .2byte 0x2800
+
+ .align 2
+gSpriteAnim_81F96F8:: @ 81F96F8
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_81F9700:: @ 81F9700
+ .4byte gSpriteAnim_81F96F8
+
+ .align 2
+gSpriteAffineAnim_81F9704:: @ 81F9704
+ obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 60
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_81F971C:: @ 81F971C
+ .4byte gSpriteAffineAnim_81F9704
+
+@ 81F9720
+ .include "data/type_effectiveness.inc"
+
+@ 81F9870
+ .include "data/text/type_names.inc"
+
+@ 81F98F0
+ .include "data/trainer_money.inc"
+
+@ 81F99CC
+ .include "data/text/ability_descriptions.inc"
+
+@ 81FA248
+ .include "data/text/ability_names.inc"
+
+ .align 2
+gUnknown_081FA640:: @ 81FA640
+ .4byte sub_8013FE8
+ .4byte sub_80147A0
+ .4byte sub_80146F4
+ .4byte sub_8014BF4
+ .4byte sub_8014D50
+ .4byte sub_8014D98
+ .4byte sub_8014DF8
+ .4byte sub_8014EBC
+ .4byte bs8_exit_by_flight
+ .4byte sub_8014FBC
+ .4byte sub_801B594
+ .4byte bsB_exit_by_move
+ .4byte bsC_8016D70
+ .4byte sub_8015060
+
+ .align 2
+gUnknown_081FA678:: @ 81FA678
+ .4byte bc_8013B1C
+ .4byte sub_8013998
+ .4byte sub_8013B64
+ .4byte sub_8013B64
+ .4byte sub_8013BDC
+ .4byte sub_8013C9C
+ .4byte sub_8013C48
+ .4byte sub_8013C9C
+ .4byte sub_8013C9C
+
+gStatusConditionString_PoisonJpn:: @ 81FA69C
+ .string "どく$$$$$$"
+
+gStatusConditionString_SleepJpn:: @ 81FA6A4
+ .string "ねむり$$$$$"
+
+gStatusConditionString_ParalysisJpn:: @ 81FA6AC
+ .string "まひ$$$$$$"
+
+gStatusConditionString_BurnJpn:: @ 81FA6B4
+ .string "やけど$$$$$"
+
+gStatusConditionString_IceJpn:: @ 81FA6BC
+ .string "こおり$$$$$"
+
+gStatusConditionString_ConfusionJpn:: @ 81FA6C4
+ .string "こんらん$$$$"
+
+gStatusConditionString_LoveJpn:: @ 81FA6CC
+ .string "メロメロ$$$$"
+
+ .align 2
+gUnknown_081FA6D4:: @ 81FA6D4
+ .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus
+ .4byte gStatusConditionString_SleepJpn, BattleText_Sleep
+ .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis
+ .4byte gStatusConditionString_BurnJpn, BattleText_Burn
+ .4byte gStatusConditionString_IceJpn, BattleText_IceStatus
+ .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion
+ .4byte gStatusConditionString_LoveJpn, BattleText_Love
+
+gUnknown_081FA70C:: @ 81FA70C
+ .byte 0, 0, 0
+ .byte 3, 5, 0
+ .byte 2, 3, 0
+ .byte 1, 2, 0
+ .byte 1, 1, 0
+
+gUnknown_081FA71B:: @ 81FA71B
+ .byte 4, 3, 2, 1
+
+gUnknown_081FA71F:: @ 81FA71F
+ .byte 4, 4, 4, 4
+
+ .align 1
+gUnknown_081FA724:: @ 81FA724
+ .2byte 0x2D
+ .2byte 0x2E
+ .2byte 0x2F
+ .2byte 0x30
+ .2byte 0x67
+ .2byte 0xAD
+ .2byte 0xFD
+ .2byte 0x13F
+ .2byte 0x140
+ .2byte 0x130
+ .2byte 0xFFFF
diff --git a/data/data2b.s b/data/data2b.s
new file mode 100644
index 000000000..ef16eaa25
--- /dev/null
+++ b/data/data2b.s
@@ -0,0 +1,296 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .string "ターン$" @ "turn"
+
+ .align 2
+gPlayerBufferCommands:: @ 81FAD98
+ .4byte PlayerHandleGetAttributes
+ .4byte sub_802ECF0
+ .4byte PlayerHandleSetAttributes
+ .4byte sub_802F7CC
+ .4byte PlayerHandleLoadPokeSprite
+ .4byte PlayerHandleSendOutPoke
+ .4byte PlayerHandleReturnPokeToBall
+ .4byte PlayerHandleTrainerThrow
+ .4byte PlayerHandleTrainerSlide
+ .4byte PlayerHandleTrainerSlideBack
+ .4byte sub_802FE7C
+ .4byte sub_802FF60
+ .4byte sub_802FF80
+ .4byte PlayerHandleBallThrow
+ .4byte PlayerHandlePuase
+ .4byte PlayerHandleMoveAnimation
+ .4byte PlayerHandlePrintString
+ .4byte PlayerHandlePrintStringPlayerOnly
+ .4byte sub_803037C
+ .4byte nullsub_42
+ .4byte sub_8030468
+ .4byte PlayerHandleOpenBag
+ .4byte sub_8030594
+ .4byte sub_8030674
+ .4byte PlayerHandleHealthBarUpdate
+ .4byte PlayerHandleExpBarUpdate
+ .4byte PlayerHandleStatusIconUpdate
+ .4byte PlayerHandleStatusAnimation
+ .4byte PlayerHandleStatusXor
+ .4byte sub_803097C
+ .4byte PlayerHandleDMATransfer
+ .4byte sub_8030A3C
+ .4byte sub_8030A6C
+ .4byte sub_8030A78
+ .4byte sub_8030A8C
+ .4byte sub_8030AA0
+ .4byte sub_8030AB4
+ .4byte sub_8030AC8
+ .4byte sub_8030AE4
+ .4byte sub_8030B1C
+ .4byte sub_8030B34
+ .4byte PlayerHandleHitAnimation
+ .4byte sub_8030BCC
+ .4byte PlayerHandleEffectivenessSound
+ .4byte sub_8030C1C
+ .4byte PlayerHandleFaintingCry
+ .4byte PlayerHandleIntroSlide
+ .4byte PlayerHandleTrainerBallThrow
+ .4byte sub_8030FAC
+ .4byte sub_80310A4
+ .4byte sub_80310F0
+ .4byte PlayerHandleSpriteInvisibility
+ .4byte PlayerHandleBattleAnimation
+ .4byte PlayerHandleLinkStandbyMsg
+ .4byte PlayerHandleResetActionMoveSelection
+ .4byte sub_80312A0
+ .4byte nullsub_43
+
+gUnknown_081FAE7C:: @ 81FAE7C
+ .byte 0, 2, 3, 1
+
+gUnknown_081FAE80:: @ 81FAE80
+ .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}$"
+
+gUnknown_081FAE89:: @ 81FAE89
+ .byte 8, 120
+ .byte 88, 120
+ .byte 8, 136
+ .byte 88, 136
+
+gUnknown_081FAE91:: @ 81FAE91
+ .byte 144, 120
+ .byte 190, 120
+ .byte 144, 136
+ .byte 190, 136
+ .byte 72, 72
+ .byte 32, 90
+ .byte 80, 80
+ .byte 80, 88
+
+ .align 2
+gUnknown_081FAEA4:: @ 81FAEA4
+ obj_tiles gSmokescreenImpactTiles, 0x180, 55019
+
+ .align 2
+gUnknown_081FAEAC:: @ 81FAEAC
+ obj_pal gSmokescreenImpactPalette, 55019
+
+ .align 2
+gOamData_81FAEB4:: @ 81FAEB4
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_81FAEBC:: @ 81FAEBC
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81FAECC:: @ 81FAECC
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81FAEDC:: @ 81FAEDC
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_81FAEEC:: @ 81FAEEC
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_81FAEFC:: @ 81FAEFC
+ .4byte gSpriteAnim_81FAEBC
+ .4byte gSpriteAnim_81FAECC
+ .4byte gSpriteAnim_81FAEDC
+ .4byte gSpriteAnim_81FAEEC
+
+ .align 2
+gSpriteTemplate_81FAF0C:: @ 81FAF0C
+ spr_template 55019, 55019, gOamData_81FAEB4, gSpriteAnimTable_81FAEFC, NULL, gDummySpriteAffineAnimTable, sub_80463CC
+
+ .align 2
+gUnknown_081FAF24:: @ 81FAF24
+ obj_tiles gEnemyMonShadow_Gfx, 128, 0xD759
+
+ .align 2
+gOamData_81FAF2C:: @ 81FAF2C
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0C00
+
+ .align 2
+gSpriteTemplate_81FAF34:: @ 81FAF34
+ spr_template 55129, 55039, gOamData_81FAF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8032978
+
+ .align 2
+gUnknown_081FAF4C:: @ 81FAF4C
+ .4byte 0x02008000
+ .4byte 0x0200a000
+ .4byte 0x0200c000
+ .4byte 0x0200e000
+
+ .align 2
+gOpponentBufferCommands:: @ 81FAF5C
+ .4byte OpponentHandleGetAttributes
+ .4byte dp01t_01_2_read_pokmon_data_slice
+ .4byte OpponentHandleSetAttributes
+ .4byte sub_8034744
+ .4byte OpponentHandleLoadPokeSprite
+ .4byte OpponentHandleSendOutPoke
+ .4byte OpponentHandleReturnPokeToBall
+ .4byte OpponentHandleTrainerThrow
+ .4byte OpponentHandleTrainerSlide
+ .4byte OpponentHandleTrainerSlideBack
+ .4byte sub_8035030
+ .4byte sub_80350D4
+ .4byte sub_80350E0
+ .4byte OpponentHandleBallThrow
+ .4byte OpponentHandlePause
+ .4byte OpponentHandleMoveAnimation
+ .4byte OpponentHandlePrintString
+ .4byte OpponentHandlePrintStringPlayerOnly
+ .4byte sub_803540C
+ .4byte sub_803541C
+ .4byte sub_8035428
+ .4byte sub_8035590
+ .4byte sub_80355C0
+ .4byte sub_80356C0
+ .4byte OpponentHandleHealthBarUpdate
+ .4byte OpponentHandleExpBarUpdate
+ .4byte OpponentHandleStatusIconUpdate
+ .4byte OpponentHandleStatusAnimation
+ .4byte OpponentHandleStatusXor
+ .4byte sub_80358B0
+ .4byte OpponentHandleDMATransfer
+ .4byte sub_80358C8
+ .4byte sub_80358D4
+ .4byte sub_80358E0
+ .4byte sub_80358EC
+ .4byte sub_80358F8
+ .4byte sub_8035904
+ .4byte sub_8035910
+ .4byte sub_803592C
+ .4byte sub_8035964
+ .4byte sub_803597C
+ .4byte OpponentHandleHitAnimation
+ .4byte sub_8035A14
+ .4byte OpponentHandleEffectivenessSound
+ .4byte sub_8035A64
+ .4byte OpponentHandleFaintingCry
+ .4byte dp01t_2E_7_battle_intro
+ .4byte sub_8035B04
+ .4byte dp01t_30_7_0803D67C
+ .4byte sub_8035E6C
+ .4byte sub_8035EB8
+ .4byte OpponentHandleSpriteInvisibility
+ .4byte OpponentHandleBattleAnimation
+ .4byte OpponentHandleLinkStandbyMsg
+ .4byte OpponentHandleResetActionMoveSelection
+ .4byte sub_8035FA4
+ .4byte nullsub_46
+
+@ unreferenced unknown values
+ .byte 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20
+
+ .align 2
+gLinkOpponentBufferCommands:: @ 81FB048
+ .4byte LinkOpponentHandleGetAttributes
+ .4byte sub_803889C
+ .4byte sub_80388A8
+ .4byte sub_8039220
+ .4byte sub_8039294
+ .4byte sub_80393E4
+ .4byte sub_80395B4
+ .4byte sub_80396D0
+ .4byte sub_80398A4
+ .4byte sub_80398B0
+ .4byte sub_803995C
+ .4byte sub_8039A00
+ .4byte sub_8039A0C
+ .4byte sub_8039A18
+ .4byte sub_8039A24
+ .4byte sub_8039A30
+ .4byte sub_8039CC8
+ .4byte sub_8039D2C
+ .4byte sub_8039D38
+ .4byte sub_8039D44
+ .4byte sub_8039D50
+ .4byte sub_8039D5C
+ .4byte sub_8039D68
+ .4byte sub_8039D74
+ .4byte sub_8039D80
+ .4byte sub_8039E70
+ .4byte sub_8039E7C
+ .4byte sub_8039EF0
+ .4byte sub_8039F58
+ .4byte sub_8039F64
+ .4byte sub_8039F70
+ .4byte sub_8039F7C
+ .4byte sub_8039F88
+ .4byte sub_8039F94
+ .4byte sub_8039FA0
+ .4byte sub_8039FAC
+ .4byte sub_8039FB8
+ .4byte sub_8039FC4
+ .4byte sub_8039FE0
+ .4byte sub_803A018
+ .4byte sub_803A030
+ .4byte dp01t_29_4_blink
+ .4byte sub_803A0C8
+ .4byte sub_803A0D4
+ .4byte sub_803A118
+ .4byte sub_803A148
+ .4byte dp01t_2E_4_battle_intro
+ .4byte sub_803A1B8
+ .4byte sub_803A3DC
+ .4byte sub_803A520
+ .4byte sub_803A56C
+ .4byte sub_803A578
+ .4byte bx_exec_buffer_A_ch0_tbl4
+ .4byte sub_803A640
+ .4byte sub_803A64C
+ .4byte sub_803A658
+ .4byte nullsub_48
+
+@ 81FB12C
+ .include "data/battle_moves.inc"
+
+ .align 2
+gUnknown_081FC1D0:: @ 81FC1D0
+ .2byte 0x34, 0x10, 0x101
+ .space 2
+
+ .2byte -1, -1, -1
+ .space 2
diff --git a/data/specials.inc b/data/specials.inc
index e0022bea1..f7aa3456a 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -201,8 +201,8 @@ gSpecials::
.4byte sub_80B7D0C
.4byte ExecuteWhiteOut
.4byte sp0C8_whiteout_maybe
- .4byte sub_80C8040
- .4byte sub_80C8080
+ .4byte RotatingGate_InitPuzzle
+ .4byte RotatingGate_InitPuzzleAndGraphics
.4byte SetSSTidalFlag
.4byte ResetSSTidalFlag
.4byte EnterSafariMode