summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_1.s22
-rw-r--r--asm/battle_2.s2681
-rw-r--r--asm/battle_5.s6
-rw-r--r--asm/battle_7.s84
-rw-r--r--asm/battle_anim.s6
-rw-r--r--asm/battle_anim_80A9C70.s4
-rw-r--r--asm/battle_anim_80FE840.s6
-rwxr-xr-xasm/battle_anim_815A0D4.s16
-rw-r--r--asm/battle_anim_8170478.s38
-rw-r--r--asm/battle_controller_linkopponent.s60
-rw-r--r--asm/battle_controller_linkpartner.s44
-rw-r--r--asm/battle_controller_opponent.s58
-rw-r--r--asm/battle_controller_player.s56
-rw-r--r--asm/battle_controller_player_partner.s46
-rw-r--r--asm/battle_controller_recorded_opponent.s56
-rw-r--r--asm/battle_controller_recorded_player.s52
-rw-r--r--asm/battle_controller_safari.s10
-rw-r--r--asm/battle_controller_wally.s26
-rwxr-xr-xasm/battle_frontier_2.s2
-rwxr-xr-xasm/battle_interface.s38
-rw-r--r--asm/contest.s2
-rw-r--r--asm/contest_link_80F57C4.s2
-rw-r--r--asm/contest_painting.s2
-rw-r--r--asm/evolution_scene.s6
-rw-r--r--asm/link.s2
-rwxr-xr-xasm/pokeball.s20
-rw-r--r--asm/pokeblock_feed.s2
-rw-r--r--asm/recorded_battle.s14
-rw-r--r--asm/reshow_battle_screen.s12
-rw-r--r--asm/rom_80A5C6C.s46
-rw-r--r--asm/script_pokemon_util_80F87D8.s2
-rw-r--r--asm/trade.s14
-rw-r--r--data/battle_anims.s2
-rw-r--r--data/data2b.s11
-rw-r--r--data/event_scripts.s6
-rw-r--r--include/battle.h48
-rw-r--r--include/link.h1
-rw-r--r--include/main.h1
-rw-r--r--include/pokemon.h1
-rw-r--r--include/recorded_battle.h3
-rw-r--r--include/unknown_task.h1
-rw-r--r--src/battle_2.c1107
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/egg_hatch.c6
-rw-r--r--sym_ewram.txt2
45 files changed, 1519 insertions, 3109 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 168f16cca..849736cb4 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1358,8 +1358,8 @@ _080356AA:
.pool
thumb_func_end trs_config
- thumb_func_start c2_berry_program_update_menu
-c2_berry_program_update_menu: @ 80356D0
+ thumb_func_start sub_80356D0
+sub_80356D0: @ 80356D0
push {lr}
movs r0, 0x2
bl DisableInterrupts
@@ -1381,10 +1381,10 @@ c2_berry_program_update_menu: @ 80356D0
pop {r0}
bx r0
.pool
- thumb_func_end c2_berry_program_update_menu
+ thumb_func_end sub_80356D0
- thumb_func_start sub_803570C
-sub_803570C: @ 803570C
+ thumb_func_start ApplyPlayerChosenFrameToBattleMenu
+ApplyPlayerChosenFrameToBattleMenu: @ 803570C
push {lr}
movs r0, 0x2
movs r1, 0x12
@@ -1422,7 +1422,7 @@ _0803575A:
pop {r0}
bx r0
.pool
- thumb_func_end sub_803570C
+ thumb_func_end ApplyPlayerChosenFrameToBattleMenu
thumb_func_start load_battle_oval_graphics
load_battle_oval_graphics: @ 8035770
@@ -1685,7 +1685,7 @@ LoadBattleTextboxAndBackground: @ 8035AA4
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
- bl sub_803570C
+ bl ApplyPlayerChosenFrameToBattleMenu
bl load_battle_oval_graphics
pop {r0}
bx r0
@@ -2670,8 +2670,8 @@ _080363AC:
.pool
thumb_func_end LoadBattleEntryBackground
- thumb_func_start sub_80363C4
-sub_80363C4: @ 80363C4
+ thumb_func_start LoadChosenBattleElement
+LoadChosenBattleElement: @ 80363C4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -3051,7 +3051,7 @@ _08036742:
b _08036758
.pool
_08036750:
- bl sub_803570C
+ bl ApplyPlayerChosenFrameToBattleMenu
b _08036758
_08036756:
movs r4, 0x1
@@ -3060,6 +3060,6 @@ _08036758:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80363C4
+ thumb_func_end LoadChosenBattleElement
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 0f4ec2bea..a4fa43fa2 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -5,2670 +5,7 @@
.text
- thumb_func_start BattleMainCB2
-BattleMainCB2: @ 8038420
- push {lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08038482
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08038482
- bl rfu_lacks_rfufunc
- lsls r0, 24
- cmp r0, 0
- beq _08038482
- ldr r2, =gScriptResult
- ldr r1, =gBattleOutcome
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0x5
- strh r0, [r2]
- bl ResetPaletteFadeControl
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =sub_80384E4
- bl SetMainCallback2
-_08038482:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end BattleMainCB2
-
- thumb_func_start sub_803849C
-sub_803849C: @ 803849C
- push {lr}
- ldr r1, =gMain
- ldr r0, =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, =gUnknown_02039B28
- movs r0, 0x3
- strb r0, [r2, 0x15]
- ldr r0, =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl ZeroEnemyPartyMons
- movs r0, 0x5A
- bl m4aSongNumStop
- bl sub_805F094
- bl dp11_free
- bl sub_8057028
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803849C
-
- thumb_func_start sub_80384E4
-sub_80384E4: @ 80384E4
- push {lr}
- bl UpdatePaletteFade
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08038512
- ldr r0, =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, =gMPlay_SE2
- bl m4aMPlayStop
- bl sub_803849C
- bl FreeAllWindowBuffers
- ldr r0, =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08038512:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80384E4
-
- thumb_func_start sub_8038528
-sub_8038528: @ 8038528
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, =sub_8038538
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8038528
-
- thumb_func_start sub_8038538
-sub_8038538: @ 8038538
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r5, =0x0201c000
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _0803856C
- cmp r1, 0x1
- bgt _08038554
- cmp r1, 0
- beq _0803855A
- b _080385DC
- .pool
-_08038554:
- cmp r1, 0x2
- beq _080385C8
- b _080385DC
-_0803855A:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x30]
- ldr r0, =0x00000281
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
-_0803856C:
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _080385DC
- movs r0, 0x2
- strh r0, [r3, 0x36]
- movs r4, 0x30
- ldrsh r2, [r3, r4]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r1, 5
- adds r2, r1
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- subs r0, r1
- movs r4, 0x3D
- lsls r0, 1
- adds r0, r5
- lsls r2, 1
- adds r2, r5
- movs r1, 0x1C
-_0803859A:
- strh r4, [r2]
- strh r4, [r0]
- adds r0, 0x4
- adds r2, 0x4
- subs r1, 0x2
- cmp r1, 0
- bge _0803859A
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080385DC
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0x20
- strh r0, [r3, 0x30]
- b _080385DC
- .pool
-_080385C8:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080385DC
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
-_080385DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038538
- thumb_func_start CreateNPCTrainerParty
-CreateNPCTrainerParty: @ 80385E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08038610
- movs r0, 0
- b _080389E2
-_08038610:
- ldr r4, =gBattleTypeFlags
- ldr r0, [r4]
- ldr r1, =0x043f0908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _08038624
- b _080389D2
-_08038624:
- cmp r2, 0x1
- bne _0803862C
- bl ZeroEnemyPartyMons
-_0803862C:
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _08038668
- ldr r0, =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r0
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r1, [r2]
- movs r4, 0x3
- str r4, [sp, 0x1C]
- adds r4, r0, 0
- cmp r1, 0x3
- bhi _0803867C
- adds r2, r1, 0
- str r2, [sp, 0x1C]
- b _0803867C
- .pool
-_08038668:
- ldr r1, =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- str r0, [sp, 0x1C]
- adds r4, r1, 0
-_0803867C:
- movs r0, 0
- str r0, [sp, 0x18]
- b _080389B4
- .pool
-_08038688:
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r2, r3
- lsls r0, 3
- adds r1, r0, r4
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _0803869E
- movs r0, 0x80
- mov r10, r0
- b _080386B0
-_0803869E:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _080386B0
- movs r2, 0x78
- mov r10, r2
-_080386B0:
- movs r6, 0
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r2, r3
- lsls r0, 3
- adds r1, r4, 0x4
- adds r0, r1
- ldrb r0, [r0]
- ldr r3, [sp, 0x18]
- adds r3, 0x1
- str r3, [sp, 0x24]
- cmp r0, 0xFF
- beq _080386E6
- adds r3, r1, 0
-_080386CC:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080386CC
-_080386E6:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r0, r1, r2
- lsls r1, r0, 3
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08038794
- cmp r0, 0x1
- bgt _08038700
- cmp r0, 0
- beq _0803870E
- b _080389AC
-_08038700:
- cmp r0, 0x2
- bne _08038706
- b _08038854
-_08038706:
- cmp r0, 0x3
- bne _0803870C
- b _080388E8
-_0803870C:
- b _080389AC
-_0803870E:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r3, [sp, 0x18]
- lsls r2, r3, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08038750
- adds r3, r1, 0
- movs r7, 0xB
-_08038734:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08038734
-_08038750:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _080389AC
- .pool
-_08038794:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _080387D6
- adds r3, r1, 0
- movs r4, 0xB
-_080387BA:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080387BA
-_080387D6:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_08038820:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08038820
- b _080389AC
- .pool
-_08038854:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08038896
- adds r3, r1, 0
- movs r7, 0xB
-_0803887A:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0803887A
-_08038896:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _080389AC
- .pool
-_080388E8:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0803892A
- adds r3, r1, 0
- movs r4, 0xB
-_0803890E:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0803890E
-_0803892A:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_08038982:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08038982
-_080389AC:
- ldr r4, [sp, 0x24]
- str r4, [sp, 0x18]
- ldr r4, =gTrainers
- ldr r0, [sp, 0x18]
-_080389B4:
- ldr r1, [sp, 0x1C]
- cmp r0, r1
- bge _080389BC
- b _08038688
-_080389BC:
- ldr r2, =gBattleTypeFlags
- ldr r1, =gTrainers
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x14]
- adds r0, r3, r4
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x18]
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_080389D2:
- ldr r0, =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_080389E2:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateNPCTrainerParty
-
- thumb_func_start sub_8038A04
-sub_8038A04: @ 8038A04
- push {lr}
- ldr r0, =0x04000006
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _08038A1E
- movs r1, 0x98
- lsls r1, 8
- movs r0, 0x8
- bl SetGpuReg
-_08038A1E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038A04
-
- thumb_func_start VBlankCB_Battle
-VBlankCB_Battle: @ 8038A28
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x013f0102
- ands r0, r1
- cmp r0, 0
- bne _08038A3A
- bl Random
-_08038A3A:
- ldr r0, =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- ldr r0, =gBattle_BG2_X
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- ldr r0, =gBattle_BG2_Y
- ldrh r1, [r0]
- movs r0, 0x1A
- bl SetGpuReg
- ldr r0, =gBattle_BG3_X
- ldrh r1, [r0]
- movs r0, 0x1C
- bl SetGpuReg
- ldr r0, =gBattle_BG3_Y
- ldrh r1, [r0]
- movs r0, 0x1E
- bl SetGpuReg
- ldr r0, =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x40
- bl SetGpuReg
- ldr r0, =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, =gBattle_WIN1H
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, =gBattle_WIN1V
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80BA0A8
- pop {r0}
- bx r0
- .pool
- thumb_func_end VBlankCB_Battle
-
- thumb_func_start nullsub_17
-nullsub_17: @ 8038B00
- bx lr
- thumb_func_end nullsub_17
-
- thumb_func_start sub_8038B04
-sub_8038B04: @ 8038B04
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08038B24
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _08038B36
-_08038B24:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_08038B36:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08038B6A
- ldr r4, =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_08038B6A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038B04
-
- thumb_func_start sub_8038B74
-sub_8038B74: @ 8038B74
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, =sub_8038B04
- str r0, [r4, 0x1C]
- movs r0, 0x68
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038B74
-
- thumb_func_start sub_8038B94
-sub_8038B94: @ 8038B94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, =gBattleScripting
- adds r0, 0x25
- ldrb r2, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08038C04
- ldr r1, =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _08038BF0
- cmp r0, 0x1
- bgt _08038BE8
- cmp r0, 0
- beq _08038C04
- b _08038C0C
- .pool
-_08038BE8:
- cmp r0, 0x2
- beq _08038C04
- cmp r0, 0x3
- bne _08038C0C
-_08038BF0:
- ldr r0, =gEnemyParty
- str r0, [sp, 0x4]
- ldr r1, =gPlayerParty
- str r1, [sp, 0x8]
- b _08038C0C
- .pool
-_08038C04:
- ldr r2, =gPlayerParty
- str r2, [sp, 0x4]
- ldr r3, =gEnemyParty
- str r3, [sp, 0x8]
-_08038C0C:
- movs r7, 0
- movs r0, 0
- mov r8, r0
- ldr r1, [sp]
- lsls r1, 2
- str r1, [sp, 0xC]
- movs r2, 0xCE
- lsls r2, 1
- mov r10, r2
- mov r9, r0
-_08038C20:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r3, [sp, 0x4]
- adds r4, r3, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _08038C90
- cmp r5, r10
- beq _08038C64
- cmp r6, 0
- beq _08038C64
- cmp r1, 0
- bne _08038C64
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_08038C64:
- cmp r5, 0
- beq _08038C90
- cmp r6, 0
- beq _08038C7C
- cmp r5, r10
- beq _08038C74
- cmp r1, 0
- beq _08038C7C
-_08038C74:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_08038C7C:
- cmp r5, 0
- beq _08038C90
- cmp r5, r10
- beq _08038C90
- cmp r6, 0
- bne _08038C90
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_08038C90:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _08038C20
- ldr r1, =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_08038CBA:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _08038D2A
- cmp r5, r10
- beq _08038CFE
- cmp r6, 0
- beq _08038CFE
- cmp r1, 0
- bne _08038CFE
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_08038CFE:
- cmp r5, 0
- beq _08038D2A
- cmp r6, 0
- beq _08038D16
- cmp r5, r10
- beq _08038D0E
- cmp r1, 0
- beq _08038D16
-_08038D0E:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_08038D16:
- cmp r5, 0
- beq _08038D2A
- cmp r5, r10
- beq _08038D2A
- cmp r6, 0
- bne _08038D2A
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_08038D2A:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08038CBA
- ldr r1, =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038B94
-
- thumb_func_start sub_8038D64
-sub_8038D64: @ 8038D64
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x21
- negs r2, r2
- ands r1, r2
- str r1, [r0]
- ldr r0, =0x003f0100
- ands r0, r1
- cmp r0, 0
- beq _08038DAC
- ldr r0, =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- bl sub_8057028
- bl dp11_free
- bl sub_805F094
- b _08038EB6
- .pool
-_08038DAC:
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, =gBattle_WIN0V
- strh r4, [r0]
- bl dp12_8087EA4
- ldr r0, =gUnknown_02038C28
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_08038DFE:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08038DFE
- movs r1, 0x50
- ldr r0, =gUnknown_02038C28
- ldr r3, =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08038E1A:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08038E1A
- bl ResetPaletteFade
- ldr r0, =gBattle_BG0_X
- movs r4, 0
- strh r4, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, =gBattle_BG3_Y
- strh r4, [r0]
- bl c2_berry_program_update_menu
- ldr r0, =gUnknown_08C004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_803570C
- bl ResetSpriteData
- bl ResetTasks
- bl LoadBattleEntryBackground
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, =VBlankCB_Battle
- bl SetVBlankCallback
- ldr r0, =task00_0800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_8038B94
- ldr r0, =sub_8038F14
- bl SetMainCallback2
- ldr r0, =gBattleCommunication
- strb r4, [r0]
-_08038EB6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038D64
-
- thumb_func_start sub_8038F14
-sub_8038F14: @ 8038F14
- push {lr}
- bl sub_8038F34
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8038F14
-
- thumb_func_start sub_8038F34
-sub_8038F34: @ 8038F34
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, =gBattleCommunication
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x9
- bls _08038F44
- b _080391C6
-_08038F44:
- lsls r0, r1, 2
- ldr r1, =_08038F58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08038F58:
- .4byte _08038F80
- .4byte _08038FA0
- .4byte _08038FC2
- .4byte _080390C8
- .4byte _08039100
- .4byte _08039118
- .4byte _0803912C
- .4byte _0803914C
- .4byte _08039166
- .4byte _08039184
-_08038F80:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r1, =gBattleCommunication
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- b _08039174
- .pool
-_08038FA0:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08038FB0
- b _080391C6
-_08038FB0:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0803910C
-_08038FC2:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08038FD0
- b _080391C6
-_08038FD0:
- bl sub_8185FAC
- ldr r2, =gMain
- ldr r1, =0x00000439
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- movs r3, 0x2
- cmp r0, 0
- beq _08038FFC
- movs r3, 0x4
-_08038FFC:
- movs r4, 0
- ldr r6, =gSaveBlock2Ptr
- cmp r4, r3
- bge _08039022
- ldr r1, =gLinkPlayers
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08039022
- movs r5, 0xFF
- adds r2, r1, 0
-_08039010:
- adds r2, 0x1C
- adds r4, 0x1
- cmp r4, r3
- bge _08039022
- ldrh r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x3
- beq _08039010
-_08039022:
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080390AC
- cmp r4, r3
- bne _080390AC
- ldr r0, =0x000008d2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08039074
- bl FreeAllWindowBuffers
- ldr r0, =sub_80392A8
- bl SetMainCallback2
- b _080391C6
- .pool
-_08039074:
- ldr r2, =gMain
- ldr r1, =0x00000439
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08039090
- ldr r0, [r2, 0x8]
- b _080390B0
- .pool
-_08039090:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039172
- ldr r0, =sub_80B3AF8
- movs r1, 0x5
- bl CreateTask
- b _08039172
- .pool
-_080390AC:
- ldr r0, =gMain
- ldr r0, [r0, 0x8]
-_080390B0:
- bl SetMainCallback2
- bl sub_8057028
- bl dp11_free
- bl sub_805F094
- b _080391C6
- .pool
-_080390C8:
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x4
- bl CpuSet
- movs r4, 0
-_080390DA:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80363C4
- adds r4, 0x1
- cmp r4, 0x1
- ble _080390DA
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08039172
- .pool
-_08039100:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080391C6
-_0803910C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080391C6
- .pool
-_08039118:
- ldr r0, =sub_80B3AF8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080391C6
- b _08039172
- .pool
-_0803912C:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080391C6
- bl sub_800ADF8
- ldr r0, =gUnknown_0824978D
- movs r1, 0
- bl sub_814F9EC
- b _08039172
- .pool
-_0803914C:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080391C6
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080391C6
- b _08039172
-_08039166:
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039172
- bl sub_800AC34
-_08039172:
- ldr r1, =gBattleCommunication
-_08039174:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080391C6
- .pool
-_08039184:
- ldr r2, =gMain
- ldr r1, =0x00000439
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080391A6
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _080391A6
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080391C6
-_080391A6:
- ldr r0, =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3, 0x8]
- bl SetMainCallback2
- bl sub_8057028
- bl dp11_free
- bl sub_805F094
-_080391C6:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8038F34
-
- thumb_func_start sub_80391E0
-sub_80391E0: @ 80391E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x6
- bhi _080392A0
- lsls r0, r1, 2
- ldr r1, =_08039200
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08039200:
- .4byte _0803921C
- .4byte _08039230
- .4byte _08039244
- .4byte _08039258
- .4byte _0803926C
- .4byte _08039280
- .4byte _08039294
-_0803921C:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- lsrs r0, 30
- b _080392A0
- .pool
-_08039230:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 30
- b _080392A0
- .pool
-_08039244:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 23
- lsrs r0, 27
- b _080392A0
- .pool
-_08039258:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 29
- lsrs r0, 30
- b _080392A0
- .pool
-_0803926C:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 28
- lsrs r0, 31
- b _080392A0
- .pool
-_08039280:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 26
- lsrs r0, 30
- b _080392A0
- .pool
-_08039294:
- ldr r0, =gUnknown_0831AA08
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- lsls r0, 8
- lsrs r0, 22
-_080392A0:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80391E0
-
- thumb_func_start sub_80392A8
-sub_80392A8: @ 80392A8
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x4
- bl CpuSet
- bl ResetPaletteFade
- ldr r0, =gBattle_BG0_X
- strh r4, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, =gBattle_BG3_Y
- strh r4, [r0]
- bl c2_berry_program_update_menu
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- bl sub_803570C
-_080392FE:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80363C4
- adds r4, 0x1
- cmp r4, 0x1
- ble _080392FE
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, =VBlankCB_Battle
- bl SetVBlankCallback
- ldr r0, =sub_803937C
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =gBattleCommunication
- strb r4, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80392A8
-
- thumb_func_start sub_803937C
-sub_803937C: @ 803937C
- push {lr}
- bl sub_803939C
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_803937C
-
- thumb_func_start sub_803939C
-sub_803939C: @ 803939C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, =gBattleCommunication
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0xC
- bls _080393AC
- b _0803975E
-_080393AC:
- lsls r0, r1, 2
- ldr r1, =_080393C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080393C0:
- .4byte _080393F4
- .4byte _08039414
- .4byte _08039450
- .4byte _08039470
- .4byte _0803949C
- .4byte _080394D8
- .4byte _0803957C
- .4byte _08039704
- .4byte _080395CC
- .4byte _08039610
- .4byte _08039678
- .4byte _080396A8
- .4byte _08039704
-_080393F4:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_08039414:
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039434
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039434
- ldr r0, =sub_80B3AF8
- movs r1, 0x5
- bl CreateTask
-_08039434:
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_08039450:
- ldr r0, =sub_80B3AF8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0803945E
- b _0803975E
-_0803945E:
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_08039470:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803947E
- b _0803975E
-_0803947E:
- ldr r0, =gText_RecordBattleToPass
- movs r1, 0
- bl sub_814F9EC
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_0803949C:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080394AC
- b _0803975E
-_080394AC:
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- ldr r0, =gText_BattleYesNoChoice
- movs r1, 0xC
- bl sub_814F9EC
- ldr r4, =gBattleCommunication
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl BattleCreateCursorAt
- b _080396EA
- .pool
-_080394D8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039500
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _080394EC
- b _0803975E
-_080394EC:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x1]
- bl BattleDestroyCursorAt
- movs r0, 0
- b _0803951E
- .pool
-_08039500:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08039526
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08039510
- b _0803975E
-_08039510:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x1]
- bl BattleDestroyCursorAt
- movs r0, 0x1
-_0803951E:
- strb r0, [r4, 0x1]
- bl BattleCreateCursorAt
- b _0803975E
-_08039526:
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08039560
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08039540
- b _080396EA
-_08039540:
- str r5, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- bl sub_8185338
- strb r0, [r4, 0x1]
- movs r0, 0xA
- strb r0, [r4]
- b _0803975E
- .pool
-_08039560:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803956A
- b _0803975E
-_0803956A:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_0803957C:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0803958A
- b _0803975E
-_0803958A:
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080395B4
- bl sub_800ADF8
- ldr r0, =gUnknown_0824978D
- movs r1, 0
- bl sub_814F9EC
-_080395B4:
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_080395CC:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _080395DA
- b _0803975E
-_080395DA:
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080395F6
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _080395F6
- bl sub_800AC34
-_080395F6:
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- b _0803975C
- .pool
-_08039610:
- ldr r2, =gMain
- ldr r1, =0x00000439
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _08039634
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039634
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08039634
- b _0803975E
-_08039634:
- ldr r0, =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08039650
- b _0803975E
-_08039650:
- ldr r0, [r3, 0x8]
- bl SetMainCallback2
- bl sub_8057028
- bl dp11_free
- bl sub_805F094
- b _0803975E
- .pool
-_08039678:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- bne _080396A0
- movs r0, 0x37
- bl PlaySE
- ldr r0, =gText_BattleRecordedOnPass
-_08039686:
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, =gDisplayedStringBattle
- movs r1, 0
- bl sub_814F9EC
- movs r0, 0x80
- strb r0, [r4, 0x1]
- b _080396EA
- .pool
-_080396A0:
- ldr r0, =gUnknown_08242481
- b _08039686
- .pool
-_080396A8:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803975E
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0803975E
- ldr r4, =gBattleCommunication
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _0803975E
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080396EA
- bl sub_800ADF8
- ldr r0, =gUnknown_0824978D
- movs r1, 0
- bl sub_814F9EC
-_080396EA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0803975E
- .pool
-_08039704:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0803975E
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08039744
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803975E
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- b _0803974A
- .pool
-_08039744:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
-_0803974A:
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gBattleCommunication
- movs r0, 0x20
- strb r0, [r1, 0x1]
- movs r0, 0x8
-_0803975C:
- strb r0, [r1]
-_0803975E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803939C
-
- thumb_func_start shedinja_something
-shedinja_something: @ 803976C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, =0x0000012f
- cmp r0, r1
- bne _080397B4
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _080397B4
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, =gUnknown_0831ACA0
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080397B4
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_080397B4:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end shedinja_something
-
- thumb_func_start sub_80397C4
-sub_80397C4: @ 80397C4
- ldr r2, =gUnknown_0831ABA0
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 3
- bx lr
- .pool
- thumb_func_end sub_80397C4
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 80397DC
- push {lr}
- sub sp, 0x4
- ldr r1, =sub_803980C
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_803980C
-sub_803980C: @ 803980C
- push {lr}
- adds r2, r0, 0
- ldr r0, =gUnknown_020243FC
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803982C
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0803982C
- ldr r0, =sub_8039838
- str r0, [r2, 0x1C]
-_0803982C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803980C
-
- thumb_func_start sub_8039838
-sub_8039838: @ 8039838
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08039880
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076918
- ldr r1, =gHealthBoxesIds
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80729D0
- ldr r0, =sub_8039894
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_08039880:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8039838
-
- thumb_func_start sub_8039894
-sub_8039894: @ 8039894
- push {lr}
- adds r2, r0, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080398B0
- ldrh r1, [r2, 0x32]
- adds r0, r2, 0
- movs r2, 0
- movs r3, 0x1
- bl BattleAnimateFrontSprite
-_080398B0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8039894
-
- thumb_func_start SpriteCallbackDummy_2
-SpriteCallbackDummy_2: @ 80398B8
- bx lr
- thumb_func_end SpriteCallbackDummy_2
-
- thumb_func_start sub_80398BC
-sub_80398BC: @ 80398BC
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, =sub_80398D0
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_80398BC
-
- thumb_func_start sub_80398D0
-sub_80398D0: @ 80398D0
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08039924
- movs r0, 0x8
- strh r0, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08039924
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, =SpriteCallbackDummy_2
- str r0, [r3, 0x1C]
- ldr r0, =gUnknown_02022F88
- str r2, [r0]
-_08039924:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80398D0
-
- thumb_func_start sub_8039934
-sub_8039934: @ 8039934
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _0803995C
- adds r4, r0, 0
- b _08039960
- .pool
-_0803995C:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_08039960:
- ldr r1, =gBattlePartyID
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, 0xC9
- bne _080399E4
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _080399D0
- movs r0, 0xC9
- b _080399DA
- .pool
-_080399D0:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_080399DA:
- ldr r1, =gUnknown_08300D38
- lsls r0, 2
- b _08039A1C
- .pool
-_080399E4:
- ldr r0, =0x00000181
- cmp r4, r0
- bne _08039A08
- ldr r0, =gUnknown_08525F78
- ldr r1, =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08039A20
- .pool
-_08039A08:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08039A18
- ldr r0, =gUnknown_08300D38
- b _08039A1E
- .pool
-_08039A18:
- ldr r1, =gUnknown_08300D38
- lsls r0, r4, 2
-_08039A1C:
- adds r0, r1
-_08039A1E:
- ldrb r0, [r0, 0x1]
-_08039A20:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, =sub_8039A48
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8039934
-
- thumb_func_start sub_8039A48
-sub_8039A48: @ 8039A48
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08039AC8
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _08039A7C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08039AC8
-_08039A7C:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankIdentity
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r2, =gBattleMonForms
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- lsls r0, 8
- adds r1, r0
- movs r2, 0
- movs r0, 0xFF
-_08039AAE:
- strb r2, [r1]
- adds r1, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _08039AAE
- ldr r0, =gBattleMonForms
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08039AC8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8039A48
-
- thumb_func_start sub_8039AD8
-sub_8039AD8: @ 8039AD8
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, =sub_8039AF4
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8039AD8
-
- thumb_func_start sub_8039AF4
-sub_8039AF4: @ 8039AF4
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08039B26
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x34]
-_08039B26:
- pop {r0}
- bx r0
- thumb_func_end sub_8039AF4
-
- thumb_func_start sub_8039B2C
-sub_8039B2C: @ 8039B2C
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, =SpriteCallbackDummy_2
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8039B2C
thumb_func_start sub_8039B58
sub_8039B58: @ 8039B58
@@ -2805,7 +142,7 @@ dp11b_obj_instanciate: @ 8039C28
mov r10, r3
cmp r1, 0
beq _08039C64
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r2, r4, 1
@@ -2817,7 +154,7 @@ dp11b_obj_instanciate: @ 8039C28
b _08039C76
.pool
_08039C64:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r2, r4, 1
@@ -2841,7 +178,7 @@ _08039C76:
ldr r0, =gHealthBoxesIds
adds r0, r4, r0
ldrb r7, [r0]
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r0, [r0, 0x4]
adds r1, r6, r4
@@ -2867,7 +204,7 @@ _08039CD0:
ldr r0, =gBankSpriteIds
adds r0, r4, r0
ldrb r7, [r0]
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r0, [r0, 0x4]
adds r1, r6, r4
@@ -2931,7 +268,7 @@ dp11b_obj_free: @ 8039D48
lsrs r1, 24
cmp r1, 0x1
bne _08039D9C
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -2962,7 +299,7 @@ dp11b_obj_free: @ 8039D48
b _08039DD6
.pool
_08039D9C:
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -10246,9 +7583,9 @@ _0803DE86:
ands r0, r1
cmp r0, 0
bne _0803DEA2
- bl sub_805F094
- bl sub_8057028
- bl dp11_free
+ bl FreeMonSpritesGfx
+ bl FreeBattleResources
+ bl FreeBattleSpritesData
_0803DEA2:
pop {r0}
bx r0
diff --git a/asm/battle_5.s b/asm/battle_5.s
index 3163631a9..4d02a5942 100644
--- a/asm/battle_5.s
+++ b/asm/battle_5.s
@@ -104,8 +104,8 @@ _08056FFA:
.pool
thumb_func_end AllocateBattleResrouces
- thumb_func_start sub_8057028
-sub_8057028: @ 8057028
+ thumb_func_start FreeBattleResources
+FreeBattleResources: @ 8057028
push {r4-r6,lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -181,7 +181,7 @@ _080570D0:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8057028
+ thumb_func_end FreeBattleResources
thumb_func_start AdjustFriendshipOnBattleFaint
AdjustFriendshipOnBattleFaint: @ 80570F4
diff --git a/asm/battle_7.s b/asm/battle_7.s
index 82298fbf4..7f82e790a 100644
--- a/asm/battle_7.s
+++ b/asm/battle_7.s
@@ -8,7 +8,7 @@
thumb_func_start AllocateBattleSpritesData
AllocateBattleSpritesData: @ 805D118
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
movs r0, 0x10
bl AllocZeroed
str r0, [r4]
@@ -34,10 +34,10 @@ AllocateBattleSpritesData: @ 805D118
.pool
thumb_func_end AllocateBattleSpritesData
- thumb_func_start dp11_free
-dp11_free: @ 805D158
+ thumb_func_start FreeBattleSpritesData
+FreeBattleSpritesData: @ 805D158
push {r4,r5,lr}
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
cmp r0, 0
beq _0805D192
@@ -65,7 +65,7 @@ _0805D192:
pop {r0}
bx r0
.pool
- thumb_func_end dp11_free
+ thumb_func_end FreeBattleSpritesData
thumb_func_start sub_805D19C
sub_805D19C: @ 805D19C
@@ -839,7 +839,7 @@ move_anim_start_t2_for_situation: @ 805D808
push {r4-r6,lr}
adds r4, r1, 0
lsls r0, 24
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r1, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1001,7 +1001,7 @@ move_anim_start_t3: @ 805D908
b _0805DA1E
.pool
_0805D950:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r9, r0
ldr r0, [r0]
ldr r0, [r0]
@@ -1063,7 +1063,7 @@ _0805D9CC:
mov r1, sp
ldrb r1, [r1]
strb r1, [r0]
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0, 0x8]
strh r7, [r0]
@@ -1119,7 +1119,7 @@ task0A_0803415C: @ 805DA48
ldrb r0, [r0]
cmp r0, 0
bne _0805DA8A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
@@ -1199,7 +1199,7 @@ move_anim_start_t4: @ 805DAC4
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
movs r2, 0x8
ldrsh r1, [r1, r2]
@@ -1230,7 +1230,7 @@ task0A_08034248: @ 805DB34
ldrb r0, [r0]
cmp r0, 0
bne _0805DB76
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
@@ -1274,7 +1274,7 @@ mplay_80342A4: @ 805DB90
lsls r0, 24
cmp r0, 0
beq _0805DBD8
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r1, [r0, 0x4]
lsls r0, r4, 1
@@ -1307,7 +1307,7 @@ _0805DBDC:
b _0805DC02
.pool
_0805DBF0:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r4, 1
@@ -1338,7 +1338,7 @@ sub_805DC0C: @ 805DC0C
movs r1, 0
bl GetMonData
str r0, [sp]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r2, r8
@@ -1386,7 +1386,7 @@ _0805DC58:
movs r0, 0x80
lsls r0, 1
adds r7, r2, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r3, 2
@@ -1444,7 +1444,7 @@ _0805DCC6:
movs r2, 0x20
bl LoadPalette
_0805DD1A:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
ldr r1, [sp, 0x4]
@@ -1491,7 +1491,7 @@ sub_805DD7C: @ 805DD7C
movs r1, 0
bl GetMonData
str r0, [sp]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r2, r8
@@ -1532,7 +1532,7 @@ _0805DDC8:
mov r10, r1
cmp r0, 0x1
beq _0805DE00
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
@@ -1573,7 +1573,7 @@ _0805DE46:
movs r0, 0x80
lsls r0, 1
adds r7, r1, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
@@ -1629,7 +1629,7 @@ _0805DE7E:
movs r2, 0x20
bl LoadPalette
_0805DED2:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
@@ -2141,7 +2141,7 @@ _0805E346:
thumb_func_start sub_805E350
sub_805E350: @ 805E350
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0, 0x4]
movs r1, 0
@@ -2162,7 +2162,7 @@ sub_805E350: @ 805E350
sub_805E378: @ 805E378
push {lr}
bl sub_805E350
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0
@@ -2191,7 +2191,7 @@ sub_805E394: @ 805E394
movs r0, 0x2
negs r0, r0
mov r8, r0
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r6, =gBankSpriteIds
_0805E3B8:
ldr r0, [r7]
@@ -2233,7 +2233,7 @@ _0805E3EA:
sub_805E408: @ 805E408
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1]
lsls r3, r0, 2
@@ -2285,7 +2285,7 @@ sub_805E448: @ 805E448
ldr r1, =gSprites
mov r8, r1
add r0, r8
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r1, [r1, 0x8]
ldrb r1, [r1]
@@ -2582,7 +2582,7 @@ _0805E70A:
lsls r0, 24
cmp r0, 0
bne _0805E74A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r7, 2
@@ -2804,7 +2804,7 @@ sub_805E94C: @ 805E94C
lsrs r1, 16
cmp r1, 0xA4
bne _0805E96C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r2, 2
@@ -2822,7 +2822,7 @@ _0805E96C:
thumb_func_start sub_805E974
sub_805E974: @ 805E974
lsls r0, 24
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1]
lsrs r0, 22
@@ -2862,7 +2862,7 @@ sub_805E990: @ 805E990
lsrs r0, 24
cmp r0, 0x1
bne _0805EA08
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r0, [r7]
ldr r2, [r0]
lsls r4, r6, 2
@@ -2895,7 +2895,7 @@ _0805E9F6:
b _0805EA5A
.pool
_0805EA08:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0]
lsls r1, r6, 2
@@ -2944,7 +2944,7 @@ BattleMusicStop: @ 805EA60
bl GetBankByIdentity
lsls r0, 24
lsrs r4, r0, 24
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r0, [r0]
lsls r1, r4, 2
@@ -3134,7 +3134,7 @@ _0805EBC8:
mov r7, r8
cmp r7, 0
bne _0805EC3C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x4]
adds r2, r6, r2
@@ -3164,7 +3164,7 @@ _0805EC3C:
adds r2, r0
lsls r2, 2
adds r2, r4
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
adds r0, r6, r0
@@ -3229,7 +3229,7 @@ sub_805EC84: @ 805EC84
adds r1, r4, 0
movs r3, 0xC8
bl CreateSprite
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r1, [r6]
ldr r2, [r1, 0x4]
lsls r1, r5, 1
@@ -3351,12 +3351,12 @@ _0805EDC0:
_0805EDD2:
movs r0, 0x1
mov r8, r0
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
lsls r4, 2
b _0805EE06
.pool
_0805EDE4:
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r0, [r0]
lsls r1, r4, 2
@@ -3431,7 +3431,7 @@ sub_805EE54: @ 805EE54
lsls r0, 24
cmp r0, 0
beq _0805EED0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r3, [r0]
ldr r1, [r3]
lsls r0, r4, 2
@@ -3489,7 +3489,7 @@ sub_805EEE0: @ 805EEE0
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r3, [r1, 0x4]
lsls r1, r0, 1
@@ -3578,7 +3578,7 @@ sub_805EF84: @ 805EF84
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0]
lsls r0, r4, 2
@@ -3708,8 +3708,8 @@ _0805F01A:
.pool
thumb_func_end AllocateMonSpritesGfx
- thumb_func_start sub_805F094
-sub_805F094: @ 805F094
+ thumb_func_start FreeMonSpritesGfx
+FreeMonSpritesGfx: @ 805F094
push {r4-r6,lr}
ldr r6, =gMonSpritesGfxPtr
ldr r0, [r6]
@@ -3769,7 +3769,7 @@ _0805F106:
pop {r0}
bx r0
.pool
- thumb_func_end sub_805F094
+ thumb_func_end FreeMonSpritesGfx
thumb_func_start sub_805F110
sub_805F110: @ 805F110
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index b9ab95165..975a7a401 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -1150,7 +1150,7 @@ _080A4330:
lsls r0, 24
cmp r0, 0
bne _080A4374
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -2864,7 +2864,7 @@ BattleAnimGetPanControl: @ 80A5178
lsls r0, 24
cmp r0, 0
bne _080A51C0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankAttacker
ldrb r2, [r0]
@@ -2986,7 +2986,7 @@ sub_80A5278: @ 80A5278
lsls r0, 24
cmp r0, 0
bne _080A52C0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankAttacker
ldrb r2, [r0]
diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s
index 16366988e..ca6572e1a 100644
--- a/asm/battle_anim_80A9C70.s
+++ b/asm/battle_anim_80A9C70.s
@@ -629,7 +629,7 @@ sub_80AA18C: @ 80AA18C
lsls r0, 24
lsrs r4, r0, 24
movs r3, 0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrh r0, [r0]
@@ -899,7 +899,7 @@ task0A_80788BC: @ 80AA3B4
ldrb r0, [r0]
cmp r0, 0
bne _080AA3F6
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index 5cec1cbc5..58eb2ebf0 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -38602,7 +38602,7 @@ _08111F0C:
adds r2, r0
lsls r2, 2
adds r2, r4
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankTarget
ldrb r0, [r0]
@@ -50163,7 +50163,7 @@ _08117F78:
adds r3, r4
lsls r3, 3
adds r3, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r4, [r0]
ldr r2, =gAnimationBankAttacker
ldrb r0, [r2]
@@ -50207,7 +50207,7 @@ sub_8117FD0: @ 8117FD0
lsls r0, 5
cmp r1, r0
bne _08118014
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankAttacker
ldrb r3, [r0]
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index 849655fe5..81e4f9163 100755
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -3250,7 +3250,7 @@ _0815BAB6:
cmp r0, 0
bne _0815BAF6
ldrb r0, [r4]
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r2, [r1]
lsls r1, r0, 2
@@ -5723,7 +5723,7 @@ _0815CF18:
movs r1, 0x1
bl GetMonData
mov r8, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -5791,7 +5791,7 @@ _0815CFC4:
movs r1, 0x1
bl GetMonData
mov r8, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -10637,7 +10637,7 @@ _0815F67C:
adds r0, r2
movs r1, 0x2
strh r1, [r0, 0x8]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankTarget
ldrb r0, [r0]
@@ -10762,7 +10762,7 @@ sub_815F7C4: @ 815F7C4
ble _0815F80E
movs r0, 0
strh r0, [r4, 0x30]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gAnimationBankTarget
ldrb r0, [r0]
@@ -11072,7 +11072,7 @@ _0815FA28:
movs r1, 0x1
bl GetMonData
mov r9, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -11136,7 +11136,7 @@ _0815FAC8:
movs r1, 0x1
bl GetMonData
mov r9, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -11202,7 +11202,7 @@ _0815FB50:
bl sub_80A8394
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldrb r0, [r4]
ldr r1, [r1]
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index cb6391cee..dd992a8cd 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -1035,7 +1035,7 @@ sub_8170D4C: @ 8170D4C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x8]
@@ -1183,7 +1183,7 @@ sub_8170E04: @ 8170E04
adds r4, r0
ldr r0, =sub_8171104
str r0, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, [r0, 0x8]
ldr r1, =gBankSpriteIds
@@ -1491,7 +1491,7 @@ sub_8171134: @ 8171134
lsls r0, 24
cmp r0, 0
beq _081711D2
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x8]
@@ -1894,7 +1894,7 @@ _08171486:
adds r0, r1
strh r0, [r4, 0x22]
strh r5, [r4, 0x26]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x8]
@@ -1940,7 +1940,7 @@ sub_81714D4: @ 81714D4
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
strh r5, [r0, 0xC]
@@ -1982,7 +1982,7 @@ _08171540:
.4byte _08171708
.4byte _08171768
_0817155C:
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r5, [r1]
ldr r2, [r5, 0x8]
ldrh r3, [r2, 0xC]
@@ -2060,7 +2060,7 @@ _081715EA:
bl ChangeSpriteAffineAnim
b _081717AE
_081715F4:
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r5, [r1]
ldr r2, [r5, 0x8]
ldrh r3, [r2, 0xC]
@@ -2152,7 +2152,7 @@ _0817169C:
movs r1, 0x1
bl ChangeSpriteAffineAnim
_081716A4:
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r5, [r1]
ldr r2, [r5, 0x8]
ldrh r3, [r2, 0xC]
@@ -2211,7 +2211,7 @@ _08171708:
strh r0, [r4, 0x34]
lsls r0, 16
asrs r1, r0, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x8]
@@ -2859,7 +2859,7 @@ _08171C24:
adds r2, r0
lsls r2, 2
adds r2, r4
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x9]
@@ -3083,7 +3083,7 @@ sub_8171E20: @ 8171E20
ands r0, r1
cmp r0, 0
beq _08171E3E
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x8]
ldrb r0, [r1, 0xA]
@@ -4419,7 +4419,7 @@ sub_8172944: @ 8172944
b _081729E2
.pool
_08172970:
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r1, [r0, 0x8]
ldrb r0, [r1, 0xA]
@@ -5046,7 +5046,7 @@ sub_8172E9C: @ 8172E9C
lsls r0, 24
lsrs r0, 24
ldr r3, =gBattleAnimArgs
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
ldr r1, =gAnimationBankAttacker
ldrb r1, [r1]
@@ -5088,7 +5088,7 @@ sub_8172EF0: @ 8172EF0
lsrs r6, r0, 24
movs r0, 0
mov r8, r0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r6, 1
@@ -5169,7 +5169,7 @@ _08172F6E:
b _08172FDE
.pool
_08172FC8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r6, 1
@@ -5212,7 +5212,7 @@ sub_8172FEC: @ 8172FEC
b _08173190
.pool
_08173018:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0xA]
@@ -5414,7 +5414,7 @@ sub_81731B0: @ 81731B0
cmp r0, 0x1
bne _081731EA
ldrb r1, [r1, 0x8]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
@@ -5762,7 +5762,7 @@ sub_81734B4: @ 81734B4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrh r1, [r0]
@@ -5813,7 +5813,7 @@ sub_817351C: @ 817351C
lsls r0, 24
lsrs r0, 24
ldr r3, =gAnimationBankAttacker
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
ldr r1, [r2, 0x8]
ldrh r1, [r1]
diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s
index a7168623c..58f3b95b7 100644
--- a/asm/battle_controller_linkopponent.s
+++ b/asm/battle_controller_linkopponent.s
@@ -158,7 +158,7 @@ _080644C2:
thumb_func_start sub_80644D8
sub_80644D8: @ 80644D8
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -281,7 +281,7 @@ _080645CA:
cmp r0, 0
bne _0806469C
_080645DE:
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
mov r12, r1
ldr r0, [r1]
ldr r7, =gActiveBank
@@ -364,7 +364,7 @@ _08064600:
b _080646F2
.pool
_0806469C:
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r1, [r7]
ldr r2, [r0, 0x4]
@@ -405,7 +405,7 @@ _0806469C:
adds r0, r4, 0
bl FreeSpritePaletteByTag
_080646F2:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -440,7 +440,7 @@ sub_8064734: @ 8064734
push {r5-r7}
movs r0, 0
mov r10, r0
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -497,7 +497,7 @@ _08064776:
adds r0, r3, 0
bl sub_8172EF0
_080647B4:
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, =gActiveBank
ldrb r5, [r2]
@@ -591,7 +591,7 @@ _0806484A:
ldrb r0, [r0]
bl sub_80729D0
_0806487A:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -673,7 +673,7 @@ _08064930:
lsls r2, 1
bl m4aMPlayVolumeControl
_0806493C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -735,7 +735,7 @@ _08064998:
lsrs r0, 24
cmp r0, 0x3
bne _080649E2
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r5]
ldr r0, [r0, 0x4]
@@ -828,7 +828,7 @@ _08064A3A:
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -900,7 +900,7 @@ sub_8064B04: @ 8064B04
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08064BB6
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r4, r3, 1
@@ -1028,7 +1028,7 @@ _08064C42:
thumb_func_start sub_8064C58
sub_8064C58: @ 8064C58
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -1166,7 +1166,7 @@ sub_8064D60: @ 8064D60
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08064DAC
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r3, 2
@@ -1198,7 +1198,7 @@ _08064DAC:
thumb_func_start sub_8064DD0
sub_8064DD0: @ 8064DD0
push {r4,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r4, =gActiveBank
ldrb r1, [r4]
@@ -1250,7 +1250,7 @@ _08064E2A:
thumb_func_start sub_8064E50
sub_8064E50: @ 8064E50
push {r4-r7,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1346,7 +1346,7 @@ _08064F0C:
thumb_func_start sub_8064F40
sub_8064F40: @ 8064F40
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1430,7 +1430,7 @@ _08064FDC:
thumb_func_start sub_8065008
sub_8065008: @ 8065008
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1454,7 +1454,7 @@ _0806502A:
thumb_func_start sub_8065038
sub_8065038: @ 8065038
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -3907,7 +3907,7 @@ sub_8066624: @ 8066624
ldrb r3, [r0]
cmp r3, 0
bne _0806666C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -3959,7 +3959,7 @@ _080666A8:
thumb_func_start sub_80666BC
sub_80666BC: @ 80666BC
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4589,7 +4589,7 @@ sub_8066B94: @ 8066B94
thumb_func_start sub_8066C40
sub_8066C40: @ 8066C40
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4816,7 +4816,7 @@ _08066D32:
b _08066E58
.pool
_08066E30:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -4869,7 +4869,7 @@ sub_8066E70: @ 8066E70
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4977,7 +4977,7 @@ _08066F32:
ands r0, r2
strb r0, [r1]
_08066F80:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -5244,7 +5244,7 @@ sub_806719C: @ 806719C
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -5718,7 +5718,7 @@ sub_8067508: @ 8067508
adds r1, r4
ldrb r0, [r6]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r6]
ldr r1, [r0, 0x4]
@@ -5893,7 +5893,7 @@ sub_8067718: @ 8067718
b _08067812
.pool
_08067748:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -5960,7 +5960,7 @@ _080677B4:
adds r1, r2
movs r3, 0
strb r0, [r1]
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -6000,7 +6000,7 @@ _08067812:
thumb_func_start sub_806782C
sub_806782C: @ 806782C
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -6036,7 +6036,7 @@ _08067864:
thumb_func_start sub_8067874
sub_8067874: @ 8067874
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s
index 5b0ac0491..562b236d0 100644
--- a/asm/battle_controller_linkpartner.s
+++ b/asm/battle_controller_linkpartner.s
@@ -131,7 +131,7 @@ _0814AFA4:
thumb_func_start sub_814AFBC
sub_814AFBC: @ 814AFBC
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -239,7 +239,7 @@ _0814B094:
_0814B0A0:
cmp r6, 0
beq _0814B0C6
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -270,7 +270,7 @@ sub_814B0E8: @ 814B0E8
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r12, r0
ldr r0, [r0]
ldr r7, =gActiveBank
@@ -426,7 +426,7 @@ _0814B1F0:
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -599,7 +599,7 @@ _0814B3BC:
thumb_func_start sub_814B3DC
sub_814B3DC: @ 814B3DC
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -737,7 +737,7 @@ sub_814B4E0: @ 814B4E0
bne _0814B532
adds r0, r3, 0
bl sub_805E408
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -769,7 +769,7 @@ _0814B532:
thumb_func_start sub_814B554
sub_814B554: @ 814B554
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
@@ -808,7 +808,7 @@ sub_814B5A8: @ 814B5A8
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r7, =gActiveBank
ldrb r1, [r7]
@@ -903,7 +903,7 @@ _0814B664:
thumb_func_start sub_814B69C
sub_814B69C: @ 814B69C
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -1021,7 +1021,7 @@ _0814B7A6:
thumb_func_start sub_814B7B8
sub_814B7B8: @ 814B7B8
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1045,7 +1045,7 @@ _0814B7DA:
thumb_func_start sub_814B7E8
sub_814B7E8: @ 814B7E8
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -3476,7 +3476,7 @@ sub_814CE14: @ 814CE14
ldrb r3, [r0]
cmp r3, 0
bne _0814CE5C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -3526,7 +3526,7 @@ _0814CE92:
thumb_func_start sub_814CEA4
sub_814CEA4: @ 814CEA4
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -3870,7 +3870,7 @@ sub_814D0F0: @ 814D0F0
thumb_func_start sub_814D19C
sub_814D19C: @ 814D19C
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4125,7 +4125,7 @@ _0814D2CE:
b _0814D3F4
.pool
_0814D3CC:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -4178,7 +4178,7 @@ bx_move_anim_4: @ 814D40C
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4286,7 +4286,7 @@ _0814D4CE:
ands r0, r2
strb r0, [r1]
_0814D51C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4553,7 +4553,7 @@ sub_814D738: @ 814D738
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -5147,7 +5147,7 @@ _0814DC06:
adds r1, r4
ldrb r0, [r5]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r5]
ldr r1, [r0, 0x4]
@@ -5326,7 +5326,7 @@ sub_814DDD8: @ 814DDD8
b _0814DE7C
.pool
_0814DE08:
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
@@ -5394,7 +5394,7 @@ _0814DE7C:
thumb_func_start sub_814DE9C
sub_814DE9C: @ 814DE9C
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -5430,7 +5430,7 @@ _0814DED4:
thumb_func_start sub_814DEE4
sub_814DEE4: @ 814DEE4
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index f54896ca7..066a0ceab 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -158,7 +158,7 @@ _0805F292:
thumb_func_start sub_805F2A8
sub_805F2A8: @ 805F2A8
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -277,7 +277,7 @@ _0805F3A0:
movs r6, 0x1
_0805F3A2:
ldr r3, =gUnknown_020244D8
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
mov r8, r1
ldr r2, [r1]
ldr r7, =gActiveBank
@@ -449,7 +449,7 @@ _0805F4E4:
ands r0, r2
strb r0, [r1, 0x1]
_0805F51A:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -488,7 +488,7 @@ sub_805F560: @ 805F560
movs r0, 0
str r0, [sp]
mov r10, r0
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -549,7 +549,7 @@ _0805F5A6:
adds r0, r3, 0
bl sub_8172EF0
_0805F5EE:
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r1, =gActiveBank
mov r8, r1
@@ -643,7 +643,7 @@ _0805F684:
ldrb r0, [r0]
bl sub_80729D0
_0805F6B4:
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r2, [r3]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -723,7 +723,7 @@ _0805F768:
lsls r2, 1
bl m4aMPlayVolumeControl
_0805F774:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -906,7 +906,7 @@ _0805F8D2:
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -972,7 +972,7 @@ sub_805F994: @ 805F994
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0805F9E0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r2, r3, 1
@@ -1010,7 +1010,7 @@ _0805F9E0:
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0805FA48
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r1, [r0, 0x4]
lsls r0, r3, 1
@@ -1122,7 +1122,7 @@ _0805FAF2:
thumb_func_start sub_805FB08
sub_805FB08: @ 805FB08
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -1260,7 +1260,7 @@ sub_805FC10: @ 805FC10
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0805FC5C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r3, 2
@@ -1292,7 +1292,7 @@ _0805FC5C:
thumb_func_start bx_803AEDC
bx_803AEDC: @ 805FC80
push {r4,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r4, =gActiveBank
ldrb r1, [r4]
@@ -1344,7 +1344,7 @@ _0805FCDA:
thumb_func_start sub_805FD00
sub_805FD00: @ 805FD00
push {r4-r7,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1440,7 +1440,7 @@ _0805FDBC:
thumb_func_start sub_805FDF0
sub_805FDF0: @ 805FDF0
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1524,7 +1524,7 @@ _0805FE8C:
thumb_func_start sub_805FEB8
sub_805FEB8: @ 805FEB8
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1548,7 +1548,7 @@ _0805FEDA:
thumb_func_start bx_803B0F4
bx_803B0F4: @ 805FEE8
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4069,7 +4069,7 @@ sub_806156C: @ 806156C
ldrb r3, [r0]
cmp r3, 0
bne _080615B4
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -4121,7 +4121,7 @@ _080615F0:
thumb_func_start sub_8061604
sub_8061604: @ 8061604
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4741,7 +4741,7 @@ sub_8061AF0: @ 8061AF0
thumb_func_start sub_8061B9C
sub_8061B9C: @ 8061B9C
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4962,7 +4962,7 @@ _08061C8A:
b _08061D9E
.pool
_08061D80:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -5009,7 +5009,7 @@ bx_move_anim_7: @ 8061DB0
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -5117,7 +5117,7 @@ _08061E72:
ands r0, r2
strb r0, [r1]
_08061EC0:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -5694,7 +5694,7 @@ sub_8062390: @ 8062390
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -6168,7 +6168,7 @@ sub_80626FC: @ 80626FC
adds r1, r4
ldrb r0, [r6]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r6]
ldr r1, [r0, 0x4]
@@ -6348,7 +6348,7 @@ dp01t_30_7_0803D67C: @ 8062918
b _08062A12
.pool
_08062948:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -6415,7 +6415,7 @@ _080629B4:
adds r1, r2
movs r3, 0
strb r0, [r1]
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -6455,7 +6455,7 @@ _08062A12:
thumb_func_start bx_0803D790_t7
bx_0803D790_t7: @ 8062A2C
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -6491,7 +6491,7 @@ _08062A64:
thumb_func_start sub_8062A74
sub_8062A74: @ 8062A74
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index b829296d8..b47a8ecdf 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -2344,7 +2344,7 @@ _08058908:
thumb_func_start sub_8058924
sub_8058924: @ 8058924
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -2452,7 +2452,7 @@ _08058A0A:
cmp r7, 0
beq _08058B08
_08058A0E:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r9, r0
ldr r0, [r0]
mov r6, r10
@@ -2593,7 +2593,7 @@ sub_8058B40: @ 8058B40
movs r0, 0
mov r9, r0
mov r8, r0
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r7, =gActiveBank
ldrb r2, [r7]
@@ -2729,7 +2729,7 @@ _08058C38:
ldrb r0, [r0]
bl sub_80729D0
_08058C68:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -2743,7 +2743,7 @@ _08058C68:
orrs r1, r2
strb r1, [r0, 0x1]
_08058C82:
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -2801,7 +2801,7 @@ _08058D08:
lsls r2, 1
bl m4aMPlayVolumeControl
_08058D14:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -2950,7 +2950,7 @@ _08058E48:
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -3015,7 +3015,7 @@ sub_8058EDC: @ 8058EDC
ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08058F94
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r1, [r0, 0x4]
lsls r0, r3, 1
@@ -3098,7 +3098,7 @@ _08058F94:
thumb_func_start sub_8058FC0
sub_8058FC0: @ 8058FC0
push {r4,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r4, =gActiveBank
ldrb r1, [r4]
@@ -3142,7 +3142,7 @@ _0805900E:
thumb_func_start sub_805902C
sub_805902C: @ 805902C
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -3774,7 +3774,7 @@ sub_80595A4: @ 80595A4
lsls r0, 3
adds r2, r0, r1
ldrb r5, [r2, 0xC]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r5, 1
@@ -3942,7 +3942,7 @@ _08059724:
thumb_func_start sub_8059744
sub_8059744: @ 8059744
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -4145,7 +4145,7 @@ bx_wait_t1: @ 805991C
ldrb r0, [r0]
cmp r0, 0
beq _08059942
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4657,7 +4657,7 @@ sub_8059D50: @ 8059D50
thumb_func_start sub_8059D60
sub_8059D60: @ 8059D60
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4681,7 +4681,7 @@ _08059D82:
thumb_func_start bx_8030B2C
bx_8030B2C: @ 8059D90
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -7124,7 +7124,7 @@ sub_805B3D4: @ 805B3D4
ldrb r3, [r0]
cmp r3, 0
bne _0805B41C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -7174,7 +7174,7 @@ _0805B452:
thumb_func_start sub_805B464
sub_805B464: @ 805B464
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -7890,7 +7890,7 @@ sub_805B9F8: @ 805B9F8
thumb_func_start sub_805BAB8
sub_805BAB8: @ 805BAB8
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -8013,7 +8013,7 @@ sub_805BBA4: @ 805BBA4
thumb_func_start sub_805BBC4
sub_805BBC4: @ 805BBC4
push {r4,r5,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x8]
movs r0, 0x4
@@ -8054,7 +8054,7 @@ sub_805BC18: @ 805BC18
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
strb r1, [r0, 0x8]
@@ -8229,7 +8229,7 @@ _0805BCBE:
b _0805BDE4
.pool
_0805BDBC:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -8282,7 +8282,7 @@ bx_move_anim_1: @ 805BDFC
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -8390,7 +8390,7 @@ _0805BEBE:
ands r0, r2
strb r0, [r1]
_0805BF0C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -9132,7 +9132,7 @@ sub_805C5C4: @ 805C5C4
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -9794,7 +9794,7 @@ dp01t_2F_1_pokemon_enter: @ 805CA80
adds r1, r4
ldrb r0, [r7]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r7]
ldr r1, [r0, 0x4]
@@ -10015,7 +10015,7 @@ sub_805CD74: @ 805CD74
b _0805CE18
.pool
_0805CDA4:
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
@@ -10083,7 +10083,7 @@ _0805CE18:
thumb_func_start sub_805CE38
sub_805CE38: @ 805CE38
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -10119,7 +10119,7 @@ _0805CE70:
thumb_func_start sub_805CE80
sub_805CE80: @ 805CE80
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s
index 185b8d5ca..c0ea9b87f 100644
--- a/asm/battle_controller_player_partner.s
+++ b/asm/battle_controller_player_partner.s
@@ -132,7 +132,7 @@ _081BAEE8:
thumb_func_start sub_81BAF00
sub_81BAF00: @ 81BAF00
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -240,7 +240,7 @@ _081BAFD8:
_081BAFE4:
cmp r6, 0
beq _081BB00A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -271,7 +271,7 @@ sub_81BB02C: @ 81BB02C
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r12, r0
ldr r0, [r0]
ldr r7, =gActiveBank
@@ -427,7 +427,7 @@ _081BB134:
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -1006,7 +1006,7 @@ sub_81BB688: @ 81BB688
lsls r0, 3
adds r2, r0, r1
ldrb r5, [r2, 0xC]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r5, 1
@@ -1174,7 +1174,7 @@ _081BB808:
thumb_func_start sub_81BB828
sub_81BB828: @ 81BB828
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -1312,7 +1312,7 @@ sub_81BB92C: @ 81BB92C
bne _081BB97E
adds r0, r3, 0
bl sub_805E408
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -1344,7 +1344,7 @@ _081BB97E:
thumb_func_start dp01t_35_3_free_vram
dp01t_35_3_free_vram: @ 81BB9A0
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
@@ -1383,7 +1383,7 @@ sub_81BB9F4: @ 81BB9F4
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r7, =gActiveBank
ldrb r1, [r7]
@@ -1478,7 +1478,7 @@ _081BBAB0:
thumb_func_start sub_81BBAE8
sub_81BBAE8: @ 81BBAE8
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -1596,7 +1596,7 @@ _081BBBF2:
thumb_func_start sub_81BBC04
sub_81BBC04: @ 81BBC04
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1620,7 +1620,7 @@ _081BBC26:
thumb_func_start bx_80E8A6C
bx_80E8A6C: @ 81BBC34
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4051,7 +4051,7 @@ sub_81BD260: @ 81BD260
ldrb r3, [r0]
cmp r3, 0
bne _081BD2A8
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -4101,7 +4101,7 @@ _081BD2DE:
thumb_func_start sub_81BD2F0
sub_81BD2F0: @ 81BD2F0
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4494,7 +4494,7 @@ sub_81BD5C8: @ 81BD5C8
thumb_func_start sub_81BD674
sub_81BD674: @ 81BD674
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4743,7 +4743,7 @@ _081BD7A2:
b _081BD8B6
.pool
_081BD898:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4790,7 +4790,7 @@ bx_move_anim_3: @ 81BD8C8
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4898,7 +4898,7 @@ _081BD98A:
ands r0, r2
strb r0, [r1]
_081BD9D8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -5340,7 +5340,7 @@ sub_81BDD9C: @ 81BDD9C
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -5880,7 +5880,7 @@ _081BE21A:
adds r1, r4
ldrb r0, [r5]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r5]
ldr r1, [r0, 0x4]
@@ -6059,7 +6059,7 @@ dp01t_30_3_80EB11C: @ 81BE3D4
b _081BE478
.pool
_081BE404:
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
@@ -6127,7 +6127,7 @@ _081BE478:
thumb_func_start sub_81BE498
sub_81BE498: @ 81BE498
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -6163,7 +6163,7 @@ _081BE4D0:
thumb_func_start sub_81BE4E0
sub_81BE4E0: @ 81BE4E0
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s
index 5c420158a..0d9bb2331 100644
--- a/asm/battle_controller_recorded_opponent.s
+++ b/asm/battle_controller_recorded_opponent.s
@@ -157,7 +157,7 @@ _0818661A:
thumb_func_start sub_8186630
sub_8186630: @ 8186630
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -311,7 +311,7 @@ _0818676A:
lsrs r3, r0, 24
cmp r3, 0x1
bne _08186816
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r12, r0
ldr r0, [r0]
ldrb r2, [r6]
@@ -388,7 +388,7 @@ _0818676A:
adds r0, r4, 0
bl FreeSpritePaletteByTag
_08186816:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
mov r2, r8
ldrb r1, [r2]
@@ -425,7 +425,7 @@ sub_818686C: @ 818686C
movs r0, 0
mov r9, r0
mov r8, r0
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r7, =gActiveBank
ldrb r2, [r7]
@@ -561,7 +561,7 @@ _08186964:
ldrb r0, [r0]
bl sub_80729D0
_08186994:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -575,7 +575,7 @@ _08186994:
orrs r1, r2
strb r1, [r0, 0x1]
_081869AE:
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -639,7 +639,7 @@ _08186A40:
lsls r2, 1
bl m4aMPlayVolumeControl
_08186A4C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -810,7 +810,7 @@ _08186B8A:
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -881,7 +881,7 @@ sub_8186C48: @ 8186C48
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08186CFA
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r4, r3, 1
@@ -1009,7 +1009,7 @@ _08186D86:
thumb_func_start sub_8186D9C
sub_8186D9C: @ 8186D9C
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -1147,7 +1147,7 @@ sub_8186EA4: @ 8186EA4
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08186EF0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r3, 2
@@ -1179,7 +1179,7 @@ _08186EF0:
thumb_func_start sub_8186F14
sub_8186F14: @ 8186F14
push {r4,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r4, =gActiveBank
ldrb r1, [r4]
@@ -1231,7 +1231,7 @@ _08186F6E:
thumb_func_start sub_8186F94
sub_8186F94: @ 8186F94
push {r4-r7,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1327,7 +1327,7 @@ _08187050:
thumb_func_start sub_8187084
sub_8187084: @ 8187084
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -1411,7 +1411,7 @@ _08187120:
thumb_func_start sub_818714C
sub_818714C: @ 818714C
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1435,7 +1435,7 @@ _0818716E:
thumb_func_start sub_818717C
sub_818717C: @ 818717C
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -3888,7 +3888,7 @@ sub_8188768: @ 8188768
ldrb r3, [r0]
cmp r3, 0
bne _081887B0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -3940,7 +3940,7 @@ _081887EC:
thumb_func_start sub_8188800
sub_8188800: @ 8188800
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4278,7 +4278,7 @@ sub_8188A4C: @ 8188A4C
thumb_func_start sub_8188AF8
sub_8188AF8: @ 8188AF8
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4499,7 +4499,7 @@ _08188BE6:
b _08188CFA
.pool
_08188CDC:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4546,7 +4546,7 @@ sub_8188D0C: @ 8188D0C
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4654,7 +4654,7 @@ _08188DCE:
ands r0, r2
strb r0, [r1]
_08188E1C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -4983,7 +4983,7 @@ sub_81890CC: @ 81890CC
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -5457,7 +5457,7 @@ sub_8189438: @ 8189438
adds r1, r4
ldrb r0, [r6]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r6]
ldr r1, [r0, 0x4]
@@ -5632,7 +5632,7 @@ sub_8189648: @ 8189648
b _08189742
.pool
_08189678:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -5699,7 +5699,7 @@ _081896E4:
adds r1, r2
movs r3, 0
strb r0, [r1]
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
@@ -5739,7 +5739,7 @@ _08189742:
thumb_func_start sub_818975C
sub_818975C: @ 818975C
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -5775,7 +5775,7 @@ _08189794:
thumb_func_start sub_81897A4
sub_81897A4: @ 81897A4
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s
index 6ab274da2..1b0cd52e3 100644
--- a/asm/battle_controller_recorded_player.s
+++ b/asm/battle_controller_recorded_player.s
@@ -132,7 +132,7 @@ _08189A40:
thumb_func_start sub_8189A58
sub_8189A58: @ 8189A58
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
@@ -244,7 +244,7 @@ _08189B42:
bne _08189B48
b _08189D18
_08189B48:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
mov r9, r0
ldr r0, [r0]
ldr r5, =gActiveBank
@@ -435,7 +435,7 @@ _08189CE6:
_08189CF2:
cmp r6, 0
beq _08189D18
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -478,7 +478,7 @@ sub_8189D40: @ 8189D40
lsls r0, 24
cmp r0, 0
bne _08189DBE
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldrb r2, [r4]
ldr r1, [r0, 0x4]
@@ -527,7 +527,7 @@ _08189D8C:
adds r0, r3, 0
bl sub_8172EF0
_08189DBE:
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, =gActiveBank
ldrb r5, [r2]
@@ -621,7 +621,7 @@ _08189E54:
ldrb r0, [r0]
bl sub_80729D0
_08189E84:
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -702,7 +702,7 @@ _08189F38:
lsls r2, 1
bl m4aMPlayVolumeControl
_08189F44:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -779,7 +779,7 @@ _08189FC8:
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -975,7 +975,7 @@ _0818A190:
thumb_func_start sub_818A1B0
sub_818A1B0: @ 818A1B0
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -1113,7 +1113,7 @@ sub_818A2B4: @ 818A2B4
bne _0818A306
adds r0, r3, 0
bl sub_805E408
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
@@ -1145,7 +1145,7 @@ _0818A306:
thumb_func_start sub_818A328
sub_818A328: @ 818A328
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
@@ -1184,7 +1184,7 @@ sub_818A37C: @ 818A37C
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r7, =gActiveBank
ldrb r1, [r7]
@@ -1279,7 +1279,7 @@ _0818A438:
thumb_func_start sub_818A470
sub_818A470: @ 818A470
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r4, =gActiveBank
ldrb r2, [r4]
@@ -1397,7 +1397,7 @@ _0818A57A:
thumb_func_start sub_818A58C
sub_818A58C: @ 818A58C
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -1421,7 +1421,7 @@ _0818A5AE:
thumb_func_start sub_818A5BC
sub_818A5BC: @ 818A5BC
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -3852,7 +3852,7 @@ sub_818BBE8: @ 818BBE8
ldrb r3, [r0]
cmp r3, 0
bne _0818BC30
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
@@ -3902,7 +3902,7 @@ _0818BC66:
thumb_func_start sub_818BC78
sub_818BC78: @ 818BC78
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4350,7 +4350,7 @@ sub_818BFB8: @ 818BFB8
thumb_func_start sub_818C064
sub_818C064: @ 818C064
push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -4599,7 +4599,7 @@ _0818C192:
b _0818C2A6
.pool
_0818C288:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4646,7 +4646,7 @@ bx_move_anim_2: @ 818C2B8
adds r1, r2
ldrb r1, [r1]
mov r8, r1
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4754,7 +4754,7 @@ _0818C37A:
ands r0, r2
strb r0, [r1]
_0818C3C8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -5134,7 +5134,7 @@ sub_818C6F4: @ 818C6F4
movs r2, 0x9
bl healthbar_draw_field_maybe
ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -5676,7 +5676,7 @@ _0818CB5A:
adds r1, r4
ldrb r0, [r5]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r5]
ldr r1, [r0, 0x4]
@@ -5855,7 +5855,7 @@ sub_818CD30: @ 818CD30
b _0818CDD4
.pool
_0818CD60:
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
@@ -5923,7 +5923,7 @@ _0818CDD4:
thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume
bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4
push {r4,lr}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
@@ -5959,7 +5959,7 @@ _0818CE2C:
thumb_func_start sub_818CE3C
sub_818CE3C: @ 818CE3C
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index dac3034a9..acd716776 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -336,7 +336,7 @@ bx_wait_t6: @ 8159624
ldrb r0, [r0]
cmp r0, 0
beq _0815964A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -410,7 +410,7 @@ _081596BE:
thumb_func_start sub_81596D4
sub_81596D4: @ 81596D4
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -484,7 +484,7 @@ _0815976A:
thumb_func_start bx_80364D0
bx_80364D0: @ 815977C
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -689,7 +689,7 @@ sub_8159904: @ 8159904
thumb_func_start sub_8159910
sub_8159910: @ 8159910
push {r4,r5,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x8]
movs r0, 0x4
@@ -730,7 +730,7 @@ sub_8159964: @ 8159964
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
strb r1, [r0, 0x8]
diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s
index 51193024f..8291b05fa 100644
--- a/asm/battle_controller_wally.s
+++ b/asm/battle_controller_wally.s
@@ -324,7 +324,7 @@ sub_816864C: @ 816864C
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r5, =gActiveBank
ldrb r2, [r5]
@@ -500,7 +500,7 @@ _0816877A:
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
@@ -549,7 +549,7 @@ sub_8168818: @ 8168818
_08168842:
cmp r4, 0
beq _08168904
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r0, [r7]
ldr r4, [r0, 0x4]
lsls r0, r3, 1
@@ -761,7 +761,7 @@ _08168A1A:
thumb_func_start sub_8168A20
sub_8168A20: @ 8168A20
push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
@@ -833,7 +833,7 @@ _08168AB4:
thumb_func_start sub_8168AC8
sub_8168AC8: @ 8168AC8
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -907,7 +907,7 @@ _08168B5E:
thumb_func_start sub_8168B70
sub_8168B70: @ 8168B70
push {lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
@@ -3221,7 +3221,7 @@ sub_816A078: @ 816A078
thumb_func_start sub_816A084
sub_816A084: @ 816A084
push {r4,r5,lr}
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x8]
movs r0, 0x4
@@ -3262,7 +3262,7 @@ sub_816A0D8: @ 816A0D8
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
strb r1, [r0, 0x8]
@@ -3407,7 +3407,7 @@ sub_816A144: @ 816A144
b _0816A25A
.pool
_0816A23C:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -3449,7 +3449,7 @@ bx_move_anim_5: @ 816A26C
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
- ldr r7, =gUnknown_020244D0
+ ldr r7, =gBattleSpritesDataPtr
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
@@ -4342,7 +4342,7 @@ sub_816A90C: @ 816A90C
adds r1, r4
ldrb r0, [r7]
strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
+ ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r7]
ldr r1, [r0, 0x4]
@@ -4393,7 +4393,7 @@ sub_816AA80: @ 816AA80
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r6, 2
@@ -4622,7 +4622,7 @@ sub_816AC78: @ 816AC78
b _0816ACE6
.pool
_0816ACA8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r5, =gActiveBank
ldrb r1, [r5]
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 3d3fba02b..de5617167 100755
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -18768,7 +18768,7 @@ _081A43EE:
sub_81A4410: @ 81A4410
push {r4,lr}
ldr r4, =gScriptResult
- bl sub_8185338
+ bl MoveRecordedBattleToSaveData
strh r0, [r4]
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 8bc9553f7..d9bb3d8cc 100755
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -780,7 +780,7 @@ sub_807294C: @ 807294C
ldr r7, [sp, 0x14]
lsls r0, 24
lsrs r0, 24
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, [r4, 0xC]
lsls r4, r0, 2
@@ -1398,7 +1398,7 @@ sub_8072E0C: @ 8072E0C
lsls r0, 24
cmp r0, 0
bne _08072F28
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
movs r2, 0x3A
ldrsh r0, [r7, r2]
@@ -1500,7 +1500,7 @@ _08072F28:
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x2C]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
ldr r2, [sp, 0x2C]
@@ -2004,7 +2004,7 @@ _0807336A:
bne _08073382
b _080735A8
_08073382:
- ldr r5, =gUnknown_020244D0
+ ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r3, [r0]
mov r0, r9
@@ -2988,7 +2988,7 @@ _08073BC6:
ldr r2, [sp, 0x10]
cmp r2, 0
beq _08073C0A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, [r0, 0x8]
ldrb r2, [r3, 0x9]
@@ -3311,7 +3311,7 @@ sub_8073E64: @ 8073E64
bne _08073F54
ldrb r5, [r4, 0xA]
movs r4, 0
- ldr r6, =gUnknown_020244D0
+ ldr r6, =gBattleSpritesDataPtr
adds r0, r7, 0
adds r0, 0xE
adds r2, r3, r0
@@ -3406,7 +3406,7 @@ _08073F54:
negs r0, r0
cmp r1, r0
bne _08073F8A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
@@ -3516,7 +3516,7 @@ _08074034:
negs r0, r0
cmp r2, r0
bne _0807406A
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r5, 1
@@ -4140,7 +4140,7 @@ _08074542:
adds r4, 0x1
cmp r4, 0x2
ble _08074542
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
adds r0, r7, r0
@@ -4222,7 +4222,7 @@ _080745B8:
cmp r0, 0x1
bne _08074672
_08074626:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r7, 2
@@ -4760,7 +4760,7 @@ sub_8074AA0: @ 8074AA0
mov r9, r2
cmp r2, 0
bne _08074AEC
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0xC]
mov r1, r8
@@ -4782,7 +4782,7 @@ sub_8074AA0: @ 8074AA0
b _08074B48
.pool
_08074AEC:
- ldr r2, =gUnknown_020244D0
+ ldr r2, =gBattleSpritesDataPtr
mov r10, r2
ldr r0, [r2]
ldr r2, [r0, 0xC]
@@ -4833,7 +4833,7 @@ _08074B48:
beq _08074B64
cmp r2, 0
bne _08074B6C
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
adds r0, r7, r0
@@ -4851,7 +4851,7 @@ _08074B6C:
negs r0, r0
cmp r4, r0
bne _08074B86
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0xC]
mov r2, r8
@@ -4890,7 +4890,7 @@ sub_8074B9C: @ 8074B9C
beq _08074CA0
b _08074D9E
_08074BB8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0xC]
lsls r5, r6, 2
@@ -4924,7 +4924,7 @@ _08074BF4:
ldr r0, =gSprites
mov r8, r0
_08074BFA:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0xC]
adds r0, r7, r6
@@ -4995,7 +4995,7 @@ _08074C8A:
b _08074D9E
.pool
_08074CA0:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0xC]
lsls r5, r6, 2
@@ -5055,7 +5055,7 @@ _08074D02:
ldrb r1, [r1]
lsls r1, 5
adds r0, r1
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1, 0xC]
adds r1, r4, r1
@@ -5086,7 +5086,7 @@ _08074D5C:
ldrb r1, [r1]
lsls r1, 5
adds r0, r1
- ldr r1, =gUnknown_020244D0
+ ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1, 0xC]
adds r1, r4, r1
diff --git a/asm/contest.s b/asm/contest.s
index b469dd8eb..561c79857 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -5587,7 +5587,7 @@ sub_80DA830: @ 80DA830
str r1, [r0]
bl FreeAllWindowBuffers
bl sub_80D7A5C
- bl sub_805F094
+ bl FreeMonSpritesGfx
ldr r0, =c2_exit_to_overworld_2_switch
bl SetMainCallback2
_080DA860:
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index 8a1bf00f1..03e1aaf2b 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -4569,7 +4569,7 @@ sub_80F7E64: @ 80F7E64
str r4, [r0, 0x1C]
bl Free
str r4, [r5]
- bl sub_805F094
+ bl FreeMonSpritesGfx
pop {r4,r5}
pop {r0}
bx r0
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
index 03fa9b05a..2caf15194 100644
--- a/asm/contest_painting.s
+++ b/asm/contest_painting.s
@@ -72,7 +72,7 @@ sub_812FE0C: @ 812FE0C
movs r0, 0x1
bl GetBgTilemapBuffer
bl Free
- bl sub_805F094
+ bl FreeMonSpritesGfx
pop {r4,r5}
pop {r0}
bx r0
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 0fa0c5eb3..889403787 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -189,7 +189,7 @@ evolution_cutscene: @ 813DA8C
ldr r1, =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
- bl c2_berry_program_update_menu
+ bl sub_80356D0
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
bl remove_some_task
@@ -482,7 +482,7 @@ sub_813DD7C: @ 813DD7C
ldr r1, =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
- bl c2_berry_program_update_menu
+ bl sub_80356D0
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
bl FreeAllSpritePalettes
@@ -1775,7 +1775,7 @@ _0813EAF6:
_0813EB06:
adds r0, r7, 0
bl DestroyTask
- bl sub_805F094
+ bl FreeMonSpritesGfx
ldr r4, =gUnknown_0203AB80
ldr r0, [r4]
bl Free
diff --git a/asm/link.s b/asm/link.s
index 038633758..fb20b1fb2 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -71211,7 +71211,7 @@ sub_802DBF8: @ 802DBF8
movs r6, 0
cmp r6, r10
bge _0802DC62
- ldr r0, =gUnknown_08300D38
+ ldr r0, =gMonFrontPicCoords
mov r9, r0
ldr r1, =gUnknown_02022D00
mov r8, r1
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 557813c19..4e637fb9d 100755
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -17,7 +17,7 @@ sub_80753E8: @ 80753E8
ldr r1, =gDoingBattleAnim
movs r0, 0x1
strb r0, [r1]
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r1, [r6]
@@ -992,7 +992,7 @@ _08075C22:
movs r2, 0xC
bl PlayCry4
_08075C2E:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
mov r2, r8
@@ -1082,7 +1082,7 @@ _08075CD8:
movs r2, 0xB
bl PlayCry4
_08075CE4:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
mov r2, r8
@@ -1215,7 +1215,7 @@ _08075E00:
lsls r0, 24
cmp r0, 0
beq _08075E56
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x9]
@@ -1247,7 +1247,7 @@ _08075E56:
lsls r0, 24
cmp r0, 0
beq _08075E70
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x9]
@@ -1278,7 +1278,7 @@ _08075E9C:
_08075EA0:
movs r4, 0x2
_08075EA2:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
mov r2, r8
@@ -1508,7 +1508,7 @@ _0807605C:
strh r1, [r0, 0x26]
ldr r0, =gDoingBattleAnim
strb r2, [r0]
- ldr r4, =gUnknown_020244D0
+ ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0, 0x4]
lsls r1, r6, 1
@@ -1619,7 +1619,7 @@ _08076130:
ands r0, r1
cmp r0, 0
beq _08076196
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r7, 1
@@ -1819,7 +1819,7 @@ _080762F8:
lsls r0, 24
cmp r0, 0
beq _08076358
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x9]
@@ -1892,7 +1892,7 @@ sub_8076398: @ 8076398
lsls r0, 24
cmp r0, 0
beq _080763E8
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x9]
diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s
index bc402d91c..1f8e45f0a 100644
--- a/asm/pokeblock_feed.s
+++ b/asm/pokeblock_feed.s
@@ -797,7 +797,7 @@ sub_817A2C0: @ 817A2C0
ldr r0, =gUnknown_0203BD18
ldr r0, [r0]
bl Free
- bl sub_805F094
+ bl FreeMonSpritesGfx
_0817A304:
pop {r4}
pop {r0}
diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s
index 48325cfed..f733033ff 100644
--- a/asm/recorded_battle.s
+++ b/asm/recorded_battle.s
@@ -348,7 +348,7 @@ _0818507A:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, =sub_80384E4
+ ldr r0, =CB2_QuitRecordedBattle
bl SetMainCallback2
movs r0, 0xFF
b _081850C6
@@ -681,8 +681,8 @@ _08185332:
bx r1
thumb_func_end sub_81852F0
- thumb_func_start sub_8185338
-sub_8185338: @ 8185338
+ thumb_func_start MoveRecordedBattleToSaveData
+MoveRecordedBattleToSaveData: @ 8185338
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1469,7 +1469,7 @@ _08185A14:
pop {r1}
bx r1
.pool
- thumb_func_end sub_8185338
+ thumb_func_end MoveRecordedBattleToSaveData
thumb_func_start sub_8185A54
sub_8185A54: @ 8185A54
@@ -2655,8 +2655,8 @@ sub_8186444: @ 8186444
.pool
thumb_func_end sub_8186444
- thumb_func_start rfu_lacks_rfufunc
-rfu_lacks_rfufunc: @ 8186450
+ thumb_func_start sub_8186450
+sub_8186450: @ 8186450
push {lr}
movs r1, 0
ldr r0, =gUnknown_0203CCD0
@@ -2669,7 +2669,7 @@ _0818645E:
pop {r1}
bx r1
.pool
- thumb_func_end rfu_lacks_rfufunc
+ thumb_func_end sub_8186450
thumb_func_start sub_8186468
sub_8186468: @ 8186468
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 8bc97b45a..c7e384a10 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -348,7 +348,7 @@ sub_80A9614: @ 80A9614
lsls r0, 24
cmp r0, 0
beq _080A9676
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r4, 2
@@ -404,7 +404,7 @@ _080A96AA:
bl sub_805DF84
b _080A96F4
_080A96B2:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r4, 2
@@ -459,7 +459,7 @@ sub_80A9708: @ 80A9708
bcc _080A9722
b _080A9AA0
_080A9722:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r2, r7, 2
@@ -591,7 +591,7 @@ _080A9786:
adds r1, r7, r1
ldrb r1, [r1]
bl StartSpriteAnim
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
ldr r2, [sp]
@@ -808,7 +808,7 @@ _080A998C:
adds r1, r7, r1
ldrb r1, [r1]
bl StartSpriteAnim
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
ldr r1, [sp]
@@ -839,7 +839,7 @@ _080A9A70:
adds r2, r0
lsls r2, 2
adds r2, r1
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
ldr r1, [sp]
diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s
index 6135f81e0..bb74b3713 100644
--- a/asm/rom_80A5C6C.s
+++ b/asm/rom_80A5C6C.s
@@ -94,7 +94,7 @@ _080A5D28:
lsls r0, 24
cmp r0, 0
beq _080A5D60
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -112,7 +112,7 @@ _080A5D28:
b _080A5D7E
.pool
_080A5D60:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -195,7 +195,7 @@ _080A5E00:
ldr r2, [r2, 0x8]
b _080A5E42
_080A5E04:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r4, 2
@@ -285,7 +285,7 @@ _080A5EC0:
_080A5EC8:
cmp r5, 0xC9
bne _080A5F58
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r4, 2
@@ -344,7 +344,7 @@ _080A5F44:
lsls r0, 16
lsrs r0, 16
_080A5F4E:
- ldr r1, =gUnknown_08300D38
+ ldr r1, =gMonFrontPicCoords
lsls r0, 2
b _080A5F90
.pool
@@ -352,7 +352,7 @@ _080A5F58:
ldr r0, =0x00000181
cmp r5, r0
bne _080A5F7C
- ldr r0, =gUnknown_08525F78
+ ldr r0, =gCastformFrontSpriteCoords
ldr r1, =gBattleMonForms
adds r1, r4, r1
ldrb r1, [r1]
@@ -366,11 +366,11 @@ _080A5F7C:
lsls r0, 1
cmp r5, r0
bls _080A5F8C
- ldr r0, =gUnknown_08300D38
+ ldr r0, =gMonFrontPicCoords
b _080A5F92
.pool
_080A5F8C:
- ldr r1, =gUnknown_08300D38
+ ldr r1, =gMonFrontPicCoords
_080A5F8E:
lsls r0, r5, 2
_080A5F90:
@@ -546,7 +546,7 @@ _080A60E4:
ldrh r1, [r2]
b _080A610E
_080A60E8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r4, 2
@@ -654,7 +654,7 @@ sub_80A6190: @ 80A6190
lsls r0, 24
cmp r0, 0
beq _080A61E4
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -672,7 +672,7 @@ sub_80A6190: @ 80A6190
b _080A6202
.pool
_080A61E4:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -2976,7 +2976,7 @@ _080A72B4:
lsls r0, 30
cmp r0, 0
bne _080A7312
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r7, 1
@@ -4571,7 +4571,7 @@ _080A7F78:
lsls r0, 24
cmp r0, 0
bne _080A7FD8
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -4606,7 +4606,7 @@ _080A7FD0:
b _080A8026
.pool
_080A7FD8:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r5, 2
@@ -4641,7 +4641,7 @@ _080A8018:
b _080A8042
.pool
_080A8024:
- ldr r0, =gUnknown_08300D38
+ ldr r0, =gMonFrontPicCoords
_080A8026:
lsls r1, r2, 2
adds r1, r0
@@ -5200,7 +5200,7 @@ _080A8412:
lsrs r0, 24
cmp r0, 0x1
beq _080A845E
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
ldr r2, [sp, 0x40]
@@ -5263,7 +5263,7 @@ _080A84B0:
lsrs r0, 24
cmp r0, 0x1
beq _080A84F6
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
ldr r3, [sp, 0x40]
@@ -5338,7 +5338,7 @@ _080A8540:
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
- ldr r3, =gUnknown_08300D38
+ ldr r3, =gMonFrontPicCoords
b _080A85B2
.pool
_080A85A0:
@@ -5490,7 +5490,7 @@ _080A86C4:
lsls r0, 24
cmp r0, 0
bne _080A8790
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r1, r8
@@ -5580,7 +5580,7 @@ _080A8784:
b _080A8864
.pool
_080A8790:
- ldr r0, =gUnknown_020244D0
+ ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r1, r8
@@ -5662,7 +5662,7 @@ _080A8834:
add r0, r8
ldrb r0, [r0]
lsls r0, 2
- ldr r1, =gUnknown_08525F78
+ ldr r1, =gCastformFrontSpriteCoords
adds r4, r0, r1
b _080A8866
.pool
@@ -5671,13 +5671,13 @@ _080A8850:
lsls r0, 1
cmp r7, r0
bls _080A8860
- ldr r4, =gUnknown_08300D38
+ ldr r4, =gMonFrontPicCoords
b _080A8866
.pool
_080A8860:
lsls r1, r7, 2
_080A8862:
- ldr r0, =gUnknown_08300D38
+ ldr r0, =gMonFrontPicCoords
_080A8864:
adds r4, r1, r0
_080A8866:
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index e5f69eeac..231879f02 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -842,7 +842,7 @@ sub_80F8EB8: @ 80F8EB8
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
- bl sub_805F094
+ bl FreeMonSpritesGfx
_080F8EDC:
pop {r0}
bx r0
diff --git a/asm/trade.s b/asm/trade.s
index 42ed85948..d4c54cef6 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -8939,7 +8939,7 @@ _0807C04C:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, =gUnknown_08300D38
+ ldr r2, =gMonFrontPicCoords
adds r0, r4, 0
adds r0, 0xF0
ldrh r0, [r0]
@@ -10395,7 +10395,7 @@ _0807CD1C:
adds r1, r0
lsls r1, 2
adds r1, r4
- ldr r3, =gUnknown_08300D38
+ ldr r3, =gMonFrontPicCoords
adds r2, 0xF2
ldrh r0, [r2]
lsls r0, 2
@@ -10663,7 +10663,7 @@ _0807CF5C:
movs r0, 0
bl GetBgTilemapBuffer
bl Free
- bl sub_805F094
+ bl FreeMonSpritesGfx
ldr r0, [r7]
bl Free
str r4, [r7]
@@ -11001,7 +11001,7 @@ _0807D428:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, =gUnknown_08300D38
+ ldr r2, =gMonFrontPicCoords
adds r0, r4, 0
adds r0, 0xF0
ldrh r0, [r0]
@@ -12500,7 +12500,7 @@ _0807E168:
adds r1, r0
lsls r1, 2
adds r1, r4
- ldr r3, =gUnknown_08300D38
+ ldr r3, =gMonFrontPicCoords
adds r2, 0xF2
ldrh r0, [r2]
lsls r0, 2
@@ -12768,7 +12768,7 @@ _0807E3A8:
movs r0, 0
bl GetBgTilemapBuffer
bl Free
- bl sub_805F094
+ bl FreeMonSpritesGfx
ldr r0, [r7]
bl Free
str r4, [r7]
@@ -14136,7 +14136,7 @@ c2_080543C4: @ 807F068
movs r0, 0
bl GetBgTilemapBuffer
bl Free
- bl sub_805F094
+ bl FreeMonSpritesGfx
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
bl Free
diff --git a/data/battle_anims.s b/data/battle_anims.s
index 6b48bcd2a..8b285f7be 100644
--- a/data/battle_anims.s
+++ b/data/battle_anims.s
@@ -327,7 +327,7 @@ gUnknown_08525E98:: @ 8525E98
gUnknown_08525F58:: @ 8525F58
.incbin "baserom.gba", 0x525f58, 0x20
-gUnknown_08525F78:: @ 8525F78
+gCastformFrontSpriteCoords:: @ 8525F78
.incbin "baserom.gba", 0x525f78, 0x10
gUnknown_08525F88:: @ 8525F88
diff --git a/data/data2b.s b/data/data2b.s
index fd72e835e..96d56c820 100644
--- a/data/data2b.s
+++ b/data/data2b.s
@@ -95,7 +95,7 @@ gUnknown_082FF6C0:: @ 82FF6C0
gUnknown_082FF70C:: @ 82FF70C
.incbin "baserom.gba", 0x2ff70c, 0x162c
-gUnknown_08300D38:: @ 8300D38
+gMonFrontPicCoords:: @ 8300D38
.incbin "baserom.gba", 0x300d38, 0x6e0
@ 8301418
@@ -196,8 +196,13 @@ gUnknown_0831AC70:: @ 831AC70
gUnknown_0831AC88:: @ 831AC88
.incbin "baserom.gba", 0x31ac88, 0x18
-gUnknown_0831ACA0:: @ 831ACA0
- .incbin "baserom.gba", 0x31aca0, 0x40
+gText_ShedinjaJapaneseName:: @ 831ACA0
+ .string "ヌケニン$" @Nukenin
+
+.align 2
+
+gUnknown_0831ACA8:: @ 831ACA8
+ .incbin "baserom.gba", 0x31aca8, 0x38
gUnknown_0831ACE0:: @ 831ACE0
.incbin "baserom.gba", 0x31ace0, 0x8
diff --git a/data/event_scripts.s b/data/event_scripts.s
index e4293570d..4dd5761e5 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -84,14 +84,14 @@ gUnknown_0823B68C:: @ 823B68C
gUnknown_0823C050:: @ 823C050
.incbin "baserom.gba", 0x23c050, 0x6431
-gUnknown_08242481:: @ 8242481
+gText_BattleRecordCouldntBeSaved:: @ 8242481
.incbin "baserom.gba", 0x242481, 0x87b
gUnknown_08242CFC:: @ 8242CFC
.incbin "baserom.gba", 0x242cfc, 0x6a91
-gUnknown_0824978D:: @ 824978D
- .incbin "baserom.gba", 0x24978d, 0xe
+gText_LinkStandby3:: @ 824978D
+ .string "Link standby…$"
gUnknown_0824979B:: @ 824979B
.incbin "baserom.gba", 0x24979b, 0x944d
diff --git a/include/battle.h b/include/battle.h
index 72168aa60..afb3c8d6e 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -264,32 +264,32 @@
struct TrainerMonNoItemDefaultMoves
{
- u16 species;
+ u16 iv;
u8 lvl;
- u16 evsValue;
+ u16 species;
};
struct TrainerMonItemDefaultMoves
{
- u16 species;
+ u16 iv;
u8 lvl;
- u16 evsValue;
+ u16 species;
u16 heldItem;
};
struct TrainerMonNoItemCustomMoves
{
- u16 species;
+ u16 iv;
u8 lvl;
- u16 evsValue;
+ u16 species;
u16 moves[4];
};
struct TrainerMonItemCustomMoves
{
- u16 species;
+ u16 iv;
u8 lvl;
- u16 evsValue;
+ u16 species;
u16 heldItem;
u16 moves[4];
};
@@ -863,10 +863,13 @@ extern struct BattleScripting gBattleScripting;
// battle_1
void LoadBattleTextboxAndBackground(void);
void LoadBattleEntryBackground(void);
+void ApplyPlayerChosenFrameToBattleMenu(void);
+bool8 LoadChosenBattleElement(u8 caseId);
void task00_0800F6FC(u8 taskId);
// battle_2
void CB2_InitBattle(void);
+void CB2_QuitRecordedBattle(void);
void CancelMultiTurnMoves(u8 bank);
void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move);
void PrepareStringBattle(u16 stringId, u8 bank);
@@ -933,15 +936,18 @@ extern const u8 gUnknown_0831C494[];
// battle_5
void AllocateBattleResrouces(void);
+void FreeBattleResources(void);
void AdjustFriendshipOnBattleFaint(u8 bank);
void sub_80571DC(u8 bank, u8 arg1);
u32 sub_805725C(u8 bank);
// battle 7
void AllocateBattleSpritesData(void);
+void FreeBattleSpritesData(void);
+void AllocateMonSpritesGfx(void);
+void FreeMonSpritesGfx(void);
void BattleMusicStop(void);
void sub_805E990(struct Pokemon* mon, u8 bank);
-void AllocateMonSpritesGfx(void);
void sub_805EF14(void);
bool8 BattleInitAllSprites(u8 *state1, u8 *state2);
@@ -950,6 +956,30 @@ u8 GetBankSide(u8 bank);
u8 GetBankIdentity(u8 bank);
u8 GetBankByIdentity(u8 bank);
+struct BattleSpriteInfo
+{
+ u16 invisible : 1; // 0x1
+ u16 flag_x2 : 1; // 0x2
+ u16 behindSubstitute : 1; // 0x4
+ u16 flag_x8 : 1; // 0x8
+ u16 hpNumbersNoBars : 1; // 0x10
+ u16 transformSpecies;
+};
+
+struct BattleAnimationInfo
+{
+ u16 field; // to fill up later
+};
+
+struct BattleSpriteData
+{
+ struct BattleSpriteInfo *bankData;
+ void* field_4;
+ struct BattleAnimationInfo *animationData;
+};
+
+extern struct BattleSpriteData *gBattleSpritesDataPtr;
+
// Move this somewhere else
#include "sprite.h"
diff --git a/include/link.h b/include/link.h
index b719371da..9d581a6c1 100644
--- a/include/link.h
+++ b/include/link.h
@@ -182,5 +182,6 @@ void sub_800E0E8(void);
bool8 sub_800A520(void);
bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
+void sub_800ADF8(void);
#endif // GUARD_LINK_H
diff --git a/include/main.h b/include/main.h
index e5460b3bf..e283d1754 100644
--- a/include/main.h
+++ b/include/main.h
@@ -39,6 +39,7 @@ struct Main
/*0x439*/ u8 oamLoadDisabled:1;
/*0x439*/ u8 inBattle:1;
+ /*0x439*/ u8 field_439_x4:1;
};
extern u8 gUnknown_3001764;
diff --git a/include/pokemon.h b/include/pokemon.h
index 5ebb9afb1..4b678d679 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -637,5 +637,6 @@ void sub_8068AA4(void); // sets stats for deoxys
#include "sprite.h"
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
+void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
#endif // GUARD_POKEMON_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index 407d0caf7..5f3099d83 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -7,5 +7,8 @@ void sub_8185F84(void);
void sub_8184E58(void);
void RecordedBattle_SetBankAction(u8 bank, u8 action);
void sub_8185F90(u16 arg0);
+bool8 sub_8186450(void);
+u8 sub_8185FAC(void);
+u8 MoveRecordedBattleToSaveData(void);
#endif // GUARD_RECORDED_BATTLE_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
index 7457451a8..9c6968c30 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -17,5 +17,6 @@ extern struct UnknownTaskStruct gUnknown_0831AC70;
// Exported ROM declarations
void remove_some_task(void);
void sub_80BA038(struct UnknownTaskStruct arg0);
+void sub_80BA0A8(void);
#endif // GUARD_unknown_task_H
diff --git a/src/battle_2.c b/src/battle_2.c
index 844827326..8d1f6a7a1 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -20,6 +20,14 @@
#include "dma3.h"
#include "string_util.h"
#include "malloc.h"
+#include "event_data.h"
+#include "m4a.h"
+#include "window.h"
+#include "rng.h"
+#include "songs.h"
+#include "sound.h"
+#include "battle_message.h"
+#include "sprite.h"
struct UnknownStruct6
{
@@ -64,21 +72,43 @@ extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
extern void (*gPreBattleCallback1)(void);
extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for?
extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for?
-
+extern u8 gBattleOutcome;
+extern u8 gUnknown_02039B28[]; // possibly a struct?
extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document
+extern struct MusicPlayerInfo gMPlay_SE1;
+extern struct MusicPlayerInfo gMPlay_SE2;
+extern u8 gDecompressionBuffer[];
+extern u16 gUnknown_020243FC;
+extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+
+extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
+extern const struct BattleMove gBattleMoves[];
+extern const u16 gUnknown_08C004E0[]; // battle textbox palette
+extern const struct BgTemplate gUnknown_0831AA08[];
+extern const struct WindowTemplate * const gUnknown_0831ABA0[];
+
+// strings
+extern const u8 gText_LinkStandby3[];
+extern const u8 gText_RecordBattleToPass[];
+extern const u8 gText_BattleYesNoChoice[];
+extern const u8 gText_BattleRecordCouldntBeSaved[];
+extern const u8 gText_BattleRecordedOnPass[];
+extern const u8 gText_ShedinjaJapaneseName[];
extern void HandleLinkBattleSetup(void); // rom_3
extern void SetUpBattleVarsAndBirchZigzagoon(void); // rom_3
extern void sub_8032768(void); // rom_3
extern void dp12_8087EA4(void);
-extern void c2_berry_program_update_menu(void);
+extern void sub_80356D0(void);
extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower
extern void sub_8166188(void); // battle tower, sets link battle mons level but why?
extern void sub_8165B88(u8* dst, u16 trainerId); // battle tower, gets language
extern void sub_81DB4DC(u8* dst, u8 arg2); //
extern void sub_81B9150(void);
-extern void sub_800ADF8(void);
extern void sub_800AC34(void);
+extern void sub_80B3AF8(u8 taskId); // cable club
+extern void sub_8076918(u8 bank);
+extern void sub_80729D0(u8 healthoxSpriteId);
// this file's functions
static void CB2_InitBattleInternal(void);
@@ -87,9 +117,22 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void);
static void CB2_HandleStartMultiPartnerBattle(void);
static void CB2_HandleStartMultiBattle(void);
static void CB2_HandleStartBattle(void);
-void shedinja_something(struct Pokemon *mon);
-void CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer);
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer);
void BattleMainCB1(void);
+static void sub_8038538(struct Sprite *sprite);
+static void sub_8038F14(void);
+static void sub_8038F34(void);
+static void sub_80392A8(void);
+static void sub_803937C(void);
+static void sub_803939C(void);
+static void oac_poke_opponent(struct Sprite *sprite);
+static void sub_803980C(struct Sprite *sprite);
+static void sub_8039838(struct Sprite *sprite);
+static void sub_8039894(struct Sprite *sprite);
+static void sub_80398D0(struct Sprite *sprite);
+static void sub_8039A48(struct Sprite *sprite);
+void sub_8039AF4(struct Sprite *sprite);
void CB2_InitBattle(void)
{
@@ -129,7 +172,7 @@ static void CB2_InitBattleInternal(void)
SetHBlankCallback(NULL);
SetVBlankCallback(NULL);
- CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
SetGpuReg(REG_OFFSET_MOSAIC, 0);
SetGpuReg(REG_OFFSET_WIN0H, 240);
@@ -182,7 +225,7 @@ static void CB2_InitBattleInternal(void)
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
gBattleTerrain = BATTLE_TERRAIN_INSIDE;
- c2_berry_program_update_menu();
+ sub_80356D0();
LoadBattleTextboxAndBackground();
ResetSpriteData();
ResetTasks();
@@ -573,12 +616,12 @@ static void CB2_HandleStartBattle(void)
{
ResetBlockReceivedFlags();
memcpy(gEnemyParty + 4, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
- shedinja_something(&gEnemyParty[0]);
- shedinja_something(&gEnemyParty[1]);
- shedinja_something(&gEnemyParty[2]);
- shedinja_something(&gEnemyParty[3]);
- shedinja_something(&gEnemyParty[4]);
- shedinja_something(&gEnemyParty[5]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[0]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[1]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[2]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[3]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[4]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[5]);
gBattleCommunication[MULTIUSE_STATE]++;
}
break;
@@ -827,18 +870,18 @@ static void CB2_HandleStartMultiPartnerBattle(void)
ResetBlockReceivedFlags();
if (GetMultiplayerId() != 0)
memcpy(gEnemyParty + 4, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2);
- shedinja_something(&gPlayerParty[0]);
- shedinja_something(&gPlayerParty[1]);
- shedinja_something(&gPlayerParty[2]);
- shedinja_something(&gPlayerParty[3]);
- shedinja_something(&gPlayerParty[4]);
- shedinja_something(&gPlayerParty[5]);
- shedinja_something(&gEnemyParty[0]);
- shedinja_something(&gEnemyParty[1]);
- shedinja_something(&gEnemyParty[2]);
- shedinja_something(&gEnemyParty[3]);
- shedinja_something(&gEnemyParty[4]);
- shedinja_something(&gEnemyParty[5]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[0]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[1]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[2]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[3]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[4]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[5]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[0]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[1]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[2]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[3]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[4]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[5]);
gBattleCommunication[MULTIUSE_STATE]++;
}
break;
@@ -1262,19 +1305,19 @@ static void CB2_HandleStartMultiBattle(void)
}
}
}
- shedinja_something(&gPlayerParty[0]);
- shedinja_something(&gPlayerParty[1]);
- shedinja_something(&gPlayerParty[2]);
- shedinja_something(&gPlayerParty[3]);
- shedinja_something(&gPlayerParty[4]);
- shedinja_something(&gPlayerParty[5]);
-
- shedinja_something(&gEnemyParty[0]);
- shedinja_something(&gEnemyParty[1]);
- shedinja_something(&gEnemyParty[2]);
- shedinja_something(&gEnemyParty[3]);
- shedinja_something(&gEnemyParty[4]);
- shedinja_something(&gEnemyParty[5]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[0]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[1]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[2]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[3]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[4]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[5]);
+
+ TryCorrectShedinjaLanguage(&gEnemyParty[0]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[1]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[2]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[3]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[4]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[5]);
gBattleCommunication[MULTIUSE_STATE]++;
}
@@ -1341,3 +1384,991 @@ static void CB2_HandleStartMultiBattle(void)
}
}
+void BattleMainCB2(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+
+ if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450())
+ {
+ gScriptResult = gBattleOutcome = BATTLE_PLAYER_TELEPORTED;
+ ResetPaletteFadeControl();
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ SetMainCallback2(CB2_QuitRecordedBattle);
+ }
+}
+
+static void FreeRestoreBattleData(void)
+{
+ gMain.callback1 = gPreBattleCallback1;
+ gUnknown_02039B28[0x15] = 3;
+ gMain.inBattle = 0;
+ ZeroEnemyPartyMons();
+ m4aSongNumStop(0x5A);
+ FreeMonSpritesGfx();
+ FreeBattleSpritesData();
+ FreeBattleResources();
+}
+
+void CB2_QuitRecordedBattle(void)
+{
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ m4aMPlayStop(&gMPlay_SE1);
+ m4aMPlayStop(&gMPlay_SE2);
+ FreeRestoreBattleData();
+ FreeAllWindowBuffers();
+ SetMainCallback2(gMain.savedCallback);
+ }
+}
+
+static void sub_8038528(struct Sprite* sprite)
+{
+ sprite->data0 = 0;
+ sprite->callback = sub_8038538;
+}
+
+static void sub_8038538(struct Sprite *sprite)
+{
+ u16 *arr = (u16*)(gDecompressionBuffer);
+
+ switch (sprite->data0)
+ {
+ case 0:
+ sprite->data0++;
+ sprite->data1 = 0;
+ sprite->data2 = 0x281;
+ sprite->data3 = 0;
+ sprite->data4 = 1;
+ // fall through
+ case 1:
+ sprite->data4--;
+ if (sprite->data4 == 0)
+ {
+ s32 i;
+ s32 r2;
+ s32 r0;
+
+ sprite->data4 = 2;
+ r2 = sprite->data1 + sprite->data3 * 32;
+ r0 = sprite->data2 - sprite->data3 * 32;
+ for (i = 0; i < 29; i += 2)
+ {
+ arr[r2 + i] = 0x3D;
+ arr[r0 + i] = 0x3D;
+ }
+ sprite->data3++;
+ if (sprite->data3 == 21)
+ {
+ sprite->data0++;
+ sprite->data1 = 32;
+ }
+ }
+ break;
+ case 2:
+ sprite->data1--;
+ if (sprite->data1 == 20)
+ SetMainCallback2(CB2_InitBattle);
+ break;
+ }
+}
+
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer)
+{
+ u32 nameHash = 0;
+ u32 personalityValue;
+ u8 fixedIV;
+ s32 i, j;
+ u8 monsCount;
+
+ if (trainerNum == SECRET_BASE_OPPONENT)
+ return 0;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER
+ | BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_x4000000)))
+ {
+ if (firstTrainer == TRUE)
+ ZeroEnemyPartyMons();
+
+ if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
+ {
+ if (gTrainers[trainerNum].partySize > 3)
+ monsCount = 3;
+ else
+ monsCount = gTrainers[trainerNum].partySize;
+ }
+ else
+ {
+ monsCount = gTrainers[trainerNum].partySize;
+ }
+
+ for (i = 0; i < monsCount; i++)
+ {
+
+ if (gTrainers[trainerNum].doubleBattle == TRUE)
+ personalityValue = 0x80;
+ else if (gTrainers[trainerNum].encounterMusic_gender & 0x80)
+ personalityValue = 0x78;
+ else
+ personalityValue = 0x88;
+
+ for (j = 0; gTrainers[trainerNum].trainerName[j] != 0xFF; j++)
+ nameHash += gTrainers[trainerNum].trainerName[j];
+
+ switch (gTrainers[trainerNum].partyFlags)
+ {
+ case 0:
+ {
+ const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
+ break;
+ }
+ case PARTY_FLAG_CUSTOM_MOVES:
+ {
+ const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
+
+ for (j = 0; j < 4; j++)
+ {
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
+ }
+ break;
+ }
+ case PARTY_FLAG_HAS_ITEM:
+ {
+ const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
+
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
+ break;
+ }
+ case PARTY_FLAG_CUSTOM_MOVES | PARTY_FLAG_HAS_ITEM:
+ {
+ const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
+
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
+
+ for (j = 0; j < 4; j++)
+ {
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
+ }
+ break;
+ }
+ }
+ }
+
+ gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle;
+ }
+
+ return gTrainers[trainerNum].partySize;
+}
+
+void sub_8038A04(void) // unused
+{
+ if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F)
+ SetGpuReg(REG_OFFSET_BG0CNT, 0x9800);
+}
+
+void VBlankCB_Battle(void)
+{
+ // change gRngSeed every vblank unless the battle could be recorded
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED)))
+ Random();
+
+ SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X);
+ SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
+ SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+ SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
+ SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
+ SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X);
+ SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y);
+ SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
+ SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H);
+ SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V);
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80BA0A8();
+}
+
+void nullsub_17(void)
+{
+
+}
+
+static void sub_8038B04(struct Sprite *sprite)
+{
+ if (sprite->data0 != 0)
+ sprite->pos1.x = sprite->data1 + ((sprite->data2 & 0xFF00) >> 8);
+ else
+ sprite->pos1.x = sprite->data1 - ((sprite->data2 & 0xFF00) >> 8);
+
+ sprite->data2 += 0x180;
+
+ if (sprite->affineAnimEnded)
+ {
+ FreeSpriteTilesByTag(0x2710);
+ FreeSpritePaletteByTag(0x2710);
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ }
+}
+
+void sub_8038B74(struct Sprite *sprite)
+{
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->callback = sub_8038B04;
+ PlaySE(SE_BT_START);
+}
+
+static void sub_8038B94(u8 taskId)
+{
+ struct Pokemon *sp4 = NULL;
+ struct Pokemon *sp8 = NULL;
+ u8 r2 = gBattleScripting.multiplayerId;
+ u32 r7;
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ switch (gLinkPlayers[r2].lp_field_18)
+ {
+ case 0:
+ case 2:
+ sp4 = gPlayerParty;
+ sp8 = gEnemyParty;
+ break;
+ case 1:
+ case 3:
+ sp4 = gEnemyParty;
+ sp8 = gPlayerParty;
+ break;
+ }
+ }
+ else
+ {
+ sp4 = gPlayerParty;
+ sp8 = gEnemyParty;
+ }
+
+ r7 = 0;
+ for (i = 0; i < 6; i++)
+ {
+ u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2);
+ u16 hp = GetMonData(&sp4[i], MON_DATA_HP);
+ u32 status = GetMonData(&sp4[i], MON_DATA_STATUS);
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp != 0 && status == 0)
+ r7 |= 1 << i * 2;
+
+ if (species == 0)
+ continue;
+ if (hp != 0 && (species == SPECIES_EGG || status != 0))
+ r7 |= 2 << i * 2;
+
+ if (species == 0)
+ continue;
+ if (species != SPECIES_EGG && hp == 0)
+ r7 |= 3 << i * 2;
+ }
+ gTasks[taskId].data[3] = r7;
+
+ r7 = 0;
+ for (i = 0; i < 6; i++)
+ {
+ u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2);
+ u16 hp = GetMonData(&sp8[i], MON_DATA_HP);
+ u32 status = GetMonData(&sp8[i], MON_DATA_STATUS);
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp != 0 && status == 0)
+ r7 |= 1 << i * 2;
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (hp != 0 && (species == SPECIES_EGG || status != 0))
+ r7 |= 2 << i * 2;
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp == 0)
+ r7 |= 3 << i * 2;
+ }
+ gTasks[taskId].data[4] = r7;
+}
+
+void sub_8038D64(void)
+{
+ s32 i;
+ u8 taskId;
+
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ gBattleTypeFlags &= ~(BATTLE_TYPE_20);
+
+ if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
+ {
+ SetMainCallback2(gMain.savedCallback);
+ FreeBattleResources();
+ FreeBattleSpritesData();
+ FreeMonSpritesGfx();
+ }
+ else
+ {
+ CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0x5051);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ gBattle_WIN0H = 0xF0;
+ gBattle_WIN0V = 0x5051;
+ dp12_8087EA4();
+
+ for (i = 0; i < 80; i++)
+ {
+ gUnknown_02038C28.unk0[i] = 0xF0;
+ gUnknown_02038C28.unk780[i] = 0xF0;
+ }
+ for (i = 80; i < 160; i++)
+ {
+ asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
+ gUnknown_02038C28.unk0[i] = 0xFF10;
+ gUnknown_02038C28.unk780[i] = 0xFF10;
+ }
+
+ ResetPaletteFade();
+
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+
+ sub_80356D0();
+ LoadCompressedPalette(gUnknown_08C004E0, 0, 64);
+ ApplyPlayerChosenFrameToBattleMenu();
+ ResetSpriteData();
+ ResetTasks();
+ LoadBattleEntryBackground();
+ SetGpuReg(REG_OFFSET_WINOUT, 0x37);
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ SetVBlankCallback(VBlankCB_Battle);
+
+ taskId = CreateTask(task00_0800F6FC, 0);
+ gTasks[taskId].data[1] = 0x10E;
+ gTasks[taskId].data[2] = 0x5A;
+ gTasks[taskId].data[5] = 1;
+ sub_8038B94(taskId);
+ SetMainCallback2(sub_8038F14);
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+ }
+}
+
+static void sub_8038F14(void)
+{
+ sub_8038F34();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+static void sub_8038F34(void)
+{
+ s32 i;
+
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ gBattleCommunication[1] = 0xFF;
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 1:
+ if (--gBattleCommunication[1] == 0)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ u8 monsCount;
+
+ gMain.field_439_x4 = sub_8185FAC();
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ monsCount = 4;
+ else
+ monsCount = 2;
+
+ for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == 3; i++);
+
+ if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount)
+ {
+ if (FlagGet(SYS_FRONTIER_PASS))
+ {
+ FreeAllWindowBuffers();
+ SetMainCallback2(sub_80392A8);
+ }
+ else if (!gMain.field_439_x4)
+ {
+ SetMainCallback2(gMain.savedCallback);
+ FreeBattleResources();
+ FreeBattleSpritesData();
+ FreeMonSpritesGfx();
+ }
+ else if (gReceivedRemoteLinkPlayers == 0)
+ {
+ CreateTask(sub_80B3AF8, 5);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ else
+ {
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ }
+ else
+ {
+ SetMainCallback2(gMain.savedCallback);
+ FreeBattleResources();
+ FreeBattleSpritesData();
+ FreeMonSpritesGfx();
+ }
+ }
+ break;
+ case 3:
+ CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
+
+ for (i = 0; i < 2; i++)
+ LoadChosenBattleElement(i);
+
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 5:
+ if (!FuncIsActiveTask(sub_80B3AF8))
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 6:
+ if (sub_800A520() == TRUE)
+ {
+ sub_800ADF8();
+ sub_814F9EC(gText_LinkStandby3, 0);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 7:
+ if (!IsTextPrinterActive(0))
+ {
+ if (sub_800A520() == TRUE)
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 8:
+ if (!gLinkVSyncDisabled)
+ sub_800AC34();
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 9:
+ if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
+ {
+ gMain.field_439_x4 = 0;
+ SetMainCallback2(gMain.savedCallback);
+ FreeBattleResources();
+ FreeBattleSpritesData();
+ FreeMonSpritesGfx();
+ }
+ break;
+ }
+}
+
+u32 sub_80391E0(u8 arrayId, u8 caseId)
+{
+ u32 ret = 0;
+
+ switch (caseId)
+ {
+ case 0:
+ ret = gUnknown_0831AA08[arrayId].bg;
+ break;
+ case 1:
+ ret = gUnknown_0831AA08[arrayId].charBaseIndex;
+ break;
+ case 2:
+ ret = gUnknown_0831AA08[arrayId].mapBaseIndex;
+ break;
+ case 3:
+ ret = gUnknown_0831AA08[arrayId].screenSize;
+ break;
+ case 4:
+ ret = gUnknown_0831AA08[arrayId].paletteMode;
+ break;
+ case 5:
+ ret = gUnknown_0831AA08[arrayId].priority;
+ break;
+ case 6:
+ ret = gUnknown_0831AA08[arrayId].baseTile;
+ break;
+ }
+
+ return ret;
+}
+
+static void sub_80392A8(void)
+{
+ s32 i;
+
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
+ ResetPaletteFade();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ sub_80356D0();
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ApplyPlayerChosenFrameToBattleMenu();
+
+ for (i = 0; i < 2; i++)
+ LoadChosenBattleElement(i);
+
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ SetVBlankCallback(VBlankCB_Battle);
+ SetMainCallback2(sub_803937C);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+}
+
+static void sub_803937C(void)
+{
+ sub_803939C();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+static void sub_803939C(void)
+{
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 1:
+ if (gMain.field_439_x4 && gReceivedRemoteLinkPlayers == 0)
+ CreateTask(sub_80B3AF8, 5);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 2:
+ if (!FuncIsActiveTask(sub_80B3AF8))
+ gBattleCommunication[MULTIUSE_STATE]++;
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ sub_814F9EC(gText_RecordBattleToPass, 0);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 4:
+ if (!IsTextPrinterActive(0))
+ {
+ sub_8056A3C(0x18, 8, 0x1D, 0xD, 0);
+ sub_814F9EC(gText_BattleYesNoChoice, 0xC);
+ gBattleCommunication[CURSOR_POSITION] = 1;
+ BattleCreateCursorAt(1);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 5:
+ if (gMain.newKeys & DPAD_UP)
+ {
+ if (gBattleCommunication[CURSOR_POSITION] != 0)
+ {
+ PlaySE(SE_SELECT);
+ BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]);
+ gBattleCommunication[CURSOR_POSITION] = 0;
+ BattleCreateCursorAt(0);
+ }
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (gBattleCommunication[CURSOR_POSITION] == 0)
+ {
+ PlaySE(SE_SELECT);
+ BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]);
+ gBattleCommunication[CURSOR_POSITION] = 1;
+ BattleCreateCursorAt(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gBattleCommunication[CURSOR_POSITION] == 0)
+ {
+ sub_8056A3C(0x18, 8, 0x1D, 0xD, 1);
+ gBattleCommunication[1] = MoveRecordedBattleToSaveData();
+ gBattleCommunication[MULTIUSE_STATE] = 10;
+ }
+ else
+ {
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 6:
+ if (sub_800A520() == TRUE)
+ {
+ sub_8056A3C(0x18, 8, 0x1D, 0xD, 1);
+ if (gMain.field_439_x4)
+ {
+ sub_800ADF8();
+ sub_814F9EC(gText_LinkStandby3, 0);
+ }
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 8:
+ if (--gBattleCommunication[1] == 0)
+ {
+ if (gMain.field_439_x4 && !gLinkVSyncDisabled)
+ sub_800AC34();
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 9:
+ if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
+ {
+ gMain.field_439_x4 = 0;
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(gMain.savedCallback);
+ FreeBattleResources();
+ FreeBattleSpritesData();
+ FreeMonSpritesGfx();
+ }
+ }
+ break;
+ case 10:
+ if (gBattleCommunication[1] == 1)
+ {
+ PlaySE(SE_SAVE);
+ BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordedOnPass);
+ sub_814F9EC(gDisplayedStringBattle, 0);
+ gBattleCommunication[1] = 0x80;
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ else
+ {
+ BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordCouldntBeSaved);
+ sub_814F9EC(gDisplayedStringBattle, 0);
+ gBattleCommunication[1] = 0x80;
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 11:
+ if (sub_800A520() == TRUE && !IsTextPrinterActive(0) && --gBattleCommunication[1] == 0)
+ {
+ if (gMain.field_439_x4)
+ {
+ sub_800ADF8();
+ sub_814F9EC(gText_LinkStandby3, 0);
+ }
+ gBattleCommunication[MULTIUSE_STATE]++;
+ }
+ break;
+ case 12:
+ case 7:
+ if (!IsTextPrinterActive(0))
+ {
+ if (gMain.field_439_x4)
+ {
+ if (sub_800A520() == TRUE)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gBattleCommunication[1] = 0x20;
+ gBattleCommunication[MULTIUSE_STATE] = 8;
+ }
+
+ }
+ else
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gBattleCommunication[1] = 0x20;
+ gBattleCommunication[MULTIUSE_STATE] = 8;
+ }
+ }
+ break;
+ }
+}
+
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
+{
+ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ u8 language = LANGUAGE_JAPANESE;
+
+ if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA
+ && GetMonData(mon, MON_DATA_LANGUAGE) != language)
+ {
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ if (StringCompareWithoutExtCtrlCodes(nickname, gText_ShedinjaJapaneseName) == 0)
+ SetMonData(mon, MON_DATA_LANGUAGE, &language);
+ }
+}
+
+u32 sub_80397C4(u32 setId, u32 tableId)
+{
+ return gUnknown_0831ABA0[setId][tableId].width * 8;
+}
+
+#define tBank data0
+#define tSpeciesId data2
+
+static void oac_poke_opponent(struct Sprite *sprite)
+{
+ sprite->callback = sub_803980C;
+ StartSpriteAnimIfDifferent(sprite, 0);
+ BeginNormalPaletteFade(0x20000, 0, 10, 10, 0x2108);
+}
+
+static void sub_803980C(struct Sprite *sprite)
+{
+ if ((gUnknown_020243FC & 1) == 0)
+ {
+ sprite->pos2.x += 2;
+ if (sprite->pos2.x == 0)
+ {
+ sprite->callback = sub_8039838;
+ }
+ }
+}
+
+static void sub_8039838(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ sub_8076918(sprite->tBank);
+ sub_80729D0(gHealthBoxesIds[sprite->tBank]);
+ sprite->callback = sub_8039894;
+ StartSpriteAnimIfDifferent(sprite, 0);
+ BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108);
+ }
+}
+
+static void sub_8039894(struct Sprite *sprite)
+{
+ if (!gPaletteFade.active)
+ {
+ BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, FALSE, 1);
+ }
+}
+
+void SpriteCallbackDummy_2(struct Sprite *sprite)
+{
+
+}
+
+static void sub_80398BC(struct Sprite *sprite) // unused?
+{
+ sprite->data3 = 6;
+ sprite->data4 = 1;
+ sprite->callback = sub_80398D0;
+}
+
+extern u32 gUnknown_02022F88;
+extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+
+static void sub_80398D0(struct Sprite *sprite)
+{
+ sprite->data4--;
+ if (sprite->data4 == 0)
+ {
+ sprite->data4 = 8;
+ sprite->invisible ^= 1;
+ sprite->data3--;
+ if (sprite->data3 == 0)
+ {
+ sprite->invisible = FALSE;
+ sprite->callback = SpriteCallbackDummy_2;
+ gUnknown_02022F88 = 0;
+ }
+ }
+}
+
+// to get rid of once the struct is declared in a header
+struct MonCoords
+{
+ // This would use a bitfield, but sub_8079F44
+ // uses it as a u8 and casting won't match.
+ u8 coords; // u8 x:4, y:4;
+ u8 y_offset;
+};
+
+extern const struct MonCoords gMonFrontPicCoords[];
+extern const struct MonCoords gCastformFrontSpriteCoords[];
+
+void sub_8039934(struct Sprite *sprite)
+{
+ u8 bank = sprite->tBank;
+ u16 species;
+ u8 yOffset;
+
+ if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != 0)
+ species = gBattleSpritesDataPtr->bankData[bank].transformSpecies;
+ else
+ species = sprite->tSpeciesId;
+
+ GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); // Unused return value
+
+ if (species == SPECIES_UNOWN)
+ {
+ u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY);
+ u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C);
+ u16 unownSpecies;
+
+ if (unownForm == 0)
+ unownSpecies = SPECIES_UNOWN; // Use the A Unown form
+ else
+ unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters
+
+ yOffset = gMonFrontPicCoords[unownSpecies].y_offset;
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
+ yOffset = gCastformFrontSpriteCoords[gBattleMonForms[bank]].y_offset;
+ }
+ else if (species > NUM_SPECIES)
+ {
+ yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset;
+ }
+ else
+ {
+ yOffset = gMonFrontPicCoords[species].y_offset;
+ }
+
+ sprite->data3 = 8 - yOffset / 8;
+ sprite->data4 = 1;
+ sprite->callback = sub_8039A48;
+}
+
+static void sub_8039A48(struct Sprite *sprite)
+{
+ s32 i;
+
+ sprite->data4--;
+ if (sprite->data4 == 0)
+ {
+ sprite->data4 = 2;
+ sprite->pos2.y += 8;
+ sprite->data3--;
+ if (sprite->data3 < 0)
+ {
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ }
+ else
+ {
+ u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankIdentity(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data3 << 8);
+
+ for (i = 0; i < 0x100; i++)
+ *(dst++) = 0;
+
+ StartSpriteAnim(sprite, gBattleMonForms[sprite->tBank]);
+ }
+ }
+}
+
+void sub_8039AD8(struct Sprite *sprite)
+{
+ sprite->data3 = 8;
+ sprite->data4 = sprite->invisible;
+ sprite->callback = sub_8039AF4;
+}
+
+void sub_8039AF4(struct Sprite *sprite)
+{
+ sprite->data3--;
+ if (sprite->data3 == 0)
+ {
+ sprite->invisible ^= 1;
+ sprite->data3 = 8;
+ }
+}
+
+void sub_8039B2C(struct Sprite *sprite)
+{
+ sprite->invisible = sprite->data4;
+ sprite->data4 = FALSE;
+ sprite->callback = SpriteCallbackDummy_2;
+}
+
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 3b719b8ed..03e1b6a4a 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -145,7 +145,7 @@ extern u16 GetBattlePyramidPickupItemId(void);
extern u8 sav1_map_get_light_level(void);
extern u8 sub_813B21C(void);
extern u16 get_unknown_box_id(void);
-extern void c2_berry_program_update_menu(void);
+extern void sub_80356D0(void);
// BattleScripts
extern const u8 BattleScript_MoveEnd[];
@@ -11216,7 +11216,7 @@ static void atkF2_display_dex_info(void)
}
break;
case 3:
- c2_berry_program_update_menu();
+ sub_80356D0();
LoadBattleTextboxAndBackground();
gBattle_BG3_X = 0x100;
gBattleCommunication[0]++;
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index c5cee6357..4e4c10090 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -65,7 +65,7 @@ extern void fade_screen(u8, u8);
extern void overworld_free_bg_tilemaps(void);
extern void sub_80AF168(void);
extern void AllocateMonSpritesGfx(void);
-extern void sub_805F094(void);
+extern void FreeMonSpritesGfx(void);
extern void remove_some_task(void);
extern void reset_temp_tile_data_buffers(void);
extern void c2_exit_to_overworld_2_switch(void);
@@ -570,7 +570,7 @@ static void CB2_EggHatch_0(void)
static void EggHatchSetMonNickname(void)
{
SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
- sub_805F094();
+ FreeMonSpritesGfx();
Free(sEggHatchData);
SetMainCallback2(c2_exit_to_overworld_2_switch);
}
@@ -691,7 +691,7 @@ static void CB2_EggHatch_1(void)
case 12:
if (!gPaletteFade.active)
{
- sub_805F094();
+ FreeMonSpritesGfx();
RemoveWindow(sEggHatchData->windowId);
UnsetBgTilemapBuffer(0);
UnsetBgTilemapBuffer(1);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index ce3b4f250..aecb28dac 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -520,7 +520,7 @@ gUnknown_020244BC: @ 20244BC
gUnknown_020244CC: @ 20244CC
.space 0x4
-gUnknown_020244D0: @ 20244D0
+gBattleSpritesDataPtr: @ 20244D0
.space 0x4
gMonSpritesGfxPtr: @ 20244D4