diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/battle_anim_special.s | 8 | ||||
| -rw-r--r-- | asm/pokeball.s | 2896 | ||||
| -rw-r--r-- | asm/pokemon_summary_screen.s | 4 | 
3 files changed, 6 insertions, 2902 deletions
| diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s index e49ba538c..3f56279eb 100644 --- a/asm/battle_anim_special.s +++ b/asm/battle_anim_special.s @@ -1219,7 +1219,7 @@ sub_80EF5AC: @ 80EF5AC  	lsls r0, r1, 1  	adds r0, r1  	lsls r0, 3 -	ldr r1, _080EF678 @ =gUnknown_82606F4 +	ldr r1, _080EF678 @ =gBallSpriteTemplates  	adds r0, r1  	movs r1, 0x20  	movs r2, 0x50 @@ -1298,7 +1298,7 @@ sub_80EF5AC: @ 80EF5AC  	bx r0  	.align 2, 0  _080EF674: .4byte gLastUsedItem -_080EF678: .4byte gUnknown_82606F4 +_080EF678: .4byte gBallSpriteTemplates  _080EF67C: .4byte gSprites  _080EF680: .4byte gBattleAnimTarget  _080EF684: .4byte sub_80EF8C0 @@ -1387,7 +1387,7 @@ _080EF708:  	lsls r0, r4, 1  	adds r0, r4  	lsls r0, 3 -	ldr r1, _080EF7CC @ =gUnknown_82606F4 +	ldr r1, _080EF7CC @ =gBallSpriteTemplates  	adds r0, r1  	movs r1, 0x20  	orrs r5, r1 @@ -1458,7 +1458,7 @@ _080EF708:  	.align 2, 0  _080EF7C4: .4byte gSaveBlock2Ptr  _080EF7C8: .4byte gLastUsedItem -_080EF7CC: .4byte gUnknown_82606F4 +_080EF7CC: .4byte gBallSpriteTemplates  _080EF7D0: .4byte gSprites  _080EF7D4: .4byte gBattleAnimTarget  _080EF7D8: .4byte SpriteCallbackDummy diff --git a/asm/pokeball.s b/asm/pokeball.s deleted file mode 100644 index ed9eea832..000000000 --- a/asm/pokeball.s +++ /dev/null @@ -1,2896 +0,0 @@ -	.include "asm/macros.inc" -	.include "constants/constants.inc" - -	.syntax unified - -	.text - -	thumb_func_start DoPokeballSendOutAnimation -DoPokeballSendOutAnimation: @ 804A938 -	push {r4-r6,lr} -	adds r4, r0, 0 -	adds r5, r1, 0 -	lsls r4, 16 -	lsrs r4, 16 -	lsls r5, 24 -	lsrs r5, 24 -	ldr r1, _0804A98C @ =gDoingBattleAnim -	movs r0, 0x1 -	strb r0, [r1] -	ldr r0, _0804A990 @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r6, _0804A994 @ =gActiveBattler -	ldrb r1, [r6] -	ldr r2, [r0, 0x4] -	lsls r0, r1, 1 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrb r1, [r0] -	movs r2, 0x8 -	orrs r1, r2 -	strb r1, [r0] -	ldr r0, _0804A998 @ =sub_804A9A0 -	movs r1, 0x5 -	bl CreateTask -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _0804A99C @ =gTasks -	lsls r1, r0, 2 -	adds r1, r0 -	lsls r1, 3 -	adds r1, r2 -	strh r4, [r1, 0xA] -	strh r5, [r1, 0xC] -	ldrb r0, [r6] -	strh r0, [r1, 0xE] -	movs r0, 0 -	pop {r4-r6} -	pop {r1} -	bx r1 -	.align 2, 0 -_0804A98C: .4byte gDoingBattleAnim -_0804A990: .4byte gBattleSpritesDataPtr -_0804A994: .4byte gActiveBattler -_0804A998: .4byte sub_804A9A0 -_0804A99C: .4byte gTasks -	thumb_func_end DoPokeballSendOutAnimation - -	thumb_func_start sub_804A9A0 -sub_804A9A0: @ 804A9A0 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x8 -	lsls r0, 24 -	lsrs r0, 24 -	str r0, [sp] -	movs r0, 0 -	str r0, [sp, 0x4] -	ldr r1, _0804A9D4 @ =gTasks -	ldr r2, [sp] -	lsls r0, r2, 2 -	adds r0, r2 -	lsls r0, 3 -	adds r1, r0, r1 -	ldrh r2, [r1, 0x8] -	movs r3, 0x8 -	ldrsh r0, [r1, r3] -	cmp r0, 0 -	bne _0804A9D8 -	adds r0, r2, 0x1 -	strh r0, [r1, 0x8] -	b _0804ABB8 -	.align 2, 0 -_0804A9D4: .4byte gTasks -_0804A9D8: -	ldrh r0, [r1, 0xC] -	mov r9, r0 -	ldrb r6, [r1, 0xE] -	adds r0, r6, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _0804AA04 -	ldr r1, _0804A9FC @ =gBattlerPartyIndexes -	lsls r0, r6, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _0804AA00 @ =gEnemyParty -	b _0804AA12 -	.align 2, 0 -_0804A9FC: .4byte gBattlerPartyIndexes -_0804AA00: .4byte gEnemyParty -_0804AA04: -	ldr r1, _0804AA50 @ =gBattlerPartyIndexes -	lsls r0, r6, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _0804AA54 @ =gPlayerParty -_0804AA12: -	adds r0, r1 -	movs r1, 0x26 -	bl GetMonData -	lsls r0, 16 -	lsrs r0, 16 -	bl ItemIdToBallId -	lsls r0, 24 -	lsrs r5, r0, 24 -	adds r0, r5, 0 -	bl LoadBallGfx -	ldr r0, _0804AA58 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x2 -	ands r0, r1 -	cmp r0, 0 -	beq _0804AA60 -	ldr r4, _0804AA5C @ =gLinkPlayers -	adds r0, r6, 0 -	bl GetBattlerMultiplayerId -	lsls r1, r0, 3 -	subs r1, r0 -	lsls r1, 2 -	adds r1, r4 -	ldrb r1, [r1, 0x13] -	mov r10, r1 -	b _0804AA68 -	.align 2, 0 -_0804AA50: .4byte gBattlerPartyIndexes -_0804AA54: .4byte gPlayerParty -_0804AA58: .4byte gBattleTypeFlags -_0804AA5C: .4byte gLinkPlayers -_0804AA60: -	ldr r0, _0804AAB8 @ =gSaveBlock2Ptr -	ldr r0, [r0] -	ldrb r0, [r0, 0x8] -	mov r10, r0 -_0804AA68: -	lsls r0, r5, 1 -	adds r0, r5 -	lsls r0, 3 -	ldr r1, _0804AABC @ =gUnknown_82606F4 -	adds r0, r1 -	movs r1, 0x20 -	movs r2, 0x50 -	movs r3, 0x1D -	bl CreateSprite -	lsls r0, 24 -	lsrs r7, r0, 24 -	lsls r5, r7, 4 -	adds r0, r5, r7 -	lsls r0, 2 -	mov r8, r0 -	ldr r4, _0804AAC0 @ =gSprites -	add r4, r8 -	movs r0, 0x80 -	strh r0, [r4, 0x2E] -	movs r1, 0 -	strh r1, [r4, 0x30] -	mov r2, r9 -	strh r2, [r4, 0x3C] -	mov r3, r9 -	cmp r3, 0xFE -	beq _0804AAF8 -	cmp r3, 0xFF -	bne _0804AB38 -	ldr r0, _0804AAC4 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x80 -	lsls r1, 9 -	ands r0, r1 -	cmp r0, 0 -	beq _0804AAC8 -	movs r5, 0x20 -	movs r4, 0x40 -	b _0804AACE -	.align 2, 0 -_0804AAB8: .4byte gSaveBlock2Ptr -_0804AABC: .4byte gUnknown_82606F4 -_0804AAC0: .4byte gSprites -_0804AAC4: .4byte gBattleTypeFlags -_0804AAC8: -	mov r0, r10 -	movs r5, 0x30 -	movs r4, 0x46 -_0804AACE: -	ldr r0, _0804AAEC @ =gBattlerTarget -	strb r6, [r0] -	ldr r2, _0804AAF0 @ =gSprites -	lsls r3, r7, 4 -	adds r1, r3, r7 -	lsls r1, 2 -	adds r0, r1, r2 -	strh r5, [r0, 0x20] -	strh r4, [r0, 0x22] -	adds r2, 0x1C -	adds r1, r2 -	ldr r0, _0804AAF4 @ =SpriteCB_PlayerMonSendOut_1 -	str r0, [r1] -	b _0804AB48 -	.align 2, 0 -_0804AAEC: .4byte gBattlerTarget -_0804AAF0: .4byte gSprites -_0804AAF4: .4byte SpriteCB_PlayerMonSendOut_1 -_0804AAF8: -	adds r0, r6, 0 -	movs r1, 0 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r4, 0x20] -	adds r0, r6, 0 -	movs r1, 0x1 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	adds r0, 0x18 -	strh r0, [r4, 0x22] -	ldr r0, _0804AB2C @ =gBattlerTarget -	strb r6, [r0] -	movs r1, 0 -	strh r1, [r4, 0x2E] -	ldr r0, _0804AB30 @ =gSprites -	adds r0, 0x1C -	add r0, r8 -	ldr r1, _0804AB34 @ =SpriteCB_OpponentMonSendOut -	str r1, [r0] -	b _0804AB46 -	.align 2, 0 -_0804AB2C: .4byte gBattlerTarget -_0804AB30: .4byte gSprites -_0804AB34: .4byte SpriteCB_OpponentMonSendOut -_0804AB38: -	movs r0, 0x1 -	bl GetBattlerAtPosition -	ldr r1, _0804AB64 @ =gBattlerTarget -	strb r0, [r1] -	movs r2, 0x1 -	str r2, [sp, 0x4] -_0804AB46: -	adds r3, r5, 0 -_0804AB48: -	ldr r0, _0804AB68 @ =gSprites -	adds r1, r3, r7 -	lsls r1, 2 -	adds r4, r1, r0 -	ldr r5, _0804AB64 @ =gBattlerTarget -	ldrb r0, [r5] -	strh r0, [r4, 0x3A] -	ldr r3, [sp, 0x4] -	cmp r3, 0 -	bne _0804AB6C -	ldr r0, [sp] -	bl DestroyTask -	b _0804ABB8 -	.align 2, 0 -_0804AB64: .4byte gBattlerTarget -_0804AB68: .4byte gSprites -_0804AB6C: -	movs r0, 0x22 -	strh r0, [r4, 0x2E] -	ldrb r0, [r5] -	movs r1, 0 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r4, 0x32] -	ldrb r0, [r5] -	movs r1, 0x1 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	subs r0, 0x10 -	strh r0, [r4, 0x36] -	ldr r0, _0804ABC8 @ =0x0000ffd8 -	strh r0, [r4, 0x38] -	adds r0, r4, 0 -	bl InitAnimArcTranslation -	mov r0, sp -	ldrh r0, [r0] -	strh r0, [r4, 0x6] -	ldr r1, _0804ABCC @ =gTasks -	ldr r2, [sp] -	lsls r0, r2, 2 -	adds r0, r2 -	lsls r0, 3 -	adds r0, r1 -	ldrb r1, [r5] -	strh r1, [r0, 0x10] -	ldr r1, _0804ABD0 @ =TaskDummy -	str r1, [r0] -	movs r0, 0x36 -	bl PlaySE -_0804ABB8: -	add sp, 0x8 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804ABC8: .4byte 0x0000ffd8 -_0804ABCC: .4byte gTasks -_0804ABD0: .4byte TaskDummy -	thumb_func_end sub_804A9A0 - -	thumb_func_start SpriteCB_TestBallThrow -SpriteCB_TestBallThrow: @ 804ABD4 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	sub sp, 0x4 -	adds r7, r0, 0 -	bl TranslateAnimHorizontalArc -	lsls r0, 24 -	cmp r0, 0 -	beq _0804AC74 -	ldrb r6, [r7, 0x6] -	ldr r1, _0804AC80 @ =gTasks -	lsls r0, r6, 2 -	adds r0, r6 -	lsls r0, 3 -	adds r0, r1 -	ldrb r5, [r0, 0x10] -	ldrb r0, [r0, 0xC] -	mov r8, r0 -	adds r0, r7, 0 -	movs r1, 0x1 -	bl StartSpriteAnim -	adds r2, r7, 0 -	adds r2, 0x2C -	ldrb r0, [r2] -	movs r1, 0x80 -	orrs r0, r1 -	strb r0, [r2] -	ldrh r0, [r7, 0x24] -	ldrh r1, [r7, 0x20] -	adds r0, r1 -	movs r1, 0 -	strh r0, [r7, 0x20] -	ldrh r0, [r7, 0x26] -	ldrh r2, [r7, 0x22] -	adds r0, r2 -	strh r0, [r7, 0x22] -	strh r1, [r7, 0x24] -	strh r1, [r7, 0x26] -	strh r1, [r7, 0x38] -	adds r0, r5, 0 -	bl GetBankPokeballItemId -	lsls r0, 16 -	lsrs r0, 16 -	bl ItemIdToBallId -	adds r4, r0, 0 -	ldrh r0, [r7, 0x20] -	lsls r0, 24 -	lsrs r0, 24 -	ldrh r1, [r7, 0x22] -	subs r1, 0x5 -	lsls r1, 24 -	lsrs r1, 24 -	lsls r4, 24 -	lsrs r4, 24 -	str r4, [sp] -	movs r2, 0x1 -	movs r3, 0x1C -	bl LaunchBallStarsTask -	movs r0, 0 -	adds r1, r5, 0 -	movs r2, 0xE -	adds r3, r4, 0 -	bl LaunchBallFadeMonTask -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r7, 0x2E] -	strh r5, [r7, 0x3A] -	mov r0, r8 -	strh r0, [r7, 0x3C] -	adds r0, r6, 0 -	bl DestroyTask -	ldr r0, _0804AC84 @ =sub_804AC88 -	str r0, [r7, 0x1C] -_0804AC74: -	add sp, 0x4 -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804AC80: .4byte gTasks -_0804AC84: .4byte sub_804AC88 -	thumb_func_end SpriteCB_TestBallThrow - -	thumb_func_start sub_804AC88 -sub_804AC88: @ 804AC88 -	ldr r1, _0804AC90 @ =sub_804AC94 -	str r1, [r0, 0x1C] -	bx lr -	.align 2, 0 -_0804AC90: .4byte sub_804AC94 -	thumb_func_end sub_804AC88 - -	thumb_func_start sub_804AC94 -sub_804AC94: @ 804AC94 -	push {r4-r7,lr} -	adds r6, r0, 0 -	ldrh r0, [r6, 0x38] -	adds r0, 0x1 -	movs r7, 0 -	strh r0, [r6, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0xA -	bne _0804ACEE -	strh r7, [r6, 0x38] -	ldr r0, _0804ACF4 @ =sub_804AD00 -	str r0, [r6, 0x1C] -	ldr r5, _0804ACF8 @ =gBattlerSpriteIds -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r4, _0804ACFC @ =gSprites -	adds r0, r4 -	movs r1, 0x2 -	bl StartSpriteAffineAnim -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	bl AnimateSprite -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	strh r7, [r0, 0x30] -_0804ACEE: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804ACF4: .4byte sub_804AD00 -_0804ACF8: .4byte gBattlerSpriteIds -_0804ACFC: .4byte gSprites -	thumb_func_end sub_804AC94 - -	thumb_func_start sub_804AD00 -sub_804AD00: @ 804AD00 -	push {r4-r6,lr} -	adds r4, r0, 0 -	ldrh r0, [r4, 0x38] -	adds r0, 0x1 -	strh r0, [r4, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0xB -	bne _0804AD18 -	movs r0, 0x35 -	bl PlaySE -_0804AD18: -	ldr r6, _0804AD64 @ =gSprites -	ldr r5, _0804AD68 @ =gBattlerSpriteIds -	movs r1, 0x3A -	ldrsh r0, [r4, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r1, r0, r6 -	adds r0, r1, 0 -	adds r0, 0x3F -	ldrb r0, [r0] -	lsls r0, 26 -	cmp r0, 0 -	bge _0804AD70 -	adds r0, r4, 0 -	movs r1, 0x2 -	bl StartSpriteAnim -	movs r2, 0x3A -	ldrsh r0, [r4, r2] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r6 -	adds r0, 0x3E -	ldrb r1, [r0] -	movs r2, 0x4 -	orrs r1, r2 -	strb r1, [r0] -	movs r0, 0 -	strh r0, [r4, 0x38] -	ldr r0, _0804AD6C @ =sub_804AD98 -	str r0, [r4, 0x1C] -	b _0804AD90 -	.align 2, 0 -_0804AD64: .4byte gSprites -_0804AD68: .4byte gBattlerSpriteIds -_0804AD6C: .4byte sub_804AD98 -_0804AD70: -	ldrh r0, [r1, 0x30] -	adds r0, 0x60 -	strh r0, [r1, 0x30] -	movs r1, 0x3A -	ldrsh r0, [r4, r1] -	adds r0, r5 -	ldrb r0, [r0] -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r6 -	movs r2, 0x30 -	ldrsh r0, [r1, r2] -	negs r0, r0 -	asrs r0, 8 -	strh r0, [r1, 0x26] -_0804AD90: -	pop {r4-r6} -	pop {r0} -	bx r0 -	thumb_func_end sub_804AD00 - -	thumb_func_start sub_804AD98 -sub_804AD98: @ 804AD98 -	push {r4,lr} -	adds r4, r0, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804ADE0 -	ldrh r0, [r4, 0x38] -	adds r0, 0x1 -	movs r1, 0 -	strh r0, [r4, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x1 -	bne _0804ADE0 -	strh r1, [r4, 0x34] -	movs r0, 0x20 -	strh r0, [r4, 0x36] -	strh r1, [r4, 0x38] -	movs r0, 0 -	movs r1, 0x20 -	bl Cos -	ldrh r1, [r4, 0x22] -	adds r0, r1 -	strh r0, [r4, 0x22] -	movs r0, 0x36 -	ldrsh r1, [r4, r0] -	movs r0, 0 -	bl Cos -	negs r0, r0 -	strh r0, [r4, 0x26] -	ldr r0, _0804ADE8 @ =sub_804ADEC -	str r0, [r4, 0x1C] -_0804ADE0: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804ADE8: .4byte sub_804ADEC -	thumb_func_end sub_804AD98 - -	thumb_func_start sub_804ADEC -sub_804ADEC: @ 804ADEC -	push {r4,r5,lr} -	adds r4, r0, 0 -	movs r5, 0 -	ldrh r0, [r4, 0x34] -	movs r1, 0xFF -	ands r1, r0 -	cmp r1, 0 -	beq _0804AE02 -	cmp r1, 0x1 -	beq _0804AE76 -	b _0804AEA2 -_0804AE02: -	movs r1, 0x38 -	ldrsh r0, [r4, r1] -	movs r2, 0x36 -	ldrsh r1, [r4, r2] -	bl Cos -	negs r0, r0 -	strh r0, [r4, 0x26] -	ldrh r1, [r4, 0x38] -	adds r1, 0x4 -	ldrh r2, [r4, 0x34] -	lsls r0, r2, 16 -	asrs r0, 24 -	adds r1, r0 -	strh r1, [r4, 0x38] -	lsls r1, 16 -	asrs r1, 16 -	cmp r1, 0x3F -	ble _0804AEA2 -	ldrh r0, [r4, 0x36] -	subs r0, 0xA -	strh r0, [r4, 0x36] -	ldr r1, _0804AE4C @ =0x00000101 -	adds r0, r2, r1 -	strh r0, [r4, 0x34] -	lsls r0, 16 -	asrs r0, 24 -	cmp r0, 0x4 -	bne _0804AE3E -	movs r5, 0x1 -_0804AE3E: -	cmp r0, 0x2 -	beq _0804AE5E -	cmp r0, 0x2 -	bgt _0804AE50 -	cmp r0, 0x1 -	beq _0804AE56 -	b _0804AE6E -	.align 2, 0 -_0804AE4C: .4byte 0x00000101 -_0804AE50: -	cmp r0, 0x3 -	beq _0804AE66 -	b _0804AE6E -_0804AE56: -	movs r0, 0x31 -	bl PlaySE -	b _0804AEA2 -_0804AE5E: -	movs r0, 0x32 -	bl PlaySE -	b _0804AEA2 -_0804AE66: -	movs r0, 0x33 -	bl PlaySE -	b _0804AEA2 -_0804AE6E: -	movs r0, 0x34 -	bl PlaySE -	b _0804AEA2 -_0804AE76: -	movs r2, 0x38 -	ldrsh r0, [r4, r2] -	movs r2, 0x36 -	ldrsh r1, [r4, r2] -	bl Cos -	negs r0, r0 -	strh r0, [r4, 0x26] -	ldrh r1, [r4, 0x38] -	subs r1, 0x4 -	ldrh r2, [r4, 0x34] -	lsls r0, r2, 16 -	asrs r0, 24 -	subs r1, r0 -	strh r1, [r4, 0x38] -	lsls r1, 16 -	cmp r1, 0 -	bgt _0804AEA2 -	strh r5, [r4, 0x38] -	ldr r0, _0804AEC8 @ =0xffffff00 -	ands r0, r2 -	strh r0, [r4, 0x34] -_0804AEA2: -	cmp r5, 0 -	beq _0804AEDA -	movs r5, 0 -	strh r5, [r4, 0x34] -	movs r0, 0x40 -	movs r1, 0x20 -	bl Cos -	ldrh r1, [r4, 0x22] -	adds r0, r1 -	strh r0, [r4, 0x22] -	strh r5, [r4, 0x26] -	movs r2, 0x3C -	ldrsh r0, [r4, r2] -	cmp r0, 0 -	bne _0804AED0 -	ldr r0, _0804AECC @ =sub_804B268 -	str r0, [r4, 0x1C] -	b _0804AEDA -	.align 2, 0 -_0804AEC8: .4byte 0xffffff00 -_0804AECC: .4byte sub_804B268 -_0804AED0: -	ldr r0, _0804AEE0 @ =sub_804AEE4 -	str r0, [r4, 0x1C] -	movs r0, 0x1 -	strh r0, [r4, 0x36] -	strh r5, [r4, 0x38] -_0804AEDA: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804AEE0: .4byte sub_804AEE4 -	thumb_func_end sub_804ADEC - -	thumb_func_start sub_804AEE4 -sub_804AEE4: @ 804AEE4 -	push {r4,lr} -	adds r4, r0, 0 -	ldrh r0, [r4, 0x34] -	adds r0, 0x1 -	strh r0, [r4, 0x34] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x1F -	bne _0804AF18 -	movs r0, 0 -	strh r0, [r4, 0x34] -	adds r2, r4, 0 -	adds r2, 0x2C -	ldrb r0, [r2] -	movs r1, 0x80 -	orrs r0, r1 -	strb r0, [r2] -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -	ldr r0, _0804AF20 @ =sub_804AF24 -	str r0, [r4, 0x1C] -	movs r0, 0x17 -	bl PlaySE -_0804AF18: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804AF20: .4byte sub_804AF24 -	thumb_func_end sub_804AEE4 - -	thumb_func_start sub_804AF24 -sub_804AF24: @ 804AF24 -	push {r4,lr} -	adds r4, r0, 0 -	ldrh r0, [r4, 0x34] -	movs r1, 0xFF -	ands r1, r0 -	cmp r1, 0x4 -	bhi _0804B024 -	lsls r0, r1, 2 -	ldr r1, _0804AF3C @ =_0804AF40 -	adds r0, r1 -	ldr r0, [r0] -	mov pc, r0 -	.align 2, 0 -_0804AF3C: .4byte _0804AF40 -	.align 2, 0 -_0804AF40: -	.4byte _0804AF54 -	.4byte _0804AF86 -	.4byte _0804AF54 -	.4byte _0804AFDA -	.4byte _0804B024 -_0804AF54: -	ldrh r0, [r4, 0x36] -	ldrh r2, [r4, 0x24] -	adds r1, r0, r2 -	strh r1, [r4, 0x24] -	ldrh r1, [r4, 0x38] -	adds r0, r1 -	strh r0, [r4, 0x38] -	adds r2, r4, 0 -	adds r2, 0x2C -	ldrb r1, [r2] -	movs r0, 0x7F -	ands r0, r1 -	strb r0, [r2] -	ldrh r0, [r4, 0x38] -	adds r0, 0x3 -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0x6 -	bls _0804B06A -	ldrh r0, [r4, 0x34] -	adds r0, 0x1 -	strh r0, [r4, 0x34] -	movs r0, 0 -	strh r0, [r4, 0x38] -	b _0804B06A -_0804AF86: -	ldrh r0, [r4, 0x38] -	adds r0, 0x1 -	strh r0, [r4, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x1 -	bne _0804AFCC -	movs r0, 0 -	strh r0, [r4, 0x38] -	ldrh r0, [r4, 0x36] -	negs r0, r0 -	strh r0, [r4, 0x36] -	ldrh r0, [r4, 0x34] -	adds r0, 0x1 -	strh r0, [r4, 0x34] -	adds r2, r4, 0 -	adds r2, 0x2C -	ldrb r1, [r2] -	movs r0, 0x7F -	ands r0, r1 -	strb r0, [r2] -	movs r2, 0x36 -	ldrsh r0, [r4, r2] -	cmp r0, 0 -	bge _0804AFC2 -	adds r0, r4, 0 -	movs r1, 0x2 -	bl ChangeSpriteAffineAnim -	b _0804B06A -_0804AFC2: -	adds r0, r4, 0 -	movs r1, 0x1 -	bl ChangeSpriteAffineAnim -	b _0804B06A -_0804AFCC: -	adds r0, r4, 0 -	adds r0, 0x2C -	ldrb r1, [r0] -	movs r2, 0x80 -	orrs r1, r2 -	strb r1, [r0] -	b _0804B06A -_0804AFDA: -	movs r1, 0x80 -	lsls r1, 1 -	adds r0, r1, 0 -	ldrh r2, [r4, 0x34] -	adds r0, r2 -	strh r0, [r4, 0x34] -	lsls r0, 16 -	asrs r0, 24 -	movs r2, 0x3C -	ldrsh r1, [r4, r2] -	cmp r0, r1 -	bne _0804AFFC -	ldr r0, _0804AFF8 @ =sub_804B268 -	str r0, [r4, 0x1C] -	b _0804B06A -	.align 2, 0 -_0804AFF8: .4byte sub_804B268 -_0804AFFC: -	cmp r1, 0x4 -	bne _0804B010 -	cmp r0, 0x3 -	bne _0804B010 -	ldr r0, _0804B00C @ =sub_804B484 -	str r0, [r4, 0x1C] -	b _0804B016 -	.align 2, 0 -_0804B00C: .4byte sub_804B484 -_0804B010: -	ldrh r0, [r4, 0x34] -	adds r0, 0x1 -	strh r0, [r4, 0x34] -_0804B016: -	adds r2, r4, 0 -	adds r2, 0x2C -	ldrb r0, [r2] -	movs r1, 0x80 -	orrs r0, r1 -	strb r0, [r2] -	b _0804B06A -_0804B024: -	ldrh r0, [r4, 0x38] -	adds r0, 0x1 -	strh r0, [r4, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x1F -	bne _0804B06A -	movs r0, 0 -	strh r0, [r4, 0x38] -	ldrh r1, [r4, 0x34] -	ldr r0, _0804B058 @ =0xffffff00 -	ands r0, r1 -	strh r0, [r4, 0x34] -	adds r0, r4, 0 -	movs r1, 0x3 -	bl StartSpriteAffineAnim -	movs r1, 0x36 -	ldrsh r0, [r4, r1] -	cmp r0, 0 -	bge _0804B05C -	adds r0, r4, 0 -	movs r1, 0x2 -	bl StartSpriteAffineAnim -	b _0804B064 -	.align 2, 0 -_0804B058: .4byte 0xffffff00 -_0804B05C: -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -_0804B064: -	movs r0, 0x17 -	bl PlaySE -_0804B06A: -	pop {r4} -	pop {r0} -	bx r0 -	thumb_func_end sub_804AF24 - -	thumb_func_start Task_PlayCryWhenReleasedFromBall -Task_PlayCryWhenReleasedFromBall: @ 804B070 -	push {r4-r7,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r2, _0804B0A4 @ =gTasks -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r0, r2 -	ldrb r7, [r0, 0xC] -	ldrb r5, [r0, 0xA] -	ldrh r6, [r0, 0x8] -	movs r3, 0xE -	ldrsh r1, [r0, r3] -	lsls r3, r1, 16 -	ldrh r1, [r0, 0x10] -	orrs r3, r1 -	movs r1, 0x26 -	ldrsh r0, [r0, r1] -	cmp r0, 0x20 -	bhi _0804B130 -	lsls r0, 2 -	ldr r1, _0804B0A8 @ =_0804B0AC -	adds r0, r1 -	ldr r0, [r0] -	mov pc, r0 -	.align 2, 0 -_0804B0A4: .4byte gTasks -_0804B0A8: .4byte _0804B0AC -	.align 2, 0 -_0804B0AC: -	.4byte _0804B130 -	.4byte _0804B14E -	.4byte _0804B174 -	.4byte _0804B1CE -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B190 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B130 -	.4byte _0804B1E0 -	.4byte _0804B1F8 -	.4byte _0804B220 -_0804B130: -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r1, r0, r2 -	ldrh r2, [r1, 0x18] -	movs r3, 0x18 -	ldrsh r0, [r1, r3] -	cmp r0, 0x2 -	bgt _0804B148 -	adds r0, r2, 0x1 -	strh r0, [r1, 0x18] -	b _0804B262 -_0804B148: -	adds r0, r7, 0x1 -	strh r0, [r1, 0x26] -	b _0804B262 -_0804B14E: -	adds r0, r3, 0 -	bl ShouldPlayNormalPokeCry -	cmp r0, 0x1 -	bne _0804B166 -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0 -	bl PlayCry3 -	b _0804B1C6 -_0804B166: -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0xB -	bl PlayCry3 -	b _0804B1C6 -_0804B174: -	bl StopCryAndClearCrySongs -	ldr r1, _0804B18C @ =gTasks -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r0, r1 -	movs r1, 0x3 -	strh r1, [r0, 0x1C] -	movs r1, 0x14 -	strh r1, [r0, 0x26] -	b _0804B262 -	.align 2, 0 -_0804B18C: .4byte gTasks -_0804B190: -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r1, r0, r2 -	ldrh r2, [r1, 0x1C] -	movs r7, 0x1C -	ldrsh r0, [r1, r7] -	cmp r0, 0 -	bne _0804B232 -	adds r0, r3, 0 -	bl ShouldPlayNormalPokeCry -	cmp r0, 0x1 -	bne _0804B1BA -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0x1 -	bl PlayCry4 -	b _0804B1C6 -_0804B1BA: -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0xC -	bl PlayCry4 -_0804B1C6: -	adds r0, r4, 0 -	bl DestroyTask -	b _0804B262 -_0804B1CE: -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r0, r2 -	movs r1, 0x6 -	strh r1, [r0, 0x1C] -	movs r1, 0x1E -	strh r1, [r0, 0x26] -	b _0804B262 -_0804B1E0: -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r1, r0, r2 -	ldrh r2, [r1, 0x1C] -	movs r3, 0x1C -	ldrsh r0, [r1, r3] -	cmp r0, 0 -	bne _0804B232 -	ldrh r0, [r1, 0x26] -	adds r0, 0x1 -	strh r0, [r1, 0x26] -_0804B1F8: -	bl IsCryPlayingOrClearCrySongs -	lsls r0, 24 -	cmp r0, 0 -	bne _0804B262 -	bl StopCryAndClearCrySongs -	ldr r0, _0804B21C @ =gTasks -	lsls r1, r4, 2 -	adds r1, r4 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0x3 -	strh r0, [r1, 0x1C] -	ldrh r0, [r1, 0x26] -	adds r0, 0x1 -	strh r0, [r1, 0x26] -	b _0804B262 -	.align 2, 0 -_0804B21C: .4byte gTasks -_0804B220: -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r1, r0, r2 -	ldrh r2, [r1, 0x1C] -	movs r7, 0x1C -	ldrsh r0, [r1, r7] -	cmp r0, 0 -	beq _0804B238 -_0804B232: -	subs r0, r2, 0x1 -	strh r0, [r1, 0x1C] -	b _0804B262 -_0804B238: -	adds r0, r3, 0 -	bl ShouldPlayNormalPokeCry -	cmp r0, 0x1 -	bne _0804B250 -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0 -	bl PlayCry4 -	b _0804B25C -_0804B250: -	lsls r1, r5, 24 -	asrs r1, 24 -	adds r0, r6, 0 -	movs r2, 0xB -	bl PlayCry4 -_0804B25C: -	adds r0, r4, 0 -	bl DestroyTask -_0804B262: -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end Task_PlayCryWhenReleasedFromBall - -	thumb_func_start sub_804B268 -sub_804B268: @ 804B268 -	push {r4-r7,lr} -	mov r7, r9 -	mov r6, r8 -	push {r6,r7} -	sub sp, 0x4 -	adds r6, r0, 0 -	ldrh r0, [r6, 0x3A] -	lsls r0, 24 -	lsrs r5, r0, 24 -	adds r0, r6, 0 -	movs r1, 0x1 -	bl StartSpriteAnim -	adds r0, r5, 0 -	bl GetBankPokeballItemId -	lsls r0, 16 -	lsrs r0, 16 -	bl ItemIdToBallId -	adds r4, r0, 0 -	ldrh r0, [r6, 0x20] -	lsls r0, 24 -	lsrs r0, 24 -	ldrh r1, [r6, 0x22] -	subs r1, 0x5 -	lsls r1, 24 -	lsrs r1, 24 -	lsls r4, 24 -	lsrs r4, 24 -	str r4, [sp] -	movs r2, 0x1 -	movs r3, 0x1C -	bl LaunchBallStarsTask -	ldrh r1, [r6, 0x3A] -	lsls r1, 24 -	lsrs r1, 24 -	movs r0, 0x1 -	movs r2, 0xE -	adds r3, r4, 0 -	bl LaunchBallFadeMonTask -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r6, 0x2E] -	ldr r0, _0804B2FC @ =HandleBallAnimEnd -	str r0, [r6, 0x1C] -	ldr r0, _0804B300 @ =gMain -	ldr r1, _0804B304 @ =0x00000439 -	adds r0, r1 -	ldrb r1, [r0] -	movs r0, 0x2 -	ands r0, r1 -	cmp r0, 0 -	bne _0804B2DA -	b _0804B420 -_0804B2DA: -	adds r0, r5, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B310 -	ldr r1, _0804B308 @ =gBattlerPartyIndexes -	lsls r0, r5, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r1, r0 -	ldr r0, _0804B30C @ =gEnemyParty -	adds r7, r1, r0 -	movs r3, 0x19 -	mov r9, r3 -	b _0804B324 -	.align 2, 0 -_0804B2FC: .4byte HandleBallAnimEnd -_0804B300: .4byte gMain -_0804B304: .4byte 0x00000439 -_0804B308: .4byte gBattlerPartyIndexes -_0804B30C: .4byte gEnemyParty -_0804B310: -	ldr r1, _0804B388 @ =gBattlerPartyIndexes -	lsls r0, r5, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r1, r0 -	ldr r0, _0804B38C @ =gPlayerParty -	adds r7, r1, r0 -	movs r0, 0xE7 -	mov r9, r0 -_0804B324: -	adds r0, r7, 0 -	movs r1, 0xB -	bl GetMonData -	lsls r0, 16 -	lsrs r0, 16 -	mov r8, r0 -	movs r0, 0 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r5, r0 -	beq _0804B34E -	movs r0, 0x1 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r5, r0 -	bne _0804B3A6 -_0804B34E: -	bl IsDoubleBattle -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B3A6 -	ldr r0, _0804B390 @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r0, [r0, 0x8] -	ldrb r1, [r0, 0x9] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B3A6 -	ldr r0, _0804B394 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x40 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B39C -	bl IsBGMPlaying -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B3A6 -	ldr r0, _0804B398 @ =gMPlayInfo_BGM -	bl m4aMPlayStop -	b _0804B3A6 -	.align 2, 0 -_0804B388: .4byte gBattlerPartyIndexes -_0804B38C: .4byte gPlayerParty -_0804B390: .4byte gBattleSpritesDataPtr -_0804B394: .4byte gBattleTypeFlags -_0804B398: .4byte gMPlayInfo_BGM -_0804B39C: -	ldr r0, _0804B3C4 @ =gMPlayInfo_BGM -	ldr r1, _0804B3C8 @ =0x0000ffff -	movs r2, 0x80 -	bl m4aMPlayVolumeControl -_0804B3A6: -	bl IsDoubleBattle -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B3C0 -	ldr r0, _0804B3CC @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r0, [r0, 0x8] -	ldrb r1, [r0, 0x9] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	bne _0804B3D0 -_0804B3C0: -	movs r4, 0 -	b _0804B3F2 -	.align 2, 0 -_0804B3C4: .4byte gMPlayInfo_BGM -_0804B3C8: .4byte 0x0000ffff -_0804B3CC: .4byte gBattleSpritesDataPtr -_0804B3D0: -	movs r0, 0 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r5, r0 -	beq _0804B3EC -	movs r0, 0x1 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r5, r0 -	bne _0804B3F0 -_0804B3EC: -	movs r4, 0x1 -	b _0804B3F2 -_0804B3F0: -	movs r4, 0x2 -_0804B3F2: -	ldr r0, _0804B474 @ =Task_PlayCryWhenReleasedFromBall -	movs r1, 0x3 -	bl CreateTask -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _0804B478 @ =gTasks -	lsls r1, r0, 2 -	adds r1, r0 -	lsls r1, 3 -	adds r1, r2 -	movs r2, 0 -	mov r3, r8 -	strh r3, [r1, 0x8] -	mov r3, r9 -	lsls r0, r3, 24 -	asrs r0, 24 -	strh r0, [r1, 0xA] -	strh r4, [r1, 0xC] -	lsrs r0, r7, 16 -	strh r0, [r1, 0xE] -	strh r7, [r1, 0x10] -	strh r2, [r1, 0x26] -_0804B420: -	ldr r5, _0804B47C @ =gBattlerSpriteIds -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r4, _0804B480 @ =gSprites -	adds r0, r4 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -	movs r3, 0x3A -	ldrsh r0, [r6, r3] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	bl AnimateSprite -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	movs r1, 0x80 -	lsls r1, 5 -	strh r1, [r0, 0x30] -	add sp, 0x4 -	pop {r3,r4} -	mov r8, r3 -	mov r9, r4 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B474: .4byte Task_PlayCryWhenReleasedFromBall -_0804B478: .4byte gTasks -_0804B47C: .4byte gBattlerSpriteIds -_0804B480: .4byte gSprites -	thumb_func_end sub_804B268 - -	thumb_func_start sub_804B484 -sub_804B484: @ 804B484 -	adds r3, r0, 0 -	adds r3, 0x2C -	ldrb r1, [r3] -	movs r2, 0x40 -	orrs r1, r2 -	strb r1, [r3] -	ldr r1, _0804B4A0 @ =sub_804B5C8 -	str r1, [r0, 0x1C] -	movs r1, 0 -	strh r1, [r0, 0x34] -	strh r1, [r0, 0x36] -	strh r1, [r0, 0x38] -	bx lr -	.align 2, 0 -_0804B4A0: .4byte sub_804B5C8 -	thumb_func_end sub_804B484 - -	thumb_func_start HandleBallAnimEnd -HandleBallAnimEnd: @ 804B4A4 -	push {r4-r7,lr} -	adds r5, r0, 0 -	movs r7, 0 -	ldrh r0, [r5, 0x3A] -	lsls r0, 24 -	lsrs r6, r0, 24 -	ldr r4, _0804B508 @ =gSprites -	ldr r0, _0804B50C @ =gBattlerSpriteIds -	adds r3, r6, r0 -	ldrb r1, [r3] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	adds r0, 0x3E -	ldrb r2, [r0] -	movs r1, 0x5 -	negs r1, r1 -	ands r1, r2 -	strb r1, [r0] -	adds r0, r5, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B4E6 -	adds r2, r5, 0 -	adds r2, 0x3E -	ldrb r0, [r2] -	movs r1, 0x4 -	orrs r0, r1 -	strb r0, [r2] -_0804B4E6: -	ldrb r0, [r3] -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r4 -	adds r0, r1, 0 -	adds r0, 0x3F -	ldrb r0, [r0] -	lsls r0, 26 -	cmp r0, 0 -	bge _0804B510 -	adds r0, r1, 0 -	movs r1, 0 -	bl StartSpriteAffineAnim -	movs r7, 0x1 -	b _0804B52C -	.align 2, 0 -_0804B508: .4byte gSprites -_0804B50C: .4byte gBattlerSpriteIds -_0804B510: -	ldr r2, _0804B5B4 @ =0xfffffee0 -	adds r0, r2, 0 -	ldrh r2, [r1, 0x30] -	adds r0, r2 -	strh r0, [r1, 0x30] -	ldrb r0, [r3] -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r4 -	ldrh r0, [r1, 0x30] -	lsls r0, 16 -	asrs r0, 24 -	strh r0, [r1, 0x26] -_0804B52C: -	adds r0, r5, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B5AE -	cmp r7, 0 -	beq _0804B5AE -	ldr r2, _0804B5B8 @ =gSprites -	ldr r0, _0804B5BC @ =gBattlerSpriteIds -	adds r0, r6, r0 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	movs r2, 0 -	movs r1, 0 -	strh r1, [r0, 0x26] -	ldr r0, _0804B5C0 @ =gDoingBattleAnim -	strb r2, [r0] -	ldr r4, _0804B5C4 @ =gBattleSpritesDataPtr -	ldr r0, [r4] -	ldr r0, [r0, 0x4] -	lsls r1, r6, 1 -	adds r1, r6 -	lsls r1, 2 -	adds r1, r0 -	ldrb r2, [r1] -	movs r0, 0x9 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -	adds r0, r5, 0 -	bl FreeSpriteOamMatrix -	adds r0, r5, 0 -	bl DestroySprite -	movs r3, 0 -	ldr r0, [r4] -	ldr r2, [r0, 0x4] -	movs r5, 0x8 -	movs r4, 0x3 -_0804B586: -	ldrb r1, [r2] -	adds r0, r5, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _0804B592 -	adds r3, 0x1 -_0804B592: -	adds r2, 0xC -	subs r4, 0x1 -	cmp r4, 0 -	bge _0804B586 -	cmp r3, 0x4 -	bne _0804B5AE -	movs r4, 0 -_0804B5A0: -	lsls r0, r4, 24 -	lsrs r0, 24 -	bl FreeBallGfx -	adds r4, 0x1 -	cmp r4, 0xB -	ble _0804B5A0 -_0804B5AE: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B5B4: .4byte 0xfffffee0 -_0804B5B8: .4byte gSprites -_0804B5BC: .4byte gBattlerSpriteIds -_0804B5C0: .4byte gDoingBattleAnim -_0804B5C4: .4byte gBattleSpritesDataPtr -	thumb_func_end HandleBallAnimEnd - -	thumb_func_start sub_804B5C8 -sub_804B5C8: @ 804B5C8 -	push {r4-r7,lr} -	adds r6, r0, 0 -	ldrh r0, [r6, 0x3A] -	lsls r0, 24 -	lsrs r7, r0, 24 -	ldrh r0, [r6, 0x36] -	adds r0, 0x1 -	strh r0, [r6, 0x36] -	lsls r0, 16 -	asrs r1, r0, 16 -	cmp r1, 0x28 -	beq _0804B666 -	cmp r1, 0x5F -	bne _0804B600 -	ldr r0, _0804B5F8 @ =gDoingBattleAnim -	movs r1, 0 -	strb r1, [r0] -	bl m4aMPlayAllStop -	ldr r0, _0804B5FC @ =0x0000013f -	bl PlaySE -	b _0804B666 -	.align 2, 0 -_0804B5F8: .4byte gDoingBattleAnim -_0804B5FC: .4byte 0x0000013f -_0804B600: -	ldr r0, _0804B66C @ =0x0000013b -	cmp r1, r0 -	bne _0804B666 -	ldr r5, _0804B670 @ =gSprites -	ldr r4, _0804B674 @ =gBattlerSpriteIds -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r4 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r5 -	ldrb r0, [r0, 0x3] -	lsls r0, 26 -	lsrs r0, 27 -	bl FreeOamMatrix -	movs r1, 0x3A -	ldrsh r0, [r6, r1] -	adds r0, r4 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r5 -	bl DestroySprite -	adds r0, r6, 0 -	bl DestroySpriteAndFreeResources -	ldr r0, _0804B678 @ =gMain -	ldr r1, _0804B67C @ =0x00000439 -	adds r0, r1 -	ldrb r1, [r0] -	movs r0, 0x2 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B666 -	ldr r0, _0804B680 @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r0, [r0, 0x4] -	lsls r1, r7, 1 -	adds r1, r7 -	lsls r1, 2 -	adds r1, r0 -	ldrb r2, [r1] -	movs r0, 0x9 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -_0804B666: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B66C: .4byte 0x0000013b -_0804B670: .4byte gSprites -_0804B674: .4byte gBattlerSpriteIds -_0804B678: .4byte gMain -_0804B67C: .4byte 0x00000439 -_0804B680: .4byte gBattleSpritesDataPtr -	thumb_func_end sub_804B5C8 - -	thumb_func_start SpriteCB_PlayerMonSendOut_1 -SpriteCB_PlayerMonSendOut_1: @ 804B684 -	push {r4,lr} -	adds r4, r0, 0 -	movs r0, 0x19 -	strh r0, [r4, 0x2E] -	ldrh r0, [r4, 0x3A] -	lsls r0, 24 -	lsrs r0, 24 -	movs r1, 0x2 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r4, 0x32] -	ldrh r0, [r4, 0x3A] -	lsls r0, 24 -	lsrs r0, 24 -	movs r1, 0x3 -	bl GetBattlerSpriteCoord -	lsls r0, 24 -	lsrs r0, 24 -	adds r0, 0x18 -	strh r0, [r4, 0x36] -	ldr r0, _0804B6CC @ =0x0000ffe2 -	strh r0, [r4, 0x38] -	ldrh r0, [r4, 0x3A] -	strh r0, [r4, 0x6] -	adds r0, r4, 0 -	bl InitAnimArcTranslation -	ldr r0, _0804B6D0 @ =SpriteCB_PlayerMonSendOut_2 -	str r0, [r4, 0x1C] -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B6CC: .4byte 0x0000ffe2 -_0804B6D0: .4byte SpriteCB_PlayerMonSendOut_2 -	thumb_func_end SpriteCB_PlayerMonSendOut_1 - -	thumb_func_start SpriteCB_PlayerMonSendOut_2 -SpriteCB_PlayerMonSendOut_2: @ 804B6D4 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	adds r5, r0, 0 -	ldrh r0, [r5, 0x3C] -	movs r1, 0xFF -	mov r8, r1 -	lsrs r0, 8 -	subs r0, 0x23 -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0x2C -	bhi _0804B7C8 -	ldrh r1, [r5, 0x6] -	movs r0, 0xFF -	lsls r0, 8 -	ands r0, r1 -	cmp r0, 0 -	bne _0804B736 -	ldrh r0, [r5, 0x30] -	movs r1, 0x1 -	adds r6, r1, 0 -	ands r6, r0 -	ldrh r0, [r5, 0x32] -	adds r7, r1, 0 -	ands r7, r0 -	movs r2, 0x30 -	ldrsh r0, [r5, r2] -	movs r1, 0x3 -	bl __divsi3 -	movs r1, 0x2 -	negs r1, r1 -	adds r4, r1, 0 -	ands r0, r4 -	orrs r6, r0 -	strh r6, [r5, 0x30] -	movs r2, 0x32 -	ldrsh r0, [r5, r2] -	movs r1, 0x3 -	bl __divsi3 -	ands r0, r4 -	orrs r7, r0 -	strh r7, [r5, 0x32] -	adds r0, r5, 0 -	movs r1, 0x4 -	bl StartSpriteAffineAnim -_0804B736: -	ldrh r4, [r5, 0x2E] -	adds r0, r5, 0 -	bl AnimTranslateLinear -	movs r1, 0x3A -	ldrsh r0, [r5, r1] -	movs r1, 0x3 -	bl __divsi3 -	adds r1, r0, 0 -	ldrh r0, [r5, 0x3C] -	adds r0, r1 -	strh r0, [r5, 0x3C] -	lsls r0, 16 -	asrs r0, 24 -	mov r2, r8 -	ands r0, r2 -	movs r2, 0x38 -	ldrsh r1, [r5, r2] -	bl Sin -	ldrh r1, [r5, 0x26] -	adds r0, r1 -	strh r0, [r5, 0x26] -	movs r2, 0x80 -	lsls r2, 1 -	adds r0, r2, 0 -	ldrh r1, [r5, 0x6] -	adds r0, r1 -	strh r0, [r5, 0x6] -	lsls r0, 16 -	lsrs r0, 24 -	movs r1, 0x3 -	bl __umodsi3 -	lsls r0, 16 -	cmp r0, 0 -	beq _0804B786 -	strh r4, [r5, 0x2E] -	b _0804B78E -_0804B786: -	lsls r0, r4, 16 -	asrs r0, 16 -	subs r0, 0x1 -	strh r0, [r5, 0x2E] -_0804B78E: -	ldrh r0, [r5, 0x3C] -	lsrs r0, 8 -	cmp r0, 0x4F -	ble _0804B834 -	ldrh r0, [r5, 0x30] -	movs r1, 0x1 -	adds r6, r1, 0 -	ands r6, r0 -	ldrh r0, [r5, 0x32] -	adds r7, r1, 0 -	ands r7, r0 -	movs r2, 0x30 -	ldrsh r1, [r5, r2] -	lsls r0, r1, 1 -	adds r0, r1 -	movs r1, 0x2 -	negs r1, r1 -	adds r2, r1, 0 -	ands r0, r2 -	orrs r0, r6 -	strh r0, [r5, 0x30] -	movs r0, 0x32 -	ldrsh r1, [r5, r0] -	lsls r0, r1, 1 -	adds r0, r1 -	ands r0, r2 -	orrs r0, r7 -	strh r0, [r5, 0x32] -	b _0804B834 -_0804B7C8: -	adds r0, r5, 0 -	bl TranslateAnimHorizontalArc -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B834 -	ldrh r0, [r5, 0x24] -	ldrh r1, [r5, 0x20] -	adds r0, r1 -	movs r1, 0 -	strh r0, [r5, 0x20] -	ldrh r0, [r5, 0x26] -	ldrh r2, [r5, 0x22] -	adds r0, r2 -	strh r0, [r5, 0x22] -	strh r1, [r5, 0x26] -	strh r1, [r5, 0x24] -	ldrb r0, [r5, 0x6] -	strh r0, [r5, 0x3A] -	strh r1, [r5, 0x2E] -	bl IsDoubleBattle -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B828 -	ldr r0, _0804B820 @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r0, [r0, 0x8] -	ldrb r1, [r0, 0x9] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B828 -	movs r0, 0x3A -	ldrsh r4, [r5, r0] -	movs r0, 0x2 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r4, r0 -	bne _0804B828 -	ldr r0, _0804B824 @ =SpriteCB_ReleaseMon2FromBall -	b _0804B82A -	.align 2, 0 -_0804B820: .4byte gBattleSpritesDataPtr -_0804B824: .4byte SpriteCB_ReleaseMon2FromBall -_0804B828: -	ldr r0, _0804B840 @ =sub_804B268 -_0804B82A: -	str r0, [r5, 0x1C] -	adds r0, r5, 0 -	movs r1, 0 -	bl StartSpriteAffineAnim -_0804B834: -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B840: .4byte sub_804B268 -	thumb_func_end SpriteCB_PlayerMonSendOut_2 - -	thumb_func_start SpriteCB_ReleaseMon2FromBall -SpriteCB_ReleaseMon2FromBall: @ 804B844 -	push {lr} -	adds r2, r0, 0 -	ldrh r0, [r2, 0x2E] -	adds r1, r0, 0x1 -	strh r1, [r2, 0x2E] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x18 -	ble _0804B85E -	movs r0, 0 -	strh r0, [r2, 0x2E] -	ldr r0, _0804B864 @ =sub_804B268 -	str r0, [r2, 0x1C] -_0804B85E: -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B864: .4byte sub_804B268 -	thumb_func_end SpriteCB_ReleaseMon2FromBall - -	thumb_func_start SpriteCB_OpponentMonSendOut -SpriteCB_OpponentMonSendOut: @ 804B868 -	push {r4,r5,lr} -	adds r5, r0, 0 -	ldrh r0, [r5, 0x2E] -	adds r0, 0x1 -	strh r0, [r5, 0x2E] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0xF -	ble _0804B8BC -	movs r0, 0 -	strh r0, [r5, 0x2E] -	bl IsDoubleBattle -	lsls r0, 24 -	cmp r0, 0 -	beq _0804B8B8 -	ldr r0, _0804B8B0 @ =gBattleSpritesDataPtr -	ldr r0, [r0] -	ldr r0, [r0, 0x8] -	ldrb r1, [r0, 0x9] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	beq _0804B8B8 -	movs r0, 0x3A -	ldrsh r4, [r5, r0] -	movs r0, 0x3 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r4, r0 -	bne _0804B8B8 -	ldr r0, _0804B8B4 @ =SpriteCB_ReleaseMon2FromBall -	b _0804B8BA -	.align 2, 0 -_0804B8B0: .4byte gBattleSpritesDataPtr -_0804B8B4: .4byte SpriteCB_ReleaseMon2FromBall -_0804B8B8: -	ldr r0, _0804B8C4 @ =sub_804B268 -_0804B8BA: -	str r0, [r5, 0x1C] -_0804B8BC: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B8C4: .4byte sub_804B268 -	thumb_func_end SpriteCB_OpponentMonSendOut - -	thumb_func_start LaunchBallStarsTaskForPokeball -LaunchBallStarsTaskForPokeball: @ 804B8C8 -	push {r4,lr} -	sub sp, 0x4 -	lsls r0, 24 -	lsrs r0, 24 -	lsls r1, 24 -	lsrs r1, 24 -	lsls r2, 24 -	lsrs r2, 24 -	lsls r3, 24 -	lsrs r3, 24 -	movs r4, 0 -	str r4, [sp] -	bl LaunchBallStarsTask -	lsls r0, 24 -	lsrs r0, 24 -	add sp, 0x4 -	pop {r4} -	pop {r1} -	bx r1 -	thumb_func_end LaunchBallStarsTaskForPokeball - -	thumb_func_start LaunchBallFadeMonTaskForPokeball -LaunchBallFadeMonTaskForPokeball: @ 804B8F0 -	push {lr} -	lsls r0, 24 -	lsrs r0, 24 -	lsls r1, 24 -	lsrs r1, 24 -	movs r3, 0 -	bl LaunchBallFadeMonTask -	lsls r0, 24 -	lsrs r0, 24 -	pop {r1} -	bx r1 -	thumb_func_end LaunchBallFadeMonTaskForPokeball - -	thumb_func_start CreatePokeballSpriteToReleaseMon -CreatePokeballSpriteToReleaseMon: @ 804B908 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x4 -	adds r5, r0, 0 -	mov r9, r2 -	mov r10, r3 -	ldr r6, [sp, 0x24] -	ldr r4, [sp, 0x28] -	ldr r0, [sp, 0x2C] -	lsls r5, 24 -	lsrs r5, 24 -	lsls r1, 24 -	lsrs r1, 24 -	str r1, [sp] -	mov r1, r9 -	lsls r1, 24 -	lsrs r1, 24 -	mov r9, r1 -	mov r2, r10 -	lsls r2, 24 -	lsrs r2, 24 -	mov r10, r2 -	lsls r6, 24 -	lsrs r6, 24 -	lsls r4, 24 -	lsrs r4, 24 -	lsls r0, 24 -	lsrs r7, r0, 24 -	ldr r0, _0804B9D4 @ =gUnknown_826056C -	bl LoadCompressedSpriteSheetUsingHeap -	ldr r0, _0804B9D8 @ =gUnknown_82605CC -	bl LoadCompressedSpritePaletteUsingHeap -	ldr r0, _0804B9DC @ =gUnknown_82606F4 -	mov r1, r9 -	mov r2, r10 -	adds r3, r4, 0 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	ldr r3, _0804B9E0 @ =gSprites -	mov r8, r3 -	lsls r4, r0, 4 -	adds r4, r0 -	lsls r4, 2 -	adds r1, r4, r3 -	strh r5, [r1, 0x2E] -	lsls r2, r5, 4 -	adds r2, r5 -	lsls r2, 2 -	add r2, r8 -	ldrh r0, [r2, 0x20] -	strh r0, [r1, 0x38] -	ldrh r0, [r2, 0x22] -	strh r0, [r1, 0x3A] -	mov r0, r9 -	strh r0, [r2, 0x20] -	mov r3, r10 -	strh r3, [r2, 0x22] -	strh r7, [r1, 0x30] -	mov r0, sp -	ldrh r0, [r0] -	strh r0, [r1, 0x32] -	mov r3, sp -	ldrh r3, [r3, 0x30] -	strh r3, [r1, 0x34] -	ldr r3, [sp, 0x30] -	lsrs r0, r3, 16 -	strh r0, [r1, 0x36] -	movs r0, 0x3 -	ands r6, r0 -	lsls r6, 2 -	ldrb r3, [r1, 0x5] -	movs r0, 0xD -	negs r0, r0 -	ands r0, r3 -	orrs r0, r6 -	strb r0, [r1, 0x5] -	movs r0, 0x1C -	add r8, r0 -	add r4, r8 -	ldr r0, _0804B9E4 @ =sub_804B9E8 -	str r0, [r4] -	adds r2, 0x3E -	ldrb r0, [r2] -	movs r1, 0x4 -	orrs r0, r1 -	strb r0, [r2] -	add sp, 0x4 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804B9D4: .4byte gUnknown_826056C -_0804B9D8: .4byte gUnknown_82605CC -_0804B9DC: .4byte gUnknown_82606F4 -_0804B9E0: .4byte gSprites -_0804B9E4: .4byte sub_804B9E8 -	thumb_func_end CreatePokeballSpriteToReleaseMon - -	thumb_func_start sub_804B9E8 -sub_804B9E8: @ 804B9E8 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	adds r6, r0, 0 -	ldrh r1, [r6, 0x30] -	movs r2, 0x30 -	ldrsh r0, [r6, r2] -	cmp r0, 0 -	bne _0804BA94 -	ldrh r0, [r6, 0x2E] -	lsls r0, 24 -	lsrs r7, r0, 24 -	ldrh r0, [r6, 0x32] -	lsls r0, 24 -	lsrs r0, 24 -	mov r8, r0 -	ldrh r4, [r6, 0x34] -	ldrh r0, [r6, 0x36] -	lsls r0, 16 -	orrs r4, r0 -	adds r0, r6, 0 -	adds r0, 0x43 -	ldrb r0, [r0] -	cmp r0, 0 -	beq _0804BA22 -	subs r0, 0x1 -	lsls r0, 24 -	lsrs r5, r0, 24 -	b _0804BA24 -_0804BA22: -	movs r5, 0 -_0804BA24: -	adds r0, r6, 0 -	movs r1, 0x1 -	bl StartSpriteAnim -	ldrh r0, [r6, 0x20] -	lsls r0, 24 -	lsrs r0, 24 -	ldrh r1, [r6, 0x22] -	subs r1, 0x5 -	lsls r1, 24 -	lsrs r1, 24 -	ldrb r2, [r6, 0x5] -	lsls r2, 28 -	lsrs r2, 30 -	adds r3, r5, 0 -	bl LaunchBallStarsTaskForPokeball -	movs r0, 0x1 -	mov r1, r8 -	adds r2, r4, 0 -	bl LaunchBallFadeMonTaskForPokeball -	lsls r0, 24 -	lsrs r0, 24 -	movs r5, 0 -	strh r0, [r6, 0x30] -	ldr r0, _0804BA8C @ =sub_804BAA4 -	str r0, [r6, 0x1C] -	ldr r0, _0804BA90 @ =gSprites -	lsls r4, r7, 4 -	adds r4, r7 -	lsls r4, 2 -	adds r4, r0 -	adds r2, r4, 0 -	adds r2, 0x3E -	ldrb r1, [r2] -	movs r0, 0x5 -	negs r0, r0 -	ands r0, r1 -	strb r0, [r2] -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -	adds r0, r4, 0 -	bl AnimateSprite -	movs r0, 0x80 -	lsls r0, 5 -	strh r0, [r4, 0x30] -	strh r5, [r6, 0x3C] -	b _0804BA98 -	.align 2, 0 -_0804BA8C: .4byte sub_804BAA4 -_0804BA90: .4byte gSprites -_0804BA94: -	subs r0, r1, 0x1 -	strh r0, [r6, 0x30] -_0804BA98: -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end sub_804B9E8 - -	thumb_func_start sub_804BAA4 -sub_804BAA4: @ 804BAA4 -	push {r4-r7,lr} -	adds r4, r0, 0 -	movs r0, 0 -	mov r12, r0 -	movs r6, 0 -	ldrh r0, [r4, 0x2E] -	lsls r0, 24 -	lsrs r3, r0, 24 -	adds r0, r4, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804BACE -	adds r2, r4, 0 -	adds r2, 0x3E -	ldrb r0, [r2] -	movs r1, 0x4 -	orrs r0, r1 -	strb r0, [r2] -_0804BACE: -	ldr r0, _0804BB5C @ =gSprites -	lsls r1, r3, 4 -	adds r1, r3 -	lsls r1, 2 -	adds r5, r1, r0 -	adds r0, r5, 0 -	adds r0, 0x3F -	ldrb r0, [r0] -	lsls r0, 26 -	cmp r0, 0 -	bge _0804BAF0 -	adds r0, r5, 0 -	movs r1, 0 -	bl StartSpriteAffineAnim -	movs r1, 0x1 -	mov r12, r1 -_0804BAF0: -	movs r2, 0x38 -	ldrsh r0, [r4, r2] -	movs r7, 0x20 -	ldrsh r1, [r4, r7] -	subs r0, r1 -	movs r1, 0x3C -	ldrsh r2, [r4, r1] -	muls r0, r2 -	cmp r0, 0 -	bge _0804BB06 -	adds r0, 0x7F -_0804BB06: -	asrs r0, 7 -	ldrh r7, [r4, 0x20] -	adds r0, r7 -	lsls r0, 16 -	lsrs r3, r0, 16 -	movs r1, 0x3A -	ldrsh r0, [r4, r1] -	movs r7, 0x22 -	ldrsh r1, [r4, r7] -	subs r0, r1 -	muls r0, r2 -	cmp r0, 0 -	bge _0804BB22 -	adds r0, 0x7F -_0804BB22: -	asrs r0, 7 -	ldrh r1, [r4, 0x22] -	adds r0, r1 -	strh r3, [r5, 0x20] -	strh r0, [r5, 0x22] -	ldrh r2, [r4, 0x3C] -	movs r7, 0x3C -	ldrsh r0, [r4, r7] -	cmp r0, 0x7F -	bgt _0804BB64 -	ldr r1, _0804BB60 @ =gSineTable -	lsls r0, r2, 24 -	lsrs r0, 23 -	adds r0, r1 -	movs r1, 0 -	ldrsh r0, [r0, r1] -	cmp r0, 0 -	bge _0804BB48 -	adds r0, 0x7 -_0804BB48: -	asrs r0, 3 -	negs r0, r0 -	lsls r0, 16 -	lsrs r0, 16 -	adds r1, r2, 0x4 -	strh r1, [r4, 0x3C] -	strh r0, [r5, 0x24] -	strh r0, [r5, 0x26] -	b _0804BB72 -	.align 2, 0 -_0804BB5C: .4byte gSprites -_0804BB60: .4byte gSineTable -_0804BB64: -	ldrh r0, [r4, 0x38] -	strh r0, [r5, 0x20] -	ldrh r0, [r4, 0x3A] -	strh r0, [r5, 0x22] -	strh r6, [r5, 0x24] -	strh r6, [r5, 0x26] -	movs r6, 0x1 -_0804BB72: -	adds r0, r4, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804BB90 -	mov r2, r12 -	cmp r2, 0 -	beq _0804BB90 -	cmp r6, 0 -	beq _0804BB90 -	adds r0, r4, 0 -	bl DestroySpriteAndFreeResources -_0804BB90: -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end sub_804BAA4 - -	thumb_func_start CreateTradePokeballSprite -CreateTradePokeballSprite: @ 804BB98 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	mov r10, r0 -	adds r6, r2, 0 -	mov r8, r3 -	ldr r5, [sp, 0x20] -	ldr r4, [sp, 0x24] -	ldr r0, [sp, 0x28] -	mov r9, r0 -	mov r0, r10 -	lsls r0, 24 -	lsrs r0, 24 -	mov r10, r0 -	lsls r1, 24 -	lsrs r7, r1, 24 -	lsls r6, 24 -	lsrs r6, 24 -	mov r1, r8 -	lsls r1, 24 -	lsrs r1, 24 -	mov r8, r1 -	lsls r5, 24 -	lsrs r5, 24 -	lsls r4, 24 -	lsrs r4, 24 -	mov r0, r9 -	lsls r0, 24 -	lsrs r0, 24 -	mov r9, r0 -	ldr r0, _0804BC3C @ =gUnknown_826056C -	bl LoadCompressedSpriteSheetUsingHeap -	ldr r0, _0804BC40 @ =gUnknown_82605CC -	bl LoadCompressedSpritePaletteUsingHeap -	ldr r0, _0804BC44 @ =gUnknown_82606F4 -	adds r1, r6, 0 -	mov r2, r8 -	adds r3, r4, 0 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	ldr r6, _0804BC48 @ =gSprites -	lsls r3, r0, 4 -	adds r3, r0 -	lsls r3, 2 -	adds r2, r3, r6 -	mov r1, r10 -	strh r1, [r2, 0x2E] -	mov r4, r9 -	strh r4, [r2, 0x30] -	strh r7, [r2, 0x32] -	mov r1, sp -	ldrh r1, [r1, 0x2C] -	strh r1, [r2, 0x34] -	ldr r4, [sp, 0x2C] -	lsrs r1, r4, 16 -	strh r1, [r2, 0x36] -	movs r1, 0x3 -	ands r5, r1 -	lsls r5, 2 -	ldrb r4, [r2, 0x5] -	movs r1, 0xD -	negs r1, r1 -	ands r1, r4 -	orrs r1, r5 -	strb r1, [r2, 0x5] -	adds r6, 0x1C -	adds r3, r6 -	ldr r1, _0804BC4C @ =sub_804BC50 -	str r1, [r3] -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r1} -	bx r1 -	.align 2, 0 -_0804BC3C: .4byte gUnknown_826056C -_0804BC40: .4byte gUnknown_82605CC -_0804BC44: .4byte gUnknown_82606F4 -_0804BC48: .4byte gSprites -_0804BC4C: .4byte sub_804BC50 -	thumb_func_end CreateTradePokeballSprite - -	thumb_func_start sub_804BC50 -sub_804BC50: @ 804BC50 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	adds r4, r0, 0 -	ldrh r1, [r4, 0x30] -	movs r2, 0x30 -	ldrsh r0, [r4, r2] -	cmp r0, 0 -	bne _0804BCE8 -	ldrh r0, [r4, 0x2E] -	lsls r0, 24 -	lsrs r7, r0, 24 -	ldrh r0, [r4, 0x32] -	lsls r0, 24 -	lsrs r0, 24 -	mov r8, r0 -	ldrh r5, [r4, 0x34] -	ldrh r0, [r4, 0x36] -	lsls r0, 16 -	orrs r5, r0 -	adds r0, r4, 0 -	adds r0, 0x43 -	ldrb r0, [r0] -	cmp r0, 0 -	beq _0804BC8A -	subs r0, 0x1 -	lsls r0, 24 -	lsrs r6, r0, 24 -	b _0804BC8C -_0804BC8A: -	movs r6, 0 -_0804BC8C: -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAnim -	ldrh r0, [r4, 0x20] -	lsls r0, 24 -	lsrs r0, 24 -	ldrh r1, [r4, 0x22] -	subs r1, 0x5 -	lsls r1, 24 -	lsrs r1, 24 -	ldrb r2, [r4, 0x5] -	lsls r2, 28 -	lsrs r2, 30 -	adds r3, r6, 0 -	bl LaunchBallStarsTaskForPokeball -	movs r0, 0x1 -	mov r1, r8 -	adds r2, r5, 0 -	bl LaunchBallFadeMonTaskForPokeball -	lsls r0, 24 -	lsrs r0, 24 -	movs r5, 0 -	strh r0, [r4, 0x30] -	ldr r0, _0804BCE0 @ =sub_804BCF8 -	str r0, [r4, 0x1C] -	lsls r4, r7, 4 -	adds r4, r7 -	lsls r4, 2 -	ldr r0, _0804BCE4 @ =gSprites -	adds r4, r0 -	adds r0, r4, 0 -	movs r1, 0x2 -	bl StartSpriteAffineAnim -	adds r0, r4, 0 -	bl AnimateSprite -	strh r5, [r4, 0x30] -	b _0804BCEC -	.align 2, 0 -_0804BCE0: .4byte sub_804BCF8 -_0804BCE4: .4byte gSprites -_0804BCE8: -	subs r0, r1, 0x1 -	strh r0, [r4, 0x30] -_0804BCEC: -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end sub_804BC50 - -	thumb_func_start sub_804BCF8 -sub_804BCF8: @ 804BCF8 -	push {r4,r5,lr} -	adds r5, r0, 0 -	ldrh r0, [r5, 0x38] -	adds r0, 0x1 -	strh r0, [r5, 0x38] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0xB -	bne _0804BD10 -	movs r0, 0x35 -	bl PlaySE -_0804BD10: -	ldrh r1, [r5, 0x2E] -	lsls r1, 24 -	lsrs r1, 24 -	ldr r2, _0804BD4C @ =gSprites -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r4, r0, r2 -	adds r0, r4, 0 -	adds r0, 0x3F -	ldrb r0, [r0] -	lsls r0, 26 -	cmp r0, 0 -	bge _0804BD54 -	adds r0, r5, 0 -	movs r1, 0x2 -	bl StartSpriteAnim -	adds r2, r4, 0 -	adds r2, 0x3E -	ldrb r0, [r2] -	movs r1, 0x4 -	orrs r0, r1 -	strb r0, [r2] -	movs r0, 0 -	strh r0, [r5, 0x38] -	ldr r0, _0804BD50 @ =sub_804BD6C -	str r0, [r5, 0x1C] -	b _0804BD64 -	.align 2, 0 -_0804BD4C: .4byte gSprites -_0804BD50: .4byte sub_804BD6C -_0804BD54: -	ldrh r0, [r4, 0x30] -	adds r0, 0x60 -	strh r0, [r4, 0x30] -	movs r1, 0x30 -	ldrsh r0, [r4, r1] -	negs r0, r0 -	asrs r0, 8 -	strh r0, [r4, 0x26] -_0804BD64: -	pop {r4,r5} -	pop {r0} -	bx r0 -	thumb_func_end sub_804BCF8 - -	thumb_func_start sub_804BD6C -sub_804BD6C: @ 804BD6C -	push {lr} -	adds r2, r0, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _0804BD80 -	ldr r0, _0804BD84 @ =SpriteCallbackDummy -	str r0, [r2, 0x1C] -_0804BD80: -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BD84: .4byte SpriteCallbackDummy -	thumb_func_end sub_804BD6C - -	thumb_func_start DestroySpriteAndFreeResources2 -DestroySpriteAndFreeResources2: @ 804BD88 -	push {lr} -	bl DestroySpriteAndFreeResources -	pop {r0} -	bx r0 -	thumb_func_end DestroySpriteAndFreeResources2 - -	thumb_func_start sub_804BD94 -sub_804BD94: @ 804BD94 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r0, 24 -	adds r5, r0, 0 -	ldr r0, _0804BE14 @ =gHealthboxSpriteIds -	adds r0, r5, r0 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r6, _0804BE18 @ =gSprites -	adds r4, r0, r6 -	movs r1, 0 -	movs r0, 0x5 -	strh r0, [r4, 0x2E] -	strh r1, [r4, 0x30] -	movs r0, 0x73 -	strh r0, [r4, 0x24] -	strh r1, [r4, 0x26] -	ldr r0, _0804BE1C @ =sub_804BE48 -	str r0, [r4, 0x1C] -	adds r0, r5, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _0804BDE2 -	ldrh r0, [r4, 0x2E] -	negs r0, r0 -	strh r0, [r4, 0x2E] -	ldrh r0, [r4, 0x30] -	negs r0, r0 -	strh r0, [r4, 0x30] -	ldrh r0, [r4, 0x24] -	negs r0, r0 -	strh r0, [r4, 0x24] -	ldrh r0, [r4, 0x26] -	negs r0, r0 -	strh r0, [r4, 0x26] -_0804BDE2: -	movs r0, 0x38 -	ldrsh r1, [r4, r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r1, r6, 0 -	adds r1, 0x1C -	adds r1, r0, r1 -	adds r0, r6 -	ldr r1, [r1] -	bl _call_via_r1 -	adds r0, r5, 0 -	bl GetBattlerPosition -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x2 -	bne _0804BE0C -	ldr r0, _0804BE20 @ =sub_804BE24 -	str r0, [r4, 0x1C] -_0804BE0C: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BE14: .4byte gHealthboxSpriteIds -_0804BE18: .4byte gSprites -_0804BE1C: .4byte sub_804BE48 -_0804BE20: .4byte sub_804BE24 -	thumb_func_end sub_804BD94 - -	thumb_func_start sub_804BE24 -sub_804BE24: @ 804BE24 -	push {lr} -	adds r1, r0, 0 -	ldrh r0, [r1, 0x30] -	adds r0, 0x1 -	strh r0, [r1, 0x30] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x14 -	bne _0804BE3E -	movs r0, 0 -	strh r0, [r1, 0x30] -	ldr r0, _0804BE44 @ =sub_804BE48 -	str r0, [r1, 0x1C] -_0804BE3E: -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BE44: .4byte sub_804BE48 -	thumb_func_end sub_804BE24 - -	thumb_func_start sub_804BE48 -sub_804BE48: @ 804BE48 -	push {lr} -	adds r2, r0, 0 -	ldrh r0, [r2, 0x24] -	ldrh r1, [r2, 0x2E] -	subs r0, r1 -	strh r0, [r2, 0x24] -	ldrh r0, [r2, 0x26] -	ldrh r1, [r2, 0x30] -	subs r0, r1 -	strh r0, [r2, 0x26] -	ldr r0, [r2, 0x24] -	cmp r0, 0 -	bne _0804BE66 -	ldr r0, _0804BE6C @ =SpriteCallbackDummy -	str r0, [r2, 0x1C] -_0804BE66: -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BE6C: .4byte SpriteCallbackDummy -	thumb_func_end sub_804BE48 - -	thumb_func_start DoHitAnimHealthboxEffect -DoHitAnimHealthboxEffect: @ 804BE70 -	push {r4,r5,lr} -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	ldr r5, _0804BEA8 @ =SpriteCB_HitAnimHealthoxEffect -	adds r0, r5, 0 -	bl CreateInvisibleSpriteWithCallback -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _0804BEAC @ =gSprites -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r1, 2 -	adds r3, r1, r2 -	movs r0, 0x1 -	strh r0, [r3, 0x2E] -	ldr r0, _0804BEB0 @ =gHealthboxSpriteIds -	adds r4, r0 -	ldrb r0, [r4] -	strh r0, [r3, 0x30] -	adds r2, 0x1C -	adds r1, r2 -	str r5, [r1] -	pop {r4,r5} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BEA8: .4byte SpriteCB_HitAnimHealthoxEffect -_0804BEAC: .4byte gSprites -_0804BEB0: .4byte gHealthboxSpriteIds -	thumb_func_end DoHitAnimHealthboxEffect - -	thumb_func_start SpriteCB_HitAnimHealthoxEffect -SpriteCB_HitAnimHealthoxEffect: @ 804BEB4 -	push {lr} -	adds r3, r0, 0 -	ldrh r1, [r3, 0x30] -	lsls r1, 24 -	lsrs r1, 24 -	ldr r2, _0804BEF0 @ =gSprites -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r1, r0, r2 -	ldrh r0, [r3, 0x2E] -	movs r2, 0 -	strh r0, [r1, 0x26] -	ldrh r0, [r3, 0x2E] -	negs r0, r0 -	strh r0, [r3, 0x2E] -	ldrh r0, [r3, 0x32] -	adds r0, 0x1 -	strh r0, [r3, 0x32] -	lsls r0, 16 -	asrs r0, 16 -	cmp r0, 0x15 -	bne _0804BEEC -	strh r2, [r1, 0x24] -	strh r2, [r1, 0x26] -	adds r0, r3, 0 -	bl DestroySprite -_0804BEEC: -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BEF0: .4byte gSprites -	thumb_func_end SpriteCB_HitAnimHealthoxEffect - -	thumb_func_start LoadBallGfx -LoadBallGfx: @ 804BEF4 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r0, _0804BF50 @ =gUnknown_826056C -	lsls r6, r4, 3 -	adds r5, r6, r0 -	ldrh r0, [r5, 0x6] -	bl GetSpriteTileStartByTag -	lsls r0, 16 -	ldr r1, _0804BF54 @ =0xffff0000 -	cmp r0, r1 -	bne _0804BF1C -	adds r0, r5, 0 -	bl LoadCompressedSpriteSheetUsingHeap -	ldr r0, _0804BF58 @ =gUnknown_82605CC -	adds r0, r6, r0 -	bl LoadCompressedSpritePaletteUsingHeap -_0804BF1C: -	cmp r4, 0x6 -	beq _0804BF48 -	cmp r4, 0x6 -	blt _0804BF2C -	cmp r4, 0xB -	bgt _0804BF2C -	cmp r4, 0xA -	bge _0804BF48 -_0804BF2C: -	ldr r1, _0804BF50 @ =gUnknown_826056C -	lsls r0, r4, 3 -	adds r0, r1 -	ldrh r0, [r0, 0x6] -	bl GetSpriteTileStartByTag -	adds r1, r0, 0 -	lsls r1, 16 -	ldr r0, _0804BF5C @ =gFile_graphics_interface_ball_Open_sheet -	lsrs r1, 11 -	ldr r2, _0804BF60 @ =0x06010100 -	adds r1, r2 -	bl LZDecompressVram -_0804BF48: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BF50: .4byte gUnknown_826056C -_0804BF54: .4byte 0xffff0000 -_0804BF58: .4byte gUnknown_82605CC -_0804BF5C: .4byte gFile_graphics_interface_ball_Open_sheet -_0804BF60: .4byte 0x06010100 -	thumb_func_end LoadBallGfx - -	thumb_func_start FreeBallGfx -FreeBallGfx: @ 804BF64 -	push {r4,lr} -	adds r4, r0, 0 -	lsls r4, 24 -	ldr r0, _0804BF88 @ =gUnknown_826056C -	lsrs r4, 21 -	adds r0, r4, r0 -	ldrh r0, [r0, 0x6] -	bl FreeSpriteTilesByTag -	ldr r0, _0804BF8C @ =gUnknown_82605CC -	adds r4, r0 -	ldrh r0, [r4, 0x4] -	bl FreeSpritePaletteByTag -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804BF88: .4byte gUnknown_826056C -_0804BF8C: .4byte gUnknown_82605CC -	thumb_func_end FreeBallGfx - -	thumb_func_start GetBankPokeballItemId -GetBankPokeballItemId: @ 804BF90 -	push {r4,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	adds r0, r4, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _0804BFBC -	ldr r1, _0804BFB4 @ =gBattlerPartyIndexes -	lsls r0, r4, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _0804BFB8 @ =gEnemyParty -	b _0804BFCA -	.align 2, 0 -_0804BFB4: .4byte gBattlerPartyIndexes -_0804BFB8: .4byte gEnemyParty -_0804BFBC: -	ldr r1, _0804BFDC @ =gBattlerPartyIndexes -	lsls r0, r4, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _0804BFE0 @ =gPlayerParty -_0804BFCA: -	adds r0, r1 -	movs r1, 0x26 -	bl GetMonData -	lsls r0, 16 -	lsrs r0, 16 -	pop {r4} -	pop {r1} -	bx r1 -	.align 2, 0 -_0804BFDC: .4byte gBattlerPartyIndexes -_0804BFE0: .4byte gPlayerParty -	thumb_func_end GetBankPokeballItemId - -	.align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index f0f13f561..45eba1df8 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -10638,7 +10638,7 @@ _08139CDA:  	lsls r0, r4, 1  	adds r0, r4  	lsls r0, 3 -	ldr r1, _08139D40 @ =gUnknown_82606F4 +	ldr r1, _08139D40 @ =gBallSpriteTemplates  	adds r0, r1  	movs r1, 0x6A  	movs r2, 0x58 @@ -10677,7 +10677,7 @@ _08139CDA:  	pop {r0}  	bx r0  	.align 2, 0 -_08139D40: .4byte gUnknown_82606F4 +_08139D40: .4byte gBallSpriteTemplates  _08139D44: .4byte gUnknown_203B140  _08139D48: .4byte 0x0000300c  _08139D4C: .4byte gSprites | 
