diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/battle_3.s | 780 |
1 files changed, 3 insertions, 777 deletions
diff --git a/asm/battle_3.s b/asm/battle_3.s index a42fdcf00..13660f368 100644 --- a/asm/battle_3.s +++ b/asm/battle_3.s @@ -6,782 +6,8 @@ .text - - - - thumb_func_start sub_80170DC -sub_80170DC: @ 80170DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _08017108 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0801710C @ =0x01000020 - orrs r0, r1 - str r0, [r2] - ldr r1, _08017110 @ =0x02000000 - ldr r3, _08017114 @ =0x00016110 - adds r0, r1, r3 - ldrb r0, [r0] - mov r8, r1 - cmp r0, 0 - beq _08017118 - cmp r0, 0x1 - bne _08017104 - b _08017258 -_08017104: - b _08017380 - .align 2, 0 -_08017108: .4byte gHitMarker -_0801710C: .4byte 0x01000020 -_08017110: .4byte 0x02000000 -_08017114: .4byte 0x00016110 -_08017118: - ldr r2, _0801715C @ =0x00016111 - add r2, r8 - ldr r0, _08017160 @ =gNoOfAllBanks - ldrb r1, [r2] - mov r9, r0 - ldrb r0, [r0] - cmp r1, r0 - bcc _0801712A - b _08017248 -_0801712A: - ldr r4, _08017164 @ =gActiveBank - adds r5, r2, 0 - ldr r1, _08017168 @ =gWishFutureKnock - mov r12, r1 - movs r2, 0x8 - add r2, r12 - mov r10, r2 - mov r7, r12 - adds r7, 0x18 - ldr r6, _0801716C @ =gBattleTextBuff1 -_0801713E: - ldrb r3, [r5] - strb r3, [r4] - ldr r0, _08017170 @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08017174 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08017178 - adds r0, r3, 0x1 - strb r0, [r5] - b _0801723C - .align 2, 0 -_0801715C: .4byte 0x00016111 -_08017160: .4byte gNoOfAllBanks -_08017164: .4byte gActiveBank -_08017168: .4byte gWishFutureKnock -_0801716C: .4byte gBattleTextBuff1 -_08017170: .4byte gAbsentBankFlags -_08017174: .4byte gBitTable -_08017178: - adds r0, r3, 0x1 - strb r0, [r5] - ldr r1, _080171B4 @ =gWishFutureKnock - ldrb r0, [r4] - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - beq _0801723C - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0801723C - ldr r1, _080171B8 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801723C - lsls r0, r2, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0xF8 - bne _080171C0 - ldr r0, _080171BC @ =gBattleCommunication - strb r3, [r0, 0x5] - b _080171C6 - .align 2, 0 -_080171B4: .4byte gWishFutureKnock -_080171B8: .4byte gBattleMons -_080171BC: .4byte gBattleCommunication -_080171C0: - ldr r1, _08017220 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_080171C6: - movs r0, 0xFD - strb r0, [r6] - movs r0, 0x2 - strb r0, [r6, 0x1] - ldrb r0, [r4] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r6, 0x2] - ldrb r0, [r4] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r6, 0x3] - movs r0, 0xFF - strb r0, [r6, 0x4] - ldr r3, _08017224 @ =gBankTarget - ldrb r0, [r4] - strb r0, [r3] - ldr r1, _08017228 @ =gBankAttacker - mov r0, r12 - adds r0, 0x4 - ldrb r2, [r4] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0801722C @ =gBattleMoveDamage - ldrb r0, [r4] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - str r0, [r1] - ldr r2, _08017230 @ =gSpecialStatuses - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, _08017234 @ =0x0000ffff - str r1, [r0] - ldr r0, _08017238 @ =gUnknown_081D92D7 - b _08017364 - .align 2, 0 -_08017220: .4byte gBattleCommunication -_08017224: .4byte gBankTarget -_08017228: .4byte gBankAttacker -_0801722C: .4byte gBattleMoveDamage -_08017230: .4byte gSpecialStatuses -_08017234: .4byte 0x0000ffff -_08017238: .4byte gUnknown_081D92D7 -_0801723C: - ldrb r0, [r5] - mov r3, r9 - ldrb r3, [r3] - cmp r0, r3 - bcs _08017248 - b _0801713E -_08017248: - ldr r1, _0801729C @ =0x00016110 - add r1, r8 - movs r2, 0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080172A0 @ =0x00016111 - add r0, r8 - strb r2, [r0] -_08017258: - ldr r2, _080172A0 @ =0x00016111 - add r2, r8 - ldr r0, _080172A4 @ =gNoOfAllBanks - ldrb r1, [r2] - mov r9, r0 - ldrb r0, [r0] - cmp r1, r0 - bcc _0801726A - b _08017380 -_0801726A: - ldr r5, _080172A8 @ =gActiveBank - adds r3, r2, 0 - ldr r4, _080172AC @ =gBattleTextBuff1 - ldr r7, _080172B0 @ =gDisableStructs -_08017272: - ldr r2, _080172B4 @ =gBankAttacker - ldr r1, _080172B8 @ =gTurnOrder - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r0, _080172BC @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _080172C0 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080172C4 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - b _08017374 - .align 2, 0 -_0801729C: .4byte 0x00016110 -_080172A0: .4byte 0x00016111 -_080172A4: .4byte gNoOfAllBanks -_080172A8: .4byte gActiveBank -_080172AC: .4byte gBattleTextBuff1 -_080172B0: .4byte gDisableStructs -_080172B4: .4byte gBankAttacker -_080172B8: .4byte gTurnOrder -_080172BC: .4byte gAbsentBankFlags -_080172C0: .4byte gBitTable -_080172C4: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r6, _08017334 @ =gStatuses3 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08017374 - movs r0, 0xFD - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0xF] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r4, 0x4] - movs r0, 0xFF - strb r0, [r4, 0x5] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r4, r0, r7 - ldrb r3, [r4, 0xF] - lsls r1, r3, 28 - cmp r1, 0 - bne _08017348 - lsls r2, 2 - adds r2, r6 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldr r3, _08017338 @ =gBattleMoveDamage - ldr r2, _0801733C @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - str r0, [r3] - ldr r1, _08017340 @ =gBattlescriptCurrInstr - ldr r0, _08017344 @ =gUnknown_081D9202 - b _08017360 - .align 2, 0 -_08017334: .4byte gStatuses3 -_08017338: .4byte gBattleMoveDamage -_0801733C: .4byte gBattleMons -_08017340: .4byte gBattlescriptCurrInstr -_08017344: .4byte gUnknown_081D9202 -_08017348: - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0xF] - ldr r1, _0801736C @ =gBattlescriptCurrInstr - ldr r0, _08017370 @ =gUnknown_081D921D -_08017360: - str r0, [r1] - ldr r0, [r1] -_08017364: - bl b_call_bc_move_exec - movs r0, 0x1 - b _0801738C - .align 2, 0 -_0801736C: .4byte gBattlescriptCurrInstr -_08017370: .4byte gUnknown_081D921D -_08017374: - ldrb r0, [r3] - mov r1, r9 - ldrb r1, [r1] - cmp r0, r1 - bcs _08017380 - b _08017272 -_08017380: - ldr r2, _0801739C @ =gHitMarker - ldr r0, [r2] - ldr r1, _080173A0 @ =0xfeffffdf - ands r0, r1 - str r0, [r2] - movs r0, 0 -_0801738C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801739C: .4byte gHitMarker -_080173A0: .4byte 0xfeffffdf - thumb_func_end sub_80170DC - - thumb_func_start sub_80173A4 -sub_80173A4: @ 80173A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080173C0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080173F8 - b _080176AC - .align 2, 0 -_080173C0: .4byte gBattleTypeFlags -_080173C4: - ldr r0, _080173D4 @ =gUnknown_081D8C72 - bl b_call_bc_move_exec - ldr r1, _080173D8 @ =0x00016059 - add r1, r10 - movs r0, 0x2 - b _080173E8 - .align 2, 0 -_080173D4: .4byte gUnknown_081D8C72 -_080173D8: .4byte 0x00016059 -_080173DC: - ldr r0, _080173F0 @ =gUnknown_081D8C7B - bl b_call_bc_move_exec - ldr r1, _080173F4 @ =0x00016059 - add r1, r8 - movs r0, 0x5 -_080173E8: - strb r0, [r1] -_080173EA: - movs r0, 0x1 - b _080176AE - .align 2, 0 -_080173F0: .4byte gUnknown_081D8C7B -_080173F4: .4byte 0x00016059 -_080173F8: - ldr r0, _08017414 @ =0x02000000 - mov r9, r0 -_080173FC: - ldr r0, _08017418 @ =0x00016059 - add r0, r9 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08017408 - b _080176A0 -_08017408: - lsls r0, 2 - ldr r1, _0801741C @ =_08017420 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08017414: .4byte 0x02000000 -_08017418: .4byte 0x00016059 -_0801741C: .4byte _08017420 - .align 2, 0 -_08017420: - .4byte _08017440 - .4byte _08017490 - .4byte _08017534 - .4byte _0801757C - .4byte _0801758E - .4byte _080175FC - .4byte _08017638 - .4byte _080176A0 -_08017440: - ldr r1, _08017508 @ =0x0001605a - add r1, r9 - movs r0, 0 - strb r0, [r1] - ldr r1, _0801750C @ =0x00016059 - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r5, 0 - ldr r0, _08017510 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - bge _08017490 - ldr r6, _08017514 @ =gAbsentBankFlags -_0801745E: - ldrb r0, [r6] - ldr r2, _08017518 @ =gBitTable - lsls r1, r5, 2 - adds r1, r2 - ldr r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _08017486 - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - bne _08017486 - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] -_08017486: - adds r5, 0x1 - ldr r0, _08017510 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - blt _0801745E -_08017490: - ldr r1, _0801751C @ =0x02000000 - mov r9, r1 - ldr r0, _08017520 @ =gBank1 - mov r12, r0 - ldr r1, _08017524 @ =gBankTarget - mov r8, r1 - mov r10, r9 - ldr r5, _08017508 @ =0x0001605a - add r5, r9 - ldr r7, _08017528 @ =gBattleMons - ldr r6, _0801752C @ =0x00016113 - add r6, r9 -_080174A8: - ldrb r0, [r5] - mov r1, r8 - strb r0, [r1] - mov r1, r12 - strb r0, [r1] - ldrb r3, [r5] - movs r0, 0x58 - muls r0, r3 - adds r0, r7 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080174EA - ldrb r2, [r6] - ldr r4, _08017518 @ =gBitTable - ldr r1, _08017530 @ =gBattlePartyID - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _080174EA - ldr r0, _08017514 @ =gAbsentBankFlags - ldrb r1, [r0] - lsls r0, r3, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080174EA - b _080173C4 -_080174EA: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldr r1, _08017510 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080174A8 - ldr r1, _0801750C @ =0x00016059 - add r1, r9 - movs r0, 0x3 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_08017508: .4byte 0x0001605a -_0801750C: .4byte 0x00016059 -_08017510: .4byte gNoOfAllBanks -_08017514: .4byte gAbsentBankFlags -_08017518: .4byte gBitTable -_0801751C: .4byte 0x02000000 -_08017520: .4byte gBank1 -_08017524: .4byte gBankTarget -_08017528: .4byte gBattleMons -_0801752C: .4byte 0x00016113 -_08017530: .4byte gBattlePartyID -_08017534: - ldr r0, _0801755C @ =gBank1 - ldrb r0, [r0] - bl sub_8015740 - ldr r2, _08017560 @ =0x02000000 - ldr r0, _08017564 @ =0x0001605a - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08017568 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08017570 - ldr r0, _0801756C @ =0x00016059 - adds r1, r2, r0 - movs r0, 0x3 - b _0801769C - .align 2, 0 -_0801755C: .4byte gBank1 -_08017560: .4byte 0x02000000 -_08017564: .4byte 0x0001605a -_08017568: .4byte gNoOfAllBanks -_0801756C: .4byte 0x00016059 -_08017570: - ldr r0, _08017578 @ =0x00016059 - adds r1, r2, r0 - movs r0, 0x1 - b _0801769C - .align 2, 0 -_08017578: .4byte 0x00016059 -_0801757C: - ldr r1, _080175D8 @ =0x0001605a - add r1, r9 - movs r0, 0 - strb r0, [r1] - ldr r1, _080175DC @ =0x00016059 - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0801758E: - ldr r7, _080175E0 @ =gBank1 - ldr r6, _080175E4 @ =gBankTarget - ldr r1, _080175E8 @ =0x02000000 - mov r8, r1 - ldr r3, _080175D8 @ =0x0001605a - add r3, r8 - ldr r5, _080175EC @ =gBattleMons - ldr r4, _080175F0 @ =gBitTable -_0801759E: - ldrb r0, [r3] - strb r0, [r6] - strb r0, [r7] - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080175C4 - ldr r0, _080175F4 @ =gAbsentBankFlags - ldrb r1, [r0] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080175C4 - b _080173DC -_080175C4: - adds r0, r2, 0x1 - strb r0, [r3] - ldr r1, _080175F8 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0801759E - b _08017612 - .align 2, 0 -_080175D8: .4byte 0x0001605a -_080175DC: .4byte 0x00016059 -_080175E0: .4byte gBank1 -_080175E4: .4byte gBankTarget -_080175E8: .4byte 0x02000000 -_080175EC: .4byte gBattleMons -_080175F0: .4byte gBitTable -_080175F4: .4byte gAbsentBankFlags -_080175F8: .4byte gNoOfAllBanks -_080175FC: - ldr r0, _0801761C @ =0x0001605a - add r0, r9 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08017620 @ =gNoOfAllBanks - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r0] - cmp r1, r0 - bne _08017628 -_08017612: - ldr r1, _08017624 @ =0x00016059 - add r1, r9 - movs r0, 0x6 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_0801761C: .4byte 0x0001605a -_08017620: .4byte gNoOfAllBanks -_08017624: .4byte 0x00016059 -_08017628: - ldr r1, _08017634 @ =0x00016059 - add r1, r9 - movs r0, 0x4 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_08017634: .4byte 0x00016059 -_08017638: - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08017652 - b _080173EA -_08017652: - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08017668 - b _080173EA -_08017668: - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl ItemBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0801767C - b _080173EA -_0801767C: - str r0, [sp] - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08017692 - b _080173EA -_08017692: - ldr r2, _080176C0 @ =0x02000000 - ldr r0, _080176C4 @ =0x00016059 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 -_0801769C: - strb r0, [r1] - mov r9, r2 -_080176A0: - ldr r0, _080176C4 @ =0x00016059 - add r0, r9 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080176AC - b _080173FC -_080176AC: - movs r0, 0 -_080176AE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080176C0: .4byte 0x02000000 -_080176C4: .4byte 0x00016059 - thumb_func_end sub_80173A4 - - thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged -b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _08017708 @ =gNoOfAllBanks - adds r5, r0, 0 - ldrb r0, [r5] - cmp r3, r0 - bge _08017700 - ldr r4, _0801770C @ =gChosenMovesByBanks - movs r6, 0x80 - lsls r6, 16 - ldr r2, _08017710 @ =gUnknown_02024AD0 -_080176DE: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080176F4 - ldrh r0, [r4] - cmp r0, 0x63 - beq _080176F4 - ldr r0, _08017714 @ =0xff7fffff - ands r1, r0 - str r1, [r2] -_080176F4: - adds r4, 0x2 - adds r2, 0x58 - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _080176DE -_08017700: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08017708: .4byte gNoOfAllBanks -_0801770C: .4byte gChosenMovesByBanks -_08017710: .4byte gUnknown_02024AD0 -_08017714: .4byte 0xff7fffff - thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged - - thumb_func_start CantUseMove -CantUseMove: @ 8017718 + thumb_func_start AtkCanceller_UnableToUseMove +AtkCanceller_UnableToUseMove: @ 8017718 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1823,7 +1049,7 @@ _08018008: .4byte 0x02000000 _0801800C: .4byte 0x000160e7 _08018010: .4byte gActiveBank _08018014: .4byte gUnknown_02024ACC - thumb_func_end CantUseMove + thumb_func_end AtkCanceller_UnableToUseMove thumb_func_start sub_8018018 sub_8018018: @ 8018018 |