From 91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 16 Jan 2018 22:25:35 -0600 Subject: add debug ifdefs --- src/battle/battle_2.c | 7964 +++++++++++++++++++++++++++++++++++++++++ src/battle/battle_ai.c | 209 ++ src/battle/battle_interface.c | 669 +++- src/battle/battle_records.c | 29 +- 4 files changed, 8862 insertions(+), 9 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 990535b4e..5212f5bdc 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -203,6 +203,231 @@ void sub_800E7C4(void) } } +#if DEBUG +__attribute__((naked)) +void InitBattle(void) +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffffc\n" + " mov r0, #0x0\n" + " bl SetHBlankCallback\n" + " mov r0, #0x0\n" + " bl SetVBlankCallback\n" + " mov r4, #0x0\n" + " str r4, [sp]\n" + " mov r1, #0xc0\n" + " lsl r1, r1, #0x13\n" + " ldr r2, ._10\n" + " mov r0, sp\n" + " bl gScriptFuncs_End+0x3cb4\n" + " ldr r0, ._10 + 4\n" + " strh r4, [r0]\n" + " sub r0, r0, #0xc\n" + " mov r2, #0xf0\n" + " strh r2, [r0]\n" + " add r0, r0, #0x4\n" + " ldr r3, ._10 + 8\n" + " add r1, r3, #0\n" + " strh r1, [r0]\n" + " add r0, r0, #0x4\n" + " strh r4, [r0]\n" + " add r0, r0, #0x2\n" + " strh r4, [r0]\n" + " ldr r0, ._10 + 12\n" + " strh r2, [r0]\n" + " ldr r0, ._10 + 16\n" + " strh r1, [r0]\n" + " bl dp12_8087EA4\n" + " ldr r0, ._10 + 20\n" + " mov r3, #0xf0\n" + " mov r5, #0xf0\n" + " lsl r5, r5, #0x3\n" + " add r2, r0, r5\n" + " mov r1, #0x4f\n" + "._5:\n" + " strh r3, [r0]\n" + " strh r3, [r2]\n" + " add r2, r2, #0x2\n" + " add r0, r0, #0x2\n" + " sub r1, r1, #0x1\n" + " cmp r1, #0\n" + " bge ._5 @cond_branch\n" + " mov r1, #0x50\n" + " ldr r4, ._10 + 24\n" + " ldr r0, ._10 + 20\n" + " ldr r3, ._10 + 28\n" + " mov r5, #0x82\n" + " lsl r5, r5, #0x4\n" + " add r2, r0, r5\n" + " add r0, r0, #0xa0\n" + "._6:\n" + " strh r3, [r0]\n" + " strh r3, [r2]\n" + " add r2, r2, #0x2\n" + " add r0, r0, #0x2\n" + " add r1, r1, #0x1\n" + " cmp r1, #0x9f\n" + " ble ._6 @cond_branch\n" + " ldr r0, [r4]\n" + " ldr r1, [r4, #0x4]\n" + " ldr r2, [r4, #0x8]\n" + " bl sub_80895F8\n" + " ldr r4, ._10 + 32\n" + " add r0, r4, #0\n" + " bl SetUpWindowConfig\n" + " bl ResetPaletteFade\n" + " ldr r0, ._10 + 36\n" + " mov r1, #0x0\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 40\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 44\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 48\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 52\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 56\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 60\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 64\n" + " strh r1, [r0]\n" + " ldr r0, ._10 + 68\n" + " ldrb r1, [r0]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._7 @cond_branch\n" + " bl GetBattleTerrain\n" + " ldr r1, ._10 + 72\n" + " strb r0, [r1]\n" + "._7:\n" + " ldr r0, ._10 + 76\n" + " add r1, r4, #0\n" + " bl InitWindowFromConfig\n" + " ldr r0, ._10 + 80\n" + " ldr r1, ._10 + 84\n" + " bl InitWindowFromConfig\n" + " ldr r0, ._10 + 88\n" + " ldr r1, ._10 + 92\n" + " bl InitWindowFromConfig\n" + " bl sub_800D6D4\n" + " bl sub_800DAB8\n" + " bl ResetSpriteData\n" + " bl ResetTasks\n" + " bl sub_800E23C\n" + " bl FreeAllSpritePalettes\n" + " ldr r1, ._10 + 96\n" + " mov r0, #0x4\n" + " strb r0, [r1]\n" + " ldr r0, ._10 + 100\n" + " bl SetVBlankCallback\n" + " bl setup_poochyena_battle\n" + " ldr r0, ._10 + 104\n" + " ldrh r1, [r0]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._8 @cond_branch\n" + " ldr r0, ._10 + 108\n" + " bl SetMainCallback2\n" + " b ._9\n" + "._11:\n" + " .align 2, 0\n" + "._10:\n" + " .word 0x5006000\n" + " .word 0x400004c\n" + " .word 0x5051\n" + " .word gUnknown_030042C4\n" + " .word gUnknown_03004240\n" + " .word gUnknown_03004DE0\n" + " .word gUnknown_081F9674\n" + " .word 0xff10\n" + " .word gWindowConfig_81E6C58\n" + " .word gUnknown_030042A4\n" + " .word gUnknown_030042A0\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_030041B4\n" + " .word gUnknown_03004288\n" + " .word gUnknown_03004280\n" + " .word gUnknown_030041B0\n" + " .word gUnknown_030041B8\n" + " .word gUnknown_02023A14+0x50\n" + " .word gBattleTerrain\n" + " .word gUnknown_03004210\n" + " .word gUnknown_030041D0\n" + " .word gWindowConfig_81E71D0\n" + " .word gUnknown_03004250\n" + " .word gWindowConfig_81E71EC\n" + " .word gReservedSpritePaletteCount\n" + " .word sub_800FCFC+1\n" + " .word gBattleTypeFlags\n" + " .word sub_800F298+1\n" + "._8:\n" + " ldr r0, ._15\n" + " bl SetMainCallback2\n" + "._9:\n" + " ldr r0, ._15 + 4\n" + " ldrh r1, [r0]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._13 @cond_branch\n" + " ldr r0, ._15 + 8\n" + " ldrb r1, [r0]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._13 @cond_branch\n" + " ldr r0, ._15 + 12\n" + " ldr r1, ._15 + 16\n" + " ldrh r1, [r1]\n" + " bl CreateNPCTrainerParty\n" + " bl SetWildMonHeldItem\n" + "._13:\n" + " ldr r0, ._15 + 20\n" + " ldr r1, ._15 + 24\n" + " add r0, r0, r1\n" + " ldrb r1, [r0]\n" + " mov r2, #0x2\n" + " orr r1, r1, r2\n" + " strb r1, [r0]\n" + " ldr r4, ._15 + 28\n" + " mov r3, #0xfa\n" + " lsl r3, r3, #0x1\n" + " add r5, r4, r3\n" + "._14:\n" + " add r0, r4, #0\n" + " mov r1, #0x3\n" + " bl AdjustFriendship\n" + " add r4, r4, #0x64\n" + " cmp r4, r5\n" + " ble ._14 @cond_branch\n" + " mov r1, #0x0\n" + " ldr r0, ._15 + 32\n" + " strb r1, [r0]\n" + " add sp, sp, #0x4\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._16:\n" + " .align 2, 0\n" + "._15:\n" + " .word sub_800EC9C+1\n" + " .word gBattleTypeFlags\n" + " .word gUnknown_02023A14+0x50\n" + " .word gEnemyParty\n" + " .word gTrainerBattleOpponent\n" + " .word gMain\n" + " .word 0x43d\n" + " .word gPlayerParty\n" + " .word gBattleCommunication\n" + "\n" + ); +} +#else void InitBattle(void) { s32 i; @@ -271,6 +496,7 @@ void InitBattle(void) AdjustFriendship(&gPlayerParty[i], 3); gBattleCommunication[0] = 0; } +#endif void sub_800E9EC(void) { @@ -379,6 +605,476 @@ void shedinja_something(struct Pokemon *pkmn) } } +#if DEBUG +__attribute__((naked)) +void sub_800EC9C() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " bl RunTasks\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " bl GetMultiplayerId\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " ldr r0, ._55\n" + " ldr r1, ._55 + 4\n" + " add r0, r0, r1\n" + " strb r4, [r0]\n" + " mov r0, #0x1\n" + " add r5, r4, #0\n" + " eor r5, r5, r0\n" + " ldr r0, ._55 + 8\n" + " ldrb r0, [r0]\n" + " cmp r0, #0x9\n" + " bls ._53 @cond_branch\n" + " b ._140\n" + "._53:\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._55 + 12\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._56:\n" + " .align 2, 0\n" + "._55:\n" + " .word +0x2000000\n" + " .word 0x160cb\n" + " .word gBattleCommunication\n" + " .word ._57\n" + "._57:\n" + " .word ._58\n" + " .word ._59\n" + " .word ._60\n" + " .word ._61\n" + " .word ._62\n" + " .word ._63\n" + " .word ._64\n" + " .word ._65\n" + " .word ._66\n" + " .word ._67\n" + "._58:\n" + " ldr r2, ._76\n" + " ldrh r1, [r2]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._68 @cond_branch\n" + " ldr r0, ._76 + 4\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " bne ._69 @cond_branch\n" + " b ._140\n" + "._69:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._71 @cond_branch\n" + " b ._140\n" + "._71:\n" + " ldr r1, ._76 + 8\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " strb r0, [r1, #0x1]\n" + " bl sub_800E9EC\n" + " bl sub_800EAAC\n" + " ldr r0, ._76 + 12\n" + " ldrb r1, [r0]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._73 @cond_branch\n" + " mov r3, #0x0\n" + " ldr r1, ._76 + 16\n" + " ldr r0, ._76 + 20\n" + "._74:\n" + " strh r3, [r0, #0x18]\n" + " str r1, [r0, #0x14]\n" + " add r0, r0, #0x1c\n" + " add r3, r3, #0x1\n" + " cmp r3, #0x1\n" + " ble ._74 @cond_branch\n" + "._73:\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._76 + 8\n" + " mov r2, #0x20\n" + " bl SendBlock\n" + " ldr r1, ._76 + 24\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " b ._140\n" + "._77:\n" + " .align 2, 0\n" + "._76:\n" + " .word gBattleTypeFlags\n" + " .word gReceivedRemoteLinkPlayers\n" + " .word +0x2000000\n" + " .word gUnknown_02023A14+0x50\n" + " .word 0x2211\n" + " .word gLinkPlayers\n" + " .word gBattleCommunication\n" + "._68:\n" + " mov r0, #0x4\n" + " orr r0, r0, r1\n" + " strh r0, [r2]\n" + " ldr r1, ._79\n" + " mov r0, #0x8\n" + " strb r0, [r1]\n" + " bl sub_800EB08\n" + " b ._140\n" + "._80:\n" + " .align 2, 0\n" + "._79:\n" + " .word gBattleCommunication\n" + "._59:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0x3\n" + " and r1, r1, r0\n" + " cmp r1, #0x3\n" + " beq ._81 @cond_branch\n" + " b ._140\n" + "._81:\n" + " bl ResetBlockReceivedFlags\n" + " mov r3, #0x0\n" + " ldr r0, ._86\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " cmp r1, r0\n" + " bne ._83 @cond_branch\n" + " cmp r4, #0\n" + " bne ._84 @cond_branch\n" + " ldr r0, ._86 + 4\n" + " ldrh r1, [r0]\n" + " mov r2, #0xc\n" + " b ._85\n" + "._87:\n" + " .align 2, 0\n" + "._86:\n" + " .word gBlockRecvBuffer\n" + " .word gBattleTypeFlags\n" + "._84:\n" + " ldr r0, ._92\n" + " ldrh r1, [r0]\n" + " mov r2, #0x8\n" + "._85:\n" + " orr r1, r1, r2\n" + " strh r1, [r0]\n" + " add r3, r3, #0x1\n" + "._83:\n" + " lsl r7, r5, #0x8\n" + " cmp r3, #0\n" + " bne ._94 @cond_branch\n" + " ldr r0, ._92 + 4\n" + " mov r1, #0x80\n" + " lsl r1, r1, #0x1\n" + " add r2, r0, r1\n" + " ldrh r1, [r0]\n" + " add r6, r0, #0\n" + " ldrh r2, [r2]\n" + " cmp r1, r2\n" + " bne ._89 @cond_branch\n" + " cmp r4, #0\n" + " bne ._90 @cond_branch\n" + " ldr r0, ._92\n" + " ldrh r1, [r0]\n" + " mov r2, #0xc\n" + " b ._91\n" + "._93:\n" + " .align 2, 0\n" + "._92:\n" + " .word gBattleTypeFlags\n" + " .word gBlockRecvBuffer\n" + "._90:\n" + " ldr r0, ._96\n" + " ldrh r1, [r0]\n" + " mov r2, #0x8\n" + "._91:\n" + " orr r1, r1, r2\n" + " strh r1, [r0]\n" + " add r3, r3, #0x1\n" + "._89:\n" + " lsl r7, r5, #0x8\n" + " cmp r3, #0\n" + " bne ._94 @cond_branch\n" + " ldrh r1, [r6]\n" + " ldr r0, ._96 + 4\n" + " ldr r2, ._96\n" + " b ._95\n" + "._97:\n" + " .align 2, 0\n" + "._96:\n" + " .word gBattleTypeFlags\n" + " .word 0x101\n" + "._100:\n" + " add r3, r3, #0x1\n" + " cmp r3, #0x1\n" + " bgt ._98 @cond_branch\n" + " lsl r0, r3, #0x8\n" + " add r0, r0, r6\n" + " ldrh r1, [r0]\n" + " ldr r0, ._103\n" + "._95:\n" + " cmp r1, r0\n" + " bls ._100 @cond_branch\n" + " cmp r3, r4\n" + " beq ._100 @cond_branch\n" + "._98:\n" + " cmp r3, #0x2\n" + " bne ._101 @cond_branch\n" + " ldrh r0, [r2]\n" + " mov r1, #0xc\n" + " b ._102\n" + "._104:\n" + " .align 2, 0\n" + "._103:\n" + " .word 0x101\n" + "._101:\n" + " ldrh r0, [r2]\n" + " mov r1, #0x8\n" + "._102:\n" + " orr r0, r0, r1\n" + " strh r0, [r2]\n" + "._94:\n" + " bl sub_800EB08\n" + " ldr r0, ._106\n" + " mov r1, #0x0\n" + " bl CreateTask\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._106 + 4\n" + " lsl r2, r0, #0x2\n" + " add r2, r2, r0\n" + " lsl r2, r2, #0x3\n" + " add r2, r2, r1\n" + " mov r1, #0x0\n" + " mov r0, #0x87\n" + " lsl r0, r0, #0x1\n" + " strh r0, [r2, #0xa]\n" + " mov r0, #0x5a\n" + " strh r0, [r2, #0xc]\n" + " strh r1, [r2, #0x12]\n" + " ldr r0, ._106 + 8\n" + " ldrb r1, [r0, #0x2]\n" + " ldrb r0, [r0, #0x3]\n" + " lsl r0, r0, #0x8\n" + " orr r1, r1, r0\n" + " strh r1, [r2, #0xe]\n" + " ldr r0, ._106 + 12\n" + " add r0, r0, #0x2\n" + " add r0, r7, r0\n" + " ldrh r0, [r0]\n" + " strh r0, [r2, #0x10]\n" + " b ._129\n" + "._107:\n" + " .align 2, 0\n" + "._106:\n" + " .word sub_800DE30+1\n" + " .word gTasks\n" + " .word +0x2000000\n" + " .word gBlockRecvBuffer\n" + "._60:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._108 @cond_branch\n" + " b ._140\n" + "._108:\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._111\n" + " mov r2, #0xc8\n" + " bl SendBlock\n" + " b ._129\n" + "._112:\n" + " .align 2, 0\n" + "._111:\n" + " .word gPlayerParty\n" + "._61:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0x3\n" + " and r1, r1, r0\n" + " cmp r1, #0x3\n" + " beq ._113 @cond_branch\n" + " b ._140\n" + "._113:\n" + " bl ResetBlockReceivedFlags\n" + " ldr r0, ._116\n" + " lsl r1, r5, #0x8\n" + " ldr r2, ._116 + 4\n" + " add r1, r1, r2\n" + " mov r2, #0xc8\n" + " bl gScriptFuncs_End+0x5bc4\n" + " b ._129\n" + "._117:\n" + " .align 2, 0\n" + "._116:\n" + " .word gEnemyParty\n" + " .word gBlockRecvBuffer\n" + "._62:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._118 @cond_branch\n" + " b ._140\n" + "._118:\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._121\n" + " mov r2, #0xc8\n" + " bl SendBlock\n" + " b ._129\n" + "._122:\n" + " .align 2, 0\n" + "._121:\n" + " .word gPlayerParty+0xc8\n" + "._63:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0x3\n" + " and r1, r1, r0\n" + " cmp r1, #0x3\n" + " beq ._123 @cond_branch\n" + " b ._140\n" + "._123:\n" + " bl ResetBlockReceivedFlags\n" + " ldr r0, ._126\n" + " lsl r1, r5, #0x8\n" + " ldr r2, ._126 + 4\n" + " add r1, r1, r2\n" + " mov r2, #0xc8\n" + " bl gScriptFuncs_End+0x5bc4\n" + " b ._129\n" + "._127:\n" + " .align 2, 0\n" + "._126:\n" + " .word gEnemyParty+0xc8\n" + " .word gBlockRecvBuffer\n" + "._64:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._140 @cond_branch\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._130\n" + " mov r2, #0xc8\n" + " bl SendBlock\n" + " b ._129\n" + "._131:\n" + " .align 2, 0\n" + "._130:\n" + " .word gPlayerParty+0x190\n" + "._65:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0x3\n" + " and r1, r1, r0\n" + " cmp r1, #0x3\n" + " bne ._140 @cond_branch\n" + " bl ResetBlockReceivedFlags\n" + " ldr r4, ._134\n" + " lsl r1, r5, #0x8\n" + " ldr r0, ._134 + 4\n" + " add r1, r1, r0\n" + " add r0, r4, #0\n" + " mov r2, #0xc8\n" + " bl gScriptFuncs_End+0x5bc4\n" + " ldr r1, ._134 + 8\n" + " add r0, r4, r1\n" + " bl shedinja_something\n" + " ldr r1, ._134 + 12\n" + " add r0, r4, r1\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " sub r0, r0, #0xc8\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " sub r0, r0, #0x64\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " add r0, r0, #0x64\n" + " bl shedinja_something\n" + "._129:\n" + " ldr r1, ._134 + 16\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " b ._140\n" + "._135:\n" + " .align 2, 0\n" + "._134:\n" + " .word gEnemyParty+0x190\n" + " .word gBlockRecvBuffer\n" + " .word 0xfffffe70\n" + " .word 0xfffffed4\n" + " .word gBattleCommunication\n" + "._66:\n" + " bl sub_800B950\n" + " ldr r0, ._137\n" + " ldrb r1, [r0]\n" + " add r1, r1, #0x1\n" + " mov r2, #0x0\n" + " strb r1, [r0]\n" + " strb r2, [r0, #0x1]\n" + " strb r2, [r0, #0x2]\n" + " b ._140\n" + "._138:\n" + " .align 2, 0\n" + "._137:\n" + " .word gBattleCommunication\n" + "._67:\n" + " ldr r0, ._141\n" + " add r1, r0, #1\n" + " bl battle_load_something\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._140 @cond_branch\n" + " ldr r2, ._141 + 4\n" + " ldr r1, ._141 + 8\n" + " ldr r0, [r1]\n" + " str r0, [r2]\n" + " ldr r0, ._141 + 12\n" + " str r0, [r1]\n" + " ldr r0, ._141 + 16\n" + " bl SetMainCallback2\n" + " ldr r3, ._141 + 20\n" + " ldrh r2, [r3]\n" + " mov r0, #0x2\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._140 @cond_branch\n" + " ldr r1, ._141 + 24\n" + " mov r4, #0x80\n" + " lsl r4, r4, #0x4\n" + " add r0, r4, #0\n" + " strh r0, [r1]\n" + " mov r0, #0x20\n" + " orr r0, r0, r2\n" + " strh r0, [r3]\n" + "._140:\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._142:\n" + " .align 2, 0\n" + "._141:\n" + " .word gUnknown_02024D1F\n" + " .word gPreBattleCallback1\n" + " .word gMain\n" + " .word debug_sub_80139E4+1\n" + " .word sub_800F808+1\n" + " .word gBattleTypeFlags\n" + " .word gTrainerBattleOpponent\n" + "\n" + ); +} +#else void sub_800EC9C(void) { u8 playerId; @@ -535,6 +1231,7 @@ void sub_800EC9C(void) break; } } +#endif void sub_800F02C(void) { @@ -561,6 +1258,236 @@ void sub_800F02C(void) memcpy(gSharedMem, gUnknown_02023A00, 0x60); } +#ifdef DEBUG +__attribute__((naked)) +void sub_800F104() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " bl GetMultiplayerId\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " ldr r0, ._151\n" + " ldr r2, ._151 + 4\n" + " add r1, r0, r2\n" + " strb r6, [r1]\n" + " ldr r1, ._151 + 8\n" + " add r1, r1, r0\n" + " mov r9, r1\n" + " sub r2, r2, #0x9\n" + " add r2, r2, r0\n" + " mov r8, r2\n" + " bl RunTasks\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " ldr r2, ._151 + 12\n" + " ldrb r0, [r2]\n" + " cmp r0, #0x1\n" + " beq ._147 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._148 @cond_branch\n" + " cmp r0, #0\n" + " beq ._149 @cond_branch\n" + " b ._183\n" + "._152:\n" + " .align 2, 0\n" + "._151:\n" + " .word +0x2000000\n" + " .word 0x160cb\n" + " .word 0x160c4\n" + " .word gBattleCommunication\n" + "._148:\n" + " cmp r0, #0x2\n" + " bne ._153 @cond_branch\n" + " b ._154\n" + "._153:\n" + " cmp r0, #0x3\n" + " bne ._155 @cond_branch\n" + " b ._156\n" + "._155:\n" + " b ._183\n" + "._149:\n" + " ldr r0, ._165\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " bne ._158 @cond_branch\n" + " b ._183\n" + "._158:\n" + " ldr r0, ._165 + 4\n" + " ldrb r1, [r0]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._160 @cond_branch\n" + " mov r4, #0x0\n" + " ldr r1, ._165 + 8\n" + " ldr r0, ._165 + 12\n" + "._161:\n" + " strh r4, [r0, #0x18]\n" + " str r1, [r0, #0x14]\n" + " add r0, r0, #0x1c\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._161 @cond_branch\n" + "._160:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._162 @cond_branch\n" + " b ._183\n" + "._162:\n" + " bl sub_800F02C\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._165 + 16\n" + " mov r2, #0x60\n" + " bl SendBlock\n" + " ldr r1, ._165 + 20\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " b ._183\n" + "._166:\n" + " .align 2, 0\n" + "._165:\n" + " .word gReceivedRemoteLinkPlayers\n" + " .word gUnknown_02023A14+0x50\n" + " .word 0x2211\n" + " .word gLinkPlayers\n" + " .word +0x2000000\n" + " .word gBattleCommunication\n" + "._147:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0xf\n" + " and r1, r1, r0\n" + " cmp r1, #0xf\n" + " bne ._183 @cond_branch\n" + " bl ResetBlockReceivedFlags\n" + " mov r4, #0x0\n" + " lsl r0, r6, #0x3\n" + " sub r0, r0, r6\n" + " lsl r5, r0, #0x2\n" + " mov r7, #0x0\n" + "._175:\n" + " cmp r4, r6\n" + " beq ._174 @cond_branch\n" + " ldr r2, ._172\n" + " add r0, r7, r2\n" + " ldrh r1, [r0, #0x18]\n" + " mov r3, #0x1\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._169 @cond_branch\n" + " add r0, r5, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._170 @cond_branch\n" + " b ._174\n" + "._173:\n" + " .align 2, 0\n" + "._172:\n" + " .word gLinkPlayers\n" + "._169:\n" + " add r0, r5, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._174 @cond_branch\n" + "._170:\n" + " lsl r1, r4, #0x8\n" + " ldr r0, ._177\n" + " add r1, r1, r0\n" + " ldr r0, ._177 + 4\n" + " mov r2, #0x60\n" + " bl gScriptFuncs_End+0x5bc4\n" + "._174:\n" + " add r7, r7, #0x1c\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._175 @cond_branch\n" + " ldr r1, ._177 + 8\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " ldr r1, ._177 + 12\n" + " ldr r0, [r1, #0x8]\n" + " mov r2, r9\n" + " str r0, [r2]\n" + " ldr r0, ._177 + 16\n" + " ldrh r0, [r0]\n" + " mov r2, r8\n" + " strh r0, [r2]\n" + " ldr r0, ._177 + 20\n" + " str r0, [r1, #0x8]\n" + " mov r0, #0x5\n" + " mov r1, #0x0\n" + " bl OpenPartyMenu\n" + " b ._183\n" + "._178:\n" + " .align 2, 0\n" + "._177:\n" + " .word gBlockRecvBuffer\n" + " .word gUnknown_02023A00\n" + " .word gBattleCommunication\n" + " .word gMain\n" + " .word gBattleTypeFlags\n" + " .word sub_800F104+1\n" + "._154:\n" + " ldr r0, ._181\n" + " ldrb r1, [r0, #0x7]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._183 @cond_branch\n" + " mov r0, #0x3\n" + " strb r0, [r2]\n" + " bl sub_800832C\n" + " b ._183\n" + "._182:\n" + " .align 2, 0\n" + "._181:\n" + " .word gPaletteFade\n" + "._156:\n" + " ldr r0, ._184\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " bne ._183 @cond_branch\n" + " ldr r1, ._184 + 4\n" + " mov r2, r8\n" + " ldrh r0, [r2]\n" + " strh r0, [r1]\n" + " ldr r1, ._184 + 8\n" + " mov r2, r9\n" + " ldr r0, [r2]\n" + " str r0, [r1, #0x8]\n" + " ldr r0, ._184 + 12\n" + " bl SetMainCallback2\n" + "._183:\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._185:\n" + " .align 2, 0\n" + "._184:\n" + " .word gReceivedRemoteLinkPlayers\n" + " .word gBattleTypeFlags\n" + " .word gMain\n" + " .word InitBattle+1\n" + "\n" + ); +} +#else void sub_800F104(void) { u8 playerId; @@ -625,7 +1552,774 @@ void sub_800F104(void) break; } } +#endif +#ifdef DEBUG +__attribute__((naked)) +void sub_800F298() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " bl GetMultiplayerId\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " ldr r0, ._188\n" + " ldr r1, ._188 + 4\n" + " add r0, r0, r1\n" + " strb r6, [r0]\n" + " bl RunTasks\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " ldr r0, ._188 + 8\n" + " ldrb r0, [r0]\n" + " cmp r0, #0x7\n" + " bls ._186 @cond_branch\n" + " b ._352\n" + "._186:\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._188 + 12\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._189:\n" + " .align 2, 0\n" + "._188:\n" + " .word +0x2000000\n" + " .word 0x160cb\n" + " .word gBattleCommunication\n" + " .word ._190\n" + "._190:\n" + " .word ._191\n" + " .word ._192\n" + " .word ._193\n" + " .word ._194\n" + " .word ._195\n" + " .word ._196\n" + " .word ._197\n" + " .word ._198\n" + "._191:\n" + " ldr r0, ._206\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " bne ._199 @cond_branch\n" + " b ._352\n" + "._199:\n" + " ldr r0, ._206 + 4\n" + " ldrb r1, [r0]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._201 @cond_branch\n" + " mov r4, #0x0\n" + " ldr r1, ._206 + 8\n" + " ldr r0, ._206 + 12\n" + "._202:\n" + " strh r4, [r0, #0x18]\n" + " str r1, [r0, #0x14]\n" + " add r0, r0, #0x1c\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._202 @cond_branch\n" + "._201:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._203 @cond_branch\n" + " b ._352\n" + "._203:\n" + " ldr r4, ._206 + 16\n" + " mov r0, #0x1\n" + " strb r0, [r4]\n" + " strb r0, [r4, #0x1]\n" + " bl sub_800E9EC\n" + " bl sub_800EAAC\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " add r1, r4, #0\n" + " mov r2, #0x20\n" + " bl SendBlock\n" + " b ._300\n" + "._207:\n" + " .align 2, 0\n" + "._206:\n" + " .word gReceivedRemoteLinkPlayers\n" + " .word gUnknown_02023A14+0x50\n" + " .word 0x2211\n" + " .word gLinkPlayers\n" + " .word +0x2000000\n" + "._192:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0xf\n" + " and r1, r1, r0\n" + " cmp r1, #0xf\n" + " beq ._208 @cond_branch\n" + " b ._352\n" + "._208:\n" + " bl ResetBlockReceivedFlags\n" + " mov r4, #0x0\n" + " ldr r0, ._213\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " cmp r1, r0\n" + " bne ._210 @cond_branch\n" + " cmp r6, #0\n" + " bne ._211 @cond_branch\n" + " ldr r0, ._213 + 4\n" + " ldrh r1, [r0]\n" + " mov r2, #0xc\n" + " b ._212\n" + "._214:\n" + " .align 2, 0\n" + "._213:\n" + " .word gBlockRecvBuffer\n" + " .word gBattleTypeFlags\n" + "._211:\n" + " ldr r0, ._221\n" + " ldrh r1, [r0]\n" + " mov r2, #0x8\n" + "._212:\n" + " orr r1, r1, r2\n" + " strh r1, [r0]\n" + " add r4, r4, #0x1\n" + "._210:\n" + " cmp r4, #0\n" + " bne ._223 @cond_branch\n" + " mov r2, #0x0\n" + " ldr r1, ._221 + 4\n" + " add r5, r1, #0\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x1\n" + "._217:\n" + " add r1, r1, r3\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x3\n" + " bgt ._216 @cond_branch\n" + " ldrh r0, [r5]\n" + " ldrh r7, [r1]\n" + " cmp r0, r7\n" + " beq ._217 @cond_branch\n" + "._216:\n" + " cmp r2, #0x4\n" + " bne ._218 @cond_branch\n" + " cmp r6, #0\n" + " bne ._219 @cond_branch\n" + " ldr r0, ._221\n" + " ldrh r1, [r0]\n" + " mov r2, #0xc\n" + " b ._220\n" + "._222:\n" + " .align 2, 0\n" + "._221:\n" + " .word gBattleTypeFlags\n" + " .word gBlockRecvBuffer\n" + "._219:\n" + " ldr r0, ._233\n" + " ldrh r1, [r0]\n" + " mov r2, #0x8\n" + "._220:\n" + " orr r1, r1, r2\n" + " strh r1, [r0]\n" + " add r4, r4, #0x1\n" + "._218:\n" + " cmp r4, #0\n" + " bne ._223 @cond_branch\n" + " ldr r0, ._233 + 4\n" + " ldrh r2, [r0]\n" + " ldr r1, ._233 + 8\n" + " add r3, r0, #0\n" + " ldr r5, ._233\n" + " cmp r2, r1\n" + " beq ._224 @cond_branch\n" + "._230:\n" + " lsl r0, r4, #0x8\n" + " add r0, r0, r3\n" + " ldrh r0, [r0]\n" + " ldr r1, ._233 + 8\n" + " cmp r0, r1\n" + " bls ._225 @cond_branch\n" + " cmp r4, r6\n" + " bne ._227 @cond_branch\n" + "._225:\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " bgt ._227 @cond_branch\n" + " lsl r0, r4, #0x8\n" + " add r0, r0, r3\n" + " ldrh r0, [r0]\n" + " cmp r0, r1\n" + " bne ._230 @cond_branch\n" + "._224:\n" + " cmp r4, r6\n" + " beq ._230 @cond_branch\n" + " cmp r4, r6\n" + " bge ._230 @cond_branch\n" + "._227:\n" + " cmp r4, #0x4\n" + " bne ._231 @cond_branch\n" + " ldrh r0, [r5]\n" + " mov r1, #0xc\n" + " b ._232\n" + "._234:\n" + " .align 2, 0\n" + "._233:\n" + " .word gBattleTypeFlags\n" + " .word gBlockRecvBuffer\n" + " .word 0x101\n" + "._231:\n" + " ldrh r0, [r5]\n" + " mov r1, #0x8\n" + "._232:\n" + " orr r0, r0, r1\n" + " strh r0, [r5]\n" + "._223:\n" + " bl sub_800EB08\n" + " ldr r0, ._239\n" + " ldr r1, ._239 + 4\n" + " mov r2, #0x96\n" + " lsl r2, r2, #0x1\n" + " bl gScriptFuncs_End+0x5bc4\n" + " ldr r0, ._239 + 8\n" + " mov r1, #0x0\n" + " bl CreateTask\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r2, ._239 + 12\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r2\n" + " mov r2, #0x0\n" + " mov r0, #0x87\n" + " lsl r0, r0, #0x1\n" + " strh r0, [r1, #0xa]\n" + " mov r0, #0x5a\n" + " strh r0, [r1, #0xc]\n" + " strh r2, [r1, #0x12]\n" + " strh r2, [r1, #0xe]\n" + " strh r2, [r1, #0x10]\n" + " add r2, r1, #0\n" + " ldr r0, ._239 + 16\n" + " add r3, r0, #2\n" + " ldr r6, ._239 + 20\n" + " mov r5, #0x3f\n" + " mov r7, #0x80\n" + " lsl r7, r7, #0x1\n" + " mov r4, #0x3\n" + "._247:\n" + " ldrh r0, [r6, #0x18]\n" + " cmp r0, #0x1\n" + " beq ._235 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._236 @cond_branch\n" + " cmp r0, #0\n" + " beq ._237 @cond_branch\n" + " b ._246\n" + "._240:\n" + " .align 2, 0\n" + "._239:\n" + " .word +0x201d000\n" + " .word gPlayerParty\n" + " .word sub_800DE30+1\n" + " .word gTasks\n" + " .word gBlockRecvBuffer\n" + " .word gLinkPlayers\n" + "._236:\n" + " cmp r0, #0x2\n" + " beq ._241 @cond_branch\n" + " cmp r0, #0x3\n" + " beq ._242 @cond_branch\n" + " b ._246\n" + "._237:\n" + " ldrh r0, [r3]\n" + " add r1, r5, #0\n" + " and r1, r1, r0\n" + " b ._244\n" + "._235:\n" + " ldrh r0, [r3]\n" + " add r1, r5, #0\n" + " and r1, r1, r0\n" + " b ._245\n" + "._241:\n" + " ldrh r0, [r3]\n" + " add r1, r5, #0\n" + " and r1, r1, r0\n" + " lsl r1, r1, #0x6\n" + "._244:\n" + " ldrh r0, [r2, #0xe]\n" + " orr r1, r1, r0\n" + " strh r1, [r2, #0xe]\n" + " b ._246\n" + "._242:\n" + " ldrh r0, [r3]\n" + " add r1, r5, #0\n" + " and r1, r1, r0\n" + " lsl r1, r1, #0x6\n" + "._245:\n" + " ldrh r0, [r2, #0x10]\n" + " orr r1, r1, r0\n" + " strh r1, [r2, #0x10]\n" + "._246:\n" + " add r3, r3, r7\n" + " add r6, r6, #0x1c\n" + " sub r4, r4, #0x1\n" + " cmp r4, #0\n" + " bge ._247 @cond_branch\n" + " bl ZeroPlayerPartyMons\n" + " bl ZeroEnemyPartyMons\n" + " ldr r1, ._251\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + "._193:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._248 @cond_branch\n" + " b ._352\n" + "._248:\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._251 + 4\n" + " mov r2, #0xc8\n" + " bl SendBlock\n" + " b ._300\n" + "._252:\n" + " .align 2, 0\n" + "._251:\n" + " .word gBattleCommunication\n" + " .word +0x201d000\n" + "._194:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0xf\n" + " and r1, r1, r0\n" + " cmp r1, #0xf\n" + " beq ._253 @cond_branch\n" + " b ._352\n" + "._253:\n" + " bl ResetBlockReceivedFlags\n" + " mov r4, #0x0\n" + " lsl r0, r6, #0x3\n" + " sub r0, r0, r6\n" + " lsl r0, r0, #0x2\n" + " mov r8, r0\n" + " ldr r5, ._260\n" + " mov r7, #0x0\n" + "._294:\n" + " cmp r4, r6\n" + " bne ._255 @cond_branch\n" + " ldr r0, ._260 + 4\n" + " add r0, r7, r0\n" + " ldrh r0, [r0, #0x18]\n" + " cmp r0, #0x2\n" + " bgt ._256 @cond_branch\n" + " cmp r0, #0x1\n" + " bge ._257 @cond_branch\n" + " cmp r0, #0\n" + " beq ._258 @cond_branch\n" + " b ._291\n" + "._261:\n" + " .align 2, 0\n" + "._260:\n" + " .word gBlockRecvBuffer\n" + " .word gLinkPlayers\n" + "._256:\n" + " cmp r0, #0x3\n" + " bne ._291 @cond_branch\n" + "._258:\n" + " ldr r0, ._264\n" + " b ._283\n" + "._265:\n" + " .align 2, 0\n" + "._264:\n" + " .word gPlayerParty\n" + "._257:\n" + " ldr r0, ._267\n" + " b ._283\n" + "._268:\n" + " .align 2, 0\n" + "._267:\n" + " .word gPlayerParty+0x12c\n" + "._255:\n" + " ldr r2, ._272\n" + " add r0, r7, r2\n" + " ldrh r1, [r0, #0x18]\n" + " mov r3, #0x1\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._269 @cond_branch\n" + " mov r1, r8\n" + " add r0, r1, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._270 @cond_branch\n" + " b ._274\n" + "._273:\n" + " .align 2, 0\n" + "._272:\n" + " .word gLinkPlayers\n" + "._269:\n" + " mov r1, r8\n" + " add r0, r1, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._274 @cond_branch\n" + "._270:\n" + " add r0, r7, r2\n" + " ldrh r2, [r0, #0x18]\n" + " cmp r2, #0x2\n" + " bgt ._275 @cond_branch\n" + " cmp r2, #0x1\n" + " bge ._276 @cond_branch\n" + " cmp r2, #0\n" + " beq ._277 @cond_branch\n" + " b ._291\n" + "._275:\n" + " cmp r2, #0x3\n" + " bne ._291 @cond_branch\n" + "._277:\n" + " ldr r0, ._281\n" + " b ._283\n" + "._282:\n" + " .align 2, 0\n" + "._281:\n" + " .word gPlayerParty\n" + "._276:\n" + " ldr r0, ._284\n" + " b ._283\n" + "._285:\n" + " .align 2, 0\n" + "._284:\n" + " .word gPlayerParty+0x12c\n" + "._274:\n" + " add r0, r7, r2\n" + " ldrh r2, [r0, #0x18]\n" + " cmp r2, #0x2\n" + " bgt ._286 @cond_branch\n" + " cmp r2, #0x1\n" + " bge ._287 @cond_branch\n" + " cmp r2, #0\n" + " beq ._288 @cond_branch\n" + " b ._291\n" + "._286:\n" + " cmp r2, #0x3\n" + " bne ._291 @cond_branch\n" + "._288:\n" + " ldr r0, ._292\n" + "._283:\n" + " add r1, r5, #0\n" + " mov r2, #0xc8\n" + " bl gScriptFuncs_End+0x5bc4\n" + " b ._291\n" + "._293:\n" + " .align 2, 0\n" + "._292:\n" + " .word gEnemyParty\n" + "._287:\n" + " ldr r0, ._296\n" + " add r1, r5, #0\n" + " mov r2, #0xc8\n" + " bl gScriptFuncs_End+0x5bc4\n" + "._291:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " add r5, r5, r0\n" + " add r7, r7, #0x1c\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._294 @cond_branch\n" + " b ._300\n" + "._297:\n" + " .align 2, 0\n" + "._296:\n" + " .word gEnemyParty+0x12c\n" + "._195:\n" + " bl sub_8007ECC\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._298 @cond_branch\n" + " b ._352\n" + "._298:\n" + " bl bitmask_all_link_players_but_self\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r1, ._301\n" + " mov r2, #0x64\n" + " bl SendBlock\n" + " b ._300\n" + "._302:\n" + " .align 2, 0\n" + "._301:\n" + " .word +0x201d0c8\n" + "._196:\n" + " bl GetBlockReceivedStatus\n" + " mov r1, #0xf\n" + " and r1, r1, r0\n" + " cmp r1, #0xf\n" + " beq ._303 @cond_branch\n" + " b ._352\n" + "._303:\n" + " bl ResetBlockReceivedFlags\n" + " mov r4, #0x0\n" + " lsl r0, r6, #0x3\n" + " sub r0, r0, r6\n" + " lsl r0, r0, #0x2\n" + " mov r8, r0\n" + " ldr r5, ._310\n" + " mov r7, #0x0\n" + "._344:\n" + " cmp r4, r6\n" + " bne ._305 @cond_branch\n" + " ldr r0, ._310 + 4\n" + " add r0, r7, r0\n" + " ldrh r0, [r0, #0x18]\n" + " cmp r0, #0x2\n" + " bgt ._306 @cond_branch\n" + " cmp r0, #0x1\n" + " bge ._307 @cond_branch\n" + " cmp r0, #0\n" + " beq ._308 @cond_branch\n" + " b ._341\n" + "._311:\n" + " .align 2, 0\n" + "._310:\n" + " .word gBlockRecvBuffer\n" + " .word gLinkPlayers\n" + "._306:\n" + " cmp r0, #0x3\n" + " bne ._341 @cond_branch\n" + "._308:\n" + " ldr r0, ._314\n" + " b ._333\n" + "._315:\n" + " .align 2, 0\n" + "._314:\n" + " .word gPlayerParty+0xc8\n" + "._307:\n" + " ldr r0, ._317\n" + " b ._333\n" + "._318:\n" + " .align 2, 0\n" + "._317:\n" + " .word gPlayerParty+0x1f4\n" + "._305:\n" + " ldr r2, ._322\n" + " add r0, r7, r2\n" + " ldrh r1, [r0, #0x18]\n" + " mov r3, #0x1\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._319 @cond_branch\n" + " mov r1, r8\n" + " add r0, r1, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._320 @cond_branch\n" + " b ._324\n" + "._323:\n" + " .align 2, 0\n" + "._322:\n" + " .word gLinkPlayers\n" + "._319:\n" + " mov r1, r8\n" + " add r0, r1, r2\n" + " ldrh r1, [r0, #0x18]\n" + " add r0, r3, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._324 @cond_branch\n" + "._320:\n" + " add r0, r7, r2\n" + " ldrh r2, [r0, #0x18]\n" + " cmp r2, #0x2\n" + " bgt ._325 @cond_branch\n" + " cmp r2, #0x1\n" + " bge ._326 @cond_branch\n" + " cmp r2, #0\n" + " beq ._327 @cond_branch\n" + " b ._341\n" + "._325:\n" + " cmp r2, #0x3\n" + " bne ._341 @cond_branch\n" + "._327:\n" + " ldr r0, ._331\n" + " b ._333\n" + "._332:\n" + " .align 2, 0\n" + "._331:\n" + " .word gPlayerParty+0xc8\n" + "._326:\n" + " ldr r0, ._334\n" + " b ._333\n" + "._335:\n" + " .align 2, 0\n" + "._334:\n" + " .word gPlayerParty+0x1f4\n" + "._324:\n" + " add r0, r7, r2\n" + " ldrh r2, [r0, #0x18]\n" + " cmp r2, #0x2\n" + " bgt ._336 @cond_branch\n" + " cmp r2, #0x1\n" + " bge ._337 @cond_branch\n" + " cmp r2, #0\n" + " beq ._338 @cond_branch\n" + " b ._341\n" + "._336:\n" + " cmp r2, #0x3\n" + " bne ._341 @cond_branch\n" + "._338:\n" + " ldr r0, ._342\n" + "._333:\n" + " add r1, r5, #0\n" + " mov r2, #0x64\n" + " bl gScriptFuncs_End+0x5bc4\n" + " b ._341\n" + "._343:\n" + " .align 2, 0\n" + "._342:\n" + " .word gEnemyParty+0xc8\n" + "._337:\n" + " ldr r0, ._346\n" + " add r1, r5, #0\n" + " mov r2, #0x64\n" + " bl gScriptFuncs_End+0x5bc4\n" + "._341:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " add r5, r5, r0\n" + " add r7, r7, #0x1c\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._344 @cond_branch\n" + " ldr r4, ._346 + 4\n" + " add r0, r4, #0\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " add r0, r0, #0x64\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " add r0, r0, #0xc8\n" + " bl shedinja_something\n" + " mov r1, #0x96\n" + " lsl r1, r1, #0x1\n" + " add r0, r4, r1\n" + " bl shedinja_something\n" + " mov r7, #0xc8\n" + " lsl r7, r7, #0x1\n" + " add r0, r4, r7\n" + " bl shedinja_something\n" + " mov r1, #0xfa\n" + " lsl r1, r1, #0x1\n" + " add r0, r4, r1\n" + " bl shedinja_something\n" + " ldr r4, ._346 + 8\n" + " add r0, r4, #0\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " add r0, r0, #0x64\n" + " bl shedinja_something\n" + " add r0, r4, #0\n" + " add r0, r0, #0xc8\n" + " bl shedinja_something\n" + " sub r7, r7, #0x64\n" + " add r0, r4, r7\n" + " bl shedinja_something\n" + " mov r1, #0xc8\n" + " lsl r1, r1, #0x1\n" + " add r0, r4, r1\n" + " bl shedinja_something\n" + " add r7, r7, #0xc8\n" + " add r0, r4, r7\n" + " bl shedinja_something\n" + "._300:\n" + " ldr r1, ._346 + 12\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " b ._352\n" + "._347:\n" + " .align 2, 0\n" + "._346:\n" + " .word gEnemyParty+0x1f4\n" + " .word gPlayerParty\n" + " .word gEnemyParty\n" + " .word gBattleCommunication\n" + "._197:\n" + " bl sub_800B950\n" + " ldr r0, ._349\n" + " ldrb r1, [r0]\n" + " add r1, r1, #0x1\n" + " mov r2, #0x0\n" + " strb r1, [r0]\n" + " strb r2, [r0, #0x1]\n" + " strb r2, [r0, #0x2]\n" + " b ._352\n" + "._350:\n" + " .align 2, 0\n" + "._349:\n" + " .word gBattleCommunication\n" + "._198:\n" + " ldr r0, ._353\n" + " add r1, r0, #1\n" + " bl battle_load_something\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._352 @cond_branch\n" + " ldr r2, ._353 + 4\n" + " ldr r1, ._353 + 8\n" + " ldr r0, [r1]\n" + " str r0, [r2]\n" + " ldr r0, ._353 + 12\n" + " str r0, [r1]\n" + " ldr r0, ._353 + 16\n" + " bl SetMainCallback2\n" + " ldr r3, ._353 + 20\n" + " ldrh r2, [r3]\n" + " mov r0, #0x2\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._352 @cond_branch\n" + " ldr r1, ._353 + 24\n" + " mov r4, #0x80\n" + " lsl r4, r4, #0x4\n" + " add r0, r4, #0\n" + " strh r0, [r1]\n" + " mov r0, #0x20\n" + " orr r0, r0, r2\n" + " strh r0, [r3]\n" + "._352:\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._354:\n" + " .align 2, 0\n" + "._353:\n" + " .word gUnknown_02024D1F\n" + " .word gPreBattleCallback1\n" + " .word gMain\n" + " .word debug_sub_80139E4+1\n" + " .word sub_800F808+1\n" + " .word gBattleTypeFlags\n" + " .word gTrainerBattleOpponent\n" + "\n" + ); +} +#else void sub_800F298(void) { u8 playerId; @@ -893,7 +2587,119 @@ void sub_800F298(void) break; } } +#endif +#if DEBUG +__attribute__((naked)) +void BattleMainCB2(void) +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffffc\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " ldr r4, ._358\n" + " ldrh r2, [r4, #0x2c]\n" + " mov r1, #0x82\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, #0\n" + " and r0, r0, r2\n" + " cmp r0, r1\n" + " bne ._357 @cond_branch\n" + " ldr r2, ._358 + 4\n" + " ldr r1, ._358 + 8\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " mov r0, #0x1\n" + " strh r0, [r2]\n" + " ldr r0, ._358 + 12\n" + " add r2, r4, r0\n" + " ldrb r1, [r2]\n" + " mov r0, #0x3\n" + " neg r0, r0\n" + " and r0, r0, r1\n" + " strb r0, [r2]\n" + " ldr r1, ._358 + 16\n" + " mov r0, #0x3\n" + " strb r0, [r1, #0x15]\n" + " ldr r0, ._358 + 20\n" + " ldr r0, [r0]\n" + " str r0, [r4]\n" + " bl ZeroEnemyPartyMons\n" + " mov r0, #0x5a\n" + " bl gScriptFuncs_End+0x148c\n" + " ldr r0, ._358 + 24\n" + " ldrh r1, [r0]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._356 @cond_branch\n" + " ldr r0, ._358 + 28\n" + " bl SetMainCallback2\n" + " b ._357\n" + "._359:\n" + " .align 2, 0\n" + "._358:\n" + " .word gMain\n" + " .word gScriptResult\n" + " .word gBattleOutcome\n" + " .word 0x43d\n" + " .word gUnknown_03004DC0\n" + " .word gPreBattleCallback1\n" + " .word gBattleTypeFlags\n" + " .word sub_805465C+1\n" + "._356:\n" + " ldr r0, [r4, #0x8]\n" + " bl SetMainCallback2\n" + "._357:\n" + " ldr r5, ._361\n" + " ldrh r1, [r5]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._360 @cond_branch\n" + " lsr r0, r1, #0x2\n" + " mov r4, #0x1\n" + " and r0, r0, r4\n" + " str r4, [sp]\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " mov r3, #0x1\n" + " bl debug_sub_8008264\n" + " ldrh r0, [r5]\n" + " lsr r0, r0, #0x2\n" + " and r0, r0, r4\n" + " str r4, [sp]\n" + " mov r1, #0x1\n" + " mov r2, #0x15\n" + " mov r3, #0x1\n" + " bl debug_sub_8008264\n" + " ldrh r0, [r5]\n" + " lsr r0, r0, #0x2\n" + " and r0, r0, r4\n" + " str r4, [sp]\n" + " mov r1, #0x1\n" + " mov r2, #0x29\n" + " mov r3, #0x1\n" + " bl debug_sub_8008264\n" + "._360:\n" + " ldr r0, ._361 + 4\n" + " bl sub_800374C\n" + " bl UpdatePaletteFade\n" + " bl RunTasks\n" + " add sp, sp, #0x4\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._362:\n" + " .align 2, 0\n" + "._361:\n" + " .word gBattleTypeFlags\n" + " .word gUnknown_03004210\n" + "\n" + ); +} +#else void BattleMainCB2(void) { AnimateSprites(); @@ -902,6 +2708,7 @@ void BattleMainCB2(void) UpdatePaletteFade(); RunTasks(); } +#endif void sub_800F828(struct Sprite *sprite) { @@ -1275,6 +3082,5525 @@ void c2_081284E0(void) } } +// A LOT of debug code! +#if DEBUG +__attribute__((naked)) +void debug_sub_8010800() +{ + asm( + " push {lr}\n" + " bl debug_sub_8010818\n" + " bl debug_sub_80108B8\n" + " ldr r1, ._496\n" + " mov r0, #0x0\n" + " str r0, [r1]\n" + " pop {r0}\n" + " bx r0\n" + "._497:\n" + " .align 2, 0\n" + "._496:\n" + " .word gBattleBuffersTransferData+0x100\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8010818() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " ldr r1, ._501\n" + " ldr r0, ._501 + 4\n" + " strh r0, [r1]\n" + " add r2, r1, #0\n" + " add r2, r2, #0x46\n" + " strh r0, [r2]\n" + " ldr r0, ._501 + 8\n" + " add r4, r1, #0\n" + " add r4, r4, #0x48\n" + " add r3, r0, #0\n" + " add r3, r3, #0x12\n" + " add r2, r1, #2\n" + " mov r1, #0x1d\n" + "._498:\n" + " ldrh r0, [r3]\n" + " strh r0, [r2]\n" + " strh r0, [r4]\n" + " add r4, r4, #0x2\n" + " add r3, r3, #0xa\n" + " add r2, r2, #0x2\n" + " sub r1, r1, #0x1\n" + " cmp r1, #0\n" + " bge ._498 @cond_branch\n" + " mov r1, #0x0\n" + " ldr r4, ._501 + 12\n" + " ldr r7, ._501 + 16\n" + " ldr r6, ._501 + 20\n" + " mov r0, #0x30\n" + " add r0, r0, r7\n" + " mov ip, r0\n" + "._500:\n" + " mov r0, #0x0\n" + " strb r0, [r4]\n" + " add r5, r1, #1\n" + " lsl r3, r1, #0x3\n" + "._499:\n" + " ldrb r2, [r4]\n" + " lsl r1, r2, #0x1\n" + " add r1, r1, r3\n" + " add r1, r1, r7\n" + " lsl r0, r2, #0x2\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r6\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " ldrb r2, [r4]\n" + " lsl r1, r2, #0x1\n" + " add r1, r1, r3\n" + " add r1, r1, ip\n" + " lsl r0, r2, #0x2\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r6\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x3\n" + " bls ._499 @cond_branch\n" + " add r1, r5, #0\n" + " cmp r1, #0x5\n" + " ble ._500 @cond_branch\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._502:\n" + " .align 2, 0\n" + "._501:\n" + " .word gUnknown_02023A14+0x52\n" + " .word 0x115\n" + " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_02023A14+0xde\n" + " .word UnkDebug0+0x1b4\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80108B8() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffffc\n" + " bl gScriptFuncs_End+0x19f4\n" + " mov r0, #0x0\n" + " bl SetHBlankCallback\n" + " mov r0, #0x0\n" + " bl SetVBlankCallback\n" + " mov r3, #0x0\n" + " str r3, [sp]\n" + " ldr r2, ._507\n" + " mov r0, sp\n" + " str r0, [r2]\n" + " mov r1, #0xc0\n" + " lsl r1, r1, #0x13\n" + " str r1, [r2, #0x4]\n" + " ldr r0, ._507 + 4\n" + " str r0, [r2, #0x8]\n" + " ldr r0, [r2, #0x8]\n" + " ldr r2, ._507 + 8\n" + " mov r0, #0x1\n" + " strh r0, [r2]\n" + " mov r2, #0x80\n" + " lsl r2, r2, #0x13\n" + " mov r4, #0x9a\n" + " lsl r4, r4, #0x5\n" + " add r0, r4, #0\n" + " strh r0, [r2]\n" + " ldr r0, ._507 + 12\n" + " mov r5, #0x0\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 16\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 20\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 24\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 28\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 32\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 36\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 40\n" + " strh r3, [r0]\n" + " add r2, r2, #0x8\n" + " ldr r4, ._507 + 44\n" + " add r0, r4, #0\n" + " strh r0, [r2]\n" + " add r2, r2, #0x2\n" + " ldr r4, ._507 + 48\n" + " add r0, r4, #0\n" + " strh r0, [r2]\n" + " ldr r0, ._507 + 52\n" + " strh r3, [r0]\n" + " add r0, r0, #0x4\n" + " strh r3, [r0]\n" + " ldr r0, ._507 + 56\n" + " bl LZDecompressVram\n" + " ldr r0, ._507 + 60\n" + " ldr r1, ._507 + 64\n" + " bl sub_800D238\n" + " ldr r4, ._507 + 68\n" + " mov r1, #0xa0\n" + " lsl r1, r1, #0x13\n" + " add r0, r4, #0\n" + " bl LZDecompressVram\n" + " ldr r1, ._507 + 72\n" + " add r0, r4, #0\n" + " bl LZDecompressVram\n" + " bl gScriptFuncs_End+0x1a70\n" + " ldr r0, ._507 + 76\n" + " bl SetVBlankCallback\n" + " ldr r0, ._507 + 80\n" + " bl SetMainCallback2\n" + " bl ResetTasks\n" + " bl ResetSpriteData\n" + " bl remove_some_task\n" + " ldr r4, ._507 + 84\n" + " add r0, r4, #0\n" + " bl SetUpWindowConfig\n" + " ldr r0, ._507 + 88\n" + " add r1, r4, #0\n" + " bl InitWindowFromConfig\n" + " ldr r0, ._507 + 92\n" + " strb r5, [r0]\n" + " ldr r0, ._507 + 96\n" + " strb r5, [r0]\n" + " ldr r0, ._507 + 100\n" + " strb r5, [r0]\n" + " mov r4, #0x0\n" + "._503:\n" + " lsl r0, r4, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x1e\n" + " ble ._503 @cond_branch\n" + " ldr r1, ._507 + 104\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " add r4, r1, #0\n" + "._504:\n" + " bl debug_sub_8012294\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x3\n" + " bls ._504 @cond_branch\n" + " ldr r0, ._507 + 100\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + " bl debug_sub_8012540\n" + " bl debug_nullsub_3\n" + " ldr r1, ._507 + 104\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " bl debug_sub_80125A0\n" + " ldr r0, ._507 + 108\n" + " add r0, r0, #0x44\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " cmp r0, #0x8\n" + " bne ._505 @cond_branch\n" + " bl debug_sub_801174C\n" + " b ._506\n" + "._508:\n" + " .align 2, 0\n" + "._507:\n" + " .word 0x40000d4\n" + " .word 0x85006000\n" + " .word 0x4000200\n" + " .word gUnknown_030042A4\n" + " .word gUnknown_030042A0\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_030041B4\n" + " .word gUnknown_03004288\n" + " .word gUnknown_03004280\n" + " .word gUnknown_030041B0\n" + " .word gUnknown_030041B8\n" + " .word 0x1f09\n" + " .word 0x4801\n" + " .word 0x4000050\n" + " .word gMonShinyPalette_CircledQuestionMark+0x18\n" + " .word gMonShinyPalette_CircledQuestionMark+0x834\n" + " .word +0x2000000\n" + " .word gMonShinyPalette_CircledQuestionMark+0xa8c\n" + " .word 0x50001e0\n" + " .word debug_sub_8011D40+1\n" + " .word debug_sub_8010CAC+1\n" + " .word gWindowConfig_81E6C3C\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_02023A14+0x52\n" + "._505:\n" + " ldr r0, ._510\n" + " mov r1, #0x0\n" + " mov r4, #0x7\n" + " ldr r2, ._510 + 4\n" + " add r0, r0, r2\n" + "._509:\n" + " strb r1, [r0]\n" + " sub r0, r0, #0x1\n" + " sub r4, r4, #0x1\n" + " cmp r4, #0\n" + " bge ._509 @cond_branch\n" + "._506:\n" + " add sp, sp, #0x4\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._511:\n" + " .align 2, 0\n" + "._510:\n" + " .word +0x2000000\n" + " .word 0x160bb\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8010A7C() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " lsl r1, r1, #0x18\n" + " lsr r2, r1, #0x18\n" + " mov r1, #0x0\n" + " ldr r5, ._514\n" + " cmp r1, r2\n" + " bge ._512 @cond_branch\n" + " add r3, r5, #0\n" + "._513:\n" + " add r0, r1, r3\n" + " strb r4, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, r2\n" + " blt ._513 @cond_branch\n" + "._512:\n" + " add r1, r1, r5\n" + " mov r0, #0xff\n" + " strb r0, [r1]\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._515:\n" + " .align 2, 0\n" + "._514:\n" + " .word gBattleTextBuff1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8010AAC() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov ip, r0\n" + " ldr r6, ._520\n" + " ldr r4, ._520 + 4\n" + " ldr r5, ._520 + 8\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x2\n" + " add r7, r0, r1\n" + " lsl r1, r7, #0x1\n" + " ldr r3, ._520 + 12\n" + " ldrb r2, [r3]\n" + " mov r0, #0x46\n" + " mul r2, r2, r0\n" + " add r1, r1, r2\n" + " add r1, r1, r4\n" + " mov r0, #0x0\n" + " ldsh r1, [r1, r0]\n" + " lsl r0, r1, #0x3\n" + " sub r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r6\n" + " ldrb r0, [r0, #0x10]\n" + " add r6, r3, #0\n" + " cmp r0, #0xfe\n" + " beq ._516 @cond_branch\n" + " cmp r0, #0xfe\n" + " bgt ._517 @cond_branch\n" + " cmp r0, #0\n" + " beq ._518 @cond_branch\n" + " b ._523\n" + "._521:\n" + " .align 2, 0\n" + "._520:\n" + " .word gBaseStats\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + "._517:\n" + " cmp r0, #0xff\n" + " beq ._522 @cond_branch\n" + " b ._523\n" + "._518:\n" + " add r0, r7, #4\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r2\n" + " add r0, r0, r4\n" + " mov r1, #0x2\n" + " b ._528\n" + "._516:\n" + " add r0, r7, #4\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r2\n" + " add r0, r0, r4\n" + " mov r1, #0x3\n" + " b ._528\n" + "._522:\n" + " add r0, r7, #4\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r2\n" + " add r0, r0, r4\n" + " mov r1, #0x4\n" + " b ._528\n" + "._523:\n" + " ldrb r0, [r5]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " add r1, r1, #0x4\n" + " lsl r1, r1, #0x1\n" + " ldrb r0, [r6]\n" + " mov r3, #0x46\n" + " mul r0, r0, r3\n" + " add r1, r1, r0\n" + " add r1, r1, r4\n" + " ldrh r2, [r1]\n" + " mov r0, #0x1\n" + " and r0, r0, r2\n" + " strh r0, [r1]\n" + " mov r1, ip\n" + " cmp r1, #0\n" + " beq ._527 @cond_branch\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x1\n" + " ldrb r1, [r6]\n" + " mul r1, r1, r3\n" + " add r0, r0, r1\n" + " add r0, r0, r4\n" + " ldrh r1, [r0]\n" + " mov r2, #0x1\n" + " eor r1, r1, r2\n" + " b ._528\n" + "._527:\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x1\n" + " ldrb r1, [r6]\n" + " mul r1, r1, r3\n" + " add r0, r0, r1\n" + " add r0, r0, r4\n" + " mov r1, ip\n" + "._528:\n" + " strh r1, [r0]\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8010B80() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " mov r0, #0x0\n" + " mov ip, r0\n" + " ldr r4, ._534\n" + " ldr r1, ._534 + 4\n" + " mov r8, r1\n" + " ldr r5, ._534 + 8\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " mov r2, r8\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x1\n" + " ldr r3, ._534 + 12\n" + " ldrb r2, [r3]\n" + " mov r1, #0x46\n" + " mul r1, r1, r2\n" + " add r0, r0, r1\n" + " add r0, r0, r4\n" + " ldrb r7, [r0]\n" + " lsl r1, r7, #0x18\n" + " asr r0, r1, #0x18\n" + " mov r9, r4\n" + " add r2, r5, #0\n" + " add r4, r3, #0\n" + " cmp r0, #0x9\n" + " ble ._529 @cond_branch\n" + "._530:\n" + " mov r3, #0xf6\n" + " lsl r3, r3, #0x18\n" + " add r0, r1, r3\n" + " lsr r7, r0, #0x18\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x11\n" + " add r0, r0, r3\n" + " lsr r0, r0, #0x18\n" + " mov ip, r0\n" + " lsl r1, r7, #0x18\n" + " asr r0, r1, #0x18\n" + " cmp r0, #0x9\n" + " bgt ._530 @cond_branch\n" + "._529:\n" + " mov r0, #0x2\n" + " and r0, r0, r6\n" + " cmp r0, #0\n" + " beq ._531 @cond_branch\n" + " mov r0, #0x1\n" + " and r0, r0, r6\n" + " cmp r0, #0\n" + " beq ._532 @cond_branch\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x11\n" + " b ._533\n" + "._535:\n" + " .align 2, 0\n" + "._534:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + "._532:\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " mov r3, #0xff\n" + " lsl r3, r3, #0x18\n" + "._533:\n" + " add r0, r0, r3\n" + " lsr r0, r0, #0x18\n" + " mov ip, r0\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " cmp r0, #0\n" + " bge ._536 @cond_branch\n" + " mov r3, #0x9\n" + " mov ip, r3\n" + "._536:\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " asr r0, r0, #0x18\n" + " cmp r0, #0x9\n" + " ble ._542 @cond_branch\n" + " mov r3, #0x0\n" + " mov ip, r3\n" + " b ._542\n" + "._531:\n" + " mov r0, #0x1\n" + " and r0, r0, r6\n" + " cmp r0, #0\n" + " beq ._539 @cond_branch\n" + " lsl r0, r7, #0x18\n" + " mov r1, #0x80\n" + " lsl r1, r1, #0x11\n" + " add r0, r0, r1\n" + " b ._540\n" + "._539:\n" + " lsl r0, r7, #0x18\n" + " mov r3, #0xff\n" + " lsl r3, r3, #0x18\n" + " add r0, r0, r3\n" + "._540:\n" + " lsr r7, r0, #0x18\n" + " lsl r0, r7, #0x18\n" + " cmp r0, #0\n" + " bgt ._541 @cond_branch\n" + " mov r7, #0x9\n" + "._541:\n" + " lsl r0, r7, #0x18\n" + " asr r0, r0, #0x18\n" + " cmp r0, #0x9\n" + " ble ._542 @cond_branch\n" + " mov r7, #0x1\n" + "._542:\n" + " ldrb r0, [r2]\n" + " lsl r2, r0, #0x2\n" + " add r2, r2, r0\n" + " mov r0, r8\n" + " ldrb r0, [r0]\n" + " add r2, r2, r0\n" + " lsl r2, r2, #0x1\n" + " ldrb r1, [r4]\n" + " mov r0, #0x1\n" + " eor r0, r0, r1\n" + " mov r1, #0x46\n" + " add r3, r0, #0\n" + " mul r3, r3, r1\n" + " add r3, r2, r3\n" + " add r3, r3, r9\n" + " ldrb r0, [r4]\n" + " mul r0, r0, r1\n" + " add r2, r2, r0\n" + " add r2, r2, r9\n" + " mov r1, ip\n" + " lsl r0, r1, #0x18\n" + " asr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x1\n" + " lsl r0, r7, #0x18\n" + " asr r0, r0, #0x18\n" + " add r0, r0, r1\n" + " strh r0, [r2]\n" + " strh r0, [r3]\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8010CAC() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " add sp, sp, #0xfffffff0\n" + " ldr r4, ._553\n" + " ldrh r1, [r4, #0x28]\n" + " mov r0, #0x81\n" + " lsl r0, r0, #0x2\n" + " cmp r1, r0\n" + " bne ._543 @cond_branch\n" + " bl DoSoftReset\n" + "._543:\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x4\n" + " beq ._544 @cond_branch\n" + " b ._559\n" + "._544:\n" + " ldr r0, ._553 + 4\n" + " ldrb r1, [r0]\n" + " mov r8, r0\n" + " cmp r1, #0x5\n" + " bhi ._546 @cond_branch\n" + " ldr r0, ._553 + 8\n" + " mov r1, #0x0\n" + " strb r1, [r0]\n" + " bl debug_sub_8012628\n" + " ldr r0, ._553 + 12\n" + " bl SetMainCallback2\n" + "._546:\n" + " ldr r0, ._553 + 16\n" + " ldrb r3, [r0]\n" + " cmp r3, #0\n" + " bne ._555 @cond_branch\n" + " mov r1, r8\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x6\n" + " bne ._555 @cond_branch\n" + " ldr r0, ._553 + 20\n" + " str r0, [r4, #0x8]\n" + " ldr r4, ._553 + 24\n" + " ldr r0, ._553 + 28\n" + " ldrh r1, [r0]\n" + " ldrb r2, [r0, #0x2]\n" + " str r3, [sp]\n" + " str r3, [sp, #0x4]\n" + " str r3, [sp, #0x8]\n" + " str r3, [sp, #0xc]\n" + " add r0, r4, #0\n" + " mov r3, #0x20\n" + " bl CreateMon\n" + " mov r5, #0x0\n" + " add r6, r4, #0\n" + "._549:\n" + " add r1, r5, #0\n" + " add r1, r1, #0xd\n" + " lsl r4, r5, #0x1\n" + " ldr r0, ._553 + 32\n" + " add r4, r4, r0\n" + " add r0, r6, #0\n" + " add r2, r4, #0\n" + " bl SetMonData\n" + " add r1, r5, #0\n" + " add r1, r1, #0x11\n" + " mov r2, #0x0\n" + " ldsh r0, [r4, r2]\n" + " lsl r2, r0, #0x1\n" + " add r2, r2, r0\n" + " lsl r2, r2, #0x2\n" + " ldr r0, ._553 + 36\n" + " add r2, r2, r0\n" + " add r0, r6, #0\n" + " bl SetMonData\n" + " add r5, r5, #0x1\n" + " cmp r5, #0x3\n" + " ble ._549 @cond_branch\n" + " ldr r2, ._553 + 28\n" + " mov r4, #0x3c\n" + " ldsh r0, [r2, r4]\n" + " cmp r0, #0x1\n" + " beq ._550 @cond_branch\n" + " cmp r0, #0x2\n" + " beq ._551 @cond_branch\n" + " b ._555\n" + "._554:\n" + " .align 2, 0\n" + "._553:\n" + " .word gMain\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_030043A8\n" + " .word debug_sub_8011498+1\n" + " .word gUnknown_Debug_030043A0\n" + " .word debug_sub_80108B8+1\n" + " .word gPlayerParty\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_02023A14+0xde\n" + " .word gBattleMoves+0x4\n" + "._550:\n" + " ldr r1, ._556\n" + " ldr r0, ._556 + 4\n" + " str r0, [r1]\n" + " ldr r0, ._556 + 8\n" + " ldrh r1, [r2, #0xa]\n" + " mov r2, #0x1\n" + " mov r3, #0x0\n" + " bl EvolutionScene\n" + " b ._555\n" + "._557:\n" + " .align 2, 0\n" + "._556:\n" + " .word gUnknown_03005E94\n" + " .word debug_sub_80108B8+1\n" + " .word gPlayerParty\n" + "._551:\n" + " bl debug_sub_8012688\n" + "._555:\n" + " ldr r0, ._565\n" + " ldrb r0, [r0]\n" + " cmp r0, #0x1\n" + " bne ._559 @cond_branch\n" + " ldr r0, ._565 + 4\n" + " ldrb r0, [r0]\n" + " cmp r0, #0x6\n" + " bne ._559 @cond_branch\n" + " ldr r3, ._565 + 8\n" + " ldrb r2, [r3, #0x15]\n" + " lsl r0, r2, #0x1d\n" + " lsr r5, r0, #0x1f\n" + " lsl r0, r2, #0x1f\n" + " lsr r0, r0, #0x1f\n" + " lsl r0, r0, #0x1\n" + " orr r5, r5, r0\n" + " add r5, r5, #0x1\n" + " cmp r5, #0x4\n" + " bne ._560 @cond_branch\n" + " mov r5, #0x0\n" + "._560:\n" + " mov r0, #0x1\n" + " add r1, r5, #0\n" + " and r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " mov r0, #0x5\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " mov r1, #0x2\n" + " and r5, r5, r1\n" + " lsr r2, r5, #0x1\n" + " sub r1, r1, #0x4\n" + " and r0, r0, r1\n" + " orr r0, r0, r2\n" + " strb r0, [r3, #0x15]\n" + " lsl r0, r0, #0x1f\n" + " lsr r0, r0, #0x1f\n" + " bl gScriptFuncs_End+0x2aa0\n" + " bl debug_nullsub_3\n" + "._559:\n" + " ldr r4, ._565 + 12\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x8\n" + " bne ._561 @cond_branch\n" + " bl debug_sub_801174C\n" + "._561:\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x40\n" + " bne ._562 @cond_branch\n" + " bl debug_sub_80125E4\n" + " ldr r1, ._565 + 4\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " beq ._563 @cond_branch\n" + " sub r0, r0, #0x1\n" + " b ._564\n" + "._566:\n" + " .align 2, 0\n" + "._565:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gSaveBlock2\n" + " .word gMain\n" + "._563:\n" + " mov r0, #0x6\n" + "._564:\n" + " strb r0, [r1]\n" + " bl debug_sub_8011E74\n" + " ldr r0, ._570\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + " bl debug_sub_80125A0\n" + "._562:\n" + " ldr r0, ._570 + 4\n" + " ldrh r0, [r0, #0x2a]\n" + " cmp r0, #0x80\n" + " bne ._567 @cond_branch\n" + " bl debug_sub_80125E4\n" + " ldr r1, ._570\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x6\n" + " bne ._568 @cond_branch\n" + " mov r0, #0x0\n" + " b ._569\n" + "._571:\n" + " .align 2, 0\n" + "._570:\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + "._568:\n" + " add r0, r0, #0x1\n" + "._569:\n" + " strb r0, [r1]\n" + " bl debug_sub_8011E74\n" + " ldr r0, ._575\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + " bl debug_sub_80125A0\n" + "._567:\n" + " ldr r0, ._575 + 4\n" + " ldrh r0, [r0, #0x2a]\n" + " cmp r0, #0x20\n" + " bne ._572 @cond_branch\n" + " bl debug_sub_80125E4\n" + " ldr r2, ._575 + 8\n" + " ldrb r0, [r2]\n" + " add r1, r0, #0\n" + " cmp r1, #0\n" + " beq ._573 @cond_branch\n" + " sub r0, r0, #0x1\n" + " strb r0, [r2]\n" + " b ._577\n" + "._576:\n" + " .align 2, 0\n" + "._575:\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + " .word gUnknown_Debug_030043A0\n" + "._573:\n" + " ldr r3, ._581\n" + " ldrb r0, [r3]\n" + " cmp r0, #0\n" + " beq ._577 @cond_branch\n" + " strb r1, [r3]\n" + " mov r0, #0x4\n" + " strb r0, [r2]\n" + " ldr r0, ._581 + 4\n" + " strh r1, [r0]\n" + " bl debug_sub_8011E5C\n" + " bl debug_sub_8011E74\n" + " ldr r0, ._581 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._577:\n" + " bl debug_sub_80125A0\n" + "._572:\n" + " ldr r0, ._581 + 12\n" + " ldrh r0, [r0, #0x2a]\n" + " cmp r0, #0x10\n" + " bne ._578 @cond_branch\n" + " bl debug_sub_80125E4\n" + " ldr r2, ._581 + 16\n" + " ldrb r0, [r2]\n" + " cmp r0, #0x4\n" + " beq ._579 @cond_branch\n" + " add r0, r0, #0x1\n" + " strb r0, [r2]\n" + " b ._583\n" + "._582:\n" + " .align 2, 0\n" + "._581:\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + " .word gUnknown_Debug_030043A0\n" + "._579:\n" + " ldr r3, ._587\n" + " ldrb r1, [r3]\n" + " cmp r1, #0\n" + " bne ._583 @cond_branch\n" + " mov r0, #0x1\n" + " strb r0, [r3]\n" + " strb r1, [r2]\n" + " ldr r1, ._587 + 4\n" + " mov r2, #0x80\n" + " lsl r2, r2, #0x1\n" + " add r0, r2, #0\n" + " strh r0, [r1]\n" + " bl debug_sub_8011E5C\n" + " bl debug_sub_8011E74\n" + " ldr r0, ._587 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._583:\n" + " bl debug_sub_80125A0\n" + "._578:\n" + " ldr r0, ._587 + 12\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._584 @cond_branch\n" + " b ._607\n" + "._584:\n" + " ldr r0, ._587 + 16\n" + " ldrb r2, [r0]\n" + " ldr r0, ._587 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r2, r0\n" + " sub r0, r0, #0x1e\n" + " cmp r0, #0x4\n" + " bhi ._586 @cond_branch\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._587 + 20\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._588:\n" + " .align 2, 0\n" + "._587:\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + " .word gUnknown_Debug_030043A0\n" + " .word ._589\n" + "._589:\n" + " .word ._590\n" + " .word ._591\n" + " .word ._592\n" + " .word ._593\n" + " .word ._594\n" + "._591:\n" + " bl debug_sub_8010818\n" + " b ._595\n" + "._592:\n" + " ldr r1, ._597\n" + " mov r0, #0x1f\n" + " mov r2, #0xec\n" + " bl debug_sub_80132C8\n" + "._595:\n" + " bl debug_sub_8011E5C\n" + " bl debug_sub_8011E74\n" + " bl debug_sub_8012540\n" + " bl debug_nullsub_3\n" + " ldr r0, ._597 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + " b ._607\n" + "._598:\n" + " .align 2, 0\n" + "._597:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A4\n" + "._593:\n" + " ldr r1, ._600\n" + " mov r0, #0x1f\n" + " mov r2, #0xec\n" + " bl debug_sub_8013294\n" + " b ._607\n" + "._601:\n" + " .align 2, 0\n" + "._600:\n" + " .word gUnknown_02023A14+0x52\n" + "._594:\n" + " ldr r3, ._604\n" + " add r2, r3, #0\n" + " add r2, r2, #0x44\n" + " ldrh r1, [r2]\n" + " mov r4, #0x0\n" + " ldsh r0, [r2, r4]\n" + " cmp r0, #0\n" + " beq ._602 @cond_branch\n" + " sub r0, r1, #1\n" + " strh r0, [r2]\n" + " add r1, r3, #0\n" + " add r1, r1, #0x8a\n" + " ldrh r0, [r1]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r1]\n" + " b ._603\n" + "._605:\n" + " .align 2, 0\n" + "._604:\n" + " .word gUnknown_02023A14+0x52\n" + "._602:\n" + " mov r1, #0x8\n" + " strh r1, [r2]\n" + " add r0, r3, #0\n" + " add r0, r0, #0x8a\n" + " strh r1, [r0]\n" + "._603:\n" + " bl debug_sub_8012540\n" + " b ._607\n" + "._590:\n" + " mov r0, #0x0\n" + " bl debug_sub_8010B80\n" + " ldr r2, ._608\n" + " ldr r0, ._608 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " b ._607\n" + "._609:\n" + " .align 2, 0\n" + "._608:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + "._586:\n" + " cmp r2, #0x4\n" + " bne ._611 @cond_branch\n" + " cmp r1, #0x5\n" + " bhi ._611 @cond_branch\n" + " mov r0, #0x1\n" + " bl debug_sub_8010AAC\n" + " b ._613\n" + "._611:\n" + " ldr r6, ._618\n" + " ldr r5, ._618 + 4\n" + " ldr r4, ._618 + 8\n" + " ldrb r0, [r4]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r0, [r5]\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x1\n" + " ldr r2, ._618 + 12\n" + " ldrb r0, [r2]\n" + " mov r3, #0x46\n" + " mul r0, r0, r3\n" + " add r1, r1, r0\n" + " add r1, r1, r6\n" + " ldrh r0, [r1]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r1]\n" + " ldrb r0, [r4]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r5, [r5]\n" + " add r1, r1, r5\n" + " lsl r0, r1, #0x1\n" + " ldrb r2, [r2]\n" + " mul r2, r2, r3\n" + " add r0, r0, r2\n" + " add r3, r0, r6\n" + " mov r4, #0x0\n" + " ldsh r2, [r3, r4]\n" + " ldr r4, ._618 + 16\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r1, r0, #0x1\n" + " add r0, r4, #0\n" + " add r0, r0, #0x8\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " cmp r2, r0\n" + " bge ._613 @cond_branch\n" + " add r0, r4, #6\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " strh r0, [r3]\n" + "._613:\n" + " ldr r5, ._618 + 4\n" + " ldrb r0, [r5]\n" + " cmp r0, #0\n" + " bne ._614 @cond_branch\n" + " mov r0, #0x0\n" + " bl debug_sub_8010AAC\n" + " ldr r0, ._618 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + "._614:\n" + " ldr r4, ._618 + 8\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r5, [r5]\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._607:\n" + " ldr r0, ._618 + 20\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._615 @cond_branch\n" + " b ._638\n" + "._615:\n" + " ldr r0, ._618 + 4\n" + " ldrb r2, [r0]\n" + " ldr r0, ._618 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r2, r0\n" + " sub r0, r0, #0x1e\n" + " cmp r0, #0x4\n" + " bhi ._617 @cond_branch\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._618 + 24\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._619:\n" + " .align 2, 0\n" + "._618:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x6c\n" + " .word gMain\n" + " .word ._620\n" + "._620:\n" + " .word ._621\n" + " .word ._622\n" + " .word ._623\n" + " .word ._624\n" + " .word ._625\n" + "._622:\n" + " bl debug_sub_8010818\n" + " b ._626\n" + "._623:\n" + " ldr r1, ._628\n" + " mov r0, #0x1f\n" + " mov r2, #0xec\n" + " bl debug_sub_80132C8\n" + "._626:\n" + " bl debug_sub_8011E5C\n" + " bl debug_sub_8011E74\n" + " bl debug_sub_8012540\n" + " bl debug_nullsub_3\n" + " ldr r0, ._628 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + " b ._638\n" + "._629:\n" + " .align 2, 0\n" + "._628:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A4\n" + "._624:\n" + " ldr r1, ._631\n" + " mov r0, #0x1f\n" + " mov r2, #0xec\n" + " bl debug_sub_8013294\n" + " b ._638\n" + "._632:\n" + " .align 2, 0\n" + "._631:\n" + " .word gUnknown_02023A14+0x52\n" + "._625:\n" + " ldr r3, ._635\n" + " add r2, r3, #0\n" + " add r2, r2, #0x44\n" + " ldrh r1, [r2]\n" + " mov r4, #0x0\n" + " ldsh r0, [r2, r4]\n" + " cmp r0, #0x7\n" + " bgt ._633 @cond_branch\n" + " add r0, r1, #1\n" + " strh r0, [r2]\n" + " add r1, r3, #0\n" + " add r1, r1, #0x8a\n" + " ldrh r0, [r1]\n" + " add r0, r0, #0x1\n" + " strh r0, [r1]\n" + " b ._634\n" + "._636:\n" + " .align 2, 0\n" + "._635:\n" + " .word gUnknown_02023A14+0x52\n" + "._633:\n" + " mov r1, #0x0\n" + " strh r1, [r2]\n" + " add r0, r3, #0\n" + " add r0, r0, #0x8a\n" + " strh r1, [r0]\n" + "._634:\n" + " bl debug_sub_8012540\n" + " b ._638\n" + "._621:\n" + " mov r0, #0x1\n" + " bl debug_sub_8010B80\n" + " ldr r2, ._639\n" + " ldr r0, ._639 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " b ._638\n" + "._640:\n" + " .align 2, 0\n" + "._639:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + "._617:\n" + " cmp r2, #0x4\n" + " bne ._642 @cond_branch\n" + " cmp r1, #0x5\n" + " bhi ._642 @cond_branch\n" + " mov r0, #0x1\n" + " bl debug_sub_8010AAC\n" + " b ._644\n" + "._642:\n" + " ldr r6, ._650\n" + " ldr r5, ._650 + 4\n" + " ldr r4, ._650 + 8\n" + " ldrb r0, [r4]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r0, [r5]\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x1\n" + " ldr r2, ._650 + 12\n" + " ldrb r0, [r2]\n" + " mov r3, #0x46\n" + " mul r0, r0, r3\n" + " add r1, r1, r0\n" + " add r1, r1, r6\n" + " ldrh r0, [r1]\n" + " add r0, r0, #0x1\n" + " strh r0, [r1]\n" + " ldrb r0, [r4]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r5, [r5]\n" + " add r1, r1, r5\n" + " lsl r0, r1, #0x1\n" + " ldrb r2, [r2]\n" + " mul r2, r2, r3\n" + " add r0, r0, r2\n" + " add r3, r0, r6\n" + " mov r4, #0x0\n" + " ldsh r2, [r3, r4]\n" + " ldr r4, ._650 + 16\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r1, r0, #0x1\n" + " add r0, r4, #6\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " cmp r2, r0\n" + " ble ._644 @cond_branch\n" + " add r0, r4, #0\n" + " add r0, r0, #0x8\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " strh r0, [r3]\n" + "._644:\n" + " ldr r5, ._650 + 4\n" + " ldrb r0, [r5]\n" + " cmp r0, #0\n" + " bne ._645 @cond_branch\n" + " mov r0, #0x0\n" + " bl debug_sub_8010AAC\n" + " ldr r0, ._650 + 8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + "._645:\n" + " ldr r4, ._650 + 8\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r5, [r5]\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._638:\n" + " ldr r0, ._650 + 20\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._646 @cond_branch\n" + " ldr r0, ._650 + 4\n" + " ldrb r1, [r0]\n" + " ldr r2, ._650 + 8\n" + " mov r8, r2\n" + " add r7, r0, #0\n" + " cmp r1, #0x4\n" + " bne ._648 @cond_branch\n" + " ldrb r0, [r2]\n" + " cmp r0, #0x5\n" + " bhi ._648 @cond_branch\n" + " mov r0, #0x1\n" + " bl debug_sub_8010AAC\n" + " b ._653\n" + "._651:\n" + " .align 2, 0\n" + "._650:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x6c\n" + " .word gMain\n" + "._648:\n" + " mov r4, r8\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r1, [r7]\n" + " add r0, r0, r1\n" + " cmp r0, #0x1e\n" + " bne ._652 @cond_branch\n" + " mov r0, #0x2\n" + " bl debug_sub_8010B80\n" + " b ._653\n" + "._652:\n" + " ldr r4, ._655\n" + " lsl r1, r0, #0x1\n" + " ldr r3, ._655 + 4\n" + " ldrb r2, [r3]\n" + " mov r0, #0x46\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r4\n" + " ldrh r0, [r1]\n" + " sub r0, r0, #0xa\n" + " strh r0, [r1]\n" + " add r6, r3, #0\n" + " ldr r5, ._655 + 8\n" + " b ._654\n" + "._656:\n" + " .align 2, 0\n" + "._655:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x6c\n" + "._657:\n" + " add r0, r5, #6\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " ldrh r2, [r3]\n" + " add r0, r0, r2\n" + " strh r0, [r3]\n" + "._654:\n" + " mov r1, r8\n" + " ldrb r0, [r1]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r2, [r7]\n" + " add r1, r1, r2\n" + " lsl r2, r1, #0x1\n" + " ldrb r3, [r6]\n" + " mov r0, #0x46\n" + " mul r0, r0, r3\n" + " add r2, r2, r0\n" + " add r3, r2, r4\n" + " mov r0, #0x0\n" + " ldsh r2, [r3, r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r1, r0, #0x1\n" + " add r0, r5, #0\n" + " add r0, r0, #0x8\n" + " add r0, r1, r0\n" + " ldrh r0, [r0]\n" + " cmp r2, r0\n" + " blt ._657 @cond_branch\n" + "._653:\n" + " ldr r5, ._663\n" + " ldrb r0, [r5]\n" + " cmp r0, #0\n" + " bne ._658 @cond_branch\n" + " mov r0, #0x0\n" + " bl debug_sub_8010AAC\n" + " ldr r0, ._663 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + "._658:\n" + " ldr r4, ._663 + 4\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r5, [r5]\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._646:\n" + " ldr r0, ._663 + 8\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._659 @cond_branch\n" + " ldr r0, ._663\n" + " ldrb r1, [r0]\n" + " ldr r2, ._663 + 4\n" + " mov r8, r2\n" + " add r7, r0, #0\n" + " cmp r1, #0x4\n" + " bne ._661 @cond_branch\n" + " ldrb r0, [r2]\n" + " cmp r0, #0x5\n" + " bhi ._661 @cond_branch\n" + " mov r0, #0x1\n" + " bl debug_sub_8010AAC\n" + " b ._666\n" + "._664:\n" + " .align 2, 0\n" + "._663:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + "._661:\n" + " mov r4, r8\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r1, [r7]\n" + " add r0, r0, r1\n" + " cmp r0, #0x1e\n" + " bne ._665 @cond_branch\n" + " mov r0, #0x3\n" + " bl debug_sub_8010B80\n" + " b ._666\n" + "._665:\n" + " ldr r4, ._668\n" + " lsl r1, r0, #0x1\n" + " ldr r3, ._668 + 4\n" + " ldrb r2, [r3]\n" + " mov r0, #0x46\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r4\n" + " ldrh r0, [r1]\n" + " add r0, r0, #0xa\n" + " strh r0, [r1]\n" + " add r6, r3, #0\n" + " ldr r5, ._668 + 8\n" + " b ._667\n" + "._669:\n" + " .align 2, 0\n" + "._668:\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x6c\n" + "._670:\n" + " ldrh r0, [r3]\n" + " sub r0, r0, r1\n" + " strh r0, [r3]\n" + "._667:\n" + " mov r2, r8\n" + " ldrb r0, [r2]\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " ldrb r0, [r7]\n" + " add r1, r1, r0\n" + " lsl r2, r1, #0x1\n" + " ldrb r3, [r6]\n" + " mov r0, #0x46\n" + " mul r0, r0, r3\n" + " add r2, r2, r0\n" + " add r3, r2, r4\n" + " mov r0, #0x0\n" + " ldsh r2, [r3, r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x1\n" + " add r1, r5, #6\n" + " add r0, r0, r1\n" + " ldrh r1, [r0]\n" + " cmp r2, r1\n" + " bgt ._670 @cond_branch\n" + "._666:\n" + " ldr r5, ._672\n" + " ldrb r0, [r5]\n" + " cmp r0, #0\n" + " bne ._671 @cond_branch\n" + " mov r0, #0x0\n" + " bl debug_sub_8010AAC\n" + " ldr r0, ._672 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " add r0, r0, #0x4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + "._671:\n" + " ldr r4, ._672 + 4\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r5, [r5]\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " ldrb r1, [r4]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_80123D8\n" + "._659:\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " add sp, sp, #0x10\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._673:\n" + " .align 2, 0\n" + "._672:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011498() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " ldr r2, ._687\n" + " ldr r0, ._687 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r9, r0\n" + " ldr r4, ._687 + 8\n" + " ldrh r1, [r4, #0x28]\n" + " mov r0, #0x81\n" + " lsl r0, r0, #0x2\n" + " cmp r1, r0\n" + " bne ._674 @cond_branch\n" + " bl DoSoftReset\n" + "._674:\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x4\n" + " bne ._675 @cond_branch\n" + " bl debug_sub_8012658\n" + " ldr r0, ._687 + 12\n" + " bl SetMainCallback2\n" + "._675:\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x8\n" + " bne ._676 @cond_branch\n" + " bl debug_sub_801174C\n" + "._676:\n" + " ldrh r0, [r4, #0x2a]\n" + " cmp r0, #0x40\n" + " beq ._677 @cond_branch\n" + " cmp r0, #0x80\n" + " bne ._678 @cond_branch\n" + "._677:\n" + " bl debug_sub_8012658\n" + " ldr r0, ._687 + 16\n" + " ldrb r1, [r0]\n" + " mov r2, #0x2\n" + " eor r1, r1, r2\n" + " strb r1, [r0]\n" + " bl debug_sub_8012628\n" + "._678:\n" + " ldr r0, ._687 + 8\n" + " ldrh r0, [r0, #0x2a]\n" + " cmp r0, #0x20\n" + " beq ._679 @cond_branch\n" + " cmp r0, #0x10\n" + " bne ._680 @cond_branch\n" + "._679:\n" + " bl debug_sub_8012658\n" + " ldr r0, ._687 + 16\n" + " ldrb r1, [r0]\n" + " mov r2, #0x1\n" + " eor r1, r1, r2\n" + " strb r1, [r0]\n" + " bl debug_sub_8012628\n" + "._680:\n" + " ldr r0, ._687 + 8\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._681 @cond_branch\n" + " ldr r0, ._687 + 20\n" + " mov r8, r0\n" + " ldr r6, ._687 + 16\n" + " ldrb r4, [r6]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r5, ._687 + 24\n" + " ldrb r2, [r5]\n" + " lsl r1, r2, #0x1\n" + " add r1, r1, r2\n" + " lsl r1, r1, #0x4\n" + " add r4, r4, r1\n" + " add r4, r4, r8\n" + " ldrh r1, [r4]\n" + " sub r1, r1, #0x1\n" + " strh r1, [r4]\n" + " ldrb r3, [r6]\n" + " lsl r1, r3, #0x1\n" + " add r1, r1, r0\n" + " ldrb r2, [r5]\n" + " lsl r0, r2, #0x1\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x4\n" + " add r1, r1, r0\n" + " mov r0, r8\n" + " add r4, r1, r0\n" + " mov r0, #0x0\n" + " ldsh r1, [r4, r0]\n" + " ldr r5, ._687 + 28\n" + " lsl r0, r3, #0x2\n" + " add r0, r0, r3\n" + " lsl r2, r0, #0x1\n" + " add r0, r5, #0\n" + " add r0, r0, #0x8\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " cmp r1, r0\n" + " bge ._682 @cond_branch\n" + " add r0, r5, #6\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " strh r0, [r4]\n" + "._682:\n" + " bl debug_sub_8012294\n" + "._681:\n" + " ldr r0, ._687 + 8\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._683 @cond_branch\n" + " ldr r1, ._687 + 20\n" + " mov r8, r1\n" + " ldr r6, ._687 + 16\n" + " ldrb r4, [r6]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r5, ._687 + 24\n" + " ldrb r2, [r5]\n" + " lsl r1, r2, #0x1\n" + " add r1, r1, r2\n" + " lsl r1, r1, #0x4\n" + " add r4, r4, r1\n" + " add r4, r4, r8\n" + " ldrh r1, [r4]\n" + " add r1, r1, #0x1\n" + " strh r1, [r4]\n" + " ldrb r3, [r6]\n" + " lsl r1, r3, #0x1\n" + " add r1, r1, r0\n" + " ldrb r2, [r5]\n" + " lsl r0, r2, #0x1\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x4\n" + " add r1, r1, r0\n" + " mov r0, r8\n" + " add r4, r1, r0\n" + " mov r0, #0x0\n" + " ldsh r1, [r4, r0]\n" + " ldr r5, ._687 + 28\n" + " lsl r0, r3, #0x2\n" + " add r0, r0, r3\n" + " lsl r2, r0, #0x1\n" + " add r0, r5, #6\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " cmp r1, r0\n" + " ble ._684 @cond_branch\n" + " add r0, r5, #0\n" + " add r0, r0, #0x8\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " strh r0, [r4]\n" + "._684:\n" + " bl debug_sub_8012294\n" + "._683:\n" + " ldr r0, ._687 + 8\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._685 @cond_branch\n" + " ldr r6, ._687 + 20\n" + " ldr r5, ._687 + 16\n" + " ldrb r4, [r5]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r2, ._687 + 24\n" + " ldrb r1, [r2]\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x4\n" + " add r4, r4, r0\n" + " add r4, r4, r6\n" + " ldrh r0, [r4]\n" + " sub r0, r0, #0xa\n" + " strh r0, [r4]\n" + " mov sl, r5\n" + " mov r8, r6\n" + " add r7, r2, #0\n" + " ldr r6, ._687 + 28\n" + " b ._686\n" + "._688:\n" + " .align 2, 0\n" + "._687:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gMain\n" + " .word debug_sub_8010CAC+1\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x1ac\n" + "._689:\n" + " add r0, r6, #6\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " ldrh r1, [r4]\n" + " add r0, r0, r1\n" + " strh r0, [r4]\n" + "._686:\n" + " mov r0, sl\n" + " ldrb r5, [r0]\n" + " lsl r4, r5, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldrb r1, [r7]\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x4\n" + " add r4, r4, r0\n" + " add r4, r4, r8\n" + " mov r0, #0x0\n" + " ldsh r1, [r4, r0]\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r2, r0, #0x1\n" + " add r0, r6, #0\n" + " add r0, r0, #0x8\n" + " add r0, r2, r0\n" + " ldrh r0, [r0]\n" + " cmp r1, r0\n" + " blt ._689 @cond_branch\n" + " bl debug_sub_8012294\n" + "._685:\n" + " ldr r0, ._692\n" + " ldrh r1, [r0, #0x30]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._690 @cond_branch\n" + " ldr r6, ._692 + 4\n" + " ldr r5, ._692 + 8\n" + " ldrb r4, [r5]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r2, ._692 + 12\n" + " ldrb r1, [r2]\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x4\n" + " add r4, r4, r0\n" + " add r4, r4, r6\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0xa\n" + " strh r0, [r4]\n" + " mov sl, r5\n" + " mov r8, r6\n" + " add r7, r2, #0\n" + " ldr r6, ._692 + 16\n" + " b ._691\n" + "._693:\n" + " .align 2, 0\n" + "._692:\n" + " .word gMain\n" + " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_Debug_03004360\n" + " .word UnkDebug0+0x1ac\n" + "._694:\n" + " ldrh r0, [r4]\n" + " sub r0, r0, r1\n" + " strh r0, [r4]\n" + "._691:\n" + " mov r1, sl\n" + " ldrb r5, [r1]\n" + " lsl r4, r5, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldrb r1, [r7]\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x4\n" + " add r4, r4, r0\n" + " add r4, r4, r8\n" + " mov r0, #0x0\n" + " ldsh r2, [r4, r0]\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x1\n" + " add r1, r6, #6\n" + " add r0, r0, r1\n" + " ldrh r1, [r0]\n" + " cmp r2, r1\n" + " bgt ._694 @cond_branch\n" + " bl debug_sub_8012294\n" + "._690:\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_801174C() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xffffffe8\n" + " mov r0, #0x0\n" + " mov r9, r0\n" + " ldr r1, ._704\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " bl Random\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " mov r0, #0x3\n" + " and r4, r4, r0\n" + " lsl r4, r4, #0x18\n" + " lsr r6, r4, #0x18\n" + " ldr r5, ._704 + 4\n" + " lsl r1, r6, #0x1\n" + " add r1, r1, r6\n" + " lsl r1, r1, #0x1\n" + " ldr r0, ._704 + 8\n" + " add r1, r1, r0\n" + " add r0, r5, #0\n" + " bl StringCopy\n" + " lsr r4, r4, #0x19\n" + " strb r4, [r5, #0x8]\n" + " bl ZeroPlayerPartyMons\n" + " bl ZeroEnemyPartyMons\n" + " ldr r0, ._704 + 12\n" + " mov r1, #0x3c\n" + " ldsh r7, [r0, r1]\n" + " mov r2, r9\n" + " str r2, [sp, #0xc]\n" + " cmp r7, #0x9\n" + " ble ._695 @cond_branch\n" + " mov r0, #0x0\n" + "._696:\n" + " sub r7, r7, #0xa\n" + " add r0, r0, #0x1\n" + " cmp r7, #0x9\n" + " bgt ._696 @cond_branch\n" + " str r0, [sp, #0xc]\n" + "._695:\n" + " ldr r2, ._704 + 16\n" + " ldr r1, ._704 + 20\n" + " sub r0, r7, #1\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r1\n" + " ldrh r3, [r0]\n" + " strh r3, [r2]\n" + " ldr r1, ._704 + 24\n" + " mov r0, #0x8\n" + " strb r0, [r1]\n" + " ldr r1, ._704 + 28\n" + " add r0, sp, #0xc\n" + " ldrb r0, [r0]\n" + " strb r0, [r1]\n" + " mov r0, #0x80\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._697 @cond_branch\n" + " bl EnterSafariMode\n" + "._697:\n" + " ldr r5, ._704 + 12\n" + " ldrh r0, [r5, #0x3c]\n" + " sub r0, r0, #0x2\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " cmp r0, #0x2\n" + " bhi ._698 @cond_branch\n" + " ldr r4, ._704 + 32\n" + " bl Random\n" + " mov r1, #0x7\n" + " and r1, r1, r0\n" + " add r1, r1, #0x1\n" + " strh r1, [r4]\n" + "._698:\n" + " ldr r1, ._704 + 36\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " mov r7, #0x0\n" + "._745:\n" + " lsl r0, r7, #0x1\n" + " ldr r3, ._704 + 12\n" + " add r1, r0, r3\n" + " mov r2, #0x0\n" + " ldsh r1, [r1, r2]\n" + " add r2, r3, #0\n" + " mov r8, r0\n" + " add r3, r7, #5\n" + " mov sl, r3\n" + " cmp r1, #0\n" + " beq ._699 @cond_branch\n" + " add r0, r7, #4\n" + " lsl r0, r0, #0x1\n" + " add r1, r2, #0\n" + " add r0, r0, r1\n" + " mov r3, #0x0\n" + " ldsh r0, [r0, r3]\n" + " cmp r0, #0x1\n" + " beq ._707 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._701 @cond_branch\n" + " cmp r0, #0\n" + " beq ._706 @cond_branch\n" + " b ._708\n" + "._705:\n" + " .align 2, 0\n" + "._704:\n" + " .word gUnknown_020297ED\n" + " .word gSaveBlock2\n" + " .word UnkDebug0+0x279\n" + " .word gUnknown_02023A14+0x52\n" + " .word gBattleTypeFlags\n" + " .word UnkDebug0+0x1e0\n" + " .word gUnknown_02023A14+0x50\n" + " .word gBattleTerrain\n" + " .word gTrainerBattleOpponent\n" + " .word gPlayerPartyCount\n" + "._701:\n" + " cmp r0, #0x2\n" + " beq ._706 @cond_branch\n" + " cmp r0, #0x3\n" + " beq ._707 @cond_branch\n" + " b ._708\n" + "._706:\n" + " mov r6, #0x0\n" + " b ._710\n" + "._707:\n" + " mov r6, #0xfe\n" + " b ._710\n" + "._708:\n" + " mov r6, #0xff\n" + "._710:\n" + " mov r1, r8\n" + " add r0, r1, r2\n" + " mov r3, #0x0\n" + " ldsh r0, [r0, r3]\n" + " add r1, r7, #5\n" + " mov sl, r1\n" + " cmp r0, #0xc9\n" + " bne ._712 @cond_branch\n" + " cmp r1, #0x1d\n" + " bgt ._712 @cond_branch\n" + " add r0, r7, #7\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r2\n" + " ldrb r0, [r0]\n" + " mov r9, r0\n" + " b ._713\n" + "._712:\n" + " mov r2, #0x0\n" + " mov r9, r2\n" + "._713:\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\n" + " ldr r1, ._719\n" + " add r0, r0, r1\n" + " ldr r1, ._719 + 4\n" + " add r1, r1, r8\n" + " ldrh r1, [r1]\n" + " add r2, r7, #1\n" + " lsl r2, r2, #0x1\n" + " ldr r3, ._719 + 4\n" + " add r2, r2, r3\n" + " ldrb r2, [r2]\n" + " str r6, [sp]\n" + " mov r3, #0x0\n" + " str r3, [sp, #0x4]\n" + " mov r3, r9\n" + " str r3, [sp, #0x8]\n" + " mov r3, #0x0\n" + " bl CreateMonWithGenderNatureLetter\n" + "._699:\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r2, #0x64\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._719\n" + " add r5, r1, r0\n" + " ldr r4, ._719 + 8\n" + " mov r3, r8\n" + " add r6, r3, r4\n" + " add r0, r5, #0\n" + " mov r1, #0xc\n" + " add r2, r6, #0\n" + " bl SetMonData\n" + " sub r4, r4, #0x4\n" + " add r1, r7, #2\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r4\n" + " ldrh r0, [r0]\n" + " sub r0, r0, #0x1\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " str r1, [sp, #0x10]\n" + " cmp r0, #0xb\n" + " bhi ._714 @cond_branch\n" + " add r0, r5, #0\n" + " mov r1, #0x26\n" + " add r2, r6, #0\n" + " bl SetMonData\n" + "._714:\n" + " add r1, r7, #3\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r4\n" + " mov r3, #0x0\n" + " ldsh r2, [r0, r3]\n" + " str r1, [sp, #0x14]\n" + " cmp r2, #0\n" + " beq ._716 @cond_branch\n" + " cmp r2, #0x3\n" + " beq ._716 @cond_branch\n" + " cmp r2, #0x2\n" + " bgt ._717 @cond_branch\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " sub r0, r0, #0x1\n" + " b ._718\n" + "._720:\n" + " .align 2, 0\n" + "._719:\n" + " .word gEnemyParty\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_02023A14+0x56\n" + "._717:\n" + " mov r2, #0x0\n" + " ldsh r0, [r0, r2]\n" + " sub r0, r0, #0x4\n" + "._718:\n" + " str r0, [sp, #0xc]\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\n" + " ldr r1, ._726\n" + " add r0, r0, r1\n" + " mov r1, #0x2e\n" + " add r2, sp, #0xc\n" + " bl SetMonData\n" + "._716:\n" + " ldr r1, ._726 + 4\n" + " add r1, r1, #0x46\n" + " mov r2, r8\n" + " add r0, r2, r1\n" + " mov r3, #0x0\n" + " ldsh r0, [r0, r3]\n" + " ldr r2, ._726 + 4\n" + " cmp r0, #0\n" + " beq ._721 @cond_branch\n" + " add r0, r7, #4\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r1\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " cmp r0, #0x1\n" + " beq ._729 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._723 @cond_branch\n" + " cmp r0, #0\n" + " beq ._728 @cond_branch\n" + " b ._730\n" + "._727:\n" + " .align 2, 0\n" + "._726:\n" + " .word gEnemyParty\n" + " .word gUnknown_02023A14+0x52\n" + "._723:\n" + " cmp r0, #0x2\n" + " beq ._728 @cond_branch\n" + " cmp r0, #0x3\n" + " beq ._729 @cond_branch\n" + " b ._730\n" + "._728:\n" + " mov r6, #0x0\n" + " b ._732\n" + "._729:\n" + " mov r6, #0xfe\n" + " b ._732\n" + "._730:\n" + " mov r6, #0xff\n" + "._732:\n" + " add r1, r2, #0\n" + " add r1, r1, #0x46\n" + " mov r2, r8\n" + " add r0, r2, r1\n" + " mov r3, #0x0\n" + " ldsh r0, [r0, r3]\n" + " cmp r0, #0xc9\n" + " bne ._734 @cond_branch\n" + " mov r0, sl\n" + " cmp r0, #0x1d\n" + " bgt ._734 @cond_branch\n" + " add r0, r7, #7\n" + " lsl r0, r0, #0x1\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " mov r9, r0\n" + " b ._735\n" + "._734:\n" + " mov r1, #0x0\n" + " mov r9, r1\n" + "._735:\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r2, #0x64\n" + " mul r0, r0, r2\n" + " ldr r1, ._741\n" + " add r0, r0, r1\n" + " ldr r1, ._741 + 4\n" + " add r1, r1, r8\n" + " ldrh r1, [r1]\n" + " add r2, r7, #1\n" + " lsl r2, r2, #0x1\n" + " ldr r3, ._741 + 4\n" + " add r2, r2, r3\n" + " ldrb r2, [r2]\n" + " str r6, [sp]\n" + " mov r3, #0x0\n" + " str r3, [sp, #0x4]\n" + " mov r3, r9\n" + " str r3, [sp, #0x8]\n" + " mov r3, #0x0\n" + " bl CreateMonWithGenderNatureLetter\n" + " ldr r1, ._741 + 8\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + "._721:\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r2, #0x64\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._741\n" + " add r4, r1, r0\n" + " ldr r0, ._741 + 12\n" + " mov r3, r8\n" + " add r5, r3, r0\n" + " add r0, r4, #0\n" + " mov r1, #0xc\n" + " add r2, r5, #0\n" + " bl SetMonData\n" + " ldr r1, [sp, #0x10]\n" + " lsl r0, r1, #0x1\n" + " ldr r2, ._741 + 16\n" + " add r0, r0, r2\n" + " ldrh r0, [r0]\n" + " sub r0, r0, #0x1\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " cmp r0, #0xb\n" + " bhi ._736 @cond_branch\n" + " add r0, r4, #0\n" + " mov r1, #0x26\n" + " add r2, r5, #0\n" + " bl SetMonData\n" + "._736:\n" + " ldr r3, [sp, #0x14]\n" + " lsl r0, r3, #0x1\n" + " ldr r1, ._741 + 4\n" + " add r0, r0, r1\n" + " mov r2, #0x0\n" + " ldsh r1, [r0, r2]\n" + " cmp r1, #0\n" + " beq ._738 @cond_branch\n" + " cmp r1, #0x3\n" + " beq ._738 @cond_branch\n" + " cmp r1, #0x2\n" + " bgt ._739 @cond_branch\n" + " add r0, r1, #0\n" + " sub r0, r0, #0x1\n" + " b ._740\n" + "._742:\n" + " .align 2, 0\n" + "._741:\n" + " .word gPlayerParty\n" + " .word gUnknown_02023A14+0x98\n" + " .word gPlayerPartyCount\n" + " .word gUnknown_02023A14+0x9c\n" + " .word gUnknown_02023A14+0x52\n" + "._739:\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " sub r0, r0, #0x4\n" + "._740:\n" + " str r0, [sp, #0xc]\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r2, #0x64\n" + " mul r0, r0, r2\n" + " ldr r1, ._750\n" + " add r0, r0, r1\n" + " mov r1, #0x2e\n" + " add r2, sp, #0xc\n" + " bl SetMonData\n" + "._738:\n" + " ldr r3, [sp, #0x14]\n" + " lsl r0, r3, #0x1\n" + " ldr r1, ._750 + 4\n" + " add r0, r0, r1\n" + " mov r2, #0x0\n" + " ldsh r0, [r0, r2]\n" + " cmp r0, #0x2\n" + " ble ._743 @cond_branch\n" + " add r0, r7, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x3d30\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\n" + " ldr r1, ._750\n" + " add r0, r0, r1\n" + " mov r1, #0x7\n" + " ldr r2, ._750 + 8\n" + " bl SetMonData\n" + " ldr r2, ._750 + 12\n" + " ldrb r0, [r2]\n" + " mov r1, #0x40\n" + " orr r0, r0, r1\n" + " strb r0, [r2]\n" + "._743:\n" + " mov r7, sl\n" + " cmp r7, #0x1d\n" + " bgt ._744 @cond_branch\n" + " b ._745\n" + "._744:\n" + " mov r0, #0x0\n" + " str r0, [sp, #0xc]\n" + " mov r0, #0x64\n" + " mov r8, r0\n" + " ldr r1, ._750 + 16\n" + " mov r9, r1\n" + " ldr r2, ._750\n" + " mov sl, r2\n" + "._747:\n" + " mov r7, #0x0\n" + "._746:\n" + " ldr r2, [sp, #0xc]\n" + " mov r0, r8\n" + " mul r0, r0, r2\n" + " ldr r3, ._750 + 20\n" + " add r0, r0, r3\n" + " add r5, r7, #0\n" + " add r5, r5, #0xd\n" + " lsl r2, r2, #0x3\n" + " lsl r4, r7, #0x1\n" + " mov r3, r9\n" + " add r1, r4, r3\n" + " add r2, r2, r1\n" + " add r1, r5, #0\n" + " bl SetMonData\n" + " ldr r1, [sp, #0xc]\n" + " mov r0, r8\n" + " mul r0, r0, r1\n" + " ldr r2, ._750 + 20\n" + " add r0, r0, r2\n" + " add r6, r7, #0\n" + " add r6, r6, #0x11\n" + " lsl r1, r1, #0x3\n" + " add r1, r4, r1\n" + " add r1, r1, r9\n" + " mov r3, #0x0\n" + " ldsh r1, [r1, r3]\n" + " lsl r2, r1, #0x1\n" + " add r2, r2, r1\n" + " lsl r2, r2, #0x2\n" + " ldr r1, ._750 + 24\n" + " add r2, r2, r1\n" + " add r1, r6, #0\n" + " bl SetMonData\n" + " ldr r2, [sp, #0xc]\n" + " mov r0, r8\n" + " mul r0, r0, r2\n" + " add r0, r0, sl\n" + " lsl r2, r2, #0x3\n" + " ldr r3, ._750 + 28\n" + " add r1, r4, r3\n" + " add r2, r2, r1\n" + " add r1, r5, #0\n" + " bl SetMonData\n" + " ldr r1, [sp, #0xc]\n" + " mov r0, r8\n" + " mul r0, r0, r1\n" + " add r0, r0, sl\n" + " lsl r1, r1, #0x3\n" + " add r4, r4, r1\n" + " ldr r1, ._750 + 28\n" + " add r4, r4, r1\n" + " mov r2, #0x0\n" + " ldsh r1, [r4, r2]\n" + " lsl r2, r1, #0x1\n" + " add r2, r2, r1\n" + " lsl r2, r2, #0x2\n" + " ldr r3, ._750 + 24\n" + " add r2, r2, r3\n" + " add r1, r6, #0\n" + " bl SetMonData\n" + " add r7, r7, #0x1\n" + " cmp r7, #0x3\n" + " ble ._746 @cond_branch\n" + " ldr r0, [sp, #0xc]\n" + " add r0, r0, #0x1\n" + " str r0, [sp, #0xc]\n" + " cmp r0, #0x5\n" + " ble ._747 @cond_branch\n" + " ldr r3, ._750 + 32\n" + " add r4, r3, #0\n" + " add r4, r4, #0x44\n" + " ldrh r1, [r4]\n" + " mov r2, #0x0\n" + " ldsh r0, [r4, r2]\n" + " cmp r0, #0x8\n" + " bne ._748 @cond_branch\n" + " ldr r0, ._750 + 12\n" + " ldrb r1, [r0]\n" + " mov r2, #0x80\n" + " b ._753\n" + "._751:\n" + " .align 2, 0\n" + "._750:\n" + " .word gPlayerParty\n" + " .word gUnknown_02023A14+0x98\n" + " .word UnkDebug0+0x291\n" + " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14+0xde\n" + " .word gEnemyParty\n" + " .word gBattleMoves+0x4\n" + " .word gUnknown_02023A14+0x10e\n" + " .word gUnknown_02023A14+0x52\n" + "._748:\n" + " cmp r0, #0x7\n" + " bne ._752 @cond_branch\n" + " ldr r0, ._754\n" + " ldrb r1, [r0]\n" + " mov r2, #0x20\n" + " b ._753\n" + "._755:\n" + " .align 2, 0\n" + "._754:\n" + " .word gUnknown_02023A14+0x50\n" + "._752:\n" + " cmp r0, #0x6\n" + " bne ._756 @cond_branch\n" + " ldr r2, ._759\n" + " ldrb r0, [r2]\n" + " mov r1, #0x10\n" + " orr r0, r0, r1\n" + " strb r0, [r2]\n" + " ldrh r1, [r3, #0x4]\n" + " mov r2, #0x4\n" + " ldsh r0, [r3, r2]\n" + " cmp r0, #0x5\n" + " ble ._757 @cond_branch\n" + " ldr r0, ._759 + 4\n" + " sub r1, r1, #0x2\n" + " ldr r3, ._759 + 8\n" + " add r0, r0, r3\n" + " b ._761\n" + "._760:\n" + " .align 2, 0\n" + "._759:\n" + " .word gUnknown_02023A14+0x50\n" + " .word +0x2000000\n" + " .word 0x160a3\n" + "._757:\n" + " ldr r0, ._762\n" + " ldr r2, ._762 + 4\n" + " add r0, r0, r2\n" + " b ._761\n" + "._763:\n" + " .align 2, 0\n" + "._762:\n" + " .word +0x2000000\n" + " .word 0x160a3\n" + "._756:\n" + " cmp r0, #0x5\n" + " bne ._764 @cond_branch\n" + " ldr r0, ._766\n" + " ldrb r1, [r0]\n" + " mov r2, #0x21\n" + "._753:\n" + " orr r1, r1, r2\n" + "._761:\n" + " strb r1, [r0]\n" + " bl sub_80408BC\n" + " b ._770\n" + "._767:\n" + " .align 2, 0\n" + "._766:\n" + " .word gUnknown_02023A14+0x50\n" + "._764:\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._768 @cond_branch\n" + " bl sub_80408BC\n" + "._768:\n" + " ldrh r3, [r4]\n" + " mov r0, #0x2\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._769 @cond_branch\n" + " ldr r0, ._772\n" + " ldrb r1, [r0]\n" + " mov r2, #0x4\n" + " orr r1, r1, r2\n" + " strb r1, [r0]\n" + "._769:\n" + " mov r0, #0x4\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._770 @cond_branch\n" + " ldr r0, ._772\n" + " ldrb r1, [r0]\n" + " mov r2, #0x6\n" + " orr r1, r1, r2\n" + " strb r1, [r0]\n" + "._770:\n" + " ldr r0, ._772 + 4\n" + " ldr r1, ._772 + 8\n" + " str r1, [r0, #0x8]\n" + " ldr r0, ._772 + 12\n" + " bl SetMainCallback2\n" + " bl ClearBag\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x2\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x3\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x4\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x5\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x6\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x7\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x8\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x9\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0xa\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0xb\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0xc\n" + " mov r1, #0xa\n" + " bl AddBagItem\n" + " mov r0, #0x13\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x14\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x19\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x22\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x23\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x25\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x49\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x4a\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x4b\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x4c\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x4d\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x4e\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " mov r0, #0x50\n" + " mov r1, #0x63\n" + " bl AddBagItem\n" + " ldr r4, ._772 + 16\n" + " mov r7, #0xe\n" + "._771:\n" + " add r0, r4, #0\n" + " bl sub_810CA34\n" + " add r4, r4, #0x8\n" + " sub r7, r7, #0x1\n" + " cmp r7, #0\n" + " bge ._771 @cond_branch\n" + " add sp, sp, #0x18\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._773:\n" + " .align 2, 0\n" + "._772:\n" + " .word gUnknown_02023A14+0x50\n" + " .word gMain\n" + " .word debug_sub_80108B8+1\n" + " .word unref_sub_800D684+1\n" + " .word UnkDebug0+0x1f4\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011D40() +{ + asm( + " push {lr}\n" + " ldr r1, ._774\n" + " ldr r0, ._774 + 4\n" + " str r0, [r1]\n" + " ldr r0, ._774 + 8\n" + " str r0, [r1, #0x4]\n" + " ldr r0, ._774 + 12\n" + " str r0, [r1, #0x8]\n" + " ldr r0, [r1, #0x8]\n" + " sub r1, r1, #0xc4\n" + " ldr r0, ._774 + 16\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 20\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 24\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 28\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 32\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 36\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 40\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._774 + 44\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " bl LoadOam\n" + " bl ProcessSpriteCopyRequests\n" + " pop {r0}\n" + " bx r0\n" + "._775:\n" + " .align 2, 0\n" + "._774:\n" + " .word 0x40000d4\n" + " .word +0x2000000\n" + " .word 0x6004000\n" + " .word 0x80000800\n" + " .word gUnknown_030042A4\n" + " .word gUnknown_030042A0\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_030041B4\n" + " .word gUnknown_03004288\n" + " .word gUnknown_03004280\n" + " .word gUnknown_030041B0\n" + " .word gUnknown_030041B8\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_nullsub_45() +{ + asm( + " bx lr\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011DD4() +{ + asm( + " push {lr}\n" + " ldr r1, ._776\n" + " ldr r2, ._776 + 4\n" + " add r0, r2, #0\n" + " strh r0, [r1]\n" + " add r1, r1, #0x8\n" + " ldr r0, ._776 + 8\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 12\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 16\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 20\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 24\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 28\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 32\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " add r1, r1, #0x2\n" + " ldr r0, ._776 + 36\n" + " ldrh r0, [r0]\n" + " strh r0, [r1]\n" + " bl LoadOam\n" + " bl ProcessSpriteCopyRequests\n" + " bl TransferPlttBuffer\n" + " bl sub_8089668\n" + " pop {r0}\n" + " bx r0\n" + "._777:\n" + " .align 2, 0\n" + "._776:\n" + " .word 0x4000008\n" + " .word 0x9803\n" + " .word gUnknown_030042A4\n" + " .word gUnknown_030042A0\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_030041B4\n" + " .word gUnknown_03004288\n" + " .word gUnknown_03004280\n" + " .word gUnknown_030041B0\n" + " .word gUnknown_030041B8\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011E5C() +{ + asm( + " push {r4, lr}\n" + " mov r4, #0x0\n" + "._778:\n" + " lsl r0, r4, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl debug_sub_8011EA0\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x1e\n" + " ble ._778 @cond_branch\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011E74() +{ + asm( + " push {r4, r5, lr}\n" + " ldr r0, ._780\n" + " ldrb r5, [r0]\n" + " mov r1, #0x0\n" + " strb r1, [r0]\n" + " add r4, r0, #0\n" + "._779:\n" + " bl debug_sub_8012294\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x3\n" + " bls ._779 @cond_branch\n" + " ldr r0, ._780\n" + " strb r5, [r0]\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._781:\n" + " .align 2, 0\n" + "._780:\n" + " .word gUnknown_Debug_030043A8\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8011EA0() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffff4\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r7, #0x22\n" + " bls ._782 @cond_branch\n" + " b ._815\n" + "._782:\n" + " lsl r0, r7, #0x2\n" + " ldr r1, ._785\n" + " add r1, r0, r1\n" + " ldr r1, [r1]\n" + " str r0, [sp, #0x8]\n" + " mov pc, r1\n" + "._786:\n" + " .align 2, 0\n" + "._785:\n" + " .word ._784\n" + "._784:\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._812\n" + " .word ._817\n" + " .word ._814\n" + " .word ._815\n" + " .word ._816\n" + " .word ._817\n" + " .word ._848\n" + " .word ._848\n" + " .word ._848\n" + " .word ._848\n" + "._812:\n" + " mov r0, #0x0\n" + " mov r1, #0x14\n" + " bl debug_sub_8010A7C\n" + " ldr r6, ._823\n" + " ldr r2, ._823 + 4\n" + " ldr r0, [sp, #0x8]\n" + " add r1, r0, r7\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, r2\n" + " ldrh r0, [r0]\n" + " str r0, [sp, #0x4]\n" + " add r0, r2, #2\n" + " add r0, r1, r0\n" + " ldrb r0, [r0]\n" + " mov r8, r0\n" + " add r2, r2, #0x4\n" + " add r1, r1, r2\n" + " ldrb r1, [r1]\n" + " mov r9, r1\n" + " str r1, [sp]\n" + " ldr r0, ._823 + 8\n" + " add r1, r6, #0\n" + " ldr r2, [sp, #0x4]\n" + " mov r3, r8\n" + " bl InitWindow\n" + " ldr r0, ._823 + 8\n" + " bl sub_8002F44\n" + " ldr r1, ._823 + 12\n" + " mov sl, r1\n" + " lsl r4, r7, #0x1\n" + " ldr r5, ._823 + 16\n" + " ldrb r0, [r5]\n" + " mov r7, #0x46\n" + " mul r0, r0, r7\n" + " add r0, r4, r0\n" + " add r0, r0, sl\n" + " mov r2, #0x0\n" + " ldsh r1, [r0, r2]\n" + " add r0, r6, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r2, #0xd3\n" + " lsl r2, r2, #0x1\n" + " ldrb r3, [r5]\n" + " lsl r3, r3, #0x5\n" + " add r3, r3, #0x19\n" + " lsl r3, r3, #0x18\n" + " lsr r3, r3, #0x18\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " ldr r0, ._823 + 8\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " ldr r0, ._823 + 8\n" + " bl sub_8002F44\n" + " mov r0, #0xff\n" + " strb r0, [r6]\n" + " ldrb r0, [r5]\n" + " mul r0, r0, r7\n" + " add r4, r4, r0\n" + " add r4, r4, sl\n" + " mov r0, #0x0\n" + " ldsh r1, [r4, r0]\n" + " mov r0, #0xb\n" + " mul r1, r1, r0\n" + " ldr r0, ._823 + 20\n" + " add r1, r1, r0\n" + " add r0, r6, #0\n" + " bl StringAppend\n" + " mov r1, r9\n" + " str r1, [sp]\n" + " ldr r0, ._823 + 8\n" + " add r1, r6, #0\n" + " ldr r2, [sp, #0x4]\n" + " mov r3, r8\n" + " bl InitWindow\n" + " ldr r0, ._823 + 8\n" + " bl sub_8002F44\n" + " b ._848\n" + "._824:\n" + " .align 2, 0\n" + "._823:\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + " .word gSpeciesNames\n" + "._817:\n" + " ldr r6, ._826\n" + " ldr r3, ._826 + 4\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._826 + 8\n" + " ldrb r2, [r0]\n" + " mov r0, #0x46\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r3\n" + " mov r2, #0x0\n" + " ldsh r1, [r1, r2]\n" + " add r0, r6, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " b ._825\n" + "._827:\n" + " .align 2, 0\n" + "._826:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + "._814:\n" + " mov r0, #0x0\n" + " mov r1, #0x18\n" + " bl debug_sub_8010A7C\n" + " ldr r6, ._830\n" + " ldr r1, ._830 + 4\n" + " mov sl, r1\n" + " ldr r4, ._830 + 8\n" + " ldr r2, [sp, #0x8]\n" + " add r1, r2, r7\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, r4\n" + " ldrh r2, [r0]\n" + " add r0, r4, #2\n" + " add r0, r1, r0\n" + " ldrb r3, [r0]\n" + " add r4, r4, #0x4\n" + " add r1, r1, r4\n" + " ldrb r0, [r1]\n" + " str r0, [sp]\n" + " add r0, r6, #0\n" + " mov r1, sl\n" + " bl InitWindow\n" + " add r0, r6, #0\n" + " bl sub_8002F44\n" + " lsl r4, r7, #0x1\n" + " ldr r5, ._830 + 12\n" + " ldrb r0, [r5]\n" + " mov r1, #0x46\n" + " mul r0, r0, r1\n" + " add r0, r4, r0\n" + " ldr r2, ._830 + 16\n" + " add r0, r0, r2\n" + " mov r2, #0x0\n" + " ldsh r1, [r0, r2]\n" + " mov r0, sl\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r2, #0xd3\n" + " lsl r2, r2, #0x1\n" + " ldrb r3, [r5]\n" + " lsl r3, r3, #0x5\n" + " add r3, r3, #0x19\n" + " lsl r3, r3, #0x18\n" + " lsr r3, r3, #0x18\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " add r0, r6, #0\n" + " mov r1, sl\n" + " bl InitWindow\n" + " add r0, r6, #0\n" + " bl sub_8002F44\n" + " mov r0, #0xff\n" + " mov r1, sl\n" + " strb r0, [r1]\n" + " ldrb r0, [r5]\n" + " mov r2, #0x46\n" + " mul r0, r0, r2\n" + " add r4, r4, r0\n" + " ldr r0, ._830 + 16\n" + " add r4, r4, r0\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0\n" + " beq ._828 @cond_branch\n" + " ldrh r0, [r4]\n" + " bl ItemId_GetItem\n" + " add r1, r0, #0\n" + " mov r0, sl\n" + " bl StringAppend\n" + " b ._829\n" + "._831:\n" + " .align 2, 0\n" + "._830:\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_02023A14+0x52\n" + "._828:\n" + " ldr r1, ._833\n" + " mov r0, sl\n" + " bl StringAppend\n" + "._829:\n" + " ldr r6, ._833 + 4\n" + " ldr r1, ._833 + 8\n" + " ldr r5, ._833 + 12\n" + " ldr r2, [sp, #0x8]\n" + " add r4, r2, r7\n" + " lsl r4, r4, #0x1\n" + " add r0, r4, r5\n" + " ldrh r2, [r0]\n" + " add r0, r5, #2\n" + " add r0, r4, r0\n" + " ldrb r3, [r0]\n" + " add r5, r5, #0x4\n" + " add r4, r4, r5\n" + " ldrb r0, [r4]\n" + " str r0, [sp]\n" + " add r0, r6, #0\n" + " bl InitWindow\n" + " add r0, r6, #0\n" + " bl sub_8002F44\n" + " b ._848\n" + "._834:\n" + " .align 2, 0\n" + "._833:\n" + " .word UnkDebug0+0x26c\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x6c\n" + "._816:\n" + " mov r0, #0x0\n" + " mov r1, #0x4\n" + " bl debug_sub_8010A7C\n" + " ldr r5, ._839\n" + " ldr r6, ._839 + 4\n" + " ldr r4, ._839 + 8\n" + " ldr r0, [sp, #0x8]\n" + " add r1, r0, r7\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, r4\n" + " ldrh r2, [r0]\n" + " add r0, r4, #2\n" + " add r0, r1, r0\n" + " ldrb r3, [r0]\n" + " add r4, r4, #0x4\n" + " add r1, r1, r4\n" + " ldrb r0, [r1]\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " mov r4, #0x0\n" + " ldr r3, ._839 + 12\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._839 + 16\n" + " ldrb r2, [r0]\n" + " mov r0, #0x46\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r3\n" + " mov r2, #0x0\n" + " ldsh r0, [r1, r2]\n" + " cmp r0, #0x1\n" + " beq ._835 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._836 @cond_branch\n" + " cmp r0, #0\n" + " beq ._837 @cond_branch\n" + " b ._843\n" + "._840:\n" + " .align 2, 0\n" + "._839:\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x6c\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + "._836:\n" + " cmp r0, #0x2\n" + " beq ._841 @cond_branch\n" + " cmp r0, #0x3\n" + " beq ._842 @cond_branch\n" + " b ._843\n" + "._837:\n" + " mov r0, #0xb5\n" + " b ._844\n" + "._835:\n" + " mov r0, #0xb6\n" + "._844:\n" + " strb r0, [r6]\n" + " mov r4, #0x1\n" + " b ._847\n" + "._841:\n" + " mov r0, #0xb5\n" + " b ._846\n" + "._842:\n" + " mov r0, #0xb6\n" + "._846:\n" + " strb r0, [r6]\n" + " strb r0, [r6, #0x1]\n" + " mov r4, #0x2\n" + " b ._847\n" + "._843:\n" + " ldr r2, ._849\n" + " add r1, r4, r2\n" + " mov r0, #0xac\n" + " strb r0, [r1]\n" + " add r4, r4, #0x1\n" + " add r6, r2, #0\n" + "._847:\n" + " add r1, r4, r6\n" + " mov r0, #0xff\n" + " strb r0, [r1]\n" + "._825:\n" + " ldr r5, ._849 + 4\n" + " ldr r4, ._849 + 8\n" + " ldr r0, [sp, #0x8]\n" + " add r1, r0, r7\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, r4\n" + " ldrh r2, [r0]\n" + " add r0, r4, #2\n" + " add r0, r1, r0\n" + " ldrb r3, [r0]\n" + " add r4, r4, #0x4\n" + " add r1, r1, r4\n" + " ldrb r0, [r1]\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " b ._848\n" + "._850:\n" + " .align 2, 0\n" + "._849:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_Debug_03004370\n" + " .word UnkDebug0+0x6c\n" + "._815:\n" + " ldr r6, ._851\n" + " ldr r3, ._851 + 4\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._851 + 8\n" + " ldrb r2, [r0]\n" + " mov r0, #0x46\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r3\n" + " mov r2, #0x0\n" + " ldsh r1, [r1, r2]\n" + " add r0, r6, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x1\n" + " bl ConvertIntToDecimalStringN\n" + " ldr r5, ._851 + 12\n" + " ldr r4, ._851 + 16\n" + " lsl r1, r7, #0x2\n" + " add r1, r1, r7\n" + " lsl r1, r1, #0x1\n" + " add r0, r1, r4\n" + " ldrh r2, [r0]\n" + " add r0, r4, #2\n" + " add r0, r1, r0\n" + " ldrb r3, [r0]\n" + " add r4, r4, #0x4\n" + " add r1, r1, r4\n" + " ldrb r0, [r1]\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + "._848:\n" + " add sp, sp, #0xc\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._852:\n" + " .align 2, 0\n" + "._851:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_03004370\n" + " .word UnkDebug0+0x6c\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012294() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " ldr r2, ._854\n" + " ldr r0, ._854 + 4\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " cmp r5, #0x1d\n" + " bhi ._853 @cond_branch\n" + " mov r0, #0x0\n" + " mov r1, #0x18\n" + " bl debug_sub_8010A7C\n" + " ldr r0, ._854 + 8\n" + " mov sl, r0\n" + " ldr r1, ._854 + 12\n" + " mov r9, r1\n" + " ldr r2, ._854 + 16\n" + " mov r8, r2\n" + " ldr r7, ._854 + 20\n" + " ldrb r1, [r7]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x1\n" + " add r1, r0, r2\n" + " ldrh r2, [r1]\n" + " ldr r3, ._854 + 24\n" + " add r1, r0, r3\n" + " ldrb r3, [r1]\n" + " ldr r1, ._854 + 28\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r9\n" + " bl InitWindow\n" + " mov r0, sl\n" + " bl sub_8002F44\n" + " ldrb r4, [r7]\n" + " lsl r4, r4, #0x1\n" + " add r0, r5, #0\n" + " mov r1, #0x5\n" + " bl gScriptFuncs_End+0x4358\n" + " add r5, r0, #0\n" + " lsl r5, r5, #0x18\n" + " lsr r5, r5, #0x15\n" + " add r4, r4, r5\n" + " ldr r6, ._854 + 32\n" + " ldrb r1, [r6]\n" + " lsl r0, r1, #0x1\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x4\n" + " add r4, r4, r0\n" + " ldr r2, ._854 + 36\n" + " add r4, r4, r2\n" + " mov r3, #0x0\n" + " ldsh r1, [r4, r3]\n" + " mov r0, r9\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r2, #0xd3\n" + " lsl r2, r2, #0x1\n" + " ldrb r3, [r6]\n" + " lsl r3, r3, #0x5\n" + " add r3, r3, #0x19\n" + " lsl r3, r3, #0x18\n" + " lsr r3, r3, #0x18\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r9\n" + " bl InitWindow\n" + " mov r0, sl\n" + " bl sub_8002F44\n" + " mov r0, #0xff\n" + " mov r1, r9\n" + " strb r0, [r1]\n" + " ldrb r1, [r7]\n" + " lsl r1, r1, #0x1\n" + " add r1, r1, r5\n" + " ldrb r2, [r6]\n" + " lsl r0, r2, #0x1\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x4\n" + " add r1, r1, r0\n" + " ldr r2, ._854 + 36\n" + " add r1, r1, r2\n" + " mov r3, #0x0\n" + " ldsh r1, [r1, r3]\n" + " mov r0, #0xd\n" + " mul r1, r1, r0\n" + " ldr r0, ._854 + 40\n" + " add r1, r1, r0\n" + " mov r0, r9\n" + " bl StringAppend\n" + " ldrb r1, [r7]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x1\n" + " add r8, r8, r0\n" + " mov r1, r8\n" + " ldrh r2, [r1]\n" + " ldr r3, ._854 + 24\n" + " add r1, r0, r3\n" + " ldrb r3, [r1]\n" + " ldr r1, ._854 + 28\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r9\n" + " bl InitWindow\n" + " mov r0, sl\n" + " bl sub_8002F44\n" + "._853:\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._855:\n" + " .align 2, 0\n" + "._854:\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x1ac\n" + " .word gUnknown_Debug_030043A8\n" + " .word UnkDebug0+0x1ae\n" + " .word UnkDebug0+0x1b0\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_02023A14+0xde\n" + " .word gMoveNames\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80123D8() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " cmp r5, #0x1d\n" + " bhi ._856 @cond_branch\n" + " mov r0, #0x0\n" + " mov r1, #0x12\n" + " bl debug_sub_8010A7C\n" + " ldr r4, ._858\n" + " ldr r0, ._858 + 4\n" + " mov r8, r0\n" + " ldr r6, ._858 + 8\n" + " ldrh r1, [r6]\n" + " mov sl, r1\n" + " ldrb r7, [r6, #0x2]\n" + " ldrb r2, [r6, #0x4]\n" + " mov r9, r2\n" + " str r2, [sp]\n" + " add r0, r4, #0\n" + " mov r1, r8\n" + " mov r2, sl\n" + " add r3, r7, #0\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " lsl r5, r5, #0x1\n" + " ldr r1, ._858 + 12\n" + " ldrb r0, [r1]\n" + " mov r2, #0x46\n" + " mul r0, r0, r2\n" + " add r0, r5, r0\n" + " ldr r1, ._858 + 16\n" + " add r0, r0, r1\n" + " mov r2, #0x0\n" + " ldsh r1, [r0, r2]\n" + " lsl r0, r1, #0x3\n" + " sub r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._858 + 20\n" + " add r0, r0, r1\n" + " ldrb r0, [r0, #0x16]\n" + " mov r2, #0xd\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._858 + 24\n" + " add r1, r1, r0\n" + " mov r0, r8\n" + " bl StringCopy\n" + " mov r1, r9\n" + " str r1, [sp]\n" + " add r0, r4, #0\n" + " mov r1, r8\n" + " mov r2, sl\n" + " add r3, r7, #0\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " mov r0, #0x0\n" + " mov r1, #0x12\n" + " bl debug_sub_8010A7C\n" + " ldrh r2, [r6, #0x6]\n" + " mov r9, r2\n" + " ldrb r0, [r6, #0x8]\n" + " mov sl, r0\n" + " ldrb r6, [r6, #0xa]\n" + " str r6, [sp]\n" + " add r0, r4, #0\n" + " mov r1, r8\n" + " mov r3, sl\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " ldr r1, ._858 + 12\n" + " ldrb r0, [r1]\n" + " mov r2, #0x46\n" + " mul r0, r0, r2\n" + " add r5, r5, r0\n" + " ldr r0, ._858 + 16\n" + " add r5, r5, r0\n" + " mov r2, #0x0\n" + " ldsh r1, [r5, r2]\n" + " lsl r0, r1, #0x3\n" + " sub r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._858 + 20\n" + " add r0, r0, r1\n" + " ldrb r0, [r0, #0x17]\n" + " mov r2, #0xd\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._858 + 24\n" + " add r1, r1, r0\n" + " mov r0, r8\n" + " bl StringCopy\n" + " str r6, [sp]\n" + " add r0, r4, #0\n" + " mov r1, r8\n" + " mov r2, r9\n" + " mov r3, sl\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " b ._857\n" + "._859:\n" + " .align 2, 0\n" + "._858:\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x1d4\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_02023A14+0x52\n" + " .word gBaseStats\n" + " .word gAbilityNames\n" + "._856:\n" + " ldr r6, ._860\n" + " ldr r1, ._860 + 4\n" + " add r0, r6, #0\n" + " bl StringCopy\n" + " ldr r5, ._860 + 8\n" + " ldr r4, ._860 + 12\n" + " ldrh r2, [r4]\n" + " ldrb r3, [r4, #0x2]\n" + " ldrb r0, [r4, #0x4]\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " ldrh r2, [r4, #0x6]\n" + " ldrb r3, [r4, #0x8]\n" + " ldrb r0, [r4, #0xa]\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + "._857:\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._861:\n" + " .align 2, 0\n" + "._860:\n" + " .word gBattleTextBuff1\n" + " .word gAbilityNames\n" + " .word gUnknown_Debug_03004370\n" + " .word UnkDebug0+0x1d4\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012540() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add sp, sp, #0xfffffffc\n" + " ldr r5, ._862\n" + " ldr r0, ._862 + 4\n" + " add r0, r0, #0x44\n" + " mov r2, #0x0\n" + " ldsh r1, [r0, r2]\n" + " add r0, r5, #0\n" + " mov r2, #0x0\n" + " mov r3, #0x1\n" + " bl ConvertIntToDecimalStringN\n" + " ldr r4, ._862 + 8\n" + " ldr r1, ._862 + 12\n" + " mov r3, #0x9b\n" + " lsl r3, r3, #0x1\n" + " add r0, r1, r3\n" + " ldrh r2, [r0]\n" + " mov r6, #0x9c\n" + " lsl r6, r6, #0x1\n" + " add r0, r1, r6\n" + " ldrb r3, [r0]\n" + " add r6, r6, #0x2\n" + " add r0, r1, r6\n" + " ldrb r0, [r0]\n" + " str r0, [sp]\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " add sp, sp, #0x4\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._863:\n" + " .align 2, 0\n" + "._862:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_03004370\n" + " .word UnkDebug0+0x6c\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_nullsub_3() +{ + asm( + " bx lr\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80125A0() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._864\n" + " ldr r3, ._864 + 4\n" + " ldr r2, ._864 + 8\n" + " ldr r0, ._864 + 12\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._864 + 16\n" + " ldrb r2, [r1]\n" + " mov r1, #0x8c\n" + " mul r1, r1, r2\n" + " add r0, r0, r1\n" + " add r0, r0, r3\n" + " ldr r0, [r0]\n" + " add r0, r0, r4\n" + " mov r1, #0x6d\n" + " strb r1, [r0]\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._865:\n" + " .align 2, 0\n" + "._864:\n" + " .word +0x2000000\n" + " .word UnkDebug0+0x2c8\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80125E4() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._866\n" + " ldr r3, ._866 + 4\n" + " ldr r2, ._866 + 8\n" + " ldr r0, ._866 + 12\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " ldrb r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._866 + 16\n" + " ldrb r2, [r1]\n" + " mov r1, #0x8c\n" + " mul r1, r1, r2\n" + " add r0, r0, r1\n" + " add r0, r0, r3\n" + " ldr r0, [r0]\n" + " add r0, r0, r4\n" + " mov r1, #0x81\n" + " strb r1, [r0]\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._867:\n" + " .align 2, 0\n" + "._866:\n" + " .word +0x2000000\n" + " .word UnkDebug0+0x2c8\n" + " .word gUnknown_Debug_030043A0\n" + " .word gUnknown_Debug_030043A4\n" + " .word gUnknown_Debug_03004360\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012628() +{ + asm( + " ldr r3, ._868\n" + " ldr r2, ._868 + 4\n" + " ldr r0, ._868 + 8\n" + " ldrb r1, [r0]\n" + " lsl r1, r1, #0x2\n" + " ldr r0, ._868 + 12\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x4\n" + " add r1, r1, r0\n" + " add r1, r1, r2\n" + " ldr r0, [r1]\n" + " add r0, r0, r3\n" + " mov r1, #0x6d\n" + " strb r1, [r0]\n" + " bx lr\n" + "._869:\n" + " .align 2, 0\n" + "._868:\n" + " .word +0x2000000\n" + " .word UnkDebug0+0x3e0\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_Debug_03004360\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012658() +{ + asm( + " ldr r3, ._870\n" + " ldr r2, ._870 + 4\n" + " ldr r0, ._870 + 8\n" + " ldrb r1, [r0]\n" + " lsl r1, r1, #0x2\n" + " ldr r0, ._870 + 12\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x4\n" + " add r1, r1, r0\n" + " add r1, r1, r2\n" + " ldr r0, [r1]\n" + " add r0, r0, r3\n" + " mov r1, #0x81\n" + " strb r1, [r0]\n" + " bx lr\n" + "._871:\n" + " .align 2, 0\n" + "._870:\n" + " .word +0x2000000\n" + " .word UnkDebug0+0x3e0\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_Debug_03004360\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012688() +{ + asm( + " push {r4, r5, r6, lr}\n" + " mov r6, r8\n" + " push {r6}\n" + " add sp, sp, #0xfffffff4\n" + " mov r1, #0x0\n" + " mov r4, #0xcd\n" + " lsl r4, r4, #0x1\n" + " ldr r3, ._873\n" + " mov r2, #0x0\n" + "._872:\n" + " add r0, r1, r3\n" + " strb r2, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, r4\n" + " ble ._872 @cond_branch\n" + " mov r0, #0x0\n" + " bl SetHBlankCallback\n" + " mov r0, #0x0\n" + " bl SetVBlankCallback\n" + " mov r5, #0x0\n" + " str r5, [sp, #0x8]\n" + " ldr r1, ._873 + 4\n" + " add r0, sp, #0x8\n" + " str r0, [r1]\n" + " mov r0, #0xc0\n" + " lsl r0, r0, #0x13\n" + " str r0, [r1, #0x4]\n" + " ldr r0, ._873 + 8\n" + " str r0, [r1, #0x8]\n" + " ldr r0, [r1, #0x8]\n" + " ldr r0, ._873 + 12\n" + " strh r5, [r0]\n" + " sub r0, r0, #0xc\n" + " strh r5, [r0]\n" + " add r0, r0, #0x4\n" + " strh r5, [r0]\n" + " sub r0, r0, #0x2\n" + " strh r5, [r0]\n" + " add r0, r0, #0x4\n" + " strh r5, [r0]\n" + " add r0, r0, #0x2\n" + " strh r5, [r0]\n" + " add r0, r0, #0x2\n" + " strh r5, [r0]\n" + " ldr r4, ._873 + 16\n" + " add r0, r4, #0\n" + " bl SetUpWindowConfig\n" + " bl ResetPaletteFade\n" + " ldr r0, ._873 + 20\n" + " strh r5, [r0]\n" + " ldr r1, ._873 + 24\n" + " mov r0, #0xa0\n" + " strh r0, [r1]\n" + " ldr r0, ._873 + 28\n" + " strh r5, [r0]\n" + " ldr r0, ._873 + 32\n" + " strh r5, [r0]\n" + " ldr r0, ._873 + 36\n" + " strh r5, [r0]\n" + " ldr r0, ._873 + 40\n" + " strh r5, [r0]\n" + " ldr r0, ._873 + 44\n" + " strh r5, [r0]\n" + " ldr r0, ._873 + 48\n" + " strh r5, [r0]\n" + " ldr r1, ._873 + 52\n" + " mov r0, #0x9\n" + " strb r0, [r1]\n" + " bl sub_800D6D4\n" + " bl sub_800DAB8\n" + " bl ResetSpriteData\n" + " bl ResetTasks\n" + " bl FreeAllSpritePalettes\n" + " ldr r1, ._873 + 56\n" + " mov r0, #0x4\n" + " strb r0, [r1]\n" + " ldr r6, ._873 + 60\n" + " mov r0, #0x1\n" + " strh r0, [r6]\n" + " ldr r0, ._873 + 64\n" + " add r1, r4, #0\n" + " bl InitWindowFromConfig\n" + " ldrh r2, [r6]\n" + " lsl r0, r2, #0x3\n" + " ldr r1, ._873 + 68\n" + " add r0, r0, r1\n" + " ldr r1, ._873 + 72\n" + " mov r8, r1\n" + " lsl r2, r2, #0x2\n" + " add r2, r2, r8\n" + " ldrb r1, [r2]\n" + " ldrb r2, [r2, #0x1]\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x12\n" + " ldr r4, ._873 + 76\n" + " ldr r4, [r4, #0x4]\n" + " str r4, [sp]\n" + " ldrh r4, [r6]\n" + " str r4, [sp, #0x4]\n" + " bl DecompressPicFromTable_2\n" + " ldr r1, ._873 + 80\n" + " ldrh r0, [r6]\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov r1, #0x88\n" + " lsl r1, r1, #0x1\n" + " mov r2, #0x20\n" + " bl LoadCompressedPalette\n" + " ldrh r0, [r6]\n" + " mov r1, #0x1\n" + " bl GetMonSpriteTemplate_803C56C\n" + " ldr r0, ._873 + 84\n" + " ldrh r1, [r6]\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r8\n" + " ldrb r2, [r1, #0x1]\n" + " add r2, r2, #0x28\n" + " mov r1, #0xb0\n" + " mov r3, #0x28\n" + " bl CreateSprite\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " ldr r3, ._873 + 88\n" + " lsl r1, r4, #0x4\n" + " add r1, r1, r4\n" + " lsl r1, r1, #0x2\n" + " add r0, r3, #0\n" + " add r0, r0, #0x1c\n" + " add r0, r1, r0\n" + " ldr r2, ._873 + 92\n" + " str r2, [r0]\n" + " add r1, r1, r3\n" + " ldrb r2, [r1, #0x5]\n" + " mov r0, #0xf\n" + " and r0, r0, r2\n" + " mov r2, #0x10\n" + " orr r0, r0, r2\n" + " strb r0, [r1, #0x5]\n" + " mov r1, #0x80\n" + " lsl r1, r1, #0x13\n" + " mov r2, #0xfa\n" + " lsl r2, r2, #0x5\n" + " add r0, r2, #0\n" + " strh r0, [r1]\n" + " ldr r0, ._873 + 96\n" + " bl SetHBlankCallback\n" + " ldr r0, ._873 + 100\n" + " bl SetVBlankCallback\n" + " bl gScriptFuncs_End+0x14f4\n" + " ldr r0, ._873 + 104\n" + " mov r1, #0x0\n" + " bl CreateTask\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r2, ._873 + 108\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r2\n" + " strh r5, [r1, #0x8]\n" + " strh r4, [r1, #0xa]\n" + " ldr r0, ._873 + 112\n" + " bl SetMainCallback2\n" + " add sp, sp, #0xc\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._874:\n" + " .align 2, 0\n" + "._873:\n" + " .word gUnknown_02023A14+0x13e\n" + " .word 0x40000d4\n" + " .word 0x85006000\n" + " .word 0x400004c\n" + " .word gWindowConfig_81E6C58\n" + " .word gUnknown_030042A4\n" + " .word gUnknown_030042A0\n" + " .word gUnknown_030042C0\n" + " .word gUnknown_030041B4\n" + " .word gUnknown_03004288\n" + " .word gUnknown_03004280\n" + " .word gUnknown_030041B0\n" + " .word gUnknown_030041B8\n" + " .word gBattleTerrain\n" + " .word gReservedSpritePaletteCount\n" + " .word gCurrentMove\n" + " .word gUnknown_03004210\n" + " .word gMonFrontPicTable\n" + " .word gMonFrontPicCoords\n" + " .word gUnknown_081FAF4C\n" + " .word gMonPaletteTable\n" + " .word gUnknown_02024E8C\n" + " .word gSprites\n" + " .word nullsub_37+1\n" + " .word debug_nullsub_45+1\n" + " .word debug_sub_8011DD4+1\n" + " .word debug_sub_8012D10+1\n" + " .word gTasks\n" + " .word debug_sub_8012878+1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012878() +{ + asm( + " push {lr}\n" + " bl AnimateSprites\n" + " bl BuildOamBuffer\n" + " ldr r0, ._876\n" + " bl sub_800374C\n" + " bl UpdatePaletteFade\n" + " bl RunTasks\n" + " ldr r0, ._876 + 4\n" + " ldrh r1, [r0, #0x2c]\n" + " mov r0, #0x82\n" + " lsl r0, r0, #0x1\n" + " cmp r1, r0\n" + " bne ._875 @cond_branch\n" + " ldr r0, ._876 + 8\n" + " bl SetMainCallback2\n" + "._875:\n" + " pop {r0}\n" + " bx r0\n" + "._877:\n" + " .align 2, 0\n" + "._876:\n" + " .word gUnknown_03004210\n" + " .word gMain\n" + " .word debug_sub_80108B8+1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80128B4() +{ + asm( + " push {r4, r5, r6, lr}\n" + " mov r6, r8\n" + " push {r6}\n" + " add sp, sp, #0xfffffffc\n" + " mov r0, #0x0\n" + " mov r1, #0x9\n" + " bl debug_sub_8010A7C\n" + " ldr r5, ._878\n" + " ldr r4, ._878 + 4\n" + " mov r0, #0x23\n" + " mov r8, r0\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r4, #0\n" + " mov r2, #0x90\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " ldr r6, ._878 + 8\n" + " ldrh r1, [r6]\n" + " add r0, r4, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, #0x0\n" + " strb r0, [r4, #0x3]\n" + " mov r0, #0xff\n" + " strb r0, [r4, #0x4]\n" + " ldrh r1, [r6]\n" + " mov r0, #0xb\n" + " mul r1, r1, r0\n" + " ldr r0, ._878 + 12\n" + " add r1, r1, r0\n" + " add r0, r4, #0\n" + " bl StringAppend\n" + " mov r0, r8\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r4, #0\n" + " mov r2, #0x90\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " add sp, sp, #0x4\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._879:\n" + " .align 2, 0\n" + "._878:\n" + " .word gUnknown_03004210\n" + " .word gBattleTextBuff1\n" + " .word gCurrentMove\n" + " .word gSpeciesNames\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012938() +{ + asm( + " push {r4, r5, r6, lr}\n" + " mov r6, sl\n" + " mov r5, r9\n" + " mov r4, r8\n" + " push {r4, r5, r6}\n" + " add sp, sp, #0xfffffffc\n" + " add r5, r0, #0\n" + " lsl r5, r5, #0x18\n" + " lsr r5, r5, #0x18\n" + " mov r0, #0x0\n" + " mov r1, #0x7\n" + " bl debug_sub_8010A7C\n" + " ldr r6, ._880\n" + " ldr r4, ._880 + 4\n" + " mov r0, #0x25\n" + " mov r8, r0\n" + " str r0, [sp]\n" + " add r0, r6, #0\n" + " add r1, r4, #0\n" + " mov r2, #0xa2\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r6, #0\n" + " bl sub_8002F44\n" + " ldr r1, ._880 + 8\n" + " add r0, r4, #0\n" + " bl StringCopy\n" + " add r0, r4, #4\n" + " ldr r1, ._880 + 12\n" + " mov sl, r1\n" + " ldr r2, ._880 + 16\n" + " mov r9, r2\n" + " ldrh r1, [r2]\n" + " sub r1, r1, #0x1\n" + " add r1, r1, sl\n" + " ldrb r1, [r1]\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, r8\n" + " str r0, [sp]\n" + " add r0, r6, #0\n" + " add r1, r4, #0\n" + " mov r2, #0xa2\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r6, #0\n" + " bl sub_8002F44\n" + " ldr r2, ._880 + 20\n" + " ldr r1, ._880 + 24\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0xa\n" + " ldsh r0, [r0, r1]\n" + " lsl r1, r0, #0x4\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r2\n" + " mov r2, r9\n" + " ldrh r0, [r2]\n" + " sub r0, r0, #0x1\n" + " add r0, r0, sl\n" + " ldrb r0, [r0]\n" + " neg r0, r0\n" + " strh r0, [r1, #0x26]\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._881:\n" + " .align 2, 0\n" + "._880:\n" + " .word gUnknown_03004210\n" + " .word gBattleTextBuff1\n" + " .word UnkDebug0+0x400\n" + " .word gUnknown_02023A14+0x13e\n" + " .word gCurrentMove\n" + " .word gSprites\n" + " .word gTasks\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80129F8() +{ + asm( + " push {r4, r5, r6, lr}\n" + " mov r6, r8\n" + " push {r6}\n" + " add sp, sp, #0xfffffff8\n" + " add r5, r0, #0\n" + " lsl r5, r5, #0x18\n" + " lsr r5, r5, #0x18\n" + " ldr r6, ._882\n" + " ldrh r2, [r6]\n" + " lsl r0, r2, #0x3\n" + " ldr r1, ._882 + 4\n" + " add r0, r0, r1\n" + " ldr r1, ._882 + 8\n" + " mov r8, r1\n" + " lsl r2, r2, #0x2\n" + " add r2, r2, r8\n" + " ldrb r1, [r2]\n" + " ldrb r2, [r2, #0x1]\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x12\n" + " ldr r4, ._882 + 12\n" + " ldr r4, [r4, #0x4]\n" + " str r4, [sp]\n" + " ldrh r4, [r6]\n" + " str r4, [sp, #0x4]\n" + " bl DecompressPicFromTable_2\n" + " ldr r1, ._882 + 16\n" + " ldrh r0, [r6]\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov r1, #0x88\n" + " lsl r1, r1, #0x1\n" + " mov r2, #0x20\n" + " bl LoadCompressedPalette\n" + " ldr r4, ._882 + 20\n" + " ldr r0, ._882 + 24\n" + " lsl r2, r5, #0x2\n" + " add r2, r2, r5\n" + " lsl r2, r2, #0x3\n" + " add r2, r2, r0\n" + " mov r1, #0xa\n" + " ldsh r0, [r2, r1]\n" + " lsl r1, r0, #0x4\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r4\n" + " ldrh r0, [r6]\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r8\n" + " ldrb r0, [r0, #0x1]\n" + " add r0, r0, #0x28\n" + " strh r0, [r1, #0x22]\n" + " mov r1, #0xa\n" + " ldsh r0, [r2, r1]\n" + " lsl r1, r0, #0x4\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r4\n" + " ldr r3, ._882 + 28\n" + " ldrh r0, [r6]\n" + " sub r0, r0, #0x1\n" + " add r0, r0, r3\n" + " ldrb r0, [r0]\n" + " neg r0, r0\n" + " strh r0, [r1, #0x26]\n" + " mov r0, #0xa\n" + " ldsh r1, [r2, r0]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r4\n" + " mov r1, #0x0\n" + " bl StartSpriteAnim\n" + " add sp, sp, #0x8\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._883:\n" + " .align 2, 0\n" + "._882:\n" + " .word gCurrentMove\n" + " .word gMonFrontPicTable\n" + " .word gMonFrontPicCoords\n" + " .word gUnknown_081FAF4C\n" + " .word gMonPaletteTable\n" + " .word gSprites\n" + " .word gTasks\n" + " .word gUnknown_02023A14+0x13e\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012AC0() +{ + asm( + " push {r4, r5, r6, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " lsl r1, r1, #0x18\n" + " lsr r6, r1, #0x18\n" + " ldr r3, ._885\n" + " ldr r4, ._885 + 4\n" + " b ._884\n" + "._886:\n" + " .align 2, 0\n" + "._885:\n" + " .word gCurrentMove\n" + " .word gBaseStats\n" + "._890:\n" + " ldrb r0, [r1, #0x7]\n" + " cmp r0, #0x2\n" + " beq ._887 @cond_branch\n" + "._884:\n" + " add r2, r3, #0\n" + " lsl r0, r5, #0x18\n" + " asr r0, r0, #0x18\n" + " ldrh r1, [r2]\n" + " add r0, r0, r1\n" + " strh r0, [r2]\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " bne ._888 @cond_branch\n" + " ldr r1, ._891\n" + " add r0, r1, #0\n" + " strh r0, [r2]\n" + "._888:\n" + " ldrh r1, [r2]\n" + " ldr r0, ._891\n" + " cmp r1, r0\n" + " bne ._889 @cond_branch\n" + " mov r0, #0x1\n" + " strh r0, [r2]\n" + "._889:\n" + " ldrh r0, [r3]\n" + " lsl r1, r0, #0x3\n" + " sub r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r4\n" + " ldrb r0, [r1, #0x6]\n" + " cmp r0, #0x2\n" + " bne ._890 @cond_branch\n" + "._887:\n" + " bl debug_sub_80128B4\n" + " add r0, r6, #0\n" + " bl debug_sub_8012938\n" + " add r0, r6, #0\n" + " bl debug_sub_80129F8\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._892:\n" + " .align 2, 0\n" + "._891:\n" + " .word 0x19b\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012B2C() +{ + asm( + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x11\n" + " ldr r1, ._893\n" + " add r2, r0, r1\n" + " mov r1, #0x1\n" + " strh r1, [r2]\n" + " ldr r1, ._893 + 4\n" + " add r0, r0, r1\n" + " mov r1, #0x2\n" + " strh r1, [r0]\n" + " bx lr\n" + "._894:\n" + " .align 2, 0\n" + "._893:\n" + " .word 0x600c772\n" + " .word 0x600c7b2\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012B4C() +{ + asm( + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x11\n" + " ldr r2, ._895\n" + " add r1, r0, r2\n" + " ldr r3, ._895 + 4\n" + " add r2, r3, #0\n" + " strh r2, [r1]\n" + " ldr r1, ._895 + 8\n" + " add r0, r0, r1\n" + " strh r2, [r0]\n" + " bx lr\n" + "._896:\n" + " .align 2, 0\n" + "._895:\n" + " .word 0x600c772\n" + " .word 0x1016\n" + " .word 0x600c7b2\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012B70() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add sp, sp, #0xfffffffc\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " lsl r1, r1, #0x18\n" + " lsr r6, r1, #0x18\n" + " cmp r6, #0\n" + " beq ._897 @cond_branch\n" + " mov r4, #0x1\n" + " str r4, [sp]\n" + " mov r0, #0x18\n" + " mov r1, #0x1c\n" + " mov r2, #0x1d\n" + " mov r3, #0x21\n" + " bl sub_802BBD4\n" + " bl debug_sub_80128B4\n" + " add r0, r5, #0\n" + " bl debug_sub_8012938\n" + " add r0, r5, #0\n" + " bl debug_sub_80129F8\n" + " ldr r1, ._899\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " strh r4, [r0, #0x8]\n" + " b ._898\n" + "._900:\n" + " .align 2, 0\n" + "._899:\n" + " .word gTasks\n" + "._897:\n" + " str r6, [sp]\n" + " mov r0, #0x18\n" + " mov r1, #0x1c\n" + " mov r2, #0x1d\n" + " mov r3, #0x21\n" + " bl sub_802BBD4\n" + " ldr r0, ._901\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " mov r0, #0x2\n" + " strh r0, [r4, #0x8]\n" + " ldr r5, ._901 + 4\n" + " ldr r1, ._901 + 8\n" + " mov r2, #0xa4\n" + " lsl r2, r2, #0x2\n" + " mov r0, #0x1d\n" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " mov r3, #0x1a\n" + " bl InitWindow\n" + " add r0, r5, #0\n" + " bl sub_8002F44\n" + " strh r6, [r4, #0xe]\n" + " mov r0, #0x0\n" + " bl debug_sub_8012B2C\n" + "._898:\n" + " add sp, sp, #0x4\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._902:\n" + " .align 2, 0\n" + "._901:\n" + " .word gTasks\n" + " .word gUnknown_03004210\n" + " .word UnkDebug0+0x422\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012C08() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " add sp, sp, #0xfffffffc\n" + " add r4, r1, #0\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " mov r0, #0x0\n" + " mov r1, #0x9\n" + " bl debug_sub_8010A7C\n" + " ldr r7, ._905\n" + " ldr r5, ._905 + 4\n" + " mov r0, #0x23\n" + " mov r8, r0\n" + " str r0, [sp]\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " mov r2, #0x90\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r7, #0\n" + " bl sub_8002F44\n" + " mov r0, #0x0\n" + " mov r1, #0x7\n" + " bl debug_sub_8010A7C\n" + " mov r0, #0x25\n" + " str r0, [sp]\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " mov r2, #0xa2\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " add r0, r7, #0\n" + " bl sub_8002F44\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, #0x18\n" + " mov r1, #0x1c\n" + " mov r2, #0x1d\n" + " mov r3, #0x21\n" + " bl sub_802BBD4\n" + " cmp r4, #0\n" + " beq ._903 @cond_branch\n" + " ldr r1, ._905 + 8\n" + " lsl r4, r6, #0x2\n" + " add r0, r4, r6\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0x4\n" + " strh r1, [r0, #0x8]\n" + " ldr r1, ._905 + 12\n" + " mov r0, r8\n" + " str r0, [sp]\n" + " add r0, r7, #0\n" + " mov r2, #0x90\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + " b ._904\n" + "._906:\n" + " .align 2, 0\n" + "._905:\n" + " .word gUnknown_03004210\n" + " .word gBattleTextBuff1\n" + " .word gTasks\n" + " .word gUnknown_Debug_821F7F3\n" + "._903:\n" + " ldr r1, ._907\n" + " lsl r4, r6, #0x2\n" + " add r0, r4, r6\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0x3\n" + " strh r1, [r0, #0x8]\n" + " ldr r1, ._907 + 4\n" + " mov r0, r8\n" + " str r0, [sp]\n" + " add r0, r7, #0\n" + " mov r2, #0x90\n" + " mov r3, #0x2\n" + " bl InitWindow\n" + "._904:\n" + " add r5, r4, #0\n" + " ldr r4, ._907 + 8\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " ldr r1, ._907 + 12\n" + " mov r2, #0xa4\n" + " lsl r2, r2, #0x2\n" + " mov r0, #0x1d\n" + " str r0, [sp]\n" + " add r0, r4, #0\n" + " mov r3, #0x1a\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " ldr r1, ._907\n" + " add r0, r5, r6\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0x1\n" + " strh r1, [r0, #0xe]\n" + " mov r0, #0x1\n" + " bl debug_sub_8012B2C\n" + " add sp, sp, #0x4\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._908:\n" + " .align 2, 0\n" + "._907:\n" + " .word gTasks\n" + " .word UnkDebug0+0x432\n" + " .word gUnknown_03004210\n" + " .word gUnknown_08400D7A\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012D10() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffffc\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " ldr r1, ._911\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0x8\n" + " ldsh r0, [r0, r1]\n" + " cmp r0, #0x4\n" + " bls ._909 @cond_branch\n" + " b ._1067\n" + "._909:\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._911 + 4\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._912:\n" + " .align 2, 0\n" + "._911:\n" + " .word gTasks\n" + " .word ._913\n" + "._913:\n" + " .word ._914\n" + " .word ._915\n" + " .word ._916\n" + " .word ._917\n" + " .word ._918\n" + "._914:\n" + " bl debug_sub_80128B4\n" + " add r0, r5, #0\n" + " bl debug_sub_8012938\n" + " ldr r4, ._920\n" + " ldr r1, ._920 + 4\n" + " mov r2, #0xc8\n" + " lsl r2, r2, #0x1\n" + " mov r0, #0x23\n" + " str r0, [sp]\n" + " add r0, r4, #0\n" + " mov r3, #0x13\n" + " bl InitWindow\n" + " add r0, r4, #0\n" + " bl sub_8002F44\n" + " ldr r1, ._920 + 8\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldrh r1, [r0, #0x8]\n" + " add r1, r1, #0x1\n" + " strh r1, [r0, #0x8]\n" + " ldrb r0, [r0, #0xc]\n" + " b ._919\n" + "._921:\n" + " .align 2, 0\n" + "._920:\n" + " .word gUnknown_03004210\n" + " .word UnkDebug0+0x405\n" + " .word gTasks\n" + "._915:\n" + " ldr r2, ._924\n" + " ldrh r1, [r2, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._922 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._924 + 4\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xc]\n" + " bl nullsub_8\n" + " ldrh r1, [r4, #0xc]\n" + " mov r0, #0x3\n" + " neg r0, r0\n" + " and r0, r0, r1\n" + " b ._931\n" + "._925:\n" + " .align 2, 0\n" + "._924:\n" + " .word gMain\n" + " .word gTasks\n" + "._922:\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._926 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._928\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xc]\n" + " bl nullsub_8\n" + " ldrh r1, [r4, #0xc]\n" + " mov r0, #0x2\n" + " b ._927\n" + "._929:\n" + " .align 2, 0\n" + "._928:\n" + " .word gTasks\n" + "._926:\n" + " mov r0, #0x20\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._930 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._932\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xc]\n" + " bl nullsub_8\n" + " ldrh r1, [r4, #0xc]\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " and r0, r0, r1\n" + " b ._931\n" + "._933:\n" + " .align 2, 0\n" + "._932:\n" + " .word gTasks\n" + "._930:\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._934 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._936\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xc]\n" + " bl nullsub_8\n" + " ldrh r1, [r4, #0xc]\n" + " mov r0, #0x1\n" + "._927:\n" + " orr r0, r0, r1\n" + "._931:\n" + " strh r0, [r4, #0xc]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + "._919:\n" + " mov r1, #0x0\n" + " bl sub_802E3E4\n" + " b ._1067\n" + "._937:\n" + " .align 2, 0\n" + "._936:\n" + " .word gTasks\n" + "._934:\n" + " ldrh r1, [r2, #0x30]\n" + " mov r4, #0x1\n" + " add r0, r4, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._938 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._943\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r2, #0xc\n" + " ldsh r0, [r0, r2]\n" + " cmp r0, #0x1\n" + " beq ._939 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._940 @cond_branch\n" + " cmp r0, #0\n" + " beq ._941 @cond_branch\n" + " b ._1067\n" + "._944:\n" + " .align 2, 0\n" + "._943:\n" + " .word gTasks\n" + "._940:\n" + " cmp r0, #0x2\n" + " beq ._945 @cond_branch\n" + "._990:\n" + " cmp r0, #0x3\n" + " bne ._946 @cond_branch\n" + " b ._1014\n" + "._946:\n" + " b ._1067\n" + "._941:\n" + " ldr r1, ._952\n" + " ldr r0, ._952 + 4\n" + " ldrh r0, [r0]\n" + " sub r0, r0, #0x1\n" + " add r1, r0, r1\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x3f\n" + " bls ._949 @cond_branch\n" + " b ._1067\n" + "._949:\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " b ._1019\n" + "._953:\n" + " .align 2, 0\n" + "._952:\n" + " .word gUnknown_02023A14+0x13e\n" + " .word gCurrentMove\n" + "._939:\n" + " mov r0, #0x1\n" + " b ._997\n" + "._945:\n" + " ldr r1, ._957\n" + " ldrh r2, [r1]\n" + " mov r0, #0xcd\n" + " lsl r0, r0, #0x1\n" + " cmp r2, r0\n" + " bhi ._955 @cond_branch\n" + " add r0, r2, #1\n" + "._979:\n" + " strh r0, [r1]\n" + " b ._1025\n" + "._958:\n" + " .align 2, 0\n" + "._957:\n" + " .word gCurrentMove\n" + "._955:\n" + " strh r4, [r1]\n" + " b ._1025\n" + "._938:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._960 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._966\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0xc\n" + " ldsh r0, [r0, r1]\n" + " cmp r0, #0x1\n" + " bne ._961 @cond_branch\n" + " b ._1007\n" + "._961:\n" + " cmp r0, #0x1\n" + " bgt ._963 @cond_branch\n" + " cmp r0, #0\n" + " beq ._964 @cond_branch\n" + " b ._1067\n" + "._967:\n" + " .align 2, 0\n" + "._966:\n" + " .word gTasks\n" + "._963:\n" + " cmp r0, #0x2\n" + " beq ._968 @cond_branch\n" + " b ._990\n" + "._964:\n" + " ldr r1, ._973\n" + " ldr r0, ._973 + 4\n" + " ldrh r0, [r0]\n" + " sub r0, r0, #0x1\n" + " add r1, r0, r1\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " bne ._970 @cond_branch\n" + " b ._1067\n" + "._970:\n" + " sub r0, r0, #0x1\n" + " strb r0, [r1]\n" + " b ._1019\n" + "._974:\n" + " .align 2, 0\n" + "._973:\n" + " .word gUnknown_02023A14+0x13e\n" + " .word gCurrentMove\n" + "._968:\n" + " ldr r1, ._977\n" + " ldrh r0, [r1]\n" + " cmp r0, #0x1\n" + " bls ._975 @cond_branch\n" + " sub r0, r0, #0x1\n" + " b ._979\n" + "._978:\n" + " .align 2, 0\n" + "._977:\n" + " .word gCurrentMove\n" + "._975:\n" + " ldr r2, ._980\n" + " add r0, r2, #0\n" + " b ._979\n" + "._981:\n" + " .align 2, 0\n" + "._980:\n" + " .word 0x19b\n" + "._960:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._982 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._987\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0xc\n" + " ldsh r0, [r0, r1]\n" + " cmp r0, #0x1\n" + " beq ._983 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._984 @cond_branch\n" + " cmp r0, #0\n" + " beq ._985 @cond_branch\n" + " b ._1067\n" + "._988:\n" + " .align 2, 0\n" + "._987:\n" + " .word gTasks\n" + "._984:\n" + " cmp r0, #0x2\n" + " beq ._989 @cond_branch\n" + " b ._990\n" + "._985:\n" + " ldr r3, ._995\n" + " ldr r2, ._995 + 4\n" + " ldrh r0, [r2]\n" + " sub r0, r0, #0x1\n" + " add r1, r0, r3\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x3f\n" + " bls ._991 @cond_branch\n" + " b ._1067\n" + "._991:\n" + " add r0, r0, #0x8\n" + " strb r0, [r1]\n" + " ldrh r0, [r2]\n" + " sub r0, r0, #0x1\n" + " add r1, r0, r3\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x40\n" + " bls ._1019 @cond_branch\n" + " mov r0, #0x40\n" + " strb r0, [r1]\n" + " b ._1019\n" + "._996:\n" + " .align 2, 0\n" + "._995:\n" + " .word gUnknown_02023A14+0x13e\n" + " .word gCurrentMove\n" + "._983:\n" + " mov r0, #0x1\n" + " b ._997\n" + "._989:\n" + " ldr r3, ._1000\n" + " ldrh r2, [r3]\n" + " add r1, r2, #0\n" + " add r1, r1, #0xa\n" + " ldr r0, ._1000 + 4\n" + " cmp r1, r0\n" + " bgt ._998 @cond_branch\n" + " strh r1, [r3]\n" + " b ._1025\n" + "._1001:\n" + " .align 2, 0\n" + "._1000:\n" + " .word gCurrentMove\n" + " .word 0x19b\n" + "._998:\n" + " ldr r1, ._1003\n" + " add r0, r2, r1\n" + " strh r0, [r3]\n" + " b ._1025\n" + "._1004:\n" + " .align 2, 0\n" + "._1003:\n" + " .word 0xfffffe70\n" + "._982:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._1005 @cond_branch\n" + " b ._1067\n" + "._1005:\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._1011\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r2, #0xc\n" + " ldsh r3, [r0, r2]\n" + " cmp r3, #0x1\n" + " beq ._1007 @cond_branch\n" + " cmp r3, #0x1\n" + " bgt ._1008 @cond_branch\n" + " cmp r3, #0\n" + " beq ._1009 @cond_branch\n" + " b ._1067\n" + "._1012:\n" + " .align 2, 0\n" + "._1011:\n" + " .word gTasks\n" + "._1008:\n" + " cmp r3, #0x2\n" + " beq ._1013 @cond_branch\n" + " cmp r3, #0x3\n" + " beq ._1014 @cond_branch\n" + " b ._1067\n" + "._1009:\n" + " ldr r1, ._1020\n" + " ldr r0, ._1020 + 4\n" + " ldrh r0, [r0]\n" + " sub r0, r0, #0x1\n" + " add r2, r0, r1\n" + " ldrb r0, [r2]\n" + " add r1, r0, #0\n" + " cmp r1, #0\n" + " bne ._1016 @cond_branch\n" + " b ._1067\n" + "._1016:\n" + " cmp r1, #0x8\n" + " bls ._1018 @cond_branch\n" + " sub r0, r0, #0x8\n" + " strb r0, [r2]\n" + " b ._1019\n" + "._1021:\n" + " .align 2, 0\n" + "._1020:\n" + " .word gUnknown_02023A14+0x13e\n" + " .word gCurrentMove\n" + "._1018:\n" + " strb r3, [r2]\n" + "._1019:\n" + " add r0, r5, #0\n" + " bl debug_sub_8012938\n" + " b ._1067\n" + "._1007:\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + "._997:\n" + " add r1, r5, #0\n" + " bl debug_sub_8012AC0\n" + " b ._1067\n" + "._1013:\n" + " ldr r2, ._1026\n" + " ldrh r0, [r2]\n" + " add r1, r0, #0\n" + " sub r1, r1, #0xa\n" + " cmp r1, #0x1\n" + " ble ._1024 @cond_branch\n" + " strh r1, [r2]\n" + " b ._1025\n" + "._1027:\n" + " .align 2, 0\n" + "._1026:\n" + " .word gCurrentMove\n" + "._1024:\n" + " mov r1, #0xc8\n" + " lsl r1, r1, #0x1\n" + " add r0, r0, r1\n" + " strh r0, [r2]\n" + "._1025:\n" + " bl debug_sub_80128B4\n" + " add r0, r5, #0\n" + " bl debug_sub_8012938\n" + " add r0, r5, #0\n" + " bl debug_sub_80129F8\n" + " b ._1067\n" + "._1014:\n" + " add r0, r5, #0\n" + " mov r1, #0x0\n" + " bl debug_sub_8012B70\n" + " b ._1067\n" + "._916:\n" + " ldr r0, ._1032\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1030 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1032 + 4\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xe]\n" + " bl debug_sub_8012B4C\n" + " mov r0, #0x0\n" + " b ._1055\n" + "._1033:\n" + " .align 2, 0\n" + "._1032:\n" + " .word gMain\n" + " .word gTasks\n" + "._1030:\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._1046 @cond_branch\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1035 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1037\n" + " lsl r1, r5, #0x2\n" + " add r1, r1, r5\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r0\n" + " ldrb r1, [r1, #0xe]\n" + " add r0, r5, #0\n" + " bl debug_sub_8012C08\n" + " b ._1067\n" + "._1038:\n" + " .align 2, 0\n" + "._1037:\n" + " .word gTasks\n" + "._1035:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._1039 @cond_branch\n" + " b ._1067\n" + "._1039:\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " b ._1063\n" + "._917:\n" + " ldr r0, ._1044\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1042 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1044 + 4\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xe]\n" + " bl debug_sub_8012B4C\n" + " mov r0, #0x0\n" + " b ._1055\n" + "._1045:\n" + " .align 2, 0\n" + "._1044:\n" + " .word gMain\n" + " .word gTasks\n" + "._1042:\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._1046 @cond_branch\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1047 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1050\n" + " lsl r1, r5, #0x2\n" + " add r1, r1, r5\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r0\n" + " mov r2, #0xe\n" + " ldsh r0, [r1, r2]\n" + " cmp r0, #0\n" + " bne ._1063 @cond_branch\n" + " ldr r1, ._1050 + 4\n" + " ldr r2, ._1050 + 8\n" + " mov r0, #0x1f\n" + " bl debug_sub_80132C8\n" + " b ._1063\n" + "._1051:\n" + " .align 2, 0\n" + "._1050:\n" + " .word gTasks\n" + " .word gUnknown_02023A14+0x13e\n" + " .word 0x19b\n" + "._1047:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1067 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " b ._1063\n" + "._918:\n" + " ldr r0, ._1056\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1054 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1056 + 4\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xe]\n" + " bl debug_sub_8012B4C\n" + " mov r0, #0x0\n" + " b ._1055\n" + "._1057:\n" + " .align 2, 0\n" + "._1056:\n" + " .word gMain\n" + " .word gTasks\n" + "._1054:\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1058 @cond_branch\n" + "._1046:\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1060\n" + " lsl r4, r5, #0x2\n" + " add r4, r4, r5\n" + " lsl r4, r4, #0x3\n" + " add r4, r4, r0\n" + " ldrb r0, [r4, #0xe]\n" + " bl debug_sub_8012B4C\n" + " mov r0, #0x1\n" + "._1055:\n" + " strh r0, [r4, #0xe]\n" + " bl debug_sub_8012B2C\n" + " b ._1067\n" + "._1061:\n" + " .align 2, 0\n" + "._1060:\n" + " .word gTasks\n" + "._1058:\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1062 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r0, ._1065\n" + " lsl r1, r5, #0x2\n" + " add r1, r1, r5\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r0\n" + " mov r2, #0xe\n" + " ldsh r0, [r1, r2]\n" + " cmp r0, #0\n" + " bne ._1063 @cond_branch\n" + " ldr r1, ._1065 + 4\n" + " ldr r2, ._1065 + 8\n" + " mov r0, #0x1f\n" + " bl debug_sub_8013294\n" + "._1063:\n" + " add r0, r5, #0\n" + " mov r1, #0x1\n" + " bl debug_sub_8012B70\n" + " b ._1067\n" + "._1066:\n" + " .align 2, 0\n" + "._1065:\n" + " .word gTasks\n" + " .word gUnknown_02023A14+0x13e\n" + " .word 0x19b\n" + "._1062:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1067 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " add r0, r5, #0\n" + " mov r1, #0x1\n" + " bl debug_sub_8012B70\n" + "._1067:\n" + " add sp, sp, #0x4\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8013240() +{ + asm( + " push {lr}\n" + " bl gScriptFuncs_End+0x2fec\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " beq ._1068 @cond_branch\n" + " mov r0, #0x1\n" + " b ._1069\n" + "._1068:\n" + " mov r0, #0x0\n" + "._1069:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8013258() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r6, r1, #0\n" + " add r5, r2, #0\n" + " b ._1070\n" + "._1072:\n" + " ldr r0, ._1074\n" + " add r5, r5, r0\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x5\n" + " add r6, r6, r0\n" + " add r0, r4, #1\n" + "._1070:\n" + " lsl r0, r0, #0x10\n" + " lsr r4, r0, #0x10\n" + " add r0, r4, #0\n" + " add r1, r6, #0\n" + " bl gScriptFuncs_End+0x2f60\n" + " cmp r0, #0\n" + " bne ._1071 @cond_branch\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x5\n" + " cmp r5, r0\n" + " bhi ._1072 @cond_branch\n" + " mov r0, #0x1\n" + " b ._1073\n" + "._1075:\n" + " .align 2, 0\n" + "._1074:\n" + " .word 0xfffff000\n" + "._1071:\n" + " mov r0, #0x0\n" + "._1073:\n" + " pop {r4, r5, r6}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8013294() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r5, r1, #0\n" + " add r6, r2, #0\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " bl debug_sub_8013240\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._1076 @cond_branch\n" + " bl gScriptFuncs_End+0x19f4\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " add r2, r6, #0\n" + " bl debug_sub_8013258\n" + " add r4, r0, #0\n" + " bl gScriptFuncs_End+0x1a70\n" + " add r0, r4, #0\n" + " b ._1077\n" + "._1076:\n" + " mov r0, #0x0\n" + "._1077:\n" + " pop {r4, r5, r6}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80132C8() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r5, r1, #0\n" + " add r6, r2, #0\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " bl debug_sub_8013240\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._1078 @cond_branch\n" + " add r0, r4, #0\n" + " mov r1, #0x0\n" + " add r2, r5, #0\n" + " add r3, r6, #0\n" + " bl gScriptFuncs_End+0x2d64\n" + "._1078:\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} +#endif + void oac_poke_opponent(struct Sprite *sprite) { sprite->callback = sub_8010278; @@ -1554,6 +8880,269 @@ void sub_8010800(void) gBattleMainFunc = bc_8012FAC; } +#if DEBUG +__attribute__((naked)) +void debug_sub_80138CC() +{ + asm( + " push {lr}\n" + " ldr r0, ._1167\n" + " ldrb r0, [r0]\n" + " bl GetBankSide\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._1163 @cond_branch\n" + " b ._1186\n" + "._1163:\n" + " ldr r1, ._1167 + 4\n" + " ldr r2, ._1167 + 8\n" + " add r0, r1, r2\n" + " ldrb r0, [r0]\n" + " add r2, r1, #0\n" + " cmp r0, #0x4\n" + " bls ._1165 @cond_branch\n" + " b ._1186\n" + "._1165:\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._1167 + 12\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._1168:\n" + " .align 2, 0\n" + "._1167:\n" + " .word gActiveBank\n" + " .word +0x2000000\n" + " .word 0x160fd\n" + " .word ._1169\n" + "._1169:\n" + " .word ._1170\n" + " .word ._1171\n" + " .word ._1172\n" + " .word ._1173\n" + " .word ._1174\n" + "._1170:\n" + " ldr r1, ._1177\n" + " ldr r0, ._1177 + 4\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r1\n" + " ldr r1, [r0]\n" + " ldr r0, ._1177 + 8\n" + " cmp r1, r0\n" + " bne ._1186 @cond_branch\n" + " ldr r0, ._1177 + 12\n" + " add r1, r2, r0\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " b ._1187\n" + "._1178:\n" + " .align 2, 0\n" + "._1177:\n" + " .word gBattleBankFunc\n" + " .word gActiveBank\n" + " .word sub_802C098+1\n" + " .word 0x160fd\n" + "._1171:\n" + " ldr r1, ._1180\n" + " mov r0, #0x1\n" + " strh r0, [r1, #0x2c]\n" + " strh r0, [r1, #0x2e]\n" + " ldr r0, ._1180 + 4\n" + " add r1, r2, r0\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " ldr r0, ._1180 + 8\n" + " add r1, r2, r0\n" + " mov r0, #0x80\n" + " b ._1187\n" + "._1181:\n" + " .align 2, 0\n" + "._1180:\n" + " .word gMain\n" + " .word 0x160fd\n" + " .word 0x160fe\n" + "._1172:\n" + " ldr r0, ._1184\n" + " add r3, r2, r0\n" + " ldrb r0, [r3]\n" + " sub r0, r0, #0x1\n" + " strb r0, [r3]\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._1186 @cond_branch\n" + " ldr r1, ._1184 + 4\n" + " mov r0, #0x1\n" + " strh r0, [r1, #0x2c]\n" + " strh r0, [r1, #0x2e]\n" + " ldr r0, ._1184 + 8\n" + " add r1, r2, r0\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " mov r0, #0x80\n" + " strb r0, [r3]\n" + " b ._1186\n" + "._1185:\n" + " .align 2, 0\n" + "._1184:\n" + " .word 0x160fe\n" + " .word gMain\n" + " .word 0x160fd\n" + "._1173:\n" + " ldr r0, ._1188\n" + " add r1, r2, r0\n" + " ldrb r0, [r1]\n" + " sub r0, r0, #0x1\n" + " strb r0, [r1]\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._1186 @cond_branch\n" + " ldr r1, ._1188 + 4\n" + " mov r0, #0x1\n" + " strh r0, [r1, #0x2c]\n" + " strh r0, [r1, #0x2e]\n" + " ldr r0, ._1188 + 8\n" + " add r1, r2, r0\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " b ._1187\n" + "._1189:\n" + " .align 2, 0\n" + "._1188:\n" + " .word 0x160fe\n" + " .word gMain\n" + " .word 0x160fd\n" + "._1174:\n" + " ldr r0, ._1190\n" + " add r1, r2, r0\n" + " mov r0, #0x0\n" + "._1187:\n" + " strb r0, [r1]\n" + "._1186:\n" + " pop {r0}\n" + " bx r0\n" + "._1191:\n" + " .align 2, 0\n" + "._1190:\n" + " .word 0x160fd\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80139E4() +{ + asm( + " push {r4, r5, lr}\n" + " ldr r0, ._1198\n" + " ldrb r1, [r0]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " cmp r4, #0\n" + " beq ._1192 @cond_branch\n" + " ldr r2, ._1198 + 4\n" + " mov r0, #0x0\n" + " strb r0, [r2]\n" + " ldr r1, ._1198 + 8\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " beq ._1193 @cond_branch\n" + " add r4, r2, #0\n" + " add r5, r1, #0\n" + "._1194:\n" + " bl debug_sub_80138CC\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldrb r1, [r5]\n" + " cmp r0, r1\n" + " bcc ._1194 @cond_branch\n" + "._1193:\n" + " ldr r0, ._1198 + 12\n" + " ldr r0, [r0]\n" + " bl gScriptFuncs_End+0x3cf4\n" + " ldr r1, ._1198 + 4\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " ldr r0, ._1198 + 8\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._1200 @cond_branch\n" + " ldr r5, ._1198 + 16\n" + " add r4, r1, #0\n" + "._1196:\n" + " ldrb r0, [r4]\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r5\n" + " ldr r0, [r0]\n" + " bl gScriptFuncs_End+0x3cf4\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " ldr r1, ._1198 + 8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldrb r1, [r1]\n" + " cmp r0, r1\n" + " bcc ._1196 @cond_branch\n" + " b ._1200\n" + "._1199:\n" + " .align 2, 0\n" + "._1198:\n" + " .word gUnknown_02023A14+0x50\n" + " .word gActiveBank\n" + " .word gNoOfAllBanks\n" + " .word gBattleMainFunc\n" + " .word gBattleBankFunc\n" + "._1192:\n" + " ldr r0, ._1202\n" + " ldr r0, [r0]\n" + " bl gScriptFuncs_End+0x3cf4\n" + " ldr r1, ._1202 + 4\n" + " strb r4, [r1]\n" + " ldr r0, ._1202 + 8\n" + " ldrb r0, [r0]\n" + " cmp r4, r0\n" + " bcs ._1200 @cond_branch\n" + " ldr r5, ._1202 + 12\n" + " add r4, r1, #0\n" + "._1201:\n" + " ldrb r0, [r4]\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r5\n" + " ldr r0, [r0]\n" + " bl gScriptFuncs_End+0x3cf4\n" + " ldrb r0, [r4]\n" + " add r0, r0, #0x1\n" + " strb r0, [r4]\n" + " ldr r1, ._1202 + 8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldrb r1, [r1]\n" + " cmp r0, r1\n" + " bcc ._1201 @cond_branch\n" + "._1200:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._1203:\n" + " .align 2, 0\n" + "._1202:\n" + " .word gBattleMainFunc\n" + " .word gActiveBank\n" + " .word gNoOfAllBanks\n" + " .word gBattleBankFunc\n" + "\n" + ); +} +#endif + void sub_8010824(void) { gBattleMainFunc(); @@ -1562,6 +9151,380 @@ void sub_8010824(void) gBattleBankFunc[gActiveBank](); } +#if DEBUG +__attribute__((naked)) +void sub_8010874() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " mov r0, #0x0\n" + " bl TurnValuesCleanUp\n" + " bl SpecialStatusesClear\n" + " mov r2, #0x0\n" + " mov r3, #0x0\n" + " ldr r0, ._1215\n" + " mov sl, r0\n" + " ldr r1, ._1215 + 4\n" + " mov r9, r1\n" + " ldr r4, ._1215 + 8\n" + " mov r8, r4\n" + " ldr r0, ._1215 + 12\n" + " mov ip, r0\n" + " ldr r4, ._1215 + 16\n" + " mov r5, #0x0\n" + " ldr r7, ._1215 + 20\n" + " ldr r6, ._1215 + 24\n" + "._1205:\n" + " ldr r0, ._1215 + 28\n" + " add r0, r5, r0\n" + " str r3, [r0]\n" + " mov r1, #0x0\n" + "._1204:\n" + " add r0, r4, r1\n" + " strb r3, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, #0x1b\n" + " bls ._1204 @cond_branch\n" + " mov r0, #0x2\n" + " strb r0, [r4, #0x16]\n" + " ldr r1, ._1215 + 32\n" + " add r0, r2, r1\n" + " strb r3, [r0]\n" + " mov r0, ip\n" + " strh r3, [r0]\n" + " mov r1, r8\n" + " strh r3, [r1]\n" + " mov r0, r9\n" + " strh r3, [r0]\n" + " mov r1, sl\n" + " strh r3, [r1]\n" + " ldr r0, ._1215 + 36\n" + " add r1, r2, r0\n" + " mov r0, #0xff\n" + " strb r0, [r1]\n" + " strh r3, [r6]\n" + " strh r3, [r7]\n" + " ldr r1, ._1215 + 40\n" + " add r0, r5, r1\n" + " str r3, [r0]\n" + " mov r0, #0x2\n" + " add sl, sl, r0\n" + " add r9, r9, r0\n" + " add r8, r8, r0\n" + " add ip, ip, r0\n" + " add r4, r4, #0x1c\n" + " add r5, r5, #0x4\n" + " add r7, r7, #0x2\n" + " add r6, r6, #0x2\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x3\n" + " ble ._1205 @cond_branch\n" + " mov r5, #0x0\n" + " ldr r3, ._1215 + 44\n" + " ldr r4, ._1215 + 48\n" + " mov r2, #0x1\n" + "._1207:\n" + " strh r5, [r4]\n" + " mov r1, #0x0\n" + "._1206:\n" + " add r0, r3, r1\n" + " strb r5, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, #0xb\n" + " bls ._1206 @cond_branch\n" + " add r3, r3, #0xc\n" + " add r4, r4, #0x2\n" + " sub r2, r2, #0x1\n" + " cmp r2, #0\n" + " bge ._1207 @cond_branch\n" + " mov r1, #0x0\n" + " ldr r2, ._1215 + 52\n" + " strb r1, [r2]\n" + " ldr r3, ._1215 + 56\n" + " strb r1, [r3]\n" + " ldr r4, ._1215 + 60\n" + " strh r1, [r4]\n" + " ldr r1, ._1215 + 64\n" + " mov r2, #0x0\n" + " mov r3, #0x0\n" + "._1208:\n" + " add r0, r1, r2\n" + " strb r3, [r0]\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x2b\n" + " bls ._1208 @cond_branch\n" + " mov r0, #0x0\n" + " ldr r1, ._1215 + 68\n" + " str r0, [r1]\n" + " ldr r2, ._1215 + 72\n" + " ldrh r1, [r2]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._1210 @cond_branch\n" + " ldr r3, ._1215 + 76\n" + " ldrb r1, [r3, #0x15]\n" + " mov r0, #0x4\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._1210 @cond_branch\n" + " mov r0, #0x80\n" + " ldr r4, ._1215 + 68\n" + " str r0, [r4]\n" + "._1210:\n" + " ldr r1, ._1215 + 76\n" + " ldrb r0, [r1, #0x15]\n" + " lsl r0, r0, #0x1e\n" + " lsr r0, r0, #0x1f\n" + " ldr r3, ._1215 + 80\n" + " ldr r4, ._1215 + 84\n" + " add r2, r3, r4\n" + " mov r1, #0x0\n" + " strb r0, [r2]\n" + " ldr r0, ._1215 + 88\n" + " strb r1, [r0]\n" + " ldr r2, ._1215 + 92\n" + " strb r1, [r2]\n" + " ldr r3, ._1215 + 96\n" + " str r1, [r3]\n" + " mov r2, #0x0\n" + " ldr r4, ._1215 + 100\n" + " strh r1, [r4]\n" + " ldr r1, ._1215 + 80\n" + " ldr r3, ._1215 + 104\n" + " add r0, r1, r3\n" + " strb r2, [r0]\n" + " ldr r4, ._1215 + 108\n" + " add r0, r1, r4\n" + " strb r2, [r0]\n" + " ldr r1, ._1215 + 112\n" + " mov r2, #0x0\n" + " add r0, r1, #7\n" + "._1211:\n" + " strb r2, [r0]\n" + " sub r0, r0, #0x1\n" + " cmp r0, r1\n" + " bge ._1211 @cond_branch\n" + " mov r5, #0x0\n" + " ldr r0, ._1215 + 116\n" + " strh r5, [r0]\n" + " mov r0, #0x0\n" + " ldr r1, ._1215 + 120\n" + " str r0, [r1]\n" + " ldr r2, ._1215 + 124\n" + " strh r0, [r2]\n" + " ldr r4, ._1215 + 80\n" + " ldr r3, ._1215 + 128\n" + " add r0, r4, r3\n" + " strb r5, [r0]\n" + " ldr r1, ._1215 + 132\n" + " add r0, r4, r1\n" + " strb r5, [r0]\n" + " ldr r2, ._1215 + 136\n" + " strb r5, [r2]\n" + " ldr r3, ._1215 + 140\n" + " strb r5, [r3]\n" + " sub r1, r1, #0x29\n" + " add r0, r4, r1\n" + " strb r5, [r0]\n" + " ldr r2, ._1215 + 144\n" + " add r0, r4, r2\n" + " strb r5, [r0]\n" + " ldr r3, ._1215 + 148\n" + " add r0, r4, r3\n" + " strb r5, [r0]\n" + " ldr r0, ._1215 + 152\n" + " mov r1, #0xb\n" + " bl GetMonData\n" + " ldr r2, ._1215 + 156\n" + " lsl r1, r0, #0x3\n" + " sub r1, r1, r0\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r2\n" + " ldrb r1, [r1, #0x8]\n" + " mov r0, #0x64\n" + " mul r0, r0, r1\n" + " ldr r1, ._1215 + 160\n" + " bl gScriptFuncs_End+0x3d30\n" + " ldr r2, ._1215 + 164\n" + " add r1, r4, r2\n" + " strb r0, [r1]\n" + " ldr r3, ._1215 + 168\n" + " add r1, r4, r3\n" + " mov r0, #0x3\n" + " strb r0, [r1]\n" + " ldr r1, ._1215 + 172\n" + " add r0, r4, r1\n" + " strb r5, [r0]\n" + " sub r2, r2, #0x33\n" + " add r1, r4, r2\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " mov r2, #0x0\n" + " mov r1, #0x0\n" + "._1212:\n" + " ldr r3, ._1215 + 176\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r3, r3, #0x20\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r3, r3, #0x1c\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r3, r3, #0x8\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r3, r3, #0x10\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r3, r3, #0x8\n" + " add r0, r2, r3\n" + " add r0, r0, r4\n" + " strb r1, [r0]\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x7\n" + " ble ._1212 @cond_branch\n" + " ldr r4, ._1215 + 80\n" + " ldr r1, ._1215 + 180\n" + " add r0, r4, r1\n" + " mov r2, #0x0\n" + " mov r1, #0x6\n" + " strb r1, [r0]\n" + " sub r3, r3, #0x3f\n" + " add r0, r4, r3\n" + " strb r1, [r0]\n" + " ldr r1, ._1215 + 184\n" + " add r0, r4, r1\n" + " strb r2, [r0]\n" + " ldr r3, ._1215 + 188\n" + " mov r1, #0x0\n" + " mov r2, #0xa\n" + " add r0, r3, #0\n" + " add r0, r0, #0x40\n" + "._1213:\n" + " strb r1, [r0]\n" + " sub r0, r0, #0x1\n" + " sub r2, r2, #0x1\n" + " cmp r2, #0\n" + " bge ._1213 @cond_branch\n" + " mov r1, #0x0\n" + " strb r1, [r3, #0x13]\n" + " strb r1, [r3]\n" + " strb r1, [r3, #0x1]\n" + " strb r1, [r3, #0x2]\n" + " strb r1, [r3, #0x3]\n" + " strb r1, [r3, #0x4]\n" + " ldrb r2, [r3, #0x5]\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " mov r2, #0x3\n" + " neg r2, r2\n" + " and r0, r0, r2\n" + " strb r0, [r3, #0x5]\n" + " strh r1, [r3, #0x20]\n" + " strh r1, [r3, #0x22]\n" + " strh r1, [r3, #0x24]\n" + " strh r1, [r3, #0x6]\n" + " strh r1, [r3, #0x26]\n" + " strh r1, [r3, #0x28]\n" + " mov r2, #0x0\n" + " add r5, r3, #0\n" + " add r5, r5, #0x8\n" + " mov r4, #0x0\n" + " add r1, r3, #0\n" + " add r1, r1, #0x14\n" + "._1214:\n" + " add r0, r2, r5\n" + " strb r4, [r0]\n" + " strb r4, [r1]\n" + " strb r4, [r1, #0x16]\n" + " add r1, r1, #0x1\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x9\n" + " ble ._1214 @cond_branch\n" + " ldr r2, ._1215 + 80\n" + " ldr r3, ._1215 + 192\n" + " add r0, r2, r3\n" + " mov r1, #0x0\n" + " strb r1, [r0]\n" + " ldr r4, ._1215 + 196\n" + " add r0, r2, r4\n" + " strb r1, [r0]\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._1216:\n" + " .align 2, 0\n" + "._1215:\n" + " .word gUnknown_02024C4C\n" + " .word gUnknown_02024C44\n" + " .word gMoveHitWith\n" + " .word gLastUsedMove\n" + " .word gDisableStructs\n" + " .word gUnknown_02024C2C\n" + " .word gLockedMove\n" + " .word gStatuses3\n" + " .word gUnknown_02024C70\n" + " .word gUnknown_02024C5C\n" + " .word +0x2017100\n" + " .word gSideTimer\n" + " .word gSideAffecting\n" + " .word gBankAttacker\n" + " .word gBankTarget\n" + " .word gBattleWeather\n" + " .word gWishFutureKnock\n" + " .word gHitMarker\n" + " .word gBattleTypeFlags\n" + " .word gSaveBlock2\n" + " .word +0x2000000\n" + " .word 0x16084\n" + " .word gMultiHitCounter\n" + " .word gBattleOutcome\n" + " .word gBattleExecBuffer\n" + " .word gPaydayMoney\n" + " .word 0x17130\n" + " .word 0x17160\n" + " .word gBattleCommunication\n" + " .word gPauseCounterBattle\n" + " .word gBattleMoveDamage\n" + " .word gUnknown_02024DE8\n" + " .word 0x16002\n" + " .word 0x160a1\n" + " .word gLeveledUpInBattle\n" + " .word gAbsentBankFlags\n" + " .word 0x16086\n" + " .word 0x16087\n" + " .word gEnemyParty\n" + " .word gBaseStats\n" + " .word 0x4fb\n" + " .word 0x16089\n" + " .word 0x16088\n" + " .word 0x1601b\n" + " .word 0x160ac\n" + " .word 0x160c8\n" + " .word 0x16113\n" + " .word gBattleResults\n" + " .word 0x1609e\n" + " .word 0x1609f\n" + "\n" + ); +} +#else void sub_8010874(void) { s32 i; @@ -1663,6 +9626,7 @@ void sub_8010874(void) gBattleResults.caughtNick[i] = 0; } } +#endif void SwitchInClearStructs(void) { diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 977e91f5c..613f2ebe0 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -289,6 +289,214 @@ void BattleAI_HandleItemUseBeforeAISetup(void) BattleAI_SetupAIData(); } +#if DEBUG +__attribute__((naked)) +void BattleAI_SetupAIData() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " ldr r2, ._16\n" + " mov r4, #0x0\n" + " ldr r3, ._16 + 4\n" + " mov r1, #0x0\n" + "._9:\n" + " add r0, r2, r4\n" + " strb r1, [r0]\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x1b\n" + " bls ._9 @cond_branch\n" + " ldr r0, ._16\n" + " mov r1, #0x64\n" + " mov r4, #0x3\n" + " add r0, r0, #0x7\n" + "._10:\n" + " strb r1, [r0]\n" + " sub r0, r0, #0x1\n" + " sub r4, r4, #0x1\n" + " cmp r4, #0\n" + " bge ._10 @cond_branch\n" + " ldrb r0, [r3]\n" + " mov r1, #0x0\n" + " mov r2, #0xff\n" + " bl sub_8015A98\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " mov r4, #0x0\n" + " ldr r0, ._16\n" + " add r5, r0, #4\n" + " ldr r6, ._16 + 8\n" + "._12:\n" + " ldr r0, [r6]\n" + " and r0, r0, r7\n" + " cmp r0, #0\n" + " beq ._11 @cond_branch\n" + " mov r0, #0x0\n" + " strb r0, [r5]\n" + "._11:\n" + " bl Random\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " mov r1, #0xf\n" + " and r0, r0, r1\n" + " mov r1, #0x64\n" + " sub r1, r1, r0\n" + " strb r1, [r5, #0x14]\n" + " add r5, r5, #0x1\n" + " add r6, r6, #0x4\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x3\n" + " ble ._12 @cond_branch\n" + " ldr r0, ._16 + 12\n" + " add r0, r0, #0x20\n" + " mov r1, #0x0\n" + " strb r1, [r0]\n" + " ldr r1, ._16 + 16\n" + " ldr r0, ._16 + 4\n" + " ldrb r2, [r0]\n" + " strb r2, [r1]\n" + " ldr r0, ._16 + 20\n" + " ldrh r1, [r0]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._13 @cond_branch\n" + " ldr r4, ._16 + 24\n" + " bl Random\n" + " mov r5, #0x2\n" + " and r0, r0, r5\n" + " strb r0, [r4]\n" + " ldr r0, ._16 + 28\n" + " ldrb r1, [r0]\n" + " ldr r2, ._16 + 8\n" + " ldrb r3, [r4]\n" + " lsl r0, r3, #0x2\n" + " add r0, r0, r2\n" + " ldr r0, [r0]\n" + " and r1, r1, r0\n" + " cmp r1, #0\n" + " beq ._15 @cond_branch\n" + " eor r3, r3, r5\n" + " strb r3, [r4]\n" + " b ._15\n" + "._17:\n" + " .align 2, 0\n" + "._16:\n" + " .word +0x2016800\n" + " .word gActiveBank\n" + " .word gBitTable\n" + " .word +0x2016c00\n" + " .word gBankAttacker\n" + " .word gBattleTypeFlags\n" + " .word gBankTarget\n" + " .word gAbsentBankFlags\n" + "._13:\n" + " ldr r0, ._20\n" + " mov r1, #0x1\n" + " eor r1, r1, r2\n" + " strb r1, [r0]\n" + "._15:\n" + " ldr r0, ._20 + 4\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._18 @cond_branch\n" + " ldr r1, ._20 + 8\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x17\n" + " b ._27\n" + "._21:\n" + " .align 2, 0\n" + "._20:\n" + " .word gBankTarget\n" + " .word gBattleTypeFlags\n" + " .word +0x2016800\n" + "._18:\n" + " mov r2, #0x80\n" + " lsl r2, r2, #0x3\n" + " add r0, r2, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._22 @cond_branch\n" + " ldr r1, ._24\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x16\n" + " b ._27\n" + "._25:\n" + " .align 2, 0\n" + "._24:\n" + " .word +0x2016800\n" + "._22:\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._26 @cond_branch\n" + " ldr r1, ._28\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x18\n" + " b ._27\n" + "._29:\n" + " .align 2, 0\n" + "._28:\n" + " .word +0x2016800\n" + "._26:\n" + " mov r0, #0x90\n" + " lsl r0, r0, #0x4\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._30 @cond_branch\n" + " ldr r1, ._33\n" + " ldrh r0, [r1]\n" + " cmp r0, r2\n" + " bne ._31 @cond_branch\n" + "._30:\n" + " ldr r1, ._33 + 4\n" + " mov r0, #0x7\n" + "._27:\n" + " str r0, [r1, #0xc]\n" + " add r3, r1, #0\n" + " b ._32\n" + "._34:\n" + " .align 2, 0\n" + "._33:\n" + " .word gTrainerBattleOpponent\n" + " .word +0x2016800\n" + "._31:\n" + " ldr r3, ._36\n" + " ldr r2, ._36 + 4\n" + " ldrh r1, [r1]\n" + " lsl r0, r1, #0x2\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x3\n" + " add r2, r2, #0x1c\n" + " add r0, r0, r2\n" + " ldr r0, [r0]\n" + " str r0, [r3, #0xc]\n" + "._32:\n" + " ldr r0, ._36 + 8\n" + " ldrb r1, [r0]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._35 @cond_branch\n" + " ldr r0, ._36 + 12\n" + " ldr r0, [r0]\n" + " str r0, [r3, #0xc]\n" + "._35:\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._37:\n" + " .align 2, 0\n" + "._36:\n" + " .word +0x2016800\n" + " .word gTrainers\n" + " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14+0x4c\n" + "\n" + ); +} +#else void BattleAI_SetupAIData(void) { s32 i; @@ -342,6 +550,7 @@ void BattleAI_SetupAIData(void) else // otherwise, just set aiFlags to whatever flags the trainer has set in their data. AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags; } +#endif u8 BattleAI_GetAIActionToUse(void) { diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index 97568d254..f7734301c 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -79,8 +79,8 @@ extern const u16 gBattleInterfaceStatusIcons_DynPal[]; static void sub_8043D5C(struct Sprite *); static const void *sub_8043CDC(u8); -static void sub_8044210(u8, s16, u8); -static void draw_status_ailment_maybe(u8); +/*static*/ void sub_8044210(u8, s16, u8); +/*static*/ void draw_status_ailment_maybe(u8); extern void sub_8045180(struct Sprite *); static void sub_8045110(struct Sprite *); static void sub_8045048(struct Sprite *); @@ -651,7 +651,7 @@ void sub_8043F44(u8 a) #define CHAR_LV_SEPARATOR CHAR_PERIOD #endif -static void sub_8043FC0(u8 a, u8 b) +/*static*/ void sub_8043FC0(u8 a, u8 b) { u8 str[30]; void *const *r7; @@ -905,7 +905,7 @@ _0804420C: .4byte 0x04000008\n\ } #endif -static void sub_8044210(u8 a, s16 b, u8 c) +/*static*/ void sub_8044210(u8 a, s16 b, u8 c) { u8 str[0x14]; u8 *ptr; @@ -1277,6 +1277,353 @@ _08044548: .4byte 0x04000008\n\ } #endif +#if DEBUG +__attribute__((naked)) +void sub_804454C() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " mov r0, #0x0\n" + " mov r8, r0\n" + " ldr r0, ._150\n" + " ldrb r0, [r0]\n" + " cmp r8, r0\n" + " blt ._133 @cond_branch\n" + " b ._164\n" + "._133:\n" + " ldr r1, ._150 + 4\n" + " mov r9, r1\n" + " mov r2, #0x64\n" + " mov sl, r2\n" + " ldr r7, ._150 + 8\n" + "._165:\n" + " ldr r0, ._150 + 12\n" + " mov r6, r8\n" + " add r5, r6, r0\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " mov r1, r9\n" + " add r1, r1, #0x1c\n" + " add r0, r0, r1\n" + " ldr r1, [r0]\n" + " ldr r0, ._150 + 16\n" + " cmp r1, r0\n" + " beq ._135 @cond_branch\n" + " b ._147\n" + "._135:\n" + " ldr r0, ._150 + 20\n" + " ldrb r0, [r0]\n" + " lsl r4, r6, #0x18\n" + " cmp r0, #0\n" + " bne ._138 @cond_branch\n" + " lsr r0, r4, #0x18\n" + " bl GetBankSide\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._138 @cond_branch\n" + " b ._147\n" + "._138:\n" + " bl IsDoubleBattle\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._141 @cond_branch\n" + " lsr r0, r4, #0x18\n" + " bl GetBankSide\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._141 @cond_branch\n" + " b ._147\n" + "._141:\n" + " mov r0, r8\n" + " lsl r3, r0, #0x2\n" + " ldr r0, ._150 + 24\n" + " add r3, r3, r0\n" + " ldr r0, [r3]\n" + " lsl r0, r0, #0x1b\n" + " lsr r0, r0, #0x1f\n" + " mov r2, #0x1\n" + " eor r2, r2, r0\n" + " lsl r2, r2, #0x4\n" + " ldrb r0, [r3]\n" + " mov r6, #0x11\n" + " neg r6, r6\n" + " add r1, r6, #0\n" + " and r0, r0, r1\n" + " orr r0, r0, r2\n" + " strb r0, [r3]\n" + " ldr r0, [r3]\n" + " lsl r0, r0, #0x1b\n" + " lsr r6, r0, #0x1f\n" + " lsr r0, r4, #0x18\n" + " bl GetBankSide\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._143 @cond_branch\n" + " bl IsDoubleBattle\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._144 @cond_branch\n" + " b ._147\n" + "._144:\n" + " ldr r0, ._150 + 28\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x10\n" + " lsr r2, r0, #0x10\n" + " cmp r2, #0\n" + " beq ._146 @cond_branch\n" + " b ._147\n" + "._146:\n" + " cmp r6, #0x1\n" + " bne ._148 @cond_branch\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r9\n" + " ldrh r0, [r0, #0x38]\n" + " lsl r0, r0, #0x18\n" + " lsr r1, r0, #0x18\n" + " str r2, [sp]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r9\n" + " ldrh r1, [r0, #0x4]\n" + " lsl r1, r1, #0x16\n" + " lsr r1, r1, #0x11\n" + " ldr r0, ._150 + 32\n" + " add r1, r1, r0\n" + " mov r0, sp\n" + " ldr r2, ._150 + 36\n" + " bl gScriptFuncs_End+0x3cb4\n" + " ldrb r4, [r5]\n" + " ldrh r0, [r7]\n" + " mov r1, sl\n" + " mul r1, r1, r0\n" + " add r0, r1, #0\n" + " ldr r2, ._150 + 40\n" + " add r0, r0, r2\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " add r0, r4, #0\n" + " mov r2, #0x0\n" + " bl sub_8044210\n" + " ldrb r4, [r5]\n" + " ldrh r0, [r7]\n" + " mov r6, sl\n" + " mul r6, r6, r0\n" + " add r0, r6, #0\n" + " ldr r1, ._150 + 40\n" + " b ._149\n" + "._151:\n" + " .align 2, 0\n" + "._150:\n" + " .word gNoOfAllBanks\n" + " .word gSprites\n" + " .word gBattlePartyID\n" + " .word gHealthboxIDs\n" + " .word SpriteCallbackDummy+1\n" + " .word gUnknown_020297ED\n" + " .word +0x2017800\n" + " .word gBattleTypeFlags\n" + " .word 0x6010000\n" + " .word 0x5000040\n" + " .word gPlayerParty\n" + "._148:\n" + " ldrb r0, [r5]\n" + " bl draw_status_ailment_maybe\n" + " ldrb r0, [r5]\n" + " ldrh r1, [r7]\n" + " mov r2, sl\n" + " mul r2, r2, r1\n" + " add r1, r2, #0\n" + " ldr r6, ._153\n" + " add r1, r1, r6\n" + " mov r2, #0x5\n" + " bl sub_8045A5C\n" + " mov r0, #0x75\n" + " bl sub_8043CDC\n" + " ldrb r2, [r5]\n" + " lsl r1, r2, #0x4\n" + " add r1, r1, r2\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r9\n" + " ldrh r1, [r1, #0x4]\n" + " lsl r1, r1, #0x16\n" + " lsr r1, r1, #0x11\n" + " ldr r2, ._153 + 4\n" + " add r1, r1, r2\n" + " ldr r2, ._153 + 8\n" + " bl gScriptFuncs_End+0x3cb4\n" + " b ._163\n" + "._154:\n" + " .align 2, 0\n" + "._153:\n" + " .word gPlayerParty\n" + " .word 0x6010680\n" + " .word 0x4000008\n" + "._143:\n" + " cmp r6, #0x1\n" + " bne ._155 @cond_branch\n" + " ldr r0, ._158\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x10\n" + " lsr r2, r0, #0x10\n" + " cmp r2, #0\n" + " beq ._156 @cond_branch\n" + " ldrb r0, [r5]\n" + " ldrh r1, [r7]\n" + " mov r6, sl\n" + " mul r6, r6, r1\n" + " add r1, r6, #0\n" + " ldr r2, ._158 + 4\n" + " add r1, r1, r2\n" + " bl sub_8044338\n" + " b ._163\n" + "._159:\n" + " .align 2, 0\n" + "._158:\n" + " .word gBattleTypeFlags\n" + " .word gEnemyParty\n" + "._156:\n" + " ldrb r1, [r5]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r9\n" + " ldrh r0, [r0, #0x38]\n" + " lsl r0, r0, #0x18\n" + " lsr r1, r0, #0x18\n" + " str r2, [sp]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r9\n" + " ldrh r1, [r0, #0x4]\n" + " lsl r1, r1, #0x16\n" + " lsr r1, r1, #0x11\n" + " ldr r6, ._161\n" + " add r1, r1, r6\n" + " mov r0, sp\n" + " ldr r2, ._161 + 4\n" + " bl gScriptFuncs_End+0x3cb4\n" + " ldrb r4, [r5]\n" + " ldrh r0, [r7]\n" + " mov r1, sl\n" + " mul r1, r1, r0\n" + " add r0, r1, #0\n" + " ldr r2, ._161 + 8\n" + " add r0, r0, r2\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " add r0, r4, #0\n" + " mov r2, #0x0\n" + " bl sub_8044210\n" + " ldrb r4, [r5]\n" + " ldrh r0, [r7]\n" + " mov r6, sl\n" + " mul r6, r6, r0\n" + " add r0, r6, #0\n" + " ldr r1, ._161 + 8\n" + "._149:\n" + " add r0, r0, r1\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " bl sub_8044210\n" + " b ._163\n" + "._162:\n" + " .align 2, 0\n" + "._161:\n" + " .word 0x6010000\n" + " .word 0x5000040\n" + " .word gEnemyParty\n" + "._155:\n" + " ldrb r0, [r5]\n" + " bl draw_status_ailment_maybe\n" + " ldrb r0, [r5]\n" + " ldrh r1, [r7]\n" + " mov r6, #0x64\n" + " mul r1, r1, r6\n" + " ldr r4, ._166\n" + " add r1, r1, r4\n" + " mov r2, #0x5\n" + " bl sub_8045A5C\n" + " ldr r0, ._166 + 4\n" + " ldrh r1, [r0]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._163 @cond_branch\n" + " ldrb r0, [r5]\n" + " ldrh r1, [r7]\n" + " mul r1, r1, r6\n" + " add r1, r1, r4\n" + " mov r2, #0x4\n" + " bl sub_8045A5C\n" + "._163:\n" + " ldr r0, ._166 + 8\n" + " add r0, r0, r8\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x4\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r9\n" + " ldrh r1, [r0, #0x3c]\n" + " mov r2, #0x1\n" + " eor r1, r1, r2\n" + " strh r1, [r0, #0x3c]\n" + "._147:\n" + " add r7, r7, #0x2\n" + " mov r2, #0x1\n" + " add r8, r8, r2\n" + " ldr r0, ._166 + 12\n" + " ldrb r0, [r0]\n" + " cmp r8, r0\n" + " bge ._164 @cond_branch\n" + " b ._165\n" + "._164:\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._167:\n" + " .align 2, 0\n" + "._166:\n" + " .word gEnemyParty\n" + " .word gBattleTypeFlags\n" + " .word gHealthboxIDs\n" + " .word gNoOfAllBanks\n" + "\n" + ); +} +#else void sub_804454C(void) { s32 i; @@ -1344,6 +1691,7 @@ void sub_804454C(void) } } } +#endif // This function almost matches except for just two instructions around 0x08044B52 that are swapped. #ifdef NONMATCHING @@ -2359,7 +2707,7 @@ void sub_8045180(struct Sprite *sprite) sprite->pos2.y = gSprites[spriteId].pos2.y; } -static void sub_80451A0(u8 a, struct Pokemon *pkmn) +/*static*/ void sub_80451A0(u8 a, struct Pokemon *pkmn) { u8 nickname[POKEMON_NAME_LENGTH]; u8 gender; @@ -2507,7 +2855,7 @@ static void sub_8045458(u8 a, u8 b) } } -static void draw_status_ailment_maybe(u8 a) +/*static*/ void draw_status_ailment_maybe(u8 a) { s32 r4; s32 r4_2; @@ -2649,7 +2997,7 @@ static u8 sub_80457E8(u8 a, u8 b) return ret; } -static void sub_80458B0(u8 a) +/*static*/ void sub_80458B0(u8 a) { u8 *r6; u8 r8; @@ -2675,7 +3023,7 @@ static void sub_80458B0(u8 a) } -static void sub_8045998(u8 a) +/*static*/ void sub_8045998(u8 a) { u8 *r7; u8 status; @@ -2697,6 +3045,310 @@ static void sub_8045998(u8 a) } } +#ifdef DEBUG +__attribute__((naked)) +void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffff8\n" + " mov r9, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r8, r0\n" + " lsl r2, r2, #0x18\n" + " lsr r7, r2, #0x18\n" + " ldr r1, ._429\n" + " lsl r0, r0, #0x4\n" + " add r0, r0, r8\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r1\n" + " ldrh r0, [r0, #0x3a]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov sl, r0\n" + " bl GetBankSide\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._410 @cond_branch\n" + " b ._411\n" + "._410:\n" + " cmp r7, #0x3\n" + " beq ._412 @cond_branch\n" + " cmp r7, #0\n" + " bne ._413 @cond_branch\n" + "._412:\n" + " mov r0, r9\n" + " mov r1, #0x38\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " mov r0, r8\n" + " bl sub_8043FC0\n" + "._413:\n" + " cmp r7, #0x1\n" + " bhi ._414 @cond_branch\n" + " mov r0, r9\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " mov r0, r8\n" + " mov r2, #0x0\n" + " bl sub_80440EC\n" + "._414:\n" + " cmp r7, #0x2\n" + " beq ._415 @cond_branch\n" + " cmp r7, #0\n" + " bne ._416 @cond_branch\n" + "._415:\n" + " mov r0, r9\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " mov r0, r8\n" + " mov r2, #0x1\n" + " bl sub_80440EC\n" + "._416:\n" + " cmp r7, #0x5\n" + " beq ._417 @cond_branch\n" + " cmp r7, #0\n" + " bne ._418 @cond_branch\n" + "._417:\n" + " mov r0, #0x0\n" + " bl load_gfxc_health_bar\n" + " mov r0, r9\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " add r4, r0, #0\n" + " mov r0, r9\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r3, r0, #0\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r8\n" + " add r2, r4, #0\n" + " bl sub_8043D84\n" + " mov r0, sl\n" + " mov r1, r8\n" + " mov r2, #0x0\n" + " mov r3, #0x0\n" + " bl sub_8045C78\n" + "._418:\n" + " bl IsDoubleBattle\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " str r0, [sp, #0x4]\n" + " cmp r0, #0\n" + " bne ._421 @cond_branch\n" + " cmp r7, #0x6\n" + " beq ._420 @cond_branch\n" + " cmp r7, #0\n" + " bne ._421 @cond_branch\n" + "._420:\n" + " mov r0, #0x3\n" + " bl load_gfxc_health_bar\n" + " mov r0, r9\n" + " mov r1, #0xb\n" + " bl GetMonData\n" + " add r5, r0, #0\n" + " lsl r5, r5, #0x10\n" + " lsr r5, r5, #0x10\n" + " mov r0, r9\n" + " mov r1, #0x38\n" + " bl GetMonData\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " mov r0, r9\n" + " mov r1, #0x19\n" + " bl GetMonData\n" + " add r3, r0, #0\n" + " ldr r6, ._429 + 4\n" + " lsl r1, r4, #0x2\n" + " ldr r2, ._429 + 8\n" + " lsl r0, r5, #0x3\n" + " sub r0, r0, r5\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r2\n" + " ldrb r2, [r0, #0x13]\n" + " mov r0, #0xca\n" + " lsl r0, r0, #0x1\n" + " mul r0, r0, r2\n" + " add r1, r1, r0\n" + " add r1, r1, r6\n" + " ldr r1, [r1]\n" + " sub r3, r3, r1\n" + " add r4, r4, #0x1\n" + " lsl r4, r4, #0x2\n" + " add r4, r4, r0\n" + " add r4, r4, r6\n" + " ldr r2, [r4]\n" + " sub r2, r2, r1\n" + " ldr r0, [sp, #0x4]\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r8\n" + " bl sub_8043D84\n" + " mov r0, sl\n" + " mov r1, r8\n" + " mov r2, #0x1\n" + " mov r3, #0x0\n" + " bl sub_8045C78\n" + "._421:\n" + " cmp r7, #0x4\n" + " beq ._422 @cond_branch\n" + " cmp r7, #0\n" + " bne ._423 @cond_branch\n" + "._422:\n" + " mov r0, r8\n" + " mov r1, r9\n" + " bl sub_80451A0\n" + "._423:\n" + " cmp r7, #0x9\n" + " beq ._424 @cond_branch\n" + " cmp r7, #0\n" + " bne ._425 @cond_branch\n" + "._424:\n" + " mov r0, r8\n" + " bl draw_status_ailment_maybe\n" + "._425:\n" + " cmp r7, #0xa\n" + " bne ._426 @cond_branch\n" + " mov r0, r8\n" + " bl sub_80458B0\n" + "._426:\n" + " add r0, r7, #0\n" + " sub r0, r0, #0xa\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bhi ._442 @cond_branch\n" + " mov r0, r8\n" + " bl sub_8045998\n" + " b ._442\n" + "._430:\n" + " .align 2, 0\n" + "._429:\n" + " .word gSprites\n" + " .word gExperienceTables\n" + " .word gBaseStats\n" + "._411:\n" + " cmp r7, #0x3\n" + " beq ._431 @cond_branch\n" + " cmp r7, #0\n" + " bne ._432 @cond_branch\n" + "._431:\n" + " mov r0, r9\n" + " mov r1, #0x38\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " mov r0, r8\n" + " bl sub_8043FC0\n" + "._432:\n" + " ldr r0, ._443\n" + " ldrb r0, [r0]\n" + " cmp r0, #0x1\n" + " bne ._436 @cond_branch\n" + " cmp r7, #0x1\n" + " bhi ._434 @cond_branch\n" + " mov r0, r9\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " mov r0, r8\n" + " mov r2, #0x0\n" + " bl sub_80440EC\n" + "._434:\n" + " cmp r7, #0x2\n" + " beq ._435 @cond_branch\n" + " cmp r7, #0\n" + " bne ._436 @cond_branch\n" + "._435:\n" + " mov r0, r9\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " mov r0, r8\n" + " mov r2, #0x1\n" + " bl sub_80440EC\n" + "._436:\n" + " cmp r7, #0x5\n" + " beq ._437 @cond_branch\n" + " cmp r7, #0\n" + " bne ._438 @cond_branch\n" + "._437:\n" + " mov r0, #0x0\n" + " bl load_gfxc_health_bar\n" + " mov r0, r9\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " add r4, r0, #0\n" + " mov r0, r9\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " add r3, r0, #0\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r8\n" + " add r2, r4, #0\n" + " bl sub_8043D84\n" + " mov r0, sl\n" + " mov r1, r8\n" + " mov r2, #0x0\n" + " mov r3, #0x0\n" + " bl sub_8045C78\n" + "._438:\n" + " cmp r7, #0x4\n" + " beq ._439 @cond_branch\n" + " cmp r7, #0\n" + " bne ._440 @cond_branch\n" + "._439:\n" + " mov r0, r8\n" + " mov r1, r9\n" + " bl sub_80451A0\n" + "._440:\n" + " cmp r7, #0x9\n" + " beq ._441 @cond_branch\n" + " cmp r7, #0\n" + " bne ._442 @cond_branch\n" + "._441:\n" + " mov r0, r8\n" + " bl draw_status_ailment_maybe\n" + "._442:\n" + " add sp, sp, #0x8\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._444:\n" + " .align 2, 0\n" + "._443:\n" + " .word gUnknown_020297ED\n" + "\n" + ); +} +#else void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) { u8 r10; @@ -2766,6 +3418,7 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) draw_status_ailment_maybe(a); } } +#endif s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2) { diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c index 4979760d7..a03a215fd 100644 --- a/src/battle/battle_records.c +++ b/src/battle/battle_records.c @@ -8,9 +8,35 @@ #include "strings2.h" #include "trainer_card.h" +struct DebugStruct1 +{ + u16 var0; + u8 var1[10]; +}; + extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; extern u8 gBattleOutcome; +#ifdef DEBUG +const struct DebugStruct1 gUnknown_Debug_4245CC[] = +{ + { 1, _("NUMBER1") }, + { 2, _("ナンバー2") }, + { 3, _("ナンバー3") }, + { 4, _("ナンバー4") }, + { 5, _("ナンバー5") }, + { 6, _("ナンバー6") }, + { 7, _("ナンバー7") }, +}; + +const u8 gUnknown_Debug_8424620[][4] = +{ + { 1, 1, 0, 0 }, + { 2, 1, 0, 0 }, + { 3, 1, 0, 0 }, +}; +#endif + static void InitLinkBattleRecord(struct LinkBattleRecord *record) { CpuFill16(0, record, sizeof(struct LinkBattleRecord)); @@ -240,7 +266,8 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y) } } -void ShowLinkBattleRecords(void) { +void ShowLinkBattleRecords(void) +{ s32 i; Menu_DrawStdWindowFrame(1, 0, 28, 18); sub_8072BD8(gOtherText_BattleResults, 0, 1, 240); -- cgit v1.2.3 From d79f440b8d4c5af26a98011719807b05745533e1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 12:10:41 -0600 Subject: use 'if DEBUG' instead of 'ifdef DEBUG' --- src/battle/battle_2.c | 4 ++-- src/battle/battle_interface.c | 2 +- src/battle/battle_records.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 12b18bb52..5700d1b7e 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1258,7 +1258,7 @@ void sub_800F02C(void) memcpy(gSharedMem, gUnknown_02023A00, 0x60); } -#ifdef DEBUG +#if DEBUG __attribute__((naked)) void sub_800F104() { @@ -1554,7 +1554,7 @@ void sub_800F104(void) } #endif -#ifdef DEBUG +#if DEBUG __attribute__((naked)) void sub_800F298() { diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index f7734301c..b19547d52 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -3045,7 +3045,7 @@ static u8 sub_80457E8(u8 a, u8 b) } } -#ifdef DEBUG +#if DEBUG __attribute__((naked)) void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) { diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c index a03a215fd..17e2352ff 100644 --- a/src/battle/battle_records.c +++ b/src/battle/battle_records.c @@ -17,7 +17,7 @@ struct DebugStruct1 extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; extern u8 gBattleOutcome; -#ifdef DEBUG +#if DEBUG const struct DebugStruct1 gUnknown_Debug_4245CC[] = { { 1, _("NUMBER1") }, -- cgit v1.2.3 From 6903b3626aed4e5521243b4517c43fed3c4d0ff5 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 13:11:10 -0600 Subject: resolve some undefined references --- src/battle/battle_2.c | 90 +++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 5700d1b7e..78fc35ba5 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -275,7 +275,7 @@ void InitBattle(void) " bl sub_80895F8\n" " ldr r4, ._10 + 32\n" " add r0, r4, #0\n" - " bl SetUpWindowConfig\n" + " bl Text_LoadWindowTemplate\n" " bl ResetPaletteFade\n" " ldr r0, ._10 + 36\n" " mov r1, #0x0\n" @@ -306,13 +306,13 @@ void InitBattle(void) "._7:\n" " ldr r0, ._10 + 76\n" " add r1, r4, #0\n" - " bl InitWindowFromConfig\n" + " bl Text_InitWindowWithTemplate\n" " ldr r0, ._10 + 80\n" " ldr r1, ._10 + 84\n" - " bl InitWindowFromConfig\n" + " bl Text_InitWindowWithTemplate\n" " ldr r0, ._10 + 88\n" " ldr r1, ._10 + 92\n" - " bl InitWindowFromConfig\n" + " bl Text_InitWindowWithTemplate\n" " bl sub_800D6D4\n" " bl sub_800DAB8\n" " bl ResetSpriteData\n" @@ -348,7 +348,7 @@ void InitBattle(void) " .word gWindowConfig_81E6C58\n" " .word gUnknown_030042A4\n" " .word gUnknown_030042A0\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_030041B4\n" " .word gUnknown_03004288\n" " .word gUnknown_03004280\n" @@ -3274,10 +3274,10 @@ void debug_sub_80108B8() " bl remove_some_task\n" " ldr r4, ._507 + 84\n" " add r0, r4, #0\n" - " bl SetUpWindowConfig\n" + " bl Text_LoadWindowTemplate\n" " ldr r0, ._507 + 88\n" " add r1, r4, #0\n" - " bl InitWindowFromConfig\n" + " bl Text_InitWindowWithTemplate\n" " ldr r0, ._507 + 92\n" " strb r5, [r0]\n" " ldr r0, ._507 + 96\n" @@ -3334,7 +3334,7 @@ void debug_sub_80108B8() " .word 0x4000200\n" " .word gUnknown_030042A4\n" " .word gUnknown_030042A0\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_030041B4\n" " .word gUnknown_03004288\n" " .word gUnknown_03004280\n" @@ -3987,7 +3987,7 @@ void debug_sub_8010CAC() " .align 2, 0\n" "._581:\n" " .word gUnknown_Debug_03004360\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_Debug_030043A4\n" " .word gMain\n" " .word gUnknown_Debug_030043A0\n" @@ -4043,7 +4043,7 @@ void debug_sub_8010CAC() " .align 2, 0\n" "._587:\n" " .word gUnknown_Debug_03004360\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_Debug_030043A4\n" " .word gMain\n" " .word gUnknown_Debug_030043A0\n" @@ -5839,7 +5839,7 @@ void debug_sub_8011D40() " .word 0x80000800\n" " .word gUnknown_030042A4\n" " .word gUnknown_030042A0\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_030041B4\n" " .word gUnknown_03004288\n" " .word gUnknown_03004280\n" @@ -5912,7 +5912,7 @@ void debug_sub_8011DD4() " .word 0x9803\n" " .word gUnknown_030042A4\n" " .word gUnknown_030042A0\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_030041B4\n" " .word gUnknown_03004288\n" " .word gUnknown_03004280\n" @@ -6061,7 +6061,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " ldr r2, [sp, #0x4]\n" " mov r3, r8\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" " bl sub_8002F44\n" " ldr r1, ._823 + 12\n" @@ -6090,7 +6090,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " ldr r0, ._823 + 8\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" " bl sub_8002F44\n" " mov r0, #0xff\n" @@ -6113,7 +6113,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " ldr r2, [sp, #0x4]\n" " mov r3, r8\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" " bl sub_8002F44\n" " b ._848\n" @@ -6171,7 +6171,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " add r0, r6, #0\n" " mov r1, sl\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl sub_8002F44\n" " lsl r4, r7, #0x1\n" @@ -6199,7 +6199,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " add r0, r6, #0\n" " mov r1, sl\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl sub_8002F44\n" " mov r0, #0xff\n" @@ -6250,7 +6250,7 @@ void debug_sub_8011EA0() " ldrb r0, [r4]\n" " str r0, [sp]\n" " add r0, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl sub_8002F44\n" " b ._848\n" @@ -6282,7 +6282,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " mov r4, #0x0\n" @@ -6364,7 +6364,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " b ._848\n" @@ -6406,7 +6406,7 @@ void debug_sub_8011EA0() " str r0, [sp]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" "._848:\n" @@ -6476,7 +6476,7 @@ void debug_sub_8012294() " str r0, [sp]\n" " mov r0, sl\n" " mov r1, r9\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " mov r0, sl\n" " bl sub_8002F44\n" " ldrb r4, [r7]\n" @@ -6513,7 +6513,7 @@ void debug_sub_8012294() " str r0, [sp]\n" " mov r0, sl\n" " mov r1, r9\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " mov r0, sl\n" " bl sub_8002F44\n" " mov r0, #0xff\n" @@ -6553,7 +6553,7 @@ void debug_sub_8012294() " str r0, [sp]\n" " mov r0, sl\n" " mov r1, r9\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " mov r0, sl\n" " bl sub_8002F44\n" "._853:\n" @@ -6614,7 +6614,7 @@ void debug_sub_80123D8() " mov r1, r8\n" " mov r2, sl\n" " add r3, r7, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " lsl r5, r5, #0x1\n" @@ -6646,7 +6646,7 @@ void debug_sub_80123D8() " mov r1, r8\n" " mov r2, sl\n" " add r3, r7, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " mov r0, #0x0\n" @@ -6661,7 +6661,7 @@ void debug_sub_80123D8() " add r0, r4, #0\n" " mov r1, r8\n" " mov r3, sl\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " ldr r1, ._858 + 12\n" @@ -6691,7 +6691,7 @@ void debug_sub_80123D8() " mov r1, r8\n" " mov r2, r9\n" " mov r3, sl\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " b ._857\n" @@ -6718,7 +6718,7 @@ void debug_sub_80123D8() " str r0, [sp]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " ldrh r2, [r4, #0x6]\n" @@ -6727,7 +6727,7 @@ void debug_sub_80123D8() " str r0, [sp]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" "._857:\n" @@ -6781,7 +6781,7 @@ void debug_sub_8012540() " str r0, [sp]\n" " add r0, r4, #0\n" " add r1, r5, #0\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " add sp, sp, #0x4\n" @@ -6998,7 +6998,7 @@ void debug_sub_8012688() " strh r5, [r0]\n" " ldr r4, ._873 + 16\n" " add r0, r4, #0\n" - " bl SetUpWindowConfig\n" + " bl Text_LoadWindowTemplate\n" " bl ResetPaletteFade\n" " ldr r0, ._873 + 20\n" " strh r5, [r0]\n" @@ -7033,7 +7033,7 @@ void debug_sub_8012688() " strh r0, [r6]\n" " ldr r0, ._873 + 64\n" " add r1, r4, #0\n" - " bl InitWindowFromConfig\n" + " bl Text_InitWindowWithTemplate\n" " ldrh r2, [r6]\n" " lsl r0, r2, #0x3\n" " ldr r1, ._873 + 68\n" @@ -7133,7 +7133,7 @@ void debug_sub_8012688() " .word gWindowConfig_81E6C58\n" " .word gUnknown_030042A4\n" " .word gUnknown_030042A0\n" - " .word gUnknown_030042C0\n" + " .word gBattle_BG1_X\n" " .word gUnknown_030041B4\n" " .word gUnknown_03004288\n" " .word gUnknown_03004280\n" @@ -7211,7 +7211,7 @@ void debug_sub_80128B4() " add r1, r4, #0\n" " mov r2, #0x90\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " ldr r6, ._878 + 8\n" @@ -7237,7 +7237,7 @@ void debug_sub_80128B4() " add r1, r4, #0\n" " mov r2, #0x90\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " add sp, sp, #0x4\n" @@ -7282,7 +7282,7 @@ void debug_sub_8012938() " add r1, r4, #0\n" " mov r2, #0xa2\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl sub_8002F44\n" " ldr r1, ._880 + 8\n" @@ -7306,7 +7306,7 @@ void debug_sub_8012938() " add r1, r4, #0\n" " mov r2, #0xa2\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl sub_8002F44\n" " ldr r2, ._880 + 20\n" @@ -7622,7 +7622,7 @@ void debug_sub_8012B70() " str r0, [sp]\n" " add r0, r5, #0\n" " mov r3, #0x1a\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl sub_8002F44\n" " strh r6, [r4, #0xe]\n" @@ -7668,7 +7668,7 @@ void debug_sub_8012C08() " add r1, r5, #0\n" " mov r2, #0x90\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r7, #0\n" " bl sub_8002F44\n" " mov r0, #0x0\n" @@ -7680,7 +7680,7 @@ void debug_sub_8012C08() " add r1, r5, #0\n" " mov r2, #0xa2\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r7, #0\n" " bl sub_8002F44\n" " mov r0, #0x0\n" @@ -7705,7 +7705,7 @@ void debug_sub_8012C08() " add r0, r7, #0\n" " mov r2, #0x90\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " b ._904\n" "._906:\n" " .align 2, 0\n" @@ -7728,7 +7728,7 @@ void debug_sub_8012C08() " add r0, r7, #0\n" " mov r2, #0x90\n" " mov r3, #0x2\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" "._904:\n" " add r5, r4, #0\n" " ldr r4, ._907 + 8\n" @@ -7741,7 +7741,7 @@ void debug_sub_8012C08() " str r0, [sp]\n" " add r0, r4, #0\n" " mov r3, #0x1a\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " ldr r1, ._907\n" @@ -7816,7 +7816,7 @@ void debug_sub_8012D10() " str r0, [sp]\n" " add r0, r4, #0\n" " mov r3, #0x13\n" - " bl InitWindow\n" + " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl sub_8002F44\n" " ldr r1, ._920 + 8\n" -- cgit v1.2.3 From 6efb614f3f3bf1b1b381bdfe220391e152fc8ebe Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 15:49:51 -0600 Subject: add more debug things --- src/battle/battle_2.c | 140 +++++++++++++++++++++--------------------- src/battle/battle_ai.c | 2 +- src/battle/battle_interface.c | 6 +- 3 files changed, 74 insertions(+), 74 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 78fc35ba5..454b47e08 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -220,7 +220,7 @@ void InitBattle(void) " lsl r1, r1, #0x13\n" " ldr r2, ._10\n" " mov r0, sp\n" - " bl gScriptFuncs_End+0x3cb4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" " ldr r0, ._10 + 4\n" " strh r4, [r0]\n" " sub r0, r0, #0xc\n" @@ -347,13 +347,13 @@ void InitBattle(void) " .word 0xff10\n" " .word gWindowConfig_81E6C58\n" " .word gUnknown_030042A4\n" - " .word gUnknown_030042A0\n" + " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" - " .word gUnknown_030041B4\n" - " .word gUnknown_03004288\n" - " .word gUnknown_03004280\n" - " .word gUnknown_030041B0\n" - " .word gUnknown_030041B8\n" + " .word gBattle_BG1_Y\n" + " .word gBattle_BG2_X\n" + " .word gBattle_BG2_Y\n" + " .word gBattle_BG3_X\n" + " .word gBattle_BG3_Y\n" " .word gUnknown_02023A14+0x50\n" " .word gBattleTerrain\n" " .word gUnknown_03004210\n" @@ -907,7 +907,7 @@ void sub_800EC9C() " ldr r2, ._116 + 4\n" " add r1, r1, r2\n" " mov r2, #0xc8\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " b ._129\n" "._117:\n" " .align 2, 0\n" @@ -946,7 +946,7 @@ void sub_800EC9C() " ldr r2, ._126 + 4\n" " add r1, r1, r2\n" " mov r2, #0xc8\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " b ._129\n" "._127:\n" " .align 2, 0\n" @@ -982,7 +982,7 @@ void sub_800EC9C() " add r1, r1, r0\n" " add r0, r4, #0\n" " mov r2, #0xc8\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " ldr r1, ._134 + 8\n" " add r0, r4, r1\n" " bl shedinja_something\n" @@ -1407,7 +1407,7 @@ void sub_800F104() " add r1, r1, r0\n" " ldr r0, ._177 + 4\n" " mov r2, #0x60\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" "._174:\n" " add r7, r7, #0x1c\n" " add r4, r4, #0x1\n" @@ -1781,7 +1781,7 @@ void sub_800F298() " ldr r1, ._239 + 4\n" " mov r2, #0x96\n" " lsl r2, r2, #0x1\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " ldr r0, ._239 + 8\n" " mov r1, #0x0\n" " bl CreateTask\n" @@ -2018,7 +2018,7 @@ void sub_800F298() "._283:\n" " add r1, r5, #0\n" " mov r2, #0xc8\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " b ._291\n" "._293:\n" " .align 2, 0\n" @@ -2028,7 +2028,7 @@ void sub_800F298() " ldr r0, ._296\n" " add r1, r5, #0\n" " mov r2, #0xc8\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" "._291:\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -2185,7 +2185,7 @@ void sub_800F298() "._333:\n" " add r1, r5, #0\n" " mov r2, #0x64\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" " b ._341\n" "._343:\n" " .align 2, 0\n" @@ -2195,7 +2195,7 @@ void sub_800F298() " ldr r0, ._346\n" " add r1, r5, #0\n" " mov r2, #0x64\n" - " bl gScriptFuncs_End+0x5bc4\n" + " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" "._341:\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -2627,7 +2627,7 @@ void BattleMainCB2(void) " str r0, [r4]\n" " bl ZeroEnemyPartyMons\n" " mov r0, #0x5a\n" - " bl gScriptFuncs_End+0x148c\n" + " bl gMysteryEventScriptCmdTableEnd+0x148c\n" " ldr r0, ._358 + 24\n" " ldrh r1, [r0]\n" " mov r0, #0x2\n" @@ -3197,7 +3197,7 @@ void debug_sub_80108B8() asm( " push {r4, r5, lr}\n" " add sp, sp, #0xfffffffc\n" - " bl gScriptFuncs_End+0x19f4\n" + " bl gMysteryEventScriptCmdTableEnd+0x19f4\n" " mov r0, #0x0\n" " bl SetHBlankCallback\n" " mov r0, #0x0\n" @@ -3264,7 +3264,7 @@ void debug_sub_80108B8() " ldr r1, ._507 + 72\n" " add r0, r4, #0\n" " bl LZDecompressVram\n" - " bl gScriptFuncs_End+0x1a70\n" + " bl gMysteryEventScriptCmdTableEnd+0x1a70\n" " ldr r0, ._507 + 76\n" " bl SetVBlankCallback\n" " ldr r0, ._507 + 80\n" @@ -3333,13 +3333,13 @@ void debug_sub_80108B8() " .word 0x85006000\n" " .word 0x4000200\n" " .word gUnknown_030042A4\n" - " .word gUnknown_030042A0\n" + " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" - " .word gUnknown_030041B4\n" - " .word gUnknown_03004288\n" - " .word gUnknown_03004280\n" - " .word gUnknown_030041B0\n" - " .word gUnknown_030041B8\n" + " .word gBattle_BG1_Y\n" + " .word gBattle_BG2_X\n" + " .word gBattle_BG2_Y\n" + " .word gBattle_BG3_X\n" + " .word gBattle_BG3_Y\n" " .word 0x1f09\n" " .word 0x4801\n" " .word 0x4000050\n" @@ -3860,7 +3860,7 @@ void debug_sub_8010CAC() " strb r0, [r3, #0x15]\n" " lsl r0, r0, #0x1f\n" " lsr r0, r0, #0x1f\n" - " bl gScriptFuncs_End+0x2aa0\n" + " bl gMysteryEventScriptCmdTableEnd+0x2aa0\n" " bl debug_nullsub_3\n" "._559:\n" " ldr r4, ._565 + 12\n" @@ -4774,7 +4774,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4830,7 +4830,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4886,7 +4886,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4929,7 +4929,7 @@ void debug_sub_8011498() " lsl r4, r5, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4965,7 +4965,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -5002,7 +5002,7 @@ void debug_sub_8011498() " lsl r4, r5, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -5200,7 +5200,7 @@ void debug_sub_801174C() "._713:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._719\n" @@ -5223,7 +5223,7 @@ void debug_sub_801174C() "._699:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" @@ -5282,7 +5282,7 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._726\n" @@ -5355,7 +5355,7 @@ void debug_sub_801174C() "._735:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" " ldr r1, ._741\n" @@ -5382,7 +5382,7 @@ void debug_sub_801174C() "._721:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" @@ -5441,7 +5441,7 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" " ldr r1, ._750\n" @@ -5460,7 +5460,7 @@ void debug_sub_801174C() " ble ._743 @cond_branch\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._750\n" @@ -5838,13 +5838,13 @@ void debug_sub_8011D40() " .word 0x6004000\n" " .word 0x80000800\n" " .word gUnknown_030042A4\n" - " .word gUnknown_030042A0\n" + " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" - " .word gUnknown_030041B4\n" - " .word gUnknown_03004288\n" - " .word gUnknown_03004280\n" - " .word gUnknown_030041B0\n" - " .word gUnknown_030041B8\n" + " .word gBattle_BG1_Y\n" + " .word gBattle_BG2_X\n" + " .word gBattle_BG2_Y\n" + " .word gBattle_BG3_X\n" + " .word gBattle_BG3_Y\n" "\n" ); } @@ -5911,13 +5911,13 @@ void debug_sub_8011DD4() " .word 0x4000008\n" " .word 0x9803\n" " .word gUnknown_030042A4\n" - " .word gUnknown_030042A0\n" + " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" - " .word gUnknown_030041B4\n" - " .word gUnknown_03004288\n" - " .word gUnknown_03004280\n" - " .word gUnknown_030041B0\n" - " .word gUnknown_030041B8\n" + " .word gBattle_BG1_Y\n" + " .word gBattle_BG2_X\n" + " .word gBattle_BG2_Y\n" + " .word gBattle_BG3_X\n" + " .word gBattle_BG3_Y\n" "\n" ); } @@ -6483,7 +6483,7 @@ void debug_sub_8012294() " lsl r4, r4, #0x1\n" " add r0, r5, #0\n" " mov r1, #0x5\n" - " bl gScriptFuncs_End+0x4358\n" + " bl gMysteryEventScriptCmdTableEnd+0x4358\n" " add r5, r0, #0\n" " lsl r5, r5, #0x18\n" " lsr r5, r5, #0x15\n" @@ -7102,7 +7102,7 @@ void debug_sub_8012688() " bl SetHBlankCallback\n" " ldr r0, ._873 + 100\n" " bl SetVBlankCallback\n" - " bl gScriptFuncs_End+0x14f4\n" + " bl gMysteryEventScriptCmdTableEnd+0x14f4\n" " ldr r0, ._873 + 104\n" " mov r1, #0x0\n" " bl CreateTask\n" @@ -7132,13 +7132,13 @@ void debug_sub_8012688() " .word 0x400004c\n" " .word gWindowConfig_81E6C58\n" " .word gUnknown_030042A4\n" - " .word gUnknown_030042A0\n" + " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" - " .word gUnknown_030041B4\n" - " .word gUnknown_03004288\n" - " .word gUnknown_03004280\n" - " .word gUnknown_030041B0\n" - " .word gUnknown_030041B8\n" + " .word gBattle_BG1_Y\n" + " .word gBattle_BG2_X\n" + " .word gBattle_BG2_Y\n" + " .word gBattle_BG3_X\n" + " .word gBattle_BG3_Y\n" " .word gBattleTerrain\n" " .word gReservedSpritePaletteCount\n" " .word gCurrentMove\n" @@ -7764,7 +7764,7 @@ void debug_sub_8012C08() " .word gTasks\n" " .word UnkDebug0+0x432\n" " .word gUnknown_03004210\n" - " .word gUnknown_08400D7A\n" + " .word BattleText_YesNo\n" "\n" ); } @@ -8484,7 +8484,7 @@ void debug_sub_8013240() { asm( " push {lr}\n" - " bl gScriptFuncs_End+0x2fec\n" + " bl gMysteryEventScriptCmdTableEnd+0x2fec\n" " lsl r0, r0, #0x10\n" " cmp r0, #0\n" " beq ._1068 @cond_branch\n" @@ -8519,7 +8519,7 @@ void debug_sub_8013258() " lsr r4, r0, #0x10\n" " add r0, r4, #0\n" " add r1, r6, #0\n" - " bl gScriptFuncs_End+0x2f60\n" + " bl gMysteryEventScriptCmdTableEnd+0x2f60\n" " cmp r0, #0\n" " bne ._1071 @cond_branch\n" " mov r0, #0x80\n" @@ -8555,13 +8555,13 @@ void debug_sub_8013294() " lsl r0, r0, #0x18\n" " cmp r0, #0\n" " bne ._1076 @cond_branch\n" - " bl gScriptFuncs_End+0x19f4\n" + " bl gMysteryEventScriptCmdTableEnd+0x19f4\n" " add r0, r4, #0\n" " add r1, r5, #0\n" " add r2, r6, #0\n" " bl debug_sub_8013258\n" " add r4, r0, #0\n" - " bl gScriptFuncs_End+0x1a70\n" + " bl gMysteryEventScriptCmdTableEnd+0x1a70\n" " add r0, r4, #0\n" " b ._1077\n" "._1076:\n" @@ -8591,7 +8591,7 @@ void debug_sub_80132C8() " mov r1, #0x0\n" " add r2, r5, #0\n" " add r3, r6, #0\n" - " bl gScriptFuncs_End+0x2d64\n" + " bl gMysteryEventScriptCmdTableEnd+0x2d64\n" "._1078:\n" " pop {r4, r5, r6}\n" " pop {r0}\n" @@ -9066,7 +9066,7 @@ void debug_sub_80139E4() "._1193:\n" " ldr r0, ._1198 + 12\n" " ldr r0, [r0]\n" - " bl gScriptFuncs_End+0x3cf4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" " ldr r1, ._1198 + 4\n" " mov r0, #0x0\n" " strb r0, [r1]\n" @@ -9081,7 +9081,7 @@ void debug_sub_80139E4() " lsl r0, r0, #0x2\n" " add r0, r0, r5\n" " ldr r0, [r0]\n" - " bl gScriptFuncs_End+0x3cf4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" @@ -9103,7 +9103,7 @@ void debug_sub_80139E4() "._1192:\n" " ldr r0, ._1202\n" " ldr r0, [r0]\n" - " bl gScriptFuncs_End+0x3cf4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" " ldr r1, ._1202 + 4\n" " strb r4, [r1]\n" " ldr r0, ._1202 + 8\n" @@ -9117,7 +9117,7 @@ void debug_sub_80139E4() " lsl r0, r0, #0x2\n" " add r0, r0, r5\n" " ldr r0, [r0]\n" - " bl gScriptFuncs_End+0x3cf4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" @@ -9349,7 +9349,7 @@ void sub_8010874() " mov r0, #0x64\n" " mul r0, r0, r1\n" " ldr r1, ._1215 + 160\n" - " bl gScriptFuncs_End+0x3d30\n" + " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" " ldr r2, ._1215 + 164\n" " add r1, r4, r2\n" " strb r0, [r1]\n" diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 938d0fde1..ffc9281e4 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -318,7 +318,7 @@ void BattleAI_SetupAIData() " ldrb r0, [r3]\n" " mov r1, #0x0\n" " mov r2, #0xff\n" - " bl sub_8015A98\n" + " bl CheckMoveLimitations\n" " lsl r0, r0, #0x18\n" " lsr r7, r0, #0x18\n" " mov r4, #0x0\n" diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index b19547d52..1b6240159 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -1405,7 +1405,7 @@ void sub_804454C() " add r1, r1, r0\n" " mov r0, sp\n" " ldr r2, ._150 + 36\n" - " bl gScriptFuncs_End+0x3cb4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" " ldrb r4, [r5]\n" " ldrh r0, [r7]\n" " mov r1, sl\n" @@ -1467,7 +1467,7 @@ void sub_804454C() " ldr r2, ._153 + 4\n" " add r1, r1, r2\n" " ldr r2, ._153 + 8\n" - " bl gScriptFuncs_End+0x3cb4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" " b ._163\n" "._154:\n" " .align 2, 0\n" @@ -1521,7 +1521,7 @@ void sub_804454C() " add r1, r1, r6\n" " mov r0, sp\n" " ldr r2, ._161 + 4\n" - " bl gScriptFuncs_End+0x3cb4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" " ldrb r4, [r5]\n" " ldrh r0, [r7]\n" " mov r1, sl\n" -- cgit v1.2.3 From 233654746815b884d303cc3416c3fe6c377b4a73 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 17:30:45 -0600 Subject: resolve more undefined references --- src/battle/battle_2.c | 86 +++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 454b47e08..7a819a8ef 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -340,13 +340,13 @@ void InitBattle(void) " .word 0x5006000\n" " .word 0x400004c\n" " .word 0x5051\n" - " .word gUnknown_030042C4\n" + " .word gBattle_WIN0H\n" " .word gUnknown_03004240\n" - " .word gUnknown_03004DE0\n" + " .word gScanlineEffectRegBuffers\n" " .word gUnknown_081F9674\n" " .word 0xff10\n" - " .word gWindowConfig_81E6C58\n" - " .word gUnknown_030042A4\n" + " .word gWindowTemplate_81E6C58\n" + " .word gBattle_BG0_X\n" " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" " .word gBattle_BG1_Y\n" @@ -358,9 +358,9 @@ void InitBattle(void) " .word gBattleTerrain\n" " .word gUnknown_03004210\n" " .word gUnknown_030041D0\n" - " .word gWindowConfig_81E71D0\n" + " .word gWindowTemplate_81E71D0\n" " .word gUnknown_03004250\n" - " .word gWindowConfig_81E71EC\n" + " .word gWindowTemplate_81E71EC\n" " .word gReservedSpritePaletteCount\n" " .word sub_800FCFC+1\n" " .word gBattleTypeFlags\n" @@ -1068,7 +1068,7 @@ void sub_800EC9C() " .word gPreBattleCallback1\n" " .word gMain\n" " .word debug_sub_80139E4+1\n" - " .word sub_800F808+1\n" + " .word BattleMainCB2+1\n" " .word gBattleTypeFlags\n" " .word gTrainerBattleOpponent\n" "\n" @@ -2313,7 +2313,7 @@ void sub_800F298() " .word gPreBattleCallback1\n" " .word gMain\n" " .word debug_sub_80139E4+1\n" - " .word sub_800F808+1\n" + " .word BattleMainCB2+1\n" " .word gBattleTypeFlags\n" " .word gTrainerBattleOpponent\n" "\n" @@ -3332,7 +3332,7 @@ void debug_sub_80108B8() " .word 0x40000d4\n" " .word 0x85006000\n" " .word 0x4000200\n" - " .word gUnknown_030042A4\n" + " .word gBattle_BG0_X\n" " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" " .word gBattle_BG1_Y\n" @@ -3350,7 +3350,7 @@ void debug_sub_80108B8() " .word 0x50001e0\n" " .word debug_sub_8011D40+1\n" " .word debug_sub_8010CAC+1\n" - " .word gWindowConfig_81E6C3C\n" + " .word gWindowTemplate_81E6C3C\n" " .word gUnknown_Debug_03004370\n" " .word gUnknown_Debug_03004360\n" " .word gUnknown_Debug_030043A0\n" @@ -5837,7 +5837,7 @@ void debug_sub_8011D40() " .word +0x2000000\n" " .word 0x6004000\n" " .word 0x80000800\n" - " .word gUnknown_030042A4\n" + " .word gBattle_BG0_X\n" " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" " .word gBattle_BG1_Y\n" @@ -5910,7 +5910,7 @@ void debug_sub_8011DD4() "._776:\n" " .word 0x4000008\n" " .word 0x9803\n" - " .word gUnknown_030042A4\n" + " .word gBattle_BG0_X\n" " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" " .word gBattle_BG1_Y\n" @@ -6063,7 +6063,7 @@ void debug_sub_8011EA0() " mov r3, r8\n" " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._823 + 12\n" " mov sl, r1\n" " lsl r4, r7, #0x1\n" @@ -6092,7 +6092,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0xff\n" " strb r0, [r6]\n" " ldrb r0, [r5]\n" @@ -6115,7 +6115,7 @@ void debug_sub_8011EA0() " mov r3, r8\n" " bl Text_InitWindow\n" " ldr r0, ._823 + 8\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " b ._848\n" "._824:\n" " .align 2, 0\n" @@ -6173,7 +6173,7 @@ void debug_sub_8011EA0() " mov r1, sl\n" " bl Text_InitWindow\n" " add r0, r6, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " lsl r4, r7, #0x1\n" " ldr r5, ._830 + 12\n" " ldrb r0, [r5]\n" @@ -6201,7 +6201,7 @@ void debug_sub_8011EA0() " mov r1, sl\n" " bl Text_InitWindow\n" " add r0, r6, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0xff\n" " mov r1, sl\n" " strb r0, [r1]\n" @@ -6252,7 +6252,7 @@ void debug_sub_8011EA0() " add r0, r6, #0\n" " bl Text_InitWindow\n" " add r0, r6, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " b ._848\n" "._834:\n" " .align 2, 0\n" @@ -6284,7 +6284,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r4, #0x0\n" " ldr r3, ._839 + 12\n" " lsl r1, r7, #0x1\n" @@ -6366,7 +6366,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " b ._848\n" "._850:\n" " .align 2, 0\n" @@ -6408,7 +6408,7 @@ void debug_sub_8011EA0() " add r1, r6, #0\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" "._848:\n" " add sp, sp, #0xc\n" " pop {r3, r4, r5}\n" @@ -6478,7 +6478,7 @@ void debug_sub_8012294() " mov r1, r9\n" " bl Text_InitWindow\n" " mov r0, sl\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldrb r4, [r7]\n" " lsl r4, r4, #0x1\n" " add r0, r5, #0\n" @@ -6515,7 +6515,7 @@ void debug_sub_8012294() " mov r1, r9\n" " bl Text_InitWindow\n" " mov r0, sl\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0xff\n" " mov r1, r9\n" " strb r0, [r1]\n" @@ -6555,7 +6555,7 @@ void debug_sub_8012294() " mov r1, r9\n" " bl Text_InitWindow\n" " mov r0, sl\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" "._853:\n" " add sp, sp, #0x4\n" " pop {r3, r4, r5}\n" @@ -6616,7 +6616,7 @@ void debug_sub_80123D8() " add r3, r7, #0\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " lsl r5, r5, #0x1\n" " ldr r1, ._858 + 12\n" " ldrb r0, [r1]\n" @@ -6648,7 +6648,7 @@ void debug_sub_80123D8() " add r3, r7, #0\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0x0\n" " mov r1, #0x12\n" " bl debug_sub_8010A7C\n" @@ -6663,7 +6663,7 @@ void debug_sub_80123D8() " mov r3, sl\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._858 + 12\n" " ldrb r0, [r1]\n" " mov r2, #0x46\n" @@ -6693,7 +6693,7 @@ void debug_sub_80123D8() " mov r3, sl\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " b ._857\n" "._859:\n" " .align 2, 0\n" @@ -6720,7 +6720,7 @@ void debug_sub_80123D8() " add r1, r6, #0\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldrh r2, [r4, #0x6]\n" " ldrb r3, [r4, #0x8]\n" " ldrb r0, [r4, #0xa]\n" @@ -6729,7 +6729,7 @@ void debug_sub_80123D8() " add r1, r6, #0\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" "._857:\n" " add sp, sp, #0x4\n" " pop {r3, r4, r5}\n" @@ -6783,7 +6783,7 @@ void debug_sub_8012540() " add r1, r5, #0\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " add sp, sp, #0x4\n" " pop {r4, r5, r6}\n" " pop {r0}\n" @@ -7130,8 +7130,8 @@ void debug_sub_8012688() " .word 0x40000d4\n" " .word 0x85006000\n" " .word 0x400004c\n" - " .word gWindowConfig_81E6C58\n" - " .word gUnknown_030042A4\n" + " .word gWindowTemplate_81E6C58\n" + " .word gBattle_BG0_X\n" " .word gBattle_BG0_Y\n" " .word gBattle_BG1_X\n" " .word gBattle_BG1_Y\n" @@ -7213,7 +7213,7 @@ void debug_sub_80128B4() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r6, ._878 + 8\n" " ldrh r1, [r6]\n" " add r0, r4, #0\n" @@ -7239,7 +7239,7 @@ void debug_sub_80128B4() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " add sp, sp, #0x4\n" " pop {r3}\n" " mov r8, r3\n" @@ -7284,7 +7284,7 @@ void debug_sub_8012938() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r6, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._880 + 8\n" " add r0, r4, #0\n" " bl StringCopy\n" @@ -7308,7 +7308,7 @@ void debug_sub_8012938() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r6, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r2, ._880 + 20\n" " ldr r1, ._880 + 24\n" " lsl r0, r5, #0x2\n" @@ -7624,7 +7624,7 @@ void debug_sub_8012B70() " mov r3, #0x1a\n" " bl Text_InitWindow\n" " add r0, r5, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " strh r6, [r4, #0xe]\n" " mov r0, #0x0\n" " bl debug_sub_8012B2C\n" @@ -7670,7 +7670,7 @@ void debug_sub_8012C08() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r7, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0x0\n" " mov r1, #0x7\n" " bl debug_sub_8010A7C\n" @@ -7682,7 +7682,7 @@ void debug_sub_8012C08() " mov r3, #0x2\n" " bl Text_InitWindow\n" " add r0, r7, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " mov r0, #0x0\n" " str r0, [sp]\n" " mov r0, #0x18\n" @@ -7733,7 +7733,7 @@ void debug_sub_8012C08() " add r5, r4, #0\n" " ldr r4, ._907 + 8\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._907 + 12\n" " mov r2, #0xa4\n" " lsl r2, r2, #0x2\n" @@ -7743,7 +7743,7 @@ void debug_sub_8012C08() " mov r3, #0x1a\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._907\n" " add r0, r5, r6\n" " lsl r0, r0, #0x3\n" @@ -7818,7 +7818,7 @@ void debug_sub_8012D10() " mov r3, #0x13\n" " bl Text_InitWindow\n" " add r0, r4, #0\n" - " bl sub_8002F44\n" + " bl Text_PrintWindow8002F44\n" " ldr r1, ._920 + 8\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" -- cgit v1.2.3 From 73392181fe47fd0fe5ac3702978307926a442ef4 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:08:02 -0600 Subject: resolve more undefined references --- src/battle/battle_2.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 7a819a8ef..bedcb0bb6 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -238,7 +238,7 @@ void InitBattle(void) " strh r2, [r0]\n" " ldr r0, ._10 + 16\n" " strh r1, [r0]\n" - " bl dp12_8087EA4\n" + " bl ScanlineEffect_Clear\n" " ldr r0, ._10 + 20\n" " mov r3, #0xf0\n" " mov r5, #0xf0\n" @@ -272,7 +272,7 @@ void InitBattle(void) " ldr r0, [r4]\n" " ldr r1, [r4, #0x4]\n" " ldr r2, [r4, #0x8]\n" - " bl sub_80895F8\n" + " bl ScanlineEffect_SetParams\n" " ldr r4, ._10 + 32\n" " add r0, r4, #0\n" " bl Text_LoadWindowTemplate\n" @@ -300,7 +300,7 @@ void InitBattle(void) " and r0, r0, r1\n" " cmp r0, #0\n" " bne ._7 @cond_branch\n" - " bl GetBattleTerrain\n" + " bl BattleSetup_GetTerrain\n" " ldr r1, ._10 + 72\n" " strb r0, [r1]\n" "._7:\n" @@ -341,7 +341,7 @@ void InitBattle(void) " .word 0x400004c\n" " .word 0x5051\n" " .word gBattle_WIN0H\n" - " .word gUnknown_03004240\n" + " .word gBattle_WIN0V\n" " .word gScanlineEffectRegBuffers\n" " .word gUnknown_081F9674\n" " .word 0xff10\n" @@ -2641,10 +2641,10 @@ void BattleMainCB2(void) " .align 2, 0\n" "._358:\n" " .word gMain\n" - " .word gScriptResult\n" + " .word gSpecialVar_Result\n" " .word gBattleOutcome\n" " .word 0x43d\n" - " .word gUnknown_03004DC0\n" + " .word gScanlineEffect\n" " .word gPreBattleCallback1\n" " .word gBattleTypeFlags\n" " .word sub_805465C+1\n" @@ -2684,7 +2684,7 @@ void BattleMainCB2(void) " bl debug_sub_8008264\n" "._360:\n" " ldr r0, ._361 + 4\n" - " bl sub_800374C\n" + " bl Text_UpdateWindowInBattle\n" " bl UpdatePaletteFade\n" " bl RunTasks\n" " add sp, sp, #0x4\n" @@ -3255,7 +3255,7 @@ void debug_sub_80108B8() " bl LZDecompressVram\n" " ldr r0, ._507 + 60\n" " ldr r1, ._507 + 64\n" - " bl sub_800D238\n" + " bl LZDecompressWram\n" " ldr r4, ._507 + 68\n" " mov r1, #0xa0\n" " lsl r1, r1, #0x13\n" @@ -3271,7 +3271,7 @@ void debug_sub_80108B8() " bl SetMainCallback2\n" " bl ResetTasks\n" " bl ResetSpriteData\n" - " bl remove_some_task\n" + " bl ScanlineEffect_Stop\n" " ldr r4, ._507 + 84\n" " add r0, r4, #0\n" " bl Text_LoadWindowTemplate\n" @@ -3816,7 +3816,7 @@ void debug_sub_8010CAC() "._557:\n" " .align 2, 0\n" "._556:\n" - " .word gUnknown_03005E94\n" + " .word gCB2_AfterEvolution\n" " .word debug_sub_80108B8+1\n" " .word gPlayerParty\n" "._551:\n" @@ -5902,7 +5902,7 @@ void debug_sub_8011DD4() " bl LoadOam\n" " bl ProcessSpriteCopyRequests\n" " bl TransferPlttBuffer\n" - " bl sub_8089668\n" + " bl ScanlineEffect_InitHBlankDmaTransfer\n" " pop {r0}\n" " bx r0\n" "._777:\n" @@ -7167,7 +7167,7 @@ void debug_sub_8012878() " bl AnimateSprites\n" " bl BuildOamBuffer\n" " ldr r0, ._876\n" - " bl sub_800374C\n" + " bl Text_UpdateWindowInBattle\n" " bl UpdatePaletteFade\n" " bl RunTasks\n" " ldr r0, ._876 + 4\n" @@ -9472,7 +9472,7 @@ void sub_8010874() " .align 2, 0\n" "._1215:\n" " .word gUnknown_02024C4C\n" - " .word gUnknown_02024C44\n" + " .word gLastHitByType\n" " .word gMoveHitWith\n" " .word gLastUsedMove\n" " .word gDisableStructs\n" -- cgit v1.2.3 From 8835353325d9c7eba7664bde5d5a2d4c40c4376d Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:24:33 -0600 Subject: resolve more undefined references --- src/battle/battle_2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index bedcb0bb6..6d2045604 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -9473,16 +9473,16 @@ void sub_8010874() "._1215:\n" " .word gUnknown_02024C4C\n" " .word gLastHitByType\n" - " .word gMoveHitWith\n" + " .word gLastLandedMoves\n" " .word gLastUsedMove\n" " .word gDisableStructs\n" " .word gUnknown_02024C2C\n" - " .word gLockedMove\n" + " .word gLockedMoves\n" " .word gStatuses3\n" " .word gUnknown_02024C70\n" " .word gUnknown_02024C5C\n" " .word +0x2017100\n" - " .word gSideTimer\n" + " .word gSideTimers\n" " .word gSideAffecting\n" " .word gBankAttacker\n" " .word gBankTarget\n" -- cgit v1.2.3 From 8a21a49a35d91ba9b07ac5027a0560ddf1f4ad25 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 21:04:48 -0600 Subject: add some debug changes that I missed --- src/battle/battle_2.c | 19 +- src/battle/battle_util.c | 4473 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4482 insertions(+), 10 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 6d2045604..696f1fde0 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -9141,17 +9141,7 @@ void debug_sub_80139E4() "\n" ); } -#endif - -void sub_8010824(void) -{ - gBattleMainFunc(); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) - gBattleBankFunc[gActiveBank](); -} - -#if DEBUG __attribute__((naked)) void sub_8010874() { @@ -9525,6 +9515,15 @@ void sub_8010874() ); } #else + +void sub_8010824(void) +{ + gBattleMainFunc(); + + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + gBattleBankFunc[gActiveBank](); +} + void sub_8010874(void) { s32 i; diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index f93664593..3bb99f845 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -1683,6 +1683,4066 @@ u8 CastformDataTypeChange(u8 bank) return formChange; } +#if DEBUG +__attribute__((naked)) +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + add sp, sp, #0xffffffd8\n\ + ldr r4, [sp, #0x48]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + str r0, [sp, #0x4]\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x18\n\ + mov sl, r1\n\ + lsl r2, r2, #0x18\n\ + lsr r6, r2, #0x18\n\ + lsl r3, r3, #0x18\n\ + lsr r3, r3, #0x18\n\ + mov r8, r3\n\ + lsl r4, r4, #0x10\n\ + lsr r4, r4, #0x10\n\ + mov r0, #0x0\n\ + mov r9, r0\n\ + ldr r5, ._718\n\ + ldr r1, ._718 + 4\n\ + ldrb r0, [r5]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._715 @cond_branch\n\ + mov r1, sl\n\ + strb r1, [r5]\n\ +._715:\n\ + ldrb r0, [r5]\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._716 @cond_branch\n\ + ldr r1, ._718 + 8\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r1, r1, r0\n\ + ldr r0, ._718 + 12\n\ + b ._717\n\ +._719:\n\ + .align 2, 0\n\ +._718:\n\ + .word gBankAttacker\n\ + .word gNoOfAllBanks\n\ + .word gBattlePartyID\n\ + .word gPlayerParty\n\ +._716:\n\ + ldr r1, ._723\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r1, r1, r0\n\ + ldr r0, ._723 + 4\n\ +._717:\n\ + add r7, r1, r0\n\ + ldr r5, ._723 + 8\n\ + ldr r1, ._723 + 12\n\ + ldrb r0, [r5]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._720 @cond_branch\n\ + mov r2, sl\n\ + strb r2, [r5]\n\ +._720:\n\ + ldrb r0, [r5]\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._721 @cond_branch\n\ + ldr r1, ._723\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r1, r1, r0\n\ + ldr r0, ._723 + 16\n\ + b ._722\n\ +._724:\n\ + .align 2, 0\n\ +._723:\n\ + .word gBattlePartyID\n\ + .word gEnemyParty\n\ + .word gBankTarget\n\ + .word gNoOfAllBanks\n\ + .word gPlayerParty\n\ +._721:\n\ + ldr r1, ._729\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r1, r1, r0\n\ + ldr r0, ._729 + 4\n\ +._722:\n\ + add r5, r1, r0\n\ + add r0, r7, #0\n\ + mov r1, #0xb\n\ + bl GetMonData\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + str r0, [sp, #0x8]\n\ + add r0, r7, #0\n\ + mov r1, #0x0\n\ + bl GetMonData\n\ + str r0, [sp, #0x10]\n\ + add r0, r5, #0\n\ + mov r1, #0xb\n\ + bl GetMonData\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + str r0, [sp, #0xc]\n\ + add r0, r5, #0\n\ + mov r1, #0x0\n\ + bl GetMonData\n\ + str r0, [sp, #0x14]\n\ + ldr r0, ._729 + 8\n\ + ldrh r1, [r0]\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._725 @cond_branch\n\ + bl ._1540\n\ +._725:\n\ + mov r3, r8\n\ + cmp r3, #0\n\ + beq ._727 @cond_branch\n\ + ldr r0, ._729 + 12\n\ + strb r3, [r0]\n\ + mov r8, r0\n\ + b ._728\n\ +._730:\n\ + .align 2, 0\n\ +._729:\n\ + .word gBattlePartyID\n\ + .word gEnemyParty\n\ + .word gBattleTypeFlags\n\ + .word gLastUsedAbility\n\ +._727:\n\ + ldr r2, ._733\n\ + ldr r1, ._733 + 4\n\ + mov r0, #0x58\n\ + mov r5, sl\n\ + mul r5, r5, r0\n\ + add r0, r5, #0\n\ + add r0, r0, r1\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + strb r0, [r2]\n\ + mov r8, r2\n\ +._728:\n\ + cmp r4, #0\n\ + beq ._731 @cond_branch\n\ + add r3, r4, #0\n\ + b ._732\n\ +._734:\n\ + .align 2, 0\n\ +._733:\n\ + .word gLastUsedAbility\n\ + .word gBattleMons\n\ +._731:\n\ + ldr r0, ._737\n\ + ldrh r3, [r0]\n\ +._732:\n\ + ldr r1, ._737 + 4\n\ + ldr r2, ._737 + 8\n\ + add r0, r1, r2\n\ + ldrb r0, [r0]\n\ + add r7, r1, #0\n\ + cmp r0, #0\n\ + beq ._735 @cond_branch\n\ + mov r4, #0x3f\n\ + and r4, r4, r0\n\ + b ._736\n\ +._738:\n\ + .align 2, 0\n\ +._737:\n\ + .word gCurrentMove\n\ + .word +0x2000000\n\ + .word 0x1601c\n\ +._735:\n\ + ldr r1, ._741\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r4, [r0, #0x2]\n\ +._736:\n\ + ldr r5, [sp, #0x4]\n\ + cmp r5, #0x13\n\ + bls ._739 @cond_branch\n\ + bl ._1534\n\ +._739:\n\ + lsl r0, r5, #0x2\n\ + ldr r1, ._741 + 4\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._742:\n\ + .align 2, 0\n\ +._741:\n\ + .word gBattleMoves\n\ + .word ._743\n\ +._743:\n\ + .word ._744\n\ + .word ._745\n\ + .word ._746\n\ + .word ._747\n\ + .word ._748\n\ + .word ._749\n\ + .word ._750\n\ + .word ._751\n\ + .word ._752\n\ + .word ._753\n\ + .word ._754\n\ + .word ._755\n\ + .word ._756\n\ + .word ._757\n\ + .word ._758\n\ + .word ._759\n\ + .word ._760\n\ + .word ._761\n\ + .word ._762\n\ + .word ._763\n\ +._744:\n\ + ldr r2, ._774\n\ + ldr r0, ._774 + 4\n\ + ldrb r1, [r2]\n\ + add r5, r0, #0\n\ + ldrb r0, [r5]\n\ + cmp r1, r0\n\ + bcc ._764 @cond_branch\n\ + mov r1, sl\n\ + strb r1, [r2]\n\ +._764:\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + cmp r0, #0x2d\n\ + bne ._765 @cond_branch\n\ + b ._766\n\ +._765:\n\ + cmp r0, #0x2d\n\ + bgt ._767 @cond_branch\n\ + cmp r0, #0xd\n\ + bne ._768 @cond_branch\n\ + b ._788\n\ +._768:\n\ + cmp r0, #0xd\n\ + bgt ._770 @cond_branch\n\ + cmp r0, #0x2\n\ + bne ._771 @cond_branch\n\ + b ._772\n\ +._771:\n\ + bl ._1534\n\ +._775:\n\ + .align 2, 0\n\ +._774:\n\ + .word gBankAttacker\n\ + .word gNoOfAllBanks\n\ +._770:\n\ + cmp r0, #0x16\n\ + bne ._776 @cond_branch\n\ + b ._777\n\ +._776:\n\ + cmp r0, #0x24\n\ + bne ._778 @cond_branch\n\ + b ._779\n\ +._778:\n\ + bl ._1534\n\ +._767:\n\ + cmp r0, #0x46\n\ + bne ._781 @cond_branch\n\ + b ._782\n\ +._781:\n\ + cmp r0, #0x46\n\ + bgt ._783 @cond_branch\n\ + cmp r0, #0x3b\n\ + bne ._784 @cond_branch\n\ + b ._785\n\ +._784:\n\ + bl ._1534\n\ +._783:\n\ + cmp r0, #0x4d\n\ + bne ._787 @cond_branch\n\ + b ._788\n\ +._787:\n\ + cmp r0, #0xff\n\ + beq ._789 @cond_branch\n\ + bl ._1534\n\ +._789:\n\ + bl weather_get_current\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + sub r0, r0, #0x3\n\ + cmp r0, #0xa\n\ + bhi ._814 @cond_branch\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._793\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._794:\n\ + .align 2, 0\n\ +._793:\n\ + .word ._792\n\ +._792:\n\ + .word ._805\n\ + .word ._814\n\ + .word ._805\n\ + .word ._814\n\ + .word ._814\n\ + .word ._800\n\ + .word ._814\n\ + .word ._814\n\ + .word ._814\n\ + .word ._804\n\ + .word ._805\n\ +._805:\n\ + ldr r2, ._808\n\ + ldrh r1, [r2]\n\ + mov r0, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._814 @cond_branch\n\ + mov r0, #0x5\n\ + strh r0, [r2]\n\ + ldr r0, ._808 + 4\n\ + ldr r3, ._808 + 8\n\ + add r2, r0, r3\n\ + mov r1, #0xa\n\ + b ._811\n\ +._809:\n\ + .align 2, 0\n\ +._808:\n\ + .word gBattleWeather\n\ + .word +0x2000000\n\ + .word 0x160a4\n\ +._800:\n\ + ldr r3, ._812\n\ + ldrh r1, [r3]\n\ + mov r2, #0x18\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._814 @cond_branch\n\ + strh r2, [r3]\n\ + ldr r0, ._812 + 4\n\ + ldr r3, ._812 + 8\n\ + add r2, r0, r3\n\ + mov r1, #0xc\n\ + b ._811\n\ +._813:\n\ + .align 2, 0\n\ +._812:\n\ + .word gBattleWeather\n\ + .word +0x2000000\n\ + .word 0x160a4\n\ +._804:\n\ + ldr r3, ._818\n\ + ldrh r1, [r3]\n\ + mov r2, #0x60\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._814 @cond_branch\n\ + strh r2, [r3]\n\ + ldr r0, ._818 + 4\n\ + ldr r3, ._818 + 8\n\ + add r2, r0, r3\n\ + mov r1, #0xb\n\ +._811:\n\ + strb r1, [r2]\n\ + ldr r5, ._818 + 12\n\ + add r0, r0, r5\n\ + mov r1, sl\n\ + strb r1, [r0]\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._814:\n\ + mov r2, r9\n\ + cmp r2, #0\n\ + bne ._815 @cond_branch\n\ + bl ._1540\n\ +._815:\n\ + bl weather_get_current\n\ + ldr r1, ._818 + 16\n\ + strb r0, [r1, #0x5]\n\ + ldr r0, ._818 + 20\n\ + bl BattleScriptPushCursorAndCallback\n\ + bl ._1534\n\ +._819:\n\ + .align 2, 0\n\ +._818:\n\ + .word gBattleWeather\n\ + .word +0x2000000\n\ + .word 0x160a4\n\ + .word 0x16003\n\ + .word gBattleCommunication\n\ + .word BattleScript_OverworldWeatherStarts\n\ +._772:\n\ + ldr r2, ._823\n\ + ldrh r1, [r2]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._820 @cond_branch\n\ + bl ._1534\n\ +._820:\n\ + mov r0, #0x5\n\ + strh r0, [r2]\n\ + ldr r0, ._823 + 4\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._823 + 8\n\ + ldr r3, ._823 + 12\n\ + add r0, r0, r3\n\ + mov r5, sl\n\ + strb r5, [r0]\n\ + bl ._1392\n\ +._824:\n\ + .align 2, 0\n\ +._823:\n\ + .word gBattleWeather\n\ + .word BattleScript_DrizzleActivates\n\ + .word +0x2000000\n\ + .word 0x16003\n\ +._766:\n\ + ldr r2, ._828\n\ + ldrh r1, [r2]\n\ + mov r0, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._825 @cond_branch\n\ + bl ._1534\n\ +._825:\n\ + mov r0, #0x18\n\ + strh r0, [r2]\n\ + ldr r0, ._828 + 4\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._828 + 8\n\ + ldr r1, ._828 + 12\n\ + add r0, r0, r1\n\ + mov r2, sl\n\ + strb r2, [r0]\n\ + bl ._1392\n\ +._829:\n\ + .align 2, 0\n\ +._828:\n\ + .word gBattleWeather\n\ + .word BattleScript_SandstreamActivates\n\ + .word +0x2000000\n\ + .word 0x16003\n\ +._782:\n\ + ldr r2, ._833\n\ + ldrh r1, [r2]\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._830 @cond_branch\n\ + bl ._1534\n\ +._830:\n\ + mov r0, #0x60\n\ + strh r0, [r2]\n\ + ldr r0, ._833 + 4\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._833 + 8\n\ + ldr r3, ._833 + 12\n\ + add r0, r0, r3\n\ + mov r5, sl\n\ + strb r5, [r0]\n\ + bl ._1392\n\ +._834:\n\ + .align 2, 0\n\ +._833:\n\ + .word gBattleWeather\n\ + .word BattleScript_DroughtActivates\n\ + .word +0x2000000\n\ + .word 0x16003\n\ +._777:\n\ + ldr r0, ._838\n\ + mov r1, sl\n\ + lsl r2, r1, #0x2\n\ + add r1, r2, r1\n\ + lsl r1, r1, #0x2\n\ + add r3, r1, r0\n\ + ldrb r0, [r3]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._835 @cond_branch\n\ + bl ._1534\n\ +._835:\n\ + ldr r1, ._838 + 4\n\ + add r1, r2, r1\n\ + ldr r0, [r1]\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0xc\n\ + orr r0, r0, r2\n\ + str r0, [r1]\n\ + ldrb r0, [r3]\n\ + mov r1, #0x8\n\ + b ._837\n\ +._839:\n\ + .align 2, 0\n\ +._838:\n\ + .word gSpecialStatuses\n\ + .word gStatuses3\n\ +._785:\n\ + mov r0, sl\n\ + bl CastformDataTypeChange\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ + cmp r0, #0\n\ + bne ._840 @cond_branch\n\ + bl ._1540\n\ +._840:\n\ + ldr r0, ._843\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._843 + 4\n\ + ldr r2, ._843 + 8\n\ + add r1, r0, r2\n\ + mov r3, sl\n\ + strb r3, [r1]\n\ + mov r1, r9\n\ + sub r1, r1, #0x1\n\ + ldr r5, ._843 + 12\n\ + add r0, r0, r5\n\ + strb r1, [r0]\n\ + bl ._1534\n\ +._844:\n\ + .align 2, 0\n\ +._843:\n\ + .word BattleScript_CastformChange\n\ + .word +0x2000000\n\ + .word 0x16003\n\ + .word 0x1609b\n\ +._779:\n\ + ldr r0, ._848\n\ + mov r1, sl\n\ + lsl r2, r1, #0x2\n\ + add r1, r2, r1\n\ + lsl r1, r1, #0x2\n\ + add r3, r1, r0\n\ + ldrb r0, [r3]\n\ + lsl r0, r0, #0x1b\n\ + cmp r0, #0\n\ + bge ._845 @cond_branch\n\ + bl ._1534\n\ +._845:\n\ + ldr r1, ._848 + 4\n\ + add r1, r2, r1\n\ + ldr r0, [r1]\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0xd\n\ + orr r0, r0, r2\n\ + str r0, [r1]\n\ + ldrb r0, [r3]\n\ + mov r1, #0x10\n\ +._837:\n\ + orr r0, r0, r1\n\ + strb r0, [r3]\n\ + bl ._1534\n\ +._849:\n\ + .align 2, 0\n\ +._848:\n\ + .word gSpecialStatuses\n\ + .word gStatuses3\n\ +._788:\n\ + mov r6, #0x0\n\ + ldrb r5, [r5]\n\ + cmp r6, r5\n\ + bcc ._854 @cond_branch\n\ + bl ._1534\n\ +._854:\n\ + add r0, r6, #0\n\ + bl CastformDataTypeChange\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ + cmp r0, #0\n\ + beq ._852 @cond_branch\n\ + bl ._853\n\ +._852:\n\ + add r0, r6, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r6, r0, #0x18\n\ + ldr r0, ._856\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bcc ._854 @cond_branch\n\ + bl ._1534\n\ +._857:\n\ + .align 2, 0\n\ +._856:\n\ + .word gNoOfAllBanks\n\ +._745:\n\ + ldr r2, ._865\n\ + mov r0, #0x58\n\ + mov r1, sl\n\ + mul r1, r1, r0\n\ + add r4, r1, r2\n\ + ldrh r0, [r4, #0x28]\n\ + cmp r0, #0\n\ + bne ._858 @cond_branch\n\ + bl ._1534\n\ +._858:\n\ + ldr r0, ._865 + 4\n\ + mov r3, sl\n\ + strb r3, [r0]\n\ + mov r3, r8\n\ + ldrb r5, [r3]\n\ + cmp r5, #0x2c\n\ + beq ._860 @cond_branch\n\ + cmp r5, #0x2c\n\ + bgt ._861 @cond_branch\n\ + cmp r5, #0x3\n\ + bne ._862 @cond_branch\n\ + b ._863\n\ +._862:\n\ + bl ._1534\n\ +._866:\n\ + .align 2, 0\n\ +._865:\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ +._861:\n\ + cmp r5, #0x36\n\ + bne ._867 @cond_branch\n\ + b ._868\n\ +._867:\n\ + cmp r5, #0x3d\n\ + beq ._869 @cond_branch\n\ + bl ._1534\n\ +._860:\n\ + mov r0, #0x0\n\ + str r0, [sp]\n\ + mov r0, #0x13\n\ + mov r1, #0x0\n\ + mov r2, #0xd\n\ + mov r3, #0x0\n\ + bl AbilityBattleEffects\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._871 @cond_branch\n\ + bl ._1534\n\ +._871:\n\ + str r0, [sp]\n\ + mov r0, #0x13\n\ + mov r1, #0x0\n\ + mov r2, #0x4d\n\ + mov r3, #0x0\n\ + bl AbilityBattleEffects\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._873 @cond_branch\n\ + bl ._1534\n\ +._873:\n\ + ldr r0, ._881\n\ + ldrh r1, [r0]\n\ + mov r0, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._875 @cond_branch\n\ + bl ._1534\n\ +._875:\n\ + ldrh r0, [r4, #0x2c]\n\ + ldrh r1, [r4, #0x28]\n\ + cmp r0, r1\n\ + bhi ._877 @cond_branch\n\ + bl ._1534\n\ +._877:\n\ + mov r2, r8\n\ + strb r5, [r2]\n\ + ldr r0, ._881 + 4\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r1, ._881 + 8\n\ + ldrh r0, [r4, #0x2c]\n\ + lsr r0, r0, #0x4\n\ + str r0, [r1]\n\ + cmp r0, #0\n\ + bne ._879 @cond_branch\n\ + mov r0, #0x1\n\ + str r0, [r1]\n\ +._879:\n\ + ldr r0, [r1]\n\ + neg r0, r0\n\ + str r0, [r1]\n\ + bl ._1392\n\ +._882:\n\ + .align 2, 0\n\ +._881:\n\ + .word gBattleWeather\n\ + .word BattleScript_RainDishActivates\n\ + .word gBattleMoveDamage\n\ +._869:\n\ + add r0, r2, #0\n\ + add r0, r0, #0x4c\n\ + add r5, r1, r0\n\ + ldrb r0, [r5]\n\ + cmp r0, #0\n\ + bne ._883 @cond_branch\n\ + bl ._1534\n\ +._883:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x3\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + lsr r4, r0, #0x10\n\ + cmp r4, #0\n\ + beq ._885 @cond_branch\n\ + bl ._1534\n\ +._885:\n\ + ldr r0, [r5]\n\ + mov r1, #0x88\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._887 @cond_branch\n\ + ldr r0, ._893\n\ + ldr r1, ._893 + 4\n\ + bl StringCopy\n\ +._887:\n\ + ldr r0, [r5]\n\ + mov r1, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._888 @cond_branch\n\ + ldr r0, ._893\n\ + ldr r1, ._893 + 8\n\ + bl StringCopy\n\ +._888:\n\ + ldr r0, [r5]\n\ + mov r1, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._889 @cond_branch\n\ + ldr r0, ._893\n\ + ldr r1, ._893 + 12\n\ + bl StringCopy\n\ +._889:\n\ + ldr r0, [r5]\n\ + mov r1, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._890 @cond_branch\n\ + ldr r0, ._893\n\ + ldr r1, ._893 + 16\n\ + bl StringCopy\n\ +._890:\n\ + ldr r0, [r5]\n\ + mov r1, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._891 @cond_branch\n\ + ldr r0, ._893\n\ + ldr r1, ._893 + 20\n\ + bl StringCopy\n\ +._891:\n\ + str r4, [r5]\n\ + ldr r0, ._893 + 24\n\ + ldr r4, ._893 + 28\n\ + mov r3, sl\n\ + strb r3, [r4]\n\ + ldr r1, ._893 + 32\n\ + add r0, r0, r1\n\ + strb r3, [r0]\n\ + ldr r0, ._893 + 36\n\ + bl BattleScriptPushCursorAndCallback\n\ + str r5, [sp]\n\ + mov r0, #0x0\n\ + mov r1, #0x28\n\ + mov r2, #0x0\n\ + mov r3, #0x4\n\ + bl EmitSetMonData\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + bl ._1392\n\ +._894:\n\ + .align 2, 0\n\ +._893:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_PoisonJpn\n\ + .word gStatusConditionString_SleepJpn\n\ + .word gStatusConditionString_ParalysisJpn\n\ + .word gStatusConditionString_BurnJpn\n\ + .word gStatusConditionString_IceJpn\n\ + .word +0x2000000\n\ + .word gActiveBank\n\ + .word 0x16003\n\ + .word BattleScript_ShedSkinActivates\n\ +._863:\n\ + ldrb r2, [r4, #0x1b]\n\ + mov r0, #0x1b\n\ + ldsb r0, [r4, r0]\n\ + cmp r0, #0xb\n\ + ble ._895 @cond_branch\n\ + bl ._1534\n\ +._895:\n\ + ldr r0, ._900\n\ + mov r3, sl\n\ + lsl r1, r3, #0x3\n\ + sub r1, r1, r3\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x16]\n\ + cmp r0, #0x2\n\ + bne ._897 @cond_branch\n\ + bl ._1534\n\ +._897:\n\ + add r0, r2, #1\n\ + mov r2, #0x0\n\ + strb r0, [r4, #0x1b]\n\ + ldr r5, ._900 + 4\n\ + add r1, r7, r5\n\ + mov r0, #0x11\n\ + strb r0, [r1]\n\ + ldr r1, ._900 + 8\n\ + add r0, r7, r1\n\ + strb r2, [r0]\n\ + ldr r0, ._900 + 12\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r2, ._900 + 16\n\ + add r0, r7, r2\n\ + mov r3, sl\n\ + strb r3, [r0]\n\ + bl ._1392\n\ +._901:\n\ + .align 2, 0\n\ +._900:\n\ + .word gDisableStructs\n\ + .word 0x160a4\n\ + .word 0x160a5\n\ + .word BattleScript_SpeedBoostActivates\n\ + .word 0x16003\n\ +._868:\n\ + ldr r2, ._903\n\ + ldrb r0, [r0]\n\ + lsl r1, r0, #0x3\n\ + sub r1, r1, r0\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r2\n\ + ldrb r3, [r1, #0x18]\n\ + lsl r0, r3, #0x1f\n\ + lsr r0, r0, #0x1f\n\ + mov r2, #0x1\n\ + eor r2, r2, r0\n\ + mov r0, #0x2\n\ + neg r0, r0\n\ + and r0, r0, r3\n\ + orr r0, r0, r2\n\ + strb r0, [r1, #0x18]\n\ + bl ._1534\n\ +._904:\n\ + .align 2, 0\n\ +._903:\n\ + .word gDisableStructs\n\ +._746:\n\ + mov r5, r8\n\ + ldrb r0, [r5]\n\ + cmp r0, #0x2b\n\ + beq ._905 @cond_branch\n\ + bl ._1534\n\ +._905:\n\ + mov r4, #0x0\n\ + ldr r0, ._917\n\ + ldrh r2, [r0]\n\ + ldr r5, ._917 + 4\n\ + add r1, r0, #0\n\ + cmp r2, r5\n\ + bne ._907 @cond_branch\n\ + bl ._1534\n\ +._907:\n\ + cmp r2, r3\n\ + beq ._909 @cond_branch\n\ + add r2, r1, #0\n\ +._912:\n\ + add r2, r2, #0x2\n\ + add r4, r4, #0x1\n\ + ldrh r0, [r2]\n\ + cmp r0, r5\n\ + bne ._910 @cond_branch\n\ + bl ._1534\n\ +._910:\n\ + cmp r0, r3\n\ + bne ._912 @cond_branch\n\ +._909:\n\ + lsl r0, r4, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + ldr r0, ._917 + 4\n\ + cmp r1, r0\n\ + bne ._913 @cond_branch\n\ + bl ._1534\n\ +._913:\n\ + ldr r1, ._917 + 8\n\ + ldr r0, ._917 + 12\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r1, r1, #0x50\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x5\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._915 @cond_branch\n\ + ldr r0, ._917 + 16\n\ + ldr r1, [r0]\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0x4\n\ + orr r1, r1, r2\n\ + str r1, [r0]\n\ +._915:\n\ + ldr r1, ._917 + 20\n\ + ldr r0, ._917 + 24\n\ + str r0, [r1]\n\ + mov r0, #0x1\n\ + mov r9, r0\n\ + bl ._916\n\ +._918:\n\ + .align 2, 0\n\ +._917:\n\ + .word gSoundMovesTable\n\ + .word 0xffff\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gHitMarker\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_SoundproofProtected\n\ +._747:\n\ + cmp r3, #0\n\ + bne ._919 @cond_branch\n\ + bl ._1534\n\ +._919:\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + cmp r0, #0xb\n\ + beq ._921 @cond_branch\n\ + cmp r0, #0xb\n\ + bgt ._922 @cond_branch\n\ + cmp r0, #0xa\n\ + beq ._923 @cond_branch\n\ + b ._956\n\ +._922:\n\ + cmp r0, #0x12\n\ + beq ._925 @cond_branch\n\ + b ._956\n\ +._923:\n\ + cmp r4, #0xd\n\ + beq ._927 @cond_branch\n\ + b ._956\n\ +._927:\n\ + ldr r0, ._933\n\ + lsl r1, r3, #0x1\n\ + add r1, r1, r3\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + cmp r0, #0\n\ + bne ._929 @cond_branch\n\ + b ._956\n\ +._929:\n\ + ldr r1, ._933 + 4\n\ + ldr r0, ._933 + 8\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0, #0x2]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._931 @cond_branch\n\ + ldr r1, ._933 + 12\n\ + ldr r0, ._933 + 16\n\ + b ._932\n\ +._934:\n\ + .align 2, 0\n\ +._933:\n\ + .word gBattleMoves\n\ + .word gProtectStructs\n\ + .word gBankAttacker\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveHPDrain\n\ +._931:\n\ + ldr r1, ._936\n\ + ldr r0, ._936 + 4\n\ +._932:\n\ + str r0, [r1]\n\ + mov r2, #0x1\n\ + b ._935\n\ +._937:\n\ + .align 2, 0\n\ +._936:\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveHPDrain_PPLoss\n\ +._921:\n\ + cmp r4, #0xb\n\ + beq ._938 @cond_branch\n\ + b ._956\n\ +._938:\n\ + ldr r0, ._944\n\ + lsl r1, r3, #0x1\n\ + add r1, r1, r3\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + cmp r0, #0\n\ + bne ._940 @cond_branch\n\ + b ._956\n\ +._940:\n\ + ldr r1, ._944 + 4\n\ + ldr r0, ._944 + 8\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0, #0x2]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._942 @cond_branch\n\ + ldr r1, ._944 + 12\n\ + ldr r0, ._944 + 16\n\ + b ._943\n\ +._945:\n\ + .align 2, 0\n\ +._944:\n\ + .word gBattleMoves\n\ + .word gProtectStructs\n\ + .word gBankAttacker\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveHPDrain\n\ +._942:\n\ + ldr r1, ._947\n\ + ldr r0, ._947 + 4\n\ +._943:\n\ + str r0, [r1]\n\ + mov r3, #0x1\n\ + mov r9, r3\n\ + b ._956\n\ +._948:\n\ + .align 2, 0\n\ +._947:\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveHPDrain_PPLoss\n\ +._925:\n\ + cmp r4, #0xa\n\ + bne ._956 @cond_branch\n\ + ldr r1, ._954\n\ + mov r0, #0x58\n\ + mov r5, sl\n\ + mul r5, r5, r0\n\ + add r0, r5, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._956 @cond_branch\n\ + ldr r2, ._954 + 4\n\ + mov r0, sl\n\ + lsl r1, r0, #0x2\n\ + add r0, r1, r2\n\ + ldr r3, [r0]\n\ + mov r4, #0x1\n\ + and r3, r3, r4\n\ + add r5, r1, #0\n\ + cmp r3, #0\n\ + bne ._951 @cond_branch\n\ + ldr r0, ._954 + 8\n\ + strb r3, [r0, #0x5]\n\ + ldr r1, ._954 + 12\n\ + ldr r0, ._954 + 16\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0, #0x2]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._952 @cond_branch\n\ + ldr r1, ._954 + 20\n\ + ldr r0, ._954 + 24\n\ + b ._953\n\ +._955:\n\ + .align 2, 0\n\ +._954:\n\ + .word gBattleMons\n\ + .word +0x2017100\n\ + .word gBattleCommunication\n\ + .word gProtectStructs\n\ + .word gBankAttacker\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_FlashFireBoost\n\ +._952:\n\ + ldr r1, ._957\n\ + ldr r0, ._957 + 4\n\ +._953:\n\ + str r0, [r1]\n\ + add r0, r5, r2\n\ + ldr r1, [r0]\n\ + mov r2, #0x1\n\ + orr r1, r1, r2\n\ + str r1, [r0]\n\ + mov r1, #0x2\n\ + mov r9, r1\n\ + b ._956\n\ +._958:\n\ + .align 2, 0\n\ +._957:\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_FlashFireBoost_PPLoss\n\ +._951:\n\ + ldr r0, ._961\n\ + strb r4, [r0, #0x5]\n\ + ldr r1, ._961 + 4\n\ + ldr r0, ._961 + 8\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0, #0x2]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._959 @cond_branch\n\ + ldr r1, ._961 + 12\n\ + ldr r0, ._961 + 16\n\ + b ._960\n\ +._962:\n\ + .align 2, 0\n\ +._961:\n\ + .word gBattleCommunication\n\ + .word gProtectStructs\n\ + .word gBankAttacker\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_FlashFireBoost\n\ +._959:\n\ + ldr r1, ._968\n\ + ldr r0, ._968 + 4\n\ +._960:\n\ + str r0, [r1]\n\ + mov r2, #0x2\n\ +._935:\n\ + mov r9, r2\n\ +._956:\n\ + mov r3, r9\n\ + cmp r3, #0x1\n\ + beq ._963 @cond_branch\n\ + bl ._1534\n\ +._963:\n\ + ldr r1, ._968 + 8\n\ + mov r0, #0x58\n\ + mov r5, sl\n\ + mul r5, r5, r0\n\ + add r0, r5, #0\n\ + add r1, r0, r1\n\ + ldrh r0, [r1, #0x2c]\n\ + ldrh r2, [r1, #0x28]\n\ + cmp r0, r2\n\ + bne ._965 @cond_branch\n\ + ldr r1, ._968 + 12\n\ + ldr r0, ._968 + 16\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0, #0x2]\n\ + lsl r0, r0, #0x1c\n\ + cmp r0, #0\n\ + bge ._966 @cond_branch\n\ + ldr r1, ._968\n\ + ldr r0, ._968 + 20\n\ + str r0, [r1]\n\ + bl ._1534\n\ +._969:\n\ + .align 2, 0\n\ +._968:\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_FlashFireBoost_PPLoss\n\ + .word gBattleMons\n\ + .word gProtectStructs\n\ + .word gBankAttacker\n\ + .word BattleScript_MoveHPDrain_FullHP\n\ +._966:\n\ + ldr r1, ._971\n\ + ldr r0, ._971 + 4\n\ + str r0, [r1]\n\ + bl ._1534\n\ +._972:\n\ + .align 2, 0\n\ +._971:\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveHPDrain_FullHP_PPLoss\n\ +._965:\n\ + ldr r2, ._975\n\ + ldrh r0, [r1, #0x2c]\n\ + lsr r0, r0, #0x2\n\ + str r0, [r2]\n\ + cmp r0, #0\n\ + bne ._973 @cond_branch\n\ + mov r3, r9\n\ + str r3, [r2]\n\ +._973:\n\ + ldr r0, [r2]\n\ + neg r0, r0\n\ + str r0, [r2]\n\ + bl ._1534\n\ +._976:\n\ + .align 2, 0\n\ +._975:\n\ + .word gBattleMoveDamage\n\ +._748:\n\ + mov r5, r8\n\ + ldrb r0, [r5]\n\ + sub r0, r0, #0x9\n\ + cmp r0, #0x2f\n\ + bls ._977 @cond_branch\n\ + bl ._1534\n\ +._977:\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._980\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._981:\n\ + .align 2, 0\n\ +._980:\n\ + .word ._979\n\ +._979:\n\ + .word ._982\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._989\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._997\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1000\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1011\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1022\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1534\n\ + .word ._1029\n\ +._989:\n\ + ldr r0, ._1046\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1030 @cond_branch\n\ + bl ._1534\n\ +._1030:\n\ + cmp r3, #0xa5\n\ + bne ._1032 @cond_branch\n\ + bl ._1534\n\ +._1032:\n\ + ldr r0, ._1046 + 4\n\ + lsl r1, r3, #0x1\n\ + add r1, r1, r3\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + cmp r0, #0\n\ + bne ._1034 @cond_branch\n\ + bl ._1534\n\ +._1034:\n\ + ldr r2, ._1046 + 8\n\ + ldr r0, ._1046 + 12\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1037 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1037 @cond_branch\n\ + bl ._1534\n\ +._1037:\n\ + ldr r1, ._1046 + 16\n\ + mov r0, #0x58\n\ + mov r2, sl\n\ + mul r2, r2, r0\n\ + add r0, r2, #0\n\ + add r1, r0, r1\n\ + add r3, r1, #0\n\ + add r3, r3, #0x21\n\ + ldrb r0, [r3]\n\ + cmp r0, r4\n\ + bne ._1039 @cond_branch\n\ + bl ._1534\n\ +._1039:\n\ + add r2, r1, #0\n\ + add r2, r2, #0x22\n\ + ldrb r0, [r2]\n\ + cmp r0, r4\n\ + bne ._1041 @cond_branch\n\ + bl ._1534\n\ +._1041:\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + bne ._1043 @cond_branch\n\ + bl ._1534\n\ +._1043:\n\ + strb r4, [r3]\n\ + strb r4, [r2]\n\ + ldr r1, ._1046 + 20\n\ + mov r0, #0xfd\n\ + strb r0, [r1]\n\ + mov r0, #0x3\n\ + strb r0, [r1, #0x1]\n\ + strb r4, [r1, #0x2]\n\ + mov r0, #0xff\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1046 + 24\n\ + ldr r0, ._1046 + 28\n\ + str r0, [r1]\n\ + bl ._1392\n\ +._1047:\n\ + .align 2, 0\n\ +._1046:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMoves\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMons\n\ + .word gBattleTextBuff1\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ColorChangeActivates\n\ +._997:\n\ + ldr r0, ._1061\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1048 @cond_branch\n\ + bl ._1534\n\ +._1048:\n\ + ldr r1, ._1061 + 4\n\ + ldr r0, ._1061 + 8\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r4, r0, r1\n\ + ldrh r0, [r4, #0x28]\n\ + cmp r0, #0\n\ + bne ._1050 @cond_branch\n\ + bl ._1534\n\ +._1050:\n\ + ldr r0, ._1061 + 12\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1052 @cond_branch\n\ + bl ._1534\n\ +._1052:\n\ + ldr r2, ._1061 + 16\n\ + ldr r0, ._1061 + 20\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1055 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1055 @cond_branch\n\ + bl ._1534\n\ +._1055:\n\ + ldr r1, ._1061 + 24\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r2, #0x1\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1057 @cond_branch\n\ + bl ._1534\n\ +._1057:\n\ + ldr r1, ._1061 + 28\n\ + ldrh r0, [r4, #0x2c]\n\ + lsr r0, r0, #0x4\n\ + str r0, [r1]\n\ + cmp r0, #0\n\ + bne ._1059 @cond_branch\n\ + str r2, [r1]\n\ +._1059:\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1061 + 32\n\ + ldr r0, ._1061 + 36\n\ + str r0, [r1]\n\ + bl ._1392\n\ +._1062:\n\ + .align 2, 0\n\ +._1061:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleMoveDamage\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_RoughSkinActivates\n\ +._1000:\n\ + ldr r0, ._1078\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1063 @cond_branch\n\ + ldr r0, ._1078 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1064 @cond_branch\n\ + bl ._1534\n\ +._1064:\n\ + ldr r1, ._1078 + 8\n\ + ldr r0, ._1078 + 12\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1066 @cond_branch\n\ + bl ._1534\n\ +._1066:\n\ + ldr r0, ._1078 + 16\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1068 @cond_branch\n\ + bl ._1534\n\ +._1068:\n\ + ldr r2, ._1078 + 20\n\ + ldr r0, ._1078 + 24\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1071 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1071 @cond_branch\n\ + bl ._1534\n\ +._1071:\n\ + ldr r1, ._1078 + 28\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1073 @cond_branch\n\ + bl ._1534\n\ +._1073:\n\ + ldr r5, ._1078 + 32\n\ + mov r4, #0x3\n\ +._1075:\n\ + bl Random\n\ + and r0, r0, r4\n\ + strb r0, [r5, #0x3]\n\ + cmp r0, #0\n\ + beq ._1075 @cond_branch\n\ + ldr r1, ._1078 + 32\n\ + ldrb r0, [r1, #0x3]\n\ + cmp r0, #0x3\n\ + bne ._1076 @cond_branch\n\ + add r0, r0, #0x2\n\ + strb r0, [r1, #0x3]\n\ +._1076:\n\ + ldrb r0, [r1, #0x3]\n\ + add r0, r0, #0x40\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1078 + 36\n\ + ldr r0, ._1078 + 40\n\ + str r0, [r1]\n\ + ldr r2, ._1078 + 44\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1079:\n\ + .align 2, 0\n\ +._1078:\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1063:\n\ + ldr r0, ._1096\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1080 @cond_branch\n\ + bl ._1534\n\ +._1080:\n\ + ldr r1, ._1096 + 4\n\ + ldr r0, ._1096 + 8\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1082 @cond_branch\n\ + bl ._1534\n\ +._1082:\n\ + ldr r0, ._1096 + 12\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1084 @cond_branch\n\ + bl ._1534\n\ +._1084:\n\ + ldr r2, ._1096 + 16\n\ + ldr r0, ._1096 + 20\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1087 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1087 @cond_branch\n\ + bl ._1534\n\ +._1087:\n\ + ldr r1, ._1096 + 24\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1089 @cond_branch\n\ + bl ._1534\n\ +._1089:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0xa\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + beq ._1091 @cond_branch\n\ + bl ._1534\n\ +._1091:\n\ + ldr r5, ._1096 + 28\n\ + mov r4, #0x3\n\ +._1093:\n\ + bl Random\n\ + and r0, r0, r4\n\ + strb r0, [r5, #0x3]\n\ + cmp r0, #0\n\ + beq ._1093 @cond_branch\n\ + ldr r1, ._1096 + 28\n\ + ldrb r0, [r1, #0x3]\n\ + cmp r0, #0x3\n\ + bne ._1094 @cond_branch\n\ + add r0, r0, #0x2\n\ + strb r0, [r1, #0x3]\n\ +._1094:\n\ + ldrb r0, [r1, #0x3]\n\ + add r0, r0, #0x40\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1096 + 32\n\ + ldr r0, ._1096 + 36\n\ + str r0, [r1]\n\ + ldr r2, ._1096 + 40\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1097:\n\ + .align 2, 0\n\ +._1096:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1011:\n\ + ldr r0, ._1111\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1098 @cond_branch\n\ + ldr r0, ._1111 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1099 @cond_branch\n\ + bl ._1534\n\ +._1099:\n\ + ldr r1, ._1111 + 8\n\ + ldr r0, ._1111 + 12\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1101 @cond_branch\n\ + bl ._1534\n\ +._1101:\n\ + ldr r0, ._1111 + 16\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1103 @cond_branch\n\ + bl ._1534\n\ +._1103:\n\ + ldr r2, ._1111 + 20\n\ + ldr r0, ._1111 + 24\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1106 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1106 @cond_branch\n\ + bl ._1534\n\ +._1106:\n\ + ldr r1, ._1111 + 28\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1108 @cond_branch\n\ + bl ._1534\n\ +._1108:\n\ + ldr r1, ._1111 + 32\n\ + mov r0, #0x42\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1111 + 36\n\ + ldr r0, ._1111 + 40\n\ + str r0, [r1]\n\ + ldr r2, ._1111 + 44\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1112:\n\ + .align 2, 0\n\ +._1111:\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1098:\n\ + ldr r0, ._1127\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1113 @cond_branch\n\ + bl ._1534\n\ +._1113:\n\ + ldr r1, ._1127 + 4\n\ + ldr r0, ._1127 + 8\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1115 @cond_branch\n\ + bl ._1534\n\ +._1115:\n\ + ldr r0, ._1127 + 12\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1117 @cond_branch\n\ + bl ._1534\n\ +._1117:\n\ + ldr r2, ._1127 + 16\n\ + ldr r0, ._1127 + 20\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1120 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1120 @cond_branch\n\ + bl ._1534\n\ +._1120:\n\ + ldr r1, ._1127 + 24\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1122 @cond_branch\n\ + bl ._1534\n\ +._1122:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x3\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + beq ._1124 @cond_branch\n\ + bl ._1534\n\ +._1124:\n\ + ldr r1, ._1127 + 28\n\ + mov r0, #0x42\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1127 + 32\n\ + ldr r0, ._1127 + 36\n\ + str r0, [r1]\n\ + ldr r2, ._1127 + 40\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1128:\n\ + .align 2, 0\n\ +._1127:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._982:\n\ + ldr r0, ._1142\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1129 @cond_branch\n\ + ldr r0, ._1142 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1130 @cond_branch\n\ + bl ._1534\n\ +._1130:\n\ + ldr r1, ._1142 + 8\n\ + ldr r0, ._1142 + 12\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1132 @cond_branch\n\ + bl ._1534\n\ +._1132:\n\ + ldr r0, ._1142 + 16\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1134 @cond_branch\n\ + bl ._1534\n\ +._1134:\n\ + ldr r2, ._1142 + 20\n\ + ldr r0, ._1142 + 24\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1137 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1137 @cond_branch\n\ + bl ._1534\n\ +._1137:\n\ + ldr r1, ._1142 + 28\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1139 @cond_branch\n\ + bl ._1534\n\ +._1139:\n\ + ldr r1, ._1142 + 32\n\ + mov r0, #0x45\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1142 + 36\n\ + ldr r0, ._1142 + 40\n\ + str r0, [r1]\n\ + ldr r2, ._1142 + 44\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1143:\n\ + .align 2, 0\n\ +._1142:\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1129:\n\ + ldr r0, ._1158\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1144 @cond_branch\n\ + bl ._1534\n\ +._1144:\n\ + ldr r1, ._1158 + 4\n\ + ldr r0, ._1158 + 8\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1146 @cond_branch\n\ + bl ._1534\n\ +._1146:\n\ + ldr r0, ._1158 + 12\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1148 @cond_branch\n\ + bl ._1534\n\ +._1148:\n\ + ldr r2, ._1158 + 16\n\ + ldr r0, ._1158 + 20\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1151 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1151 @cond_branch\n\ + bl ._1534\n\ +._1151:\n\ + ldr r1, ._1158 + 24\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1153 @cond_branch\n\ + bl ._1534\n\ +._1153:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x3\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + beq ._1155 @cond_branch\n\ + bl ._1534\n\ +._1155:\n\ + ldr r1, ._1158 + 28\n\ + mov r0, #0x45\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1158 + 32\n\ + ldr r0, ._1158 + 36\n\ + str r0, [r1]\n\ + ldr r2, ._1158 + 40\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1159:\n\ + .align 2, 0\n\ +._1158:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleMoves\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1022:\n\ + ldr r0, ._1173\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1160 @cond_branch\n\ + ldr r0, ._1173 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1161 @cond_branch\n\ + bl ._1534\n\ +._1161:\n\ + ldr r1, ._1173 + 8\n\ + ldr r0, ._1173 + 12\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1163 @cond_branch\n\ + bl ._1534\n\ +._1163:\n\ + ldr r0, ._1173 + 16\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1165 @cond_branch\n\ + bl ._1534\n\ +._1165:\n\ + ldr r1, ._1173 + 20\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1167 @cond_branch\n\ + bl ._1534\n\ +._1167:\n\ + ldr r2, ._1173 + 24\n\ + ldr r0, ._1173 + 28\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1170 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1170 @cond_branch\n\ + bl ._1534\n\ +._1170:\n\ + ldr r1, ._1173 + 32\n\ + mov r0, #0x43\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1173 + 36\n\ + ldr r0, ._1173 + 40\n\ + str r0, [r1]\n\ + ldr r2, ._1173 + 44\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1174:\n\ + .align 2, 0\n\ +._1173:\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gBattleMoves\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1160:\n\ + ldr r0, ._1189\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1175 @cond_branch\n\ + bl ._1534\n\ +._1175:\n\ + ldr r1, ._1189 + 4\n\ + ldr r0, ._1189 + 8\n\ + ldrb r2, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r2\n\ + add r0, r0, r1\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1177 @cond_branch\n\ + bl ._1534\n\ +._1177:\n\ + ldr r0, ._1189 + 12\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1179 @cond_branch\n\ + bl ._1534\n\ +._1179:\n\ + ldr r1, ._1189 + 16\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1181 @cond_branch\n\ + bl ._1534\n\ +._1181:\n\ + ldr r2, ._1189 + 20\n\ + ldr r0, ._1189 + 24\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r1, r0, #0x2\n\ + add r0, r2, #0\n\ + add r0, r0, #0x8\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1184 @cond_branch\n\ + add r0, r2, #0\n\ + add r0, r0, #0xc\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1184 @cond_branch\n\ + bl ._1534\n\ +._1184:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x3\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + beq ._1186 @cond_branch\n\ + bl ._1534\n\ +._1186:\n\ + ldr r1, ._1189 + 28\n\ + mov r0, #0x43\n\ + strb r0, [r1, #0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1189 + 32\n\ + ldr r0, ._1189 + 36\n\ + str r0, [r1]\n\ + ldr r2, ._1189 + 40\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl ._1392\n\ +._1190:\n\ + .align 2, 0\n\ +._1189:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gBattleMoves\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_ApplySecondaryEffect\n\ + .word gHitMarker\n\ +._1029:\n\ + ldr r0, ._1217\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1191 @cond_branch\n\ + b ._1192\n\ +._1191:\n\ + ldr r0, ._1217 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1193 @cond_branch\n\ + bl ._1534\n\ +._1193:\n\ + ldr r5, ._1217 + 8\n\ + ldr r7, ._1217 + 12\n\ + ldrb r1, [r7]\n\ + mov r6, #0x58\n\ + add r0, r1, #0\n\ + mul r0, r0, r6\n\ + add r4, r0, r5\n\ + ldrh r0, [r4, #0x28]\n\ + cmp r0, #0\n\ + bne ._1195 @cond_branch\n\ + bl ._1534\n\ +._1195:\n\ + ldr r0, ._1217 + 16\n\ + lsl r1, r1, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1197 @cond_branch\n\ + bl ._1534\n\ +._1197:\n\ + ldr r1, ._1217 + 20\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1199 @cond_branch\n\ + bl ._1534\n\ +._1199:\n\ + ldr r3, ._1217 + 24\n\ + ldr r0, ._1217 + 28\n\ + mov r8, r0\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r2, r0, #0x2\n\ + add r0, r3, #0\n\ + add r0, r0, #0x8\n\ + add r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1202 @cond_branch\n\ + add r0, r3, #0\n\ + add r0, r0, #0xc\n\ + add r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1202 @cond_branch\n\ + bl ._1534\n\ +._1202:\n\ + add r0, r1, #0\n\ + mul r0, r0, r6\n\ + add r0, r0, r5\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1204 @cond_branch\n\ + bl ._1534\n\ +._1204:\n\ + add r0, r4, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0xc\n\ + bne ._1206 @cond_branch\n\ + bl ._1534\n\ +._1206:\n\ + ldr r0, [sp, #0x8]\n\ + ldr r1, [sp, #0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + add r4, r0, #0\n\ + ldr r0, [sp, #0xc]\n\ + ldr r1, [sp, #0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r4, r4, #0x18\n\ + lsl r0, r0, #0x18\n\ + cmp r4, r0\n\ + bne ._1208 @cond_branch\n\ + bl ._1534\n\ +._1208:\n\ + ldrb r0, [r7]\n\ + mul r0, r0, r6\n\ + add r4, r5, #0\n\ + add r4, r4, #0x50\n\ + add r0, r0, r4\n\ + ldr r0, [r0]\n\ + mov r1, #0xf0\n\ + lsl r1, r1, #0xc\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1210 @cond_branch\n\ + bl ._1534\n\ +._1210:\n\ + ldr r0, [sp, #0x8]\n\ + ldr r1, [sp, #0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0xff\n\ + bne ._1212 @cond_branch\n\ + bl ._1534\n\ +._1212:\n\ + ldr r0, [sp, #0xc]\n\ + ldr r1, [sp, #0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0xff\n\ + bne ._1214 @cond_branch\n\ + bl ._1534\n\ +._1214:\n\ + ldrb r0, [r7]\n\ + add r2, r0, #0\n\ + mul r2, r2, r6\n\ + add r2, r2, r4\n\ + ldr r1, ._1217 + 32\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, [r0]\n\ + lsl r1, r1, #0x10\n\ + ldr r0, [r2]\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1217 + 36\n\ + ldr r0, ._1217 + 40\n\ + str r0, [r1]\n\ + bl ._1392\n\ +._1218:\n\ + .align 2, 0\n\ +._1217:\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gBattleMoves\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBitTable\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_CuteCharmActivates\n\ +._1192:\n\ + ldr r0, ._1245\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1219 @cond_branch\n\ + bl ._1534\n\ +._1219:\n\ + ldr r5, ._1245 + 4\n\ + ldr r7, ._1245 + 8\n\ + ldrb r1, [r7]\n\ + mov r6, #0x58\n\ + add r0, r1, #0\n\ + mul r0, r0, r6\n\ + add r0, r0, r5\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1221 @cond_branch\n\ + bl ._1534\n\ +._1221:\n\ + ldr r0, ._1245 + 12\n\ + lsl r1, r1, #0x4\n\ + add r1, r1, r0\n\ + ldrb r0, [r1, #0x1]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._1223 @cond_branch\n\ + bl ._1534\n\ +._1223:\n\ + ldr r1, ._1245 + 16\n\ + lsl r0, r3, #0x1\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x8]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1225 @cond_branch\n\ + bl ._1534\n\ +._1225:\n\ + ldr r3, ._1245 + 20\n\ + ldr r0, ._1245 + 24\n\ + mov r8, r0\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r2, r0, #0x2\n\ + add r0, r3, #0\n\ + add r0, r0, #0x8\n\ + add r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1228 @cond_branch\n\ + add r0, r3, #0\n\ + add r0, r0, #0xc\n\ + add r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, #0\n\ + bne ._1228 @cond_branch\n\ + bl ._1534\n\ +._1228:\n\ + add r0, r1, #0\n\ + mul r0, r0, r6\n\ + add r0, r0, r5\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + bne ._1230 @cond_branch\n\ + bl ._1534\n\ +._1230:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x3\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + beq ._1232 @cond_branch\n\ + bl ._1534\n\ +._1232:\n\ + ldrb r0, [r7]\n\ + mul r0, r0, r6\n\ + add r0, r0, r5\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0xc\n\ + bne ._1234 @cond_branch\n\ + bl ._1534\n\ +._1234:\n\ + ldr r0, [sp, #0x8]\n\ + ldr r1, [sp, #0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + add r4, r0, #0\n\ + ldr r0, [sp, #0xc]\n\ + ldr r1, [sp, #0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r4, r4, #0x18\n\ + lsl r0, r0, #0x18\n\ + cmp r4, r0\n\ + bne ._1236 @cond_branch\n\ + bl ._1534\n\ +._1236:\n\ + ldrb r0, [r7]\n\ + mul r0, r0, r6\n\ + add r4, r5, #0\n\ + add r4, r4, #0x50\n\ + add r0, r0, r4\n\ + ldr r0, [r0]\n\ + mov r1, #0xf0\n\ + lsl r1, r1, #0xc\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1238 @cond_branch\n\ + bl ._1534\n\ +._1238:\n\ + ldr r0, [sp, #0x8]\n\ + ldr r1, [sp, #0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0xff\n\ + bne ._1240 @cond_branch\n\ + bl ._1534\n\ +._1240:\n\ + ldr r0, [sp, #0xc]\n\ + ldr r1, [sp, #0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0xff\n\ + bne ._1242 @cond_branch\n\ + bl ._1534\n\ +._1242:\n\ + ldrb r0, [r7]\n\ + add r2, r0, #0\n\ + mul r2, r2, r6\n\ + add r2, r2, r4\n\ + ldr r1, ._1245 + 28\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, [r0]\n\ + lsl r1, r1, #0x10\n\ + ldr r0, [r2]\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1245 + 32\n\ + ldr r0, ._1245 + 36\n\ + str r0, [r1]\n\ + bl ._1392\n\ +._1246:\n\ + .align 2, 0\n\ +._1245:\n\ + .word gBattleMoveFlags\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gProtectStructs\n\ + .word gBattleMoves\n\ + .word gSpecialStatuses\n\ + .word gBankTarget\n\ + .word gBitTable\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_CuteCharmActivates\n\ +._749:\n\ + mov r5, #0x0\n\ + mov sl, r5\n\ + ldr r0, ._1251\n\ + ldrb r0, [r0]\n\ + cmp sl, r0\n\ + bcc ._1366 @cond_branch\n\ + bl ._1534\n\ +._1366:\n\ + ldr r1, ._1251 + 4\n\ + mov r0, #0x58\n\ + mov r2, sl\n\ + mul r2, r2, r0\n\ + add r0, r2, #0\n\ + add r0, r0, r1\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + sub r0, r0, #0x7\n\ + add r2, r1, #0\n\ + cmp r0, #0x41\n\ + bls ._1249 @cond_branch\n\ + b ._1346\n\ +._1249:\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._1251 + 8\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._1252:\n\ + .align 2, 0\n\ +._1251:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word ._1253\n\ +._1253:\n\ + .word ._1254\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1259\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1319\n\ + .word ._1346\n\ + .word ._1264\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1267\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1287\n\ + .word ._1288\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1346\n\ + .word ._1319\n\ +._1264:\n\ + mov r0, #0x58\n\ + mov r3, sl\n\ + mul r3, r3, r0\n\ + add r0, r3, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + ldr r1, ._1323\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1320 @cond_branch\n\ + b ._1346\n\ +._1320:\n\ + ldr r0, ._1323 + 4\n\ + ldr r1, ._1323 + 8\n\ + b ._1331\n\ +._1324:\n\ + .align 2, 0\n\ +._1323:\n\ + .word 0xf88\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_PoisonJpn\n\ +._1267:\n\ + mov r0, #0x58\n\ + mov r1, sl\n\ + mul r1, r1, r0\n\ + add r0, r1, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x50\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1325 @cond_branch\n\ + b ._1346\n\ +._1325:\n\ + ldr r0, ._1328\n\ + ldr r1, ._1328 + 4\n\ + bl StringCopy\n\ + mov r2, #0x2\n\ + mov r9, r2\n\ + b ._1343\n\ +._1329:\n\ + .align 2, 0\n\ +._1328:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_ConfusionJpn\n\ +._1254:\n\ + mov r0, #0x58\n\ + mov r3, sl\n\ + mul r3, r3, r0\n\ + add r0, r3, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1346 @cond_branch\n\ + ldr r0, ._1332\n\ + ldr r1, ._1332 + 4\n\ + b ._1331\n\ +._1333:\n\ + .align 2, 0\n\ +._1332:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_ParalysisJpn\n\ +._1319:\n\ + mov r0, #0x58\n\ + mov r3, sl\n\ + mul r3, r3, r0\n\ + add r0, r2, #0\n\ + add r0, r0, #0x4c\n\ + add r0, r3, r0\n\ + ldr r0, [r0]\n\ + mov r1, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1346 @cond_branch\n\ + add r2, r2, #0x50\n\ + add r2, r3, r2\n\ + ldr r0, [r2]\n\ + ldr r1, ._1336\n\ + and r0, r0, r1\n\ + str r0, [r2]\n\ + ldr r0, ._1336 + 4\n\ + ldr r1, ._1336 + 8\n\ + bl StringCopy\n\ + mov r0, #0x1\n\ + mov r9, r0\n\ + b ._1343\n\ +._1337:\n\ + .align 2, 0\n\ +._1336:\n\ + .word 0xf7ffffff\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_SleepJpn\n\ +._1288:\n\ + mov r0, #0x58\n\ + mov r1, sl\n\ + mul r1, r1, r0\n\ + add r0, r1, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1346 @cond_branch\n\ + ldr r0, ._1340\n\ + ldr r1, ._1340 + 4\n\ + bl StringCopy\n\ + mov r2, #0x1\n\ + mov r9, r2\n\ + b ._1343\n\ +._1341:\n\ + .align 2, 0\n\ +._1340:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_BurnJpn\n\ +._1287:\n\ + mov r0, #0x58\n\ + mov r3, sl\n\ + mul r3, r3, r0\n\ + add r0, r3, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1346 @cond_branch\n\ + ldr r0, ._1344\n\ + ldr r1, ._1344 + 4\n\ +._1331:\n\ + bl StringCopy\n\ + mov r5, #0x1\n\ + mov r9, r5\n\ + b ._1343\n\ +._1345:\n\ + .align 2, 0\n\ +._1344:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_IceJpn\n\ +._1259:\n\ + mov r0, #0x58\n\ + mov r1, sl\n\ + mul r1, r1, r0\n\ + add r0, r1, #0\n\ + add r1, r2, #0\n\ + add r1, r1, #0x50\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0xf0\n\ + lsl r1, r1, #0xc\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1346 @cond_branch\n\ + ldr r0, ._1352\n\ + ldr r1, ._1352 + 4\n\ + bl StringCopy\n\ + mov r2, #0x3\n\ + mov r9, r2\n\ +._1346:\n\ + mov r3, r9\n\ + cmp r3, #0\n\ + beq ._1347 @cond_branch\n\ +._1343:\n\ + mov r5, r9\n\ + cmp r5, #0x2\n\ + beq ._1348 @cond_branch\n\ + cmp r5, #0x2\n\ + bgt ._1349 @cond_branch\n\ + cmp r5, #0x1\n\ + beq ._1350 @cond_branch\n\ + b ._1355\n\ +._1353:\n\ + .align 2, 0\n\ +._1352:\n\ + .word gBattleTextBuff1\n\ + .word gStatusConditionString_LoveJpn\n\ +._1349:\n\ + mov r0, r9\n\ + cmp r0, #0x3\n\ + beq ._1354 @cond_branch\n\ + b ._1355\n\ +._1350:\n\ + ldr r1, ._1357\n\ + mov r0, #0x58\n\ + mov r2, sl\n\ + mul r2, r2, r0\n\ + add r1, r1, #0x4c\n\ + add r2, r2, r1\n\ + mov r0, #0x0\n\ + b ._1356\n\ +._1358:\n\ + .align 2, 0\n\ +._1357:\n\ + .word gBattleMons\n\ +._1348:\n\ + ldr r1, ._1360\n\ + mov r0, #0x58\n\ + mov r2, sl\n\ + mul r2, r2, r0\n\ + add r1, r1, #0x50\n\ + add r2, r2, r1\n\ + ldr r0, [r2]\n\ + mov r1, #0x8\n\ + neg r1, r1\n\ + b ._1359\n\ +._1361:\n\ + .align 2, 0\n\ +._1360:\n\ + .word gBattleMons\n\ +._1354:\n\ + ldr r1, ._1363\n\ + mov r0, #0x58\n\ + mov r2, sl\n\ + mul r2, r2, r0\n\ + add r1, r1, #0x50\n\ + add r2, r2, r1\n\ + ldr r0, [r2]\n\ + ldr r1, ._1363 + 4\n\ +._1359:\n\ + and r0, r0, r1\n\ +._1356:\n\ + str r0, [r2]\n\ +._1355:\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1363 + 8\n\ + ldr r0, ._1363 + 12\n\ + str r0, [r1]\n\ + ldr r0, ._1363 + 16\n\ + ldr r1, ._1363 + 20\n\ + add r0, r0, r1\n\ + mov r2, sl\n\ + strb r2, [r0]\n\ + ldr r4, ._1363 + 24\n\ + strb r2, [r4]\n\ + ldrb r1, [r4]\n\ + mov r0, #0x58\n\ + mul r0, r0, r1\n\ + ldr r1, ._1363 + 28\n\ + add r0, r0, r1\n\ + str r0, [sp]\n\ + mov r0, #0x0\n\ + mov r1, #0x28\n\ + mov r2, #0x0\n\ + mov r3, #0x4\n\ + bl EmitSetMonData\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + bl ._1540\n\ +._1364:\n\ + .align 2, 0\n\ +._1363:\n\ + .word gBattleMons\n\ + .word 0xfff0ffff\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_AbilityCuredStatus\n\ + .word +0x2000000\n\ + .word 0x16003\n\ + .word gActiveBank\n\ + .word gUnknown_02024ACC\n\ +._1347:\n\ + mov r0, sl\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov sl, r0\n\ + ldr r0, ._1368\n\ + ldrb r0, [r0]\n\ + cmp sl, r0\n\ + bcs ._1365 @cond_branch\n\ + b ._1366\n\ +._1365:\n\ + bl ._1534\n\ +._1369:\n\ + .align 2, 0\n\ +._1368:\n\ + .word gNoOfAllBanks\n\ +._750:\n\ + mov r3, #0x0\n\ + mov sl, r3\n\ + ldr r0, ._1377\n\ + ldrb r0, [r0]\n\ + cmp sl, r0\n\ + bcc ._1370 @cond_branch\n\ + b ._1534\n\ +._1370:\n\ + ldr r4, ._1377 + 4\n\ +._1375:\n\ + mov r0, #0x58\n\ + mov r5, sl\n\ + mul r5, r5, r0\n\ + add r0, r5, #0\n\ + add r0, r0, r4\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x3b\n\ + bne ._1373 @cond_branch\n\ + mov r0, sl\n\ + bl CastformDataTypeChange\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ + cmp r0, #0\n\ + beq ._1373 @cond_branch\n\ + b ._1374\n\ +._1373:\n\ + mov r0, sl\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov sl, r0\n\ + ldr r0, ._1377\n\ + ldrb r0, [r0]\n\ + cmp sl, r0\n\ + bcc ._1375 @cond_branch\n\ + b ._1534\n\ +._1378:\n\ + .align 2, 0\n\ +._1377:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ +._751:\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + cmp r0, #0x1c\n\ + beq ._1379 @cond_branch\n\ + b ._1534\n\ +._1379:\n\ + ldr r4, ._1385\n\ + ldr r1, [r4]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1381 @cond_branch\n\ + b ._1534\n\ +._1381:\n\ + ldr r0, ._1385 + 4\n\ + and r1, r1, r0\n\ + str r1, [r4]\n\ + ldr r3, ._1385 + 8\n\ + add r2, r7, r3\n\ + ldrb r1, [r2]\n\ + mov r0, #0x3f\n\ + and r0, r0, r1\n\ + strb r0, [r2]\n\ + cmp r0, #0x6\n\ + bne ._1383 @cond_branch\n\ + mov r0, #0x2\n\ + strb r0, [r2]\n\ +._1383:\n\ + ldr r1, ._1385 + 12\n\ + ldrb r0, [r2]\n\ + add r0, r0, #0x40\n\ + strb r0, [r1, #0x3]\n\ + ldr r0, ._1385 + 16\n\ + ldrb r1, [r0]\n\ + ldr r5, ._1385 + 20\n\ + add r0, r7, r5\n\ + strb r1, [r0]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1385 + 24\n\ + ldr r0, ._1385 + 28\n\ + str r0, [r1]\n\ + ldr r0, [r4]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r4]\n\ + b ._1392\n\ +._1386:\n\ + .align 2, 0\n\ +._1385:\n\ + .word gHitMarker\n\ + .word 0xffffbfff\n\ + .word 0x160ca\n\ + .word gBattleCommunication\n\ + .word gBankTarget\n\ + .word 0x16003\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_SynchronizeActivates\n\ +._752:\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + cmp r0, #0x1c\n\ + beq ._1387 @cond_branch\n\ + b ._1534\n\ +._1387:\n\ + ldr r4, ._1393\n\ + ldr r1, [r4]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1389 @cond_branch\n\ + b ._1534\n\ +._1389:\n\ + ldr r0, ._1393 + 4\n\ + and r1, r1, r0\n\ + str r1, [r4]\n\ + ldr r3, ._1393 + 8\n\ + add r2, r7, r3\n\ + ldrb r1, [r2]\n\ + mov r0, #0x3f\n\ + and r0, r0, r1\n\ + strb r0, [r2]\n\ + cmp r0, #0x6\n\ + bne ._1391 @cond_branch\n\ + mov r0, #0x2\n\ + strb r0, [r2]\n\ +._1391:\n\ + ldr r1, ._1393 + 12\n\ + ldrb r0, [r2]\n\ + strb r0, [r1, #0x3]\n\ + ldr r0, ._1393 + 16\n\ + ldrb r1, [r0]\n\ + ldr r5, ._1393 + 20\n\ + add r0, r7, r5\n\ + strb r1, [r0]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1393 + 24\n\ + ldr r0, ._1393 + 28\n\ + str r0, [r1]\n\ + ldr r0, [r4]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x6\n\ + orr r0, r0, r1\n\ + str r0, [r4]\n\ + b ._1392\n\ +._1394:\n\ + .align 2, 0\n\ +._1393:\n\ + .word gHitMarker\n\ + .word 0xffffbfff\n\ + .word 0x160ca\n\ + .word gBattleCommunication\n\ + .word gBankAttacker\n\ + .word 0x16003\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_SynchronizeActivates\n\ +._753:\n\ + mov r4, #0x0\n\ + ldr r0, ._1402\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + blt ._1395 @cond_branch\n\ + b ._1534\n\ +._1395:\n\ + ldr r0, ._1402 + 4\n\ + add r5, r1, #0\n\ + ldr r2, ._1402 + 8\n\ + add r3, r0, #0\n\ + add r3, r3, #0x20\n\ + mov r6, #0x80\n\ + lsl r6, r6, #0xc\n\ +._1400:\n\ + ldrb r1, [r3]\n\ + cmp r1, #0x16\n\ + bne ._1398 @cond_branch\n\ + ldr r0, [r2]\n\ + and r0, r0, r6\n\ + cmp r0, #0\n\ + beq ._1398 @cond_branch\n\ + b ._1399\n\ +._1398:\n\ + add r2, r2, #0x4\n\ + add r3, r3, #0x58\n\ + add r4, r4, #0x1\n\ + cmp r4, r5\n\ + blt ._1400 @cond_branch\n\ + b ._1534\n\ +._1403:\n\ + .align 2, 0\n\ +._1402:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gStatuses3\n\ +._755:\n\ + mov r4, #0x0\n\ + ldr r0, ._1417\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1404 @cond_branch\n\ + b ._1534\n\ +._1404:\n\ + ldr r0, ._1417 + 4\n\ + mov r8, r0\n\ + ldr r1, ._1417 + 8\n\ + add r1, r1, #0x20\n\ + str r1, [sp, #0x1c]\n\ + mov r2, #0x0\n\ + str r2, [sp, #0x20]\n\ +._1434:\n\ + ldr r3, [sp, #0x1c]\n\ + ldrb r0, [r3]\n\ + cmp r0, #0x24\n\ + beq ._1406 @cond_branch\n\ + b ._1431\n\ +._1406:\n\ + ldr r0, ._1417 + 12\n\ + ldr r5, [sp, #0x20]\n\ + add r0, r5, r0\n\ + ldr r1, [r0]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0xd\n\ + and r1, r1, r0\n\ + str r5, [sp, #0x18]\n\ + cmp r1, #0\n\ + bne ._1408 @cond_branch\n\ + b ._1431\n\ +._1408:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl GetBankIdentity\n\ + mov r1, #0x1\n\ + add r5, r0, #0\n\ + eor r5, r5, r1\n\ + and r5, r5, r1\n\ + add r0, r5, #0\n\ + bl GetBankByIdentity\n\ + lsl r0, r0, #0x18\n\ + lsr r6, r0, #0x18\n\ + add r0, r5, #2\n\ + bl GetBankByIdentity\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ + ldr r0, ._1417 + 16\n\ + ldrh r1, [r0]\n\ + mov r2, #0x1\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1410 @cond_branch\n\ + b ._1411\n\ +._1410:\n\ + mov r1, #0x58\n\ + add r0, r6, #0\n\ + mul r0, r0, r1\n\ + ldr r3, ._1417 + 8\n\ + add r1, r0, r3\n\ + add r0, r1, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._1420 @cond_branch\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + beq ._1415 @cond_branch\n\ + mov r1, #0x58\n\ + add r0, r7, #0\n\ + mul r0, r0, r1\n\ + add r1, r0, r3\n\ + add r0, r1, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._1415 @cond_branch\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + beq ._1415 @cond_branch\n\ + str r2, [sp, #0x24]\n\ + bl Random\n\ + ldr r2, [sp, #0x24]\n\ + add r1, r2, #0\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x1\n\ + orr r5, r5, r1\n\ + add r0, r5, #0\n\ + bl GetBankByIdentity\n\ + mov r2, r8\n\ + strb r0, [r2]\n\ + ldrb r0, [r2]\n\ + mov r3, #0x58\n\ + mul r0, r0, r3\n\ + ldr r5, ._1417 + 8\n\ + add r0, r0, r5\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + ldr r1, [sp, #0x1c]\n\ + strb r0, [r1]\n\ + ldrb r0, [r2]\n\ + mul r0, r0, r3\n\ + add r0, r0, r5\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + ldr r2, ._1417 + 20\n\ + strb r0, [r2]\n\ + b ._1416\n\ +._1418:\n\ + .align 2, 0\n\ +._1417:\n\ + .word gNoOfAllBanks\n\ + .word gActiveBank\n\ + .word gBattleMons\n\ + .word gStatuses3\n\ + .word gBattleTypeFlags\n\ + .word gLastUsedAbility\n\ +._1415:\n\ + ldr r3, ._1422\n\ + mov r2, #0x58\n\ + add r0, r6, #0\n\ + mul r0, r0, r2\n\ + add r1, r0, r3\n\ + add r0, r1, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._1420 @cond_branch\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + beq ._1420 @cond_branch\n\ + mov r5, r8\n\ + strb r6, [r5]\n\ + add r1, r4, #0\n\ + mul r1, r1, r2\n\ + add r1, r1, r3\n\ + ldrb r0, [r5]\n\ + mul r0, r0, r2\n\ + add r0, r0, r3\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + add r1, r1, #0x20\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + mul r0, r0, r2\n\ + add r0, r0, r3\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + b ._1426\n\ +._1423:\n\ + .align 2, 0\n\ +._1422:\n\ + .word gBattleMons\n\ +._1420:\n\ + ldr r3, ._1427\n\ + mov r2, #0x58\n\ + add r0, r7, #0\n\ + mul r0, r0, r2\n\ + add r1, r0, r3\n\ + add r0, r1, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._1430 @cond_branch\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + beq ._1430 @cond_branch\n\ + mov r5, r8\n\ + strb r7, [r5]\n\ + add r1, r4, #0\n\ + mul r1, r1, r2\n\ + add r1, r1, r3\n\ + ldrb r0, [r5]\n\ + mul r0, r0, r2\n\ + add r0, r0, r3\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + add r1, r1, #0x20\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + mul r0, r0, r2\n\ + add r0, r0, r3\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + b ._1426\n\ +._1428:\n\ + .align 2, 0\n\ +._1427:\n\ + .word gBattleMons\n\ +._1411:\n\ + mov r2, r8\n\ + strb r6, [r2]\n\ + mov r3, #0x58\n\ + add r0, r6, #0\n\ + mul r0, r0, r3\n\ + ldr r5, ._1436\n\ + add r0, r0, r5\n\ + add r2, r0, #0\n\ + add r2, r2, #0x20\n\ + ldrb r1, [r2]\n\ + cmp r1, #0\n\ + beq ._1430 @cond_branch\n\ + ldrh r0, [r0, #0x28]\n\ + cmp r0, #0\n\ + beq ._1430 @cond_branch\n\ + ldr r0, [sp, #0x1c]\n\ + strb r1, [r0]\n\ + ldrb r0, [r2]\n\ +._1426:\n\ + ldr r1, ._1436 + 4\n\ + strb r0, [r1]\n\ +._1416:\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1430:\n\ + mov r2, r9\n\ + cmp r2, #0\n\ + beq ._1431 @cond_branch\n\ + b ._1432\n\ +._1431:\n\ + ldr r3, [sp, #0x1c]\n\ + add r3, r3, #0x58\n\ + str r3, [sp, #0x1c]\n\ + ldr r5, [sp, #0x20]\n\ + add r5, r5, #0x4\n\ + str r5, [sp, #0x20]\n\ + add r4, r4, #0x1\n\ + ldr r0, ._1436 + 8\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + bge ._1433 @cond_branch\n\ + b ._1434\n\ +._1433:\n\ + b ._1534\n\ +._1437:\n\ + .align 2, 0\n\ +._1436:\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ + .word gNoOfAllBanks\n\ +._754:\n\ + mov r4, #0x0\n\ + ldr r0, ._1445\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + blt ._1438 @cond_branch\n\ + b ._1534\n\ +._1438:\n\ + ldr r0, ._1445 + 4\n\ + add r5, r1, #0\n\ + ldr r2, ._1445 + 8\n\ + add r3, r0, #0\n\ + add r3, r3, #0x20\n\ + mov r6, #0x80\n\ + lsl r6, r6, #0xc\n\ +._1443:\n\ + ldrb r1, [r3]\n\ + cmp r1, #0x16\n\ + bne ._1441 @cond_branch\n\ + ldr r0, [r2]\n\ + and r0, r0, r6\n\ + cmp r0, #0\n\ + beq ._1441 @cond_branch\n\ + b ._1442\n\ +._1441:\n\ + add r2, r2, #0x4\n\ + add r3, r3, #0x58\n\ + add r4, r4, #0x1\n\ + cmp r4, r5\n\ + blt ._1443 @cond_branch\n\ + b ._1534\n\ +._1446:\n\ + .align 2, 0\n\ +._1445:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gStatuses3\n\ +._756:\n\ + mov r0, sl\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r5, r0, #0x18\n\ + mov r4, #0x0\n\ + ldr r0, ._1453\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1447 @cond_branch\n\ + b ._1534\n\ +._1447:\n\ + ldr r7, ._1453 + 4\n\ +._1451:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + add r3, r4, #1\n\ + cmp r0, r5\n\ + beq ._1450 @cond_branch\n\ + mov r0, #0x58\n\ + mul r0, r0, r4\n\ + add r0, r0, r7\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne ._1450 @cond_branch\n\ + ldr r0, ._1453 + 8\n\ + strb r6, [r0]\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1450:\n\ + add r4, r3, #0\n\ + ldr r0, ._1453\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1451 @cond_branch\n\ + b ._1534\n\ +._1454:\n\ + .align 2, 0\n\ +._1453:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ +._757:\n\ + mov r0, sl\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r5, r0, #0x18\n\ + mov r4, #0x0\n\ + ldr r0, ._1461\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1455 @cond_branch\n\ + b ._1534\n\ +._1455:\n\ + ldr r7, ._1461 + 4\n\ +._1459:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + add r3, r4, #1\n\ + cmp r0, r5\n\ + bne ._1458 @cond_branch\n\ + mov r0, #0x58\n\ + mul r0, r0, r4\n\ + add r0, r0, r7\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne ._1458 @cond_branch\n\ + ldr r0, ._1461 + 8\n\ + strb r6, [r0]\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1458:\n\ + add r4, r3, #0\n\ + ldr r0, ._1461\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1459 @cond_branch\n\ + b ._1534\n\ +._1462:\n\ + .align 2, 0\n\ +._1461:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ +._758:\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + cmp r0, #0xfd\n\ + beq ._1463 @cond_branch\n\ + cmp r0, #0xfe\n\ + beq ._1464 @cond_branch\n\ + mov r4, #0x0\n\ + ldr r0, ._1468\n\ + add r5, r0, #0\n\ + ldrb r2, [r5]\n\ + cmp r4, r2\n\ + blt ._1465 @cond_branch\n\ + b ._1534\n\ +._1465:\n\ + ldr r2, ._1468 + 4\n\ + b ._1485\n\ +._1469:\n\ + .align 2, 0\n\ +._1468:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ +._1463:\n\ + mov r4, #0x0\n\ + ldr r0, ._1475\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1470 @cond_branch\n\ + b ._1534\n\ +._1470:\n\ + ldr r5, ._1475 + 4\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0x9\n\ + add r1, r0, #0\n\ +._1473:\n\ + lsl r0, r4, #0x2\n\ + add r0, r0, r5\n\ + ldr r0, [r0]\n\ + and r0, r0, r2\n\ + add r3, r4, #1\n\ + cmp r0, #0\n\ + beq ._1472 @cond_branch\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1472:\n\ + add r4, r3, #0\n\ + cmp r4, r1\n\ + blt ._1473 @cond_branch\n\ + b ._1534\n\ +._1476:\n\ + .align 2, 0\n\ +._1475:\n\ + .word gNoOfAllBanks\n\ + .word gStatuses3\n\ +._1464:\n\ + mov r4, #0x0\n\ + ldr r0, ._1482\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1477 @cond_branch\n\ + b ._1534\n\ +._1477:\n\ + ldr r5, ._1482 + 4\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0xa\n\ + add r1, r0, #0\n\ +._1480:\n\ + lsl r0, r4, #0x2\n\ + add r0, r0, r5\n\ + ldr r0, [r0]\n\ + and r0, r0, r2\n\ + add r3, r4, #1\n\ + cmp r0, #0\n\ + beq ._1479 @cond_branch\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1479:\n\ + add r4, r3, #0\n\ + cmp r4, r1\n\ + blt ._1480 @cond_branch\n\ + b ._1534\n\ +._1483:\n\ + .align 2, 0\n\ +._1482:\n\ + .word gNoOfAllBanks\n\ + .word gStatuses3\n\ +._1485:\n\ + mov r0, #0x58\n\ + mul r0, r0, r4\n\ + add r0, r0, r2\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + add r3, r4, #1\n\ + cmp r0, r6\n\ + bne ._1484 @cond_branch\n\ + mov r0, r8\n\ + strb r6, [r0]\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1484:\n\ + add r4, r3, #0\n\ + ldrb r1, [r5]\n\ + cmp r4, r1\n\ + blt ._1485 @cond_branch\n\ + b ._1534\n\ +._763:\n\ + mov r4, #0x0\n\ + ldr r0, ._1493\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1487 @cond_branch\n\ + b ._1534\n\ +._1487:\n\ + ldr r7, ._1493 + 4\n\ + add r2, r0, #0\n\ + mov r5, #0x58\n\ +._1491:\n\ + add r0, r4, #0\n\ + mul r0, r0, r5\n\ + add r1, r0, r7\n\ + add r0, r1, #0\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + add r3, r4, #1\n\ + cmp r0, r6\n\ + bne ._1490 @cond_branch\n\ + ldrh r0, [r1, #0x28]\n\ + cmp r0, #0\n\ + beq ._1490 @cond_branch\n\ + mov r0, r8\n\ + strb r6, [r0]\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1490:\n\ + add r4, r3, #0\n\ + cmp r4, r2\n\ + blt ._1491 @cond_branch\n\ + b ._1534\n\ +._1494:\n\ + .align 2, 0\n\ +._1493:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ +._759:\n\ + mov r4, #0x0\n\ + ldr r0, ._1501\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1495 @cond_branch\n\ + b ._1534\n\ +._1495:\n\ + ldr r7, ._1501 + 4\n\ + add r1, r0, #0\n\ + mov r5, #0x58\n\ + ldr r2, ._1501 + 8\n\ +._1499:\n\ + add r0, r4, #0\n\ + mul r0, r0, r5\n\ + add r0, r0, r7\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + add r3, r4, #1\n\ + cmp r0, r6\n\ + bne ._1498 @cond_branch\n\ + cmp r4, sl\n\ + beq ._1498 @cond_branch\n\ + strb r6, [r2]\n\ + lsl r0, r3, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1498:\n\ + add r4, r3, #0\n\ + cmp r4, r1\n\ + blt ._1499 @cond_branch\n\ + b ._1534\n\ +._1502:\n\ + .align 2, 0\n\ +._1501:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ +._760:\n\ + mov r0, sl\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r5, r0, #0x18\n\ + mov r4, #0x0\n\ + ldr r0, ._1509\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1503 @cond_branch\n\ + b ._1534\n\ +._1503:\n\ + ldr r7, ._1509 + 4\n\ +._1507:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, r5\n\ + beq ._1506 @cond_branch\n\ + mov r0, #0x58\n\ + mul r0, r0, r4\n\ + add r0, r0, r7\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne ._1506 @cond_branch\n\ + ldr r0, ._1509 + 8\n\ + strb r6, [r0]\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1506:\n\ + add r4, r4, #0x1\n\ + ldr r0, ._1509\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1507 @cond_branch\n\ + b ._1534\n\ +._1510:\n\ + .align 2, 0\n\ +._1509:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ +._761:\n\ + mov r0, sl\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r5, r0, #0x18\n\ + mov r4, #0x0\n\ + ldr r0, ._1517\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1511 @cond_branch\n\ + b ._1534\n\ +._1511:\n\ + ldr r7, ._1517 + 4\n\ +._1515:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, r5\n\ + bne ._1514 @cond_branch\n\ + mov r0, #0x58\n\ + mul r0, r0, r4\n\ + add r0, r0, r7\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne ._1514 @cond_branch\n\ + ldr r0, ._1517 + 8\n\ + strb r6, [r0]\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1514:\n\ + add r4, r4, #0x1\n\ + ldr r0, ._1517\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._1515 @cond_branch\n\ + b ._1534\n\ +._1518:\n\ + .align 2, 0\n\ +._1517:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility\n\ +._853:\n\ + ldr r0, ._1520\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._1520 + 4\n\ + ldr r2, ._1520 + 8\n\ + add r1, r0, r2\n\ + strb r6, [r1]\n\ + mov r1, r9\n\ + sub r1, r1, #0x1\n\ + ldr r3, ._1520 + 12\n\ + add r0, r0, r3\n\ + strb r1, [r0]\n\ + b ._1534\n\ +._1521:\n\ + .align 2, 0\n\ +._1520:\n\ + .word BattleScript_CastformChange\n\ + .word +0x2000000\n\ + .word 0x16003\n\ + .word 0x1609b\n\ +._1374:\n\ + ldr r0, ._1523\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, ._1523 + 4\n\ + ldr r5, ._1523 + 8\n\ + add r1, r0, r5\n\ + mov r2, sl\n\ + strb r2, [r1]\n\ + mov r1, r9\n\ + sub r1, r1, #0x1\n\ + ldr r3, ._1523 + 12\n\ + add r0, r0, r3\n\ + strb r1, [r0]\n\ + b ._1540\n\ +._1524:\n\ + .align 2, 0\n\ +._1523:\n\ + .word BattleScript_CastformChange\n\ + .word +0x2000000\n\ + .word 0x16003\n\ + .word 0x1609b\n\ +._1399:\n\ + mov r5, r8\n\ + strb r1, [r5]\n\ + ldr r0, [r2]\n\ + ldr r1, ._1526\n\ + and r0, r0, r1\n\ + str r0, [r2]\n\ + ldr r0, ._1526 + 4\n\ + bl BattleScriptPushCursorAndCallback\n\ + b ._1525\n\ +._1527:\n\ + .align 2, 0\n\ +._1526:\n\ + .word 0xfff7ffff\n\ + .word gUnknown_081D978C\n\ +._1432:\n\ + ldr r0, ._1529\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r1, ._1529 + 4\n\ + ldr r2, [sp, #0x18]\n\ + add r1, r2, r1\n\ + ldr r0, [r1]\n\ + ldr r2, ._1529 + 8\n\ + and r0, r0, r2\n\ + str r0, [r1]\n\ + ldr r0, ._1529 + 12\n\ + ldr r3, ._1529 + 16\n\ + add r0, r0, r3\n\ + strb r4, [r0]\n\ + ldr r1, ._1529 + 20\n\ + mov r4, #0xfd\n\ + strb r4, [r1]\n\ + mov r0, #0x4\n\ + strb r0, [r1, #0x1]\n\ + ldr r2, ._1529 + 24\n\ + ldrb r0, [r2]\n\ + strb r0, [r1, #0x2]\n\ + ldr r3, ._1529 + 28\n\ + ldrb r0, [r2]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r3\n\ + ldrh r0, [r0]\n\ + strb r0, [r1, #0x3]\n\ + mov r0, #0xff\n\ + strb r0, [r1, #0x4]\n\ + ldr r1, ._1529 + 32\n\ + strb r4, [r1]\n\ + mov r0, #0x9\n\ + strb r0, [r1, #0x1]\n\ + ldr r0, ._1529 + 36\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, #0x2]\n\ + mov r0, #0x1\n\ + neg r0, r0\n\ + strb r0, [r1, #0x3]\n\ + b ._1534\n\ +._1530:\n\ + .align 2, 0\n\ +._1529:\n\ + .word BattleScript_TraceActivates\n\ + .word gStatuses3\n\ + .word 0xffefffff\n\ + .word +0x2000000\n\ + .word 0x16003\n\ + .word gBattleTextBuff1\n\ + .word gActiveBank\n\ + .word gBattlePartyID\n\ + .word gBattleTextBuff2\n\ + .word gLastUsedAbility\n\ +._1442:\n\ + mov r5, r8\n\ + strb r1, [r5]\n\ + ldr r0, [r2]\n\ + ldr r1, ._1532\n\ + and r0, r0, r1\n\ + str r0, [r2]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, ._1532 + 4\n\ + ldr r0, ._1532 + 8\n\ + str r0, [r1]\n\ +._1525:\n\ + ldr r0, ._1532 + 12\n\ + ldr r1, ._1532 + 16\n\ + add r0, r0, r1\n\ + strb r4, [r0]\n\ +._1392:\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ + b ._1534\n\ +._1533:\n\ + .align 2, 0\n\ +._1532:\n\ + .word 0xfff7ffff\n\ + .word gBattlescriptCurrInstr\n\ + .word gUnknown_081D9795\n\ + .word +0x2000000\n\ + .word 0x160dd\n\ +._762:\n\ + mov r4, #0x0\n\ + ldr r0, ._1541\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + bge ._1534 @cond_branch\n\ + ldr r0, ._1541 + 4\n\ + add r2, r1, #0\n\ + add r1, r0, #0\n\ + add r1, r1, #0x20\n\ + ldr r3, ._1541 + 8\n\ +._1537:\n\ + ldrb r0, [r1]\n\ + cmp r0, r6\n\ + bne ._1536 @cond_branch\n\ + cmp r4, sl\n\ + beq ._1536 @cond_branch\n\ + strb r6, [r3]\n\ + mov r0, r9\n\ + add r0, r0, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r9, r0\n\ +._1536:\n\ + add r1, r1, #0x58\n\ + add r4, r4, #0x1\n\ + cmp r4, r2\n\ + blt ._1537 @cond_branch\n\ +._1534:\n\ + mov r2, r9\n\ + cmp r2, #0\n\ + beq ._1540 @cond_branch\n\ +._916:\n\ + ldr r3, [sp, #0x4]\n\ + cmp r3, #0xb\n\ + bhi ._1540 @cond_branch\n\ + ldr r1, ._1541 + 8\n\ + ldrb r0, [r1]\n\ + cmp r0, #0xff\n\ + beq ._1540 @cond_branch\n\ + add r1, r0, #0\n\ + mov r0, sl\n\ + bl RecordAbilityBattle\n\ +._1540:\n\ + mov r0, r9\n\ + add sp, sp, #0x28\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r1}\n\ + bx r1\n\ +._1542:\n\ + .align 2, 0\n\ +._1541:\n\ + .word gNoOfAllBanks\n\ + .word gBattleMons\n\ + .word gLastUsedAbility"); +} +#else u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; @@ -2498,6 +6558,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) return effect; } +#endif void BattleScriptExecute(const u8* BS_ptr) { @@ -3377,6 +7438,417 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target return targetBank; } +#if DEBUG +__attribute__((naked)) +u8 IsMonDisobedient(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6, r7}\n\ + add sp, sp, #0xfffffff0\n\ + ldr r0, ._1785\n\ + ldrh r1, [r0]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1791 @cond_branch\n\ + ldr r4, ._1785 + 4\n\ + ldrb r0, [r4]\n\ + bl GetBankSide\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + beq ._1791 @cond_branch\n\ + ldr r2, ._1785 + 8\n\ + ldrb r1, [r4]\n\ + mov r0, #0x58\n\ + mul r1, r1, r0\n\ + add r0, r2, #0\n\ + add r0, r0, #0x54\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + add r2, r2, #0x3c\n\ + add r1, r1, r2\n\ + bl IsOtherTrainer\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._1791 @cond_branch\n\ + ldr r0, ._1785 + 12\n\ + ldrb r1, [r0]\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1783 @cond_branch\n\ + mov r0, #0xa\n\ + b ._1784\n\ +._1786:\n\ + .align 2, 0\n\ +._1785:\n\ + .word gBattleTypeFlags\n\ + .word gBankAttacker\n\ + .word gBattleMons\n\ + .word gUnknown_02023A14+0x50\n\ +._1783:\n\ + ldr r0, ._1794\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._1791 @cond_branch\n\ + mov r1, #0xa\n\ + mov r8, r1\n\ + ldr r0, ._1794 + 4\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._1788 @cond_branch\n\ + mov r2, #0x1e\n\ + mov r8, r2\n\ +._1788:\n\ + ldr r0, ._1794 + 8\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._1789 @cond_branch\n\ + mov r4, #0x32\n\ + mov r8, r4\n\ +._1789:\n\ + ldr r0, ._1794 + 12\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._1790 @cond_branch\n\ + mov r0, #0x46\n\ +._1784:\n\ + mov r8, r0\n\ +._1790:\n\ + ldr r5, ._1794 + 16\n\ + ldr r7, ._1794 + 20\n\ + ldrb r0, [r7]\n\ + mov r6, #0x58\n\ + mul r0, r0, r6\n\ + add r0, r0, r5\n\ + add r0, r0, #0x2a\n\ + ldrb r0, [r0]\n\ + cmp r0, r8\n\ + bls ._1791 @cond_branch\n\ + bl Random\n\ + mov r1, #0xff\n\ + and r1, r1, r0\n\ + ldrb r0, [r7]\n\ + add r2, r0, #0\n\ + mul r2, r2, r6\n\ + add r0, r2, r5\n\ + add r0, r0, #0x2a\n\ + ldrb r0, [r0]\n\ + add r0, r0, r8\n\ + mul r0, r0, r1\n\ + asr r4, r0, #0x8\n\ + cmp r4, r8\n\ + bge ._1792 @cond_branch\n\ +._1791:\n\ + mov r0, #0x0\n\ + b ._1823\n\ +._1795:\n\ + .align 2, 0\n\ +._1794:\n\ + .word 0x80e\n\ + .word 0x808\n\ + .word 0x80a\n\ + .word 0x80c\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ +._1792:\n\ + ldr r3, ._1801\n\ + ldrh r0, [r3]\n\ + cmp r0, #0x63\n\ + bne ._1796 @cond_branch\n\ + add r0, r5, #0\n\ + add r0, r0, #0x50\n\ + add r0, r2, r0\n\ + ldr r1, [r0]\n\ + ldr r2, ._1801 + 4\n\ + and r1, r1, r2\n\ + str r1, [r0]\n\ +._1796:\n\ + ldrb r0, [r7]\n\ + mul r0, r0, r6\n\ + add r1, r5, #0\n\ + add r1, r1, #0x4c\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x7\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1799 @cond_branch\n\ + ldrh r0, [r3]\n\ + cmp r0, #0xad\n\ + beq ._1798 @cond_branch\n\ + cmp r0, #0xd6\n\ + bne ._1799 @cond_branch\n\ +._1798:\n\ + ldr r1, ._1801 + 8\n\ + ldr r0, ._1801 + 12\n\ + b ._1819\n\ +._1802:\n\ + .align 2, 0\n\ +._1801:\n\ + .word gCurrentMove\n\ + .word 0xff7fffff\n\ + .word gBattlescriptCurrInstr\n\ + .word gUnknown_081D995F\n\ +._1799:\n\ + bl Random\n\ + mov r5, #0xff\n\ + add r1, r5, #0\n\ + and r1, r1, r0\n\ + ldr r6, ._1808\n\ + ldr r2, ._1808 + 4\n\ + mov r9, r2\n\ + ldrb r3, [r2]\n\ + mov r7, #0x58\n\ + add r0, r3, #0\n\ + mul r0, r0, r7\n\ + add r0, r0, r6\n\ + add r0, r0, #0x2a\n\ + ldrb r2, [r0]\n\ + mov r4, r8\n\ + add r0, r2, r4\n\ + mul r0, r0, r1\n\ + asr r4, r0, #0x8\n\ + cmp r4, r8\n\ + bge ._1803 @cond_branch\n\ + ldr r7, ._1808 + 8\n\ + ldr r5, ._1808 + 12\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r7\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + mov r2, #0xff\n\ + bl CheckMoveLimitations\n\ + lsl r0, r0, #0x18\n\ + lsr r4, r0, #0x18\n\ + cmp r4, #0xf\n\ + bne ._1804 @cond_branch\n\ + b ._1805\n\ +._1804:\n\ + add r6, r5, #0\n\ + ldr r0, ._1808 + 16\n\ + mov r9, r0\n\ + mov r1, #0x3\n\ + mov r8, r1\n\ +._1806:\n\ + bl Random\n\ + mov r2, r8\n\ + and r0, r0, r2\n\ + mov r1, r9\n\ + strb r0, [r1]\n\ + strb r0, [r6]\n\ + ldrb r0, [r6]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r7\n\ + ldr r5, [r0]\n\ + and r5, r5, r4\n\ + cmp r5, #0\n\ + bne ._1806 @cond_branch\n\ + ldr r4, ._1808 + 20\n\ + ldr r3, ._1808\n\ + ldr r0, ._1808 + 12\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x1\n\ + ldr r1, ._1808 + 4\n\ + ldrb r2, [r1]\n\ + mov r1, #0x58\n\ + mul r1, r1, r2\n\ + add r0, r0, r1\n\ + add r3, r3, #0xc\n\ + add r0, r0, r3\n\ + ldrh r0, [r0]\n\ + strh r0, [r4]\n\ + ldr r0, ._1808 + 24\n\ + strb r5, [r0, #0x3]\n\ + ldr r0, ._1808 + 28\n\ + mov r1, #0x0\n\ + strh r5, [r0]\n\ + ldr r0, ._1808 + 32\n\ + ldr r2, ._1808 + 36\n\ + add r0, r0, r2\n\ + strb r1, [r0]\n\ + ldr r1, ._1808 + 40\n\ + ldr r0, ._1808 + 44\n\ + str r0, [r1]\n\ + ldrh r0, [r4]\n\ + mov r1, #0x0\n\ + bl GetMoveTarget\n\ + ldr r1, ._1808 + 48\n\ + strb r0, [r1]\n\ + ldr r2, ._1808 + 52\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0xe\n\ + b ._1807\n\ +._1809:\n\ + .align 2, 0\n\ +._1808:\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gBitTable\n\ + .word gCurrMovePos\n\ + .word gUnknown_02024BE5\n\ + .word gRandomMove\n\ + .word gBattleCommunication\n\ + .word gDynamicBasePower\n\ + .word +0x2000000\n\ + .word 0x1601c\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_IgnoresAndUsesRandomMove\n\ + .word gBankTarget\n\ + .word gHitMarker\n\ +._1803:\n\ + mov r4, r8\n\ + sub r0, r2, r4\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + mov r8, r0\n\ + bl Random\n\ + add r4, r5, #0\n\ + and r4, r4, r0\n\ + cmp r4, r8\n\ + bge ._1818 @cond_branch\n\ + mov r1, r9\n\ + ldrb r0, [r1]\n\ + add r1, r0, #0\n\ + mul r1, r1, r7\n\ + add r0, r6, #0\n\ + add r0, r0, #0x4c\n\ + add r0, r1, r0\n\ + ldr r0, [r0]\n\ + and r0, r0, r5\n\ + cmp r0, #0\n\ + bne ._1818 @cond_branch\n\ + add r0, r1, r6\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x48\n\ + beq ._1818 @cond_branch\n\ + cmp r0, #0xf\n\ + beq ._1818 @cond_branch\n\ + mov r2, #0x0\n\ + ldr r0, ._1820\n\ + ldrb r3, [r0]\n\ + add r7, r0, #0\n\ + cmp r2, r3\n\ + bge ._1816 @cond_branch\n\ + ldr r0, [r6, #0x50]\n\ + mov r1, #0x70\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1816 @cond_branch\n\ + add r1, r6, #0\n\ + add r1, r1, #0x50\n\ + mov r5, #0x70\n\ +._1817:\n\ + add r1, r1, #0x58\n\ + add r2, r2, #0x1\n\ + cmp r2, r3\n\ + bge ._1816 @cond_branch\n\ + ldr r0, [r1]\n\ + and r0, r0, r5\n\ + cmp r0, #0\n\ + beq ._1817 @cond_branch\n\ +._1816:\n\ + ldrb r7, [r7]\n\ + cmp r2, r7\n\ + bne ._1818 @cond_branch\n\ + ldr r1, ._1820 + 4\n\ + ldr r0, ._1820 + 8\n\ + b ._1819\n\ +._1821:\n\ + .align 2, 0\n\ +._1820:\n\ + .word gNoOfAllBanks\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_IgnoresAndFallsAsleep\n\ +._1818:\n\ + mov r2, r8\n\ + sub r4, r4, r2\n\ + cmp r4, r8\n\ + blt ._1822 @cond_branch\n\ +._1805:\n\ + bl Random\n\ + ldr r2, ._1824\n\ + mov r1, #0x3\n\ + and r1, r1, r0\n\ + strb r1, [r2, #0x5]\n\ + ldr r1, ._1824 + 4\n\ + ldr r0, ._1824 + 8\n\ +._1819:\n\ + str r0, [r1]\n\ + mov r0, #0x1\n\ + b ._1823\n\ +._1825:\n\ + .align 2, 0\n\ +._1824:\n\ + .word gBattleCommunication\n\ + .word gBattlescriptCurrInstr\n\ + .word BattleScript_MoveUsedLoafingAround\n\ +._1822:\n\ + ldr r4, ._1826\n\ + ldrb r1, [r4]\n\ + mov r0, #0x58\n\ + mul r1, r1, r0\n\ + ldr r0, ._1826 + 4\n\ + add r1, r1, r0\n\ + mov r0, #0x28\n\ + str r0, [sp]\n\ + mov r0, #0x0\n\ + str r0, [sp, #0x4]\n\ + ldrb r0, [r4]\n\ + str r0, [sp, #0x8]\n\ + ldrb r0, [r4]\n\ + str r0, [sp, #0xc]\n\ + add r0, r1, #0\n\ + mov r2, #0x1\n\ + mov r3, #0x0\n\ + bl CalculateBaseDamage\n\ + ldr r1, ._1826 + 8\n\ + str r0, [r1]\n\ + ldr r1, ._1826 + 12\n\ + ldrb r0, [r4]\n\ + strb r0, [r1]\n\ + ldr r1, ._1826 + 16\n\ + ldr r0, ._1826 + 20\n\ + str r0, [r1]\n\ + ldr r2, ._1826 + 24\n\ + ldr r0, [r2]\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0xc\n\ +._1807:\n\ + orr r0, r0, r1\n\ + str r0, [r2]\n\ + mov r0, #0x2\n\ +._1823:\n\ + add sp, sp, #0x10\n\ + pop {r3, r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4, r5, r6, r7}\n\ + pop {r1}\n\ + bx r1\n\ +._1827:\n\ + .align 2, 0\n\ +._1826:\n\ + .word gBankAttacker\n\ + .word gBattleMons\n\ + .word gBattleMoveDamage\n\ + .word gBankTarget\n\ + .word gBattlescriptCurrInstr\n\ + .word gUnknown_081D99A0\n\ + .word gHitMarker"); +} +#else u8 IsMonDisobedient(void) { u8 obedienceLevel; @@ -3477,3 +7949,4 @@ u8 IsMonDisobedient(void) } } } +#endif -- cgit v1.2.3 From 6dea1a4af13d039c2bfe13170b3542cda535001b Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 21:59:28 -0600 Subject: add debug code in battle_4.c and battle_controller_player.c --- src/battle/battle_4.c | 342 +++++++- src/battle/battle_controller_player.c | 1402 +++++++++++++++++++++++++++++++++ 2 files changed, 1742 insertions(+), 2 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 3763fc309..038b4f5cf 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -1090,7 +1090,7 @@ static const u8 sTerrainToType[] = TYPE_NORMAL, // plain }; -static const u8 sBallCatchBonuses[] = +const u8 sBallCatchBonuses[] = { 20, 15, 10, 15 // Ultra, Great, Poke, Safari }; @@ -5018,7 +5018,156 @@ _0801F610: .4byte BattleScript_SAtkDown2\n\ } #endif // NONMATCHING - +#if DEBUG +__attribute__((naked)) +static void atk15_seteffectwithchance(void) +{ + asm("\ + push {r4, lr}\n\ + ldr r2, ._1037\n\ + ldr r0, ._1037 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x58\n\ + mul r0, r0, r1\n\ + add r0, r0, r2\n\ + add r0, r0, #0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x20\n\ + bne ._1035 @cond_branch\n\ + ldr r2, ._1037 + 8\n\ + ldr r0, ._1037 + 12\n\ + ldrh r1, [r0]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldrb r0, [r0, #0x5]\n\ + lsl r4, r0, #0x1\n\ + b ._1036\n\ +._1038:\n\ + .align 2, 0\n\ +._1037:\n\ + .word gBattleMons\n\ + .word gBankAttacker\n\ + .word gBattleMoves\n\ + .word gCurrentMove\n\ +._1035:\n\ + ldr r2, ._1045\n\ + ldr r0, ._1045 + 4\n\ + ldrh r1, [r0]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldrb r4, [r0, #0x5]\n\ +._1036:\n\ + ldr r0, ._1045 + 8\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + ldr r2, ._1045 + 12\n\ + cmp r0, #0\n\ + beq ._1039 @cond_branch\n\ + ldrb r1, [r2, #0x3]\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1040 @cond_branch\n\ + ldr r0, ._1045 + 16\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1050 @cond_branch\n\ +._1039:\n\ + ldrb r1, [r2, #0x3]\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._1043 @cond_branch\n\ +._1040:\n\ + ldr r0, ._1045 + 16\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1043 @cond_branch\n\ + ldr r2, ._1045 + 12\n\ + ldrb r1, [r2, #0x3]\n\ + mov r0, #0x7f\n\ + and r0, r0, r1\n\ + strb r0, [r2, #0x3]\n\ + b ._1044\n\ +._1046:\n\ + .align 2, 0\n\ +._1045:\n\ + .word gBattleMoves\n\ + .word gCurrentMove\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleCommunication\n\ + .word gBattleMoveFlags\n\ +._1043:\n\ + bl Random\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + mov r1, #0x64\n\ + bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + lsl r0, r0, #0x10\n\ + lsr r0, r0, #0x10\n\ + cmp r0, r4\n\ + bhi ._1049 @cond_branch\n\ + ldr r0, ._1052\n\ + ldrb r0, [r0, #0x3]\n\ + cmp r0, #0\n\ + beq ._1049 @cond_branch\n\ + ldr r0, ._1052 + 4\n\ + ldrb r1, [r0]\n\ + mov r0, #0x29\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._1049 @cond_branch\n\ + cmp r4, #0x63\n\ + bls ._1050 @cond_branch\n\ +._1044:\n\ + mov r0, #0x0\n\ + mov r1, #0x80\n\ + bl SetMoveEffect\n\ + b ._1054\n\ +._1053:\n\ + .align 2, 0\n\ +._1052:\n\ + .word gBattleCommunication\n\ + .word gBattleMoveFlags\n\ +._1050:\n\ + mov r0, #0x0\n\ + mov r1, #0x0\n\ + bl SetMoveEffect\n\ + b ._1054\n\ +._1049:\n\ + ldr r1, ._1055\n\ + ldr r0, [r1]\n\ + add r0, r0, #0x1\n\ + str r0, [r1]\n\ +._1054:\n\ + ldr r0, ._1055 + 4\n\ + mov r1, #0x0\n\ + strb r1, [r0, #0x3]\n\ + ldr r0, ._1055 + 8\n\ + ldr r2, ._1055 + 12\n\ + add r0, r0, r2\n\ + strb r1, [r0]\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ +._1056:\n\ + .align 2, 0\n\ +._1055:\n\ + .word gBattlescriptCurrInstr\n\ + .word gBattleCommunication\n\ + .word +0x2000000\n\ + .word 0x16112"); +} +#else static void atk15_seteffectwithchance(void) { u32 PercentChance; @@ -5043,6 +5192,7 @@ static void atk15_seteffectwithchance(void) gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattleStruct->unk16112 = 0; } +#endif static void atk16_seteffectprimary(void) { @@ -12620,6 +12770,193 @@ static void atk9D_mimicattackcopy(void) } } +#if DEBUG +__attribute__((naked)) +static void atk9E_metronome(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + ldr r6, ._3076\n\ + ldrb r2, [r6]\n\ + lsl r1, r2, #0x1\n\ + ldr r0, ._3076 + 4\n\ + add r3, r1, r0\n\ + ldr r5, ._3076 + 8\n\ + mov r4, #0x58\n\ + add r0, r2, #0\n\ + mul r0, r0, r4\n\ + add r1, r0, r5\n\ + ldrh r0, [r1, #0xe]\n\ + cmp r0, #0\n\ + bne ._3071 @cond_branch\n\ + ldrh r2, [r1, #0x10]\n\ + cmp r2, #0\n\ + beq ._3071 @cond_branch\n\ + ldrh r0, [r1, #0x12]\n\ + cmp r0, #0\n\ + beq ._3071 @cond_branch\n\ + ldrh r0, [r3]\n\ + cmp r0, #0\n\ + bne ._3072 @cond_branch\n\ + strh r2, [r3]\n\ +._3072:\n\ + ldr r1, ._3076 + 12\n\ + ldrh r0, [r3]\n\ + strh r0, [r1]\n\ + ldrb r0, [r6]\n\ + mul r0, r0, r4\n\ + add r0, r0, r5\n\ + ldrh r5, [r0, #0x10]\n\ + ldrh r2, [r0, #0x12]\n\ + add r7, r1, #0\n\ + cmp r5, r2\n\ + bcs ._3073 @cond_branch\n\ + ldrh r0, [r3]\n\ + cmp r0, r2\n\ + beq ._3074 @cond_branch\n\ + add r0, r0, #0x1\n\ + b ._3079\n\ +._3077:\n\ + .align 2, 0\n\ +._3076:\n\ + .word gBankAttacker\n\ + .word +0x20160b4\n\ + .word gBattleMons\n\ + .word gCurrentMove\n\ +._3073:\n\ + ldrh r4, [r3]\n\ + add r1, r4, #0\n\ + mov r0, #0xb1\n\ + lsl r0, r0, #0x1\n\ + cmp r1, r0\n\ + bne ._3078 @cond_branch\n\ + mov r0, #0x1\n\ + b ._3079\n\ +._3078:\n\ + cmp r1, r2\n\ + bne ._3080 @cond_branch\n\ +._3074:\n\ + strh r5, [r3]\n\ + b ._3081\n\ +._3080:\n\ + add r0, r4, #1\n\ +._3079:\n\ + strh r0, [r3]\n\ +._3081:\n\ + ldr r4, ._3083\n\ + ldr r2, [r4]\n\ + ldr r0, ._3083 + 4\n\ + and r2, r2, r0\n\ + str r2, [r4]\n\ + ldr r6, ._3083 + 8\n\ + ldr r5, ._3083 + 12\n\ + ldr r3, ._3083 + 16\n\ + ldrh r1, [r7]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r5\n\ + ldr r0, [r0]\n\ + str r0, [r6]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x4\n\ + orr r2, r2, r0\n\ + str r2, [r4]\n\ + ldrh r0, [r7]\n\ + b ._3082\n\ +._3084:\n\ + .align 2, 0\n\ +._3083:\n\ + .word gHitMarker\n\ + .word 0xfffffbff\n\ + .word gBattlescriptCurrInstr\n\ + .word gBattleScriptsForMoveEffects\n\ + .word gBattleMoves\n\ +._3071:\n\ + ldr r7, ._3090\n\ + mov r6, #0xb1\n\ + lsl r6, r6, #0x1\n\ + ldr r5, ._3090 + 4\n\ + ldr r0, ._3090 + 8\n\ + mov r8, r0\n\ +._3089:\n\ + bl Random\n\ + ldr r2, ._3090 + 12\n\ + add r1, r2, #0\n\ + and r0, r0, r1\n\ + add r0, r0, #0x1\n\ + strh r0, [r7]\n\ + cmp r0, r6\n\ + bhi ._3089 @cond_branch\n\ + mov r0, #0x3\n\ +._3086:\n\ + sub r0, r0, #0x1\n\ + cmp r0, #0\n\ + bge ._3086 @cond_branch\n\ + ldr r4, ._3090\n\ + ldrh r2, [r4]\n\ + ldr r3, ._3090 + 16\n\ + sub r0, r5, #2\n\ +._3088:\n\ + add r0, r0, #0x2\n\ + ldrh r1, [r0]\n\ + cmp r1, r2\n\ + beq ._3087 @cond_branch\n\ + cmp r1, r3\n\ + bne ._3088 @cond_branch\n\ +._3087:\n\ + ldr r0, ._3090 + 16\n\ + cmp r1, r0\n\ + bne ._3089 @cond_branch\n\ + ldr r2, ._3090 + 20\n\ + ldr r0, [r2]\n\ + ldr r1, ._3090 + 24\n\ + and r0, r0, r1\n\ + str r0, [r2]\n\ + ldr r3, ._3090 + 28\n\ + ldr r2, ._3090 + 32\n\ + ldrh r1, [r4]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldr r0, [r0]\n\ + mov r1, r8\n\ + str r0, [r1]\n\ + ldrh r0, [r4]\n\ +._3082:\n\ + mov r1, #0x0\n\ + bl GetMoveTarget\n\ + ldr r1, ._3090 + 36\n\ + strb r0, [r1]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._3091:\n\ + .align 2, 0\n\ +._3090:\n\ + .word gCurrentMove\n\ + .word sMovesForbiddenToCopy\n\ + .word gBattlescriptCurrInstr\n\ + .word 0x1ff\n\ + .word 0xffff\n\ + .word gHitMarker\n\ + .word 0xfffffbff\n\ + .word gBattleScriptsForMoveEffects\n\ + .word gBattleMoves\n\ + .word gBankTarget"); +} +#else #ifdef NONMATCHING static void atk9E_metronome(void) { @@ -12721,6 +13058,7 @@ _0802795C: .4byte gBankTarget\n\ .syntax divided"); } #endif // NONMATCHING +#endif static void atk9F_dmgtolevel(void) { diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 0d05b7aed..eaabe9b53 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -617,6 +617,725 @@ struct ChooseMoveStruct const u8 gUnknown_081FAE80[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}"); +#if DEBUG +__attribute__((naked)) +void sub_802C68C(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + add sp, sp, #0xfffffff8\n\ + mov r0, #0x0\n\ + mov r8, r0\n\ + mov r7, #0x0\n\ + ldr r1, ._131\n\ + ldrb r2, [r1]\n\ + lsl r1, r2, #0x9\n\ + ldr r0, ._131 + 4\n\ + add r6, r1, r0\n\ + ldr r0, ._131 + 8\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r5, #0x1\n\ + add r0, r5, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._126 @cond_branch\n\ + b ._127\n\ +._126:\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldr r1, ._131 + 12\n\ + ldr r2, ._131\n\ + ldrb r0, [r2]\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x1\n\ + add r1, r6, r0\n\ + ldrh r0, [r1]\n\ + cmp r0, #0xae\n\ + bne ._128 @cond_branch\n\ + ldrb r0, [r6, #0x12]\n\ + mov r4, #0x0\n\ + cmp r0, #0x7\n\ + beq ._130 @cond_branch\n\ + ldrb r1, [r6, #0x13]\n\ + mov r0, #0x7\n\ + eor r1, r1, r0\n\ + neg r0, r1\n\ + orr r0, r0, r1\n\ + asr r4, r0, #0x1f\n\ + mov r0, #0x10\n\ + and r4, r4, r0\n\ + b ._130\n\ +._132:\n\ + .align 2, 0\n\ +._131:\n\ + .word gActiveBank\n\ + .word gUnknown_02023A64\n\ + .word gMain\n\ + .word gMoveSelectionCursor\n\ +._128:\n\ + ldr r2, ._135\n\ + ldrh r1, [r1]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldrb r4, [r0, #0x6]\n\ +._130:\n\ + mov r0, #0x10\n\ + and r0, r0, r4\n\ + cmp r0, #0\n\ + beq ._133 @cond_branch\n\ + ldr r0, ._135 + 4\n\ + ldr r1, ._135 + 8\n\ + ldrb r1, [r1]\n\ + strb r1, [r0]\n\ + b ._134\n\ +._136:\n\ + .align 2, 0\n\ +._135:\n\ + .word gBattleMoves\n\ + .word gUnknown_03004344\n\ + .word gActiveBank\n\ +._133:\n\ + ldr r0, ._141\n\ + ldrb r0, [r0]\n\ + bl GetBankIdentity\n\ + add r1, r0, #0\n\ + mov r2, #0x1\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + eor r0, r0, r2\n\ + bl GetBankByIdentity\n\ + ldr r1, ._141 + 4\n\ + strb r0, [r1]\n\ +._134:\n\ + ldr r3, ._141 + 8\n\ + ldr r5, ._141\n\ + ldrb r2, [r5]\n\ + lsl r1, r2, #0x9\n\ + add r0, r3, #1\n\ + add r0, r1, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._137 @cond_branch\n\ + mov r0, #0x2\n\ + and r0, r0, r4\n\ + cmp r0, #0\n\ + beq ._146 @cond_branch\n\ + add r0, r3, #2\n\ + add r0, r1, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._146 @cond_branch\n\ + mov r0, #0x1\n\ + add r8, r8, r0\n\ + b ._146\n\ +._142:\n\ + .align 2, 0\n\ +._141:\n\ + .word gActiveBank\n\ + .word gUnknown_03004344\n\ + .word gBattleBufferA\n\ +._137:\n\ + mov r0, #0x7d\n\ + and r0, r0, r4\n\ + cmp r0, #0\n\ + bne ._143 @cond_branch\n\ + mov r1, #0x1\n\ + add r8, r8, r1\n\ +._143:\n\ + ldr r0, ._149\n\ + add r0, r2, r0\n\ + add r1, r6, #0\n\ + add r1, r1, #0x8\n\ + ldrb r0, [r0]\n\ + add r1, r1, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, #0\n\ + beq ._144 @cond_branch\n\ + mov r0, #0x12\n\ + and r0, r0, r4\n\ + cmp r0, #0\n\ + bne ._146 @cond_branch\n\ + mov r0, #0x0\n\ + bl CountAliveMons\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bhi ._146 @cond_branch\n\ + ldrb r0, [r5]\n\ + bl sub_803C434\n\ + ldr r1, ._149 + 4\n\ + strb r0, [r1]\n\ + mov r2, #0x0\n\ + mov r8, r2\n\ +._146:\n\ + mov r0, r8\n\ + cmp r0, #0\n\ + bne ._147 @cond_branch\n\ +._144:\n\ + bl DestroyMenuCursor\n\ + ldr r1, ._149\n\ + ldr r0, ._149 + 8\n\ + ldrb r0, [r0]\n\ + add r0, r0, r1\n\ + ldrb r2, [r0]\n\ + ldr r0, ._149 + 4\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x8\n\ + orr r2, r2, r0\n\ + b ._148\n\ +._150:\n\ + .align 2, 0\n\ +._149:\n\ + .word gMoveSelectionCursor\n\ + .word gUnknown_03004344\n\ + .word gActiveBank\n\ +._147:\n\ + ldr r1, ._153\n\ + ldr r2, ._153 + 4\n\ + ldrb r0, [r2]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._153 + 8\n\ + str r1, [r0]\n\ + mov r0, #0x12\n\ + and r4, r4, r0\n\ + cmp r4, #0\n\ + beq ._151 @cond_branch\n\ + ldr r1, ._153 + 12\n\ + ldrb r0, [r2]\n\ + b ._152\n\ +._154:\n\ + .align 2, 0\n\ +._153:\n\ + .word gBattleBankFunc\n\ + .word gActiveBank\n\ + .word sub_802C2EC+1\n\ + .word gUnknown_03004344\n\ +._151:\n\ + mov r0, #0x1\n\ + bl GetBankByIdentity\n\ + ldr r1, ._157\n\ + ldrb r1, [r1]\n\ + ldr r2, ._157 + 4\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x16\n\ + add r0, r0, r2\n\ + ldr r0, [r0]\n\ + and r1, r1, r0\n\ + cmp r1, #0\n\ + beq ._155 @cond_branch\n\ + mov r0, #0x3\n\ + b ._156\n\ +._158:\n\ + .align 2, 0\n\ +._157:\n\ + .word gAbsentBankFlags\n\ + .word gBitTable\n\ +._155:\n\ + mov r0, #0x1\n\ +._156:\n\ + bl GetBankByIdentity\n\ + ldr r1, ._160\n\ +._152:\n\ + strb r0, [r1]\n\ + ldr r2, ._160 + 4\n\ + ldr r1, ._160 + 8\n\ + ldr r0, ._160\n\ + ldrb r0, [r0]\n\ + add r0, r0, r1\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x4\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r2, r2, #0x1c\n\ + add r0, r0, r2\n\ + ldr r1, ._160 + 12\n\ + b ._203\n\ +._161:\n\ + .align 2, 0\n\ +._160:\n\ + .word gUnknown_03004344\n\ + .word gSprites\n\ + .word gObjectBankIDs\n\ + .word sub_8010520+1\n\ +._127:\n\ + mov r6, #0x2\n\ + add r0, r6, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._162 @cond_branch\n\ + bl DestroyMenuCursor\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldr r0, ._164\n\ + strh r7, [r0]\n\ + ldr r1, ._164 + 4\n\ + mov r2, #0xa0\n\ + lsl r2, r2, #0x1\n\ + add r0, r2, #0\n\ + strh r0, [r1]\n\ + ldr r2, ._164 + 8\n\ +._148:\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ + bl PlayerBufferExecCompleted\n\ + b ._209\n\ +._165:\n\ + .align 2, 0\n\ +._164:\n\ + .word gBattle_BG0_X\n\ + .word gBattle_BG0_Y\n\ + .word 0xffff\n\ +._162:\n\ + mov r0, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._166 @cond_branch\n\ + ldr r4, ._170\n\ + add r2, r2, r4\n\ + ldrb r1, [r2]\n\ + add r0, r5, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._167 @cond_branch\n\ + b ._209\n\ +._167:\n\ + ldrb r0, [r2]\n\ + bl nullsub_7\n\ + ldr r0, ._170 + 4\n\ + ldrb r1, [r0]\n\ + add r1, r1, r4\n\ + ldrb r0, [r1]\n\ + mov r2, #0x1\n\ + eor r0, r0, r2\n\ + b ._183\n\ +._171:\n\ + .align 2, 0\n\ +._170:\n\ + .word gMoveSelectionCursor\n\ + .word gActiveBank\n\ +._166:\n\ + mov r3, #0x10\n\ + add r0, r3, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._172 @cond_branch\n\ + ldr r4, ._178\n\ + add r3, r2, r4\n\ + ldrb r2, [r3]\n\ + mov r6, #0x1\n\ + add r0, r5, #0\n\ + and r0, r0, r2\n\ + cmp r0, #0\n\ + beq ._173 @cond_branch\n\ + b ._209\n\ +._173:\n\ + ldr r1, ._178 + 4\n\ + add r0, r6, #0\n\ + eor r0, r0, r2\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._175 @cond_branch\n\ + b ._209\n\ +._175:\n\ + ldrb r0, [r3]\n\ + bl nullsub_7\n\ + ldr r2, ._178 + 8\n\ + ldrb r1, [r2]\n\ + add r1, r1, r4\n\ + ldrb r0, [r1]\n\ + eor r0, r0, r6\n\ + b ._183\n\ +._179:\n\ + .align 2, 0\n\ +._178:\n\ + .word gMoveSelectionCursor\n\ + .word gUnknown_03004348\n\ + .word gActiveBank\n\ +._172:\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._180 @cond_branch\n\ + ldr r4, ._184\n\ + add r2, r2, r4\n\ + ldrb r1, [r2]\n\ + add r0, r6, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._181 @cond_branch\n\ + b ._209\n\ +._181:\n\ + ldrb r0, [r2]\n\ + bl nullsub_7\n\ + ldr r2, ._184 + 4\n\ + ldrb r1, [r2]\n\ + add r1, r1, r4\n\ + ldrb r0, [r1]\n\ + mov r2, #0x2\n\ + eor r0, r0, r2\n\ + b ._183\n\ +._185:\n\ + .align 2, 0\n\ +._184:\n\ + .word gMoveSelectionCursor\n\ + .word gActiveBank\n\ +._180:\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._186 @cond_branch\n\ + ldr r4, ._192\n\ + add r3, r2, r4\n\ + ldrb r2, [r3]\n\ + mov r5, #0x2\n\ + add r0, r6, #0\n\ + and r0, r0, r2\n\ + cmp r0, #0\n\ + beq ._187 @cond_branch\n\ + b ._209\n\ +._187:\n\ + ldr r1, ._192 + 4\n\ + add r0, r5, #0\n\ + eor r0, r0, r2\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._189 @cond_branch\n\ + b ._209\n\ +._189:\n\ + ldrb r0, [r3]\n\ + bl nullsub_7\n\ + ldr r2, ._192 + 8\n\ + ldrb r1, [r2]\n\ + add r1, r1, r4\n\ + ldrb r0, [r1]\n\ + eor r0, r0, r5\n\ +._183:\n\ + strb r0, [r1]\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldr r1, ._192 + 8\n\ + ldrb r0, [r1]\n\ + add r0, r0, r4\n\ + ldrb r0, [r0]\n\ + mov r1, #0x0\n\ + bl sub_802E3B4\n\ + bl sub_802E220\n\ + bl sub_802E2D4\n\ + b ._209\n\ +._193:\n\ + .align 2, 0\n\ +._192:\n\ + .word gMoveSelectionCursor\n\ + .word gUnknown_03004348\n\ + .word gActiveBank\n\ +._186:\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._194 @cond_branch\n\ + ldr r0, ._201\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + bhi ._195 @cond_branch\n\ + b ._209\n\ +._195:\n\ + ldr r0, ._201 + 4\n\ + ldrh r1, [r0]\n\ + add r0, r6, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._197 @cond_branch\n\ + b ._209\n\ +._197:\n\ + ldr r4, ._201 + 8\n\ + add r0, r2, r4\n\ + ldrb r0, [r0]\n\ + ldr r1, ._201 + 12\n\ + bl sub_802E12C\n\ + ldr r2, ._201 + 16\n\ + ldrb r0, [r2]\n\ + add r0, r0, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._199 @cond_branch\n\ + ldr r0, ._201 + 20\n\ + strb r7, [r0]\n\ + b ._200\n\ +._202:\n\ + .align 2, 0\n\ +._201:\n\ + .word gUnknown_03004348\n\ + .word gBattleTypeFlags\n\ + .word gMoveSelectionCursor\n\ + .word gUnknown_081FAE80\n\ + .word gActiveBank\n\ + .word gUnknown_03004344\n\ +._199:\n\ + ldr r1, ._204\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + add r0, r1, #0\n\ +._200:\n\ + ldrb r0, [r0]\n\ + mov r1, #0x1b\n\ + bl sub_802E3B4\n\ + ldr r4, ._204 + 4\n\ + ldr r1, ._204 + 8\n\ + mov r0, #0x1c\n\ + str r0, [sp]\n\ + mov r0, #0x3a\n\ + str r0, [sp, #0x4]\n\ + add r0, r4, #0\n\ + mov r2, #0x17\n\ + mov r3, #0x37\n\ + bl Text_FillWindowRect\n\ + ldr r1, ._204 + 12\n\ + mov r2, #0xa4\n\ + lsl r2, r2, #0x2\n\ + mov r0, #0x37\n\ + str r0, [sp]\n\ + add r0, r4, #0\n\ + mov r3, #0x17\n\ + bl Text_InitWindow\n\ + add r0, r4, #0\n\ + bl Text_PrintWindow8002F44\n\ + ldr r1, ._204 + 16\n\ + ldr r0, ._204 + 20\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._204 + 24\n\ + b ._203\n\ +._205:\n\ + .align 2, 0\n\ +._204:\n\ + .word gUnknown_03004344\n\ + .word gUnknown_03004210\n\ + .word 0x1016\n\ + .word BattleText_SwitchWhich\n\ + .word gBattleBankFunc\n\ + .word gActiveBank\n\ + .word sub_802CA60+1\n\ +._194:\n\ + ldr r0, ._214\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + beq ._206 @cond_branch\n\ + b ._209\n\ +._206:\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._208 @cond_branch\n\ + b ._209\n\ +._208:\n\ + ldr r6, ._214 + 4\n\ + ldr r1, ._214 + 8\n\ + str r3, [sp]\n\ + mov r0, #0x3a\n\ + str r0, [sp, #0x4]\n\ + add r0, r6, #0\n\ + mov r2, #0x1\n\ + mov r3, #0x37\n\ + bl Text_FillWindowRect\n\ + ldr r0, ._214 + 12\n\ + mov sl, r0\n\ + ldr r1, ._214 + 16\n\ + ldrb r0, [r1]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, sl\n\ + ldrh r0, [r0]\n\ + mov r2, #0x64\n\ + mov r9, r2\n\ + mov r1, r9\n\ + mul r1, r1, r0\n\ + add r0, r1, #0\n\ + ldr r5, ._214 + 20\n\ + add r0, r0, r5\n\ + mov r1, #0xd\n\ + bl GetMonData\n\ + mov r1, #0xd\n\ + mul r1, r1, r0\n\ + ldr r0, ._214 + 24\n\ + add r1, r1, r0\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0x1\n\ + mov r0, #0x37\n\ + mov r8, r0\n\ + str r0, [sp]\n\ + add r0, r6, #0\n\ + mov r3, #0x2\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r4, ._214 + 28\n\ + ldr r1, ._214 + 16\n\ + ldrb r0, [r1]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, sl\n\ + ldrh r0, [r0]\n\ + mov r2, r9\n\ + mul r2, r2, r0\n\ + add r0, r2, #0\n\ + add r0, r0, r5\n\ + mov r1, #0xd\n\ + bl GetMonData\n\ + add r1, r0, #0\n\ + add r0, r4, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x3\n\ + bl ConvertIntToDecimalStringN\n\ + mov r2, #0x88\n\ + lsl r2, r2, #0x1\n\ + mov r0, r8\n\ + str r0, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0xa\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r1, ._214 + 32\n\ + mov r2, #0x8b\n\ + lsl r2, r2, #0x1\n\ + mov r5, #0x39\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + mov r3, #0x1\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r0, ._214 + 36\n\ + ldrb r1, [r0]\n\ + add r0, r4, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x3\n\ + bl ConvertIntToDecimalStringN\n\ + mov r2, #0x8e\n\ + lsl r2, r2, #0x1\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0x4\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r0, ._214 + 40\n\ + add r2, r0, #0\n\ + add r2, r2, #0x3e\n\ + mov r1, #0x3f\n\ +._211:\n\ + ldrb r0, [r2]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._210 @cond_branch\n\ + add r0, r7, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ +._210:\n\ + add r2, r2, #0x44\n\ + sub r1, r1, #0x1\n\ + cmp r1, #0\n\ + bge ._211 @cond_branch\n\ + ldr r4, ._214 + 28\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r6, ._214 + 4\n\ + mov r2, #0x91\n\ + lsl r2, r2, #0x1\n\ + mov r5, #0x39\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0x8\n\ + bl Text_InitWindowAndPrintText\n\ + bl GetTaskCount\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + mov r2, #0x93\n\ + lsl r2, r2, #0x1\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0xb\n\ + bl Text_InitWindowAndPrintText\n\ + mov r1, #0x0\n\ + mov r7, #0x0\n\ + ldr r0, ._214 + 44\n\ + mov r3, #0x1\n\ + ldr r2, [r0]\n\ +._213:\n\ + add r0, r3, #0\n\ + LSL r0, r1\n\ + and r0, r0, r2\n\ + cmp r0, #0\n\ + beq ._212 @cond_branch\n\ + add r0, r7, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ +._212:\n\ + add r1, r1, #0x1\n\ + cmp r1, #0x1f\n\ + ble ._213 @cond_branch\n\ + ldr r4, ._214 + 28\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, ._214 + 4\n\ + mov r2, #0x95\n\ + lsl r2, r2, #0x1\n\ + mov r1, #0x39\n\ + str r1, [sp]\n\ + add r1, r4, #0\n\ + mov r3, #0xe\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r1, ._214 + 48\n\ + ldr r0, ._214 + 16\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._214 + 52\n\ +._203:\n\ + str r1, [r0]\n\ +._209:\n\ + add sp, sp, #0x8\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._215:\n\ + .align 2, 0\n\ +._214:\n\ + .word gUnknown_020297ED\n\ + .word gUnknown_03004210\n\ + .word 0x1016\n\ + .word gBattlePartyID\n\ + .word gActiveBank\n\ + .word gPlayerParty\n\ + .word gMoveNames\n\ + .word gDisplayedStringBattle\n\ + .word sBallCatchBonuses+0x4\n\ + .word gAnimMoveTurn\n\ + .word gSprites\n\ + .word gOamMatrixAllocBitmap\n\ + .word gBattleBankFunc\n\ + .word debug_sub_8030C24+1"); +} +#else void sub_802C68C(void) { u32 r8 = 0; @@ -751,6 +1470,7 @@ void sub_802C68C(void) } } } +#endif extern const u8 BattleText_Format[]; @@ -956,6 +1676,688 @@ void sub_802D18C(void) } } +#if DEBUG +__attribute__((naked)) +void debug_sub_8030C24(void) +{ + asm("\ + push {r4, r5, r6, lr}\n\ + add sp, sp, #0xfffffff4\n\ + ldr r1, ._293\n\ + ldr r4, ._293 + 4\n\ + ldrb r0, [r4]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r0, r0, r1\n\ + ldr r1, ._293 + 8\n\ + add r0, r0, r1\n\ + mov r1, #0xd\n\ + bl GetMonData\n\ + add r1, sp, #0x8\n\ + strh r0, [r1]\n\ + ldr r5, ._293 + 12\n\ + ldrh r1, [r5, #0x30]\n\ + cmp r1, #0x20\n\ + bne ._286 @cond_branch\n\ + b ._287\n\ +._286:\n\ + cmp r1, #0x20\n\ + bgt ._288 @cond_branch\n\ + cmp r1, #0x8\n\ + beq ._289 @cond_branch\n\ + cmp r1, #0x8\n\ + bgt ._290 @cond_branch\n\ + cmp r1, #0x4\n\ + beq ._291 @cond_branch\n\ + b ._348\n\ +._294:\n\ + .align 2, 0\n\ +._293:\n\ + .word gBattlePartyID\n\ + .word gActiveBank\n\ + .word gPlayerParty\n\ + .word gMain\n\ +._290:\n\ + cmp r1, #0x10\n\ + bne ._295 @cond_branch\n\ + b ._296\n\ +._295:\n\ + b ._348\n\ +._288:\n\ + cmp r1, #0x80\n\ + bne ._298 @cond_branch\n\ + b ._302\n\ +._298:\n\ + cmp r1, #0x80\n\ + bgt ._300 @cond_branch\n\ + cmp r1, #0x40\n\ + bne ._301 @cond_branch\n\ + b ._302\n\ +._301:\n\ + b ._348\n\ +._300:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + cmp r1, r0\n\ + bne ._304 @cond_branch\n\ + b ._305\n\ +._304:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x2\n\ + cmp r1, r0\n\ + bne ._306 @cond_branch\n\ + b ._307\n\ +._306:\n\ + b ._348\n\ +._289:\n\ + ldrb r0, [r4]\n\ + mov r1, #0x1\n\ + bl dp11b_obj_free\n\ + ldrb r0, [r4]\n\ + mov r1, #0x0\n\ + bl dp11b_obj_free\n\ + ldr r0, ._312\n\ + ldrb r2, [r4]\n\ + strb r2, [r0]\n\ + ldrh r1, [r5, #0x28]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._310 @cond_branch\n\ + ldr r0, ._312 + 4\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._310 @cond_branch\n\ + ldr r0, ._312 + 8\n\ + mov r1, #0x2\n\ + eor r1, r1, r2\n\ + strb r1, [r0]\n\ + b ._311\n\ +._313:\n\ + .align 2, 0\n\ +._312:\n\ + .word gBankAttacker\n\ + .word gBattleTypeFlags\n\ + .word gBankTarget\n\ +._310:\n\ + ldr r0, ._317\n\ + ldrh r1, [r0, #0x28]\n\ + mov r2, #0x1\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._315 @cond_branch\n\ + ldr r0, ._317 + 4\n\ + ldrh r1, [r0]\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._315 @cond_branch\n\ + mov r0, #0x3\n\ + b ._316\n\ +._318:\n\ + .align 2, 0\n\ +._317:\n\ + .word gMain\n\ + .word gBattleTypeFlags\n\ +._315:\n\ + mov r0, #0x1\n\ +._316:\n\ + bl GetBankByIdentity\n\ + ldr r1, ._320\n\ + strb r0, [r1]\n\ +._311:\n\ + mov r0, #0x0\n\ + bl sub_80326EC\n\ + add r0, sp, #0x8\n\ + ldrh r0, [r0]\n\ + bl DoMoveAnim\n\ + ldr r1, ._320 + 4\n\ + ldr r0, ._320 + 8\n\ + ldrb r0, [r0]\n\ + b ._332\n\ +._321:\n\ + .align 2, 0\n\ +._320:\n\ + .word gBankTarget\n\ + .word gBattleBankFunc\n\ + .word gActiveBank\n\ +._291:\n\ + ldrb r0, [r4]\n\ + mov r1, #0x1\n\ + bl dp11b_obj_free\n\ + ldrb r0, [r4]\n\ + mov r1, #0x0\n\ + bl dp11b_obj_free\n\ + ldr r0, ._325\n\ + ldrb r2, [r4]\n\ + strb r2, [r0]\n\ + ldrh r1, [r5, #0x28]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._323 @cond_branch\n\ + ldr r0, ._325 + 4\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._323 @cond_branch\n\ + ldr r0, ._325 + 8\n\ + mov r1, #0x2\n\ + eor r1, r1, r2\n\ + strb r1, [r0]\n\ + b ._324\n\ +._326:\n\ + .align 2, 0\n\ +._325:\n\ + .word gBankTarget\n\ + .word gBattleTypeFlags\n\ + .word gBankAttacker\n\ +._323:\n\ + ldr r0, ._330\n\ + ldrh r1, [r0, #0x28]\n\ + mov r2, #0x1\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._328 @cond_branch\n\ + ldr r0, ._330 + 4\n\ + ldrh r1, [r0]\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._328 @cond_branch\n\ + mov r0, #0x3\n\ + b ._329\n\ +._331:\n\ + .align 2, 0\n\ +._330:\n\ + .word gMain\n\ + .word gBattleTypeFlags\n\ +._328:\n\ + mov r0, #0x1\n\ +._329:\n\ + bl GetBankByIdentity\n\ + ldr r1, ._333\n\ + strb r0, [r1]\n\ +._324:\n\ + mov r0, #0x0\n\ + bl sub_80326EC\n\ + add r0, sp, #0x8\n\ + ldrh r0, [r0]\n\ + bl DoMoveAnim\n\ + ldr r1, ._333 + 4\n\ + ldr r0, ._333 + 8\n\ + ldrb r0, [r0]\n\ + b ._332\n\ +._334:\n\ + .align 2, 0\n\ +._333:\n\ + .word gBankAttacker\n\ + .word gBattleBankFunc\n\ + .word gActiveBank\n\ +._305:\n\ + ldrh r1, [r5, #0x28]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._336 @cond_branch\n\ + ldr r0, ._338\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._336 @cond_branch\n\ + ldrb r0, [r4]\n\ + mov r1, #0x1\n\ + bl dp11b_obj_free\n\ + ldrb r0, [r4]\n\ + mov r1, #0x0\n\ + bl dp11b_obj_free\n\ + mov r0, #0x3\n\ + bl GetBankByIdentity\n\ + ldr r1, ._338 + 4\n\ + strb r0, [r1]\n\ + mov r0, #0x1\n\ + b ._337\n\ +._339:\n\ + .align 2, 0\n\ +._338:\n\ + .word gBattleTypeFlags\n\ + .word gBankAttacker\n\ +._336:\n\ + add r0, sp, #0x8\n\ + mov r1, #0x0\n\ + ldsh r0, [r0, r1]\n\ + add r0, r0, #0x9\n\ + add r1, sp, #0x8\n\ + strh r0, [r1]\n\ +._296:\n\ + add r0, sp, #0x8\n\ + mov r2, #0x0\n\ + ldsh r0, [r0, r2]\n\ + add r0, r0, #0x1\n\ + lsl r2, r0, #0x10\n\ + add r1, sp, #0x8\n\ + strh r0, [r1]\n\ + mov r0, #0xb1\n\ + lsl r0, r0, #0x11\n\ + cmp r2, r0\n\ + ble ._347 @cond_branch\n\ + mov r1, #0x1\n\ + add r0, sp, #0x8\n\ + strh r1, [r0]\n\ + b ._347\n\ +._307:\n\ + ldrh r1, [r5, #0x28]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._343 @cond_branch\n\ + ldr r0, ._345\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._343 @cond_branch\n\ + ldrb r0, [r4]\n\ + mov r1, #0x1\n\ + bl dp11b_obj_free\n\ + ldrb r0, [r4]\n\ + mov r1, #0x0\n\ + bl dp11b_obj_free\n\ + mov r0, #0x1\n\ + bl GetBankByIdentity\n\ + ldr r1, ._345 + 4\n\ + strb r0, [r1]\n\ + mov r0, #0x3\n\ +._337:\n\ + bl GetBankByIdentity\n\ + ldr r1, ._345 + 8\n\ + strb r0, [r1]\n\ + mov r0, #0x0\n\ + bl sub_80326EC\n\ + add r0, sp, #0x8\n\ + ldrh r0, [r0]\n\ + bl DoMoveAnim\n\ + ldr r1, ._345 + 12\n\ + ldrb r0, [r4]\n\ +._332:\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._345 + 16\n\ + str r1, [r0]\n\ + b ._348\n\ +._346:\n\ + .align 2, 0\n\ +._345:\n\ + .word gBattleTypeFlags\n\ + .word gBankAttacker\n\ + .word gBankTarget\n\ + .word gBattleBankFunc\n\ + .word debug_sub_803107C+1\n\ +._343:\n\ + add r1, sp, #0x8\n\ + add r0, r1, #0\n\ + ldrh r0, [r0]\n\ + sub r0, r0, #0x9\n\ + strh r0, [r1]\n\ +._287:\n\ + add r1, sp, #0x8\n\ + add r0, r1, #0\n\ + ldrh r0, [r0]\n\ + sub r0, r0, #0x1\n\ + strh r0, [r1]\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + bgt ._347 @cond_branch\n\ + mov r2, #0xb1\n\ + lsl r2, r2, #0x1\n\ + add r0, r2, #0\n\ + strh r0, [r1]\n\ +._347:\n\ + ldr r1, ._349\n\ + ldr r4, ._349 + 4\n\ + ldrb r0, [r4]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r0, r0, r1\n\ + ldr r1, ._349 + 8\n\ + add r0, r0, r1\n\ + mov r1, #0xd\n\ + add r2, sp, #0x8\n\ + bl SetMonData\n\ + ldr r2, ._349 + 12\n\ + ldrb r1, [r4]\n\ + mov r0, #0x58\n\ + mul r0, r0, r1\n\ + add r0, r0, r2\n\ + add r1, sp, #0x8\n\ + ldrh r1, [r1]\n\ + strh r1, [r0, #0xc]\n\ + ldr r5, ._349 + 16\n\ + ldr r1, ._349 + 20\n\ + mov r0, #0x10\n\ + str r0, [sp]\n\ + mov r0, #0x38\n\ + str r0, [sp, #0x4]\n\ + add r0, r5, #0\n\ + mov r2, #0x1\n\ + mov r3, #0x37\n\ + bl Text_FillWindowRect\n\ + add r0, sp, #0x8\n\ + mov r2, #0x0\n\ + ldsh r1, [r0, r2]\n\ + mov r0, #0xd\n\ + mul r1, r1, r0\n\ + ldr r0, ._349 + 24\n\ + add r1, r1, r0\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0x1\n\ + mov r6, #0x37\n\ + str r6, [sp]\n\ + add r0, r5, #0\n\ + mov r3, #0x2\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r4, ._349 + 28\n\ + add r0, sp, #0x8\n\ + mov r2, #0x0\n\ + ldsh r1, [r0, r2]\n\ + add r0, r4, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x3\n\ + bl ConvertIntToDecimalStringN\n\ + mov r2, #0x88\n\ + lsl r2, r2, #0x1\n\ + str r6, [sp]\n\ + add r0, r5, #0\n\ + add r1, r4, #0\n\ + mov r3, #0xa\n\ + bl Text_InitWindowAndPrintText\n\ + b ._348\n\ +._350:\n\ + .align 2, 0\n\ +._349:\n\ + .word gBattlePartyID\n\ + .word gActiveBank\n\ + .word gPlayerParty\n\ + .word gBattleMons\n\ + .word gUnknown_03004210\n\ + .word 0x1016\n\ + .word gMoveNames\n\ + .word gDisplayedStringBattle\n\ +._302:\n\ + ldr r0, ._353\n\ + ldrh r0, [r0, #0x30]\n\ + cmp r0, #0x40\n\ + bne ._351 @cond_branch\n\ + ldr r1, ._353 + 4\n\ + ldrb r0, [r1]\n\ + sub r0, r0, #0x1\n\ + b ._352\n\ +._354:\n\ + .align 2, 0\n\ +._353:\n\ + .word gMain\n\ + .word gAnimMoveTurn\n\ +._351:\n\ + ldr r1, ._359\n\ + ldrb r0, [r1]\n\ + add r0, r0, #0x1\n\ +._352:\n\ + strb r0, [r1]\n\ + ldr r4, ._359 + 4\n\ + ldrb r1, [r1]\n\ + add r0, r4, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x3\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, ._359 + 8\n\ + mov r2, #0x8e\n\ + lsl r2, r2, #0x1\n\ + mov r1, #0x39\n\ + str r1, [sp]\n\ + add r1, r4, #0\n\ + mov r3, #0x4\n\ + bl Text_InitWindowAndPrintText\n\ +._348:\n\ + ldr r0, ._359 + 12\n\ + ldrh r2, [r0, #0x28]\n\ + mov r1, #0xc0\n\ + lsl r1, r1, #0x2\n\ + add r0, r1, #0\n\ + and r0, r0, r2\n\ + cmp r0, r1\n\ + bne ._355 @cond_branch\n\ + mov r4, #0x0\n\ + ldr r5, ._359 + 4\n\ + ldr r6, ._359 + 8\n\ +._361:\n\ + add r0, r5, #0\n\ + ldr r1, ._359 + 16\n\ + bl StringCopy\n\ + ldr r1, ._359 + 20\n\ + ldr r0, ._359 + 24\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x1\n\ + add r0, r0, r1\n\ + ldrh r1, [r0]\n\ + mov r0, #0x64\n\ + mul r0, r0, r1\n\ + ldr r1, ._359 + 28\n\ + add r0, r0, r1\n\ + add r1, r4, #0\n\ + add r1, r1, #0xd\n\ + bl GetMonData\n\ + mov r1, #0xd\n\ + mul r1, r1, r0\n\ + ldr r0, ._359 + 32\n\ + add r1, r1, r0\n\ + add r0, r5, #0\n\ + bl StringAppend\n\ + lsl r0, r4, #0x14\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x11\n\ + add r0, r0, r1\n\ + lsr r2, r0, #0x10\n\ + mov r0, #0x1\n\ + and r0, r0, r4\n\ + mov r3, #0x2\n\ + cmp r0, #0\n\ + beq ._356 @cond_branch\n\ + mov r3, #0xa\n\ +._356:\n\ + cmp r4, #0x1\n\ + bhi ._357 @cond_branch\n\ + mov r0, #0x37\n\ + b ._358\n\ +._360:\n\ + .align 2, 0\n\ +._359:\n\ + .word gAnimMoveTurn\n\ + .word gDisplayedStringBattle\n\ + .word gUnknown_03004210\n\ + .word gMain\n\ + .word BattleText_Format\n\ + .word gBattlePartyID\n\ + .word gActiveBank\n\ + .word gPlayerParty\n\ + .word gMoveNames\n\ +._357:\n\ + mov r0, #0x39\n\ +._358:\n\ + str r0, [sp]\n\ + add r0, r6, #0\n\ + add r1, r5, #0\n\ + bl Text_InitWindow\n\ + ldr r0, ._362\n\ + bl Text_PrintWindow8002F44\n\ + add r0, r4, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r4, r0, #0x18\n\ + cmp r4, #0x3\n\ + bls ._361 @cond_branch\n\ + ldr r1, ._362 + 4\n\ + ldr r0, ._362 + 8\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._362 + 12\n\ + str r1, [r0]\n\ +._355:\n\ + add sp, sp, #0xc\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._363:\n\ + .align 2, 0\n\ +._362:\n\ + .word gUnknown_03004210\n\ + .word gBattleBankFunc\n\ + .word gActiveBank\n\ + .word sub_802C68C+1"); +} + +__attribute__((naked)) +void debug_sub_803107C(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + add sp, sp, #0xfffffffc\n\ + mov r7, #0x0\n\ + ldr r0, ._369\n\ + ldr r0, [r0]\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cf4\n\ + ldr r0, ._369 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._364 @cond_branch\n\ + mov r0, #0x1\n\ + bl sub_80326EC\n\ + ldr r4, ._369 + 8\n\ + ldrb r0, [r4]\n\ + mov r1, #0x1\n\ + mov r2, #0x7\n\ + mov r3, #0x1\n\ + bl dp11b_obj_instanciate\n\ + ldrb r0, [r4]\n\ + mov r1, #0x0\n\ + mov r2, #0x7\n\ + mov r3, #0x1\n\ + bl dp11b_obj_instanciate\n\ + ldr r0, ._369 + 12\n\ + add r2, r0, #0\n\ + add r2, r2, #0x3e\n\ + mov r1, #0x3f\n\ +._366:\n\ + ldrb r0, [r2]\n\ + lsl r0, r0, #0x1f\n\ + cmp r0, #0\n\ + beq ._365 @cond_branch\n\ + add r0, r7, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ +._365:\n\ + add r2, r2, #0x44\n\ + sub r1, r1, #0x1\n\ + cmp r1, #0\n\ + bge ._366 @cond_branch\n\ + ldr r4, ._369 + 16\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r6, ._369 + 20\n\ + mov r2, #0x91\n\ + lsl r2, r2, #0x1\n\ + mov r5, #0x39\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0x8\n\ + bl Text_InitWindowAndPrintText\n\ + bl GetTaskCount\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + mov r2, #0x93\n\ + lsl r2, r2, #0x1\n\ + str r5, [sp]\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + mov r3, #0xb\n\ + bl Text_InitWindowAndPrintText\n\ + mov r1, #0x0\n\ + mov r7, #0x0\n\ + ldr r0, ._369 + 24\n\ + mov r3, #0x1\n\ + ldr r2, [r0]\n\ +._368:\n\ + add r0, r3, #0\n\ + LSL r0, r1\n\ + and r0, r0, r2\n\ + cmp r0, #0\n\ + beq ._367 @cond_branch\n\ + add r0, r7, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ +._367:\n\ + add r1, r1, #0x1\n\ + cmp r1, #0x1f\n\ + ble ._368 @cond_branch\n\ + ldr r4, ._369 + 16\n\ + add r0, r4, #0\n\ + add r1, r7, #0\n\ + mov r2, #0x2\n\ + mov r3, #0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, ._369 + 20\n\ + mov r2, #0x95\n\ + lsl r2, r2, #0x1\n\ + mov r1, #0x39\n\ + str r1, [sp]\n\ + add r1, r4, #0\n\ + mov r3, #0xe\n\ + bl Text_InitWindowAndPrintText\n\ + ldr r1, ._369 + 28\n\ + ldr r0, ._369 + 8\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._369 + 32\n\ + str r1, [r0]\n\ +._364:\n\ + add sp, sp, #0x4\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._370:\n\ + .align 2, 0\n\ +._369:\n\ + .word gAnimScriptCallback\n\ + .word gAnimScriptActive\n\ + .word gActiveBank\n\ + .word gSprites\n\ + .word gDisplayedStringBattle\n\ + .word gUnknown_03004210\n\ + .word gOamMatrixAllocBitmap\n\ + .word gBattleBankFunc\n\ + .word debug_sub_8030C24+1"); +} +#endif + void sub_802D204(void) { if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) -- cgit v1.2.3 From ec84ae801985ac7f83397979bde6a15508eb02ed Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 11:54:49 -0600 Subject: add more debug code --- src/battle/battle_controller_opponent.c | 548 ++++++++++++++++++++++++++++++++ 1 file changed, 548 insertions(+) (limited to 'src/battle') diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 5947053b6..cc69c0120 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -1209,6 +1209,243 @@ void sub_8034B74(void) } } +#if DEBUG +__attribute__((naked)) +void OpponentHandleTrainerThrow(void) +{ + asm("\ + push {r4, r5, r6, lr}\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6}\n\ + ldr r0, ._480\n\ + ldrb r1, [r0]\n\ + mov r0, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._478 @cond_branch\n\ + ldr r0, ._480 + 4\n\ + ldr r1, ._480 + 8\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + b ._491\n\ +._481:\n\ + .align 2, 0\n\ +._480:\n\ + .word gUnknown_02023A14+0x50\n\ + .word +0x2000000\n\ + .word 0x160a3\n\ +._478:\n\ + ldr r3, ._484\n\ + ldrh r1, [r3]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x3\n\ + cmp r1, r0\n\ + bne ._482 @cond_branch\n\ + bl GetSecretBaseTrainerPicIndex\n\ + b ._487\n\ +._485:\n\ + .align 2, 0\n\ +._484:\n\ + .word gTrainerBattleOpponent\n\ +._482:\n\ + ldr r0, ._488\n\ + ldrh r1, [r0]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._486 @cond_branch\n\ + bl get_trainer_class_pic_index\n\ + b ._487\n\ +._489:\n\ + .align 2, 0\n\ +._488:\n\ + .word gBattleTypeFlags\n\ +._486:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._490 @cond_branch\n\ + bl GetEReaderTrainerPicIndex\n\ +._487:\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + b ._491\n\ +._490:\n\ + ldr r2, ._492\n\ + ldrh r1, [r3]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x3\n\ + add r0, r0, r2\n\ + ldrb r0, [r0, #0x3]\n\ +._491:\n\ + mov r9, r0\n\ + ldr r2, ._492 + 4\n\ + mov r8, r2\n\ + ldrb r1, [r2]\n\ + bl sub_8031A6C\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + bl GetBankIdentity\n\ + add r1, r0, #0\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x18\n\ + mov r0, r9\n\ + bl GetMonSpriteTemplate_803C5A0\n\ + ldr r5, ._492 + 8\n\ + ldr r1, ._492 + 12\n\ + mov r2, r9\n\ + lsl r0, r2, #0x2\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + mov r4, #0x8\n\ + sub r4, r4, r0\n\ + lsl r4, r4, #0x12\n\ + mov r0, #0xa0\n\ + lsl r0, r0, #0xe\n\ + add r4, r4, r0\n\ + asr r4, r4, #0x10\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + bl sub_8079E90\n\ + add r3, r0, #0\n\ + lsl r3, r3, #0x18\n\ + lsr r3, r3, #0x18\n\ + add r0, r5, #0\n\ + mov r1, #0xb0\n\ + add r2, r4, #0\n\ + bl CreateSprite\n\ + ldr r5, ._492 + 16\n\ + mov r2, r8\n\ + ldrb r1, [r2]\n\ + add r1, r1, r5\n\ + strb r0, [r1]\n\ + ldr r4, ._492 + 20\n\ + ldrb r0, [r2]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x4\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r4\n\ + ldr r1, ._492 + 24\n\ + strh r1, [r0, #0x24]\n\ + ldrb r0, [r2]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x4\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r4\n\ + mov r1, #0x2\n\ + strh r1, [r0, #0x2e]\n\ + ldr r0, ._492 + 28\n\ + mov r1, r9\n\ + lsl r6, r1, #0x3\n\ + add r0, r6, r0\n\ + ldrh r0, [r0, #0x4]\n\ + bl IndexOfSpritePaletteTag\n\ + mov r2, r8\n\ + ldrb r1, [r2]\n\ + add r1, r1, r5\n\ + ldrb r1, [r1]\n\ + lsl r2, r1, #0x4\n\ + add r2, r2, r1\n\ + lsl r2, r2, #0x2\n\ + add r2, r2, r4\n\ + lsl r0, r0, #0x4\n\ + ldrb r3, [r2, #0x5]\n\ + mov r1, #0xf\n\ + and r1, r1, r3\n\ + orr r1, r1, r0\n\ + strb r1, [r2, #0x5]\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + add r0, r0, r5\n\ + ldrb r0, [r0]\n\ + lsl r1, r0, #0x4\n\ + add r1, r1, r0\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r4\n\ + ldrh r0, [r1, #0x4]\n\ + lsl r0, r0, #0x16\n\ + lsr r0, r0, #0x16\n\ + strh r0, [r1, #0x38]\n\ + ldr r0, ._492 + 32\n\ + add r6, r6, r0\n\ + ldrh r0, [r6, #0x6]\n\ + bl GetSpriteTileStartByTag\n\ + mov r2, r8\n\ + ldrb r1, [r2]\n\ + add r1, r1, r5\n\ + ldrb r2, [r1]\n\ + lsl r1, r2, #0x4\n\ + add r1, r1, r2\n\ + lsl r1, r1, #0x2\n\ + add r1, r1, r4\n\ + ldr r2, ._492 + 36\n\ + and r2, r2, r0\n\ + ldrh r3, [r1, #0x4]\n\ + ldr r0, ._492 + 40\n\ + and r0, r0, r3\n\ + orr r0, r0, r2\n\ + strh r0, [r1, #0x4]\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x4\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r4\n\ + mov r2, r9\n\ + strh r2, [r0, #0x6]\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x4\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r4, r4, #0x1c\n\ + add r0, r0, r4\n\ + ldr r1, ._492 + 44\n\ + str r1, [r0]\n\ + ldr r1, ._492 + 48\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r1, ._492 + 52\n\ + str r1, [r0]\n\ + pop {r3, r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._493:\n\ + .align 2, 0\n\ +._492:\n\ + .word gTrainers\n\ + .word gActiveBank\n\ + .word gUnknown_02024E8C\n\ + .word gTrainerFrontPicCoords\n\ + .word gObjectBankIDs\n\ + .word gSprites\n\ + .word 0xff10\n\ + .word gTrainerFrontPicPaletteTable\n\ + .word gTrainerFrontPicTable\n\ + .word 0x3ff\n\ + .word 0xfffffc00\n\ + .word sub_80313A0+1\n\ + .word gBattleBankFunc\n\ + .word sub_8032B4C+1"); +} +#else void OpponentHandleTrainerThrow(void) { u32 trainerPicIndex; @@ -1238,6 +1475,7 @@ void OpponentHandleTrainerThrow(void) gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0; gBattleBankFunc[gActiveBank] = sub_8032B4C; } +#endif void OpponentHandleTrainerSlide(void) { @@ -1427,6 +1665,315 @@ void OpponentHandlecmd19(void) OpponentBufferExecCompleted(); } +#if DEBUG +__attribute__((naked)) +void OpponentHandlecmd20(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + ldr r6, ._549\n\ + ldrb r0, [r6]\n\ + lsl r0, r0, #0x9\n\ + ldr r1, ._549 + 4\n\ + add r5, r0, r1\n\ + ldr r2, ._549 + 8\n\ + ldrb r1, [r2]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + mov sl, r6\n\ + cmp r0, #0\n\ + beq ._546 @cond_branch\n\ + ldr r0, ._549 + 12\n\ + mov r9, r0\n\ + ldr r1, ._549 + 16\n\ + mov ip, r1\n\ + add r7, r6, #0\n\ + mov r0, #0x2\n\ + mov r8, r0\n\ + ldr r6, ._549 + 20\n\ +._552:\n\ + ldrb r1, [r7]\n\ + mov r0, r8\n\ + and r0, r0, r1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x19\n\ + add r0, r0, r6\n\ + mov r1, ip\n\ + add r3, r0, r1\n\ + ldrb r1, [r3]\n\ + lsl r0, r1, #0x1\n\ + add r0, r5, r0\n\ + ldrh r2, [r0]\n\ + add r4, r1, #0\n\ + cmp r2, #0\n\ + beq ._547 @cond_branch\n\ + add r0, r4, #1\n\ + strb r0, [r3]\n\ + b ._548\n\ +._550:\n\ + .align 2, 0\n\ +._549:\n\ + .word gActiveBank\n\ + .word gUnknown_02023A64\n\ + .word gUnknown_02023A14+0x50\n\ + .word gBattleMoves\n\ + .word +0x2000000\n\ + .word 0x1609e\n\ +._547:\n\ + strb r2, [r3]\n\ +._548:\n\ + ldrb r0, [r7]\n\ + mov r1, r8\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x19\n\ + add r1, r1, r6\n\ + add r1, r1, ip\n\ + ldrb r0, [r1]\n\ + cmp r0, #0x3\n\ + bls ._551 @cond_branch\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ +._551:\n\ + cmp r2, #0\n\ + beq ._552 @cond_branch\n\ + lsl r0, r2, #0x1\n\ + add r0, r0, r2\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r9\n\ + ldrb r3, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r3\n\ + cmp r0, #0\n\ + beq ._553 @cond_branch\n\ + mov r1, sl\n\ + ldrb r0, [r1]\n\ + b ._561\n\ +._553:\n\ + ldr r0, ._559\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._557 @cond_branch\n\ + ldr r0, ._559 + 4\n\ + ldrb r1, [r0]\n\ + mov r5, #0x2\n\ + add r0, r5, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._556 @cond_branch\n\ + cmp r3, #0\n\ + bne ._557 @cond_branch\n\ + mov r1, sl\n\ + ldrb r0, [r1]\n\ + bl GetBankIdentity\n\ + mov r1, #0x2\n\ + eor r0, r0, r1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + b ._558\n\ +._560:\n\ + .align 2, 0\n\ +._559:\n\ + .word gBattleTypeFlags\n\ + .word gUnknown_02023A14+0x50\n\ +._556:\n\ + bl Random\n\ + add r1, r5, #0\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x10\n\ + lsr r0, r1, #0x10\n\ + b ._561\n\ +._557:\n\ + mov r0, #0x0\n\ +._558:\n\ + bl GetBankByIdentity\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ +._561:\n\ + lsl r2, r0, #0x8\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ +._569:\n\ + bl Emitcmd33\n\ +._573:\n\ + bl OpponentBufferExecCompleted\n\ + b ._562\n\ +._546:\n\ + ldr r0, ._567\n\ + ldrh r1, [r0]\n\ + mov r0, #0x93\n\ + lsl r0, r0, #0x3\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._563 @cond_branch\n\ + bl BattleAI_SetupAIData\n\ + bl BattleAI_GetAIActionToUse\n\ + lsl r0, r0, #0x18\n\ + lsr r4, r0, #0x18\n\ + cmp r4, #0x4\n\ + beq ._564 @cond_branch\n\ + cmp r4, #0x5\n\ + bne ._565 @cond_branch\n\ + mov r0, #0x1\n\ + mov r1, #0x4\n\ + b ._566\n\ +._568:\n\ + .align 2, 0\n\ +._567:\n\ + .word gBattleTypeFlags\n\ +._564:\n\ + mov r0, #0x1\n\ + mov r1, #0x3\n\ +._566:\n\ + mov r2, #0x0\n\ + b ._569\n\ +._565:\n\ + ldr r3, ._574\n\ + lsl r0, r4, #0x1\n\ + add r2, r5, r0\n\ + ldrh r1, [r2]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._570 @cond_branch\n\ + ldr r1, ._574 + 4\n\ + ldrb r0, [r6]\n\ + strb r0, [r1]\n\ +._570:\n\ + ldrh r1, [r2]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._572 @cond_branch\n\ + mov r0, #0x0\n\ + bl GetBankByIdentity\n\ + ldr r5, ._574 + 4\n\ + strb r0, [r5]\n\ + ldr r0, ._574 + 8\n\ + ldrb r1, [r0]\n\ + ldr r2, ._574 + 12\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldr r0, [r0]\n\ + and r1, r1, r0\n\ + cmp r1, #0\n\ + beq ._572 @cond_branch\n\ + mov r0, #0x2\n\ + bl GetBankByIdentity\n\ + strb r0, [r5]\n\ +._572:\n\ + ldr r0, ._574 + 4\n\ + ldrb r2, [r0]\n\ + lsl r2, r2, #0x8\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ + b ._573\n\ +._575:\n\ + .align 2, 0\n\ +._574:\n\ + .word gBattleMoves\n\ + .word gBankTarget\n\ + .word gAbsentBankFlags\n\ + .word gBitTable\n\ +._563:\n\ + mov r6, #0x3\n\ +._576:\n\ + bl Random\n\ + add r4, r0, #0\n\ + and r4, r4, r6\n\ + lsl r0, r4, #0x1\n\ + add r0, r5, r0\n\ + ldrh r2, [r0]\n\ + cmp r2, #0\n\ + beq ._576 @cond_branch\n\ + ldr r1, ._579\n\ + lsl r0, r2, #0x1\n\ + add r0, r0, r2\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._577 @cond_branch\n\ + ldr r0, ._579 + 4\n\ + ldrb r2, [r0]\n\ + lsl r2, r2, #0x8\n\ + b ._578\n\ +._580:\n\ + .align 2, 0\n\ +._579:\n\ + .word gBattleMoves\n\ + .word gActiveBank\n\ +._577:\n\ + ldr r0, ._583\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._581 @cond_branch\n\ + bl Random\n\ + mov r1, #0x2\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x18\n\ + add r0, r1, #0\n\ + bl GetBankByIdentity\n\ + add r2, r0, #0\n\ + lsl r2, r2, #0x18\n\ + lsr r2, r2, #0x10\n\ +._578:\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ + b ._582\n\ +._584:\n\ + .align 2, 0\n\ +._583:\n\ + .word gBattleTypeFlags\n\ +._581:\n\ + mov r0, #0x0\n\ + bl GetBankByIdentity\n\ + add r2, r0, #0\n\ + lsl r2, r2, #0x18\n\ + lsr r2, r2, #0x10\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ +._582:\n\ + bl OpponentBufferExecCompleted\n\ +._562:\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0"); +} +#else #ifdef NONMATCHING void OpponentHandlecmd20(void) { @@ -1670,6 +2217,7 @@ _0803558A:\n\ .syntax divided\n"); } #endif +#endif void OpponentHandleOpenBag(void) { -- cgit v1.2.3 From 9c2f7c88f0d7e57c99d548870e78185e05cc472a Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 13:54:10 -0600 Subject: add more debug code --- src/battle/battle_records.c | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'src/battle') diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c index 17e2352ff..4fce958fa 100644 --- a/src/battle/battle_records.c +++ b/src/battle/battle_records.c @@ -223,6 +223,66 @@ void UpdateLinkBattleRecords(int id) gLinkPlayers[gLinkPlayerMapObjects[id].linkPlayerId].language); } +#if DEBUG +__attribute__((naked)) +void debug_sub_81257E0(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + add sp, sp, #0xfffffffc\n\ + bl InitLinkBattleRecords\n\ + mov r5, #0x0\n\ + ldr r6, ._62\n\ + sub r0, r6, #2\n\ + mov r8, r0\n\ + ldr r7, ._62 + 4\n\ +._61:\n\ + ldr r0, ._62 + 8\n\ + lsl r3, r5, #0x2\n\ + add r3, r3, r0\n\ + ldrb r4, [r3]\n\ + sub r4, r4, #0x1\n\ + lsl r0, r4, #0x1\n\ + add r0, r0, r4\n\ + lsl r0, r0, #0x2\n\ + add r1, r0, r6\n\ + add r0, r0, r8\n\ + ldrh r2, [r0]\n\ + ldrb r3, [r3, #0x1]\n\ + ldr r0, ._62 + 12\n\ + lsl r4, r4, #0x2\n\ + add r4, r4, r0\n\ + ldrb r4, [r4, #0x1]\n\ + lsl r0, r4, #0x3\n\ + sub r0, r0, r4\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r7\n\ + ldrb r0, [r0, #0x1a]\n\ + str r0, [sp]\n\ + ldr r0, ._62 + 16\n\ + bl UpdateLinkBattleRecords_\n\ + add r5, r5, #0x1\n\ + cmp r5, #0x2\n\ + bls ._61 @cond_branch\n\ + add sp, sp, #0x4\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._63:\n\ + .align 2, 0\n\ +._62:\n\ + .word gUnknown_083F8410+0xa\n\ + .word gLinkPlayers\n\ + .word gUnknown_083F8410+0x5c\n\ + .word gLinkPlayerMapObjects\n\ + .word gSaveBlock1+0x30b8"); +} +#endif + static void PrintLinkBattleWinsLossesDraws(struct LinkBattleRecord *records) { ConvertIntToDecimalStringN_DigitWidth6(gStringVar1, GetGameStat(GAME_STAT_LINK_BATTLE_WINS), STR_CONV_MODE_RIGHT_ALIGN, 4); -- cgit v1.2.3 From bcbc9d040ba671df27183bff0b7356da3d9511f6 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 15:19:31 -0600 Subject: finish adding all debug code --- src/battle/battle_controller_safari.c | 231 ++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) (limited to 'src/battle') diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 0d193d68f..4af8adbbb 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -207,6 +207,236 @@ void SafariBufferRunCommand(void) } } +#if DEBUG +__attribute__((naked)) +void bx_battle_menu_t6_2(void) +{ + asm("\ + push {r4, r5, lr}\n\ + add sp, sp, #0xfffffffc\n\ + ldr r0, ._94\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r2, #0x1\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._89 @cond_branch\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + bl DestroyMenuCursor\n\ + ldr r1, ._94 + 4\n\ + ldr r0, ._94 + 8\n\ + ldrb r0, [r0]\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + beq ._90 @cond_branch\n\ + cmp r0, #0x1\n\ + bgt ._91 @cond_branch\n\ + cmp r0, #0\n\ + beq ._92 @cond_branch\n\ + b ._101\n\ +._95:\n\ + .align 2, 0\n\ +._94:\n\ + .word gMain\n\ + .word gActionSelectionCursor\n\ + .word gActiveBank\n\ +._91:\n\ + cmp r0, #0x2\n\ + beq ._96 @cond_branch\n\ + cmp r0, #0x3\n\ + beq ._97 @cond_branch\n\ + b ._101\n\ +._92:\n\ + mov r0, #0x1\n\ + mov r1, #0x5\n\ + b ._100\n\ +._90:\n\ + mov r0, #0x1\n\ + mov r1, #0x6\n\ + b ._100\n\ +._96:\n\ + mov r0, #0x1\n\ + mov r1, #0x7\n\ +._100:\n\ + mov r2, #0x0\n\ + bl Emitcmd33\n\ + b ._101\n\ +._97:\n\ + mov r0, #0x1\n\ + mov r1, #0x8\n\ + mov r2, #0x0\n\ + bl Emitcmd33\n\ +._101:\n\ + bl SafariBufferExecCompleted\n\ + b ._129\n\ +._89:\n\ + mov r3, #0x20\n\ + add r0, r3, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._103 @cond_branch\n\ + ldr r5, ._107\n\ + ldr r4, ._107 + 4\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._104 @cond_branch\n\ + b ._129\n\ +._104:\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r0, [r0]\n\ + bl nullsub_8\n\ + ldrb r1, [r4]\n\ + add r1, r1, r5\n\ + ldrb r0, [r1]\n\ + mov r2, #0x1\n\ + b ._111\n\ +._108:\n\ + .align 2, 0\n\ +._107:\n\ + .word gActionSelectionCursor\n\ + .word gActiveBank\n\ +._103:\n\ + mov r0, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._109 @cond_branch\n\ + ldr r5, ._112\n\ + ldr r4, ._112 + 4\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + add r0, r2, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._129 @cond_branch\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r0, [r0]\n\ + bl nullsub_8\n\ + ldrb r1, [r4]\n\ + add r1, r1, r5\n\ + ldrb r0, [r1]\n\ + mov r2, #0x1\n\ + b ._111\n\ +._113:\n\ + .align 2, 0\n\ +._112:\n\ + .word gActionSelectionCursor\n\ + .word gActiveBank\n\ +._109:\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._114 @cond_branch\n\ + ldr r5, ._117\n\ + ldr r4, ._117 + 4\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._129 @cond_branch\n\ + b ._116\n\ +._118:\n\ + .align 2, 0\n\ +._117:\n\ + .word gActionSelectionCursor\n\ + .word gActiveBank\n\ +._114:\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._119 @cond_branch\n\ + ldr r5, ._122\n\ + ldr r4, ._122 + 4\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r1, [r0]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._129 @cond_branch\n\ +._116:\n\ + mov r0, #0x5\n\ + bl PlaySE\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r0, [r0]\n\ + bl nullsub_8\n\ + ldrb r1, [r4]\n\ + add r1, r1, r5\n\ + ldrb r0, [r1]\n\ + mov r2, #0x2\n\ +._111:\n\ + eor r0, r0, r2\n\ + strb r0, [r1]\n\ + ldrb r0, [r4]\n\ + add r0, r0, r5\n\ + ldrb r0, [r0]\n\ + mov r1, #0x0\n\ + bl sub_802E3E4\n\ + b ._129\n\ +._123:\n\ + .align 2, 0\n\ +._122:\n\ + .word gActionSelectionCursor\n\ + .word gActiveBank\n\ +._119:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._124 @cond_branch\n\ + ldr r0, ._127\n\ + ldrb r2, [r0]\n\ + lsl r0, r2, #0x1\n\ + add r0, r0, r2\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._127 + 4\n\ + add r0, r0, r1\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + and r0, r0, r1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._129 @cond_branch\n\ + str r0, [sp]\n\ + add r0, r2, #0\n\ + add r1, r2, #0\n\ + mov r3, #0x4\n\ + bl move_anim_start_t3\n\ + b ._129\n\ +._128:\n\ + .align 2, 0\n\ +._127:\n\ + .word gActiveBank\n\ + .word +0x2017810\n\ +._124:\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._129 @cond_branch\n\ + bl sub_804454C\n\ +._129:\n\ + add sp, sp, #0x4\n\ + pop {r4, r5}\n\ + pop {r0}\n\ + bx r0"); +} +#else void bx_battle_menu_t6_2(void) { if (gMain.newKeys & A_BUTTON) @@ -273,6 +503,7 @@ void bx_battle_menu_t6_2(void) } } } +#endif void sub_812B65C(void) { -- cgit v1.2.3 From ffb74a0211f750506650b66fe2bcdf7ddf770668 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 21 Jan 2018 18:14:47 -0600 Subject: match debug ROM --- src/battle/battle_2.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 696f1fde0..03391cf92 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -12104,6 +12104,12 @@ void SetActionsAndBanksTurnOrder(void) } } } + // Debug ROM has a register swap from the retail ROM. + // And doing this seems to fix it. +#if DEBUG + asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm(""); + asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm(""); +#endif gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; eFocusPunchBank = 0; } -- cgit v1.2.3 From 1685a7977a652f35998a717395407d625878e20e Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 21:42:14 -0600 Subject: dump some debug baseroms --- src/battle/battle_2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 03391cf92..478499ad7 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -5155,7 +5155,7 @@ void debug_sub_801174C() "._704:\n" " .word gUnknown_020297ED\n" " .word gSaveBlock2\n" - " .word UnkDebug0+0x279\n" + " .word str_821F631\n" " .word gUnknown_02023A14+0x52\n" " .word gBattleTypeFlags\n" " .word UnkDebug0+0x1e0\n" @@ -5575,7 +5575,7 @@ void debug_sub_801174C() "._750:\n" " .word gPlayerParty\n" " .word gUnknown_02023A14+0x98\n" - " .word UnkDebug0+0x291\n" + " .word Str_821F649\n" " .word gUnknown_02023A14+0x50\n" " .word gUnknown_02023A14+0xde\n" " .word gEnemyParty\n" -- cgit v1.2.3 From 0f09d2e7046a54c95e2ed4a7ff759d4cd1db87f7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 22:35:27 -0600 Subject: fix false gMysteryEventScriptCmdTableEnd offsets --- src/battle/battle_2.c | 78 +++++++++++++++++------------------ src/battle/battle_4.c | 2 +- src/battle/battle_controller_player.c | 2 +- src/battle/battle_interface.c | 6 +-- src/battle/battle_util.c | 12 +++--- 5 files changed, 50 insertions(+), 50 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 478499ad7..41d00546d 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -220,7 +220,7 @@ void InitBattle(void) " lsl r1, r1, #0x13\n" " ldr r2, ._10\n" " mov r0, sp\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" + " bl CpuSet\n" " ldr r0, ._10 + 4\n" " strh r4, [r0]\n" " sub r0, r0, #0xc\n" @@ -907,7 +907,7 @@ void sub_800EC9C() " ldr r2, ._116 + 4\n" " add r1, r1, r2\n" " mov r2, #0xc8\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " b ._129\n" "._117:\n" " .align 2, 0\n" @@ -946,7 +946,7 @@ void sub_800EC9C() " ldr r2, ._126 + 4\n" " add r1, r1, r2\n" " mov r2, #0xc8\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " b ._129\n" "._127:\n" " .align 2, 0\n" @@ -982,7 +982,7 @@ void sub_800EC9C() " add r1, r1, r0\n" " add r0, r4, #0\n" " mov r2, #0xc8\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " ldr r1, ._134 + 8\n" " add r0, r4, r1\n" " bl shedinja_something\n" @@ -1407,7 +1407,7 @@ void sub_800F104() " add r1, r1, r0\n" " ldr r0, ._177 + 4\n" " mov r2, #0x60\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" "._174:\n" " add r7, r7, #0x1c\n" " add r4, r4, #0x1\n" @@ -1781,7 +1781,7 @@ void sub_800F298() " ldr r1, ._239 + 4\n" " mov r2, #0x96\n" " lsl r2, r2, #0x1\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " ldr r0, ._239 + 8\n" " mov r1, #0x0\n" " bl CreateTask\n" @@ -2018,7 +2018,7 @@ void sub_800F298() "._283:\n" " add r1, r5, #0\n" " mov r2, #0xc8\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " b ._291\n" "._293:\n" " .align 2, 0\n" @@ -2028,7 +2028,7 @@ void sub_800F298() " ldr r0, ._296\n" " add r1, r5, #0\n" " mov r2, #0xc8\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" "._291:\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -2185,7 +2185,7 @@ void sub_800F298() "._333:\n" " add r1, r5, #0\n" " mov r2, #0x64\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" " b ._341\n" "._343:\n" " .align 2, 0\n" @@ -2195,7 +2195,7 @@ void sub_800F298() " ldr r0, ._346\n" " add r1, r5, #0\n" " mov r2, #0x64\n" - " bl gMysteryEventScriptCmdTableEnd+0x5bc4\n" + " bl memcpy\n" "._341:\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -2627,7 +2627,7 @@ void BattleMainCB2(void) " str r0, [r4]\n" " bl ZeroEnemyPartyMons\n" " mov r0, #0x5a\n" - " bl gMysteryEventScriptCmdTableEnd+0x148c\n" + " bl m4aSongNumStop\n" " ldr r0, ._358 + 24\n" " ldrh r1, [r0]\n" " mov r0, #0x2\n" @@ -3197,7 +3197,7 @@ void debug_sub_80108B8() asm( " push {r4, r5, lr}\n" " add sp, sp, #0xfffffffc\n" - " bl gMysteryEventScriptCmdTableEnd+0x19f4\n" + " bl m4aSoundVSyncOff\n" " mov r0, #0x0\n" " bl SetHBlankCallback\n" " mov r0, #0x0\n" @@ -3264,7 +3264,7 @@ void debug_sub_80108B8() " ldr r1, ._507 + 72\n" " add r0, r4, #0\n" " bl LZDecompressVram\n" - " bl gMysteryEventScriptCmdTableEnd+0x1a70\n" + " bl m4aSoundVSyncOn\n" " ldr r0, ._507 + 76\n" " bl SetVBlankCallback\n" " ldr r0, ._507 + 80\n" @@ -3860,7 +3860,7 @@ void debug_sub_8010CAC() " strb r0, [r3, #0x15]\n" " lsl r0, r0, #0x1f\n" " lsr r0, r0, #0x1f\n" - " bl gMysteryEventScriptCmdTableEnd+0x2aa0\n" + " bl SetPokemonCryStereo\n" " bl debug_nullsub_3\n" "._559:\n" " ldr r4, ._565 + 12\n" @@ -4774,7 +4774,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4830,7 +4830,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4886,7 +4886,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4929,7 +4929,7 @@ void debug_sub_8011498() " lsl r4, r5, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -4965,7 +4965,7 @@ void debug_sub_8011498() " lsl r4, r4, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -5002,7 +5002,7 @@ void debug_sub_8011498() " lsl r4, r5, #0x1\n" " mov r0, r9\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" @@ -5200,7 +5200,7 @@ void debug_sub_801174C() "._713:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._719\n" @@ -5223,7 +5223,7 @@ void debug_sub_801174C() "._699:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" @@ -5282,7 +5282,7 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._726\n" @@ -5355,7 +5355,7 @@ void debug_sub_801174C() "._735:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" " ldr r1, ._741\n" @@ -5382,7 +5382,7 @@ void debug_sub_801174C() "._721:\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" @@ -5441,7 +5441,7 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" " ldr r1, ._750\n" @@ -5460,7 +5460,7 @@ void debug_sub_801174C() " ble ._743 @cond_branch\n" " add r0, r7, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" " ldr r1, ._750\n" @@ -6483,7 +6483,7 @@ void debug_sub_8012294() " lsl r4, r4, #0x1\n" " add r0, r5, #0\n" " mov r1, #0x5\n" - " bl gMysteryEventScriptCmdTableEnd+0x4358\n" + " bl __udivsi3\n" " add r5, r0, #0\n" " lsl r5, r5, #0x18\n" " lsr r5, r5, #0x15\n" @@ -7102,7 +7102,7 @@ void debug_sub_8012688() " bl SetHBlankCallback\n" " ldr r0, ._873 + 100\n" " bl SetVBlankCallback\n" - " bl gMysteryEventScriptCmdTableEnd+0x14f4\n" + " bl m4aMPlayAllStop\n" " ldr r0, ._873 + 104\n" " mov r1, #0x0\n" " bl CreateTask\n" @@ -8484,7 +8484,7 @@ void debug_sub_8013240() { asm( " push {lr}\n" - " bl gMysteryEventScriptCmdTableEnd+0x2fec\n" + " bl IdentifyFlash\n" " lsl r0, r0, #0x10\n" " cmp r0, #0\n" " beq ._1068 @cond_branch\n" @@ -8519,7 +8519,7 @@ void debug_sub_8013258() " lsr r4, r0, #0x10\n" " add r0, r4, #0\n" " add r1, r6, #0\n" - " bl gMysteryEventScriptCmdTableEnd+0x2f60\n" + " bl ProgramFlashSectorAndVerify\n" " cmp r0, #0\n" " bne ._1071 @cond_branch\n" " mov r0, #0x80\n" @@ -8555,13 +8555,13 @@ void debug_sub_8013294() " lsl r0, r0, #0x18\n" " cmp r0, #0\n" " bne ._1076 @cond_branch\n" - " bl gMysteryEventScriptCmdTableEnd+0x19f4\n" + " bl m4aSoundVSyncOff\n" " add r0, r4, #0\n" " add r1, r5, #0\n" " add r2, r6, #0\n" " bl debug_sub_8013258\n" " add r4, r0, #0\n" - " bl gMysteryEventScriptCmdTableEnd+0x1a70\n" + " bl m4aSoundVSyncOn\n" " add r0, r4, #0\n" " b ._1077\n" "._1076:\n" @@ -8591,7 +8591,7 @@ void debug_sub_80132C8() " mov r1, #0x0\n" " add r2, r5, #0\n" " add r3, r6, #0\n" - " bl gMysteryEventScriptCmdTableEnd+0x2d64\n" + " bl ReadFlash\n" "._1078:\n" " pop {r4, r5, r6}\n" " pop {r0}\n" @@ -9066,7 +9066,7 @@ void debug_sub_80139E4() "._1193:\n" " ldr r0, ._1198 + 12\n" " ldr r0, [r0]\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" + " bl _call_via_r0\n" " ldr r1, ._1198 + 4\n" " mov r0, #0x0\n" " strb r0, [r1]\n" @@ -9081,7 +9081,7 @@ void debug_sub_80139E4() " lsl r0, r0, #0x2\n" " add r0, r0, r5\n" " ldr r0, [r0]\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" + " bl _call_via_r0\n" " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" @@ -9103,7 +9103,7 @@ void debug_sub_80139E4() "._1192:\n" " ldr r0, ._1202\n" " ldr r0, [r0]\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" + " bl _call_via_r0\n" " ldr r1, ._1202 + 4\n" " strb r4, [r1]\n" " ldr r0, ._1202 + 8\n" @@ -9117,7 +9117,7 @@ void debug_sub_80139E4() " lsl r0, r0, #0x2\n" " add r0, r0, r5\n" " ldr r0, [r0]\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" + " bl _call_via_r0\n" " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" @@ -9339,7 +9339,7 @@ void sub_8010874() " mov r0, #0x64\n" " mul r0, r0, r1\n" " ldr r1, ._1215 + 160\n" - " bl gMysteryEventScriptCmdTableEnd+0x3d30\n" + " bl __divsi3\n" " ldr r2, ._1215 + 164\n" " add r1, r4, r2\n" " strb r0, [r1]\n" diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 038b4f5cf..3415d9337 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -5111,7 +5111,7 @@ static void atk15_seteffectwithchance(void) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x64\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ cmp r0, r4\n\ diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 7e3655e4a..cbca4a586 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -2234,7 +2234,7 @@ void debug_sub_803107C(void) mov r7, #0x0\n\ ldr r0, ._369\n\ ldr r0, [r0]\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cf4\n\ + bl _call_via_r0\n\ ldr r0, ._369 + 4\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index 1b6240159..b703bc7b8 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -1405,7 +1405,7 @@ void sub_804454C() " add r1, r1, r0\n" " mov r0, sp\n" " ldr r2, ._150 + 36\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" + " bl CpuSet\n" " ldrb r4, [r5]\n" " ldrh r0, [r7]\n" " mov r1, sl\n" @@ -1467,7 +1467,7 @@ void sub_804454C() " ldr r2, ._153 + 4\n" " add r1, r1, r2\n" " ldr r2, ._153 + 8\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" + " bl CpuSet\n" " b ._163\n" "._154:\n" " .align 2, 0\n" @@ -1521,7 +1521,7 @@ void sub_804454C() " add r1, r1, r6\n" " mov r0, sp\n" " ldr r2, ._161 + 4\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cb4\n" + " bl CpuSet\n" " ldrb r4, [r5]\n" " ldrh r0, [r7]\n" " mov r1, sl\n" diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index 8dae98b66..817382911 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -2407,7 +2407,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x3\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ lsr r4, r0, #0x10\n\ cmp r4, #0\n\ @@ -3332,7 +3332,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0xa\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ cmp r0, #0\n\ beq ._1091 @cond_branch\n\ @@ -3542,7 +3542,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x3\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ cmp r0, #0\n\ beq ._1124 @cond_branch\n\ @@ -3737,7 +3737,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x3\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ cmp r0, #0\n\ beq ._1155 @cond_branch\n\ @@ -3932,7 +3932,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x3\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ cmp r0, #0\n\ beq ._1186 @cond_branch\n\ @@ -4204,7 +4204,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) lsl r0, r0, #0x10\n\ lsr r0, r0, #0x10\n\ mov r1, #0x3\n\ - bl gMysteryEventScriptCmdTableEnd+0x43d0\n\ + bl __umodsi3\n\ lsl r0, r0, #0x10\n\ cmp r0, #0\n\ beq ._1232 @cond_branch\n\ -- cgit v1.2.3 From e03633d6bc1e1cd155bc258edbb7783020b4bdb7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 23 Jan 2018 16:55:48 -0600 Subject: fix more false offsets --- src/battle/battle_2.c | 218 ++++++++++++++++---------------- src/battle/battle_4.c | 4 +- src/battle/battle_ai.c | 16 +-- src/battle/battle_controller_opponent.c | 12 +- src/battle/battle_controller_player.c | 4 +- src/battle/battle_records.c | 4 +- src/battle/battle_util.c | 12 +- 7 files changed, 135 insertions(+), 135 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 41d00546d..6808ad61c 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -354,7 +354,7 @@ void InitBattle(void) " .word gBattle_BG2_Y\n" " .word gBattle_BG3_X\n" " .word gBattle_BG3_Y\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word gBattleTerrain\n" " .word gUnknown_03004210\n" " .word gUnknown_030041D0\n" @@ -417,7 +417,7 @@ void InitBattle(void) "._15:\n" " .word sub_800EC9C+1\n" " .word gBattleTypeFlags\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word gEnemyParty\n" " .word gTrainerBattleOpponent\n" " .word gMain\n" @@ -638,7 +638,7 @@ void sub_800EC9C() "._56:\n" " .align 2, 0\n" "._55:\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160cb\n" " .word gBattleCommunication\n" " .word ._57\n" @@ -710,8 +710,8 @@ void sub_800EC9C() "._76:\n" " .word gBattleTypeFlags\n" " .word gReceivedRemoteLinkPlayers\n" - " .word +0x2000000\n" - " .word gUnknown_02023A14+0x50\n" + " .word gSharedMem\n" + " .word gUnknown_02023A14_50\n" " .word 0x2211\n" " .word gLinkPlayers\n" " .word gBattleCommunication\n" @@ -873,7 +873,7 @@ void sub_800EC9C() "._106:\n" " .word sub_800DE30+1\n" " .word gTasks\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word gBlockRecvBuffer\n" "._60:\n" " bl sub_8007ECC\n" @@ -1295,7 +1295,7 @@ void sub_800F104() "._152:\n" " .align 2, 0\n" "._151:\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160cb\n" " .word 0x160c4\n" " .word gBattleCommunication\n" @@ -1355,10 +1355,10 @@ void sub_800F104() " .align 2, 0\n" "._165:\n" " .word gReceivedRemoteLinkPlayers\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word 0x2211\n" " .word gLinkPlayers\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word gBattleCommunication\n" "._147:\n" " bl GetBlockReceivedStatus\n" @@ -1586,7 +1586,7 @@ void sub_800F298() "._189:\n" " .align 2, 0\n" "._188:\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160cb\n" " .word gBattleCommunication\n" " .word ._190\n" @@ -1646,10 +1646,10 @@ void sub_800F298() " .align 2, 0\n" "._206:\n" " .word gReceivedRemoteLinkPlayers\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word 0x2211\n" " .word gLinkPlayers\n" - " .word +0x2000000\n" + " .word gSharedMem\n" "._192:\n" " bl GetBlockReceivedStatus\n" " mov r1, #0xf\n" @@ -3181,12 +3181,12 @@ void debug_sub_8010818() "._502:\n" " .align 2, 0\n" "._501:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word 0x115\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_02023A14+0xde\n" - " .word UnkDebug0+0x1b4\n" + " .word gUnknown_Debug_2023B02\n" + " .word gUnknown_Debug_821F56C\n" "\n" ); } @@ -3345,7 +3345,7 @@ void debug_sub_80108B8() " .word 0x4000050\n" " .word gMonShinyPalette_CircledQuestionMark+0x18\n" " .word gMonShinyPalette_CircledQuestionMark+0x834\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word gMonShinyPalette_CircledQuestionMark+0xa8c\n" " .word 0x50001e0\n" " .word debug_sub_8011D40+1\n" @@ -3356,7 +3356,7 @@ void debug_sub_80108B8() " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._505:\n" " ldr r0, ._510\n" " mov r1, #0x0\n" @@ -3377,7 +3377,7 @@ void debug_sub_80108B8() "._511:\n" " .align 2, 0\n" "._510:\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160bb\n" "\n" ); @@ -3458,7 +3458,7 @@ void debug_sub_8010AAC() " .align 2, 0\n" "._520:\n" " .word gBaseStats\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" "._517:\n" @@ -3607,7 +3607,7 @@ void debug_sub_8010B80() "._535:\n" " .align 2, 0\n" "._534:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" @@ -3800,8 +3800,8 @@ void debug_sub_8010CAC() " .word gUnknown_Debug_030043A0\n" " .word debug_sub_80108B8+1\n" " .word gPlayerParty\n" - " .word gUnknown_02023A14+0x52\n" - " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_2023A76\n" + " .word gUnknown_Debug_2023B02\n" " .word gBattleMoves+0x4\n" "._550:\n" " ldr r1, ._556\n" @@ -4078,7 +4078,7 @@ void debug_sub_8010CAC() "._598:\n" " .align 2, 0\n" "._597:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A4\n" "._593:\n" " ldr r1, ._600\n" @@ -4089,7 +4089,7 @@ void debug_sub_8010CAC() "._601:\n" " .align 2, 0\n" "._600:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._594:\n" " ldr r3, ._604\n" " add r2, r3, #0\n" @@ -4110,7 +4110,7 @@ void debug_sub_8010CAC() "._605:\n" " .align 2, 0\n" "._604:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._602:\n" " mov r1, #0x8\n" " strh r1, [r2]\n" @@ -4250,11 +4250,11 @@ void debug_sub_8010CAC() "._619:\n" " .align 2, 0\n" "._618:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" " .word gMain\n" " .word ._620\n" "._620:\n" @@ -4287,7 +4287,7 @@ void debug_sub_8010CAC() "._629:\n" " .align 2, 0\n" "._628:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A4\n" "._624:\n" " ldr r1, ._631\n" @@ -4298,7 +4298,7 @@ void debug_sub_8010CAC() "._632:\n" " .align 2, 0\n" "._631:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._625:\n" " ldr r3, ._635\n" " add r2, r3, #0\n" @@ -4319,7 +4319,7 @@ void debug_sub_8010CAC() "._636:\n" " .align 2, 0\n" "._635:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._633:\n" " mov r1, #0x0\n" " strh r1, [r2]\n" @@ -4456,11 +4456,11 @@ void debug_sub_8010CAC() "._651:\n" " .align 2, 0\n" "._650:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" " .word gMain\n" "._648:\n" " mov r4, r8\n" @@ -4492,9 +4492,9 @@ void debug_sub_8010CAC() "._656:\n" " .align 2, 0\n" "._655:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "._657:\n" " add r0, r5, #6\n" " add r0, r1, r0\n" @@ -4614,9 +4614,9 @@ void debug_sub_8010CAC() "._669:\n" " .align 2, 0\n" "._668:\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "._670:\n" " ldrh r0, [r3]\n" " sub r0, r0, r1\n" @@ -4913,9 +4913,9 @@ void debug_sub_8011498() " .word gMain\n" " .word debug_sub_8010CAC+1\n" " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_2023B02\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x1ac\n" + " .word gUnknown_Debug_821F564\n" "._689:\n" " add r0, r6, #6\n" " add r0, r2, r0\n" @@ -4988,10 +4988,10 @@ void debug_sub_8011498() " .align 2, 0\n" "._692:\n" " .word gMain\n" - " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_2023B02\n" " .word gUnknown_Debug_030043A8\n" " .word gUnknown_Debug_03004360\n" - " .word UnkDebug0+0x1ac\n" + " .word gUnknown_Debug_821F564\n" "._694:\n" " ldrh r0, [r4]\n" " sub r0, r0, r1\n" @@ -5156,10 +5156,10 @@ void debug_sub_801174C() " .word gUnknown_020297ED\n" " .word gSaveBlock2\n" " .word str_821F631\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gBattleTypeFlags\n" - " .word UnkDebug0+0x1e0\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_Debug_821F598\n" + " .word gUnknown_02023A14_50\n" " .word gBattleTerrain\n" " .word gTrainerBattleOpponent\n" " .word gPlayerPartyCount\n" @@ -5272,8 +5272,8 @@ void debug_sub_801174C() " .align 2, 0\n" "._719:\n" " .word gEnemyParty\n" - " .word gUnknown_02023A14+0x52\n" - " .word gUnknown_02023A14+0x56\n" + " .word gUnknown_Debug_2023A76\n" + " .word gUnknown_Debug_2023A7A\n" "._717:\n" " mov r2, #0x0\n" " ldsh r0, [r0, r2]\n" @@ -5316,7 +5316,7 @@ void debug_sub_801174C() " .align 2, 0\n" "._726:\n" " .word gEnemyParty\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._723:\n" " cmp r0, #0x2\n" " beq ._728 @cond_branch\n" @@ -5429,10 +5429,10 @@ void debug_sub_801174C() " .align 2, 0\n" "._741:\n" " .word gPlayerParty\n" - " .word gUnknown_02023A14+0x98\n" + " .word gUnknown_Debug_2023ABC\n" " .word gPlayerPartyCount\n" - " .word gUnknown_02023A14+0x9c\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023AC0\n" + " .word gUnknown_Debug_2023A76\n" "._739:\n" " mov r1, #0x0\n" " ldsh r0, [r0, r1]\n" @@ -5574,14 +5574,14 @@ void debug_sub_801174C() " .align 2, 0\n" "._750:\n" " .word gPlayerParty\n" - " .word gUnknown_02023A14+0x98\n" + " .word gUnknown_Debug_2023ABC\n" " .word Str_821F649\n" - " .word gUnknown_02023A14+0x50\n" - " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_02023A14_50\n" + " .word gUnknown_Debug_2023B02\n" " .word gEnemyParty\n" " .word gBattleMoves+0x4\n" - " .word gUnknown_02023A14+0x10e\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023B32\n" + " .word gUnknown_Debug_2023A76\n" "._748:\n" " cmp r0, #0x7\n" " bne ._752 @cond_branch\n" @@ -5592,7 +5592,7 @@ void debug_sub_801174C() "._755:\n" " .align 2, 0\n" "._754:\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" "._752:\n" " cmp r0, #0x6\n" " bne ._756 @cond_branch\n" @@ -5614,8 +5614,8 @@ void debug_sub_801174C() "._760:\n" " .align 2, 0\n" "._759:\n" - " .word gUnknown_02023A14+0x50\n" - " .word +0x2000000\n" + " .word gUnknown_02023A14_50\n" + " .word gSharedMem\n" " .word 0x160a3\n" "._757:\n" " ldr r0, ._762\n" @@ -5625,7 +5625,7 @@ void debug_sub_801174C() "._763:\n" " .align 2, 0\n" "._762:\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160a3\n" "._756:\n" " cmp r0, #0x5\n" @@ -5642,7 +5642,7 @@ void debug_sub_801174C() "._767:\n" " .align 2, 0\n" "._766:\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" "._764:\n" " mov r0, #0x1\n" " and r0, r0, r1\n" @@ -5772,11 +5772,11 @@ void debug_sub_801174C() "._773:\n" " .align 2, 0\n" "._772:\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word gMain\n" " .word debug_sub_80108B8+1\n" " .word unref_sub_800D684+1\n" - " .word UnkDebug0+0x1f4\n" + " .word gUnknown_Debug_821F5AC\n" "\n" ); } @@ -5834,7 +5834,7 @@ void debug_sub_8011D40() " .align 2, 0\n" "._774:\n" " .word 0x40000d4\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x6004000\n" " .word 0x80000800\n" " .word gBattle_BG0_X\n" @@ -6121,9 +6121,9 @@ void debug_sub_8011EA0() " .align 2, 0\n" "._823:\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" " .word gUnknown_Debug_03004370\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" " .word gSpeciesNames\n" "._817:\n" @@ -6147,7 +6147,7 @@ void debug_sub_8011EA0() " .align 2, 0\n" "._826:\n" " .word gBattleTextBuff1\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" "._814:\n" " mov r0, #0x0\n" @@ -6226,9 +6226,9 @@ void debug_sub_8011EA0() "._830:\n" " .word gUnknown_Debug_03004370\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" " .word gUnknown_Debug_03004360\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" "._828:\n" " ldr r1, ._833\n" " mov r0, sl\n" @@ -6257,10 +6257,10 @@ void debug_sub_8011EA0() "._834:\n" " .align 2, 0\n" "._833:\n" - " .word UnkDebug0+0x26c\n" + " .word Str_821F624\n" " .word gUnknown_Debug_03004370\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "._816:\n" " mov r0, #0x0\n" " mov r1, #0x4\n" @@ -6308,8 +6308,8 @@ void debug_sub_8011EA0() "._839:\n" " .word gUnknown_Debug_03004370\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x6c\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_821F424\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" "._836:\n" " cmp r0, #0x2\n" @@ -6373,7 +6373,7 @@ void debug_sub_8011EA0() "._849:\n" " .word gBattleTextBuff1\n" " .word gUnknown_Debug_03004370\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "._815:\n" " ldr r6, ._851\n" " ldr r3, ._851 + 4\n" @@ -6422,10 +6422,10 @@ void debug_sub_8011EA0() " .align 2, 0\n" "._851:\n" " .word gBattleTextBuff1\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004360\n" " .word gUnknown_Debug_03004370\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "\n" ); } @@ -6572,12 +6572,12 @@ void debug_sub_8012294() " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004370\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x1ac\n" + " .word gUnknown_Debug_821F564\n" " .word gUnknown_Debug_030043A8\n" - " .word UnkDebug0+0x1ae\n" - " .word UnkDebug0+0x1b0\n" + " .word gUnknown_Debug_821F566\n" + " .word gUnknown_Debug_821F568\n" " .word gUnknown_Debug_03004360\n" - " .word gUnknown_02023A14+0xde\n" + " .word gUnknown_Debug_2023B02\n" " .word gMoveNames\n" "\n" ); @@ -6700,9 +6700,9 @@ void debug_sub_80123D8() "._858:\n" " .word gUnknown_Debug_03004370\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x1d4\n" + " .word gUnknown_Debug_821F58C\n" " .word gUnknown_Debug_03004360\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gBaseStats\n" " .word gAbilityNames\n" "._856:\n" @@ -6745,7 +6745,7 @@ void debug_sub_80123D8() " .word gBattleTextBuff1\n" " .word gAbilityNames\n" " .word gUnknown_Debug_03004370\n" - " .word UnkDebug0+0x1d4\n" + " .word gUnknown_Debug_821F58C\n" "\n" ); } @@ -6792,9 +6792,9 @@ void debug_sub_8012540() " .align 2, 0\n" "._862:\n" " .word gBattleTextBuff1\n" - " .word gUnknown_02023A14+0x52\n" + " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_03004370\n" - " .word UnkDebug0+0x6c\n" + " .word gUnknown_Debug_821F424\n" "\n" ); } @@ -6839,8 +6839,8 @@ void debug_sub_80125A0() "._865:\n" " .align 2, 0\n" "._864:\n" - " .word +0x2000000\n" - " .word UnkDebug0+0x2c8\n" + " .word gSharedMem\n" + " .word gUnknown_Debug_821F680\n" " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" @@ -6879,8 +6879,8 @@ void debug_sub_80125E4() "._867:\n" " .align 2, 0\n" "._866:\n" - " .word +0x2000000\n" - " .word UnkDebug0+0x2c8\n" + " .word gSharedMem\n" + " .word gUnknown_Debug_821F680\n" " .word gUnknown_Debug_030043A0\n" " .word gUnknown_Debug_030043A4\n" " .word gUnknown_Debug_03004360\n" @@ -6910,8 +6910,8 @@ void debug_sub_8012628() "._869:\n" " .align 2, 0\n" "._868:\n" - " .word +0x2000000\n" - " .word UnkDebug0+0x3e0\n" + " .word gSharedMem\n" + " .word gUnknown_Debug_821F798\n" " .word gUnknown_Debug_030043A8\n" " .word gUnknown_Debug_03004360\n" "\n" @@ -6940,8 +6940,8 @@ void debug_sub_8012658() "._871:\n" " .align 2, 0\n" "._870:\n" - " .word +0x2000000\n" - " .word UnkDebug0+0x3e0\n" + " .word gSharedMem\n" + " .word gUnknown_Debug_821F798\n" " .word gUnknown_Debug_030043A8\n" " .word gUnknown_Debug_03004360\n" "\n" @@ -7126,7 +7126,7 @@ void debug_sub_8012688() "._874:\n" " .align 2, 0\n" "._873:\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word 0x40000d4\n" " .word 0x85006000\n" " .word 0x400004c\n" @@ -7341,8 +7341,8 @@ void debug_sub_8012938() "._880:\n" " .word gUnknown_03004210\n" " .word gBattleTextBuff1\n" - " .word UnkDebug0+0x400\n" - " .word gUnknown_02023A14+0x13e\n" + " .word Str_821F7B8\n" + " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" " .word gSprites\n" " .word gTasks\n" @@ -7444,7 +7444,7 @@ void debug_sub_80129F8() " .word gMonPaletteTable\n" " .word gSprites\n" " .word gTasks\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" "\n" ); } @@ -7638,7 +7638,7 @@ void debug_sub_8012B70() "._901:\n" " .word gTasks\n" " .word gUnknown_03004210\n" - " .word UnkDebug0+0x422\n" + " .word Str_821F7DA\n" "\n" ); } @@ -7762,7 +7762,7 @@ void debug_sub_8012C08() " .align 2, 0\n" "._907:\n" " .word gTasks\n" - " .word UnkDebug0+0x432\n" + " .word Str_821F7EA\n" " .word gUnknown_03004210\n" " .word BattleText_YesNo\n" "\n" @@ -7833,7 +7833,7 @@ void debug_sub_8012D10() " .align 2, 0\n" "._920:\n" " .word gUnknown_03004210\n" - " .word UnkDebug0+0x405\n" + " .word Str_821F7BD\n" " .word gTasks\n" "._915:\n" " ldr r2, ._924\n" @@ -7988,7 +7988,7 @@ void debug_sub_8012D10() "._953:\n" " .align 2, 0\n" "._952:\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" "._939:\n" " mov r0, #0x1\n" @@ -8059,7 +8059,7 @@ void debug_sub_8012D10() "._974:\n" " .align 2, 0\n" "._973:\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" "._968:\n" " ldr r1, ._977\n" @@ -8135,7 +8135,7 @@ void debug_sub_8012D10() "._996:\n" " .align 2, 0\n" "._995:\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" "._983:\n" " mov r0, #0x1\n" @@ -8218,7 +8218,7 @@ void debug_sub_8012D10() "._1021:\n" " .align 2, 0\n" "._1020:\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" "._1018:\n" " strb r3, [r2]\n" @@ -8372,7 +8372,7 @@ void debug_sub_8012D10() " .align 2, 0\n" "._1050:\n" " .word gTasks\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word 0x19b\n" "._1047:\n" " mov r0, #0x2\n" @@ -8458,7 +8458,7 @@ void debug_sub_8012D10() " .align 2, 0\n" "._1065:\n" " .word gTasks\n" - " .word gUnknown_02023A14+0x13e\n" + " .word gUnknown_Debug_2023B62\n" " .word 0x19b\n" "._1062:\n" " mov r0, #0x2\n" @@ -8912,7 +8912,7 @@ void debug_sub_80138CC() " .align 2, 0\n" "._1167:\n" " .word gActiveBank\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x160fd\n" " .word ._1169\n" "._1169:\n" @@ -9095,7 +9095,7 @@ void debug_sub_80139E4() "._1199:\n" " .align 2, 0\n" "._1198:\n" - " .word gUnknown_02023A14+0x50\n" + " .word gUnknown_02023A14_50\n" " .word gActiveBank\n" " .word gNoOfAllBanks\n" " .word gBattleMainFunc\n" @@ -9471,7 +9471,7 @@ void sub_8010874() " .word gStatuses3\n" " .word gUnknown_02024C70\n" " .word gUnknown_02024C5C\n" - " .word +0x2017100\n" + " .word gSharedMem+0x17100\n" " .word gSideTimers\n" " .word gSideAffecting\n" " .word gBankAttacker\n" @@ -9481,7 +9481,7 @@ void sub_8010874() " .word gHitMarker\n" " .word gBattleTypeFlags\n" " .word gSaveBlock2\n" - " .word +0x2000000\n" + " .word gSharedMem\n" " .word 0x16084\n" " .word gMultiHitCounter\n" " .word gBattleOutcome\n" diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 3415d9337..9fe1f6cb0 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -1090,7 +1090,7 @@ static const u8 sTerrainToType[] = TYPE_NORMAL, // plain }; -const u8 sBallCatchBonuses[] = +static const u8 sBallCatchBonuses[] = { 20, 15, 10, 15 // Ultra, Great, Poke, Safari }; @@ -5103,7 +5103,7 @@ static void atk15_seteffectwithchance(void) ._1045:\n\ .word gBattleMoves\n\ .word gCurrentMove\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleCommunication\n\ .word gBattleMoveFlags\n\ ._1043:\n\ diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index ffc9281e4..87a66c2c7 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -381,7 +381,7 @@ void BattleAI_SetupAIData() "._17:\n" " .align 2, 0\n" "._16:\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" " .word gActiveBank\n" " .word gBitTable\n" " .word +0x2016c00\n" @@ -410,7 +410,7 @@ void BattleAI_SetupAIData() "._20:\n" " .word gBankTarget\n" " .word gBattleTypeFlags\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" "._18:\n" " mov r2, #0x80\n" " lsl r2, r2, #0x3\n" @@ -425,7 +425,7 @@ void BattleAI_SetupAIData() "._25:\n" " .align 2, 0\n" "._24:\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" "._22:\n" " mov r0, #0x10\n" " and r0, r0, r1\n" @@ -438,7 +438,7 @@ void BattleAI_SetupAIData() "._29:\n" " .align 2, 0\n" "._28:\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" "._26:\n" " mov r0, #0x90\n" " lsl r0, r0, #0x4\n" @@ -460,7 +460,7 @@ void BattleAI_SetupAIData() " .align 2, 0\n" "._33:\n" " .word gTrainerBattleOpponent\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" "._31:\n" " ldr r3, ._36\n" " ldr r2, ._36 + 4\n" @@ -489,10 +489,10 @@ void BattleAI_SetupAIData() "._37:\n" " .align 2, 0\n" "._36:\n" - " .word +0x2016800\n" + " .word gSharedMem+0x16800\n" " .word gTrainers\n" - " .word gUnknown_02023A14+0x50\n" - " .word gUnknown_02023A14+0x4c\n" + " .word gUnknown_02023A14_50\n" + " .word gUnknown_02023A14_4C\n" "\n" ); } diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index cc69c0120..d2045b6c4 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -1232,7 +1232,7 @@ void OpponentHandleTrainerThrow(void) ._481:\n\ .align 2, 0\n\ ._480:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word +0x2000000\n\ .word 0x160a3\n\ ._478:\n\ @@ -1718,8 +1718,8 @@ void OpponentHandlecmd20(void) .align 2, 0\n\ ._549:\n\ .word gActiveBank\n\ - .word gUnknown_02023A64\n\ - .word gUnknown_02023A14+0x50\n\ + .word gBattleBufferA+4\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoves\n\ .word +0x2000000\n\ .word 0x1609e\n\ @@ -1781,7 +1781,7 @@ void OpponentHandlecmd20(void) .align 2, 0\n\ ._559:\n\ .word gBattleTypeFlags\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ ._556:\n\ bl Random\n\ add r1, r5, #0\n\ @@ -2048,7 +2048,7 @@ void OpponentHandlecmd20(void) ldr r6, _0803545C @ =gActiveBank\n\ ldrb r0, [r6]\n\ lsls r0, 9\n\ - ldr r1, _08035460 @ =gUnknown_02023A64\n\ + ldr r1, _08035460 @ =gBattleBufferA+4\n\ adds r5, r0, r1\n\ ldr r0, _08035464 @ =gBattleTypeFlags\n\ ldrh r1, [r0]\n\ @@ -2070,7 +2070,7 @@ void OpponentHandlecmd20(void) b _0803546C\n\ .align 2, 0\n\ _0803545C: .4byte gActiveBank\n\ -_08035460: .4byte gUnknown_02023A64\n\ +_08035460: .4byte gBattleBufferA+4\n\ _08035464: .4byte gBattleTypeFlags\n\ _08035468:\n\ movs r0, 0x1\n\ diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index cbca4a586..8875d5148 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -674,7 +674,7 @@ void sub_802C68C(void) .align 2, 0\n\ ._131:\n\ .word gActiveBank\n\ - .word gUnknown_02023A64\n\ + .word gBattleBufferA+4\n\ .word gMain\n\ .word gMoveSelectionCursor\n\ ._128:\n\ @@ -1328,7 +1328,7 @@ void sub_802C68C(void) .word gPlayerParty\n\ .word gMoveNames\n\ .word gDisplayedStringBattle\n\ - .word sBallCatchBonuses+0x4\n\ + .word gString_TurnJP\n\ .word gAnimMoveTurn\n\ .word gSprites\n\ .word gOamMatrixAllocBitmap\n\ diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c index 4fce958fa..9dd1d7b53 100644 --- a/src/battle/battle_records.c +++ b/src/battle/battle_records.c @@ -275,9 +275,9 @@ void debug_sub_81257E0(void) ._63:\n\ .align 2, 0\n\ ._62:\n\ - .word gUnknown_083F8410+0xa\n\ + .word gUnknown_Debug_4245CC+2\n\ .word gLinkPlayers\n\ - .word gUnknown_083F8410+0x5c\n\ + .word gUnknown_Debug_8424620\n\ .word gLinkPlayerMapObjects\n\ .word gSaveBlock1+0x30b8"); } diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index 817382911..620e0690a 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -3255,7 +3255,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) ._1079:\n\ .align 2, 0\n\ ._1078:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoveFlags\n\ .word gBattleMons\n\ .word gBankAttacker\n\ @@ -3465,7 +3465,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) ._1112:\n\ .align 2, 0\n\ ._1111:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoveFlags\n\ .word gBattleMons\n\ .word gBankAttacker\n\ @@ -3660,7 +3660,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) ._1143:\n\ .align 2, 0\n\ ._1142:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoveFlags\n\ .word gBattleMons\n\ .word gBankAttacker\n\ @@ -3855,7 +3855,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) ._1174:\n\ .align 2, 0\n\ ._1173:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoveFlags\n\ .word gBattleMons\n\ .word gBankAttacker\n\ @@ -4118,7 +4118,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) ._1218:\n\ .align 2, 0\n\ ._1217:\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ .word gBattleMoveFlags\n\ .word gBattleMons\n\ .word gBankAttacker\n\ @@ -7489,7 +7489,7 @@ u8 IsMonDisobedient(void) .word gBattleTypeFlags\n\ .word gBankAttacker\n\ .word gBattleMons\n\ - .word gUnknown_02023A14+0x50\n\ + .word gUnknown_02023A14_50\n\ ._1783:\n\ ldr r0, ._1794\n\ bl FlagGet\n\ -- cgit v1.2.3 From dbcf1ce9cb124e303e6bed3fecede7a72b8000f2 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 00:58:38 -0600 Subject: integrate some debug differences --- src/battle/battle_2.c | 2179 +++++-------------------------------------------- 1 file changed, 186 insertions(+), 1993 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 6808ad61c..64b64ecea 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -14,6 +14,7 @@ #include "main.h" #include "m4a.h" #include "name_string_util.h" +#include "overworld.h" #include "palette.h" #include "party_menu.h" #include "pokeball.h" @@ -64,6 +65,9 @@ struct UnknownStruct12 u8 filler4[0x54]; }; +void debug_sub_80139E4(void); +extern u8 gUnknown_02023A14_50; + extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; @@ -203,231 +207,6 @@ void sub_800E7C4(void) } } -#if DEBUG -__attribute__((naked)) -void InitBattle(void) -{ - asm( - " push {r4, r5, lr}\n" - " add sp, sp, #0xfffffffc\n" - " mov r0, #0x0\n" - " bl SetHBlankCallback\n" - " mov r0, #0x0\n" - " bl SetVBlankCallback\n" - " mov r4, #0x0\n" - " str r4, [sp]\n" - " mov r1, #0xc0\n" - " lsl r1, r1, #0x13\n" - " ldr r2, ._10\n" - " mov r0, sp\n" - " bl CpuSet\n" - " ldr r0, ._10 + 4\n" - " strh r4, [r0]\n" - " sub r0, r0, #0xc\n" - " mov r2, #0xf0\n" - " strh r2, [r0]\n" - " add r0, r0, #0x4\n" - " ldr r3, ._10 + 8\n" - " add r1, r3, #0\n" - " strh r1, [r0]\n" - " add r0, r0, #0x4\n" - " strh r4, [r0]\n" - " add r0, r0, #0x2\n" - " strh r4, [r0]\n" - " ldr r0, ._10 + 12\n" - " strh r2, [r0]\n" - " ldr r0, ._10 + 16\n" - " strh r1, [r0]\n" - " bl ScanlineEffect_Clear\n" - " ldr r0, ._10 + 20\n" - " mov r3, #0xf0\n" - " mov r5, #0xf0\n" - " lsl r5, r5, #0x3\n" - " add r2, r0, r5\n" - " mov r1, #0x4f\n" - "._5:\n" - " strh r3, [r0]\n" - " strh r3, [r2]\n" - " add r2, r2, #0x2\n" - " add r0, r0, #0x2\n" - " sub r1, r1, #0x1\n" - " cmp r1, #0\n" - " bge ._5 @cond_branch\n" - " mov r1, #0x50\n" - " ldr r4, ._10 + 24\n" - " ldr r0, ._10 + 20\n" - " ldr r3, ._10 + 28\n" - " mov r5, #0x82\n" - " lsl r5, r5, #0x4\n" - " add r2, r0, r5\n" - " add r0, r0, #0xa0\n" - "._6:\n" - " strh r3, [r0]\n" - " strh r3, [r2]\n" - " add r2, r2, #0x2\n" - " add r0, r0, #0x2\n" - " add r1, r1, #0x1\n" - " cmp r1, #0x9f\n" - " ble ._6 @cond_branch\n" - " ldr r0, [r4]\n" - " ldr r1, [r4, #0x4]\n" - " ldr r2, [r4, #0x8]\n" - " bl ScanlineEffect_SetParams\n" - " ldr r4, ._10 + 32\n" - " add r0, r4, #0\n" - " bl Text_LoadWindowTemplate\n" - " bl ResetPaletteFade\n" - " ldr r0, ._10 + 36\n" - " mov r1, #0x0\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 40\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 44\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 48\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 52\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 56\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 60\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 64\n" - " strh r1, [r0]\n" - " ldr r0, ._10 + 68\n" - " ldrb r1, [r0]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._7 @cond_branch\n" - " bl BattleSetup_GetTerrain\n" - " ldr r1, ._10 + 72\n" - " strb r0, [r1]\n" - "._7:\n" - " ldr r0, ._10 + 76\n" - " add r1, r4, #0\n" - " bl Text_InitWindowWithTemplate\n" - " ldr r0, ._10 + 80\n" - " ldr r1, ._10 + 84\n" - " bl Text_InitWindowWithTemplate\n" - " ldr r0, ._10 + 88\n" - " ldr r1, ._10 + 92\n" - " bl Text_InitWindowWithTemplate\n" - " bl sub_800D6D4\n" - " bl sub_800DAB8\n" - " bl ResetSpriteData\n" - " bl ResetTasks\n" - " bl sub_800E23C\n" - " bl FreeAllSpritePalettes\n" - " ldr r1, ._10 + 96\n" - " mov r0, #0x4\n" - " strb r0, [r1]\n" - " ldr r0, ._10 + 100\n" - " bl SetVBlankCallback\n" - " bl setup_poochyena_battle\n" - " ldr r0, ._10 + 104\n" - " ldrh r1, [r0]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._8 @cond_branch\n" - " ldr r0, ._10 + 108\n" - " bl SetMainCallback2\n" - " b ._9\n" - "._11:\n" - " .align 2, 0\n" - "._10:\n" - " .word 0x5006000\n" - " .word 0x400004c\n" - " .word 0x5051\n" - " .word gBattle_WIN0H\n" - " .word gBattle_WIN0V\n" - " .word gScanlineEffectRegBuffers\n" - " .word gUnknown_081F9674\n" - " .word 0xff10\n" - " .word gWindowTemplate_81E6C58\n" - " .word gBattle_BG0_X\n" - " .word gBattle_BG0_Y\n" - " .word gBattle_BG1_X\n" - " .word gBattle_BG1_Y\n" - " .word gBattle_BG2_X\n" - " .word gBattle_BG2_Y\n" - " .word gBattle_BG3_X\n" - " .word gBattle_BG3_Y\n" - " .word gUnknown_02023A14_50\n" - " .word gBattleTerrain\n" - " .word gUnknown_03004210\n" - " .word gUnknown_030041D0\n" - " .word gWindowTemplate_81E71D0\n" - " .word gUnknown_03004250\n" - " .word gWindowTemplate_81E71EC\n" - " .word gReservedSpritePaletteCount\n" - " .word sub_800FCFC+1\n" - " .word gBattleTypeFlags\n" - " .word sub_800F298+1\n" - "._8:\n" - " ldr r0, ._15\n" - " bl SetMainCallback2\n" - "._9:\n" - " ldr r0, ._15 + 4\n" - " ldrh r1, [r0]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._13 @cond_branch\n" - " ldr r0, ._15 + 8\n" - " ldrb r1, [r0]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._13 @cond_branch\n" - " ldr r0, ._15 + 12\n" - " ldr r1, ._15 + 16\n" - " ldrh r1, [r1]\n" - " bl CreateNPCTrainerParty\n" - " bl SetWildMonHeldItem\n" - "._13:\n" - " ldr r0, ._15 + 20\n" - " ldr r1, ._15 + 24\n" - " add r0, r0, r1\n" - " ldrb r1, [r0]\n" - " mov r2, #0x2\n" - " orr r1, r1, r2\n" - " strb r1, [r0]\n" - " ldr r4, ._15 + 28\n" - " mov r3, #0xfa\n" - " lsl r3, r3, #0x1\n" - " add r5, r4, r3\n" - "._14:\n" - " add r0, r4, #0\n" - " mov r1, #0x3\n" - " bl AdjustFriendship\n" - " add r4, r4, #0x64\n" - " cmp r4, r5\n" - " ble ._14 @cond_branch\n" - " mov r1, #0x0\n" - " ldr r0, ._15 + 32\n" - " strb r1, [r0]\n" - " add sp, sp, #0x4\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._16:\n" - " .align 2, 0\n" - "._15:\n" - " .word sub_800EC9C+1\n" - " .word gBattleTypeFlags\n" - " .word gUnknown_02023A14_50\n" - " .word gEnemyParty\n" - " .word gTrainerBattleOpponent\n" - " .word gMain\n" - " .word 0x43d\n" - " .word gPlayerParty\n" - " .word gBattleCommunication\n" - "\n" - ); -} -#else void InitBattle(void) { s32 i; @@ -469,7 +248,14 @@ void InitBattle(void) gBattle_BG2_Y = 0; gBattle_BG3_X = 0; gBattle_BG3_Y = 0; + +#if DEBUG + if (!(gUnknown_02023A14_50 & 8)) + gBattleTerrain = BattleSetup_GetTerrain(); +#else gBattleTerrain = BattleSetup_GetTerrain(); +#endif + Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58); Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0); Text_InitWindowWithTemplate(&gUnknown_03004250, &gWindowTemplate_81E71EC); @@ -486,7 +272,11 @@ void InitBattle(void) SetMainCallback2(sub_800F298); else SetMainCallback2(sub_800EC9C); - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) +#if DEBUG + && !(gUnknown_02023A14_50 & 8) +#endif + ) { CreateNPCTrainerParty(gEnemyParty, gTrainerBattleOpponent); SetWildMonHeldItem(); @@ -496,7 +286,6 @@ void InitBattle(void) AdjustFriendship(&gPlayerParty[i], 3); gBattleCommunication[0] = 0; } -#endif void sub_800E9EC(void) { @@ -605,480 +394,11 @@ void shedinja_something(struct Pokemon *pkmn) } } -#if DEBUG -__attribute__((naked)) -void sub_800EC9C() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " bl RunTasks\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " bl GetMultiplayerId\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " ldr r0, ._55\n" - " ldr r1, ._55 + 4\n" - " add r0, r0, r1\n" - " strb r4, [r0]\n" - " mov r0, #0x1\n" - " add r5, r4, #0\n" - " eor r5, r5, r0\n" - " ldr r0, ._55 + 8\n" - " ldrb r0, [r0]\n" - " cmp r0, #0x9\n" - " bls ._53 @cond_branch\n" - " b ._140\n" - "._53:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._55 + 12\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._56:\n" - " .align 2, 0\n" - "._55:\n" - " .word gSharedMem\n" - " .word 0x160cb\n" - " .word gBattleCommunication\n" - " .word ._57\n" - "._57:\n" - " .word ._58\n" - " .word ._59\n" - " .word ._60\n" - " .word ._61\n" - " .word ._62\n" - " .word ._63\n" - " .word ._64\n" - " .word ._65\n" - " .word ._66\n" - " .word ._67\n" - "._58:\n" - " ldr r2, ._76\n" - " ldrh r1, [r2]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._68 @cond_branch\n" - " ldr r0, ._76 + 4\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._69 @cond_branch\n" - " b ._140\n" - "._69:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._71 @cond_branch\n" - " b ._140\n" - "._71:\n" - " ldr r1, ._76 + 8\n" - " mov r0, #0x1\n" - " strb r0, [r1]\n" - " strb r0, [r1, #0x1]\n" - " bl sub_800E9EC\n" - " bl sub_800EAAC\n" - " ldr r0, ._76 + 12\n" - " ldrb r1, [r0]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._73 @cond_branch\n" - " mov r3, #0x0\n" - " ldr r1, ._76 + 16\n" - " ldr r0, ._76 + 20\n" - "._74:\n" - " strh r3, [r0, #0x18]\n" - " str r1, [r0, #0x14]\n" - " add r0, r0, #0x1c\n" - " add r3, r3, #0x1\n" - " cmp r3, #0x1\n" - " ble ._74 @cond_branch\n" - "._73:\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._76 + 8\n" - " mov r2, #0x20\n" - " bl SendBlock\n" - " ldr r1, ._76 + 24\n" - " mov r0, #0x1\n" - " strb r0, [r1]\n" - " b ._140\n" - "._77:\n" - " .align 2, 0\n" - "._76:\n" - " .word gBattleTypeFlags\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word gSharedMem\n" - " .word gUnknown_02023A14_50\n" - " .word 0x2211\n" - " .word gLinkPlayers\n" - " .word gBattleCommunication\n" - "._68:\n" - " mov r0, #0x4\n" - " orr r0, r0, r1\n" - " strh r0, [r2]\n" - " ldr r1, ._79\n" - " mov r0, #0x8\n" - " strb r0, [r1]\n" - " bl sub_800EB08\n" - " b ._140\n" - "._80:\n" - " .align 2, 0\n" - "._79:\n" - " .word gBattleCommunication\n" - "._59:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0x3\n" - " and r1, r1, r0\n" - " cmp r1, #0x3\n" - " beq ._81 @cond_branch\n" - " b ._140\n" - "._81:\n" - " bl ResetBlockReceivedFlags\n" - " mov r3, #0x0\n" - " ldr r0, ._86\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " cmp r1, r0\n" - " bne ._83 @cond_branch\n" - " cmp r4, #0\n" - " bne ._84 @cond_branch\n" - " ldr r0, ._86 + 4\n" - " ldrh r1, [r0]\n" - " mov r2, #0xc\n" - " b ._85\n" - "._87:\n" - " .align 2, 0\n" - "._86:\n" - " .word gBlockRecvBuffer\n" - " .word gBattleTypeFlags\n" - "._84:\n" - " ldr r0, ._92\n" - " ldrh r1, [r0]\n" - " mov r2, #0x8\n" - "._85:\n" - " orr r1, r1, r2\n" - " strh r1, [r0]\n" - " add r3, r3, #0x1\n" - "._83:\n" - " lsl r7, r5, #0x8\n" - " cmp r3, #0\n" - " bne ._94 @cond_branch\n" - " ldr r0, ._92 + 4\n" - " mov r1, #0x80\n" - " lsl r1, r1, #0x1\n" - " add r2, r0, r1\n" - " ldrh r1, [r0]\n" - " add r6, r0, #0\n" - " ldrh r2, [r2]\n" - " cmp r1, r2\n" - " bne ._89 @cond_branch\n" - " cmp r4, #0\n" - " bne ._90 @cond_branch\n" - " ldr r0, ._92\n" - " ldrh r1, [r0]\n" - " mov r2, #0xc\n" - " b ._91\n" - "._93:\n" - " .align 2, 0\n" - "._92:\n" - " .word gBattleTypeFlags\n" - " .word gBlockRecvBuffer\n" - "._90:\n" - " ldr r0, ._96\n" - " ldrh r1, [r0]\n" - " mov r2, #0x8\n" - "._91:\n" - " orr r1, r1, r2\n" - " strh r1, [r0]\n" - " add r3, r3, #0x1\n" - "._89:\n" - " lsl r7, r5, #0x8\n" - " cmp r3, #0\n" - " bne ._94 @cond_branch\n" - " ldrh r1, [r6]\n" - " ldr r0, ._96 + 4\n" - " ldr r2, ._96\n" - " b ._95\n" - "._97:\n" - " .align 2, 0\n" - "._96:\n" - " .word gBattleTypeFlags\n" - " .word 0x101\n" - "._100:\n" - " add r3, r3, #0x1\n" - " cmp r3, #0x1\n" - " bgt ._98 @cond_branch\n" - " lsl r0, r3, #0x8\n" - " add r0, r0, r6\n" - " ldrh r1, [r0]\n" - " ldr r0, ._103\n" - "._95:\n" - " cmp r1, r0\n" - " bls ._100 @cond_branch\n" - " cmp r3, r4\n" - " beq ._100 @cond_branch\n" - "._98:\n" - " cmp r3, #0x2\n" - " bne ._101 @cond_branch\n" - " ldrh r0, [r2]\n" - " mov r1, #0xc\n" - " b ._102\n" - "._104:\n" - " .align 2, 0\n" - "._103:\n" - " .word 0x101\n" - "._101:\n" - " ldrh r0, [r2]\n" - " mov r1, #0x8\n" - "._102:\n" - " orr r0, r0, r1\n" - " strh r0, [r2]\n" - "._94:\n" - " bl sub_800EB08\n" - " ldr r0, ._106\n" - " mov r1, #0x0\n" - " bl CreateTask\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._106 + 4\n" - " lsl r2, r0, #0x2\n" - " add r2, r2, r0\n" - " lsl r2, r2, #0x3\n" - " add r2, r2, r1\n" - " mov r1, #0x0\n" - " mov r0, #0x87\n" - " lsl r0, r0, #0x1\n" - " strh r0, [r2, #0xa]\n" - " mov r0, #0x5a\n" - " strh r0, [r2, #0xc]\n" - " strh r1, [r2, #0x12]\n" - " ldr r0, ._106 + 8\n" - " ldrb r1, [r0, #0x2]\n" - " ldrb r0, [r0, #0x3]\n" - " lsl r0, r0, #0x8\n" - " orr r1, r1, r0\n" - " strh r1, [r2, #0xe]\n" - " ldr r0, ._106 + 12\n" - " add r0, r0, #0x2\n" - " add r0, r7, r0\n" - " ldrh r0, [r0]\n" - " strh r0, [r2, #0x10]\n" - " b ._129\n" - "._107:\n" - " .align 2, 0\n" - "._106:\n" - " .word sub_800DE30+1\n" - " .word gTasks\n" - " .word gSharedMem\n" - " .word gBlockRecvBuffer\n" - "._60:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._108 @cond_branch\n" - " b ._140\n" - "._108:\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._111\n" - " mov r2, #0xc8\n" - " bl SendBlock\n" - " b ._129\n" - "._112:\n" - " .align 2, 0\n" - "._111:\n" - " .word gPlayerParty\n" - "._61:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0x3\n" - " and r1, r1, r0\n" - " cmp r1, #0x3\n" - " beq ._113 @cond_branch\n" - " b ._140\n" - "._113:\n" - " bl ResetBlockReceivedFlags\n" - " ldr r0, ._116\n" - " lsl r1, r5, #0x8\n" - " ldr r2, ._116 + 4\n" - " add r1, r1, r2\n" - " mov r2, #0xc8\n" - " bl memcpy\n" - " b ._129\n" - "._117:\n" - " .align 2, 0\n" - "._116:\n" - " .word gEnemyParty\n" - " .word gBlockRecvBuffer\n" - "._62:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._118 @cond_branch\n" - " b ._140\n" - "._118:\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._121\n" - " mov r2, #0xc8\n" - " bl SendBlock\n" - " b ._129\n" - "._122:\n" - " .align 2, 0\n" - "._121:\n" - " .word gPlayerParty+0xc8\n" - "._63:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0x3\n" - " and r1, r1, r0\n" - " cmp r1, #0x3\n" - " beq ._123 @cond_branch\n" - " b ._140\n" - "._123:\n" - " bl ResetBlockReceivedFlags\n" - " ldr r0, ._126\n" - " lsl r1, r5, #0x8\n" - " ldr r2, ._126 + 4\n" - " add r1, r1, r2\n" - " mov r2, #0xc8\n" - " bl memcpy\n" - " b ._129\n" - "._127:\n" - " .align 2, 0\n" - "._126:\n" - " .word gEnemyParty+0xc8\n" - " .word gBlockRecvBuffer\n" - "._64:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._140 @cond_branch\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._130\n" - " mov r2, #0xc8\n" - " bl SendBlock\n" - " b ._129\n" - "._131:\n" - " .align 2, 0\n" - "._130:\n" - " .word gPlayerParty+0x190\n" - "._65:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0x3\n" - " and r1, r1, r0\n" - " cmp r1, #0x3\n" - " bne ._140 @cond_branch\n" - " bl ResetBlockReceivedFlags\n" - " ldr r4, ._134\n" - " lsl r1, r5, #0x8\n" - " ldr r0, ._134 + 4\n" - " add r1, r1, r0\n" - " add r0, r4, #0\n" - " mov r2, #0xc8\n" - " bl memcpy\n" - " ldr r1, ._134 + 8\n" - " add r0, r4, r1\n" - " bl shedinja_something\n" - " ldr r1, ._134 + 12\n" - " add r0, r4, r1\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " sub r0, r0, #0xc8\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " sub r0, r0, #0x64\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " add r0, r0, #0x64\n" - " bl shedinja_something\n" - "._129:\n" - " ldr r1, ._134 + 16\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._140\n" - "._135:\n" - " .align 2, 0\n" - "._134:\n" - " .word gEnemyParty+0x190\n" - " .word gBlockRecvBuffer\n" - " .word 0xfffffe70\n" - " .word 0xfffffed4\n" - " .word gBattleCommunication\n" - "._66:\n" - " bl sub_800B950\n" - " ldr r0, ._137\n" - " ldrb r1, [r0]\n" - " add r1, r1, #0x1\n" - " mov r2, #0x0\n" - " strb r1, [r0]\n" - " strb r2, [r0, #0x1]\n" - " strb r2, [r0, #0x2]\n" - " b ._140\n" - "._138:\n" - " .align 2, 0\n" - "._137:\n" - " .word gBattleCommunication\n" - "._67:\n" - " ldr r0, ._141\n" - " add r1, r0, #1\n" - " bl battle_load_something\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._140 @cond_branch\n" - " ldr r2, ._141 + 4\n" - " ldr r1, ._141 + 8\n" - " ldr r0, [r1]\n" - " str r0, [r2]\n" - " ldr r0, ._141 + 12\n" - " str r0, [r1]\n" - " ldr r0, ._141 + 16\n" - " bl SetMainCallback2\n" - " ldr r3, ._141 + 20\n" - " ldrh r2, [r3]\n" - " mov r0, #0x2\n" - " and r0, r0, r2\n" - " cmp r0, #0\n" - " beq ._140 @cond_branch\n" - " ldr r1, ._141 + 24\n" - " mov r4, #0x80\n" - " lsl r4, r4, #0x4\n" - " add r0, r4, #0\n" - " strh r0, [r1]\n" - " mov r0, #0x20\n" - " orr r0, r0, r2\n" - " strh r0, [r3]\n" - "._140:\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._142:\n" - " .align 2, 0\n" - "._141:\n" - " .word gUnknown_02024D1F\n" - " .word gPreBattleCallback1\n" - " .word gMain\n" - " .word debug_sub_80139E4+1\n" - " .word BattleMainCB2+1\n" - " .word gBattleTypeFlags\n" - " .word gTrainerBattleOpponent\n" - "\n" - ); -} -#else -void sub_800EC9C(void) +void sub_800EC9C(void) { u8 playerId; u8 enemyId; + s32 id; RunTasks(); AnimateSprites(); @@ -1098,6 +418,16 @@ void sub_800EC9C(void) gBattleStruct->unk1 = 1; sub_800E9EC(); sub_800EAAC(); +#if DEBUG + if (gUnknown_02023A14_50 & 8) + { + for (id = 0; id < 2; id++) // Why < 2 here? + { + gLinkPlayers[id].lp_field_18 = id; + gLinkPlayers[id].linkType = 0x2211; + } + } +#endif SendBlock(bitmask_all_link_players_but_self(), gBattleStruct, 32); gBattleCommunication[0] = 1; } @@ -1112,7 +442,6 @@ void sub_800EC9C(void) case 1: if ((GetBlockReceivedStatus() & 3) == 3) { - s32 id; u8 taskId; ResetBlockReceivedFlags(); @@ -1220,7 +549,11 @@ void sub_800EC9C(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; +#if DEBUG + gMain.callback1 = debug_sub_80139E4; +#else gMain.callback1 = sub_8010824; +#endif SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -1231,7 +564,6 @@ void sub_800EC9C(void) break; } } -#endif void sub_800F02C(void) { @@ -1258,241 +590,12 @@ void sub_800F02C(void) memcpy(gSharedMem, gUnknown_02023A00, 0x60); } -#if DEBUG -__attribute__((naked)) -void sub_800F104() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r9\n" - " mov r6, r8\n" - " push {r6, r7}\n" - " bl GetMultiplayerId\n" - " lsl r0, r0, #0x18\n" - " lsr r6, r0, #0x18\n" - " ldr r0, ._151\n" - " ldr r2, ._151 + 4\n" - " add r1, r0, r2\n" - " strb r6, [r1]\n" - " ldr r1, ._151 + 8\n" - " add r1, r1, r0\n" - " mov r9, r1\n" - " sub r2, r2, #0x9\n" - " add r2, r2, r0\n" - " mov r8, r2\n" - " bl RunTasks\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " ldr r2, ._151 + 12\n" - " ldrb r0, [r2]\n" - " cmp r0, #0x1\n" - " beq ._147 @cond_branch\n" - " cmp r0, #0x1\n" - " bgt ._148 @cond_branch\n" - " cmp r0, #0\n" - " beq ._149 @cond_branch\n" - " b ._183\n" - "._152:\n" - " .align 2, 0\n" - "._151:\n" - " .word gSharedMem\n" - " .word 0x160cb\n" - " .word 0x160c4\n" - " .word gBattleCommunication\n" - "._148:\n" - " cmp r0, #0x2\n" - " bne ._153 @cond_branch\n" - " b ._154\n" - "._153:\n" - " cmp r0, #0x3\n" - " bne ._155 @cond_branch\n" - " b ._156\n" - "._155:\n" - " b ._183\n" - "._149:\n" - " ldr r0, ._165\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._158 @cond_branch\n" - " b ._183\n" - "._158:\n" - " ldr r0, ._165 + 4\n" - " ldrb r1, [r0]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._160 @cond_branch\n" - " mov r4, #0x0\n" - " ldr r1, ._165 + 8\n" - " ldr r0, ._165 + 12\n" - "._161:\n" - " strh r4, [r0, #0x18]\n" - " str r1, [r0, #0x14]\n" - " add r0, r0, #0x1c\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._161 @cond_branch\n" - "._160:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._162 @cond_branch\n" - " b ._183\n" - "._162:\n" - " bl sub_800F02C\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._165 + 16\n" - " mov r2, #0x60\n" - " bl SendBlock\n" - " ldr r1, ._165 + 20\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._183\n" - "._166:\n" - " .align 2, 0\n" - "._165:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word gUnknown_02023A14_50\n" - " .word 0x2211\n" - " .word gLinkPlayers\n" - " .word gSharedMem\n" - " .word gBattleCommunication\n" - "._147:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0xf\n" - " and r1, r1, r0\n" - " cmp r1, #0xf\n" - " bne ._183 @cond_branch\n" - " bl ResetBlockReceivedFlags\n" - " mov r4, #0x0\n" - " lsl r0, r6, #0x3\n" - " sub r0, r0, r6\n" - " lsl r5, r0, #0x2\n" - " mov r7, #0x0\n" - "._175:\n" - " cmp r4, r6\n" - " beq ._174 @cond_branch\n" - " ldr r2, ._172\n" - " add r0, r7, r2\n" - " ldrh r1, [r0, #0x18]\n" - " mov r3, #0x1\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._169 @cond_branch\n" - " add r0, r5, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._170 @cond_branch\n" - " b ._174\n" - "._173:\n" - " .align 2, 0\n" - "._172:\n" - " .word gLinkPlayers\n" - "._169:\n" - " add r0, r5, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._174 @cond_branch\n" - "._170:\n" - " lsl r1, r4, #0x8\n" - " ldr r0, ._177\n" - " add r1, r1, r0\n" - " ldr r0, ._177 + 4\n" - " mov r2, #0x60\n" - " bl memcpy\n" - "._174:\n" - " add r7, r7, #0x1c\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._175 @cond_branch\n" - " ldr r1, ._177 + 8\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " ldr r1, ._177 + 12\n" - " ldr r0, [r1, #0x8]\n" - " mov r2, r9\n" - " str r0, [r2]\n" - " ldr r0, ._177 + 16\n" - " ldrh r0, [r0]\n" - " mov r2, r8\n" - " strh r0, [r2]\n" - " ldr r0, ._177 + 20\n" - " str r0, [r1, #0x8]\n" - " mov r0, #0x5\n" - " mov r1, #0x0\n" - " bl OpenPartyMenu\n" - " b ._183\n" - "._178:\n" - " .align 2, 0\n" - "._177:\n" - " .word gBlockRecvBuffer\n" - " .word gUnknown_02023A00\n" - " .word gBattleCommunication\n" - " .word gMain\n" - " .word gBattleTypeFlags\n" - " .word sub_800F104+1\n" - "._154:\n" - " ldr r0, ._181\n" - " ldrb r1, [r0, #0x7]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._183 @cond_branch\n" - " mov r0, #0x3\n" - " strb r0, [r2]\n" - " bl sub_800832C\n" - " b ._183\n" - "._182:\n" - " .align 2, 0\n" - "._181:\n" - " .word gPaletteFade\n" - "._156:\n" - " ldr r0, ._184\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._183 @cond_branch\n" - " ldr r1, ._184 + 4\n" - " mov r2, r8\n" - " ldrh r0, [r2]\n" - " strh r0, [r1]\n" - " ldr r1, ._184 + 8\n" - " mov r2, r9\n" - " ldr r0, [r2]\n" - " str r0, [r1, #0x8]\n" - " ldr r0, ._184 + 12\n" - " bl SetMainCallback2\n" - "._183:\n" - " pop {r3, r4}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._185:\n" - " .align 2, 0\n" - "._184:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word gBattleTypeFlags\n" - " .word gMain\n" - " .word InitBattle+1\n" - "\n" - ); -} -#else void sub_800F104(void) { u8 playerId; MainCallback *pSavedCallback; u16 *pSavedBattleTypeFlags; + s32 i; playerId = GetMultiplayerId(); ewram160CB = playerId; @@ -1506,820 +609,66 @@ void sub_800F104(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) - { - sub_800F02C(); - SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); - gBattleCommunication[0]++; - } - break; - case 1: - if ((GetBlockReceivedStatus() & 0xF) == 0xF) - { - s32 i; - - ResetBlockReceivedFlags(); - for (i = 0; i < 4; i++) - { - if (i != playerId) - { - if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) - || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) - memcpy(gUnknown_02023A00, gBlockRecvBuffer[i], 0x60); - } - } - gBattleCommunication[0]++; - *pSavedCallback = gMain.savedCallback; - *pSavedBattleTypeFlags = gBattleTypeFlags; - gMain.savedCallback = sub_800F104; - OpenPartyMenu(PARTY_MENU_TYPE_LINK_MULTI_BATTLE, 0); - } - break; - case 2: - if (!gPaletteFade.active) - { - gBattleCommunication[0] = 3; - sub_800832C(); - } - break; - case 3: - if (gReceivedRemoteLinkPlayers == 0) - { - gBattleTypeFlags = *pSavedBattleTypeFlags; - gMain.savedCallback = *pSavedCallback; - SetMainCallback2(InitBattle); - } - break; - } -} -#endif - -#if DEBUG -__attribute__((naked)) -void sub_800F298() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r8\n" - " push {r7}\n" - " bl GetMultiplayerId\n" - " lsl r0, r0, #0x18\n" - " lsr r6, r0, #0x18\n" - " ldr r0, ._188\n" - " ldr r1, ._188 + 4\n" - " add r0, r0, r1\n" - " strb r6, [r0]\n" - " bl RunTasks\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " ldr r0, ._188 + 8\n" - " ldrb r0, [r0]\n" - " cmp r0, #0x7\n" - " bls ._186 @cond_branch\n" - " b ._352\n" - "._186:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._188 + 12\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._189:\n" - " .align 2, 0\n" - "._188:\n" - " .word gSharedMem\n" - " .word 0x160cb\n" - " .word gBattleCommunication\n" - " .word ._190\n" - "._190:\n" - " .word ._191\n" - " .word ._192\n" - " .word ._193\n" - " .word ._194\n" - " .word ._195\n" - " .word ._196\n" - " .word ._197\n" - " .word ._198\n" - "._191:\n" - " ldr r0, ._206\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._199 @cond_branch\n" - " b ._352\n" - "._199:\n" - " ldr r0, ._206 + 4\n" - " ldrb r1, [r0]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._201 @cond_branch\n" - " mov r4, #0x0\n" - " ldr r1, ._206 + 8\n" - " ldr r0, ._206 + 12\n" - "._202:\n" - " strh r4, [r0, #0x18]\n" - " str r1, [r0, #0x14]\n" - " add r0, r0, #0x1c\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._202 @cond_branch\n" - "._201:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._203 @cond_branch\n" - " b ._352\n" - "._203:\n" - " ldr r4, ._206 + 16\n" - " mov r0, #0x1\n" - " strb r0, [r4]\n" - " strb r0, [r4, #0x1]\n" - " bl sub_800E9EC\n" - " bl sub_800EAAC\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " add r1, r4, #0\n" - " mov r2, #0x20\n" - " bl SendBlock\n" - " b ._300\n" - "._207:\n" - " .align 2, 0\n" - "._206:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word gUnknown_02023A14_50\n" - " .word 0x2211\n" - " .word gLinkPlayers\n" - " .word gSharedMem\n" - "._192:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0xf\n" - " and r1, r1, r0\n" - " cmp r1, #0xf\n" - " beq ._208 @cond_branch\n" - " b ._352\n" - "._208:\n" - " bl ResetBlockReceivedFlags\n" - " mov r4, #0x0\n" - " ldr r0, ._213\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " cmp r1, r0\n" - " bne ._210 @cond_branch\n" - " cmp r6, #0\n" - " bne ._211 @cond_branch\n" - " ldr r0, ._213 + 4\n" - " ldrh r1, [r0]\n" - " mov r2, #0xc\n" - " b ._212\n" - "._214:\n" - " .align 2, 0\n" - "._213:\n" - " .word gBlockRecvBuffer\n" - " .word gBattleTypeFlags\n" - "._211:\n" - " ldr r0, ._221\n" - " ldrh r1, [r0]\n" - " mov r2, #0x8\n" - "._212:\n" - " orr r1, r1, r2\n" - " strh r1, [r0]\n" - " add r4, r4, #0x1\n" - "._210:\n" - " cmp r4, #0\n" - " bne ._223 @cond_branch\n" - " mov r2, #0x0\n" - " ldr r1, ._221 + 4\n" - " add r5, r1, #0\n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x1\n" - "._217:\n" - " add r1, r1, r3\n" - " add r2, r2, #0x1\n" - " cmp r2, #0x3\n" - " bgt ._216 @cond_branch\n" - " ldrh r0, [r5]\n" - " ldrh r7, [r1]\n" - " cmp r0, r7\n" - " beq ._217 @cond_branch\n" - "._216:\n" - " cmp r2, #0x4\n" - " bne ._218 @cond_branch\n" - " cmp r6, #0\n" - " bne ._219 @cond_branch\n" - " ldr r0, ._221\n" - " ldrh r1, [r0]\n" - " mov r2, #0xc\n" - " b ._220\n" - "._222:\n" - " .align 2, 0\n" - "._221:\n" - " .word gBattleTypeFlags\n" - " .word gBlockRecvBuffer\n" - "._219:\n" - " ldr r0, ._233\n" - " ldrh r1, [r0]\n" - " mov r2, #0x8\n" - "._220:\n" - " orr r1, r1, r2\n" - " strh r1, [r0]\n" - " add r4, r4, #0x1\n" - "._218:\n" - " cmp r4, #0\n" - " bne ._223 @cond_branch\n" - " ldr r0, ._233 + 4\n" - " ldrh r2, [r0]\n" - " ldr r1, ._233 + 8\n" - " add r3, r0, #0\n" - " ldr r5, ._233\n" - " cmp r2, r1\n" - " beq ._224 @cond_branch\n" - "._230:\n" - " lsl r0, r4, #0x8\n" - " add r0, r0, r3\n" - " ldrh r0, [r0]\n" - " ldr r1, ._233 + 8\n" - " cmp r0, r1\n" - " bls ._225 @cond_branch\n" - " cmp r4, r6\n" - " bne ._227 @cond_branch\n" - "._225:\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " bgt ._227 @cond_branch\n" - " lsl r0, r4, #0x8\n" - " add r0, r0, r3\n" - " ldrh r0, [r0]\n" - " cmp r0, r1\n" - " bne ._230 @cond_branch\n" - "._224:\n" - " cmp r4, r6\n" - " beq ._230 @cond_branch\n" - " cmp r4, r6\n" - " bge ._230 @cond_branch\n" - "._227:\n" - " cmp r4, #0x4\n" - " bne ._231 @cond_branch\n" - " ldrh r0, [r5]\n" - " mov r1, #0xc\n" - " b ._232\n" - "._234:\n" - " .align 2, 0\n" - "._233:\n" - " .word gBattleTypeFlags\n" - " .word gBlockRecvBuffer\n" - " .word 0x101\n" - "._231:\n" - " ldrh r0, [r5]\n" - " mov r1, #0x8\n" - "._232:\n" - " orr r0, r0, r1\n" - " strh r0, [r5]\n" - "._223:\n" - " bl sub_800EB08\n" - " ldr r0, ._239\n" - " ldr r1, ._239 + 4\n" - " mov r2, #0x96\n" - " lsl r2, r2, #0x1\n" - " bl memcpy\n" - " ldr r0, ._239 + 8\n" - " mov r1, #0x0\n" - " bl CreateTask\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r2, ._239 + 12\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r2\n" - " mov r2, #0x0\n" - " mov r0, #0x87\n" - " lsl r0, r0, #0x1\n" - " strh r0, [r1, #0xa]\n" - " mov r0, #0x5a\n" - " strh r0, [r1, #0xc]\n" - " strh r2, [r1, #0x12]\n" - " strh r2, [r1, #0xe]\n" - " strh r2, [r1, #0x10]\n" - " add r2, r1, #0\n" - " ldr r0, ._239 + 16\n" - " add r3, r0, #2\n" - " ldr r6, ._239 + 20\n" - " mov r5, #0x3f\n" - " mov r7, #0x80\n" - " lsl r7, r7, #0x1\n" - " mov r4, #0x3\n" - "._247:\n" - " ldrh r0, [r6, #0x18]\n" - " cmp r0, #0x1\n" - " beq ._235 @cond_branch\n" - " cmp r0, #0x1\n" - " bgt ._236 @cond_branch\n" - " cmp r0, #0\n" - " beq ._237 @cond_branch\n" - " b ._246\n" - "._240:\n" - " .align 2, 0\n" - "._239:\n" - " .word +0x201d000\n" - " .word gPlayerParty\n" - " .word sub_800DE30+1\n" - " .word gTasks\n" - " .word gBlockRecvBuffer\n" - " .word gLinkPlayers\n" - "._236:\n" - " cmp r0, #0x2\n" - " beq ._241 @cond_branch\n" - " cmp r0, #0x3\n" - " beq ._242 @cond_branch\n" - " b ._246\n" - "._237:\n" - " ldrh r0, [r3]\n" - " add r1, r5, #0\n" - " and r1, r1, r0\n" - " b ._244\n" - "._235:\n" - " ldrh r0, [r3]\n" - " add r1, r5, #0\n" - " and r1, r1, r0\n" - " b ._245\n" - "._241:\n" - " ldrh r0, [r3]\n" - " add r1, r5, #0\n" - " and r1, r1, r0\n" - " lsl r1, r1, #0x6\n" - "._244:\n" - " ldrh r0, [r2, #0xe]\n" - " orr r1, r1, r0\n" - " strh r1, [r2, #0xe]\n" - " b ._246\n" - "._242:\n" - " ldrh r0, [r3]\n" - " add r1, r5, #0\n" - " and r1, r1, r0\n" - " lsl r1, r1, #0x6\n" - "._245:\n" - " ldrh r0, [r2, #0x10]\n" - " orr r1, r1, r0\n" - " strh r1, [r2, #0x10]\n" - "._246:\n" - " add r3, r3, r7\n" - " add r6, r6, #0x1c\n" - " sub r4, r4, #0x1\n" - " cmp r4, #0\n" - " bge ._247 @cond_branch\n" - " bl ZeroPlayerPartyMons\n" - " bl ZeroEnemyPartyMons\n" - " ldr r1, ._251\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - "._193:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._248 @cond_branch\n" - " b ._352\n" - "._248:\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._251 + 4\n" - " mov r2, #0xc8\n" - " bl SendBlock\n" - " b ._300\n" - "._252:\n" - " .align 2, 0\n" - "._251:\n" - " .word gBattleCommunication\n" - " .word +0x201d000\n" - "._194:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0xf\n" - " and r1, r1, r0\n" - " cmp r1, #0xf\n" - " beq ._253 @cond_branch\n" - " b ._352\n" - "._253:\n" - " bl ResetBlockReceivedFlags\n" - " mov r4, #0x0\n" - " lsl r0, r6, #0x3\n" - " sub r0, r0, r6\n" - " lsl r0, r0, #0x2\n" - " mov r8, r0\n" - " ldr r5, ._260\n" - " mov r7, #0x0\n" - "._294:\n" - " cmp r4, r6\n" - " bne ._255 @cond_branch\n" - " ldr r0, ._260 + 4\n" - " add r0, r7, r0\n" - " ldrh r0, [r0, #0x18]\n" - " cmp r0, #0x2\n" - " bgt ._256 @cond_branch\n" - " cmp r0, #0x1\n" - " bge ._257 @cond_branch\n" - " cmp r0, #0\n" - " beq ._258 @cond_branch\n" - " b ._291\n" - "._261:\n" - " .align 2, 0\n" - "._260:\n" - " .word gBlockRecvBuffer\n" - " .word gLinkPlayers\n" - "._256:\n" - " cmp r0, #0x3\n" - " bne ._291 @cond_branch\n" - "._258:\n" - " ldr r0, ._264\n" - " b ._283\n" - "._265:\n" - " .align 2, 0\n" - "._264:\n" - " .word gPlayerParty\n" - "._257:\n" - " ldr r0, ._267\n" - " b ._283\n" - "._268:\n" - " .align 2, 0\n" - "._267:\n" - " .word gPlayerParty+0x12c\n" - "._255:\n" - " ldr r2, ._272\n" - " add r0, r7, r2\n" - " ldrh r1, [r0, #0x18]\n" - " mov r3, #0x1\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._269 @cond_branch\n" - " mov r1, r8\n" - " add r0, r1, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._270 @cond_branch\n" - " b ._274\n" - "._273:\n" - " .align 2, 0\n" - "._272:\n" - " .word gLinkPlayers\n" - "._269:\n" - " mov r1, r8\n" - " add r0, r1, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._274 @cond_branch\n" - "._270:\n" - " add r0, r7, r2\n" - " ldrh r2, [r0, #0x18]\n" - " cmp r2, #0x2\n" - " bgt ._275 @cond_branch\n" - " cmp r2, #0x1\n" - " bge ._276 @cond_branch\n" - " cmp r2, #0\n" - " beq ._277 @cond_branch\n" - " b ._291\n" - "._275:\n" - " cmp r2, #0x3\n" - " bne ._291 @cond_branch\n" - "._277:\n" - " ldr r0, ._281\n" - " b ._283\n" - "._282:\n" - " .align 2, 0\n" - "._281:\n" - " .word gPlayerParty\n" - "._276:\n" - " ldr r0, ._284\n" - " b ._283\n" - "._285:\n" - " .align 2, 0\n" - "._284:\n" - " .word gPlayerParty+0x12c\n" - "._274:\n" - " add r0, r7, r2\n" - " ldrh r2, [r0, #0x18]\n" - " cmp r2, #0x2\n" - " bgt ._286 @cond_branch\n" - " cmp r2, #0x1\n" - " bge ._287 @cond_branch\n" - " cmp r2, #0\n" - " beq ._288 @cond_branch\n" - " b ._291\n" - "._286:\n" - " cmp r2, #0x3\n" - " bne ._291 @cond_branch\n" - "._288:\n" - " ldr r0, ._292\n" - "._283:\n" - " add r1, r5, #0\n" - " mov r2, #0xc8\n" - " bl memcpy\n" - " b ._291\n" - "._293:\n" - " .align 2, 0\n" - "._292:\n" - " .word gEnemyParty\n" - "._287:\n" - " ldr r0, ._296\n" - " add r1, r5, #0\n" - " mov r2, #0xc8\n" - " bl memcpy\n" - "._291:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " add r5, r5, r0\n" - " add r7, r7, #0x1c\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._294 @cond_branch\n" - " b ._300\n" - "._297:\n" - " .align 2, 0\n" - "._296:\n" - " .word gEnemyParty+0x12c\n" - "._195:\n" - " bl sub_8007ECC\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._298 @cond_branch\n" - " b ._352\n" - "._298:\n" - " bl bitmask_all_link_players_but_self\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r1, ._301\n" - " mov r2, #0x64\n" - " bl SendBlock\n" - " b ._300\n" - "._302:\n" - " .align 2, 0\n" - "._301:\n" - " .word +0x201d0c8\n" - "._196:\n" - " bl GetBlockReceivedStatus\n" - " mov r1, #0xf\n" - " and r1, r1, r0\n" - " cmp r1, #0xf\n" - " beq ._303 @cond_branch\n" - " b ._352\n" - "._303:\n" - " bl ResetBlockReceivedFlags\n" - " mov r4, #0x0\n" - " lsl r0, r6, #0x3\n" - " sub r0, r0, r6\n" - " lsl r0, r0, #0x2\n" - " mov r8, r0\n" - " ldr r5, ._310\n" - " mov r7, #0x0\n" - "._344:\n" - " cmp r4, r6\n" - " bne ._305 @cond_branch\n" - " ldr r0, ._310 + 4\n" - " add r0, r7, r0\n" - " ldrh r0, [r0, #0x18]\n" - " cmp r0, #0x2\n" - " bgt ._306 @cond_branch\n" - " cmp r0, #0x1\n" - " bge ._307 @cond_branch\n" - " cmp r0, #0\n" - " beq ._308 @cond_branch\n" - " b ._341\n" - "._311:\n" - " .align 2, 0\n" - "._310:\n" - " .word gBlockRecvBuffer\n" - " .word gLinkPlayers\n" - "._306:\n" - " cmp r0, #0x3\n" - " bne ._341 @cond_branch\n" - "._308:\n" - " ldr r0, ._314\n" - " b ._333\n" - "._315:\n" - " .align 2, 0\n" - "._314:\n" - " .word gPlayerParty+0xc8\n" - "._307:\n" - " ldr r0, ._317\n" - " b ._333\n" - "._318:\n" - " .align 2, 0\n" - "._317:\n" - " .word gPlayerParty+0x1f4\n" - "._305:\n" - " ldr r2, ._322\n" - " add r0, r7, r2\n" - " ldrh r1, [r0, #0x18]\n" - " mov r3, #0x1\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._319 @cond_branch\n" - " mov r1, r8\n" - " add r0, r1, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._320 @cond_branch\n" - " b ._324\n" - "._323:\n" - " .align 2, 0\n" - "._322:\n" - " .word gLinkPlayers\n" - "._319:\n" - " mov r1, r8\n" - " add r0, r1, r2\n" - " ldrh r1, [r0, #0x18]\n" - " add r0, r3, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._324 @cond_branch\n" - "._320:\n" - " add r0, r7, r2\n" - " ldrh r2, [r0, #0x18]\n" - " cmp r2, #0x2\n" - " bgt ._325 @cond_branch\n" - " cmp r2, #0x1\n" - " bge ._326 @cond_branch\n" - " cmp r2, #0\n" - " beq ._327 @cond_branch\n" - " b ._341\n" - "._325:\n" - " cmp r2, #0x3\n" - " bne ._341 @cond_branch\n" - "._327:\n" - " ldr r0, ._331\n" - " b ._333\n" - "._332:\n" - " .align 2, 0\n" - "._331:\n" - " .word gPlayerParty+0xc8\n" - "._326:\n" - " ldr r0, ._334\n" - " b ._333\n" - "._335:\n" - " .align 2, 0\n" - "._334:\n" - " .word gPlayerParty+0x1f4\n" - "._324:\n" - " add r0, r7, r2\n" - " ldrh r2, [r0, #0x18]\n" - " cmp r2, #0x2\n" - " bgt ._336 @cond_branch\n" - " cmp r2, #0x1\n" - " bge ._337 @cond_branch\n" - " cmp r2, #0\n" - " beq ._338 @cond_branch\n" - " b ._341\n" - "._336:\n" - " cmp r2, #0x3\n" - " bne ._341 @cond_branch\n" - "._338:\n" - " ldr r0, ._342\n" - "._333:\n" - " add r1, r5, #0\n" - " mov r2, #0x64\n" - " bl memcpy\n" - " b ._341\n" - "._343:\n" - " .align 2, 0\n" - "._342:\n" - " .word gEnemyParty+0xc8\n" - "._337:\n" - " ldr r0, ._346\n" - " add r1, r5, #0\n" - " mov r2, #0x64\n" - " bl memcpy\n" - "._341:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " add r5, r5, r0\n" - " add r7, r7, #0x1c\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._344 @cond_branch\n" - " ldr r4, ._346 + 4\n" - " add r0, r4, #0\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " add r0, r0, #0x64\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " add r0, r0, #0xc8\n" - " bl shedinja_something\n" - " mov r1, #0x96\n" - " lsl r1, r1, #0x1\n" - " add r0, r4, r1\n" - " bl shedinja_something\n" - " mov r7, #0xc8\n" - " lsl r7, r7, #0x1\n" - " add r0, r4, r7\n" - " bl shedinja_something\n" - " mov r1, #0xfa\n" - " lsl r1, r1, #0x1\n" - " add r0, r4, r1\n" - " bl shedinja_something\n" - " ldr r4, ._346 + 8\n" - " add r0, r4, #0\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " add r0, r0, #0x64\n" - " bl shedinja_something\n" - " add r0, r4, #0\n" - " add r0, r0, #0xc8\n" - " bl shedinja_something\n" - " sub r7, r7, #0x64\n" - " add r0, r4, r7\n" - " bl shedinja_something\n" - " mov r1, #0xc8\n" - " lsl r1, r1, #0x1\n" - " add r0, r4, r1\n" - " bl shedinja_something\n" - " add r7, r7, #0xc8\n" - " add r0, r4, r7\n" - " bl shedinja_something\n" - "._300:\n" - " ldr r1, ._346 + 12\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._352\n" - "._347:\n" - " .align 2, 0\n" - "._346:\n" - " .word gEnemyParty+0x1f4\n" - " .word gPlayerParty\n" - " .word gEnemyParty\n" - " .word gBattleCommunication\n" - "._197:\n" - " bl sub_800B950\n" - " ldr r0, ._349\n" - " ldrb r1, [r0]\n" - " add r1, r1, #0x1\n" - " mov r2, #0x0\n" - " strb r1, [r0]\n" - " strb r2, [r0, #0x1]\n" - " strb r2, [r0, #0x2]\n" - " b ._352\n" - "._350:\n" - " .align 2, 0\n" - "._349:\n" - " .word gBattleCommunication\n" - "._198:\n" - " ldr r0, ._353\n" - " add r1, r0, #1\n" - " bl battle_load_something\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._352 @cond_branch\n" - " ldr r2, ._353 + 4\n" - " ldr r1, ._353 + 8\n" - " ldr r0, [r1]\n" - " str r0, [r2]\n" - " ldr r0, ._353 + 12\n" - " str r0, [r1]\n" - " ldr r0, ._353 + 16\n" - " bl SetMainCallback2\n" - " ldr r3, ._353 + 20\n" - " ldrh r2, [r3]\n" - " mov r0, #0x2\n" - " and r0, r0, r2\n" - " cmp r0, #0\n" - " beq ._352 @cond_branch\n" - " ldr r1, ._353 + 24\n" - " mov r4, #0x80\n" - " lsl r4, r4, #0x4\n" - " add r0, r4, #0\n" - " strh r0, [r1]\n" - " mov r0, #0x20\n" - " orr r0, r0, r2\n" - " strh r0, [r3]\n" - "._352:\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._354:\n" - " .align 2, 0\n" - "._353:\n" - " .word gUnknown_02024D1F\n" - " .word gPreBattleCallback1\n" - " .word gMain\n" - " .word debug_sub_80139E4+1\n" - " .word BattleMainCB2+1\n" - " .word gBattleTypeFlags\n" - " .word gTrainerBattleOpponent\n" - "\n" - ); + if (gReceivedRemoteLinkPlayers != 0) + { +#if DEBUG + if (gUnknown_02023A14_50 & 8) + { + for (i = 0; i < 4; i++) + { + gLinkPlayers[i].lp_field_18 = i; + gLinkPlayers[i].linkType = 0x2211; + } + } +#endif + if (sub_8007ECC()) + { + sub_800F02C(); + SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); + gBattleCommunication[0]++; + } + } + break; + case 1: + if ((GetBlockReceivedStatus() & 0xF) == 0xF) + { + //s32 i; + + ResetBlockReceivedFlags(); + for (i = 0; i < 4; i++) + { + if (i != playerId) + { + if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) + || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) + memcpy(gUnknown_02023A00, gBlockRecvBuffer[i], 0x60); + } + } + gBattleCommunication[0]++; + *pSavedCallback = gMain.savedCallback; + *pSavedBattleTypeFlags = gBattleTypeFlags; + gMain.savedCallback = sub_800F104; + OpenPartyMenu(PARTY_MENU_TYPE_LINK_MULTI_BATTLE, 0); + } + break; + case 2: + if (!gPaletteFade.active) + { + gBattleCommunication[0] = 3; + sub_800832C(); + } + break; + case 3: + if (gReceivedRemoteLinkPlayers == 0) + { + gBattleTypeFlags = *pSavedBattleTypeFlags; + gMain.savedCallback = *pSavedCallback; + SetMainCallback2(InitBattle); + } + break; + } } -#else + void sub_800F298(void) { u8 playerId; @@ -2333,14 +682,27 @@ void sub_800F298(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) + if (gReceivedRemoteLinkPlayers != 0) { - gBattleStruct->unk0 = 1; - gBattleStruct->unk1 = 1; - sub_800E9EC(); - sub_800EAAC(); - SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20); - gBattleCommunication[0]++; +#if DEBUG + if (gUnknown_02023A14_50 & 8) + { + for (id = 0; id < 4; id++) + { + gLinkPlayers[id].lp_field_18 = id; + gLinkPlayers[id].linkType = 0x2211; + } + } +#endif + if (sub_8007ECC()) + { + gBattleStruct->unk0 = 1; + gBattleStruct->unk1 = 1; + sub_800E9EC(); + sub_800EAAC(); + SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20); + gBattleCommunication[0]++; + } } break; case 1: @@ -2576,7 +938,12 @@ void sub_800F298(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; + // debug +#if DEBUG + gMain.callback1 = debug_sub_80139E4; +#else gMain.callback1 = sub_8010824; +#endif SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -2587,128 +954,38 @@ void sub_800F298(void) break; } } -#endif -#if DEBUG -__attribute__((naked)) -void BattleMainCB2(void) -{ - asm( - " push {r4, r5, lr}\n" - " add sp, sp, #0xfffffffc\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " ldr r4, ._358\n" - " ldrh r2, [r4, #0x2c]\n" - " mov r1, #0x82\n" - " lsl r1, r1, #0x1\n" - " add r0, r1, #0\n" - " and r0, r0, r2\n" - " cmp r0, r1\n" - " bne ._357 @cond_branch\n" - " ldr r2, ._358 + 4\n" - " ldr r1, ._358 + 8\n" - " mov r0, #0x1\n" - " strb r0, [r1]\n" - " mov r0, #0x1\n" - " strh r0, [r2]\n" - " ldr r0, ._358 + 12\n" - " add r2, r4, r0\n" - " ldrb r1, [r2]\n" - " mov r0, #0x3\n" - " neg r0, r0\n" - " and r0, r0, r1\n" - " strb r0, [r2]\n" - " ldr r1, ._358 + 16\n" - " mov r0, #0x3\n" - " strb r0, [r1, #0x15]\n" - " ldr r0, ._358 + 20\n" - " ldr r0, [r0]\n" - " str r0, [r4]\n" - " bl ZeroEnemyPartyMons\n" - " mov r0, #0x5a\n" - " bl m4aSongNumStop\n" - " ldr r0, ._358 + 24\n" - " ldrh r1, [r0]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._356 @cond_branch\n" - " ldr r0, ._358 + 28\n" - " bl SetMainCallback2\n" - " b ._357\n" - "._359:\n" - " .align 2, 0\n" - "._358:\n" - " .word gMain\n" - " .word gSpecialVar_Result\n" - " .word gBattleOutcome\n" - " .word 0x43d\n" - " .word gScanlineEffect\n" - " .word gPreBattleCallback1\n" - " .word gBattleTypeFlags\n" - " .word sub_805465C+1\n" - "._356:\n" - " ldr r0, [r4, #0x8]\n" - " bl SetMainCallback2\n" - "._357:\n" - " ldr r5, ._361\n" - " ldrh r1, [r5]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._360 @cond_branch\n" - " lsr r0, r1, #0x2\n" - " mov r4, #0x1\n" - " and r0, r0, r4\n" - " str r4, [sp]\n" - " mov r1, #0x1\n" - " mov r2, #0x1\n" - " mov r3, #0x1\n" - " bl debug_sub_8008264\n" - " ldrh r0, [r5]\n" - " lsr r0, r0, #0x2\n" - " and r0, r0, r4\n" - " str r4, [sp]\n" - " mov r1, #0x1\n" - " mov r2, #0x15\n" - " mov r3, #0x1\n" - " bl debug_sub_8008264\n" - " ldrh r0, [r5]\n" - " lsr r0, r0, #0x2\n" - " and r0, r0, r4\n" - " str r4, [sp]\n" - " mov r1, #0x1\n" - " mov r2, #0x29\n" - " mov r3, #0x1\n" - " bl debug_sub_8008264\n" - "._360:\n" - " ldr r0, ._361 + 4\n" - " bl Text_UpdateWindowInBattle\n" - " bl UpdatePaletteFade\n" - " bl RunTasks\n" - " add sp, sp, #0x4\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._362:\n" - " .align 2, 0\n" - "._361:\n" - " .word gBattleTypeFlags\n" - " .word gUnknown_03004210\n" - "\n" - ); -} -#else void BattleMainCB2(void) { AnimateSprites(); BuildOamBuffer(); + +#if DEBUG + if ((gMain.heldKeys & (R_BUTTON | SELECT_BUTTON)) == ((R_BUTTON | SELECT_BUTTON))) + { + gSpecialVar_Result = gBattleOutcome = 1; + gMain.inBattle = FALSE; + gScanlineEffect.state = 3; + gMain.callback1 = gPreBattleCallback1; + ZeroEnemyPartyMons(); + m4aSongNumStop(0x5A); + if (gBattleTypeFlags & 2) + SetMainCallback2(sub_805465C); + else + SetMainCallback2(gMain.savedCallback); + } + if (gBattleTypeFlags & 2) + { + debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 1, 1, 1); + debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 21, 1, 1); + debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 41, 1, 1); + } +#endif + Text_UpdateWindowInBattle(&gUnknown_03004210); UpdatePaletteFade(); RunTasks(); } -#endif void sub_800F828(struct Sprite *sprite) { @@ -3084,24 +1361,19 @@ void c2_081284E0(void) // A LOT of debug code! #if DEBUG -__attribute__((naked)) -void debug_sub_8010800() + +extern u8 gBattleBuffersTransferData[]; + +void debug_sub_8010818(void); +void debug_sub_80108B8(void); +void debug_sub_8011EA0(u8); +void debug_sub_8012294(void); + +void debug_sub_8010800(void) { - asm( - " push {lr}\n" - " bl debug_sub_8010818\n" - " bl debug_sub_80108B8\n" - " ldr r1, ._496\n" - " mov r0, #0x0\n" - " str r0, [r1]\n" - " pop {r0}\n" - " bx r0\n" - "._497:\n" - " .align 2, 0\n" - "._496:\n" - " .word gBattleBuffersTransferData+0x100\n" - "\n" - ); + debug_sub_8010818(); + debug_sub_80108B8(); + *(u32 *)(gBattleBuffersTransferData + 0x100) = 0; } __attribute__((naked)) @@ -5849,133 +4121,54 @@ void debug_sub_8011D40() ); } -__attribute__((naked)) void debug_nullsub_45() { - asm( - " bx lr\n" - "\n" - ); } -__attribute__((naked)) -void debug_sub_8011DD4() +void debug_sub_8011DD4(void) { - asm( - " push {lr}\n" - " ldr r1, ._776\n" - " ldr r2, ._776 + 4\n" - " add r0, r2, #0\n" - " strh r0, [r1]\n" - " add r1, r1, #0x8\n" - " ldr r0, ._776 + 8\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 12\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 16\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 20\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 24\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 28\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 32\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._776 + 36\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " bl LoadOam\n" - " bl ProcessSpriteCopyRequests\n" - " bl TransferPlttBuffer\n" - " bl ScanlineEffect_InitHBlankDmaTransfer\n" - " pop {r0}\n" - " bx r0\n" - "._777:\n" - " .align 2, 0\n" - "._776:\n" - " .word 0x4000008\n" - " .word 0x9803\n" - " .word gBattle_BG0_X\n" - " .word gBattle_BG0_Y\n" - " .word gBattle_BG1_X\n" - " .word gBattle_BG1_Y\n" - " .word gBattle_BG2_X\n" - " .word gBattle_BG2_Y\n" - " .word gBattle_BG3_X\n" - " .word gBattle_BG3_Y\n" - "\n" - ); + REG_BG0CNT = 0x9803; + + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; + + REG_BG1HOFS = gBattle_BG1_X; + REG_BG1VOFS = gBattle_BG1_Y; + + REG_BG2HOFS = gBattle_BG2_X; + REG_BG2VOFS = gBattle_BG2_Y; + + REG_BG3HOFS = gBattle_BG3_X; + REG_BG3VOFS = gBattle_BG3_Y; + + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + ScanlineEffect_InitHBlankDmaTransfer(); } -__attribute__((naked)) -void debug_sub_8011E5C() +void debug_sub_8011E5C(void) { - asm( - " push {r4, lr}\n" - " mov r4, #0x0\n" - "._778:\n" - " lsl r0, r4, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x1e\n" - " ble ._778 @cond_branch\n" - " pop {r4}\n" - " pop {r0}\n" - " bx r0\n" - "\n" - ); + s32 i; + + for (i = 0; i < 31; i++) + debug_sub_8011EA0(i); } -__attribute__((naked)) -void debug_sub_8011E74() +extern u8 gUnknown_Debug_030043A8; + +void debug_sub_8011E74(void) { - asm( - " push {r4, r5, lr}\n" - " ldr r0, ._780\n" - " ldrb r5, [r0]\n" - " mov r1, #0x0\n" - " strb r1, [r0]\n" - " add r4, r0, #0\n" - "._779:\n" - " bl debug_sub_8012294\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x3\n" - " bls ._779 @cond_branch\n" - " ldr r0, ._780\n" - " strb r5, [r0]\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._781:\n" - " .align 2, 0\n" - "._780:\n" - " .word gUnknown_Debug_030043A8\n" - "\n" - ); + u8 r5 = gUnknown_Debug_030043A8; + + for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++) + debug_sub_8012294(); + + gUnknown_Debug_030043A8 = r5; } __attribute__((naked)) -void debug_sub_8011EA0() +void debug_sub_8011EA0(u8 a) { asm( " push {r4, r5, r6, r7, lr}\n" -- cgit v1.2.3 From 641d2749b67b6c7cad2054f5c52c990f0dad0121 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 24 Jan 2018 15:32:04 -0600 Subject: decompile debug_sub_8010818 and debug_sub_80108B8 --- src/battle/battle_2.c | 429 ++++++++++++++++---------------------------------- 1 file changed, 137 insertions(+), 292 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 64b64ecea..f9756db29 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1,5 +1,11 @@ #include "global.h" #include "constants/abilities.h" +#include "constants/battle_move_effects.h" +#include "constants/hold_effects.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/songs.h" +#include "constants/species.h" #include "battle.h" #include "battle_ai.h" #include "battle_interface.h" @@ -7,6 +13,7 @@ #include "battle_setup.h" #include "battle_util.h" #include "data2.h" +#include "decompress.h" #include "event_data.h" #include "evolution_scene.h" #include "item.h" @@ -25,9 +32,7 @@ #include "rom3.h" #include "rom_8077ABC.h" #include "rom_8094928.h" -#include "constants/songs.h" #include "sound.h" -#include "constants/species.h" #include "sprite.h" #include "string_util.h" #include "task.h" @@ -37,10 +42,6 @@ #include "tv.h" #include "scanline_effect.h" #include "util.h" -#include "constants/battle_move_effects.h" -#include "constants/items.h" -#include "constants/hold_effects.h" -#include "constants/moves.h" #include "ewram.h" struct UnknownStruct7 @@ -1362,12 +1363,55 @@ void c2_081284E0(void) // A LOT of debug code! #if DEBUG -extern u8 gBattleBuffersTransferData[]; - void debug_sub_8010818(void); void debug_sub_80108B8(void); +void debug_sub_8010CAC(void); +void debug_sub_801174C(void); +void debug_sub_8011D40(void); void debug_sub_8011EA0(u8); void debug_sub_8012294(void); +void debug_sub_80123D8(u8); +void debug_sub_8012540(void); +void debug_sub_80125A0(void); +void debug_nullsub_3(void); + +struct UnknownStruct2023A76 +{ + u16 unk0; + u16 unk2[(0x44-2)/2]; + s16 unk44; + u16 unk46; + u16 unk48[1]; +}; + +struct UnknownStruct2023B02 +{ + u16 unk0[4][4]; + u8 filler20[0x10]; + u16 unk30[4][4]; +}; + +struct UnknownStruct821F424 +{ + u8 filler0[0x12]; + u16 unk12[1][5]; // unknown length +}; + +extern struct UnknownStruct2023A76 gUnknown_Debug_2023A76; +extern struct UnknownStruct2023B02 gUnknown_Debug_2023B02; +extern u8 gUnknown_Debug_03004360; +extern struct Window gUnknown_Debug_03004370; +extern u8 gUnknown_Debug_030043A0; +extern u8 gUnknown_Debug_030043A4; +extern u8 gUnknown_Debug_030043A8; +extern u8 gBattleBuffersTransferData[]; + +extern const struct UnknownStruct821F424 gUnknown_Debug_821F424; +extern const u16 gUnknown_Debug_821F56C[][5]; + +extern const u8 gUnusedOldCharmap_Gfx_lz[]; +extern const u8 gUnusedOldCharmap_Tilemap_lz[]; +extern const u8 gUnusedOldCharmap_Pal_lz[]; void debug_sub_8010800(void) { @@ -1376,283 +1420,84 @@ void debug_sub_8010800(void) *(u32 *)(gBattleBuffersTransferData + 0x100) = 0; } -__attribute__((naked)) -void debug_sub_8010818() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " ldr r1, ._501\n" - " ldr r0, ._501 + 4\n" - " strh r0, [r1]\n" - " add r2, r1, #0\n" - " add r2, r2, #0x46\n" - " strh r0, [r2]\n" - " ldr r0, ._501 + 8\n" - " add r4, r1, #0\n" - " add r4, r4, #0x48\n" - " add r3, r0, #0\n" - " add r3, r3, #0x12\n" - " add r2, r1, #2\n" - " mov r1, #0x1d\n" - "._498:\n" - " ldrh r0, [r3]\n" - " strh r0, [r2]\n" - " strh r0, [r4]\n" - " add r4, r4, #0x2\n" - " add r3, r3, #0xa\n" - " add r2, r2, #0x2\n" - " sub r1, r1, #0x1\n" - " cmp r1, #0\n" - " bge ._498 @cond_branch\n" - " mov r1, #0x0\n" - " ldr r4, ._501 + 12\n" - " ldr r7, ._501 + 16\n" - " ldr r6, ._501 + 20\n" - " mov r0, #0x30\n" - " add r0, r0, r7\n" - " mov ip, r0\n" - "._500:\n" - " mov r0, #0x0\n" - " strb r0, [r4]\n" - " add r5, r1, #1\n" - " lsl r3, r1, #0x3\n" - "._499:\n" - " ldrb r2, [r4]\n" - " lsl r1, r2, #0x1\n" - " add r1, r1, r3\n" - " add r1, r1, r7\n" - " lsl r0, r2, #0x2\n" - " add r0, r0, r2\n" - " lsl r0, r0, #0x1\n" - " add r0, r0, r6\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " ldrb r2, [r4]\n" - " lsl r1, r2, #0x1\n" - " add r1, r1, r3\n" - " add r1, r1, ip\n" - " lsl r0, r2, #0x2\n" - " add r0, r0, r2\n" - " lsl r0, r0, #0x1\n" - " add r0, r0, r6\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x3\n" - " bls ._499 @cond_branch\n" - " add r1, r5, #0\n" - " cmp r1, #0x5\n" - " ble ._500 @cond_branch\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._502:\n" - " .align 2, 0\n" - "._501:\n" - " .word gUnknown_Debug_2023A76\n" - " .word 0x115\n" - " .word gUnknown_Debug_821F424\n" - " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_Debug_2023B02\n" - " .word gUnknown_Debug_821F56C\n" - "\n" - ); -} -__attribute__((naked)) -void debug_sub_80108B8() -{ - asm( - " push {r4, r5, lr}\n" - " add sp, sp, #0xfffffffc\n" - " bl m4aSoundVSyncOff\n" - " mov r0, #0x0\n" - " bl SetHBlankCallback\n" - " mov r0, #0x0\n" - " bl SetVBlankCallback\n" - " mov r3, #0x0\n" - " str r3, [sp]\n" - " ldr r2, ._507\n" - " mov r0, sp\n" - " str r0, [r2]\n" - " mov r1, #0xc0\n" - " lsl r1, r1, #0x13\n" - " str r1, [r2, #0x4]\n" - " ldr r0, ._507 + 4\n" - " str r0, [r2, #0x8]\n" - " ldr r0, [r2, #0x8]\n" - " ldr r2, ._507 + 8\n" - " mov r0, #0x1\n" - " strh r0, [r2]\n" - " mov r2, #0x80\n" - " lsl r2, r2, #0x13\n" - " mov r4, #0x9a\n" - " lsl r4, r4, #0x5\n" - " add r0, r4, #0\n" - " strh r0, [r2]\n" - " ldr r0, ._507 + 12\n" - " mov r5, #0x0\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 16\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 20\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 24\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 28\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 32\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 36\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 40\n" - " strh r3, [r0]\n" - " add r2, r2, #0x8\n" - " ldr r4, ._507 + 44\n" - " add r0, r4, #0\n" - " strh r0, [r2]\n" - " add r2, r2, #0x2\n" - " ldr r4, ._507 + 48\n" - " add r0, r4, #0\n" - " strh r0, [r2]\n" - " ldr r0, ._507 + 52\n" - " strh r3, [r0]\n" - " add r0, r0, #0x4\n" - " strh r3, [r0]\n" - " ldr r0, ._507 + 56\n" - " bl LZDecompressVram\n" - " ldr r0, ._507 + 60\n" - " ldr r1, ._507 + 64\n" - " bl LZDecompressWram\n" - " ldr r4, ._507 + 68\n" - " mov r1, #0xa0\n" - " lsl r1, r1, #0x13\n" - " add r0, r4, #0\n" - " bl LZDecompressVram\n" - " ldr r1, ._507 + 72\n" - " add r0, r4, #0\n" - " bl LZDecompressVram\n" - " bl m4aSoundVSyncOn\n" - " ldr r0, ._507 + 76\n" - " bl SetVBlankCallback\n" - " ldr r0, ._507 + 80\n" - " bl SetMainCallback2\n" - " bl ResetTasks\n" - " bl ResetSpriteData\n" - " bl ScanlineEffect_Stop\n" - " ldr r4, ._507 + 84\n" - " add r0, r4, #0\n" - " bl Text_LoadWindowTemplate\n" - " ldr r0, ._507 + 88\n" - " add r1, r4, #0\n" - " bl Text_InitWindowWithTemplate\n" - " ldr r0, ._507 + 92\n" - " strb r5, [r0]\n" - " ldr r0, ._507 + 96\n" - " strb r5, [r0]\n" - " ldr r0, ._507 + 100\n" - " strb r5, [r0]\n" - " mov r4, #0x0\n" - "._503:\n" - " lsl r0, r4, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x1e\n" - " ble ._503 @cond_branch\n" - " ldr r1, ._507 + 104\n" - " mov r0, #0x0\n" - " strb r0, [r1]\n" - " add r4, r1, #0\n" - "._504:\n" - " bl debug_sub_8012294\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x3\n" - " bls ._504 @cond_branch\n" - " ldr r0, ._507 + 100\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - " bl debug_sub_8012540\n" - " bl debug_nullsub_3\n" - " ldr r1, ._507 + 104\n" - " mov r0, #0x0\n" - " strb r0, [r1]\n" - " bl debug_sub_80125A0\n" - " ldr r0, ._507 + 108\n" - " add r0, r0, #0x44\n" - " mov r1, #0x0\n" - " ldsh r0, [r0, r1]\n" - " cmp r0, #0x8\n" - " bne ._505 @cond_branch\n" - " bl debug_sub_801174C\n" - " b ._506\n" - "._508:\n" - " .align 2, 0\n" - "._507:\n" - " .word 0x40000d4\n" - " .word 0x85006000\n" - " .word 0x4000200\n" - " .word gBattle_BG0_X\n" - " .word gBattle_BG0_Y\n" - " .word gBattle_BG1_X\n" - " .word gBattle_BG1_Y\n" - " .word gBattle_BG2_X\n" - " .word gBattle_BG2_Y\n" - " .word gBattle_BG3_X\n" - " .word gBattle_BG3_Y\n" - " .word 0x1f09\n" - " .word 0x4801\n" - " .word 0x4000050\n" - " .word gMonShinyPalette_CircledQuestionMark+0x18\n" - " .word gMonShinyPalette_CircledQuestionMark+0x834\n" - " .word gSharedMem\n" - " .word gMonShinyPalette_CircledQuestionMark+0xa8c\n" - " .word 0x50001e0\n" - " .word debug_sub_8011D40+1\n" - " .word debug_sub_8010CAC+1\n" - " .word gWindowTemplate_81E6C3C\n" - " .word gUnknown_Debug_03004370\n" - " .word gUnknown_Debug_03004360\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_Debug_2023A76\n" - "._505:\n" - " ldr r0, ._510\n" - " mov r1, #0x0\n" - " mov r4, #0x7\n" - " ldr r2, ._510 + 4\n" - " add r0, r0, r2\n" - "._509:\n" - " strb r1, [r0]\n" - " sub r0, r0, #0x1\n" - " sub r4, r4, #0x1\n" - " cmp r4, #0\n" - " bge ._509 @cond_branch\n" - "._506:\n" - " add sp, sp, #0x4\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._511:\n" - " .align 2, 0\n" - "._510:\n" - " .word gSharedMem\n" - " .word 0x160bb\n" - "\n" - ); +void debug_sub_8010818(void) +{ + s32 i; + + gUnknown_Debug_2023A76.unk0 = 0x115; + gUnknown_Debug_2023A76.unk46 = 0x115; + for (i = 0; i < 30; i++) + { + gUnknown_Debug_2023A76.unk2[i] = gUnknown_Debug_821F424.unk12[i][0]; + gUnknown_Debug_2023A76.unk48[i] = gUnknown_Debug_821F424.unk12[i][0]; + } + + for (i = 0; i < 6; i++) + { + for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++) + { + gUnknown_Debug_2023B02.unk0[i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; + gUnknown_Debug_2023B02.unk30[i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; + } + } +} + +void debug_sub_80108B8(void) +{ + s32 i; + + m4aSoundVSyncOff(); + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + DmaFill32(3, 0, (void *)VRAM, VRAM_SIZE); + REG_IE = 1; + REG_DISPCNT = 0x1340; + 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; + REG_BG0CNT = 0x1F09; + REG_BG1CNT = 0x4801; + REG_BLDCNT = 0; + REG_BLDY = 0; + LZDecompressVram(gUnusedOldCharmap_Gfx_lz, (void *)VRAM); + LZDecompressWram(gUnusedOldCharmap_Tilemap_lz, gSharedMem); + LZDecompressVram(gUnusedOldCharmap_Pal_lz, (void *)PLTT); + LZDecompressVram(gUnusedOldCharmap_Pal_lz, (void *)(PLTT + 0x1E0)); + m4aSoundVSyncOn(); + SetVBlankCallback(debug_sub_8011D40); + SetMainCallback2(debug_sub_8010CAC); + ResetTasks(); + ResetSpriteData(); + ScanlineEffect_Stop(); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + Text_InitWindowWithTemplate(&gUnknown_Debug_03004370, &gWindowTemplate_81E6C3C); + gUnknown_Debug_03004360 = 0; + gUnknown_Debug_030043A0 = 0; + gUnknown_Debug_030043A4 = 0; + for (i = 0; i < 31; i++) + debug_sub_8011EA0(i); + for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++) + debug_sub_8012294(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + debug_sub_8012540(); + debug_nullsub_3(); + gUnknown_Debug_030043A8 = 0; + debug_sub_80125A0(); + if (gUnknown_Debug_2023A76.unk44 == 8) + { + debug_sub_801174C(); + } + else + { + for (i = 0; i < 8; i++) + gSharedMem[0x160B4 + i] = 0; + } } __attribute__((naked)) @@ -4128,19 +3973,19 @@ void debug_nullsub_45() void debug_sub_8011DD4(void) { REG_BG0CNT = 0x9803; - + REG_BG0HOFS = gBattle_BG0_X; REG_BG0VOFS = gBattle_BG0_Y; - + REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; - + REG_BG2HOFS = gBattle_BG2_X; REG_BG2VOFS = gBattle_BG2_Y; - + REG_BG3HOFS = gBattle_BG3_X; REG_BG3VOFS = gBattle_BG3_Y; - + LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); @@ -4150,7 +3995,7 @@ void debug_sub_8011DD4(void) void debug_sub_8011E5C(void) { s32 i; - + for (i = 0; i < 31; i++) debug_sub_8011EA0(i); } @@ -4160,7 +4005,7 @@ extern u8 gUnknown_Debug_030043A8; void debug_sub_8011E74(void) { u8 r5 = gUnknown_Debug_030043A8; - + for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++) debug_sub_8012294(); @@ -4777,7 +4622,7 @@ void debug_sub_8012294() } __attribute__((naked)) -void debug_sub_80123D8() +void debug_sub_80123D8(u8 a) { asm( " push {r4, r5, r6, r7, lr}\n" -- cgit v1.2.3 From c7cd31f56ced799f6bb75ef8357b6d623a0b0de8 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 18:17:43 -0600 Subject: integrate debug AbilityBattleEffects --- src/battle/battle_util.c | 4357 ++-------------------------------------------- 1 file changed, 179 insertions(+), 4178 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index 620e0690a..faa395a97 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -22,6 +22,8 @@ #include "constants/species.h" #include "constants/weather.h" +extern u8 gUnknown_02023A14_50; + extern const u8* gBattlescriptCurrInstr; extern u8 gActiveBank; extern u8 gBattleBufferB[4][0x200]; @@ -1683,4066 +1685,6 @@ u8 CastformDataTypeChange(u8 bank) return formChange; } -#if DEBUG -__attribute__((naked)) -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, sl\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6, r7}\n\ - add sp, sp, #0xffffffd8\n\ - ldr r4, [sp, #0x48]\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - str r0, [sp, #0x4]\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x18\n\ - mov sl, r1\n\ - lsl r2, r2, #0x18\n\ - lsr r6, r2, #0x18\n\ - lsl r3, r3, #0x18\n\ - lsr r3, r3, #0x18\n\ - mov r8, r3\n\ - lsl r4, r4, #0x10\n\ - lsr r4, r4, #0x10\n\ - mov r0, #0x0\n\ - mov r9, r0\n\ - ldr r5, ._718\n\ - ldr r1, ._718 + 4\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._715 @cond_branch\n\ - mov r1, sl\n\ - strb r1, [r5]\n\ -._715:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._716 @cond_branch\n\ - ldr r1, ._718 + 8\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._718 + 12\n\ - b ._717\n\ -._719:\n\ - .align 2, 0\n\ -._718:\n\ - .word gBankAttacker\n\ - .word gNoOfAllBanks\n\ - .word gBattlePartyID\n\ - .word gPlayerParty\n\ -._716:\n\ - ldr r1, ._723\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._723 + 4\n\ -._717:\n\ - add r7, r1, r0\n\ - ldr r5, ._723 + 8\n\ - ldr r1, ._723 + 12\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._720 @cond_branch\n\ - mov r2, sl\n\ - strb r2, [r5]\n\ -._720:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._721 @cond_branch\n\ - ldr r1, ._723\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._723 + 16\n\ - b ._722\n\ -._724:\n\ - .align 2, 0\n\ -._723:\n\ - .word gBattlePartyID\n\ - .word gEnemyParty\n\ - .word gBankTarget\n\ - .word gNoOfAllBanks\n\ - .word gPlayerParty\n\ -._721:\n\ - ldr r1, ._729\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._729 + 4\n\ -._722:\n\ - add r5, r1, r0\n\ - add r0, r7, #0\n\ - mov r1, #0xb\n\ - bl GetMonData\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - str r0, [sp, #0x8]\n\ - add r0, r7, #0\n\ - mov r1, #0x0\n\ - bl GetMonData\n\ - str r0, [sp, #0x10]\n\ - add r0, r5, #0\n\ - mov r1, #0xb\n\ - bl GetMonData\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - str r0, [sp, #0xc]\n\ - add r0, r5, #0\n\ - mov r1, #0x0\n\ - bl GetMonData\n\ - str r0, [sp, #0x14]\n\ - ldr r0, ._729 + 8\n\ - ldrh r1, [r0]\n\ - mov r0, #0x80\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._725 @cond_branch\n\ - bl ._1540\n\ -._725:\n\ - mov r3, r8\n\ - cmp r3, #0\n\ - beq ._727 @cond_branch\n\ - ldr r0, ._729 + 12\n\ - strb r3, [r0]\n\ - mov r8, r0\n\ - b ._728\n\ -._730:\n\ - .align 2, 0\n\ -._729:\n\ - .word gBattlePartyID\n\ - .word gEnemyParty\n\ - .word gBattleTypeFlags\n\ - .word gLastUsedAbility\n\ -._727:\n\ - ldr r2, ._733\n\ - ldr r1, ._733 + 4\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r0, r0, r1\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - strb r0, [r2]\n\ - mov r8, r2\n\ -._728:\n\ - cmp r4, #0\n\ - beq ._731 @cond_branch\n\ - add r3, r4, #0\n\ - b ._732\n\ -._734:\n\ - .align 2, 0\n\ -._733:\n\ - .word gLastUsedAbility\n\ - .word gBattleMons\n\ -._731:\n\ - ldr r0, ._737\n\ - ldrh r3, [r0]\n\ -._732:\n\ - ldr r1, ._737 + 4\n\ - ldr r2, ._737 + 8\n\ - add r0, r1, r2\n\ - ldrb r0, [r0]\n\ - add r7, r1, #0\n\ - cmp r0, #0\n\ - beq ._735 @cond_branch\n\ - mov r4, #0x3f\n\ - and r4, r4, r0\n\ - b ._736\n\ -._738:\n\ - .align 2, 0\n\ -._737:\n\ - .word gCurrentMove\n\ - .word +0x2000000\n\ - .word 0x1601c\n\ -._735:\n\ - ldr r1, ._741\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r4, [r0, #0x2]\n\ -._736:\n\ - ldr r5, [sp, #0x4]\n\ - cmp r5, #0x13\n\ - bls ._739 @cond_branch\n\ - bl ._1534\n\ -._739:\n\ - lsl r0, r5, #0x2\n\ - ldr r1, ._741 + 4\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._742:\n\ - .align 2, 0\n\ -._741:\n\ - .word gBattleMoves\n\ - .word ._743\n\ -._743:\n\ - .word ._744\n\ - .word ._745\n\ - .word ._746\n\ - .word ._747\n\ - .word ._748\n\ - .word ._749\n\ - .word ._750\n\ - .word ._751\n\ - .word ._752\n\ - .word ._753\n\ - .word ._754\n\ - .word ._755\n\ - .word ._756\n\ - .word ._757\n\ - .word ._758\n\ - .word ._759\n\ - .word ._760\n\ - .word ._761\n\ - .word ._762\n\ - .word ._763\n\ -._744:\n\ - ldr r2, ._774\n\ - ldr r0, ._774 + 4\n\ - ldrb r1, [r2]\n\ - add r5, r0, #0\n\ - ldrb r0, [r5]\n\ - cmp r1, r0\n\ - bcc ._764 @cond_branch\n\ - mov r1, sl\n\ - strb r1, [r2]\n\ -._764:\n\ - mov r2, r8\n\ - ldrb r0, [r2]\n\ - cmp r0, #0x2d\n\ - bne ._765 @cond_branch\n\ - b ._766\n\ -._765:\n\ - cmp r0, #0x2d\n\ - bgt ._767 @cond_branch\n\ - cmp r0, #0xd\n\ - bne ._768 @cond_branch\n\ - b ._788\n\ -._768:\n\ - cmp r0, #0xd\n\ - bgt ._770 @cond_branch\n\ - cmp r0, #0x2\n\ - bne ._771 @cond_branch\n\ - b ._772\n\ -._771:\n\ - bl ._1534\n\ -._775:\n\ - .align 2, 0\n\ -._774:\n\ - .word gBankAttacker\n\ - .word gNoOfAllBanks\n\ -._770:\n\ - cmp r0, #0x16\n\ - bne ._776 @cond_branch\n\ - b ._777\n\ -._776:\n\ - cmp r0, #0x24\n\ - bne ._778 @cond_branch\n\ - b ._779\n\ -._778:\n\ - bl ._1534\n\ -._767:\n\ - cmp r0, #0x46\n\ - bne ._781 @cond_branch\n\ - b ._782\n\ -._781:\n\ - cmp r0, #0x46\n\ - bgt ._783 @cond_branch\n\ - cmp r0, #0x3b\n\ - bne ._784 @cond_branch\n\ - b ._785\n\ -._784:\n\ - bl ._1534\n\ -._783:\n\ - cmp r0, #0x4d\n\ - bne ._787 @cond_branch\n\ - b ._788\n\ -._787:\n\ - cmp r0, #0xff\n\ - beq ._789 @cond_branch\n\ - bl ._1534\n\ -._789:\n\ - bl GetCurrentWeather\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - sub r0, r0, #0x3\n\ - cmp r0, #0xa\n\ - bhi ._814 @cond_branch\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._793\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._794:\n\ - .align 2, 0\n\ -._793:\n\ - .word ._792\n\ -._792:\n\ - .word ._805\n\ - .word ._814\n\ - .word ._805\n\ - .word ._814\n\ - .word ._814\n\ - .word ._800\n\ - .word ._814\n\ - .word ._814\n\ - .word ._814\n\ - .word ._804\n\ - .word ._805\n\ -._805:\n\ - ldr r2, ._808\n\ - ldrh r1, [r2]\n\ - mov r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - mov r0, #0x5\n\ - strh r0, [r2]\n\ - ldr r0, ._808 + 4\n\ - ldr r3, ._808 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xa\n\ - b ._811\n\ -._809:\n\ - .align 2, 0\n\ -._808:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ -._800:\n\ - ldr r3, ._812\n\ - ldrh r1, [r3]\n\ - mov r2, #0x18\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - strh r2, [r3]\n\ - ldr r0, ._812 + 4\n\ - ldr r3, ._812 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xc\n\ - b ._811\n\ -._813:\n\ - .align 2, 0\n\ -._812:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ -._804:\n\ - ldr r3, ._818\n\ - ldrh r1, [r3]\n\ - mov r2, #0x60\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - strh r2, [r3]\n\ - ldr r0, ._818 + 4\n\ - ldr r3, ._818 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xb\n\ -._811:\n\ - strb r1, [r2]\n\ - ldr r5, ._818 + 12\n\ - add r0, r0, r5\n\ - mov r1, sl\n\ - strb r1, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._814:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - bne ._815 @cond_branch\n\ - bl ._1540\n\ -._815:\n\ - bl GetCurrentWeather\n\ - ldr r1, ._818 + 16\n\ - strb r0, [r1, #0x5]\n\ - ldr r0, ._818 + 20\n\ - bl BattleScriptPushCursorAndCallback\n\ - bl ._1534\n\ -._819:\n\ - .align 2, 0\n\ -._818:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ - .word 0x16003\n\ - .word gBattleCommunication\n\ - .word BattleScript_OverworldWeatherStarts\n\ -._772:\n\ - ldr r2, ._823\n\ - ldrh r1, [r2]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._820 @cond_branch\n\ - bl ._1534\n\ -._820:\n\ - mov r0, #0x5\n\ - strh r0, [r2]\n\ - ldr r0, ._823 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._823 + 8\n\ - ldr r3, ._823 + 12\n\ - add r0, r0, r3\n\ - mov r5, sl\n\ - strb r5, [r0]\n\ - bl ._1392\n\ -._824:\n\ - .align 2, 0\n\ -._823:\n\ - .word gBattleWeather\n\ - .word BattleScript_DrizzleActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._766:\n\ - ldr r2, ._828\n\ - ldrh r1, [r2]\n\ - mov r0, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._825 @cond_branch\n\ - bl ._1534\n\ -._825:\n\ - mov r0, #0x18\n\ - strh r0, [r2]\n\ - ldr r0, ._828 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._828 + 8\n\ - ldr r1, ._828 + 12\n\ - add r0, r0, r1\n\ - mov r2, sl\n\ - strb r2, [r0]\n\ - bl ._1392\n\ -._829:\n\ - .align 2, 0\n\ -._828:\n\ - .word gBattleWeather\n\ - .word BattleScript_SandstreamActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._782:\n\ - ldr r2, ._833\n\ - ldrh r1, [r2]\n\ - mov r0, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._830 @cond_branch\n\ - bl ._1534\n\ -._830:\n\ - mov r0, #0x60\n\ - strh r0, [r2]\n\ - ldr r0, ._833 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._833 + 8\n\ - ldr r3, ._833 + 12\n\ - add r0, r0, r3\n\ - mov r5, sl\n\ - strb r5, [r0]\n\ - bl ._1392\n\ -._834:\n\ - .align 2, 0\n\ -._833:\n\ - .word gBattleWeather\n\ - .word BattleScript_DroughtActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._777:\n\ - ldr r0, ._838\n\ - mov r1, sl\n\ - lsl r2, r1, #0x2\n\ - add r1, r2, r1\n\ - lsl r1, r1, #0x2\n\ - add r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._835 @cond_branch\n\ - bl ._1534\n\ -._835:\n\ - ldr r1, ._838 + 4\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xc\n\ - orr r0, r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - mov r1, #0x8\n\ - b ._837\n\ -._839:\n\ - .align 2, 0\n\ -._838:\n\ - .word gSpecialStatuses\n\ - .word gStatuses3\n\ -._785:\n\ - mov r0, sl\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - bne ._840 @cond_branch\n\ - bl ._1540\n\ -._840:\n\ - ldr r0, ._843\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._843 + 4\n\ - ldr r2, ._843 + 8\n\ - add r1, r0, r2\n\ - mov r3, sl\n\ - strb r3, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r5, ._843 + 12\n\ - add r0, r0, r5\n\ - strb r1, [r0]\n\ - bl ._1534\n\ -._844:\n\ - .align 2, 0\n\ -._843:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._779:\n\ - ldr r0, ._848\n\ - mov r1, sl\n\ - lsl r2, r1, #0x2\n\ - add r1, r2, r1\n\ - lsl r1, r1, #0x2\n\ - add r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x1b\n\ - cmp r0, #0\n\ - bge ._845 @cond_branch\n\ - bl ._1534\n\ -._845:\n\ - ldr r1, ._848 + 4\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xd\n\ - orr r0, r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - mov r1, #0x10\n\ -._837:\n\ - orr r0, r0, r1\n\ - strb r0, [r3]\n\ - bl ._1534\n\ -._849:\n\ - .align 2, 0\n\ -._848:\n\ - .word gSpecialStatuses\n\ - .word gStatuses3\n\ -._788:\n\ - mov r6, #0x0\n\ - ldrb r5, [r5]\n\ - cmp r6, r5\n\ - bcc ._854 @cond_branch\n\ - bl ._1534\n\ -._854:\n\ - add r0, r6, #0\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - beq ._852 @cond_branch\n\ - bl ._853\n\ -._852:\n\ - add r0, r6, #1\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - ldr r0, ._856\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bcc ._854 @cond_branch\n\ - bl ._1534\n\ -._857:\n\ - .align 2, 0\n\ -._856:\n\ - .word gNoOfAllBanks\n\ -._745:\n\ - ldr r2, ._865\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r4, r1, r2\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._858 @cond_branch\n\ - bl ._1534\n\ -._858:\n\ - ldr r0, ._865 + 4\n\ - mov r3, sl\n\ - strb r3, [r0]\n\ - mov r3, r8\n\ - ldrb r5, [r3]\n\ - cmp r5, #0x2c\n\ - beq ._860 @cond_branch\n\ - cmp r5, #0x2c\n\ - bgt ._861 @cond_branch\n\ - cmp r5, #0x3\n\ - bne ._862 @cond_branch\n\ - b ._863\n\ -._862:\n\ - bl ._1534\n\ -._866:\n\ - .align 2, 0\n\ -._865:\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ -._861:\n\ - cmp r5, #0x36\n\ - bne ._867 @cond_branch\n\ - b ._868\n\ -._867:\n\ - cmp r5, #0x3d\n\ - beq ._869 @cond_branch\n\ - bl ._1534\n\ -._860:\n\ - mov r0, #0x0\n\ - str r0, [sp]\n\ - mov r0, #0x13\n\ - mov r1, #0x0\n\ - mov r2, #0xd\n\ - mov r3, #0x0\n\ - bl AbilityBattleEffects\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._871 @cond_branch\n\ - bl ._1534\n\ -._871:\n\ - str r0, [sp]\n\ - mov r0, #0x13\n\ - mov r1, #0x0\n\ - mov r2, #0x4d\n\ - mov r3, #0x0\n\ - bl AbilityBattleEffects\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._873 @cond_branch\n\ - bl ._1534\n\ -._873:\n\ - ldr r0, ._881\n\ - ldrh r1, [r0]\n\ - mov r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._875 @cond_branch\n\ - bl ._1534\n\ -._875:\n\ - ldrh r0, [r4, #0x2c]\n\ - ldrh r1, [r4, #0x28]\n\ - cmp r0, r1\n\ - bhi ._877 @cond_branch\n\ - bl ._1534\n\ -._877:\n\ - mov r2, r8\n\ - strb r5, [r2]\n\ - ldr r0, ._881 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, ._881 + 8\n\ - ldrh r0, [r4, #0x2c]\n\ - lsr r0, r0, #0x4\n\ - str r0, [r1]\n\ - cmp r0, #0\n\ - bne ._879 @cond_branch\n\ - mov r0, #0x1\n\ - str r0, [r1]\n\ -._879:\n\ - ldr r0, [r1]\n\ - neg r0, r0\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._882:\n\ - .align 2, 0\n\ -._881:\n\ - .word gBattleWeather\n\ - .word BattleScript_RainDishActivates\n\ - .word gBattleMoveDamage\n\ -._869:\n\ - add r0, r2, #0\n\ - add r0, r0, #0x4c\n\ - add r5, r1, r0\n\ - ldrb r0, [r5]\n\ - cmp r0, #0\n\ - bne ._883 @cond_branch\n\ - bl ._1534\n\ -._883:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - lsr r4, r0, #0x10\n\ - cmp r4, #0\n\ - beq ._885 @cond_branch\n\ - bl ._1534\n\ -._885:\n\ - ldr r0, [r5]\n\ - mov r1, #0x88\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._887 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 4\n\ - bl StringCopy\n\ -._887:\n\ - ldr r0, [r5]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._888 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 8\n\ - bl StringCopy\n\ -._888:\n\ - ldr r0, [r5]\n\ - mov r1, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._889 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 12\n\ - bl StringCopy\n\ -._889:\n\ - ldr r0, [r5]\n\ - mov r1, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._890 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 16\n\ - bl StringCopy\n\ -._890:\n\ - ldr r0, [r5]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._891 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 20\n\ - bl StringCopy\n\ -._891:\n\ - str r4, [r5]\n\ - ldr r0, ._893 + 24\n\ - ldr r4, ._893 + 28\n\ - mov r3, sl\n\ - strb r3, [r4]\n\ - ldr r1, ._893 + 32\n\ - add r0, r0, r1\n\ - strb r3, [r0]\n\ - ldr r0, ._893 + 36\n\ - bl BattleScriptPushCursorAndCallback\n\ - str r5, [sp]\n\ - mov r0, #0x0\n\ - mov r1, #0x28\n\ - mov r2, #0x0\n\ - mov r3, #0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl ._1392\n\ -._894:\n\ - .align 2, 0\n\ -._893:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_PoisonJpn\n\ - .word gStatusConditionString_SleepJpn\n\ - .word gStatusConditionString_ParalysisJpn\n\ - .word gStatusConditionString_BurnJpn\n\ - .word gStatusConditionString_IceJpn\n\ - .word +0x2000000\n\ - .word gActiveBank\n\ - .word 0x16003\n\ - .word BattleScript_ShedSkinActivates\n\ -._863:\n\ - ldrb r2, [r4, #0x1b]\n\ - mov r0, #0x1b\n\ - ldsb r0, [r4, r0]\n\ - cmp r0, #0xb\n\ - ble ._895 @cond_branch\n\ - bl ._1534\n\ -._895:\n\ - ldr r0, ._900\n\ - mov r3, sl\n\ - lsl r1, r3, #0x3\n\ - sub r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x16]\n\ - cmp r0, #0x2\n\ - bne ._897 @cond_branch\n\ - bl ._1534\n\ -._897:\n\ - add r0, r2, #1\n\ - mov r2, #0x0\n\ - strb r0, [r4, #0x1b]\n\ - ldr r5, ._900 + 4\n\ - add r1, r7, r5\n\ - mov r0, #0x11\n\ - strb r0, [r1]\n\ - ldr r1, ._900 + 8\n\ - add r0, r7, r1\n\ - strb r2, [r0]\n\ - ldr r0, ._900 + 12\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r2, ._900 + 16\n\ - add r0, r7, r2\n\ - mov r3, sl\n\ - strb r3, [r0]\n\ - bl ._1392\n\ -._901:\n\ - .align 2, 0\n\ -._900:\n\ - .word gDisableStructs\n\ - .word 0x160a4\n\ - .word 0x160a5\n\ - .word BattleScript_SpeedBoostActivates\n\ - .word 0x16003\n\ -._868:\n\ - ldr r2, ._903\n\ - ldrb r0, [r0]\n\ - lsl r1, r0, #0x3\n\ - sub r1, r1, r0\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r2\n\ - ldrb r3, [r1, #0x18]\n\ - lsl r0, r3, #0x1f\n\ - lsr r0, r0, #0x1f\n\ - mov r2, #0x1\n\ - eor r2, r2, r0\n\ - mov r0, #0x2\n\ - neg r0, r0\n\ - and r0, r0, r3\n\ - orr r0, r0, r2\n\ - strb r0, [r1, #0x18]\n\ - bl ._1534\n\ -._904:\n\ - .align 2, 0\n\ -._903:\n\ - .word gDisableStructs\n\ -._746:\n\ - mov r5, r8\n\ - ldrb r0, [r5]\n\ - cmp r0, #0x2b\n\ - beq ._905 @cond_branch\n\ - bl ._1534\n\ -._905:\n\ - mov r4, #0x0\n\ - ldr r0, ._917\n\ - ldrh r2, [r0]\n\ - ldr r5, ._917 + 4\n\ - add r1, r0, #0\n\ - cmp r2, r5\n\ - bne ._907 @cond_branch\n\ - bl ._1534\n\ -._907:\n\ - cmp r2, r3\n\ - beq ._909 @cond_branch\n\ - add r2, r1, #0\n\ -._912:\n\ - add r2, r2, #0x2\n\ - add r4, r4, #0x1\n\ - ldrh r0, [r2]\n\ - cmp r0, r5\n\ - bne ._910 @cond_branch\n\ - bl ._1534\n\ -._910:\n\ - cmp r0, r3\n\ - bne ._912 @cond_branch\n\ -._909:\n\ - lsl r0, r4, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - ldr r0, ._917 + 4\n\ - cmp r1, r0\n\ - bne ._913 @cond_branch\n\ - bl ._1534\n\ -._913:\n\ - ldr r1, ._917 + 8\n\ - ldr r0, ._917 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x5\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._915 @cond_branch\n\ - ldr r0, ._917 + 16\n\ - ldr r1, [r0]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0x4\n\ - orr r1, r1, r2\n\ - str r1, [r0]\n\ -._915:\n\ - ldr r1, ._917 + 20\n\ - ldr r0, ._917 + 24\n\ - str r0, [r1]\n\ - mov r0, #0x1\n\ - mov r9, r0\n\ - bl ._916\n\ -._918:\n\ - .align 2, 0\n\ -._917:\n\ - .word gSoundMovesTable\n\ - .word 0xffff\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gHitMarker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SoundproofProtected\n\ -._747:\n\ - cmp r3, #0\n\ - bne ._919 @cond_branch\n\ - bl ._1534\n\ -._919:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xb\n\ - beq ._921 @cond_branch\n\ - cmp r0, #0xb\n\ - bgt ._922 @cond_branch\n\ - cmp r0, #0xa\n\ - beq ._923 @cond_branch\n\ - b ._956\n\ -._922:\n\ - cmp r0, #0x12\n\ - beq ._925 @cond_branch\n\ - b ._956\n\ -._923:\n\ - cmp r4, #0xd\n\ - beq ._927 @cond_branch\n\ - b ._956\n\ -._927:\n\ - ldr r0, ._933\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._929 @cond_branch\n\ - b ._956\n\ -._929:\n\ - ldr r1, ._933 + 4\n\ - ldr r0, ._933 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._931 @cond_branch\n\ - ldr r1, ._933 + 12\n\ - ldr r0, ._933 + 16\n\ - b ._932\n\ -._934:\n\ - .align 2, 0\n\ -._933:\n\ - .word gBattleMoves\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain\n\ -._931:\n\ - ldr r1, ._936\n\ - ldr r0, ._936 + 4\n\ -._932:\n\ - str r0, [r1]\n\ - mov r2, #0x1\n\ - b ._935\n\ -._937:\n\ - .align 2, 0\n\ -._936:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_PPLoss\n\ -._921:\n\ - cmp r4, #0xb\n\ - beq ._938 @cond_branch\n\ - b ._956\n\ -._938:\n\ - ldr r0, ._944\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._940 @cond_branch\n\ - b ._956\n\ -._940:\n\ - ldr r1, ._944 + 4\n\ - ldr r0, ._944 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._942 @cond_branch\n\ - ldr r1, ._944 + 12\n\ - ldr r0, ._944 + 16\n\ - b ._943\n\ -._945:\n\ - .align 2, 0\n\ -._944:\n\ - .word gBattleMoves\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain\n\ -._942:\n\ - ldr r1, ._947\n\ - ldr r0, ._947 + 4\n\ -._943:\n\ - str r0, [r1]\n\ - mov r3, #0x1\n\ - mov r9, r3\n\ - b ._956\n\ -._948:\n\ - .align 2, 0\n\ -._947:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_PPLoss\n\ -._925:\n\ - cmp r4, #0xa\n\ - bne ._956 @cond_branch\n\ - ldr r1, ._954\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._956 @cond_branch\n\ - ldr r2, ._954 + 4\n\ - mov r0, sl\n\ - lsl r1, r0, #0x2\n\ - add r0, r1, r2\n\ - ldr r3, [r0]\n\ - mov r4, #0x1\n\ - and r3, r3, r4\n\ - add r5, r1, #0\n\ - cmp r3, #0\n\ - bne ._951 @cond_branch\n\ - ldr r0, ._954 + 8\n\ - strb r3, [r0, #0x5]\n\ - ldr r1, ._954 + 12\n\ - ldr r0, ._954 + 16\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._952 @cond_branch\n\ - ldr r1, ._954 + 20\n\ - ldr r0, ._954 + 24\n\ - b ._953\n\ -._955:\n\ - .align 2, 0\n\ -._954:\n\ - .word gBattleMons\n\ - .word +0x2017100\n\ - .word gBattleCommunication\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost\n\ -._952:\n\ - ldr r1, ._957\n\ - ldr r0, ._957 + 4\n\ -._953:\n\ - str r0, [r1]\n\ - add r0, r5, r2\n\ - ldr r1, [r0]\n\ - mov r2, #0x1\n\ - orr r1, r1, r2\n\ - str r1, [r0]\n\ - mov r1, #0x2\n\ - mov r9, r1\n\ - b ._956\n\ -._958:\n\ - .align 2, 0\n\ -._957:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost_PPLoss\n\ -._951:\n\ - ldr r0, ._961\n\ - strb r4, [r0, #0x5]\n\ - ldr r1, ._961 + 4\n\ - ldr r0, ._961 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._959 @cond_branch\n\ - ldr r1, ._961 + 12\n\ - ldr r0, ._961 + 16\n\ - b ._960\n\ -._962:\n\ - .align 2, 0\n\ -._961:\n\ - .word gBattleCommunication\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost\n\ -._959:\n\ - ldr r1, ._968\n\ - ldr r0, ._968 + 4\n\ -._960:\n\ - str r0, [r1]\n\ - mov r2, #0x2\n\ -._935:\n\ - mov r9, r2\n\ -._956:\n\ - mov r3, r9\n\ - cmp r3, #0x1\n\ - beq ._963 @cond_branch\n\ - bl ._1534\n\ -._963:\n\ - ldr r1, ._968 + 8\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r1, r0, r1\n\ - ldrh r0, [r1, #0x2c]\n\ - ldrh r2, [r1, #0x28]\n\ - cmp r0, r2\n\ - bne ._965 @cond_branch\n\ - ldr r1, ._968 + 12\n\ - ldr r0, ._968 + 16\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._966 @cond_branch\n\ - ldr r1, ._968\n\ - ldr r0, ._968 + 20\n\ - str r0, [r1]\n\ - bl ._1534\n\ -._969:\n\ - .align 2, 0\n\ -._968:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost_PPLoss\n\ - .word gBattleMons\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word BattleScript_MoveHPDrain_FullHP\n\ -._966:\n\ - ldr r1, ._971\n\ - ldr r0, ._971 + 4\n\ - str r0, [r1]\n\ - bl ._1534\n\ -._972:\n\ - .align 2, 0\n\ -._971:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_FullHP_PPLoss\n\ -._965:\n\ - ldr r2, ._975\n\ - ldrh r0, [r1, #0x2c]\n\ - lsr r0, r0, #0x2\n\ - str r0, [r2]\n\ - cmp r0, #0\n\ - bne ._973 @cond_branch\n\ - mov r3, r9\n\ - str r3, [r2]\n\ -._973:\n\ - ldr r0, [r2]\n\ - neg r0, r0\n\ - str r0, [r2]\n\ - bl ._1534\n\ -._976:\n\ - .align 2, 0\n\ -._975:\n\ - .word gBattleMoveDamage\n\ -._748:\n\ - mov r5, r8\n\ - ldrb r0, [r5]\n\ - sub r0, r0, #0x9\n\ - cmp r0, #0x2f\n\ - bls ._977 @cond_branch\n\ - bl ._1534\n\ -._977:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._980\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._981:\n\ - .align 2, 0\n\ -._980:\n\ - .word ._979\n\ -._979:\n\ - .word ._982\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._989\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._997\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1000\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1011\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1022\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1029\n\ -._989:\n\ - ldr r0, ._1046\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1030 @cond_branch\n\ - bl ._1534\n\ -._1030:\n\ - cmp r3, #0xa5\n\ - bne ._1032 @cond_branch\n\ - bl ._1534\n\ -._1032:\n\ - ldr r0, ._1046 + 4\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._1034 @cond_branch\n\ - bl ._1534\n\ -._1034:\n\ - ldr r2, ._1046 + 8\n\ - ldr r0, ._1046 + 12\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1037 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1037 @cond_branch\n\ - bl ._1534\n\ -._1037:\n\ - ldr r1, ._1046 + 16\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r0, r2, #0\n\ - add r1, r0, r1\n\ - add r3, r1, #0\n\ - add r3, r3, #0x21\n\ - ldrb r0, [r3]\n\ - cmp r0, r4\n\ - bne ._1039 @cond_branch\n\ - bl ._1534\n\ -._1039:\n\ - add r2, r1, #0\n\ - add r2, r2, #0x22\n\ - ldrb r0, [r2]\n\ - cmp r0, r4\n\ - bne ._1041 @cond_branch\n\ - bl ._1534\n\ -._1041:\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - bne ._1043 @cond_branch\n\ - bl ._1534\n\ -._1043:\n\ - strb r4, [r3]\n\ - strb r4, [r2]\n\ - ldr r1, ._1046 + 20\n\ - mov r0, #0xfd\n\ - strb r0, [r1]\n\ - mov r0, #0x3\n\ - strb r0, [r1, #0x1]\n\ - strb r4, [r1, #0x2]\n\ - mov r0, #0xff\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1046 + 24\n\ - ldr r0, ._1046 + 28\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1047:\n\ - .align 2, 0\n\ -._1046:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMons\n\ - .word gBattleTextBuff1\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ColorChangeActivates\n\ -._997:\n\ - ldr r0, ._1061\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1048 @cond_branch\n\ - bl ._1534\n\ -._1048:\n\ - ldr r1, ._1061 + 4\n\ - ldr r0, ._1061 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r4, r0, r1\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._1050 @cond_branch\n\ - bl ._1534\n\ -._1050:\n\ - ldr r0, ._1061 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1052 @cond_branch\n\ - bl ._1534\n\ -._1052:\n\ - ldr r2, ._1061 + 16\n\ - ldr r0, ._1061 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1055 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1055 @cond_branch\n\ - bl ._1534\n\ -._1055:\n\ - ldr r1, ._1061 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r2, #0x1\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1057 @cond_branch\n\ - bl ._1534\n\ -._1057:\n\ - ldr r1, ._1061 + 28\n\ - ldrh r0, [r4, #0x2c]\n\ - lsr r0, r0, #0x4\n\ - str r0, [r1]\n\ - cmp r0, #0\n\ - bne ._1059 @cond_branch\n\ - str r2, [r1]\n\ -._1059:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1061 + 32\n\ - ldr r0, ._1061 + 36\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1062:\n\ - .align 2, 0\n\ -._1061:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleMoveDamage\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_RoughSkinActivates\n\ -._1000:\n\ - ldr r0, ._1078\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1063 @cond_branch\n\ - ldr r0, ._1078 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1064 @cond_branch\n\ - bl ._1534\n\ -._1064:\n\ - ldr r1, ._1078 + 8\n\ - ldr r0, ._1078 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1066 @cond_branch\n\ - bl ._1534\n\ -._1066:\n\ - ldr r0, ._1078 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1068 @cond_branch\n\ - bl ._1534\n\ -._1068:\n\ - ldr r2, ._1078 + 20\n\ - ldr r0, ._1078 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1071 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1071 @cond_branch\n\ - bl ._1534\n\ -._1071:\n\ - ldr r1, ._1078 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1073 @cond_branch\n\ - bl ._1534\n\ -._1073:\n\ - ldr r5, ._1078 + 32\n\ - mov r4, #0x3\n\ -._1075:\n\ - bl Random\n\ - and r0, r0, r4\n\ - strb r0, [r5, #0x3]\n\ - cmp r0, #0\n\ - beq ._1075 @cond_branch\n\ - ldr r1, ._1078 + 32\n\ - ldrb r0, [r1, #0x3]\n\ - cmp r0, #0x3\n\ - bne ._1076 @cond_branch\n\ - add r0, r0, #0x2\n\ - strb r0, [r1, #0x3]\n\ -._1076:\n\ - ldrb r0, [r1, #0x3]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1078 + 36\n\ - ldr r0, ._1078 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1078 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1079:\n\ - .align 2, 0\n\ -._1078:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1063:\n\ - ldr r0, ._1096\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1080 @cond_branch\n\ - bl ._1534\n\ -._1080:\n\ - ldr r1, ._1096 + 4\n\ - ldr r0, ._1096 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1082 @cond_branch\n\ - bl ._1534\n\ -._1082:\n\ - ldr r0, ._1096 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1084 @cond_branch\n\ - bl ._1534\n\ -._1084:\n\ - ldr r2, ._1096 + 16\n\ - ldr r0, ._1096 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1087 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1087 @cond_branch\n\ - bl ._1534\n\ -._1087:\n\ - ldr r1, ._1096 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1089 @cond_branch\n\ - bl ._1534\n\ -._1089:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0xa\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1091 @cond_branch\n\ - bl ._1534\n\ -._1091:\n\ - ldr r5, ._1096 + 28\n\ - mov r4, #0x3\n\ -._1093:\n\ - bl Random\n\ - and r0, r0, r4\n\ - strb r0, [r5, #0x3]\n\ - cmp r0, #0\n\ - beq ._1093 @cond_branch\n\ - ldr r1, ._1096 + 28\n\ - ldrb r0, [r1, #0x3]\n\ - cmp r0, #0x3\n\ - bne ._1094 @cond_branch\n\ - add r0, r0, #0x2\n\ - strb r0, [r1, #0x3]\n\ -._1094:\n\ - ldrb r0, [r1, #0x3]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1096 + 32\n\ - ldr r0, ._1096 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1096 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1097:\n\ - .align 2, 0\n\ -._1096:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1011:\n\ - ldr r0, ._1111\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1098 @cond_branch\n\ - ldr r0, ._1111 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1099 @cond_branch\n\ - bl ._1534\n\ -._1099:\n\ - ldr r1, ._1111 + 8\n\ - ldr r0, ._1111 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1101 @cond_branch\n\ - bl ._1534\n\ -._1101:\n\ - ldr r0, ._1111 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1103 @cond_branch\n\ - bl ._1534\n\ -._1103:\n\ - ldr r2, ._1111 + 20\n\ - ldr r0, ._1111 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1106 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1106 @cond_branch\n\ - bl ._1534\n\ -._1106:\n\ - ldr r1, ._1111 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1108 @cond_branch\n\ - bl ._1534\n\ -._1108:\n\ - ldr r1, ._1111 + 32\n\ - mov r0, #0x42\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1111 + 36\n\ - ldr r0, ._1111 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1111 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1112:\n\ - .align 2, 0\n\ -._1111:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1098:\n\ - ldr r0, ._1127\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1113 @cond_branch\n\ - bl ._1534\n\ -._1113:\n\ - ldr r1, ._1127 + 4\n\ - ldr r0, ._1127 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1115 @cond_branch\n\ - bl ._1534\n\ -._1115:\n\ - ldr r0, ._1127 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1117 @cond_branch\n\ - bl ._1534\n\ -._1117:\n\ - ldr r2, ._1127 + 16\n\ - ldr r0, ._1127 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1120 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1120 @cond_branch\n\ - bl ._1534\n\ -._1120:\n\ - ldr r1, ._1127 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1122 @cond_branch\n\ - bl ._1534\n\ -._1122:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1124 @cond_branch\n\ - bl ._1534\n\ -._1124:\n\ - ldr r1, ._1127 + 28\n\ - mov r0, #0x42\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1127 + 32\n\ - ldr r0, ._1127 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1127 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1128:\n\ - .align 2, 0\n\ -._1127:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._982:\n\ - ldr r0, ._1142\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1129 @cond_branch\n\ - ldr r0, ._1142 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1130 @cond_branch\n\ - bl ._1534\n\ -._1130:\n\ - ldr r1, ._1142 + 8\n\ - ldr r0, ._1142 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1132 @cond_branch\n\ - bl ._1534\n\ -._1132:\n\ - ldr r0, ._1142 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1134 @cond_branch\n\ - bl ._1534\n\ -._1134:\n\ - ldr r2, ._1142 + 20\n\ - ldr r0, ._1142 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1137 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1137 @cond_branch\n\ - bl ._1534\n\ -._1137:\n\ - ldr r1, ._1142 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1139 @cond_branch\n\ - bl ._1534\n\ -._1139:\n\ - ldr r1, ._1142 + 32\n\ - mov r0, #0x45\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1142 + 36\n\ - ldr r0, ._1142 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1142 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1143:\n\ - .align 2, 0\n\ -._1142:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1129:\n\ - ldr r0, ._1158\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1144 @cond_branch\n\ - bl ._1534\n\ -._1144:\n\ - ldr r1, ._1158 + 4\n\ - ldr r0, ._1158 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1146 @cond_branch\n\ - bl ._1534\n\ -._1146:\n\ - ldr r0, ._1158 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1148 @cond_branch\n\ - bl ._1534\n\ -._1148:\n\ - ldr r2, ._1158 + 16\n\ - ldr r0, ._1158 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1151 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1151 @cond_branch\n\ - bl ._1534\n\ -._1151:\n\ - ldr r1, ._1158 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1153 @cond_branch\n\ - bl ._1534\n\ -._1153:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1155 @cond_branch\n\ - bl ._1534\n\ -._1155:\n\ - ldr r1, ._1158 + 28\n\ - mov r0, #0x45\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1158 + 32\n\ - ldr r0, ._1158 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1158 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1159:\n\ - .align 2, 0\n\ -._1158:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1022:\n\ - ldr r0, ._1173\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1160 @cond_branch\n\ - ldr r0, ._1173 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1161 @cond_branch\n\ - bl ._1534\n\ -._1161:\n\ - ldr r1, ._1173 + 8\n\ - ldr r0, ._1173 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1163 @cond_branch\n\ - bl ._1534\n\ -._1163:\n\ - ldr r0, ._1173 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1165 @cond_branch\n\ - bl ._1534\n\ -._1165:\n\ - ldr r1, ._1173 + 20\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1167 @cond_branch\n\ - bl ._1534\n\ -._1167:\n\ - ldr r2, ._1173 + 24\n\ - ldr r0, ._1173 + 28\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1170 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1170 @cond_branch\n\ - bl ._1534\n\ -._1170:\n\ - ldr r1, ._1173 + 32\n\ - mov r0, #0x43\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1173 + 36\n\ - ldr r0, ._1173 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1173 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1174:\n\ - .align 2, 0\n\ -._1173:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1160:\n\ - ldr r0, ._1189\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1175 @cond_branch\n\ - bl ._1534\n\ -._1175:\n\ - ldr r1, ._1189 + 4\n\ - ldr r0, ._1189 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1177 @cond_branch\n\ - bl ._1534\n\ -._1177:\n\ - ldr r0, ._1189 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1179 @cond_branch\n\ - bl ._1534\n\ -._1179:\n\ - ldr r1, ._1189 + 16\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1181 @cond_branch\n\ - bl ._1534\n\ -._1181:\n\ - ldr r2, ._1189 + 20\n\ - ldr r0, ._1189 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1184 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1184 @cond_branch\n\ - bl ._1534\n\ -._1184:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1186 @cond_branch\n\ - bl ._1534\n\ -._1186:\n\ - ldr r1, ._1189 + 28\n\ - mov r0, #0x43\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1189 + 32\n\ - ldr r0, ._1189 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1189 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1190:\n\ - .align 2, 0\n\ -._1189:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1029:\n\ - ldr r0, ._1217\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1191 @cond_branch\n\ - b ._1192\n\ -._1191:\n\ - ldr r0, ._1217 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1193 @cond_branch\n\ - bl ._1534\n\ -._1193:\n\ - ldr r5, ._1217 + 8\n\ - ldr r7, ._1217 + 12\n\ - ldrb r1, [r7]\n\ - mov r6, #0x58\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r4, r0, r5\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._1195 @cond_branch\n\ - bl ._1534\n\ -._1195:\n\ - ldr r0, ._1217 + 16\n\ - lsl r1, r1, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1197 @cond_branch\n\ - bl ._1534\n\ -._1197:\n\ - ldr r1, ._1217 + 20\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1199 @cond_branch\n\ - bl ._1534\n\ -._1199:\n\ - ldr r3, ._1217 + 24\n\ - ldr r0, ._1217 + 28\n\ - mov r8, r0\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r2, r0, #0x2\n\ - add r0, r3, #0\n\ - add r0, r0, #0x8\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1202 @cond_branch\n\ - add r0, r3, #0\n\ - add r0, r0, #0xc\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1202 @cond_branch\n\ - bl ._1534\n\ -._1202:\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1204 @cond_branch\n\ - bl ._1534\n\ -._1204:\n\ - add r0, r4, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0xc\n\ - bne ._1206 @cond_branch\n\ - bl ._1534\n\ -._1206:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - add r4, r0, #0\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r4, r4, #0x18\n\ - lsl r0, r0, #0x18\n\ - cmp r4, r0\n\ - bne ._1208 @cond_branch\n\ - bl ._1534\n\ -._1208:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r4, r5, #0\n\ - add r4, r4, #0x50\n\ - add r0, r0, r4\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1210 @cond_branch\n\ - bl ._1534\n\ -._1210:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1212 @cond_branch\n\ - bl ._1534\n\ -._1212:\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1214 @cond_branch\n\ - bl ._1534\n\ -._1214:\n\ - ldrb r0, [r7]\n\ - add r2, r0, #0\n\ - mul r2, r2, r6\n\ - add r2, r2, r4\n\ - ldr r1, ._1217 + 32\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - lsl r1, r1, #0x10\n\ - ldr r0, [r2]\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1217 + 36\n\ - ldr r0, ._1217 + 40\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1218:\n\ - .align 2, 0\n\ -._1217:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBitTable\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_CuteCharmActivates\n\ -._1192:\n\ - ldr r0, ._1245\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1219 @cond_branch\n\ - bl ._1534\n\ -._1219:\n\ - ldr r5, ._1245 + 4\n\ - ldr r7, ._1245 + 8\n\ - ldrb r1, [r7]\n\ - mov r6, #0x58\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1221 @cond_branch\n\ - bl ._1534\n\ -._1221:\n\ - ldr r0, ._1245 + 12\n\ - lsl r1, r1, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1223 @cond_branch\n\ - bl ._1534\n\ -._1223:\n\ - ldr r1, ._1245 + 16\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1225 @cond_branch\n\ - bl ._1534\n\ -._1225:\n\ - ldr r3, ._1245 + 20\n\ - ldr r0, ._1245 + 24\n\ - mov r8, r0\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r2, r0, #0x2\n\ - add r0, r3, #0\n\ - add r0, r0, #0x8\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1228 @cond_branch\n\ - add r0, r3, #0\n\ - add r0, r0, #0xc\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1228 @cond_branch\n\ - bl ._1534\n\ -._1228:\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1230 @cond_branch\n\ - bl ._1534\n\ -._1230:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1232 @cond_branch\n\ - bl ._1534\n\ -._1232:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0xc\n\ - bne ._1234 @cond_branch\n\ - bl ._1534\n\ -._1234:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - add r4, r0, #0\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r4, r4, #0x18\n\ - lsl r0, r0, #0x18\n\ - cmp r4, r0\n\ - bne ._1236 @cond_branch\n\ - bl ._1534\n\ -._1236:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r4, r5, #0\n\ - add r4, r4, #0x50\n\ - add r0, r0, r4\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1238 @cond_branch\n\ - bl ._1534\n\ -._1238:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1240 @cond_branch\n\ - bl ._1534\n\ -._1240:\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1242 @cond_branch\n\ - bl ._1534\n\ -._1242:\n\ - ldrb r0, [r7]\n\ - add r2, r0, #0\n\ - mul r2, r2, r6\n\ - add r2, r2, r4\n\ - ldr r1, ._1245 + 28\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - lsl r1, r1, #0x10\n\ - ldr r0, [r2]\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1245 + 32\n\ - ldr r0, ._1245 + 36\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1246:\n\ - .align 2, 0\n\ -._1245:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBitTable\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_CuteCharmActivates\n\ -._749:\n\ - mov r5, #0x0\n\ - mov sl, r5\n\ - ldr r0, ._1251\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1366 @cond_branch\n\ - bl ._1534\n\ -._1366:\n\ - ldr r1, ._1251 + 4\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r0, r2, #0\n\ - add r0, r0, r1\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - sub r0, r0, #0x7\n\ - add r2, r1, #0\n\ - cmp r0, #0x41\n\ - bls ._1249 @cond_branch\n\ - b ._1346\n\ -._1249:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._1251 + 8\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._1252:\n\ - .align 2, 0\n\ -._1251:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word ._1253\n\ -._1253:\n\ - .word ._1254\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1259\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1319\n\ - .word ._1346\n\ - .word ._1264\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1267\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1287\n\ - .word ._1288\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1319\n\ -._1264:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - ldr r1, ._1323\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1320 @cond_branch\n\ - b ._1346\n\ -._1320:\n\ - ldr r0, ._1323 + 4\n\ - ldr r1, ._1323 + 8\n\ - b ._1331\n\ -._1324:\n\ - .align 2, 0\n\ -._1323:\n\ - .word 0xf88\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_PoisonJpn\n\ -._1267:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1325 @cond_branch\n\ - b ._1346\n\ -._1325:\n\ - ldr r0, ._1328\n\ - ldr r1, ._1328 + 4\n\ - bl StringCopy\n\ - mov r2, #0x2\n\ - mov r9, r2\n\ - b ._1343\n\ -._1329:\n\ - .align 2, 0\n\ -._1328:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_ConfusionJpn\n\ -._1254:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1332\n\ - ldr r1, ._1332 + 4\n\ - b ._1331\n\ -._1333:\n\ - .align 2, 0\n\ -._1332:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_ParalysisJpn\n\ -._1319:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r2, #0\n\ - add r0, r0, #0x4c\n\ - add r0, r3, r0\n\ - ldr r0, [r0]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - add r2, r2, #0x50\n\ - add r2, r3, r2\n\ - ldr r0, [r2]\n\ - ldr r1, ._1336\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - ldr r0, ._1336 + 4\n\ - ldr r1, ._1336 + 8\n\ - bl StringCopy\n\ - mov r0, #0x1\n\ - mov r9, r0\n\ - b ._1343\n\ -._1337:\n\ - .align 2, 0\n\ -._1336:\n\ - .word 0xf7ffffff\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_SleepJpn\n\ -._1288:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1340\n\ - ldr r1, ._1340 + 4\n\ - bl StringCopy\n\ - mov r2, #0x1\n\ - mov r9, r2\n\ - b ._1343\n\ -._1341:\n\ - .align 2, 0\n\ -._1340:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_BurnJpn\n\ -._1287:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1344\n\ - ldr r1, ._1344 + 4\n\ -._1331:\n\ - bl StringCopy\n\ - mov r5, #0x1\n\ - mov r9, r5\n\ - b ._1343\n\ -._1345:\n\ - .align 2, 0\n\ -._1344:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_IceJpn\n\ -._1259:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1352\n\ - ldr r1, ._1352 + 4\n\ - bl StringCopy\n\ - mov r2, #0x3\n\ - mov r9, r2\n\ -._1346:\n\ - mov r3, r9\n\ - cmp r3, #0\n\ - beq ._1347 @cond_branch\n\ -._1343:\n\ - mov r5, r9\n\ - cmp r5, #0x2\n\ - beq ._1348 @cond_branch\n\ - cmp r5, #0x2\n\ - bgt ._1349 @cond_branch\n\ - cmp r5, #0x1\n\ - beq ._1350 @cond_branch\n\ - b ._1355\n\ -._1353:\n\ - .align 2, 0\n\ -._1352:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_LoveJpn\n\ -._1349:\n\ - mov r0, r9\n\ - cmp r0, #0x3\n\ - beq ._1354 @cond_branch\n\ - b ._1355\n\ -._1350:\n\ - ldr r1, ._1357\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x4c\n\ - add r2, r2, r1\n\ - mov r0, #0x0\n\ - b ._1356\n\ -._1358:\n\ - .align 2, 0\n\ -._1357:\n\ - .word gBattleMons\n\ -._1348:\n\ - ldr r1, ._1360\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x50\n\ - add r2, r2, r1\n\ - ldr r0, [r2]\n\ - mov r1, #0x8\n\ - neg r1, r1\n\ - b ._1359\n\ -._1361:\n\ - .align 2, 0\n\ -._1360:\n\ - .word gBattleMons\n\ -._1354:\n\ - ldr r1, ._1363\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x50\n\ - add r2, r2, r1\n\ - ldr r0, [r2]\n\ - ldr r1, ._1363 + 4\n\ -._1359:\n\ - and r0, r0, r1\n\ -._1356:\n\ - str r0, [r2]\n\ -._1355:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1363 + 8\n\ - ldr r0, ._1363 + 12\n\ - str r0, [r1]\n\ - ldr r0, ._1363 + 16\n\ - ldr r1, ._1363 + 20\n\ - add r0, r0, r1\n\ - mov r2, sl\n\ - strb r2, [r0]\n\ - ldr r4, ._1363 + 24\n\ - strb r2, [r4]\n\ - ldrb r1, [r4]\n\ - mov r0, #0x58\n\ - mul r0, r0, r1\n\ - ldr r1, ._1363 + 28\n\ - add r0, r0, r1\n\ - str r0, [sp]\n\ - mov r0, #0x0\n\ - mov r1, #0x28\n\ - mov r2, #0x0\n\ - mov r3, #0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl ._1540\n\ -._1364:\n\ - .align 2, 0\n\ -._1363:\n\ - .word gBattleMons\n\ - .word 0xfff0ffff\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_AbilityCuredStatus\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word gActiveBank\n\ - .word gUnknown_02024ACC\n\ -._1347:\n\ - mov r0, sl\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov sl, r0\n\ - ldr r0, ._1368\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcs ._1365 @cond_branch\n\ - b ._1366\n\ -._1365:\n\ - bl ._1534\n\ -._1369:\n\ - .align 2, 0\n\ -._1368:\n\ - .word gNoOfAllBanks\n\ -._750:\n\ - mov r3, #0x0\n\ - mov sl, r3\n\ - ldr r0, ._1377\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1370 @cond_branch\n\ - b ._1534\n\ -._1370:\n\ - ldr r4, ._1377 + 4\n\ -._1375:\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r0, r0, r4\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x3b\n\ - bne ._1373 @cond_branch\n\ - mov r0, sl\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - beq ._1373 @cond_branch\n\ - b ._1374\n\ -._1373:\n\ - mov r0, sl\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov sl, r0\n\ - ldr r0, ._1377\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1375 @cond_branch\n\ - b ._1534\n\ -._1378:\n\ - .align 2, 0\n\ -._1377:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._751:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0x1c\n\ - beq ._1379 @cond_branch\n\ - b ._1534\n\ -._1379:\n\ - ldr r4, ._1385\n\ - ldr r1, [r4]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1381 @cond_branch\n\ - b ._1534\n\ -._1381:\n\ - ldr r0, ._1385 + 4\n\ - and r1, r1, r0\n\ - str r1, [r4]\n\ - ldr r3, ._1385 + 8\n\ - add r2, r7, r3\n\ - ldrb r1, [r2]\n\ - mov r0, #0x3f\n\ - and r0, r0, r1\n\ - strb r0, [r2]\n\ - cmp r0, #0x6\n\ - bne ._1383 @cond_branch\n\ - mov r0, #0x2\n\ - strb r0, [r2]\n\ -._1383:\n\ - ldr r1, ._1385 + 12\n\ - ldrb r0, [r2]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - ldr r0, ._1385 + 16\n\ - ldrb r1, [r0]\n\ - ldr r5, ._1385 + 20\n\ - add r0, r7, r5\n\ - strb r1, [r0]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1385 + 24\n\ - ldr r0, ._1385 + 28\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r4]\n\ - b ._1392\n\ -._1386:\n\ - .align 2, 0\n\ -._1385:\n\ - .word gHitMarker\n\ - .word 0xffffbfff\n\ - .word 0x160ca\n\ - .word gBattleCommunication\n\ - .word gBankTarget\n\ - .word 0x16003\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SynchronizeActivates\n\ -._752:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0x1c\n\ - beq ._1387 @cond_branch\n\ - b ._1534\n\ -._1387:\n\ - ldr r4, ._1393\n\ - ldr r1, [r4]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1389 @cond_branch\n\ - b ._1534\n\ -._1389:\n\ - ldr r0, ._1393 + 4\n\ - and r1, r1, r0\n\ - str r1, [r4]\n\ - ldr r3, ._1393 + 8\n\ - add r2, r7, r3\n\ - ldrb r1, [r2]\n\ - mov r0, #0x3f\n\ - and r0, r0, r1\n\ - strb r0, [r2]\n\ - cmp r0, #0x6\n\ - bne ._1391 @cond_branch\n\ - mov r0, #0x2\n\ - strb r0, [r2]\n\ -._1391:\n\ - ldr r1, ._1393 + 12\n\ - ldrb r0, [r2]\n\ - strb r0, [r1, #0x3]\n\ - ldr r0, ._1393 + 16\n\ - ldrb r1, [r0]\n\ - ldr r5, ._1393 + 20\n\ - add r0, r7, r5\n\ - strb r1, [r0]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1393 + 24\n\ - ldr r0, ._1393 + 28\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r4]\n\ - b ._1392\n\ -._1394:\n\ - .align 2, 0\n\ -._1393:\n\ - .word gHitMarker\n\ - .word 0xffffbfff\n\ - .word 0x160ca\n\ - .word gBattleCommunication\n\ - .word gBankAttacker\n\ - .word 0x16003\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SynchronizeActivates\n\ -._753:\n\ - mov r4, #0x0\n\ - ldr r0, ._1402\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt ._1395 @cond_branch\n\ - b ._1534\n\ -._1395:\n\ - ldr r0, ._1402 + 4\n\ - add r5, r1, #0\n\ - ldr r2, ._1402 + 8\n\ - add r3, r0, #0\n\ - add r3, r3, #0x20\n\ - mov r6, #0x80\n\ - lsl r6, r6, #0xc\n\ -._1400:\n\ - ldrb r1, [r3]\n\ - cmp r1, #0x16\n\ - bne ._1398 @cond_branch\n\ - ldr r0, [r2]\n\ - and r0, r0, r6\n\ - cmp r0, #0\n\ - beq ._1398 @cond_branch\n\ - b ._1399\n\ -._1398:\n\ - add r2, r2, #0x4\n\ - add r3, r3, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r5\n\ - blt ._1400 @cond_branch\n\ - b ._1534\n\ -._1403:\n\ - .align 2, 0\n\ -._1402:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ -._755:\n\ - mov r4, #0x0\n\ - ldr r0, ._1417\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1404 @cond_branch\n\ - b ._1534\n\ -._1404:\n\ - ldr r0, ._1417 + 4\n\ - mov r8, r0\n\ - ldr r1, ._1417 + 8\n\ - add r1, r1, #0x20\n\ - str r1, [sp, #0x1c]\n\ - mov r2, #0x0\n\ - str r2, [sp, #0x20]\n\ -._1434:\n\ - ldr r3, [sp, #0x1c]\n\ - ldrb r0, [r3]\n\ - cmp r0, #0x24\n\ - beq ._1406 @cond_branch\n\ - b ._1431\n\ -._1406:\n\ - ldr r0, ._1417 + 12\n\ - ldr r5, [sp, #0x20]\n\ - add r0, r5, r0\n\ - ldr r1, [r0]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0xd\n\ - and r1, r1, r0\n\ - str r5, [sp, #0x18]\n\ - cmp r1, #0\n\ - bne ._1408 @cond_branch\n\ - b ._1431\n\ -._1408:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankIdentity\n\ - mov r1, #0x1\n\ - add r5, r0, #0\n\ - eor r5, r5, r1\n\ - and r5, r5, r1\n\ - add r0, r5, #0\n\ - bl GetBankByIdentity\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - add r0, r5, #2\n\ - bl GetBankByIdentity\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - ldr r0, ._1417 + 16\n\ - ldrh r1, [r0]\n\ - mov r2, #0x1\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1410 @cond_branch\n\ - b ._1411\n\ -._1410:\n\ - mov r1, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r1\n\ - ldr r3, ._1417 + 8\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - mov r1, #0x58\n\ - add r0, r7, #0\n\ - mul r0, r0, r1\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - str r2, [sp, #0x24]\n\ - bl Random\n\ - ldr r2, [sp, #0x24]\n\ - add r1, r2, #0\n\ - and r1, r1, r0\n\ - lsl r1, r1, #0x1\n\ - orr r5, r5, r1\n\ - add r0, r5, #0\n\ - bl GetBankByIdentity\n\ - mov r2, r8\n\ - strb r0, [r2]\n\ - ldrb r0, [r2]\n\ - mov r3, #0x58\n\ - mul r0, r0, r3\n\ - ldr r5, ._1417 + 8\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - ldr r1, [sp, #0x1c]\n\ - strb r0, [r1]\n\ - ldrb r0, [r2]\n\ - mul r0, r0, r3\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - ldr r2, ._1417 + 20\n\ - strb r0, [r2]\n\ - b ._1416\n\ -._1418:\n\ - .align 2, 0\n\ -._1417:\n\ - .word gNoOfAllBanks\n\ - .word gActiveBank\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ - .word gBattleTypeFlags\n\ - .word gLastUsedAbility\n\ -._1415:\n\ - ldr r3, ._1422\n\ - mov r2, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r2\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - mov r5, r8\n\ - strb r6, [r5]\n\ - add r1, r4, #0\n\ - mul r1, r1, r2\n\ - add r1, r1, r3\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r1, r1, #0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - b ._1426\n\ -._1423:\n\ - .align 2, 0\n\ -._1422:\n\ - .word gBattleMons\n\ -._1420:\n\ - ldr r3, ._1427\n\ - mov r2, #0x58\n\ - add r0, r7, #0\n\ - mul r0, r0, r2\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - mov r5, r8\n\ - strb r7, [r5]\n\ - add r1, r4, #0\n\ - mul r1, r1, r2\n\ - add r1, r1, r3\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r1, r1, #0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - b ._1426\n\ -._1428:\n\ - .align 2, 0\n\ -._1427:\n\ - .word gBattleMons\n\ -._1411:\n\ - mov r2, r8\n\ - strb r6, [r2]\n\ - mov r3, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r3\n\ - ldr r5, ._1436\n\ - add r0, r0, r5\n\ - add r2, r0, #0\n\ - add r2, r2, #0x20\n\ - ldrb r1, [r2]\n\ - cmp r1, #0\n\ - beq ._1430 @cond_branch\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - ldr r0, [sp, #0x1c]\n\ - strb r1, [r0]\n\ - ldrb r0, [r2]\n\ -._1426:\n\ - ldr r1, ._1436 + 4\n\ - strb r0, [r1]\n\ -._1416:\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1430:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - beq ._1431 @cond_branch\n\ - b ._1432\n\ -._1431:\n\ - ldr r3, [sp, #0x1c]\n\ - add r3, r3, #0x58\n\ - str r3, [sp, #0x1c]\n\ - ldr r5, [sp, #0x20]\n\ - add r5, r5, #0x4\n\ - str r5, [sp, #0x20]\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1436 + 8\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - bge ._1433 @cond_branch\n\ - b ._1434\n\ -._1433:\n\ - b ._1534\n\ -._1437:\n\ - .align 2, 0\n\ -._1436:\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ - .word gNoOfAllBanks\n\ -._754:\n\ - mov r4, #0x0\n\ - ldr r0, ._1445\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt ._1438 @cond_branch\n\ - b ._1534\n\ -._1438:\n\ - ldr r0, ._1445 + 4\n\ - add r5, r1, #0\n\ - ldr r2, ._1445 + 8\n\ - add r3, r0, #0\n\ - add r3, r3, #0x20\n\ - mov r6, #0x80\n\ - lsl r6, r6, #0xc\n\ -._1443:\n\ - ldrb r1, [r3]\n\ - cmp r1, #0x16\n\ - bne ._1441 @cond_branch\n\ - ldr r0, [r2]\n\ - and r0, r0, r6\n\ - cmp r0, #0\n\ - beq ._1441 @cond_branch\n\ - b ._1442\n\ -._1441:\n\ - add r2, r2, #0x4\n\ - add r3, r3, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r5\n\ - blt ._1443 @cond_branch\n\ - b ._1534\n\ -._1446:\n\ - .align 2, 0\n\ -._1445:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ -._756:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1453\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1447 @cond_branch\n\ - b ._1534\n\ -._1447:\n\ - ldr r7, ._1453 + 4\n\ -._1451:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - add r3, r4, #1\n\ - cmp r0, r5\n\ - beq ._1450 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1450 @cond_branch\n\ - ldr r0, ._1453 + 8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1450:\n\ - add r4, r3, #0\n\ - ldr r0, ._1453\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1451 @cond_branch\n\ - b ._1534\n\ -._1454:\n\ - .align 2, 0\n\ -._1453:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._757:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1461\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1455 @cond_branch\n\ - b ._1534\n\ -._1455:\n\ - ldr r7, ._1461 + 4\n\ -._1459:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - add r3, r4, #1\n\ - cmp r0, r5\n\ - bne ._1458 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1458 @cond_branch\n\ - ldr r0, ._1461 + 8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1458:\n\ - add r4, r3, #0\n\ - ldr r0, ._1461\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1459 @cond_branch\n\ - b ._1534\n\ -._1462:\n\ - .align 2, 0\n\ -._1461:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._758:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xfd\n\ - beq ._1463 @cond_branch\n\ - cmp r0, #0xfe\n\ - beq ._1464 @cond_branch\n\ - mov r4, #0x0\n\ - ldr r0, ._1468\n\ - add r5, r0, #0\n\ - ldrb r2, [r5]\n\ - cmp r4, r2\n\ - blt ._1465 @cond_branch\n\ - b ._1534\n\ -._1465:\n\ - ldr r2, ._1468 + 4\n\ - b ._1485\n\ -._1469:\n\ - .align 2, 0\n\ -._1468:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._1463:\n\ - mov r4, #0x0\n\ - ldr r0, ._1475\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1470 @cond_branch\n\ - b ._1534\n\ -._1470:\n\ - ldr r5, ._1475 + 4\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0x9\n\ - add r1, r0, #0\n\ -._1473:\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r5\n\ - ldr r0, [r0]\n\ - and r0, r0, r2\n\ - add r3, r4, #1\n\ - cmp r0, #0\n\ - beq ._1472 @cond_branch\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1472:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1473 @cond_branch\n\ - b ._1534\n\ -._1476:\n\ - .align 2, 0\n\ -._1475:\n\ - .word gNoOfAllBanks\n\ - .word gStatuses3\n\ -._1464:\n\ - mov r4, #0x0\n\ - ldr r0, ._1482\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1477 @cond_branch\n\ - b ._1534\n\ -._1477:\n\ - ldr r5, ._1482 + 4\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xa\n\ - add r1, r0, #0\n\ -._1480:\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r5\n\ - ldr r0, [r0]\n\ - and r0, r0, r2\n\ - add r3, r4, #1\n\ - cmp r0, #0\n\ - beq ._1479 @cond_branch\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1479:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1480 @cond_branch\n\ - b ._1534\n\ -._1483:\n\ - .align 2, 0\n\ -._1482:\n\ - .word gNoOfAllBanks\n\ - .word gStatuses3\n\ -._1485:\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r2\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1484 @cond_branch\n\ - mov r0, r8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1484:\n\ - add r4, r3, #0\n\ - ldrb r1, [r5]\n\ - cmp r4, r1\n\ - blt ._1485 @cond_branch\n\ - b ._1534\n\ -._763:\n\ - mov r4, #0x0\n\ - ldr r0, ._1493\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1487 @cond_branch\n\ - b ._1534\n\ -._1487:\n\ - ldr r7, ._1493 + 4\n\ - add r2, r0, #0\n\ - mov r5, #0x58\n\ -._1491:\n\ - add r0, r4, #0\n\ - mul r0, r0, r5\n\ - add r1, r0, r7\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1490 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1490 @cond_branch\n\ - mov r0, r8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1490:\n\ - add r4, r3, #0\n\ - cmp r4, r2\n\ - blt ._1491 @cond_branch\n\ - b ._1534\n\ -._1494:\n\ - .align 2, 0\n\ -._1493:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._759:\n\ - mov r4, #0x0\n\ - ldr r0, ._1501\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1495 @cond_branch\n\ - b ._1534\n\ -._1495:\n\ - ldr r7, ._1501 + 4\n\ - add r1, r0, #0\n\ - mov r5, #0x58\n\ - ldr r2, ._1501 + 8\n\ -._1499:\n\ - add r0, r4, #0\n\ - mul r0, r0, r5\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1498 @cond_branch\n\ - cmp r4, sl\n\ - beq ._1498 @cond_branch\n\ - strb r6, [r2]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1498:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1499 @cond_branch\n\ - b ._1534\n\ -._1502:\n\ - .align 2, 0\n\ -._1501:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._760:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1509\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1503 @cond_branch\n\ - b ._1534\n\ -._1503:\n\ - ldr r7, ._1509 + 4\n\ -._1507:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, r5\n\ - beq ._1506 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1506 @cond_branch\n\ - ldr r0, ._1509 + 8\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1506:\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1509\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1507 @cond_branch\n\ - b ._1534\n\ -._1510:\n\ - .align 2, 0\n\ -._1509:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._761:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1517\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1511 @cond_branch\n\ - b ._1534\n\ -._1511:\n\ - ldr r7, ._1517 + 4\n\ -._1515:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, r5\n\ - bne ._1514 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1514 @cond_branch\n\ - ldr r0, ._1517 + 8\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1514:\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1517\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1515 @cond_branch\n\ - b ._1534\n\ -._1518:\n\ - .align 2, 0\n\ -._1517:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._853:\n\ - ldr r0, ._1520\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._1520 + 4\n\ - ldr r2, ._1520 + 8\n\ - add r1, r0, r2\n\ - strb r6, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r3, ._1520 + 12\n\ - add r0, r0, r3\n\ - strb r1, [r0]\n\ - b ._1534\n\ -._1521:\n\ - .align 2, 0\n\ -._1520:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._1374:\n\ - ldr r0, ._1523\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._1523 + 4\n\ - ldr r5, ._1523 + 8\n\ - add r1, r0, r5\n\ - mov r2, sl\n\ - strb r2, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r3, ._1523 + 12\n\ - add r0, r0, r3\n\ - strb r1, [r0]\n\ - b ._1540\n\ -._1524:\n\ - .align 2, 0\n\ -._1523:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._1399:\n\ - mov r5, r8\n\ - strb r1, [r5]\n\ - ldr r0, [r2]\n\ - ldr r1, ._1526\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - ldr r0, ._1526 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - b ._1525\n\ -._1527:\n\ - .align 2, 0\n\ -._1526:\n\ - .word 0xfff7ffff\n\ - .word gUnknown_081D978C\n\ -._1432:\n\ - ldr r0, ._1529\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, ._1529 + 4\n\ - ldr r2, [sp, #0x18]\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - ldr r2, ._1529 + 8\n\ - and r0, r0, r2\n\ - str r0, [r1]\n\ - ldr r0, ._1529 + 12\n\ - ldr r3, ._1529 + 16\n\ - add r0, r0, r3\n\ - strb r4, [r0]\n\ - ldr r1, ._1529 + 20\n\ - mov r4, #0xfd\n\ - strb r4, [r1]\n\ - mov r0, #0x4\n\ - strb r0, [r1, #0x1]\n\ - ldr r2, ._1529 + 24\n\ - ldrb r0, [r2]\n\ - strb r0, [r1, #0x2]\n\ - ldr r3, ._1529 + 28\n\ - ldrb r0, [r2]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r3\n\ - ldrh r0, [r0]\n\ - strb r0, [r1, #0x3]\n\ - mov r0, #0xff\n\ - strb r0, [r1, #0x4]\n\ - ldr r1, ._1529 + 32\n\ - strb r4, [r1]\n\ - mov r0, #0x9\n\ - strb r0, [r1, #0x1]\n\ - ldr r0, ._1529 + 36\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, #0x2]\n\ - mov r0, #0x1\n\ - neg r0, r0\n\ - strb r0, [r1, #0x3]\n\ - b ._1534\n\ -._1530:\n\ - .align 2, 0\n\ -._1529:\n\ - .word BattleScript_TraceActivates\n\ - .word gStatuses3\n\ - .word 0xffefffff\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word gBattleTextBuff1\n\ - .word gActiveBank\n\ - .word gBattlePartyID\n\ - .word gBattleTextBuff2\n\ - .word gLastUsedAbility\n\ -._1442:\n\ - mov r5, r8\n\ - strb r1, [r5]\n\ - ldr r0, [r2]\n\ - ldr r1, ._1532\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1532 + 4\n\ - ldr r0, ._1532 + 8\n\ - str r0, [r1]\n\ -._1525:\n\ - ldr r0, ._1532 + 12\n\ - ldr r1, ._1532 + 16\n\ - add r0, r0, r1\n\ - strb r4, [r0]\n\ -._1392:\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - b ._1534\n\ -._1533:\n\ - .align 2, 0\n\ -._1532:\n\ - .word 0xfff7ffff\n\ - .word gBattlescriptCurrInstr\n\ - .word gUnknown_081D9795\n\ - .word +0x2000000\n\ - .word 0x160dd\n\ -._762:\n\ - mov r4, #0x0\n\ - ldr r0, ._1541\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - bge ._1534 @cond_branch\n\ - ldr r0, ._1541 + 4\n\ - add r2, r1, #0\n\ - add r1, r0, #0\n\ - add r1, r1, #0x20\n\ - ldr r3, ._1541 + 8\n\ -._1537:\n\ - ldrb r0, [r1]\n\ - cmp r0, r6\n\ - bne ._1536 @cond_branch\n\ - cmp r4, sl\n\ - beq ._1536 @cond_branch\n\ - strb r6, [r3]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1536:\n\ - add r1, r1, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r2\n\ - blt ._1537 @cond_branch\n\ -._1534:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - beq ._1540 @cond_branch\n\ -._916:\n\ - ldr r3, [sp, #0x4]\n\ - cmp r3, #0xb\n\ - bhi ._1540 @cond_branch\n\ - ldr r1, ._1541 + 8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xff\n\ - beq ._1540 @cond_branch\n\ - add r1, r0, #0\n\ - mov r0, sl\n\ - bl RecordAbilityBattle\n\ -._1540:\n\ - mov r0, r9\n\ - add sp, sp, #0x28\n\ - pop {r3, r4, r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov sl, r5\n\ - pop {r4, r5, r6, r7}\n\ - pop {r1}\n\ - bx r1\n\ -._1542:\n\ - .align 2, 0\n\ -._1541:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility"); -} -#else u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; @@ -5796,17 +1738,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else moveType = gBattleMoves[move].type; - //_080184AC switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - //_08018518 if (gBankAttacker >= gNoOfAllBanks) gBankAttacker = bank; switch (gLastUsedAbility) { case 0xFF: //weather from overworld - //_08018586 switch (GetCurrentWeather()) { case WEATHER_RAIN_LIGHT: @@ -5846,7 +1785,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DRIZZLE: - //_08018680 if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) { gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); @@ -5856,7 +1794,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SAND_STREAM: - //_080186B8 if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); @@ -5866,7 +1803,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DROUGHT: - //_080186F0 if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); @@ -5876,7 +1812,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_INTIMIDATE: - //_08018728 if (!(gSpecialStatuses[bank].intimidatedPoke)) { gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; @@ -5884,7 +1819,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FORECAST: - //_0801875C effect = CastformDataTypeChange(bank); if (effect != 0) { @@ -5894,7 +1828,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_TRACE: - //_080187A0 if (!(gSpecialStatuses[bank].traced)) { gStatuses3[bank] |= STATUS3_TRACE; @@ -5903,7 +1836,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_CLOUD_NINE: case ABILITY_AIR_LOCK: - //_080187DC { // that's a weird choice for a variable, why not use i or bank? for (target1 = 0; target1 < gNoOfAllBanks; target1++) @@ -5922,7 +1854,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ENDTURN: // 1 - //_08018814 if (gBattleMons[bank].hp != 0) { gBankAttacker = bank; @@ -5982,7 +1913,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_MOVES_BLOCK: // 2 - //_08018A40 if (gLastUsedAbility == ABILITY_SOUNDPROOF) { for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++) @@ -6000,7 +1930,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ABSORBING: // 3 - //_08018AD8 if (move) { switch (gLastUsedAbility) @@ -6070,11 +1999,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CONTACT: // 4 - //_08018CF0 switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - //_08018DCC if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 @@ -6095,7 +2022,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_ROUGH_SKIN: - //_08018E94 if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg @@ -6111,100 +2037,195 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_EFFECT_SPORE: - //_08018F54 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 10) == 0) - { - do - { - gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; - } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); - if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) - gBattleCommunication[MOVE_EFFECT_BYTE] += 2; - gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 10) == 0) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_POISON_POINT: - //_0801904C - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_STATIC: - //_08019128 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_FLAME_BODY: - //_08019204 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_CUTE_CHARM: - //_080192E0 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 - && (Random() % 3) == 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF - && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) - { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && (Random() % 3) == 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + } break; } break; case ABILITYEFFECT_IMMUNITY: // 5 - //_08019448 { for (bank = 0; bank < gNoOfAllBanks; bank++) { @@ -6288,7 +2309,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_FORECAST: // 6 - //_080197B4 { for (bank = 0; bank < gNoOfAllBanks; bank++) { @@ -6307,7 +2327,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_SYNCHRONIZE: // 7 - //_08019804 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); @@ -6323,7 +2342,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 - //_08019880 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); @@ -6339,7 +2357,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - //_080198FC for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) @@ -6354,7 +2371,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_TRACE: // 11 - //_08019940 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) @@ -6368,7 +2384,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - //_080199AE gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6376,7 +2391,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) { - //_08019A34 gActiveBank = target1; gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6384,7 +2398,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - //_08019A78 gActiveBank = target2; gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6392,7 +2405,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } } else - //_08019ABC { gActiveBank = target1; if (gBattleMons[target1].ability && gBattleMons[target1].hp) @@ -6424,7 +2436,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - //_08019B1C for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) @@ -6440,7 +2451,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 - //_08019B60 side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6452,7 +2462,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 - //_08019BBC side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6464,7 +2473,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_FIELD_SPORT: // 14 - //_08019C18 switch (gLastUsedAbility) { case 0xFD: @@ -6494,7 +2502,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - //_08019CD4 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) @@ -6505,7 +2512,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - //_08019D18 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && i != bank) @@ -6516,7 +2522,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16 - //_08019D5C side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6528,7 +2533,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 - //_08019DB8 side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6540,7 +2544,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - //_08019F44 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && i != bank) @@ -6551,14 +2554,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; } - //_08019F76 if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) RecordAbilityBattle(bank, gLastUsedAbility); } return effect; } -#endif void BattleScriptExecute(const u8* BS_ptr) { -- cgit v1.2.3 From 94c9998804e9da20edf5e7285603c3e03b07e3c5 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 18:58:29 -0600 Subject: integrate debug IsMonDisobedient --- src/battle/battle_util.c | 440 ++--------------------------------------------- 1 file changed, 18 insertions(+), 422 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index faa395a97..194a002d3 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -3439,417 +3439,6 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target return targetBank; } -#if DEBUG -__attribute__((naked)) -u8 IsMonDisobedient(void) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6, r7}\n\ - add sp, sp, #0xfffffff0\n\ - ldr r0, ._1785\n\ - ldrh r1, [r0]\n\ - mov r0, #0x2\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1791 @cond_branch\n\ - ldr r4, ._1785 + 4\n\ - ldrb r0, [r4]\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0x1\n\ - beq ._1791 @cond_branch\n\ - ldr r2, ._1785 + 8\n\ - ldrb r1, [r4]\n\ - mov r0, #0x58\n\ - mul r1, r1, r0\n\ - add r0, r2, #0\n\ - add r0, r0, #0x54\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - add r2, r2, #0x3c\n\ - add r1, r1, r2\n\ - bl IsOtherTrainer\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._1791 @cond_branch\n\ - ldr r0, ._1785 + 12\n\ - ldrb r1, [r0]\n\ - mov r0, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1783 @cond_branch\n\ - mov r0, #0xa\n\ - b ._1784\n\ -._1786:\n\ - .align 2, 0\n\ -._1785:\n\ - .word gBattleTypeFlags\n\ - .word gBankAttacker\n\ - .word gBattleMons\n\ - .word gUnknown_02023A14_50\n\ -._1783:\n\ - ldr r0, ._1794\n\ - bl FlagGet\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._1791 @cond_branch\n\ - mov r1, #0xa\n\ - mov r8, r1\n\ - ldr r0, ._1794 + 4\n\ - bl FlagGet\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._1788 @cond_branch\n\ - mov r2, #0x1e\n\ - mov r8, r2\n\ -._1788:\n\ - ldr r0, ._1794 + 8\n\ - bl FlagGet\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._1789 @cond_branch\n\ - mov r4, #0x32\n\ - mov r8, r4\n\ -._1789:\n\ - ldr r0, ._1794 + 12\n\ - bl FlagGet\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._1790 @cond_branch\n\ - mov r0, #0x46\n\ -._1784:\n\ - mov r8, r0\n\ -._1790:\n\ - ldr r5, ._1794 + 16\n\ - ldr r7, ._1794 + 20\n\ - ldrb r0, [r7]\n\ - mov r6, #0x58\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - add r0, r0, #0x2a\n\ - ldrb r0, [r0]\n\ - cmp r0, r8\n\ - bls ._1791 @cond_branch\n\ - bl Random\n\ - mov r1, #0xff\n\ - and r1, r1, r0\n\ - ldrb r0, [r7]\n\ - add r2, r0, #0\n\ - mul r2, r2, r6\n\ - add r0, r2, r5\n\ - add r0, r0, #0x2a\n\ - ldrb r0, [r0]\n\ - add r0, r0, r8\n\ - mul r0, r0, r1\n\ - asr r4, r0, #0x8\n\ - cmp r4, r8\n\ - bge ._1792 @cond_branch\n\ -._1791:\n\ - mov r0, #0x0\n\ - b ._1823\n\ -._1795:\n\ - .align 2, 0\n\ -._1794:\n\ - .word 0x80e\n\ - .word 0x808\n\ - .word 0x80a\n\ - .word 0x80c\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ -._1792:\n\ - ldr r3, ._1801\n\ - ldrh r0, [r3]\n\ - cmp r0, #0x63\n\ - bne ._1796 @cond_branch\n\ - add r0, r5, #0\n\ - add r0, r0, #0x50\n\ - add r0, r2, r0\n\ - ldr r1, [r0]\n\ - ldr r2, ._1801 + 4\n\ - and r1, r1, r2\n\ - str r1, [r0]\n\ -._1796:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r1, r5, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1799 @cond_branch\n\ - ldrh r0, [r3]\n\ - cmp r0, #0xad\n\ - beq ._1798 @cond_branch\n\ - cmp r0, #0xd6\n\ - bne ._1799 @cond_branch\n\ -._1798:\n\ - ldr r1, ._1801 + 8\n\ - ldr r0, ._1801 + 12\n\ - b ._1819\n\ -._1802:\n\ - .align 2, 0\n\ -._1801:\n\ - .word gCurrentMove\n\ - .word 0xff7fffff\n\ - .word gBattlescriptCurrInstr\n\ - .word gUnknown_081D995F\n\ -._1799:\n\ - bl Random\n\ - mov r5, #0xff\n\ - add r1, r5, #0\n\ - and r1, r1, r0\n\ - ldr r6, ._1808\n\ - ldr r2, ._1808 + 4\n\ - mov r9, r2\n\ - ldrb r3, [r2]\n\ - mov r7, #0x58\n\ - add r0, r3, #0\n\ - mul r0, r0, r7\n\ - add r0, r0, r6\n\ - add r0, r0, #0x2a\n\ - ldrb r2, [r0]\n\ - mov r4, r8\n\ - add r0, r2, r4\n\ - mul r0, r0, r1\n\ - asr r4, r0, #0x8\n\ - cmp r4, r8\n\ - bge ._1803 @cond_branch\n\ - ldr r7, ._1808 + 8\n\ - ldr r5, ._1808 + 12\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r7\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - mov r2, #0xff\n\ - bl CheckMoveLimitations\n\ - lsl r0, r0, #0x18\n\ - lsr r4, r0, #0x18\n\ - cmp r4, #0xf\n\ - bne ._1804 @cond_branch\n\ - b ._1805\n\ -._1804:\n\ - add r6, r5, #0\n\ - ldr r0, ._1808 + 16\n\ - mov r9, r0\n\ - mov r1, #0x3\n\ - mov r8, r1\n\ -._1806:\n\ - bl Random\n\ - mov r2, r8\n\ - and r0, r0, r2\n\ - mov r1, r9\n\ - strb r0, [r1]\n\ - strb r0, [r6]\n\ - ldrb r0, [r6]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r7\n\ - ldr r5, [r0]\n\ - and r5, r5, r4\n\ - cmp r5, #0\n\ - bne ._1806 @cond_branch\n\ - ldr r4, ._1808 + 20\n\ - ldr r3, ._1808\n\ - ldr r0, ._1808 + 12\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x1\n\ - ldr r1, ._1808 + 4\n\ - ldrb r2, [r1]\n\ - mov r1, #0x58\n\ - mul r1, r1, r2\n\ - add r0, r0, r1\n\ - add r3, r3, #0xc\n\ - add r0, r0, r3\n\ - ldrh r0, [r0]\n\ - strh r0, [r4]\n\ - ldr r0, ._1808 + 24\n\ - strb r5, [r0, #0x3]\n\ - ldr r0, ._1808 + 28\n\ - mov r1, #0x0\n\ - strh r5, [r0]\n\ - ldr r0, ._1808 + 32\n\ - ldr r2, ._1808 + 36\n\ - add r0, r0, r2\n\ - strb r1, [r0]\n\ - ldr r1, ._1808 + 40\n\ - ldr r0, ._1808 + 44\n\ - str r0, [r1]\n\ - ldrh r0, [r4]\n\ - mov r1, #0x0\n\ - bl GetMoveTarget\n\ - ldr r1, ._1808 + 48\n\ - strb r0, [r1]\n\ - ldr r2, ._1808 + 52\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0xe\n\ - b ._1807\n\ -._1809:\n\ - .align 2, 0\n\ -._1808:\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gBitTable\n\ - .word gCurrMovePos\n\ - .word gUnknown_02024BE5\n\ - .word gRandomMove\n\ - .word gBattleCommunication\n\ - .word gDynamicBasePower\n\ - .word +0x2000000\n\ - .word 0x1601c\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_IgnoresAndUsesRandomMove\n\ - .word gBankTarget\n\ - .word gHitMarker\n\ -._1803:\n\ - mov r4, r8\n\ - sub r0, r2, r4\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r8, r0\n\ - bl Random\n\ - add r4, r5, #0\n\ - and r4, r4, r0\n\ - cmp r4, r8\n\ - bge ._1818 @cond_branch\n\ - mov r1, r9\n\ - ldrb r0, [r1]\n\ - add r1, r0, #0\n\ - mul r1, r1, r7\n\ - add r0, r6, #0\n\ - add r0, r0, #0x4c\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - and r0, r0, r5\n\ - cmp r0, #0\n\ - bne ._1818 @cond_branch\n\ - add r0, r1, r6\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x48\n\ - beq ._1818 @cond_branch\n\ - cmp r0, #0xf\n\ - beq ._1818 @cond_branch\n\ - mov r2, #0x0\n\ - ldr r0, ._1820\n\ - ldrb r3, [r0]\n\ - add r7, r0, #0\n\ - cmp r2, r3\n\ - bge ._1816 @cond_branch\n\ - ldr r0, [r6, #0x50]\n\ - mov r1, #0x70\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1816 @cond_branch\n\ - add r1, r6, #0\n\ - add r1, r1, #0x50\n\ - mov r5, #0x70\n\ -._1817:\n\ - add r1, r1, #0x58\n\ - add r2, r2, #0x1\n\ - cmp r2, r3\n\ - bge ._1816 @cond_branch\n\ - ldr r0, [r1]\n\ - and r0, r0, r5\n\ - cmp r0, #0\n\ - beq ._1817 @cond_branch\n\ -._1816:\n\ - ldrb r7, [r7]\n\ - cmp r2, r7\n\ - bne ._1818 @cond_branch\n\ - ldr r1, ._1820 + 4\n\ - ldr r0, ._1820 + 8\n\ - b ._1819\n\ -._1821:\n\ - .align 2, 0\n\ -._1820:\n\ - .word gNoOfAllBanks\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_IgnoresAndFallsAsleep\n\ -._1818:\n\ - mov r2, r8\n\ - sub r4, r4, r2\n\ - cmp r4, r8\n\ - blt ._1822 @cond_branch\n\ -._1805:\n\ - bl Random\n\ - ldr r2, ._1824\n\ - mov r1, #0x3\n\ - and r1, r1, r0\n\ - strb r1, [r2, #0x5]\n\ - ldr r1, ._1824 + 4\n\ - ldr r0, ._1824 + 8\n\ -._1819:\n\ - str r0, [r1]\n\ - mov r0, #0x1\n\ - b ._1823\n\ -._1825:\n\ - .align 2, 0\n\ -._1824:\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveUsedLoafingAround\n\ -._1822:\n\ - ldr r4, ._1826\n\ - ldrb r1, [r4]\n\ - mov r0, #0x58\n\ - mul r1, r1, r0\n\ - ldr r0, ._1826 + 4\n\ - add r1, r1, r0\n\ - mov r0, #0x28\n\ - str r0, [sp]\n\ - mov r0, #0x0\n\ - str r0, [sp, #0x4]\n\ - ldrb r0, [r4]\n\ - str r0, [sp, #0x8]\n\ - ldrb r0, [r4]\n\ - str r0, [sp, #0xc]\n\ - add r0, r1, #0\n\ - mov r2, #0x1\n\ - mov r3, #0x0\n\ - bl CalculateBaseDamage\n\ - ldr r1, ._1826 + 8\n\ - str r0, [r1]\n\ - ldr r1, ._1826 + 12\n\ - ldrb r0, [r4]\n\ - strb r0, [r1]\n\ - ldr r1, ._1826 + 16\n\ - ldr r0, ._1826 + 20\n\ - str r0, [r1]\n\ - ldr r2, ._1826 + 24\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0xc\n\ -._1807:\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - mov r0, #0x2\n\ -._1823:\n\ - add sp, sp, #0x10\n\ - pop {r3, r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4, r5, r6, r7}\n\ - pop {r1}\n\ - bx r1\n\ -._1827:\n\ - .align 2, 0\n\ -._1826:\n\ - .word gBankAttacker\n\ - .word gBattleMons\n\ - .word gBattleMoveDamage\n\ - .word gBankTarget\n\ - .word gBattlescriptCurrInstr\n\ - .word gUnknown_081D99A0\n\ - .word gHitMarker"); -} -#else u8 IsMonDisobedient(void) { u8 obedienceLevel; @@ -3858,17 +3447,25 @@ u8 IsMonDisobedient(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK || GetBankSide(gBankAttacker) == 1 - || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName) - || FlagGet(FLAG_BADGE08_GET)) - return 0; + || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)) + return 0; - obedienceLevel = 10; - if (FlagGet(FLAG_BADGE02_GET)) - obedienceLevel = 30; - if (FlagGet(FLAG_BADGE04_GET)) - obedienceLevel = 50; - if (FlagGet(FLAG_BADGE06_GET)) - obedienceLevel = 70; + if (DEBUG && (gUnknown_02023A14_50 & 0x40)) + { + obedienceLevel = 10; + } + else + { + if (FlagGet(FLAG_BADGE08_GET)) + return 0; + obedienceLevel = 10; + if (FlagGet(FLAG_BADGE02_GET)) + obedienceLevel = 30; + if (FlagGet(FLAG_BADGE04_GET)) + obedienceLevel = 50; + if (FlagGet(FLAG_BADGE06_GET)) + obedienceLevel = 70; + } if (gBattleMons[gBankAttacker].level <= obedienceLevel) return 0; @@ -3950,4 +3547,3 @@ u8 IsMonDisobedient(void) } } } -#endif -- cgit v1.2.3 From e50f5e906776a799ec69418168f032880e16384c Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 25 Jan 2018 19:36:54 -0600 Subject: more debug integrations --- src/battle/battle_controller_opponent.c | 262 +---------- src/battle/battle_controller_player.c | 764 ++------------------------------ src/battle/battle_controller_safari.c | 243 +--------- src/battle/battle_interface.c | 668 +--------------------------- 4 files changed, 88 insertions(+), 1849 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index d2045b6c4..5382738f7 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -30,6 +30,7 @@ struct MovePpInfo u8 ppBonuses; }; +extern u8 gUnknown_02023A14_50; extern u8 gActiveBank; extern u8 gBattleBufferA[][0x200]; extern u16 gBattlePartyID[]; @@ -1209,255 +1210,27 @@ void sub_8034B74(void) } } -#if DEBUG -__attribute__((naked)) -void OpponentHandleTrainerThrow(void) -{ - asm("\ - push {r4, r5, r6, lr}\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6}\n\ - ldr r0, ._480\n\ - ldrb r1, [r0]\n\ - mov r0, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._478 @cond_branch\n\ - ldr r0, ._480 + 4\n\ - ldr r1, ._480 + 8\n\ - add r0, r0, r1\n\ - ldrb r0, [r0]\n\ - b ._491\n\ -._481:\n\ - .align 2, 0\n\ -._480:\n\ - .word gUnknown_02023A14_50\n\ - .word +0x2000000\n\ - .word 0x160a3\n\ -._478:\n\ - ldr r3, ._484\n\ - ldrh r1, [r3]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x3\n\ - cmp r1, r0\n\ - bne ._482 @cond_branch\n\ - bl GetSecretBaseTrainerPicIndex\n\ - b ._487\n\ -._485:\n\ - .align 2, 0\n\ -._484:\n\ - .word gTrainerBattleOpponent\n\ -._482:\n\ - ldr r0, ._488\n\ - ldrh r1, [r0]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._486 @cond_branch\n\ - bl get_trainer_class_pic_index\n\ - b ._487\n\ -._489:\n\ - .align 2, 0\n\ -._488:\n\ - .word gBattleTypeFlags\n\ -._486:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._490 @cond_branch\n\ - bl GetEReaderTrainerPicIndex\n\ -._487:\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - b ._491\n\ -._490:\n\ - ldr r2, ._492\n\ - ldrh r1, [r3]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r2\n\ - ldrb r0, [r0, #0x3]\n\ -._491:\n\ - mov r9, r0\n\ - ldr r2, ._492 + 4\n\ - mov r8, r2\n\ - ldrb r1, [r2]\n\ - bl sub_8031A6C\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ - add r1, r0, #0\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x18\n\ - mov r0, r9\n\ - bl GetMonSpriteTemplate_803C5A0\n\ - ldr r5, ._492 + 8\n\ - ldr r1, ._492 + 12\n\ - mov r2, r9\n\ - lsl r0, r2, #0x2\n\ - add r0, r0, r1\n\ - ldrb r0, [r0]\n\ - mov r4, #0x8\n\ - sub r4, r4, r0\n\ - lsl r4, r4, #0x12\n\ - mov r0, #0xa0\n\ - lsl r0, r0, #0xe\n\ - add r4, r4, r0\n\ - asr r4, r4, #0x10\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - bl sub_8079E90\n\ - add r3, r0, #0\n\ - lsl r3, r3, #0x18\n\ - lsr r3, r3, #0x18\n\ - add r0, r5, #0\n\ - mov r1, #0xb0\n\ - add r2, r4, #0\n\ - bl CreateSprite\n\ - ldr r5, ._492 + 16\n\ - mov r2, r8\n\ - ldrb r1, [r2]\n\ - add r1, r1, r5\n\ - strb r0, [r1]\n\ - ldr r4, ._492 + 20\n\ - ldrb r0, [r2]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x4\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r4\n\ - ldr r1, ._492 + 24\n\ - strh r1, [r0, #0x24]\n\ - ldrb r0, [r2]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x4\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r4\n\ - mov r1, #0x2\n\ - strh r1, [r0, #0x2e]\n\ - ldr r0, ._492 + 28\n\ - mov r1, r9\n\ - lsl r6, r1, #0x3\n\ - add r0, r6, r0\n\ - ldrh r0, [r0, #0x4]\n\ - bl IndexOfSpritePaletteTag\n\ - mov r2, r8\n\ - ldrb r1, [r2]\n\ - add r1, r1, r5\n\ - ldrb r1, [r1]\n\ - lsl r2, r1, #0x4\n\ - add r2, r2, r1\n\ - lsl r2, r2, #0x2\n\ - add r2, r2, r4\n\ - lsl r0, r0, #0x4\n\ - ldrb r3, [r2, #0x5]\n\ - mov r1, #0xf\n\ - and r1, r1, r3\n\ - orr r1, r1, r0\n\ - strb r1, [r2, #0x5]\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - add r0, r0, r5\n\ - ldrb r0, [r0]\n\ - lsl r1, r0, #0x4\n\ - add r1, r1, r0\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r4\n\ - ldrh r0, [r1, #0x4]\n\ - lsl r0, r0, #0x16\n\ - lsr r0, r0, #0x16\n\ - strh r0, [r1, #0x38]\n\ - ldr r0, ._492 + 32\n\ - add r6, r6, r0\n\ - ldrh r0, [r6, #0x6]\n\ - bl GetSpriteTileStartByTag\n\ - mov r2, r8\n\ - ldrb r1, [r2]\n\ - add r1, r1, r5\n\ - ldrb r2, [r1]\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r2\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r4\n\ - ldr r2, ._492 + 36\n\ - and r2, r2, r0\n\ - ldrh r3, [r1, #0x4]\n\ - ldr r0, ._492 + 40\n\ - and r0, r0, r3\n\ - orr r0, r0, r2\n\ - strh r0, [r1, #0x4]\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x4\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r4\n\ - mov r2, r9\n\ - strh r2, [r0, #0x6]\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x4\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r4, r4, #0x1c\n\ - add r0, r0, r4\n\ - ldr r1, ._492 + 44\n\ - str r1, [r0]\n\ - ldr r1, ._492 + 48\n\ - mov r2, r8\n\ - ldrb r0, [r2]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, ._492 + 52\n\ - str r1, [r0]\n\ - pop {r3, r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4, r5, r6}\n\ - pop {r0}\n\ - bx r0\n\ -._493:\n\ - .align 2, 0\n\ -._492:\n\ - .word gTrainers\n\ - .word gActiveBank\n\ - .word gUnknown_02024E8C\n\ - .word gTrainerFrontPicCoords\n\ - .word gObjectBankIDs\n\ - .word gSprites\n\ - .word 0xff10\n\ - .word gTrainerFrontPicPaletteTable\n\ - .word gTrainerFrontPicTable\n\ - .word 0x3ff\n\ - .word 0xfffffc00\n\ - .word sub_80313A0+1\n\ - .word gBattleBankFunc\n\ - .word sub_8032B4C+1"); -} -#else void OpponentHandleTrainerThrow(void) { u32 trainerPicIndex; - if (gTrainerBattleOpponent == 0x400) - trainerPicIndex = GetSecretBaseTrainerPicIndex(); - else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - trainerPicIndex = get_trainer_class_pic_index(); - else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) - trainerPicIndex = GetEReaderTrainerPicIndex(); +#if DEBUG + if (gUnknown_02023A14_50 & 0x10) + { + trainerPicIndex = gSharedMem[0x160A3]; + } else - trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; +#endif + { + if (gTrainerBattleOpponent == 0x400) + trainerPicIndex = GetSecretBaseTrainerPicIndex(); + else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + trainerPicIndex = get_trainer_class_pic_index(); + else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) + trainerPicIndex = GetEReaderTrainerPicIndex(); + else + trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; + } sub_8031A6C(trainerPicIndex, gActiveBank); GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBank)); @@ -1475,7 +1248,6 @@ void OpponentHandleTrainerThrow(void) gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0; gBattleBankFunc[gActiveBank] = sub_8032B4C; } -#endif void OpponentHandleTrainerSlide(void) { diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 8875d5148..d4b4da6f2 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -42,6 +42,8 @@ extern struct Window gUnknown_03004210; extern void (*gBattleBankFunc[])(void); +extern u32 gOamMatrixAllocBitmap; +extern u8 gUnknown_020297ED; extern u8 gActiveBank; extern u8 gActionSelectionCursor[]; extern u8 gDisplayedStringBattle[]; @@ -617,728 +619,14 @@ struct ChooseMoveStruct const u8 gUnknown_081FAE80[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}"); -#if DEBUG -__attribute__((naked)) -void sub_802C68C(void) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, sl\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6, r7}\n\ - add sp, sp, #0xfffffff8\n\ - mov r0, #0x0\n\ - mov r8, r0\n\ - mov r7, #0x0\n\ - ldr r1, ._131\n\ - ldrb r2, [r1]\n\ - lsl r1, r2, #0x9\n\ - ldr r0, ._131 + 4\n\ - add r6, r1, r0\n\ - ldr r0, ._131 + 8\n\ - ldrh r1, [r0, #0x2e]\n\ - mov r5, #0x1\n\ - add r0, r5, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._126 @cond_branch\n\ - b ._127\n\ -._126:\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldr r1, ._131 + 12\n\ - ldr r2, ._131\n\ - ldrb r0, [r2]\n\ - add r0, r0, r1\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x1\n\ - add r1, r6, r0\n\ - ldrh r0, [r1]\n\ - cmp r0, #0xae\n\ - bne ._128 @cond_branch\n\ - ldrb r0, [r6, #0x12]\n\ - mov r4, #0x0\n\ - cmp r0, #0x7\n\ - beq ._130 @cond_branch\n\ - ldrb r1, [r6, #0x13]\n\ - mov r0, #0x7\n\ - eor r1, r1, r0\n\ - neg r0, r1\n\ - orr r0, r0, r1\n\ - asr r4, r0, #0x1f\n\ - mov r0, #0x10\n\ - and r4, r4, r0\n\ - b ._130\n\ -._132:\n\ - .align 2, 0\n\ -._131:\n\ - .word gActiveBank\n\ - .word gBattleBufferA+4\n\ - .word gMain\n\ - .word gMoveSelectionCursor\n\ -._128:\n\ - ldr r2, ._135\n\ - ldrh r1, [r1]\n\ - lsl r0, r1, #0x1\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r2\n\ - ldrb r4, [r0, #0x6]\n\ -._130:\n\ - mov r0, #0x10\n\ - and r0, r0, r4\n\ - cmp r0, #0\n\ - beq ._133 @cond_branch\n\ - ldr r0, ._135 + 4\n\ - ldr r1, ._135 + 8\n\ - ldrb r1, [r1]\n\ - strb r1, [r0]\n\ - b ._134\n\ -._136:\n\ - .align 2, 0\n\ -._135:\n\ - .word gBattleMoves\n\ - .word gUnknown_03004344\n\ - .word gActiveBank\n\ -._133:\n\ - ldr r0, ._141\n\ - ldrb r0, [r0]\n\ - bl GetBankIdentity\n\ - add r1, r0, #0\n\ - mov r2, #0x1\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - eor r0, r0, r2\n\ - bl GetBankByIdentity\n\ - ldr r1, ._141 + 4\n\ - strb r0, [r1]\n\ -._134:\n\ - ldr r3, ._141 + 8\n\ - ldr r5, ._141\n\ - ldrb r2, [r5]\n\ - lsl r1, r2, #0x9\n\ - add r0, r3, #1\n\ - add r0, r1, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - bne ._137 @cond_branch\n\ - mov r0, #0x2\n\ - and r0, r0, r4\n\ - cmp r0, #0\n\ - beq ._146 @cond_branch\n\ - add r0, r3, #2\n\ - add r0, r1, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - bne ._146 @cond_branch\n\ - mov r0, #0x1\n\ - add r8, r8, r0\n\ - b ._146\n\ -._142:\n\ - .align 2, 0\n\ -._141:\n\ - .word gActiveBank\n\ - .word gUnknown_03004344\n\ - .word gBattleBufferA\n\ -._137:\n\ - mov r0, #0x7d\n\ - and r0, r0, r4\n\ - cmp r0, #0\n\ - bne ._143 @cond_branch\n\ - mov r1, #0x1\n\ - add r8, r8, r1\n\ -._143:\n\ - ldr r0, ._149\n\ - add r0, r2, r0\n\ - add r1, r6, #0\n\ - add r1, r1, #0x8\n\ - ldrb r0, [r0]\n\ - add r1, r1, r0\n\ - ldrb r0, [r1]\n\ - cmp r0, #0\n\ - beq ._144 @cond_branch\n\ - mov r0, #0x12\n\ - and r0, r0, r4\n\ - cmp r0, #0\n\ - bne ._146 @cond_branch\n\ - mov r0, #0x0\n\ - bl CountAliveMons\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0x1\n\ - bhi ._146 @cond_branch\n\ - ldrb r0, [r5]\n\ - bl sub_803C434\n\ - ldr r1, ._149 + 4\n\ - strb r0, [r1]\n\ - mov r2, #0x0\n\ - mov r8, r2\n\ -._146:\n\ - mov r0, r8\n\ - cmp r0, #0\n\ - bne ._147 @cond_branch\n\ -._144:\n\ - bl DestroyMenuCursor\n\ - ldr r1, ._149\n\ - ldr r0, ._149 + 8\n\ - ldrb r0, [r0]\n\ - add r0, r0, r1\n\ - ldrb r2, [r0]\n\ - ldr r0, ._149 + 4\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x8\n\ - orr r2, r2, r0\n\ - b ._148\n\ -._150:\n\ - .align 2, 0\n\ -._149:\n\ - .word gMoveSelectionCursor\n\ - .word gUnknown_03004344\n\ - .word gActiveBank\n\ -._147:\n\ - ldr r1, ._153\n\ - ldr r2, ._153 + 4\n\ - ldrb r0, [r2]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, ._153 + 8\n\ - str r1, [r0]\n\ - mov r0, #0x12\n\ - and r4, r4, r0\n\ - cmp r4, #0\n\ - beq ._151 @cond_branch\n\ - ldr r1, ._153 + 12\n\ - ldrb r0, [r2]\n\ - b ._152\n\ -._154:\n\ - .align 2, 0\n\ -._153:\n\ - .word gBattleBankFunc\n\ - .word gActiveBank\n\ - .word sub_802C2EC+1\n\ - .word gUnknown_03004344\n\ -._151:\n\ - mov r0, #0x1\n\ - bl GetBankByIdentity\n\ - ldr r1, ._157\n\ - ldrb r1, [r1]\n\ - ldr r2, ._157 + 4\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x16\n\ - add r0, r0, r2\n\ - ldr r0, [r0]\n\ - and r1, r1, r0\n\ - cmp r1, #0\n\ - beq ._155 @cond_branch\n\ - mov r0, #0x3\n\ - b ._156\n\ -._158:\n\ - .align 2, 0\n\ -._157:\n\ - .word gAbsentBankFlags\n\ - .word gBitTable\n\ -._155:\n\ - mov r0, #0x1\n\ -._156:\n\ - bl GetBankByIdentity\n\ - ldr r1, ._160\n\ -._152:\n\ - strb r0, [r1]\n\ - ldr r2, ._160 + 4\n\ - ldr r1, ._160 + 8\n\ - ldr r0, ._160\n\ - ldrb r0, [r0]\n\ - add r0, r0, r1\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x4\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r2, r2, #0x1c\n\ - add r0, r0, r2\n\ - ldr r1, ._160 + 12\n\ - b ._203\n\ -._161:\n\ - .align 2, 0\n\ -._160:\n\ - .word gUnknown_03004344\n\ - .word gSprites\n\ - .word gObjectBankIDs\n\ - .word sub_8010520+1\n\ -._127:\n\ - mov r6, #0x2\n\ - add r0, r6, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._162 @cond_branch\n\ - bl DestroyMenuCursor\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldr r0, ._164\n\ - strh r7, [r0]\n\ - ldr r1, ._164 + 4\n\ - mov r2, #0xa0\n\ - lsl r2, r2, #0x1\n\ - add r0, r2, #0\n\ - strh r0, [r1]\n\ - ldr r2, ._164 + 8\n\ -._148:\n\ - mov r0, #0x1\n\ - mov r1, #0xa\n\ - bl Emitcmd33\n\ - bl PlayerBufferExecCompleted\n\ - b ._209\n\ -._165:\n\ - .align 2, 0\n\ -._164:\n\ - .word gBattle_BG0_X\n\ - .word gBattle_BG0_Y\n\ - .word 0xffff\n\ -._162:\n\ - mov r0, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._166 @cond_branch\n\ - ldr r4, ._170\n\ - add r2, r2, r4\n\ - ldrb r1, [r2]\n\ - add r0, r5, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._167 @cond_branch\n\ - b ._209\n\ -._167:\n\ - ldrb r0, [r2]\n\ - bl nullsub_7\n\ - ldr r0, ._170 + 4\n\ - ldrb r1, [r0]\n\ - add r1, r1, r4\n\ - ldrb r0, [r1]\n\ - mov r2, #0x1\n\ - eor r0, r0, r2\n\ - b ._183\n\ -._171:\n\ - .align 2, 0\n\ -._170:\n\ - .word gMoveSelectionCursor\n\ - .word gActiveBank\n\ -._166:\n\ - mov r3, #0x10\n\ - add r0, r3, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._172 @cond_branch\n\ - ldr r4, ._178\n\ - add r3, r2, r4\n\ - ldrb r2, [r3]\n\ - mov r6, #0x1\n\ - add r0, r5, #0\n\ - and r0, r0, r2\n\ - cmp r0, #0\n\ - beq ._173 @cond_branch\n\ - b ._209\n\ -._173:\n\ - ldr r1, ._178 + 4\n\ - add r0, r6, #0\n\ - eor r0, r0, r2\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._175 @cond_branch\n\ - b ._209\n\ -._175:\n\ - ldrb r0, [r3]\n\ - bl nullsub_7\n\ - ldr r2, ._178 + 8\n\ - ldrb r1, [r2]\n\ - add r1, r1, r4\n\ - ldrb r0, [r1]\n\ - eor r0, r0, r6\n\ - b ._183\n\ -._179:\n\ - .align 2, 0\n\ -._178:\n\ - .word gMoveSelectionCursor\n\ - .word gUnknown_03004348\n\ - .word gActiveBank\n\ -._172:\n\ - mov r0, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._180 @cond_branch\n\ - ldr r4, ._184\n\ - add r2, r2, r4\n\ - ldrb r1, [r2]\n\ - add r0, r6, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._181 @cond_branch\n\ - b ._209\n\ -._181:\n\ - ldrb r0, [r2]\n\ - bl nullsub_7\n\ - ldr r2, ._184 + 4\n\ - ldrb r1, [r2]\n\ - add r1, r1, r4\n\ - ldrb r0, [r1]\n\ - mov r2, #0x2\n\ - eor r0, r0, r2\n\ - b ._183\n\ -._185:\n\ - .align 2, 0\n\ -._184:\n\ - .word gMoveSelectionCursor\n\ - .word gActiveBank\n\ -._180:\n\ - mov r0, #0x80\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._186 @cond_branch\n\ - ldr r4, ._192\n\ - add r3, r2, r4\n\ - ldrb r2, [r3]\n\ - mov r5, #0x2\n\ - add r0, r6, #0\n\ - and r0, r0, r2\n\ - cmp r0, #0\n\ - beq ._187 @cond_branch\n\ - b ._209\n\ -._187:\n\ - ldr r1, ._192 + 4\n\ - add r0, r5, #0\n\ - eor r0, r0, r2\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._189 @cond_branch\n\ - b ._209\n\ -._189:\n\ - ldrb r0, [r3]\n\ - bl nullsub_7\n\ - ldr r2, ._192 + 8\n\ - ldrb r1, [r2]\n\ - add r1, r1, r4\n\ - ldrb r0, [r1]\n\ - eor r0, r0, r5\n\ -._183:\n\ - strb r0, [r1]\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldr r1, ._192 + 8\n\ - ldrb r0, [r1]\n\ - add r0, r0, r4\n\ - ldrb r0, [r0]\n\ - mov r1, #0x0\n\ - bl sub_802E3B4\n\ - bl sub_802E220\n\ - bl sub_802E2D4\n\ - b ._209\n\ -._193:\n\ - .align 2, 0\n\ -._192:\n\ - .word gMoveSelectionCursor\n\ - .word gUnknown_03004348\n\ - .word gActiveBank\n\ -._186:\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._194 @cond_branch\n\ - ldr r0, ._201\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - bhi ._195 @cond_branch\n\ - b ._209\n\ -._195:\n\ - ldr r0, ._201 + 4\n\ - ldrh r1, [r0]\n\ - add r0, r6, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._197 @cond_branch\n\ - b ._209\n\ -._197:\n\ - ldr r4, ._201 + 8\n\ - add r0, r2, r4\n\ - ldrb r0, [r0]\n\ - ldr r1, ._201 + 12\n\ - bl sub_802E12C\n\ - ldr r2, ._201 + 16\n\ - ldrb r0, [r2]\n\ - add r0, r0, r4\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._199 @cond_branch\n\ - ldr r0, ._201 + 20\n\ - strb r7, [r0]\n\ - b ._200\n\ -._202:\n\ - .align 2, 0\n\ -._201:\n\ - .word gUnknown_03004348\n\ - .word gBattleTypeFlags\n\ - .word gMoveSelectionCursor\n\ - .word gUnknown_081FAE80\n\ - .word gActiveBank\n\ - .word gUnknown_03004344\n\ -._199:\n\ - ldr r1, ._204\n\ - add r0, r0, #0x1\n\ - strb r0, [r1]\n\ - add r0, r1, #0\n\ -._200:\n\ - ldrb r0, [r0]\n\ - mov r1, #0x1b\n\ - bl sub_802E3B4\n\ - ldr r4, ._204 + 4\n\ - ldr r1, ._204 + 8\n\ - mov r0, #0x1c\n\ - str r0, [sp]\n\ - mov r0, #0x3a\n\ - str r0, [sp, #0x4]\n\ - add r0, r4, #0\n\ - mov r2, #0x17\n\ - mov r3, #0x37\n\ - bl Text_FillWindowRect\n\ - ldr r1, ._204 + 12\n\ - mov r2, #0xa4\n\ - lsl r2, r2, #0x2\n\ - mov r0, #0x37\n\ - str r0, [sp]\n\ - add r0, r4, #0\n\ - mov r3, #0x17\n\ - bl Text_InitWindow\n\ - add r0, r4, #0\n\ - bl Text_PrintWindow8002F44\n\ - ldr r1, ._204 + 16\n\ - ldr r0, ._204 + 20\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, ._204 + 24\n\ - b ._203\n\ -._205:\n\ - .align 2, 0\n\ -._204:\n\ - .word gUnknown_03004344\n\ - .word gUnknown_03004210\n\ - .word 0x1016\n\ - .word BattleText_SwitchWhich\n\ - .word gBattleBankFunc\n\ - .word gActiveBank\n\ - .word sub_802CA60+1\n\ -._194:\n\ - ldr r0, ._214\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - beq ._206 @cond_branch\n\ - b ._209\n\ -._206:\n\ - mov r0, #0x8\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._208 @cond_branch\n\ - b ._209\n\ -._208:\n\ - ldr r6, ._214 + 4\n\ - ldr r1, ._214 + 8\n\ - str r3, [sp]\n\ - mov r0, #0x3a\n\ - str r0, [sp, #0x4]\n\ - add r0, r6, #0\n\ - mov r2, #0x1\n\ - mov r3, #0x37\n\ - bl Text_FillWindowRect\n\ - ldr r0, ._214 + 12\n\ - mov sl, r0\n\ - ldr r1, ._214 + 16\n\ - ldrb r0, [r1]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, sl\n\ - ldrh r0, [r0]\n\ - mov r2, #0x64\n\ - mov r9, r2\n\ - mov r1, r9\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - ldr r5, ._214 + 20\n\ - add r0, r0, r5\n\ - mov r1, #0xd\n\ - bl GetMonData\n\ - mov r1, #0xd\n\ - mul r1, r1, r0\n\ - ldr r0, ._214 + 24\n\ - add r1, r1, r0\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0x1\n\ - mov r0, #0x37\n\ - mov r8, r0\n\ - str r0, [sp]\n\ - add r0, r6, #0\n\ - mov r3, #0x2\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r4, ._214 + 28\n\ - ldr r1, ._214 + 16\n\ - ldrb r0, [r1]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, sl\n\ - ldrh r0, [r0]\n\ - mov r2, r9\n\ - mul r2, r2, r0\n\ - add r0, r2, #0\n\ - add r0, r0, r5\n\ - mov r1, #0xd\n\ - bl GetMonData\n\ - add r1, r0, #0\n\ - add r0, r4, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x3\n\ - bl ConvertIntToDecimalStringN\n\ - mov r2, #0x88\n\ - lsl r2, r2, #0x1\n\ - mov r0, r8\n\ - str r0, [sp]\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - mov r3, #0xa\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r1, ._214 + 32\n\ - mov r2, #0x8b\n\ - lsl r2, r2, #0x1\n\ - mov r5, #0x39\n\ - str r5, [sp]\n\ - add r0, r6, #0\n\ - mov r3, #0x1\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r0, ._214 + 36\n\ - ldrb r1, [r0]\n\ - add r0, r4, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x3\n\ - bl ConvertIntToDecimalStringN\n\ - mov r2, #0x8e\n\ - lsl r2, r2, #0x1\n\ - str r5, [sp]\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - mov r3, #0x4\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r0, ._214 + 40\n\ - add r2, r0, #0\n\ - add r2, r2, #0x3e\n\ - mov r1, #0x3f\n\ -._211:\n\ - ldrb r0, [r2]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._210 @cond_branch\n\ - add r0, r7, #1\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ -._210:\n\ - add r2, r2, #0x44\n\ - sub r1, r1, #0x1\n\ - cmp r1, #0\n\ - bge ._211 @cond_branch\n\ - ldr r4, ._214 + 28\n\ - add r0, r4, #0\n\ - add r1, r7, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x2\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r6, ._214 + 4\n\ - mov r2, #0x91\n\ - lsl r2, r2, #0x1\n\ - mov r5, #0x39\n\ - str r5, [sp]\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - mov r3, #0x8\n\ - bl Text_InitWindowAndPrintText\n\ - bl GetTaskCount\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - add r0, r4, #0\n\ - add r1, r7, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x2\n\ - bl ConvertIntToDecimalStringN\n\ - mov r2, #0x93\n\ - lsl r2, r2, #0x1\n\ - str r5, [sp]\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - mov r3, #0xb\n\ - bl Text_InitWindowAndPrintText\n\ - mov r1, #0x0\n\ - mov r7, #0x0\n\ - ldr r0, ._214 + 44\n\ - mov r3, #0x1\n\ - ldr r2, [r0]\n\ -._213:\n\ - add r0, r3, #0\n\ - LSL r0, r1\n\ - and r0, r0, r2\n\ - cmp r0, #0\n\ - beq ._212 @cond_branch\n\ - add r0, r7, #1\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ -._212:\n\ - add r1, r1, #0x1\n\ - cmp r1, #0x1f\n\ - ble ._213 @cond_branch\n\ - ldr r4, ._214 + 28\n\ - add r0, r4, #0\n\ - add r1, r7, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x2\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, ._214 + 4\n\ - mov r2, #0x95\n\ - lsl r2, r2, #0x1\n\ - mov r1, #0x39\n\ - str r1, [sp]\n\ - add r1, r4, #0\n\ - mov r3, #0xe\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r1, ._214 + 48\n\ - ldr r0, ._214 + 16\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, ._214 + 52\n\ -._203:\n\ - str r1, [r0]\n\ -._209:\n\ - add sp, sp, #0x8\n\ - pop {r3, r4, r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov sl, r5\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._215:\n\ - .align 2, 0\n\ -._214:\n\ - .word gUnknown_020297ED\n\ - .word gUnknown_03004210\n\ - .word 0x1016\n\ - .word gBattlePartyID\n\ - .word gActiveBank\n\ - .word gPlayerParty\n\ - .word gMoveNames\n\ - .word gDisplayedStringBattle\n\ - .word gString_TurnJP\n\ - .word gAnimMoveTurn\n\ - .word gSprites\n\ - .word gOamMatrixAllocBitmap\n\ - .word gBattleBankFunc\n\ - .word debug_sub_8030C24+1"); -} -#else +void debug_sub_8030C24(void); + void sub_802C68C(void) { u32 r8 = 0; +#if DEBUG + u8 count = 0; +#endif struct ChooseMoveStruct *r6 = (struct ChooseMoveStruct *)(gBattleBufferA[gActiveBank] + 4); if (gMain.newKeys & A_BUTTON) @@ -1469,8 +757,44 @@ void sub_802C68C(void) gBattleBankFunc[gActiveBank] = sub_802CA60; } } -} +#if DEBUG + else if (gUnknown_020297ED == 1 && (gMain.newKeys & START_BUTTON)) + { + const u8 *moveName; + s32 i; + + Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A); + moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1)]; + Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37); + ConvertIntToDecimalStringN( + gDisplayedStringBattle, + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1), + 2, 3); + Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37); + Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39); + ConvertIntToDecimalStringN(gDisplayedStringBattle, gAnimMoveTurn, 2, 3); + Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x11C, 4, 0x39); + for (i = 0; i < 64; i++) + { + if (gSprites[i].inUse) + count++; + } + ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); + Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x122, 8, 0x39); + count = GetTaskCount(); + ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); + Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x126, 11, 0x39); + for (i = 0, count = 0; i < 32; i++) + { + if (gOamMatrixAllocBitmap & (1 << i)) + count++; + } + ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); + Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39); + gBattleBankFunc[gActiveBank] = debug_sub_8030C24; + } #endif +} extern const u8 BattleText_Format[]; diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 4af8adbbb..5896e5e18 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle_anim_81258BC.h" #include "battle.h" +#include "battle_interface.h" #include "battle_message.h" #include "data2.h" #include "link.h" @@ -207,236 +208,6 @@ void SafariBufferRunCommand(void) } } -#if DEBUG -__attribute__((naked)) -void bx_battle_menu_t6_2(void) -{ - asm("\ - push {r4, r5, lr}\n\ - add sp, sp, #0xfffffffc\n\ - ldr r0, ._94\n\ - ldrh r1, [r0, #0x2e]\n\ - mov r2, #0x1\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._89 @cond_branch\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - bl DestroyMenuCursor\n\ - ldr r1, ._94 + 4\n\ - ldr r0, ._94 + 8\n\ - ldrb r0, [r0]\n\ - add r0, r0, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - beq ._90 @cond_branch\n\ - cmp r0, #0x1\n\ - bgt ._91 @cond_branch\n\ - cmp r0, #0\n\ - beq ._92 @cond_branch\n\ - b ._101\n\ -._95:\n\ - .align 2, 0\n\ -._94:\n\ - .word gMain\n\ - .word gActionSelectionCursor\n\ - .word gActiveBank\n\ -._91:\n\ - cmp r0, #0x2\n\ - beq ._96 @cond_branch\n\ - cmp r0, #0x3\n\ - beq ._97 @cond_branch\n\ - b ._101\n\ -._92:\n\ - mov r0, #0x1\n\ - mov r1, #0x5\n\ - b ._100\n\ -._90:\n\ - mov r0, #0x1\n\ - mov r1, #0x6\n\ - b ._100\n\ -._96:\n\ - mov r0, #0x1\n\ - mov r1, #0x7\n\ -._100:\n\ - mov r2, #0x0\n\ - bl Emitcmd33\n\ - b ._101\n\ -._97:\n\ - mov r0, #0x1\n\ - mov r1, #0x8\n\ - mov r2, #0x0\n\ - bl Emitcmd33\n\ -._101:\n\ - bl SafariBufferExecCompleted\n\ - b ._129\n\ -._89:\n\ - mov r3, #0x20\n\ - add r0, r3, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._103 @cond_branch\n\ - ldr r5, ._107\n\ - ldr r4, ._107 + 4\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._104 @cond_branch\n\ - b ._129\n\ -._104:\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r0, [r0]\n\ - bl nullsub_8\n\ - ldrb r1, [r4]\n\ - add r1, r1, r5\n\ - ldrb r0, [r1]\n\ - mov r2, #0x1\n\ - b ._111\n\ -._108:\n\ - .align 2, 0\n\ -._107:\n\ - .word gActionSelectionCursor\n\ - .word gActiveBank\n\ -._103:\n\ - mov r0, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._109 @cond_branch\n\ - ldr r5, ._112\n\ - ldr r4, ._112 + 4\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._129 @cond_branch\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r0, [r0]\n\ - bl nullsub_8\n\ - ldrb r1, [r4]\n\ - add r1, r1, r5\n\ - ldrb r0, [r1]\n\ - mov r2, #0x1\n\ - b ._111\n\ -._113:\n\ - .align 2, 0\n\ -._112:\n\ - .word gActionSelectionCursor\n\ - .word gActiveBank\n\ -._109:\n\ - mov r0, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._114 @cond_branch\n\ - ldr r5, ._117\n\ - ldr r4, ._117 + 4\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - mov r0, #0x2\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._129 @cond_branch\n\ - b ._116\n\ -._118:\n\ - .align 2, 0\n\ -._117:\n\ - .word gActionSelectionCursor\n\ - .word gActiveBank\n\ -._114:\n\ - mov r0, #0x80\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._119 @cond_branch\n\ - ldr r5, ._122\n\ - ldr r4, ._122 + 4\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r1, [r0]\n\ - mov r0, #0x2\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._129 @cond_branch\n\ -._116:\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r0, [r0]\n\ - bl nullsub_8\n\ - ldrb r1, [r4]\n\ - add r1, r1, r5\n\ - ldrb r0, [r1]\n\ - mov r2, #0x2\n\ -._111:\n\ - eor r0, r0, r2\n\ - strb r0, [r1]\n\ - ldrb r0, [r4]\n\ - add r0, r0, r5\n\ - ldrb r0, [r0]\n\ - mov r1, #0x0\n\ - bl sub_802E3E4\n\ - b ._129\n\ -._123:\n\ - .align 2, 0\n\ -._122:\n\ - .word gActionSelectionCursor\n\ - .word gActiveBank\n\ -._119:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._124 @cond_branch\n\ - ldr r0, ._127\n\ - ldrb r2, [r0]\n\ - lsl r0, r2, #0x1\n\ - add r0, r0, r2\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._127 + 4\n\ - add r0, r0, r1\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - and r0, r0, r1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._129 @cond_branch\n\ - str r0, [sp]\n\ - add r0, r2, #0\n\ - add r1, r2, #0\n\ - mov r3, #0x4\n\ - bl move_anim_start_t3\n\ - b ._129\n\ -._128:\n\ - .align 2, 0\n\ -._127:\n\ - .word gActiveBank\n\ - .word +0x2017810\n\ -._124:\n\ - mov r0, #0x8\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._129 @cond_branch\n\ - bl sub_804454C\n\ -._129:\n\ - add sp, sp, #0x4\n\ - pop {r4, r5}\n\ - pop {r0}\n\ - bx r0"); -} -#else void bx_battle_menu_t6_2(void) { if (gMain.newKeys & A_BUTTON) @@ -502,8 +273,18 @@ void bx_battle_menu_t6_2(void) sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); } } -} +#if DEBUG + else if (gMain.newKeys & R_BUTTON) + { + if (!ewram17810[gActiveBank].unk0_5) + move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, 4, 0); + } + else if (gMain.newKeys & START_BUTTON) + { + sub_804454C(); + } #endif +} void sub_812B65C(void) { diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index b703bc7b8..9be026d53 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -1277,353 +1277,8 @@ _08044548: .4byte 0x04000008\n\ } #endif -#if DEBUG -__attribute__((naked)) -void sub_804454C() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, sl\n" - " mov r6, r9\n" - " mov r5, r8\n" - " push {r5, r6, r7}\n" - " add sp, sp, #0xfffffffc\n" - " mov r0, #0x0\n" - " mov r8, r0\n" - " ldr r0, ._150\n" - " ldrb r0, [r0]\n" - " cmp r8, r0\n" - " blt ._133 @cond_branch\n" - " b ._164\n" - "._133:\n" - " ldr r1, ._150 + 4\n" - " mov r9, r1\n" - " mov r2, #0x64\n" - " mov sl, r2\n" - " ldr r7, ._150 + 8\n" - "._165:\n" - " ldr r0, ._150 + 12\n" - " mov r6, r8\n" - " add r5, r6, r0\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " mov r1, r9\n" - " add r1, r1, #0x1c\n" - " add r0, r0, r1\n" - " ldr r1, [r0]\n" - " ldr r0, ._150 + 16\n" - " cmp r1, r0\n" - " beq ._135 @cond_branch\n" - " b ._147\n" - "._135:\n" - " ldr r0, ._150 + 20\n" - " ldrb r0, [r0]\n" - " lsl r4, r6, #0x18\n" - " cmp r0, #0\n" - " bne ._138 @cond_branch\n" - " lsr r0, r4, #0x18\n" - " bl GetBankSide\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " bne ._138 @cond_branch\n" - " b ._147\n" - "._138:\n" - " bl IsDoubleBattle\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._141 @cond_branch\n" - " lsr r0, r4, #0x18\n" - " bl GetBankSide\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._141 @cond_branch\n" - " b ._147\n" - "._141:\n" - " mov r0, r8\n" - " lsl r3, r0, #0x2\n" - " ldr r0, ._150 + 24\n" - " add r3, r3, r0\n" - " ldr r0, [r3]\n" - " lsl r0, r0, #0x1b\n" - " lsr r0, r0, #0x1f\n" - " mov r2, #0x1\n" - " eor r2, r2, r0\n" - " lsl r2, r2, #0x4\n" - " ldrb r0, [r3]\n" - " mov r6, #0x11\n" - " neg r6, r6\n" - " add r1, r6, #0\n" - " and r0, r0, r1\n" - " orr r0, r0, r2\n" - " strb r0, [r3]\n" - " ldr r0, [r3]\n" - " lsl r0, r0, #0x1b\n" - " lsr r6, r0, #0x1f\n" - " lsr r0, r4, #0x18\n" - " bl GetBankSide\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._143 @cond_branch\n" - " bl IsDoubleBattle\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._144 @cond_branch\n" - " b ._147\n" - "._144:\n" - " ldr r0, ._150 + 28\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " lsl r0, r0, #0x10\n" - " lsr r2, r0, #0x10\n" - " cmp r2, #0\n" - " beq ._146 @cond_branch\n" - " b ._147\n" - "._146:\n" - " cmp r6, #0x1\n" - " bne ._148 @cond_branch\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r9\n" - " ldrh r0, [r0, #0x38]\n" - " lsl r0, r0, #0x18\n" - " lsr r1, r0, #0x18\n" - " str r2, [sp]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r9\n" - " ldrh r1, [r0, #0x4]\n" - " lsl r1, r1, #0x16\n" - " lsr r1, r1, #0x11\n" - " ldr r0, ._150 + 32\n" - " add r1, r1, r0\n" - " mov r0, sp\n" - " ldr r2, ._150 + 36\n" - " bl CpuSet\n" - " ldrb r4, [r5]\n" - " ldrh r0, [r7]\n" - " mov r1, sl\n" - " mul r1, r1, r0\n" - " add r0, r1, #0\n" - " ldr r2, ._150 + 40\n" - " add r0, r0, r2\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " add r0, r4, #0\n" - " mov r2, #0x0\n" - " bl sub_8044210\n" - " ldrb r4, [r5]\n" - " ldrh r0, [r7]\n" - " mov r6, sl\n" - " mul r6, r6, r0\n" - " add r0, r6, #0\n" - " ldr r1, ._150 + 40\n" - " b ._149\n" - "._151:\n" - " .align 2, 0\n" - "._150:\n" - " .word gNoOfAllBanks\n" - " .word gSprites\n" - " .word gBattlePartyID\n" - " .word gHealthboxIDs\n" - " .word SpriteCallbackDummy+1\n" - " .word gUnknown_020297ED\n" - " .word +0x2017800\n" - " .word gBattleTypeFlags\n" - " .word 0x6010000\n" - " .word 0x5000040\n" - " .word gPlayerParty\n" - "._148:\n" - " ldrb r0, [r5]\n" - " bl draw_status_ailment_maybe\n" - " ldrb r0, [r5]\n" - " ldrh r1, [r7]\n" - " mov r2, sl\n" - " mul r2, r2, r1\n" - " add r1, r2, #0\n" - " ldr r6, ._153\n" - " add r1, r1, r6\n" - " mov r2, #0x5\n" - " bl sub_8045A5C\n" - " mov r0, #0x75\n" - " bl sub_8043CDC\n" - " ldrb r2, [r5]\n" - " lsl r1, r2, #0x4\n" - " add r1, r1, r2\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r9\n" - " ldrh r1, [r1, #0x4]\n" - " lsl r1, r1, #0x16\n" - " lsr r1, r1, #0x11\n" - " ldr r2, ._153 + 4\n" - " add r1, r1, r2\n" - " ldr r2, ._153 + 8\n" - " bl CpuSet\n" - " b ._163\n" - "._154:\n" - " .align 2, 0\n" - "._153:\n" - " .word gPlayerParty\n" - " .word 0x6010680\n" - " .word 0x4000008\n" - "._143:\n" - " cmp r6, #0x1\n" - " bne ._155 @cond_branch\n" - " ldr r0, ._158\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " lsl r0, r0, #0x10\n" - " lsr r2, r0, #0x10\n" - " cmp r2, #0\n" - " beq ._156 @cond_branch\n" - " ldrb r0, [r5]\n" - " ldrh r1, [r7]\n" - " mov r6, sl\n" - " mul r6, r6, r1\n" - " add r1, r6, #0\n" - " ldr r2, ._158 + 4\n" - " add r1, r1, r2\n" - " bl sub_8044338\n" - " b ._163\n" - "._159:\n" - " .align 2, 0\n" - "._158:\n" - " .word gBattleTypeFlags\n" - " .word gEnemyParty\n" - "._156:\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r9\n" - " ldrh r0, [r0, #0x38]\n" - " lsl r0, r0, #0x18\n" - " lsr r1, r0, #0x18\n" - " str r2, [sp]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r9\n" - " ldrh r1, [r0, #0x4]\n" - " lsl r1, r1, #0x16\n" - " lsr r1, r1, #0x11\n" - " ldr r6, ._161\n" - " add r1, r1, r6\n" - " mov r0, sp\n" - " ldr r2, ._161 + 4\n" - " bl CpuSet\n" - " ldrb r4, [r5]\n" - " ldrh r0, [r7]\n" - " mov r1, sl\n" - " mul r1, r1, r0\n" - " add r0, r1, #0\n" - " ldr r2, ._161 + 8\n" - " add r0, r0, r2\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " add r0, r4, #0\n" - " mov r2, #0x0\n" - " bl sub_8044210\n" - " ldrb r4, [r5]\n" - " ldrh r0, [r7]\n" - " mov r6, sl\n" - " mul r6, r6, r0\n" - " add r0, r6, #0\n" - " ldr r1, ._161 + 8\n" - "._149:\n" - " add r0, r0, r1\n" - " mov r1, #0x3a\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " add r0, r4, #0\n" - " mov r2, #0x1\n" - " bl sub_8044210\n" - " b ._163\n" - "._162:\n" - " .align 2, 0\n" - "._161:\n" - " .word 0x6010000\n" - " .word 0x5000040\n" - " .word gEnemyParty\n" - "._155:\n" - " ldrb r0, [r5]\n" - " bl draw_status_ailment_maybe\n" - " ldrb r0, [r5]\n" - " ldrh r1, [r7]\n" - " mov r6, #0x64\n" - " mul r1, r1, r6\n" - " ldr r4, ._166\n" - " add r1, r1, r4\n" - " mov r2, #0x5\n" - " bl sub_8045A5C\n" - " ldr r0, ._166 + 4\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._163 @cond_branch\n" - " ldrb r0, [r5]\n" - " ldrh r1, [r7]\n" - " mul r1, r1, r6\n" - " add r1, r1, r4\n" - " mov r2, #0x4\n" - " bl sub_8045A5C\n" - "._163:\n" - " ldr r0, ._166 + 8\n" - " add r0, r0, r8\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r9\n" - " ldrh r1, [r0, #0x3c]\n" - " mov r2, #0x1\n" - " eor r1, r1, r2\n" - " strh r1, [r0, #0x3c]\n" - "._147:\n" - " add r7, r7, #0x2\n" - " mov r2, #0x1\n" - " add r8, r8, r2\n" - " ldr r0, ._166 + 12\n" - " ldrb r0, [r0]\n" - " cmp r8, r0\n" - " bge ._164 @cond_branch\n" - " b ._165\n" - "._164:\n" - " add sp, sp, #0x4\n" - " pop {r3, r4, r5}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " mov sl, r5\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._167:\n" - " .align 2, 0\n" - "._166:\n" - " .word gEnemyParty\n" - " .word gBattleTypeFlags\n" - " .word gHealthboxIDs\n" - " .word gNoOfAllBanks\n" - "\n" - ); -} -#else +extern u8 gUnknown_020297ED; + void sub_804454C(void) { s32 i; @@ -1632,7 +1287,11 @@ void sub_804454C(void) for (i = 0; i < gNoOfAllBanks; i++) { if (gSprites[gHealthboxIDs[i]].callback == SpriteCallbackDummy +#if DEBUG + && (gUnknown_020297ED != 0 || GetBankSide(i) != 1) +#else && GetBankSide(i) != 1 +#endif && (IsDoubleBattle() || GetBankSide(i) != 0)) { u8 r6; @@ -1691,7 +1350,6 @@ void sub_804454C(void) } } } -#endif // This function almost matches except for just two instructions around 0x08044B52 that are swapped. #ifdef NONMATCHING @@ -3045,310 +2703,6 @@ static u8 sub_80457E8(u8 a, u8 b) } } -#if DEBUG -__attribute__((naked)) -void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, sl\n" - " mov r6, r9\n" - " mov r5, r8\n" - " push {r5, r6, r7}\n" - " add sp, sp, #0xfffffff8\n" - " mov r9, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " mov r8, r0\n" - " lsl r2, r2, #0x18\n" - " lsr r7, r2, #0x18\n" - " ldr r1, ._429\n" - " lsl r0, r0, #0x4\n" - " add r0, r0, r8\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r1\n" - " ldrh r0, [r0, #0x3a]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " mov sl, r0\n" - " bl GetBankSide\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._410 @cond_branch\n" - " b ._411\n" - "._410:\n" - " cmp r7, #0x3\n" - " beq ._412 @cond_branch\n" - " cmp r7, #0\n" - " bne ._413 @cond_branch\n" - "._412:\n" - " mov r0, r9\n" - " mov r1, #0x38\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x18\n" - " lsr r1, r1, #0x18\n" - " mov r0, r8\n" - " bl sub_8043FC0\n" - "._413:\n" - " cmp r7, #0x1\n" - " bhi ._414 @cond_branch\n" - " mov r0, r9\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " mov r0, r8\n" - " mov r2, #0x0\n" - " bl sub_80440EC\n" - "._414:\n" - " cmp r7, #0x2\n" - " beq ._415 @cond_branch\n" - " cmp r7, #0\n" - " bne ._416 @cond_branch\n" - "._415:\n" - " mov r0, r9\n" - " mov r1, #0x3a\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " mov r0, r8\n" - " mov r2, #0x1\n" - " bl sub_80440EC\n" - "._416:\n" - " cmp r7, #0x5\n" - " beq ._417 @cond_branch\n" - " cmp r7, #0\n" - " bne ._418 @cond_branch\n" - "._417:\n" - " mov r0, #0x0\n" - " bl load_gfxc_health_bar\n" - " mov r0, r9\n" - " mov r1, #0x3a\n" - " bl GetMonData\n" - " add r4, r0, #0\n" - " mov r0, r9\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r3, r0, #0\n" - " mov r0, #0x0\n" - " str r0, [sp]\n" - " mov r0, sl\n" - " mov r1, r8\n" - " add r2, r4, #0\n" - " bl sub_8043D84\n" - " mov r0, sl\n" - " mov r1, r8\n" - " mov r2, #0x0\n" - " mov r3, #0x0\n" - " bl sub_8045C78\n" - "._418:\n" - " bl IsDoubleBattle\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " str r0, [sp, #0x4]\n" - " cmp r0, #0\n" - " bne ._421 @cond_branch\n" - " cmp r7, #0x6\n" - " beq ._420 @cond_branch\n" - " cmp r7, #0\n" - " bne ._421 @cond_branch\n" - "._420:\n" - " mov r0, #0x3\n" - " bl load_gfxc_health_bar\n" - " mov r0, r9\n" - " mov r1, #0xb\n" - " bl GetMonData\n" - " add r5, r0, #0\n" - " lsl r5, r5, #0x10\n" - " lsr r5, r5, #0x10\n" - " mov r0, r9\n" - " mov r1, #0x38\n" - " bl GetMonData\n" - " add r4, r0, #0\n" - " lsl r4, r4, #0x18\n" - " lsr r4, r4, #0x18\n" - " mov r0, r9\n" - " mov r1, #0x19\n" - " bl GetMonData\n" - " add r3, r0, #0\n" - " ldr r6, ._429 + 4\n" - " lsl r1, r4, #0x2\n" - " ldr r2, ._429 + 8\n" - " lsl r0, r5, #0x3\n" - " sub r0, r0, r5\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r2\n" - " ldrb r2, [r0, #0x13]\n" - " mov r0, #0xca\n" - " lsl r0, r0, #0x1\n" - " mul r0, r0, r2\n" - " add r1, r1, r0\n" - " add r1, r1, r6\n" - " ldr r1, [r1]\n" - " sub r3, r3, r1\n" - " add r4, r4, #0x1\n" - " lsl r4, r4, #0x2\n" - " add r4, r4, r0\n" - " add r4, r4, r6\n" - " ldr r2, [r4]\n" - " sub r2, r2, r1\n" - " ldr r0, [sp, #0x4]\n" - " str r0, [sp]\n" - " mov r0, sl\n" - " mov r1, r8\n" - " bl sub_8043D84\n" - " mov r0, sl\n" - " mov r1, r8\n" - " mov r2, #0x1\n" - " mov r3, #0x0\n" - " bl sub_8045C78\n" - "._421:\n" - " cmp r7, #0x4\n" - " beq ._422 @cond_branch\n" - " cmp r7, #0\n" - " bne ._423 @cond_branch\n" - "._422:\n" - " mov r0, r8\n" - " mov r1, r9\n" - " bl sub_80451A0\n" - "._423:\n" - " cmp r7, #0x9\n" - " beq ._424 @cond_branch\n" - " cmp r7, #0\n" - " bne ._425 @cond_branch\n" - "._424:\n" - " mov r0, r8\n" - " bl draw_status_ailment_maybe\n" - "._425:\n" - " cmp r7, #0xa\n" - " bne ._426 @cond_branch\n" - " mov r0, r8\n" - " bl sub_80458B0\n" - "._426:\n" - " add r0, r7, #0\n" - " sub r0, r0, #0xa\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " bhi ._442 @cond_branch\n" - " mov r0, r8\n" - " bl sub_8045998\n" - " b ._442\n" - "._430:\n" - " .align 2, 0\n" - "._429:\n" - " .word gSprites\n" - " .word gExperienceTables\n" - " .word gBaseStats\n" - "._411:\n" - " cmp r7, #0x3\n" - " beq ._431 @cond_branch\n" - " cmp r7, #0\n" - " bne ._432 @cond_branch\n" - "._431:\n" - " mov r0, r9\n" - " mov r1, #0x38\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x18\n" - " lsr r1, r1, #0x18\n" - " mov r0, r8\n" - " bl sub_8043FC0\n" - "._432:\n" - " ldr r0, ._443\n" - " ldrb r0, [r0]\n" - " cmp r0, #0x1\n" - " bne ._436 @cond_branch\n" - " cmp r7, #0x1\n" - " bhi ._434 @cond_branch\n" - " mov r0, r9\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " mov r0, r8\n" - " mov r2, #0x0\n" - " bl sub_80440EC\n" - "._434:\n" - " cmp r7, #0x2\n" - " beq ._435 @cond_branch\n" - " cmp r7, #0\n" - " bne ._436 @cond_branch\n" - "._435:\n" - " mov r0, r9\n" - " mov r1, #0x3a\n" - " bl GetMonData\n" - " add r1, r0, #0\n" - " lsl r1, r1, #0x10\n" - " asr r1, r1, #0x10\n" - " mov r0, r8\n" - " mov r2, #0x1\n" - " bl sub_80440EC\n" - "._436:\n" - " cmp r7, #0x5\n" - " beq ._437 @cond_branch\n" - " cmp r7, #0\n" - " bne ._438 @cond_branch\n" - "._437:\n" - " mov r0, #0x0\n" - " bl load_gfxc_health_bar\n" - " mov r0, r9\n" - " mov r1, #0x3a\n" - " bl GetMonData\n" - " add r4, r0, #0\n" - " mov r0, r9\n" - " mov r1, #0x39\n" - " bl GetMonData\n" - " add r3, r0, #0\n" - " mov r0, #0x0\n" - " str r0, [sp]\n" - " mov r0, sl\n" - " mov r1, r8\n" - " add r2, r4, #0\n" - " bl sub_8043D84\n" - " mov r0, sl\n" - " mov r1, r8\n" - " mov r2, #0x0\n" - " mov r3, #0x0\n" - " bl sub_8045C78\n" - "._438:\n" - " cmp r7, #0x4\n" - " beq ._439 @cond_branch\n" - " cmp r7, #0\n" - " bne ._440 @cond_branch\n" - "._439:\n" - " mov r0, r8\n" - " mov r1, r9\n" - " bl sub_80451A0\n" - "._440:\n" - " cmp r7, #0x9\n" - " beq ._441 @cond_branch\n" - " cmp r7, #0\n" - " bne ._442 @cond_branch\n" - "._441:\n" - " mov r0, r8\n" - " bl draw_status_ailment_maybe\n" - "._442:\n" - " add sp, sp, #0x8\n" - " pop {r3, r4, r5}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " mov sl, r5\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._444:\n" - " .align 2, 0\n" - "._443:\n" - " .word gUnknown_020297ED\n" - "\n" - ); -} -#else void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) { u8 r10; @@ -3404,6 +2758,15 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) { if (c == 3 || c == 0) sub_8043FC0(a, GetMonData(pkmn, MON_DATA_LEVEL)); +#if DEBUG + if (gUnknown_020297ED == 1) + { + if (c == 1 || c == 0) + sub_80440EC(a, GetMonData(pkmn, MON_DATA_HP), 0); + if (c == 2 || c == 0) + sub_80440EC(a, GetMonData(pkmn, MON_DATA_MAX_HP), 1); + } +#endif if (c == 5 || c == 0) { load_gfxc_health_bar(0); @@ -3418,7 +2781,6 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) draw_status_ailment_maybe(a); } } -#endif s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2) { -- cgit v1.2.3 From 33d2d51906bbde1c62cee3470a9b3706571d551c Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 25 Jan 2018 21:33:46 -0600 Subject: decompile more debug functions --- src/battle/battle_2.c | 237 +++++++++++++------------------------------------ src/battle/battle_ai.c | 217 ++------------------------------------------ 2 files changed, 69 insertions(+), 385 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index f9756db29..e72a875fb 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -6,6 +6,7 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/species.h" +#include "gba/flash_internal.h" #include "battle.h" #include "battle_ai.h" #include "battle_interface.h" @@ -1500,6 +1501,17 @@ void debug_sub_80108B8(void) } } +// This function matches, but it somehow affects registers in SetActionsAndBanksTurnOrder. +#ifdef NONMATCHING +void debug_sub_8010A7C(u8 a, u8 b) +{ + s32 i; + + for (i = 0; i < b; i++) + gBattleTextBuff1[i] = a; + gBattleTextBuff1[i] = EOS; +} +#else __attribute__((naked)) void debug_sub_8010A7C() { @@ -1534,6 +1546,14 @@ void debug_sub_8010A7C() "\n" ); } +#endif + +/* +void debug_sub_8010AAC(u8 a) +{ + u32 r7 = gUnknown_Debug_030043A4 * 5; +} +*/ __attribute__((naked)) void debug_sub_8010AAC() @@ -3898,72 +3918,19 @@ void debug_sub_801174C() ); } -__attribute__((naked)) -void debug_sub_8011D40() +void debug_sub_8011D40(void) { - asm( - " push {lr}\n" - " ldr r1, ._774\n" - " ldr r0, ._774 + 4\n" - " str r0, [r1]\n" - " ldr r0, ._774 + 8\n" - " str r0, [r1, #0x4]\n" - " ldr r0, ._774 + 12\n" - " str r0, [r1, #0x8]\n" - " ldr r0, [r1, #0x8]\n" - " sub r1, r1, #0xc4\n" - " ldr r0, ._774 + 16\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 20\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 24\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 28\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 32\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 36\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 40\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " add r1, r1, #0x2\n" - " ldr r0, ._774 + 44\n" - " ldrh r0, [r0]\n" - " strh r0, [r1]\n" - " bl LoadOam\n" - " bl ProcessSpriteCopyRequests\n" - " pop {r0}\n" - " bx r0\n" - "._775:\n" - " .align 2, 0\n" - "._774:\n" - " .word 0x40000d4\n" - " .word gSharedMem\n" - " .word 0x6004000\n" - " .word 0x80000800\n" - " .word gBattle_BG0_X\n" - " .word gBattle_BG0_Y\n" - " .word gBattle_BG1_X\n" - " .word gBattle_BG1_Y\n" - " .word gBattle_BG2_X\n" - " .word gBattle_BG2_Y\n" - " .word gBattle_BG3_X\n" - " .word gBattle_BG3_Y\n" - "\n" - ); + DmaCopy16(3, gSharedMem, (void *)(VRAM + 0x4000), 0x1000); + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; + REG_BG1HOFS = gBattle_BG1_X; + REG_BG1VOFS = gBattle_BG1_Y; + REG_BG2HOFS = gBattle_BG2_X; + REG_BG2VOFS = gBattle_BG2_Y; + REG_BG3HOFS = gBattle_BG3_X; + REG_BG3VOFS = gBattle_BG3_Y; + LoadOam(); + ProcessSpriteCopyRequests(); } void debug_nullsub_45() @@ -6517,125 +6484,45 @@ void debug_sub_8012D10() ); } -__attribute__((naked)) -void debug_sub_8013240() +u8 debug_sub_8013240(void) { - asm( - " push {lr}\n" - " bl IdentifyFlash\n" - " lsl r0, r0, #0x10\n" - " cmp r0, #0\n" - " beq ._1068 @cond_branch\n" - " mov r0, #0x1\n" - " b ._1069\n" - "._1068:\n" - " mov r0, #0x0\n" - "._1069:\n" - " pop {r1}\n" - " bx r1\n" - "\n" - ); + if (IdentifyFlash() == 0) + return 0; + else + return 1; } -__attribute__((naked)) -void debug_sub_8013258() +u32 debug_sub_8013258(u16 sectorNum, u8 *data, u32 size) { - asm( - " push {r4, r5, r6, lr}\n" - " add r6, r1, #0\n" - " add r5, r2, #0\n" - " b ._1070\n" - "._1072:\n" - " ldr r0, ._1074\n" - " add r5, r5, r0\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x5\n" - " add r6, r6, r0\n" - " add r0, r4, #1\n" - "._1070:\n" - " lsl r0, r0, #0x10\n" - " lsr r4, r0, #0x10\n" - " add r0, r4, #0\n" - " add r1, r6, #0\n" - " bl ProgramFlashSectorAndVerify\n" - " cmp r0, #0\n" - " bne ._1071 @cond_branch\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x5\n" - " cmp r5, r0\n" - " bhi ._1072 @cond_branch\n" - " mov r0, #0x1\n" - " b ._1073\n" - "._1075:\n" - " .align 2, 0\n" - "._1074:\n" - " .word 0xfffff000\n" - "._1071:\n" - " mov r0, #0x0\n" - "._1073:\n" - " pop {r4, r5, r6}\n" - " pop {r1}\n" - " bx r1\n" - "\n" - ); + while (1) + { + if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) + return 0; + if (size <= 0x1000) + break; + size -= 0x1000; + data += 0x1000; + sectorNum++; + } + return 1; } -__attribute__((naked)) -void debug_sub_8013294() +u32 debug_sub_8013294(u8 sectorNum, void *data, u32 size) { - asm( - " push {r4, r5, r6, lr}\n" - " add r5, r1, #0\n" - " add r6, r2, #0\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " bl debug_sub_8013240\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._1076 @cond_branch\n" - " bl m4aSoundVSyncOff\n" - " add r0, r4, #0\n" - " add r1, r5, #0\n" - " add r2, r6, #0\n" - " bl debug_sub_8013258\n" - " add r4, r0, #0\n" - " bl m4aSoundVSyncOn\n" - " add r0, r4, #0\n" - " b ._1077\n" - "._1076:\n" - " mov r0, #0x0\n" - "._1077:\n" - " pop {r4, r5, r6}\n" - " pop {r1}\n" - " bx r1\n" - "\n" - ); + u32 result; + + if (debug_sub_8013240() != 0) + return 0; + m4aSoundVSyncOff(); + result = debug_sub_8013258(sectorNum, data, size); + m4aSoundVSyncOn(); + return result; } -__attribute__((naked)) -void debug_sub_80132C8() +void debug_sub_80132C8(u8 a, void *b, u32 c) { - asm( - " push {r4, r5, r6, lr}\n" - " add r5, r1, #0\n" - " add r6, r2, #0\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " bl debug_sub_8013240\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._1078 @cond_branch\n" - " add r0, r4, #0\n" - " mov r1, #0x0\n" - " add r2, r5, #0\n" - " add r3, r6, #0\n" - " bl ReadFlash\n" - "._1078:\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "\n" - ); + if (debug_sub_8013240() == 0) + ReadFlash(a, 0, b, c); } #endif @@ -10146,7 +10033,7 @@ void SetActionsAndBanksTurnOrder(void) // And doing this seems to fix it. #if DEBUG asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm(""); - asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm(""); + asm("");asm("");asm("");asm("");asm("");asm("");asm(""); #endif gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; eFocusPunchBank = 0; diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 87a66c2c7..629a57d25 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -13,6 +13,8 @@ #include "util.h" #include "ewram.h" +extern u8 gUnknown_02023A14_50; +extern u32 gUnknown_02023A14_4C; extern u16 gBattleTypeFlags; extern u16 gBattleWeather; extern u8 gActiveBank; @@ -289,214 +291,6 @@ void BattleAI_HandleItemUseBeforeAISetup(void) BattleAI_SetupAIData(); } -#if DEBUG -__attribute__((naked)) -void BattleAI_SetupAIData() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " ldr r2, ._16\n" - " mov r4, #0x0\n" - " ldr r3, ._16 + 4\n" - " mov r1, #0x0\n" - "._9:\n" - " add r0, r2, r4\n" - " strb r1, [r0]\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x1b\n" - " bls ._9 @cond_branch\n" - " ldr r0, ._16\n" - " mov r1, #0x64\n" - " mov r4, #0x3\n" - " add r0, r0, #0x7\n" - "._10:\n" - " strb r1, [r0]\n" - " sub r0, r0, #0x1\n" - " sub r4, r4, #0x1\n" - " cmp r4, #0\n" - " bge ._10 @cond_branch\n" - " ldrb r0, [r3]\n" - " mov r1, #0x0\n" - " mov r2, #0xff\n" - " bl CheckMoveLimitations\n" - " lsl r0, r0, #0x18\n" - " lsr r7, r0, #0x18\n" - " mov r4, #0x0\n" - " ldr r0, ._16\n" - " add r5, r0, #4\n" - " ldr r6, ._16 + 8\n" - "._12:\n" - " ldr r0, [r6]\n" - " and r0, r0, r7\n" - " cmp r0, #0\n" - " beq ._11 @cond_branch\n" - " mov r0, #0x0\n" - " strb r0, [r5]\n" - "._11:\n" - " bl Random\n" - " lsl r0, r0, #0x10\n" - " lsr r0, r0, #0x10\n" - " mov r1, #0xf\n" - " and r0, r0, r1\n" - " mov r1, #0x64\n" - " sub r1, r1, r0\n" - " strb r1, [r5, #0x14]\n" - " add r5, r5, #0x1\n" - " add r6, r6, #0x4\n" - " add r4, r4, #0x1\n" - " cmp r4, #0x3\n" - " ble ._12 @cond_branch\n" - " ldr r0, ._16 + 12\n" - " add r0, r0, #0x20\n" - " mov r1, #0x0\n" - " strb r1, [r0]\n" - " ldr r1, ._16 + 16\n" - " ldr r0, ._16 + 4\n" - " ldrb r2, [r0]\n" - " strb r2, [r1]\n" - " ldr r0, ._16 + 20\n" - " ldrh r1, [r0]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._13 @cond_branch\n" - " ldr r4, ._16 + 24\n" - " bl Random\n" - " mov r5, #0x2\n" - " and r0, r0, r5\n" - " strb r0, [r4]\n" - " ldr r0, ._16 + 28\n" - " ldrb r1, [r0]\n" - " ldr r2, ._16 + 8\n" - " ldrb r3, [r4]\n" - " lsl r0, r3, #0x2\n" - " add r0, r0, r2\n" - " ldr r0, [r0]\n" - " and r1, r1, r0\n" - " cmp r1, #0\n" - " beq ._15 @cond_branch\n" - " eor r3, r3, r5\n" - " strb r3, [r4]\n" - " b ._15\n" - "._17:\n" - " .align 2, 0\n" - "._16:\n" - " .word gSharedMem+0x16800\n" - " .word gActiveBank\n" - " .word gBitTable\n" - " .word +0x2016c00\n" - " .word gBankAttacker\n" - " .word gBattleTypeFlags\n" - " .word gBankTarget\n" - " .word gAbsentBankFlags\n" - "._13:\n" - " ldr r0, ._20\n" - " mov r1, #0x1\n" - " eor r1, r1, r2\n" - " strb r1, [r0]\n" - "._15:\n" - " ldr r0, ._20 + 4\n" - " ldrh r1, [r0]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._18 @cond_branch\n" - " ldr r1, ._20 + 8\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x17\n" - " b ._27\n" - "._21:\n" - " .align 2, 0\n" - "._20:\n" - " .word gBankTarget\n" - " .word gBattleTypeFlags\n" - " .word gSharedMem+0x16800\n" - "._18:\n" - " mov r2, #0x80\n" - " lsl r2, r2, #0x3\n" - " add r0, r2, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._22 @cond_branch\n" - " ldr r1, ._24\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x16\n" - " b ._27\n" - "._25:\n" - " .align 2, 0\n" - "._24:\n" - " .word gSharedMem+0x16800\n" - "._22:\n" - " mov r0, #0x10\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._26 @cond_branch\n" - " ldr r1, ._28\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x18\n" - " b ._27\n" - "._29:\n" - " .align 2, 0\n" - "._28:\n" - " .word gSharedMem+0x16800\n" - "._26:\n" - " mov r0, #0x90\n" - " lsl r0, r0, #0x4\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._30 @cond_branch\n" - " ldr r1, ._33\n" - " ldrh r0, [r1]\n" - " cmp r0, r2\n" - " bne ._31 @cond_branch\n" - "._30:\n" - " ldr r1, ._33 + 4\n" - " mov r0, #0x7\n" - "._27:\n" - " str r0, [r1, #0xc]\n" - " add r3, r1, #0\n" - " b ._32\n" - "._34:\n" - " .align 2, 0\n" - "._33:\n" - " .word gTrainerBattleOpponent\n" - " .word gSharedMem+0x16800\n" - "._31:\n" - " ldr r3, ._36\n" - " ldr r2, ._36 + 4\n" - " ldrh r1, [r1]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x3\n" - " add r2, r2, #0x1c\n" - " add r0, r0, r2\n" - " ldr r0, [r0]\n" - " str r0, [r3, #0xc]\n" - "._32:\n" - " ldr r0, ._36 + 8\n" - " ldrb r1, [r0]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._35 @cond_branch\n" - " ldr r0, ._36 + 12\n" - " ldr r0, [r0]\n" - " str r0, [r3, #0xc]\n" - "._35:\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._37:\n" - " .align 2, 0\n" - "._36:\n" - " .word gSharedMem+0x16800\n" - " .word gTrainers\n" - " .word gUnknown_02023A14_50\n" - " .word gUnknown_02023A14_4C\n" - "\n" - ); -} -#else void BattleAI_SetupAIData(void) { s32 i; @@ -544,13 +338,16 @@ void BattleAI_SetupAIData(void) else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) AI_THINKING_STRUCT->aiFlags = 0x80000000; #ifdef GERMAN - else if (gBattleTypeFlags & 0x900 || gTrainerBattleOpponent == 0x400) + else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER) || gTrainerBattleOpponent == 0x400) AI_THINKING_STRUCT->aiFlags = 7; #endif else // otherwise, just set aiFlags to whatever flags the trainer has set in their data. AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags; -} +#if DEBUG + if (gUnknown_02023A14_50 & 1) + AI_THINKING_STRUCT->aiFlags = gUnknown_02023A14_4C; #endif +} u8 BattleAI_GetAIActionToUse(void) { -- cgit v1.2.3 From fe400f60b6609d37d2b8a0c2aec75321adc3e95f Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 27 Jan 2018 17:03:40 -0600 Subject: add comments for pool loads in C files --- src/battle/battle_2.c | 942 ++++++++++++++++---------------- src/battle/battle_4.c | 76 +-- src/battle/battle_controller_opponent.c | 36 +- src/battle/battle_controller_player.c | 128 ++--- src/battle/battle_records.c | 10 +- 5 files changed, 596 insertions(+), 596 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 2171c6ef6..b9b4290b5 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1521,7 +1521,7 @@ void debug_sub_8010A7C() " lsl r1, r1, #0x18\n" " lsr r2, r1, #0x18\n" " mov r1, #0x0\n" - " ldr r5, ._514\n" + " ldr r5, ._514 @ gBattleTextBuff1\n" " cmp r1, r2\n" " bge ._512 @cond_branch\n" " add r3, r5, #0\n" @@ -1562,14 +1562,14 @@ void debug_sub_8010AAC() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " mov ip, r0\n" - " ldr r6, ._520\n" - " ldr r4, ._520 + 4\n" - " ldr r5, ._520 + 8\n" + " ldr r6, ._520 @ gBaseStats\n" + " ldr r4, ._520 + 4 @ gUnknown_Debug_2023A76\n" + " ldr r5, ._520 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r5]\n" " lsl r0, r1, #0x2\n" " add r7, r0, r1\n" " lsl r1, r7, #0x1\n" - " ldr r3, ._520 + 12\n" + " ldr r3, ._520 + 12 @ gUnknown_Debug_03004360\n" " ldrb r2, [r3]\n" " mov r0, #0x46\n" " mul r2, r2, r0\n" @@ -1685,10 +1685,10 @@ void debug_sub_8010B80() " lsr r6, r0, #0x18\n" " mov r0, #0x0\n" " mov ip, r0\n" - " ldr r4, ._534\n" - " ldr r1, ._534 + 4\n" + " ldr r4, ._534 @ gUnknown_Debug_2023A76\n" + " ldr r1, ._534 + 4 @ gUnknown_Debug_030043A0\n" " mov r8, r1\n" - " ldr r5, ._534 + 8\n" + " ldr r5, ._534 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r5]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -1696,7 +1696,7 @@ void debug_sub_8010B80() " ldrb r2, [r2]\n" " add r0, r0, r2\n" " lsl r0, r0, #0x1\n" - " ldr r3, ._534 + 12\n" + " ldr r3, ._534 + 12 @ gUnknown_Debug_03004360\n" " ldrb r2, [r3]\n" " mov r1, #0x46\n" " mul r1, r1, r2\n" @@ -1847,7 +1847,7 @@ void debug_sub_8010CAC() " mov r7, r8\n" " push {r7}\n" " add sp, sp, #0xfffffff0\n" - " ldr r4, ._553\n" + " ldr r4, ._553 @ gMain\n" " ldrh r1, [r4, #0x28]\n" " mov r0, #0x81\n" " lsl r0, r0, #0x2\n" @@ -1860,19 +1860,19 @@ void debug_sub_8010CAC() " beq ._544 @cond_branch\n" " b ._559\n" "._544:\n" - " ldr r0, ._553 + 4\n" + " ldr r0, ._553 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " mov r8, r0\n" " cmp r1, #0x5\n" " bhi ._546 @cond_branch\n" - " ldr r0, ._553 + 8\n" + " ldr r0, ._553 + 8 @ gUnknown_Debug_030043A8\n" " mov r1, #0x0\n" " strb r1, [r0]\n" " bl debug_sub_8012628\n" - " ldr r0, ._553 + 12\n" + " ldr r0, ._553 + 12 @ debug_sub_8011498\n" " bl SetMainCallback2\n" "._546:\n" - " ldr r0, ._553 + 16\n" + " ldr r0, ._553 + 16 @ gUnknown_Debug_030043A0\n" " ldrb r3, [r0]\n" " cmp r3, #0\n" " bne ._555 @cond_branch\n" @@ -1880,10 +1880,10 @@ void debug_sub_8010CAC() " ldrb r0, [r1]\n" " cmp r0, #0x6\n" " bne ._555 @cond_branch\n" - " ldr r0, ._553 + 20\n" + " ldr r0, ._553 + 20 @ debug_sub_80108B8\n" " str r0, [r4, #0x8]\n" - " ldr r4, ._553 + 24\n" - " ldr r0, ._553 + 28\n" + " ldr r4, ._553 + 24 @ gPlayerParty\n" + " ldr r0, ._553 + 28 @ gUnknown_Debug_2023A76\n" " ldrh r1, [r0]\n" " ldrb r2, [r0, #0x2]\n" " str r3, [sp]\n" @@ -1899,7 +1899,7 @@ void debug_sub_8010CAC() " add r1, r5, #0\n" " add r1, r1, #0xd\n" " lsl r4, r5, #0x1\n" - " ldr r0, ._553 + 32\n" + " ldr r0, ._553 + 32 @ gUnknown_Debug_2023B02\n" " add r4, r4, r0\n" " add r0, r6, #0\n" " add r2, r4, #0\n" @@ -1911,14 +1911,14 @@ void debug_sub_8010CAC() " lsl r2, r0, #0x1\n" " add r2, r2, r0\n" " lsl r2, r2, #0x2\n" - " ldr r0, ._553 + 36\n" + " ldr r0, ._553 + 36 @ gBattleMoves\n" " add r2, r2, r0\n" " add r0, r6, #0\n" " bl SetMonData\n" " add r5, r5, #0x1\n" " cmp r5, #0x3\n" " ble ._549 @cond_branch\n" - " ldr r2, ._553 + 28\n" + " ldr r2, ._553 + 28 @ gUnknown_Debug_2023A76\n" " mov r4, #0x3c\n" " ldsh r0, [r2, r4]\n" " cmp r0, #0x1\n" @@ -1940,10 +1940,10 @@ void debug_sub_8010CAC() " .word gUnknown_Debug_2023B02\n" " .word gBattleMoves+0x4\n" "._550:\n" - " ldr r1, ._556\n" - " ldr r0, ._556 + 4\n" + " ldr r1, ._556 @ gCB2_AfterEvolution\n" + " ldr r0, ._556 + 4 @ debug_sub_80108B8\n" " str r0, [r1]\n" - " ldr r0, ._556 + 8\n" + " ldr r0, ._556 + 8 @ gPlayerParty\n" " ldrh r1, [r2, #0xa]\n" " mov r2, #0x1\n" " mov r3, #0x0\n" @@ -1958,15 +1958,15 @@ void debug_sub_8010CAC() "._551:\n" " bl debug_sub_8012688\n" "._555:\n" - " ldr r0, ._565\n" + " ldr r0, ._565 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r0]\n" " cmp r0, #0x1\n" " bne ._559 @cond_branch\n" - " ldr r0, ._565 + 4\n" + " ldr r0, ._565 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r0, [r0]\n" " cmp r0, #0x6\n" " bne ._559 @cond_branch\n" - " ldr r3, ._565 + 8\n" + " ldr r3, ._565 + 8 @ gSaveBlock2\n" " ldrb r2, [r3, #0x15]\n" " lsl r0, r2, #0x1d\n" " lsr r5, r0, #0x1f\n" @@ -1999,7 +1999,7 @@ void debug_sub_8010CAC() " bl SetPokemonCryStereo\n" " bl debug_nullsub_3\n" "._559:\n" - " ldr r4, ._565 + 12\n" + " ldr r4, ._565 + 12 @ gMain\n" " ldrh r0, [r4, #0x2a]\n" " cmp r0, #0x8\n" " bne ._561 @cond_branch\n" @@ -2009,7 +2009,7 @@ void debug_sub_8010CAC() " cmp r0, #0x40\n" " bne ._562 @cond_branch\n" " bl debug_sub_80125E4\n" - " ldr r1, ._565 + 4\n" + " ldr r1, ._565 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r0, [r1]\n" " cmp r0, #0\n" " beq ._563 @cond_branch\n" @@ -2027,7 +2027,7 @@ void debug_sub_8010CAC() "._564:\n" " strb r0, [r1]\n" " bl debug_sub_8011E74\n" - " ldr r0, ._570\n" + " ldr r0, ._570 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2036,12 +2036,12 @@ void debug_sub_8010CAC() " bl debug_sub_80123D8\n" " bl debug_sub_80125A0\n" "._562:\n" - " ldr r0, ._570 + 4\n" + " ldr r0, ._570 + 4 @ gMain\n" " ldrh r0, [r0, #0x2a]\n" " cmp r0, #0x80\n" " bne ._567 @cond_branch\n" " bl debug_sub_80125E4\n" - " ldr r1, ._570\n" + " ldr r1, ._570 @ gUnknown_Debug_030043A4\n" " ldrb r0, [r1]\n" " cmp r0, #0x6\n" " bne ._568 @cond_branch\n" @@ -2057,7 +2057,7 @@ void debug_sub_8010CAC() "._569:\n" " strb r0, [r1]\n" " bl debug_sub_8011E74\n" - " ldr r0, ._575\n" + " ldr r0, ._575 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2066,12 +2066,12 @@ void debug_sub_8010CAC() " bl debug_sub_80123D8\n" " bl debug_sub_80125A0\n" "._567:\n" - " ldr r0, ._575 + 4\n" + " ldr r0, ._575 + 4 @ gMain\n" " ldrh r0, [r0, #0x2a]\n" " cmp r0, #0x20\n" " bne ._572 @cond_branch\n" " bl debug_sub_80125E4\n" - " ldr r2, ._575 + 8\n" + " ldr r2, ._575 + 8 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r2]\n" " add r1, r0, #0\n" " cmp r1, #0\n" @@ -2086,18 +2086,18 @@ void debug_sub_8010CAC() " .word gMain\n" " .word gUnknown_Debug_030043A0\n" "._573:\n" - " ldr r3, ._581\n" + " ldr r3, ._581 @ gUnknown_Debug_03004360\n" " ldrb r0, [r3]\n" " cmp r0, #0\n" " beq ._577 @cond_branch\n" " strb r1, [r3]\n" " mov r0, #0x4\n" " strb r0, [r2]\n" - " ldr r0, ._581 + 4\n" + " ldr r0, ._581 + 4 @ gBattle_BG1_X\n" " strh r1, [r0]\n" " bl debug_sub_8011E5C\n" " bl debug_sub_8011E74\n" - " ldr r0, ._581 + 8\n" + " ldr r0, ._581 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2107,12 +2107,12 @@ void debug_sub_8010CAC() "._577:\n" " bl debug_sub_80125A0\n" "._572:\n" - " ldr r0, ._581 + 12\n" + " ldr r0, ._581 + 12 @ gMain\n" " ldrh r0, [r0, #0x2a]\n" " cmp r0, #0x10\n" " bne ._578 @cond_branch\n" " bl debug_sub_80125E4\n" - " ldr r2, ._581 + 16\n" + " ldr r2, ._581 + 16 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r2]\n" " cmp r0, #0x4\n" " beq ._579 @cond_branch\n" @@ -2128,21 +2128,21 @@ void debug_sub_8010CAC() " .word gMain\n" " .word gUnknown_Debug_030043A0\n" "._579:\n" - " ldr r3, ._587\n" + " ldr r3, ._587 @ gUnknown_Debug_03004360\n" " ldrb r1, [r3]\n" " cmp r1, #0\n" " bne ._583 @cond_branch\n" " mov r0, #0x1\n" " strb r0, [r3]\n" " strb r1, [r2]\n" - " ldr r1, ._587 + 4\n" + " ldr r1, ._587 + 4 @ gBattle_BG1_X\n" " mov r2, #0x80\n" " lsl r2, r2, #0x1\n" " add r0, r2, #0\n" " strh r0, [r1]\n" " bl debug_sub_8011E5C\n" " bl debug_sub_8011E74\n" - " ldr r0, ._587 + 8\n" + " ldr r0, ._587 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2152,7 +2152,7 @@ void debug_sub_8010CAC() "._583:\n" " bl debug_sub_80125A0\n" "._578:\n" - " ldr r0, ._587 + 12\n" + " ldr r0, ._587 + 12 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x2\n" " and r0, r0, r1\n" @@ -2160,9 +2160,9 @@ void debug_sub_8010CAC() " bne ._584 @cond_branch\n" " b ._607\n" "._584:\n" - " ldr r0, ._587 + 16\n" + " ldr r0, ._587 + 16 @ gUnknown_Debug_030043A0\n" " ldrb r2, [r0]\n" - " ldr r0, ._587 + 8\n" + " ldr r0, ._587 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2171,7 +2171,7 @@ void debug_sub_8010CAC() " cmp r0, #0x4\n" " bhi ._586 @cond_branch\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._587 + 20\n" + " ldr r1, ._587 + 20 @ \n" " add r0, r0, r1\n" " ldr r0, [r0]\n" " mov pc, r0\n" @@ -2194,7 +2194,7 @@ void debug_sub_8010CAC() " bl debug_sub_8010818\n" " b ._595\n" "._592:\n" - " ldr r1, ._597\n" + " ldr r1, ._597 @ gUnknown_Debug_2023A76\n" " mov r0, #0x1f\n" " mov r2, #0xec\n" " bl debug_sub_80132C8\n" @@ -2203,7 +2203,7 @@ void debug_sub_8010CAC() " bl debug_sub_8011E74\n" " bl debug_sub_8012540\n" " bl debug_nullsub_3\n" - " ldr r0, ._597 + 4\n" + " ldr r0, ._597 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2217,7 +2217,7 @@ void debug_sub_8010CAC() " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A4\n" "._593:\n" - " ldr r1, ._600\n" + " ldr r1, ._600 @ gUnknown_Debug_2023A76\n" " mov r0, #0x1f\n" " mov r2, #0xec\n" " bl debug_sub_8013294\n" @@ -2227,7 +2227,7 @@ void debug_sub_8010CAC() "._600:\n" " .word gUnknown_Debug_2023A76\n" "._594:\n" - " ldr r3, ._604\n" + " ldr r3, ._604 @ gUnknown_Debug_2023A76\n" " add r2, r3, #0\n" " add r2, r2, #0x44\n" " ldrh r1, [r2]\n" @@ -2259,8 +2259,8 @@ void debug_sub_8010CAC() "._590:\n" " mov r0, #0x0\n" " bl debug_sub_8010B80\n" - " ldr r2, ._608\n" - " ldr r0, ._608 + 4\n" + " ldr r2, ._608 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._608 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2284,16 +2284,16 @@ void debug_sub_8010CAC() " bl debug_sub_8010AAC\n" " b ._613\n" "._611:\n" - " ldr r6, ._618\n" - " ldr r5, ._618 + 4\n" - " ldr r4, ._618 + 8\n" + " ldr r6, ._618 @ gUnknown_Debug_2023A76\n" + " ldr r5, ._618 + 4 @ gUnknown_Debug_030043A0\n" + " ldr r4, ._618 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r0, [r4]\n" " lsl r1, r0, #0x2\n" " add r1, r1, r0\n" " ldrb r0, [r5]\n" " add r1, r1, r0\n" " lsl r1, r1, #0x1\n" - " ldr r2, ._618 + 12\n" + " ldr r2, ._618 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r2]\n" " mov r3, #0x46\n" " mul r0, r0, r3\n" @@ -2314,7 +2314,7 @@ void debug_sub_8010CAC() " add r3, r0, r6\n" " mov r4, #0x0\n" " ldsh r2, [r3, r4]\n" - " ldr r4, ._618 + 16\n" + " ldr r4, ._618 + 16 @ gUnknown_Debug_821F424\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" " lsl r1, r0, #0x1\n" @@ -2329,13 +2329,13 @@ void debug_sub_8010CAC() " ldrh r0, [r0]\n" " strh r0, [r3]\n" "._613:\n" - " ldr r5, ._618 + 4\n" + " ldr r5, ._618 + 4 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r5]\n" " cmp r0, #0\n" " bne ._614 @cond_branch\n" " mov r0, #0x0\n" " bl debug_sub_8010AAC\n" - " ldr r0, ._618 + 8\n" + " ldr r0, ._618 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2344,7 +2344,7 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_8011EA0\n" "._614:\n" - " ldr r4, ._618 + 8\n" + " ldr r4, ._618 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r4]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2360,7 +2360,7 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_80123D8\n" "._607:\n" - " ldr r0, ._618 + 20\n" + " ldr r0, ._618 + 20 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x1\n" " and r0, r0, r1\n" @@ -2368,9 +2368,9 @@ void debug_sub_8010CAC() " bne ._615 @cond_branch\n" " b ._638\n" "._615:\n" - " ldr r0, ._618 + 4\n" + " ldr r0, ._618 + 4 @ gUnknown_Debug_030043A0\n" " ldrb r2, [r0]\n" - " ldr r0, ._618 + 8\n" + " ldr r0, ._618 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2379,7 +2379,7 @@ void debug_sub_8010CAC() " cmp r0, #0x4\n" " bhi ._617 @cond_branch\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._618 + 24\n" + " ldr r1, ._618 + 24 @ \n" " add r0, r0, r1\n" " ldr r0, [r0]\n" " mov pc, r0\n" @@ -2403,7 +2403,7 @@ void debug_sub_8010CAC() " bl debug_sub_8010818\n" " b ._626\n" "._623:\n" - " ldr r1, ._628\n" + " ldr r1, ._628 @ gUnknown_Debug_2023A76\n" " mov r0, #0x1f\n" " mov r2, #0xec\n" " bl debug_sub_80132C8\n" @@ -2412,7 +2412,7 @@ void debug_sub_8010CAC() " bl debug_sub_8011E74\n" " bl debug_sub_8012540\n" " bl debug_nullsub_3\n" - " ldr r0, ._628 + 4\n" + " ldr r0, ._628 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2426,7 +2426,7 @@ void debug_sub_8010CAC() " .word gUnknown_Debug_2023A76\n" " .word gUnknown_Debug_030043A4\n" "._624:\n" - " ldr r1, ._631\n" + " ldr r1, ._631 @ gUnknown_Debug_2023A76\n" " mov r0, #0x1f\n" " mov r2, #0xec\n" " bl debug_sub_8013294\n" @@ -2436,7 +2436,7 @@ void debug_sub_8010CAC() "._631:\n" " .word gUnknown_Debug_2023A76\n" "._625:\n" - " ldr r3, ._635\n" + " ldr r3, ._635 @ gUnknown_Debug_2023A76\n" " add r2, r3, #0\n" " add r2, r2, #0x44\n" " ldrh r1, [r2]\n" @@ -2468,8 +2468,8 @@ void debug_sub_8010CAC() "._621:\n" " mov r0, #0x1\n" " bl debug_sub_8010B80\n" - " ldr r2, ._639\n" - " ldr r0, ._639 + 4\n" + " ldr r2, ._639 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._639 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2493,16 +2493,16 @@ void debug_sub_8010CAC() " bl debug_sub_8010AAC\n" " b ._644\n" "._642:\n" - " ldr r6, ._650\n" - " ldr r5, ._650 + 4\n" - " ldr r4, ._650 + 8\n" + " ldr r6, ._650 @ gUnknown_Debug_2023A76\n" + " ldr r5, ._650 + 4 @ gUnknown_Debug_030043A0\n" + " ldr r4, ._650 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r0, [r4]\n" " lsl r1, r0, #0x2\n" " add r1, r1, r0\n" " ldrb r0, [r5]\n" " add r1, r1, r0\n" " lsl r1, r1, #0x1\n" - " ldr r2, ._650 + 12\n" + " ldr r2, ._650 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r2]\n" " mov r3, #0x46\n" " mul r0, r0, r3\n" @@ -2523,7 +2523,7 @@ void debug_sub_8010CAC() " add r3, r0, r6\n" " mov r4, #0x0\n" " ldsh r2, [r3, r4]\n" - " ldr r4, ._650 + 16\n" + " ldr r4, ._650 + 16 @ gUnknown_Debug_821F424\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" " lsl r1, r0, #0x1\n" @@ -2538,13 +2538,13 @@ void debug_sub_8010CAC() " ldrh r0, [r0]\n" " strh r0, [r3]\n" "._644:\n" - " ldr r5, ._650 + 4\n" + " ldr r5, ._650 + 4 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r5]\n" " cmp r0, #0\n" " bne ._645 @cond_branch\n" " mov r0, #0x0\n" " bl debug_sub_8010AAC\n" - " ldr r0, ._650 + 8\n" + " ldr r0, ._650 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2553,7 +2553,7 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_8011EA0\n" "._645:\n" - " ldr r4, ._650 + 8\n" + " ldr r4, ._650 + 8 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r4]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2569,16 +2569,16 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_80123D8\n" "._638:\n" - " ldr r0, ._650 + 20\n" + " ldr r0, ._650 + 20 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x2\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._646 @cond_branch\n" - " ldr r0, ._650 + 4\n" + " ldr r0, ._650 + 4 @ gUnknown_Debug_030043A0\n" " ldrb r1, [r0]\n" - " ldr r2, ._650 + 8\n" + " ldr r2, ._650 + 8 @ gUnknown_Debug_030043A4\n" " mov r8, r2\n" " add r7, r0, #0\n" " cmp r1, #0x4\n" @@ -2611,9 +2611,9 @@ void debug_sub_8010CAC() " bl debug_sub_8010B80\n" " b ._653\n" "._652:\n" - " ldr r4, ._655\n" + " ldr r4, ._655 @ gUnknown_Debug_2023A76\n" " lsl r1, r0, #0x1\n" - " ldr r3, ._655 + 4\n" + " ldr r3, ._655 + 4 @ gUnknown_Debug_03004360\n" " ldrb r2, [r3]\n" " mov r0, #0x46\n" " mul r0, r0, r2\n" @@ -2623,7 +2623,7 @@ void debug_sub_8010CAC() " sub r0, r0, #0xa\n" " strh r0, [r1]\n" " add r6, r3, #0\n" - " ldr r5, ._655 + 8\n" + " ldr r5, ._655 + 8 @ gUnknown_Debug_821F424\n" " b ._654\n" "._656:\n" " .align 2, 0\n" @@ -2663,13 +2663,13 @@ void debug_sub_8010CAC() " cmp r2, r0\n" " blt ._657 @cond_branch\n" "._653:\n" - " ldr r5, ._663\n" + " ldr r5, ._663 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r5]\n" " cmp r0, #0\n" " bne ._658 @cond_branch\n" " mov r0, #0x0\n" " bl debug_sub_8010AAC\n" - " ldr r0, ._663 + 4\n" + " ldr r0, ._663 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2678,7 +2678,7 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_8011EA0\n" "._658:\n" - " ldr r4, ._663 + 4\n" + " ldr r4, ._663 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r4]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2694,16 +2694,16 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_80123D8\n" "._646:\n" - " ldr r0, ._663 + 8\n" + " ldr r0, ._663 + 8 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._659 @cond_branch\n" - " ldr r0, ._663\n" + " ldr r0, ._663 @ gUnknown_Debug_030043A0\n" " ldrb r1, [r0]\n" - " ldr r2, ._663 + 4\n" + " ldr r2, ._663 + 4 @ gUnknown_Debug_030043A4\n" " mov r8, r2\n" " add r7, r0, #0\n" " cmp r1, #0x4\n" @@ -2733,9 +2733,9 @@ void debug_sub_8010CAC() " bl debug_sub_8010B80\n" " b ._666\n" "._665:\n" - " ldr r4, ._668\n" + " ldr r4, ._668 @ gUnknown_Debug_2023A76\n" " lsl r1, r0, #0x1\n" - " ldr r3, ._668 + 4\n" + " ldr r3, ._668 + 4 @ gUnknown_Debug_03004360\n" " ldrb r2, [r3]\n" " mov r0, #0x46\n" " mul r0, r0, r2\n" @@ -2745,7 +2745,7 @@ void debug_sub_8010CAC() " add r0, r0, #0xa\n" " strh r0, [r1]\n" " add r6, r3, #0\n" - " ldr r5, ._668 + 8\n" + " ldr r5, ._668 + 8 @ gUnknown_Debug_821F424\n" " b ._667\n" "._669:\n" " .align 2, 0\n" @@ -2781,13 +2781,13 @@ void debug_sub_8010CAC() " cmp r2, r1\n" " bgt ._670 @cond_branch\n" "._666:\n" - " ldr r5, ._672\n" + " ldr r5, ._672 @ gUnknown_Debug_030043A0\n" " ldrb r0, [r5]\n" " cmp r0, #0\n" " bne ._671 @cond_branch\n" " mov r0, #0x0\n" " bl debug_sub_8010AAC\n" - " ldr r0, ._672 + 4\n" + " ldr r0, ._672 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2796,7 +2796,7 @@ void debug_sub_8010CAC() " lsr r0, r0, #0x18\n" " bl debug_sub_8011EA0\n" "._671:\n" - " ldr r4, ._672 + 4\n" + " ldr r4, ._672 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r4]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2838,8 +2838,8 @@ void debug_sub_8011498() " mov r6, r9\n" " mov r5, r8\n" " push {r5, r6, r7}\n" - " ldr r2, ._687\n" - " ldr r0, ._687 + 4\n" + " ldr r2, ._687 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._687 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -2848,7 +2848,7 @@ void debug_sub_8011498() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " mov r9, r0\n" - " ldr r4, ._687 + 8\n" + " ldr r4, ._687 + 8 @ gMain\n" " ldrh r1, [r4, #0x28]\n" " mov r0, #0x81\n" " lsl r0, r0, #0x2\n" @@ -2860,7 +2860,7 @@ void debug_sub_8011498() " cmp r0, #0x4\n" " bne ._675 @cond_branch\n" " bl debug_sub_8012658\n" - " ldr r0, ._687 + 12\n" + " ldr r0, ._687 + 12 @ debug_sub_8010CAC\n" " bl SetMainCallback2\n" "._675:\n" " ldrh r0, [r4, #0x2a]\n" @@ -2875,14 +2875,14 @@ void debug_sub_8011498() " bne ._678 @cond_branch\n" "._677:\n" " bl debug_sub_8012658\n" - " ldr r0, ._687 + 16\n" + " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n" " ldrb r1, [r0]\n" " mov r2, #0x2\n" " eor r1, r1, r2\n" " strb r1, [r0]\n" " bl debug_sub_8012628\n" "._678:\n" - " ldr r0, ._687 + 8\n" + " ldr r0, ._687 + 8 @ gMain\n" " ldrh r0, [r0, #0x2a]\n" " cmp r0, #0x20\n" " beq ._679 @cond_branch\n" @@ -2890,22 +2890,22 @@ void debug_sub_8011498() " bne ._680 @cond_branch\n" "._679:\n" " bl debug_sub_8012658\n" - " ldr r0, ._687 + 16\n" + " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n" " ldrb r1, [r0]\n" " mov r2, #0x1\n" " eor r1, r1, r2\n" " strb r1, [r0]\n" " bl debug_sub_8012628\n" "._680:\n" - " ldr r0, ._687 + 8\n" + " ldr r0, ._687 + 8 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x2\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._681 @cond_branch\n" - " ldr r0, ._687 + 20\n" + " ldr r0, ._687 + 20 @ gUnknown_Debug_2023B02\n" " mov r8, r0\n" - " ldr r6, ._687 + 16\n" + " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n" " ldrb r4, [r6]\n" " lsl r4, r4, #0x1\n" " mov r0, r9\n" @@ -2914,7 +2914,7 @@ void debug_sub_8011498() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" - " ldr r5, ._687 + 24\n" + " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n" " ldrb r2, [r5]\n" " lsl r1, r2, #0x1\n" " add r1, r1, r2\n" @@ -2936,7 +2936,7 @@ void debug_sub_8011498() " add r4, r1, r0\n" " mov r0, #0x0\n" " ldsh r1, [r4, r0]\n" - " ldr r5, ._687 + 28\n" + " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n" " lsl r0, r3, #0x2\n" " add r0, r0, r3\n" " lsl r2, r0, #0x1\n" @@ -2953,15 +2953,15 @@ void debug_sub_8011498() "._682:\n" " bl debug_sub_8012294\n" "._681:\n" - " ldr r0, ._687 + 8\n" + " ldr r0, ._687 + 8 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x1\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._683 @cond_branch\n" - " ldr r1, ._687 + 20\n" + " ldr r1, ._687 + 20 @ gUnknown_Debug_2023B02\n" " mov r8, r1\n" - " ldr r6, ._687 + 16\n" + " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n" " ldrb r4, [r6]\n" " lsl r4, r4, #0x1\n" " mov r0, r9\n" @@ -2970,7 +2970,7 @@ void debug_sub_8011498() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" - " ldr r5, ._687 + 24\n" + " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n" " ldrb r2, [r5]\n" " lsl r1, r2, #0x1\n" " add r1, r1, r2\n" @@ -2992,7 +2992,7 @@ void debug_sub_8011498() " add r4, r1, r0\n" " mov r0, #0x0\n" " ldsh r1, [r4, r0]\n" - " ldr r5, ._687 + 28\n" + " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n" " lsl r0, r3, #0x2\n" " add r0, r0, r3\n" " lsl r2, r0, #0x1\n" @@ -3009,15 +3009,15 @@ void debug_sub_8011498() "._684:\n" " bl debug_sub_8012294\n" "._683:\n" - " ldr r0, ._687 + 8\n" + " ldr r0, ._687 + 8 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x2\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._685 @cond_branch\n" - " ldr r6, ._687 + 20\n" - " ldr r5, ._687 + 16\n" + " ldr r6, ._687 + 20 @ gUnknown_Debug_2023B02\n" + " ldr r5, ._687 + 16 @ gUnknown_Debug_030043A8\n" " ldrb r4, [r5]\n" " lsl r4, r4, #0x1\n" " mov r0, r9\n" @@ -3026,7 +3026,7 @@ void debug_sub_8011498() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" - " ldr r2, ._687 + 24\n" + " ldr r2, ._687 + 24 @ gUnknown_Debug_03004360\n" " ldrb r1, [r2]\n" " lsl r0, r1, #0x1\n" " add r0, r0, r1\n" @@ -3039,7 +3039,7 @@ void debug_sub_8011498() " mov sl, r5\n" " mov r8, r6\n" " add r7, r2, #0\n" - " ldr r6, ._687 + 28\n" + " ldr r6, ._687 + 28 @ gUnknown_Debug_821F564\n" " b ._686\n" "._688:\n" " .align 2, 0\n" @@ -3088,15 +3088,15 @@ void debug_sub_8011498() " blt ._689 @cond_branch\n" " bl debug_sub_8012294\n" "._685:\n" - " ldr r0, ._692\n" + " ldr r0, ._692 @ gMain\n" " ldrh r1, [r0, #0x30]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._690 @cond_branch\n" - " ldr r6, ._692 + 4\n" - " ldr r5, ._692 + 8\n" + " ldr r6, ._692 + 4 @ gUnknown_Debug_2023B02\n" + " ldr r5, ._692 + 8 @ gUnknown_Debug_030043A8\n" " ldrb r4, [r5]\n" " lsl r4, r4, #0x1\n" " mov r0, r9\n" @@ -3105,7 +3105,7 @@ void debug_sub_8011498() " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x15\n" " add r4, r4, r0\n" - " ldr r2, ._692 + 12\n" + " ldr r2, ._692 + 12 @ gUnknown_Debug_03004360\n" " ldrb r1, [r2]\n" " lsl r0, r1, #0x1\n" " add r0, r0, r1\n" @@ -3118,7 +3118,7 @@ void debug_sub_8011498() " mov sl, r5\n" " mov r8, r6\n" " add r7, r2, #0\n" - " ldr r6, ._692 + 16\n" + " ldr r6, ._692 + 16 @ gUnknown_Debug_821F564\n" " b ._691\n" "._693:\n" " .align 2, 0\n" @@ -3185,7 +3185,7 @@ void debug_sub_801174C() " add sp, sp, #0xffffffe8\n" " mov r0, #0x0\n" " mov r9, r0\n" - " ldr r1, ._704\n" + " ldr r1, ._704 @ gUnknown_020297ED\n" " mov r0, #0x1\n" " strb r0, [r1]\n" " bl Random\n" @@ -3196,11 +3196,11 @@ void debug_sub_801174C() " and r4, r4, r0\n" " lsl r4, r4, #0x18\n" " lsr r6, r4, #0x18\n" - " ldr r5, ._704 + 4\n" + " ldr r5, ._704 + 4 @ gSaveBlock2\n" " lsl r1, r6, #0x1\n" " add r1, r1, r6\n" " lsl r1, r1, #0x1\n" - " ldr r0, ._704 + 8\n" + " ldr r0, ._704 + 8 @ str_821F631\n" " add r1, r1, r0\n" " add r0, r5, #0\n" " bl StringCopy\n" @@ -3208,7 +3208,7 @@ void debug_sub_801174C() " strb r4, [r5, #0x8]\n" " bl ZeroPlayerPartyMons\n" " bl ZeroEnemyPartyMons\n" - " ldr r0, ._704 + 12\n" + " ldr r0, ._704 + 12 @ gUnknown_Debug_2023A76\n" " mov r1, #0x3c\n" " ldsh r7, [r0, r1]\n" " mov r2, r9\n" @@ -3223,17 +3223,17 @@ void debug_sub_801174C() " bgt ._696 @cond_branch\n" " str r0, [sp, #0xc]\n" "._695:\n" - " ldr r2, ._704 + 16\n" - " ldr r1, ._704 + 20\n" + " ldr r2, ._704 + 16 @ gBattleTypeFlags\n" + " ldr r1, ._704 + 20 @ gUnknown_Debug_821F598\n" " sub r0, r7, #1\n" " lsl r0, r0, #0x1\n" " add r0, r0, r1\n" " ldrh r3, [r0]\n" " strh r3, [r2]\n" - " ldr r1, ._704 + 24\n" + " ldr r1, ._704 + 24 @ gUnknown_02023A14_50\n" " mov r0, #0x8\n" " strb r0, [r1]\n" - " ldr r1, ._704 + 28\n" + " ldr r1, ._704 + 28 @ gBattleTerrain\n" " add r0, sp, #0xc\n" " ldrb r0, [r0]\n" " strb r0, [r1]\n" @@ -3243,27 +3243,27 @@ void debug_sub_801174C() " beq ._697 @cond_branch\n" " bl EnterSafariMode\n" "._697:\n" - " ldr r5, ._704 + 12\n" + " ldr r5, ._704 + 12 @ gUnknown_Debug_2023A76\n" " ldrh r0, [r5, #0x3c]\n" " sub r0, r0, #0x2\n" " lsl r0, r0, #0x10\n" " lsr r0, r0, #0x10\n" " cmp r0, #0x2\n" " bhi ._698 @cond_branch\n" - " ldr r4, ._704 + 32\n" + " ldr r4, ._704 + 32 @ gTrainerBattleOpponent\n" " bl Random\n" " mov r1, #0x7\n" " and r1, r1, r0\n" " add r1, r1, #0x1\n" " strh r1, [r4]\n" "._698:\n" - " ldr r1, ._704 + 36\n" + " ldr r1, ._704 + 36 @ gPlayerPartyCount\n" " mov r0, #0x0\n" " strb r0, [r1]\n" " mov r7, #0x0\n" "._745:\n" " lsl r0, r7, #0x1\n" - " ldr r3, ._704 + 12\n" + " ldr r3, ._704 + 12 @ gUnknown_Debug_2023A76\n" " add r1, r0, r3\n" " mov r2, #0x0\n" " ldsh r1, [r1, r2]\n" @@ -3339,14 +3339,14 @@ void debug_sub_801174C() " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" - " ldr r1, ._719\n" + " ldr r1, ._719 @ gEnemyParty\n" " add r0, r0, r1\n" - " ldr r1, ._719 + 4\n" + " ldr r1, ._719 + 4 @ gUnknown_Debug_2023A76\n" " add r1, r1, r8\n" " ldrh r1, [r1]\n" " add r2, r7, #1\n" " lsl r2, r2, #0x1\n" - " ldr r3, ._719 + 4\n" + " ldr r3, ._719 + 4 @ gUnknown_Debug_2023A76\n" " add r2, r2, r3\n" " ldrb r2, [r2]\n" " str r6, [sp]\n" @@ -3363,9 +3363,9 @@ void debug_sub_801174C() " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" - " ldr r0, ._719\n" + " ldr r0, ._719 @ gEnemyParty\n" " add r5, r1, r0\n" - " ldr r4, ._719 + 8\n" + " ldr r4, ._719 + 8 @ gUnknown_Debug_2023A7A\n" " mov r3, r8\n" " add r6, r3, r4\n" " add r0, r5, #0\n" @@ -3421,19 +3421,19 @@ void debug_sub_801174C() " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" - " ldr r1, ._726\n" + " ldr r1, ._726 @ gEnemyParty\n" " add r0, r0, r1\n" " mov r1, #0x2e\n" " add r2, sp, #0xc\n" " bl SetMonData\n" "._716:\n" - " ldr r1, ._726 + 4\n" + " ldr r1, ._726 + 4 @ gUnknown_Debug_2023A76\n" " add r1, r1, #0x46\n" " mov r2, r8\n" " add r0, r2, r1\n" " mov r3, #0x0\n" " ldsh r0, [r0, r3]\n" - " ldr r2, ._726 + 4\n" + " ldr r2, ._726 + 4 @ gUnknown_Debug_2023A76\n" " cmp r0, #0\n" " beq ._721 @cond_branch\n" " add r0, r7, #4\n" @@ -3494,14 +3494,14 @@ void debug_sub_801174C() " bl __divsi3\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" - " ldr r1, ._741\n" + " ldr r1, ._741 @ gPlayerParty\n" " add r0, r0, r1\n" - " ldr r1, ._741 + 4\n" + " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n" " add r1, r1, r8\n" " ldrh r1, [r1]\n" " add r2, r7, #1\n" " lsl r2, r2, #0x1\n" - " ldr r3, ._741 + 4\n" + " ldr r3, ._741 + 4 @ gUnknown_Debug_2023ABC\n" " add r2, r2, r3\n" " ldrb r2, [r2]\n" " str r6, [sp]\n" @@ -3511,7 +3511,7 @@ void debug_sub_801174C() " str r3, [sp, #0x8]\n" " mov r3, #0x0\n" " bl CreateMonWithGenderNatureLetter\n" - " ldr r1, ._741 + 8\n" + " ldr r1, ._741 + 8 @ gPlayerPartyCount\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" " strb r0, [r1]\n" @@ -3522,9 +3522,9 @@ void debug_sub_801174C() " mov r2, #0x64\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" - " ldr r0, ._741\n" + " ldr r0, ._741 @ gPlayerParty\n" " add r4, r1, r0\n" - " ldr r0, ._741 + 12\n" + " ldr r0, ._741 + 12 @ gUnknown_Debug_2023AC0\n" " mov r3, r8\n" " add r5, r3, r0\n" " add r0, r4, #0\n" @@ -3533,7 +3533,7 @@ void debug_sub_801174C() " bl SetMonData\n" " ldr r1, [sp, #0x10]\n" " lsl r0, r1, #0x1\n" - " ldr r2, ._741 + 16\n" + " ldr r2, ._741 + 16 @ gUnknown_Debug_2023A76\n" " add r0, r0, r2\n" " ldrh r0, [r0]\n" " sub r0, r0, #0x1\n" @@ -3548,7 +3548,7 @@ void debug_sub_801174C() "._736:\n" " ldr r3, [sp, #0x14]\n" " lsl r0, r3, #0x1\n" - " ldr r1, ._741 + 4\n" + " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n" " add r0, r0, r1\n" " mov r2, #0x0\n" " ldsh r1, [r0, r2]\n" @@ -3580,7 +3580,7 @@ void debug_sub_801174C() " bl __divsi3\n" " mov r2, #0x64\n" " mul r0, r0, r2\n" - " ldr r1, ._750\n" + " ldr r1, ._750 @ gPlayerParty\n" " add r0, r0, r1\n" " mov r1, #0x2e\n" " add r2, sp, #0xc\n" @@ -3588,7 +3588,7 @@ void debug_sub_801174C() "._738:\n" " ldr r3, [sp, #0x14]\n" " lsl r0, r3, #0x1\n" - " ldr r1, ._750 + 4\n" + " ldr r1, ._750 + 4 @ gUnknown_Debug_2023ABC\n" " add r0, r0, r1\n" " mov r2, #0x0\n" " ldsh r0, [r0, r2]\n" @@ -3599,12 +3599,12 @@ void debug_sub_801174C() " bl __divsi3\n" " mov r3, #0x64\n" " mul r0, r0, r3\n" - " ldr r1, ._750\n" + " ldr r1, ._750 @ gPlayerParty\n" " add r0, r0, r1\n" " mov r1, #0x7\n" - " ldr r2, ._750 + 8\n" + " ldr r2, ._750 + 8 @ Str_821F649\n" " bl SetMonData\n" - " ldr r2, ._750 + 12\n" + " ldr r2, ._750 + 12 @ gUnknown_02023A14_50\n" " ldrb r0, [r2]\n" " mov r1, #0x40\n" " orr r0, r0, r1\n" @@ -3619,9 +3619,9 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " mov r0, #0x64\n" " mov r8, r0\n" - " ldr r1, ._750 + 16\n" + " ldr r1, ._750 + 16 @ gUnknown_Debug_2023B02\n" " mov r9, r1\n" - " ldr r2, ._750\n" + " ldr r2, ._750 @ gPlayerParty\n" " mov sl, r2\n" "._747:\n" " mov r7, #0x0\n" @@ -3629,7 +3629,7 @@ void debug_sub_801174C() " ldr r2, [sp, #0xc]\n" " mov r0, r8\n" " mul r0, r0, r2\n" - " ldr r3, ._750 + 20\n" + " ldr r3, ._750 + 20 @ gEnemyParty\n" " add r0, r0, r3\n" " add r5, r7, #0\n" " add r5, r5, #0xd\n" @@ -3643,7 +3643,7 @@ void debug_sub_801174C() " ldr r1, [sp, #0xc]\n" " mov r0, r8\n" " mul r0, r0, r1\n" - " ldr r2, ._750 + 20\n" + " ldr r2, ._750 + 20 @ gEnemyParty\n" " add r0, r0, r2\n" " add r6, r7, #0\n" " add r6, r6, #0x11\n" @@ -3655,7 +3655,7 @@ void debug_sub_801174C() " lsl r2, r1, #0x1\n" " add r2, r2, r1\n" " lsl r2, r2, #0x2\n" - " ldr r1, ._750 + 24\n" + " ldr r1, ._750 + 24 @ gBattleMoves\n" " add r2, r2, r1\n" " add r1, r6, #0\n" " bl SetMonData\n" @@ -3664,7 +3664,7 @@ void debug_sub_801174C() " mul r0, r0, r2\n" " add r0, r0, sl\n" " lsl r2, r2, #0x3\n" - " ldr r3, ._750 + 28\n" + " ldr r3, ._750 + 28 @ gUnknown_Debug_2023B32\n" " add r1, r4, r3\n" " add r2, r2, r1\n" " add r1, r5, #0\n" @@ -3675,14 +3675,14 @@ void debug_sub_801174C() " add r0, r0, sl\n" " lsl r1, r1, #0x3\n" " add r4, r4, r1\n" - " ldr r1, ._750 + 28\n" + " ldr r1, ._750 + 28 @ gUnknown_Debug_2023B32\n" " add r4, r4, r1\n" " mov r2, #0x0\n" " ldsh r1, [r4, r2]\n" " lsl r2, r1, #0x1\n" " add r2, r2, r1\n" " lsl r2, r2, #0x2\n" - " ldr r3, ._750 + 24\n" + " ldr r3, ._750 + 24 @ gBattleMoves\n" " add r2, r2, r3\n" " add r1, r6, #0\n" " bl SetMonData\n" @@ -3694,7 +3694,7 @@ void debug_sub_801174C() " str r0, [sp, #0xc]\n" " cmp r0, #0x5\n" " ble ._747 @cond_branch\n" - " ldr r3, ._750 + 32\n" + " ldr r3, ._750 + 32 @ gUnknown_Debug_2023A76\n" " add r4, r3, #0\n" " add r4, r4, #0x44\n" " ldrh r1, [r4]\n" @@ -3702,7 +3702,7 @@ void debug_sub_801174C() " ldsh r0, [r4, r2]\n" " cmp r0, #0x8\n" " bne ._748 @cond_branch\n" - " ldr r0, ._750 + 12\n" + " ldr r0, ._750 + 12 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r2, #0x80\n" " b ._753\n" @@ -3721,7 +3721,7 @@ void debug_sub_801174C() "._748:\n" " cmp r0, #0x7\n" " bne ._752 @cond_branch\n" - " ldr r0, ._754\n" + " ldr r0, ._754 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r2, #0x20\n" " b ._753\n" @@ -3732,7 +3732,7 @@ void debug_sub_801174C() "._752:\n" " cmp r0, #0x6\n" " bne ._756 @cond_branch\n" - " ldr r2, ._759\n" + " ldr r2, ._759 @ gUnknown_02023A14_50\n" " ldrb r0, [r2]\n" " mov r1, #0x10\n" " orr r0, r0, r1\n" @@ -3742,9 +3742,9 @@ void debug_sub_801174C() " ldsh r0, [r3, r2]\n" " cmp r0, #0x5\n" " ble ._757 @cond_branch\n" - " ldr r0, ._759 + 4\n" + " ldr r0, ._759 + 4 @ gSharedMem\n" " sub r1, r1, #0x2\n" - " ldr r3, ._759 + 8\n" + " ldr r3, ._759 + 8 @ 0x160a3\n" " add r0, r0, r3\n" " b ._761\n" "._760:\n" @@ -3754,8 +3754,8 @@ void debug_sub_801174C() " .word gSharedMem\n" " .word 0x160a3\n" "._757:\n" - " ldr r0, ._762\n" - " ldr r2, ._762 + 4\n" + " ldr r0, ._762 @ gSharedMem\n" + " ldr r2, ._762 + 4 @ 0x160a3\n" " add r0, r0, r2\n" " b ._761\n" "._763:\n" @@ -3766,7 +3766,7 @@ void debug_sub_801174C() "._756:\n" " cmp r0, #0x5\n" " bne ._764 @cond_branch\n" - " ldr r0, ._766\n" + " ldr r0, ._766 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r2, #0x21\n" "._753:\n" @@ -3791,7 +3791,7 @@ void debug_sub_801174C() " and r0, r0, r3\n" " cmp r0, #0\n" " beq ._769 @cond_branch\n" - " ldr r0, ._772\n" + " ldr r0, ._772 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r2, #0x4\n" " orr r1, r1, r2\n" @@ -3801,16 +3801,16 @@ void debug_sub_801174C() " and r0, r0, r3\n" " cmp r0, #0\n" " beq ._770 @cond_branch\n" - " ldr r0, ._772\n" + " ldr r0, ._772 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r2, #0x6\n" " orr r1, r1, r2\n" " strb r1, [r0]\n" "._770:\n" - " ldr r0, ._772 + 4\n" - " ldr r1, ._772 + 8\n" + " ldr r0, ._772 + 4 @ gMain\n" + " ldr r1, ._772 + 8 @ debug_sub_80108B8\n" " str r1, [r0, #0x8]\n" - " ldr r0, ._772 + 12\n" + " ldr r0, ._772 + 12 @ unref_sub_800D684\n" " bl SetMainCallback2\n" " bl ClearBag\n" " mov r0, #0x1\n" @@ -3888,7 +3888,7 @@ void debug_sub_801174C() " mov r0, #0x50\n" " mov r1, #0x63\n" " bl AddBagItem\n" - " ldr r4, ._772 + 16\n" + " ldr r4, ._772 + 16 @ gUnknown_Debug_821F5AC\n" " mov r7, #0xe\n" "._771:\n" " add r0, r4, #0\n" @@ -3995,7 +3995,7 @@ void debug_sub_8011EA0(u8 a) " b ._815\n" "._782:\n" " lsl r0, r7, #0x2\n" - " ldr r1, ._785\n" + " ldr r1, ._785 @ \n" " add r1, r0, r1\n" " ldr r1, [r1]\n" " str r0, [sp, #0x8]\n" @@ -4044,8 +4044,8 @@ void debug_sub_8011EA0(u8 a) " mov r0, #0x0\n" " mov r1, #0x14\n" " bl debug_sub_8010A7C\n" - " ldr r6, ._823\n" - " ldr r2, ._823 + 4\n" + " ldr r6, ._823 @ gBattleTextBuff1\n" + " ldr r2, ._823 + 4 @ gUnknown_Debug_821F424\n" " ldr r0, [sp, #0x8]\n" " add r1, r0, r7\n" " lsl r1, r1, #0x1\n" @@ -4061,17 +4061,17 @@ void debug_sub_8011EA0(u8 a) " ldrb r1, [r1]\n" " mov r9, r1\n" " str r1, [sp]\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " add r1, r6, #0\n" " ldr r2, [sp, #0x4]\n" " mov r3, r8\n" " bl Text_InitWindow\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._823 + 12\n" + " ldr r1, ._823 + 12 @ gUnknown_Debug_2023A76\n" " mov sl, r1\n" " lsl r4, r7, #0x1\n" - " ldr r5, ._823 + 16\n" + " ldr r5, ._823 + 16 @ gUnknown_Debug_03004360\n" " ldrb r0, [r5]\n" " mov r7, #0x46\n" " mul r0, r0, r7\n" @@ -4092,10 +4092,10 @@ void debug_sub_8011EA0(u8 a) " lsr r3, r3, #0x18\n" " mov r0, #0x0\n" " str r0, [sp]\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " add r1, r6, #0\n" " bl Text_InitWindow\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " bl Text_PrintWindow8002F44\n" " mov r0, #0xff\n" " strb r0, [r6]\n" @@ -4107,18 +4107,18 @@ void debug_sub_8011EA0(u8 a) " ldsh r1, [r4, r0]\n" " mov r0, #0xb\n" " mul r1, r1, r0\n" - " ldr r0, ._823 + 20\n" + " ldr r0, ._823 + 20 @ gSpeciesNames\n" " add r1, r1, r0\n" " add r0, r6, #0\n" " bl StringAppend\n" " mov r1, r9\n" " str r1, [sp]\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " add r1, r6, #0\n" " ldr r2, [sp, #0x4]\n" " mov r3, r8\n" " bl Text_InitWindow\n" - " ldr r0, ._823 + 8\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" " bl Text_PrintWindow8002F44\n" " b ._848\n" "._824:\n" @@ -4131,10 +4131,10 @@ void debug_sub_8011EA0(u8 a) " .word gUnknown_Debug_03004360\n" " .word gSpeciesNames\n" "._817:\n" - " ldr r6, ._826\n" - " ldr r3, ._826 + 4\n" + " ldr r6, ._826 @ gBattleTextBuff1\n" + " ldr r3, ._826 + 4 @ gUnknown_Debug_2023A76\n" " lsl r1, r7, #0x1\n" - " ldr r0, ._826 + 8\n" + " ldr r0, ._826 + 8 @ gUnknown_Debug_03004360\n" " ldrb r2, [r0]\n" " mov r0, #0x46\n" " mul r0, r0, r2\n" @@ -4157,10 +4157,10 @@ void debug_sub_8011EA0(u8 a) " mov r0, #0x0\n" " mov r1, #0x18\n" " bl debug_sub_8010A7C\n" - " ldr r6, ._830\n" - " ldr r1, ._830 + 4\n" + " ldr r6, ._830 @ gUnknown_Debug_03004370\n" + " ldr r1, ._830 + 4 @ gBattleTextBuff1\n" " mov sl, r1\n" - " ldr r4, ._830 + 8\n" + " ldr r4, ._830 + 8 @ gUnknown_Debug_821F424\n" " ldr r2, [sp, #0x8]\n" " add r1, r2, r7\n" " lsl r1, r1, #0x1\n" @@ -4179,12 +4179,12 @@ void debug_sub_8011EA0(u8 a) " add r0, r6, #0\n" " bl Text_PrintWindow8002F44\n" " lsl r4, r7, #0x1\n" - " ldr r5, ._830 + 12\n" + " ldr r5, ._830 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r5]\n" " mov r1, #0x46\n" " mul r0, r0, r1\n" " add r0, r4, r0\n" - " ldr r2, ._830 + 16\n" + " ldr r2, ._830 + 16 @ gUnknown_Debug_2023A76\n" " add r0, r0, r2\n" " mov r2, #0x0\n" " ldsh r1, [r0, r2]\n" @@ -4213,7 +4213,7 @@ void debug_sub_8011EA0(u8 a) " mov r2, #0x46\n" " mul r0, r0, r2\n" " add r4, r4, r0\n" - " ldr r0, ._830 + 16\n" + " ldr r0, ._830 + 16 @ gUnknown_Debug_2023A76\n" " add r4, r4, r0\n" " mov r1, #0x0\n" " ldsh r0, [r4, r1]\n" @@ -4234,13 +4234,13 @@ void debug_sub_8011EA0(u8 a) " .word gUnknown_Debug_03004360\n" " .word gUnknown_Debug_2023A76\n" "._828:\n" - " ldr r1, ._833\n" + " ldr r1, ._833 @ Str_821F624\n" " mov r0, sl\n" " bl StringAppend\n" "._829:\n" - " ldr r6, ._833 + 4\n" - " ldr r1, ._833 + 8\n" - " ldr r5, ._833 + 12\n" + " ldr r6, ._833 + 4 @ gUnknown_Debug_03004370\n" + " ldr r1, ._833 + 8 @ gBattleTextBuff1\n" + " ldr r5, ._833 + 12 @ gUnknown_Debug_821F424\n" " ldr r2, [sp, #0x8]\n" " add r4, r2, r7\n" " lsl r4, r4, #0x1\n" @@ -4269,9 +4269,9 @@ void debug_sub_8011EA0(u8 a) " mov r0, #0x0\n" " mov r1, #0x4\n" " bl debug_sub_8010A7C\n" - " ldr r5, ._839\n" - " ldr r6, ._839 + 4\n" - " ldr r4, ._839 + 8\n" + " ldr r5, ._839 @ gUnknown_Debug_03004370\n" + " ldr r6, ._839 + 4 @ gBattleTextBuff1\n" + " ldr r4, ._839 + 8 @ gUnknown_Debug_821F424\n" " ldr r0, [sp, #0x8]\n" " add r1, r0, r7\n" " lsl r1, r1, #0x1\n" @@ -4290,9 +4290,9 @@ void debug_sub_8011EA0(u8 a) " add r0, r5, #0\n" " bl Text_PrintWindow8002F44\n" " mov r4, #0x0\n" - " ldr r3, ._839 + 12\n" + " ldr r3, ._839 + 12 @ gUnknown_Debug_2023A76\n" " lsl r1, r7, #0x1\n" - " ldr r0, ._839 + 16\n" + " ldr r0, ._839 + 16 @ gUnknown_Debug_03004360\n" " ldrb r2, [r0]\n" " mov r0, #0x46\n" " mul r0, r0, r2\n" @@ -4341,7 +4341,7 @@ void debug_sub_8011EA0(u8 a) " mov r4, #0x2\n" " b ._847\n" "._843:\n" - " ldr r2, ._849\n" + " ldr r2, ._849 @ gBattleTextBuff1\n" " add r1, r4, r2\n" " mov r0, #0xac\n" " strb r0, [r1]\n" @@ -4352,8 +4352,8 @@ void debug_sub_8011EA0(u8 a) " mov r0, #0xff\n" " strb r0, [r1]\n" "._825:\n" - " ldr r5, ._849 + 4\n" - " ldr r4, ._849 + 8\n" + " ldr r5, ._849 + 4 @ gUnknown_Debug_03004370\n" + " ldr r4, ._849 + 8 @ gUnknown_Debug_821F424\n" " ldr r0, [sp, #0x8]\n" " add r1, r0, r7\n" " lsl r1, r1, #0x1\n" @@ -4379,10 +4379,10 @@ void debug_sub_8011EA0(u8 a) " .word gUnknown_Debug_03004370\n" " .word gUnknown_Debug_821F424\n" "._815:\n" - " ldr r6, ._851\n" - " ldr r3, ._851 + 4\n" + " ldr r6, ._851 @ gBattleTextBuff1\n" + " ldr r3, ._851 + 4 @ gUnknown_Debug_2023A76\n" " lsl r1, r7, #0x1\n" - " ldr r0, ._851 + 8\n" + " ldr r0, ._851 + 8 @ gUnknown_Debug_03004360\n" " ldrb r2, [r0]\n" " mov r0, #0x46\n" " mul r0, r0, r2\n" @@ -4394,8 +4394,8 @@ void debug_sub_8011EA0(u8 a) " mov r2, #0x2\n" " mov r3, #0x1\n" " bl ConvertIntToDecimalStringN\n" - " ldr r5, ._851 + 12\n" - " ldr r4, ._851 + 16\n" + " ldr r5, ._851 + 12 @ gUnknown_Debug_03004370\n" + " ldr r4, ._851 + 16 @ gUnknown_Debug_821F424\n" " lsl r1, r7, #0x2\n" " add r1, r1, r7\n" " lsl r1, r1, #0x1\n" @@ -4444,8 +4444,8 @@ void debug_sub_8012294() " mov r5, r8\n" " push {r5, r6, r7}\n" " add sp, sp, #0xfffffffc\n" - " ldr r2, ._854\n" - " ldr r0, ._854 + 4\n" + " ldr r2, ._854 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._854 + 4 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" @@ -4458,23 +4458,23 @@ void debug_sub_8012294() " mov r0, #0x0\n" " mov r1, #0x18\n" " bl debug_sub_8010A7C\n" - " ldr r0, ._854 + 8\n" + " ldr r0, ._854 + 8 @ gUnknown_Debug_03004370\n" " mov sl, r0\n" - " ldr r1, ._854 + 12\n" + " ldr r1, ._854 + 12 @ gBattleTextBuff1\n" " mov r9, r1\n" - " ldr r2, ._854 + 16\n" + " ldr r2, ._854 + 16 @ gUnknown_Debug_821F564\n" " mov r8, r2\n" - " ldr r7, ._854 + 20\n" + " ldr r7, ._854 + 20 @ gUnknown_Debug_030043A8\n" " ldrb r1, [r7]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" " lsl r0, r0, #0x1\n" " add r1, r0, r2\n" " ldrh r2, [r1]\n" - " ldr r3, ._854 + 24\n" + " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n" " add r1, r0, r3\n" " ldrb r3, [r1]\n" - " ldr r1, ._854 + 28\n" + " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n" " add r0, r0, r1\n" " ldrb r0, [r0]\n" " str r0, [sp]\n" @@ -4492,13 +4492,13 @@ void debug_sub_8012294() " lsl r5, r5, #0x18\n" " lsr r5, r5, #0x15\n" " add r4, r4, r5\n" - " ldr r6, ._854 + 32\n" + " ldr r6, ._854 + 32 @ gUnknown_Debug_03004360\n" " ldrb r1, [r6]\n" " lsl r0, r1, #0x1\n" " add r0, r0, r1\n" " lsl r0, r0, #0x4\n" " add r4, r4, r0\n" - " ldr r2, ._854 + 36\n" + " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n" " add r4, r4, r2\n" " mov r3, #0x0\n" " ldsh r1, [r4, r3]\n" @@ -4531,13 +4531,13 @@ void debug_sub_8012294() " add r0, r0, r2\n" " lsl r0, r0, #0x4\n" " add r1, r1, r0\n" - " ldr r2, ._854 + 36\n" + " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n" " add r1, r1, r2\n" " mov r3, #0x0\n" " ldsh r1, [r1, r3]\n" " mov r0, #0xd\n" " mul r1, r1, r0\n" - " ldr r0, ._854 + 40\n" + " ldr r0, ._854 + 40 @ gMoveNames\n" " add r1, r1, r0\n" " mov r0, r9\n" " bl StringAppend\n" @@ -4548,10 +4548,10 @@ void debug_sub_8012294() " add r8, r8, r0\n" " mov r1, r8\n" " ldrh r2, [r1]\n" - " ldr r3, ._854 + 24\n" + " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n" " add r1, r0, r3\n" " ldrb r3, [r1]\n" - " ldr r1, ._854 + 28\n" + " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n" " add r0, r0, r1\n" " ldrb r0, [r0]\n" " str r0, [sp]\n" @@ -4604,10 +4604,10 @@ void debug_sub_80123D8(u8 a) " mov r0, #0x0\n" " mov r1, #0x12\n" " bl debug_sub_8010A7C\n" - " ldr r4, ._858\n" - " ldr r0, ._858 + 4\n" + " ldr r4, ._858 @ gUnknown_Debug_03004370\n" + " ldr r0, ._858 + 4 @ gBattleTextBuff1\n" " mov r8, r0\n" - " ldr r6, ._858 + 8\n" + " ldr r6, ._858 + 8 @ gUnknown_Debug_821F58C\n" " ldrh r1, [r6]\n" " mov sl, r1\n" " ldrb r7, [r6, #0x2]\n" @@ -4622,25 +4622,25 @@ void debug_sub_80123D8(u8 a) " add r0, r4, #0\n" " bl Text_PrintWindow8002F44\n" " lsl r5, r5, #0x1\n" - " ldr r1, ._858 + 12\n" + " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r1]\n" " mov r2, #0x46\n" " mul r0, r0, r2\n" " add r0, r5, r0\n" - " ldr r1, ._858 + 16\n" + " ldr r1, ._858 + 16 @ gUnknown_Debug_2023A76\n" " add r0, r0, r1\n" " mov r2, #0x0\n" " ldsh r1, [r0, r2]\n" " lsl r0, r1, #0x3\n" " sub r0, r0, r1\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._858 + 20\n" + " ldr r1, ._858 + 20 @ gBaseStats\n" " add r0, r0, r1\n" " ldrb r0, [r0, #0x16]\n" " mov r2, #0xd\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" - " ldr r0, ._858 + 24\n" + " ldr r0, ._858 + 24 @ gAbilityNames\n" " add r1, r1, r0\n" " mov r0, r8\n" " bl StringCopy\n" @@ -4668,25 +4668,25 @@ void debug_sub_80123D8(u8 a) " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._858 + 12\n" + " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r1]\n" " mov r2, #0x46\n" " mul r0, r0, r2\n" " add r5, r5, r0\n" - " ldr r0, ._858 + 16\n" + " ldr r0, ._858 + 16 @ gUnknown_Debug_2023A76\n" " add r5, r5, r0\n" " mov r2, #0x0\n" " ldsh r1, [r5, r2]\n" " lsl r0, r1, #0x3\n" " sub r0, r0, r1\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._858 + 20\n" + " ldr r1, ._858 + 20 @ gBaseStats\n" " add r0, r0, r1\n" " ldrb r0, [r0, #0x17]\n" " mov r2, #0xd\n" " add r1, r0, #0\n" " mul r1, r1, r2\n" - " ldr r0, ._858 + 24\n" + " ldr r0, ._858 + 24 @ gAbilityNames\n" " add r1, r1, r0\n" " mov r0, r8\n" " bl StringCopy\n" @@ -4710,12 +4710,12 @@ void debug_sub_80123D8(u8 a) " .word gBaseStats\n" " .word gAbilityNames\n" "._856:\n" - " ldr r6, ._860\n" - " ldr r1, ._860 + 4\n" + " ldr r6, ._860 @ gBattleTextBuff1\n" + " ldr r1, ._860 + 4 @ gAbilityNames\n" " add r0, r6, #0\n" " bl StringCopy\n" - " ldr r5, ._860 + 8\n" - " ldr r4, ._860 + 12\n" + " ldr r5, ._860 + 8 @ gUnknown_Debug_03004370\n" + " ldr r4, ._860 + 12 @ gUnknown_Debug_821F58C\n" " ldrh r2, [r4]\n" " ldrb r3, [r4, #0x2]\n" " ldrb r0, [r4, #0x4]\n" @@ -4760,8 +4760,8 @@ void debug_sub_8012540() asm( " push {r4, r5, r6, lr}\n" " add sp, sp, #0xfffffffc\n" - " ldr r5, ._862\n" - " ldr r0, ._862 + 4\n" + " ldr r5, ._862 @ gBattleTextBuff1\n" + " ldr r0, ._862 + 4 @ gUnknown_Debug_2023A76\n" " add r0, r0, #0x44\n" " mov r2, #0x0\n" " ldsh r1, [r0, r2]\n" @@ -4769,8 +4769,8 @@ void debug_sub_8012540() " mov r2, #0x0\n" " mov r3, #0x1\n" " bl ConvertIntToDecimalStringN\n" - " ldr r4, ._862 + 8\n" - " ldr r1, ._862 + 12\n" + " ldr r4, ._862 + 8 @ gUnknown_Debug_03004370\n" + " ldr r1, ._862 + 12 @ gUnknown_Debug_821F424\n" " mov r3, #0x9b\n" " lsl r3, r3, #0x1\n" " add r0, r1, r3\n" @@ -4817,17 +4817,17 @@ void debug_sub_80125A0() { asm( " push {r4, lr}\n" - " ldr r4, ._864\n" - " ldr r3, ._864 + 4\n" - " ldr r2, ._864 + 8\n" - " ldr r0, ._864 + 12\n" + " ldr r4, ._864 @ gSharedMem\n" + " ldr r3, ._864 + 4 @ gUnknown_Debug_821F680\n" + " ldr r2, ._864 + 8 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._864 + 12 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" " ldrb r2, [r2]\n" " add r0, r0, r2\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._864 + 16\n" + " ldr r1, ._864 + 16 @ gUnknown_Debug_03004360\n" " ldrb r2, [r1]\n" " mov r1, #0x8c\n" " mul r1, r1, r2\n" @@ -4857,17 +4857,17 @@ void debug_sub_80125E4() { asm( " push {r4, lr}\n" - " ldr r4, ._866\n" - " ldr r3, ._866 + 4\n" - " ldr r2, ._866 + 8\n" - " ldr r0, ._866 + 12\n" + " ldr r4, ._866 @ gSharedMem\n" + " ldr r3, ._866 + 4 @ gUnknown_Debug_821F680\n" + " ldr r2, ._866 + 8 @ gUnknown_Debug_030043A0\n" + " ldr r0, ._866 + 12 @ gUnknown_Debug_030043A4\n" " ldrb r1, [r0]\n" " lsl r0, r1, #0x2\n" " add r0, r0, r1\n" " ldrb r2, [r2]\n" " add r0, r0, r2\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._866 + 16\n" + " ldr r1, ._866 + 16 @ gUnknown_Debug_03004360\n" " ldrb r2, [r1]\n" " mov r1, #0x8c\n" " mul r1, r1, r2\n" @@ -4896,12 +4896,12 @@ __attribute__((naked)) void debug_sub_8012628() { asm( - " ldr r3, ._868\n" - " ldr r2, ._868 + 4\n" - " ldr r0, ._868 + 8\n" + " ldr r3, ._868 @ gSharedMem\n" + " ldr r2, ._868 + 4 @ gUnknown_Debug_821F798\n" + " ldr r0, ._868 + 8 @ gUnknown_Debug_030043A8\n" " ldrb r1, [r0]\n" " lsl r1, r1, #0x2\n" - " ldr r0, ._868 + 12\n" + " ldr r0, ._868 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r0]\n" " lsl r0, r0, #0x4\n" " add r1, r1, r0\n" @@ -4926,12 +4926,12 @@ __attribute__((naked)) void debug_sub_8012658() { asm( - " ldr r3, ._870\n" - " ldr r2, ._870 + 4\n" - " ldr r0, ._870 + 8\n" + " ldr r3, ._870 @ gSharedMem\n" + " ldr r2, ._870 + 4 @ gUnknown_Debug_821F798\n" + " ldr r0, ._870 + 8 @ gUnknown_Debug_030043A8\n" " ldrb r1, [r0]\n" " lsl r1, r1, #0x2\n" - " ldr r0, ._870 + 12\n" + " ldr r0, ._870 + 12 @ gUnknown_Debug_03004360\n" " ldrb r0, [r0]\n" " lsl r0, r0, #0x4\n" " add r1, r1, r0\n" @@ -4963,7 +4963,7 @@ void debug_sub_8012688() " mov r1, #0x0\n" " mov r4, #0xcd\n" " lsl r4, r4, #0x1\n" - " ldr r3, ._873\n" + " ldr r3, ._873 @ gUnknown_Debug_2023B62\n" " mov r2, #0x0\n" "._872:\n" " add r0, r1, r3\n" @@ -4977,16 +4977,16 @@ void debug_sub_8012688() " bl SetVBlankCallback\n" " mov r5, #0x0\n" " str r5, [sp, #0x8]\n" - " ldr r1, ._873 + 4\n" + " ldr r1, ._873 + 4 @ 0x40000d4\n" " add r0, sp, #0x8\n" " str r0, [r1]\n" " mov r0, #0xc0\n" " lsl r0, r0, #0x13\n" " str r0, [r1, #0x4]\n" - " ldr r0, ._873 + 8\n" + " ldr r0, ._873 + 8 @ 0x85006000\n" " str r0, [r1, #0x8]\n" " ldr r0, [r1, #0x8]\n" - " ldr r0, ._873 + 12\n" + " ldr r0, ._873 + 12 @ 0x400004c\n" " strh r5, [r0]\n" " sub r0, r0, #0xc\n" " strh r5, [r0]\n" @@ -5000,28 +5000,28 @@ void debug_sub_8012688() " strh r5, [r0]\n" " add r0, r0, #0x2\n" " strh r5, [r0]\n" - " ldr r4, ._873 + 16\n" + " ldr r4, ._873 + 16 @ gWindowTemplate_81E6C58\n" " add r0, r4, #0\n" " bl Text_LoadWindowTemplate\n" " bl ResetPaletteFade\n" - " ldr r0, ._873 + 20\n" + " ldr r0, ._873 + 20 @ gBattle_BG0_X\n" " strh r5, [r0]\n" - " ldr r1, ._873 + 24\n" + " ldr r1, ._873 + 24 @ gBattle_BG0_Y\n" " mov r0, #0xa0\n" " strh r0, [r1]\n" - " ldr r0, ._873 + 28\n" + " ldr r0, ._873 + 28 @ gBattle_BG1_X\n" " strh r5, [r0]\n" - " ldr r0, ._873 + 32\n" + " ldr r0, ._873 + 32 @ gBattle_BG1_Y\n" " strh r5, [r0]\n" - " ldr r0, ._873 + 36\n" + " ldr r0, ._873 + 36 @ gBattle_BG2_X\n" " strh r5, [r0]\n" - " ldr r0, ._873 + 40\n" + " ldr r0, ._873 + 40 @ gBattle_BG2_Y\n" " strh r5, [r0]\n" - " ldr r0, ._873 + 44\n" + " ldr r0, ._873 + 44 @ gBattle_BG3_X\n" " strh r5, [r0]\n" - " ldr r0, ._873 + 48\n" + " ldr r0, ._873 + 48 @ gBattle_BG3_Y\n" " strh r5, [r0]\n" - " ldr r1, ._873 + 52\n" + " ldr r1, ._873 + 52 @ gBattleTerrain\n" " mov r0, #0x9\n" " strb r0, [r1]\n" " bl sub_800D6D4\n" @@ -5029,20 +5029,20 @@ void debug_sub_8012688() " bl ResetSpriteData\n" " bl ResetTasks\n" " bl FreeAllSpritePalettes\n" - " ldr r1, ._873 + 56\n" + " ldr r1, ._873 + 56 @ gReservedSpritePaletteCount\n" " mov r0, #0x4\n" " strb r0, [r1]\n" - " ldr r6, ._873 + 60\n" + " ldr r6, ._873 + 60 @ gCurrentMove\n" " mov r0, #0x1\n" " strh r0, [r6]\n" - " ldr r0, ._873 + 64\n" + " ldr r0, ._873 + 64 @ gUnknown_03004210\n" " add r1, r4, #0\n" " bl Text_InitWindowWithTemplate\n" " ldrh r2, [r6]\n" " lsl r0, r2, #0x3\n" - " ldr r1, ._873 + 68\n" + " ldr r1, ._873 + 68 @ gMonFrontPicTable\n" " add r0, r0, r1\n" - " ldr r1, ._873 + 72\n" + " ldr r1, ._873 + 72 @ gMonFrontPicCoords\n" " mov r8, r1\n" " lsl r2, r2, #0x2\n" " add r2, r2, r8\n" @@ -5050,13 +5050,13 @@ void debug_sub_8012688() " ldrb r2, [r2, #0x1]\n" " mov r3, #0x80\n" " lsl r3, r3, #0x12\n" - " ldr r4, ._873 + 76\n" + " ldr r4, ._873 + 76 @ gUnknown_081FAF4C\n" " ldr r4, [r4, #0x4]\n" " str r4, [sp]\n" " ldrh r4, [r6]\n" " str r4, [sp, #0x4]\n" " bl DecompressPicFromTable_2\n" - " ldr r1, ._873 + 80\n" + " ldr r1, ._873 + 80 @ gMonPaletteTable\n" " ldrh r0, [r6]\n" " lsl r0, r0, #0x3\n" " add r0, r0, r1\n" @@ -5068,7 +5068,7 @@ void debug_sub_8012688() " ldrh r0, [r6]\n" " mov r1, #0x1\n" " bl GetMonSpriteTemplate_803C56C\n" - " ldr r0, ._873 + 84\n" + " ldr r0, ._873 + 84 @ gUnknown_02024E8C\n" " ldrh r1, [r6]\n" " lsl r1, r1, #0x2\n" " add r1, r1, r8\n" @@ -5080,14 +5080,14 @@ void debug_sub_8012688() " add r4, r0, #0\n" " lsl r4, r4, #0x18\n" " lsr r4, r4, #0x18\n" - " ldr r3, ._873 + 88\n" + " ldr r3, ._873 + 88 @ gSprites\n" " lsl r1, r4, #0x4\n" " add r1, r1, r4\n" " lsl r1, r1, #0x2\n" " add r0, r3, #0\n" " add r0, r0, #0x1c\n" " add r0, r1, r0\n" - " ldr r2, ._873 + 92\n" + " ldr r2, ._873 + 92 @ nullsub_37\n" " str r2, [r0]\n" " add r1, r1, r3\n" " ldrb r2, [r1, #0x5]\n" @@ -5102,24 +5102,24 @@ void debug_sub_8012688() " lsl r2, r2, #0x5\n" " add r0, r2, #0\n" " strh r0, [r1]\n" - " ldr r0, ._873 + 96\n" + " ldr r0, ._873 + 96 @ debug_nullsub_45\n" " bl SetHBlankCallback\n" - " ldr r0, ._873 + 100\n" + " ldr r0, ._873 + 100 @ debug_sub_8011DD4\n" " bl SetVBlankCallback\n" " bl m4aMPlayAllStop\n" - " ldr r0, ._873 + 104\n" + " ldr r0, ._873 + 104 @ debug_sub_8012D10\n" " mov r1, #0x0\n" " bl CreateTask\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" - " ldr r2, ._873 + 108\n" + " ldr r2, ._873 + 108 @ gTasks\n" " lsl r1, r0, #0x2\n" " add r1, r1, r0\n" " lsl r1, r1, #0x3\n" " add r1, r1, r2\n" " strh r5, [r1, #0x8]\n" " strh r4, [r1, #0xa]\n" - " ldr r0, ._873 + 112\n" + " ldr r0, ._873 + 112 @ debug_sub_8012878\n" " bl SetMainCallback2\n" " add sp, sp, #0xc\n" " pop {r3}\n" @@ -5170,17 +5170,17 @@ void debug_sub_8012878() " push {lr}\n" " bl AnimateSprites\n" " bl BuildOamBuffer\n" - " ldr r0, ._876\n" + " ldr r0, ._876 @ gUnknown_03004210\n" " bl Text_UpdateWindowInBattle\n" " bl UpdatePaletteFade\n" " bl RunTasks\n" - " ldr r0, ._876 + 4\n" + " ldr r0, ._876 + 4 @ gMain\n" " ldrh r1, [r0, #0x2c]\n" " mov r0, #0x82\n" " lsl r0, r0, #0x1\n" " cmp r1, r0\n" " bne ._875 @cond_branch\n" - " ldr r0, ._876 + 8\n" + " ldr r0, ._876 + 8 @ debug_sub_80108B8\n" " bl SetMainCallback2\n" "._875:\n" " pop {r0}\n" @@ -5206,8 +5206,8 @@ void debug_sub_80128B4() " mov r0, #0x0\n" " mov r1, #0x9\n" " bl debug_sub_8010A7C\n" - " ldr r5, ._878\n" - " ldr r4, ._878 + 4\n" + " ldr r5, ._878 @ gUnknown_03004210\n" + " ldr r4, ._878 + 4 @ gBattleTextBuff1\n" " mov r0, #0x23\n" " mov r8, r0\n" " str r0, [sp]\n" @@ -5218,7 +5218,7 @@ void debug_sub_80128B4() " bl Text_InitWindow\n" " add r0, r5, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r6, ._878 + 8\n" + " ldr r6, ._878 + 8 @ gCurrentMove\n" " ldrh r1, [r6]\n" " add r0, r4, #0\n" " mov r2, #0x2\n" @@ -5231,7 +5231,7 @@ void debug_sub_80128B4() " ldrh r1, [r6]\n" " mov r0, #0xb\n" " mul r1, r1, r0\n" - " ldr r0, ._878 + 12\n" + " ldr r0, ._878 + 12 @ gSpeciesNames\n" " add r1, r1, r0\n" " add r0, r4, #0\n" " bl StringAppend\n" @@ -5277,8 +5277,8 @@ void debug_sub_8012938() " mov r0, #0x0\n" " mov r1, #0x7\n" " bl debug_sub_8010A7C\n" - " ldr r6, ._880\n" - " ldr r4, ._880 + 4\n" + " ldr r6, ._880 @ gUnknown_03004210\n" + " ldr r4, ._880 + 4 @ gBattleTextBuff1\n" " mov r0, #0x25\n" " mov r8, r0\n" " str r0, [sp]\n" @@ -5289,13 +5289,13 @@ void debug_sub_8012938() " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._880 + 8\n" + " ldr r1, ._880 + 8 @ Str_821F7B8\n" " add r0, r4, #0\n" " bl StringCopy\n" " add r0, r4, #4\n" - " ldr r1, ._880 + 12\n" + " ldr r1, ._880 + 12 @ gUnknown_Debug_2023B62\n" " mov sl, r1\n" - " ldr r2, ._880 + 16\n" + " ldr r2, ._880 + 16 @ gCurrentMove\n" " mov r9, r2\n" " ldrh r1, [r2]\n" " sub r1, r1, #0x1\n" @@ -5313,8 +5313,8 @@ void debug_sub_8012938() " bl Text_InitWindow\n" " add r0, r6, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r2, ._880 + 20\n" - " ldr r1, ._880 + 24\n" + " ldr r2, ._880 + 20 @ gSprites\n" + " ldr r1, ._880 + 24 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -5365,12 +5365,12 @@ void debug_sub_80129F8() " add r5, r0, #0\n" " lsl r5, r5, #0x18\n" " lsr r5, r5, #0x18\n" - " ldr r6, ._882\n" + " ldr r6, ._882 @ gCurrentMove\n" " ldrh r2, [r6]\n" " lsl r0, r2, #0x3\n" - " ldr r1, ._882 + 4\n" + " ldr r1, ._882 + 4 @ gMonFrontPicTable\n" " add r0, r0, r1\n" - " ldr r1, ._882 + 8\n" + " ldr r1, ._882 + 8 @ gMonFrontPicCoords\n" " mov r8, r1\n" " lsl r2, r2, #0x2\n" " add r2, r2, r8\n" @@ -5378,13 +5378,13 @@ void debug_sub_80129F8() " ldrb r2, [r2, #0x1]\n" " mov r3, #0x80\n" " lsl r3, r3, #0x12\n" - " ldr r4, ._882 + 12\n" + " ldr r4, ._882 + 12 @ gUnknown_081FAF4C\n" " ldr r4, [r4, #0x4]\n" " str r4, [sp]\n" " ldrh r4, [r6]\n" " str r4, [sp, #0x4]\n" " bl DecompressPicFromTable_2\n" - " ldr r1, ._882 + 16\n" + " ldr r1, ._882 + 16 @ gMonPaletteTable\n" " ldrh r0, [r6]\n" " lsl r0, r0, #0x3\n" " add r0, r0, r1\n" @@ -5393,8 +5393,8 @@ void debug_sub_80129F8() " lsl r1, r1, #0x1\n" " mov r2, #0x20\n" " bl LoadCompressedPalette\n" - " ldr r4, ._882 + 20\n" - " ldr r0, ._882 + 24\n" + " ldr r4, ._882 + 20 @ gSprites\n" + " ldr r0, ._882 + 24 @ gTasks\n" " lsl r2, r5, #0x2\n" " add r2, r2, r5\n" " lsl r2, r2, #0x3\n" @@ -5417,7 +5417,7 @@ void debug_sub_80129F8() " add r1, r1, r0\n" " lsl r1, r1, #0x2\n" " add r1, r1, r4\n" - " ldr r3, ._882 + 28\n" + " ldr r3, ._882 + 28 @ gUnknown_Debug_2023B62\n" " ldrh r0, [r6]\n" " sub r0, r0, #0x1\n" " add r0, r0, r3\n" @@ -5462,8 +5462,8 @@ void debug_sub_8012AC0() " lsr r5, r0, #0x18\n" " lsl r1, r1, #0x18\n" " lsr r6, r1, #0x18\n" - " ldr r3, ._885\n" - " ldr r4, ._885 + 4\n" + " ldr r3, ._885 @ gCurrentMove\n" + " ldr r4, ._885 + 4 @ gBaseStats\n" " b ._884\n" "._886:\n" " .align 2, 0\n" @@ -5484,12 +5484,12 @@ void debug_sub_8012AC0() " lsl r0, r0, #0x10\n" " cmp r0, #0\n" " bne ._888 @cond_branch\n" - " ldr r1, ._891\n" + " ldr r1, ._891 @ 0x19b\n" " add r0, r1, #0\n" " strh r0, [r2]\n" "._888:\n" " ldrh r1, [r2]\n" - " ldr r0, ._891\n" + " ldr r0, ._891 @ 0x19b\n" " cmp r1, r0\n" " bne ._889 @cond_branch\n" " mov r0, #0x1\n" @@ -5526,11 +5526,11 @@ void debug_sub_8012B2C() asm( " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x11\n" - " ldr r1, ._893\n" + " ldr r1, ._893 @ 0x600c772\n" " add r2, r0, r1\n" " mov r1, #0x1\n" " strh r1, [r2]\n" - " ldr r1, ._893 + 4\n" + " ldr r1, ._893 + 4 @ 0x600c7b2\n" " add r0, r0, r1\n" " mov r1, #0x2\n" " strh r1, [r0]\n" @@ -5550,12 +5550,12 @@ void debug_sub_8012B4C() asm( " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x11\n" - " ldr r2, ._895\n" + " ldr r2, ._895 @ 0x600c772\n" " add r1, r0, r2\n" - " ldr r3, ._895 + 4\n" + " ldr r3, ._895 + 4 @ 0x1016\n" " add r2, r3, #0\n" " strh r2, [r1]\n" - " ldr r1, ._895 + 8\n" + " ldr r1, ._895 + 8 @ 0x600c7b2\n" " add r0, r0, r1\n" " strh r2, [r0]\n" " bx lr\n" @@ -5593,7 +5593,7 @@ void debug_sub_8012B70() " bl debug_sub_8012938\n" " add r0, r5, #0\n" " bl debug_sub_80129F8\n" - " ldr r1, ._899\n" + " ldr r1, ._899 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -5611,15 +5611,15 @@ void debug_sub_8012B70() " mov r2, #0x1d\n" " mov r3, #0x21\n" " bl sub_802BBD4\n" - " ldr r0, ._901\n" + " ldr r0, ._901 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" " add r4, r4, r0\n" " mov r0, #0x2\n" " strh r0, [r4, #0x8]\n" - " ldr r5, ._901 + 4\n" - " ldr r1, ._901 + 8\n" + " ldr r5, ._901 + 4 @ gUnknown_03004210\n" + " ldr r1, ._901 + 8 @ Str_821F7DA\n" " mov r2, #0xa4\n" " lsl r2, r2, #0x2\n" " mov r0, #0x1d\n" @@ -5663,8 +5663,8 @@ void debug_sub_8012C08() " mov r0, #0x0\n" " mov r1, #0x9\n" " bl debug_sub_8010A7C\n" - " ldr r7, ._905\n" - " ldr r5, ._905 + 4\n" + " ldr r7, ._905 @ gUnknown_03004210\n" + " ldr r5, ._905 + 4 @ gBattleTextBuff1\n" " mov r0, #0x23\n" " mov r8, r0\n" " str r0, [sp]\n" @@ -5696,14 +5696,14 @@ void debug_sub_8012C08() " bl sub_802BBD4\n" " cmp r4, #0\n" " beq ._903 @cond_branch\n" - " ldr r1, ._905 + 8\n" + " ldr r1, ._905 + 8 @ gTasks\n" " lsl r4, r6, #0x2\n" " add r0, r4, r6\n" " lsl r0, r0, #0x3\n" " add r0, r0, r1\n" " mov r1, #0x4\n" " strh r1, [r0, #0x8]\n" - " ldr r1, ._905 + 12\n" + " ldr r1, ._905 + 12 @ gUnknown_Debug_821F7F3\n" " mov r0, r8\n" " str r0, [sp]\n" " add r0, r7, #0\n" @@ -5719,14 +5719,14 @@ void debug_sub_8012C08() " .word gTasks\n" " .word gUnknown_Debug_821F7F3\n" "._903:\n" - " ldr r1, ._907\n" + " ldr r1, ._907 @ gTasks\n" " lsl r4, r6, #0x2\n" " add r0, r4, r6\n" " lsl r0, r0, #0x3\n" " add r0, r0, r1\n" " mov r1, #0x3\n" " strh r1, [r0, #0x8]\n" - " ldr r1, ._907 + 4\n" + " ldr r1, ._907 + 4 @ Str_821F7EA\n" " mov r0, r8\n" " str r0, [sp]\n" " add r0, r7, #0\n" @@ -5735,10 +5735,10 @@ void debug_sub_8012C08() " bl Text_InitWindow\n" "._904:\n" " add r5, r4, #0\n" - " ldr r4, ._907 + 8\n" + " ldr r4, ._907 + 8 @ gUnknown_03004210\n" " add r0, r4, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._907 + 12\n" + " ldr r1, ._907 + 12 @ BattleText_YesNo\n" " mov r2, #0xa4\n" " lsl r2, r2, #0x2\n" " mov r0, #0x1d\n" @@ -5748,7 +5748,7 @@ void debug_sub_8012C08() " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._907\n" + " ldr r1, ._907 @ gTasks\n" " add r0, r5, r6\n" " lsl r0, r0, #0x3\n" " add r0, r0, r1\n" @@ -5781,7 +5781,7 @@ void debug_sub_8012D10() " add sp, sp, #0xfffffffc\n" " lsl r0, r0, #0x18\n" " lsr r5, r0, #0x18\n" - " ldr r1, ._911\n" + " ldr r1, ._911 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -5793,7 +5793,7 @@ void debug_sub_8012D10() " b ._1067\n" "._909:\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._911 + 4\n" + " ldr r1, ._911 + 4 @ \n" " add r0, r0, r1\n" " ldr r0, [r0]\n" " mov pc, r0\n" @@ -5812,8 +5812,8 @@ void debug_sub_8012D10() " bl debug_sub_80128B4\n" " add r0, r5, #0\n" " bl debug_sub_8012938\n" - " ldr r4, ._920\n" - " ldr r1, ._920 + 4\n" + " ldr r4, ._920 @ gUnknown_03004210\n" + " ldr r1, ._920 + 4 @ Str_821F7BD\n" " mov r2, #0xc8\n" " lsl r2, r2, #0x1\n" " mov r0, #0x23\n" @@ -5823,7 +5823,7 @@ void debug_sub_8012D10() " bl Text_InitWindow\n" " add r0, r4, #0\n" " bl Text_PrintWindow8002F44\n" - " ldr r1, ._920 + 8\n" + " ldr r1, ._920 + 8 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -5840,7 +5840,7 @@ void debug_sub_8012D10() " .word Str_821F7BD\n" " .word gTasks\n" "._915:\n" - " ldr r2, ._924\n" + " ldr r2, ._924 @ gMain\n" " ldrh r1, [r2, #0x2e]\n" " mov r0, #0x40\n" " and r0, r0, r1\n" @@ -5848,7 +5848,7 @@ void debug_sub_8012D10() " beq ._922 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._924 + 4\n" + " ldr r0, ._924 + 4 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -5872,7 +5872,7 @@ void debug_sub_8012D10() " beq ._926 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._928\n" + " ldr r0, ._928 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -5893,7 +5893,7 @@ void debug_sub_8012D10() " beq ._930 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._932\n" + " ldr r0, ._932 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -5916,7 +5916,7 @@ void debug_sub_8012D10() " beq ._934 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._936\n" + " ldr r0, ._936 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -5948,7 +5948,7 @@ void debug_sub_8012D10() " beq ._938 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r1, ._943\n" + " ldr r1, ._943 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -5976,8 +5976,8 @@ void debug_sub_8012D10() "._946:\n" " b ._1067\n" "._941:\n" - " ldr r1, ._952\n" - " ldr r0, ._952 + 4\n" + " ldr r1, ._952 @ gUnknown_Debug_2023B62\n" + " ldr r0, ._952 + 4 @ gCurrentMove\n" " ldrh r0, [r0]\n" " sub r0, r0, #0x1\n" " add r1, r0, r1\n" @@ -5998,7 +5998,7 @@ void debug_sub_8012D10() " mov r0, #0x1\n" " b ._997\n" "._945:\n" - " ldr r1, ._957\n" + " ldr r1, ._957 @ gCurrentMove\n" " ldrh r2, [r1]\n" " mov r0, #0xcd\n" " lsl r0, r0, #0x1\n" @@ -6022,7 +6022,7 @@ void debug_sub_8012D10() " beq ._960 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r1, ._966\n" + " ldr r1, ._966 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -6047,8 +6047,8 @@ void debug_sub_8012D10() " beq ._968 @cond_branch\n" " b ._990\n" "._964:\n" - " ldr r1, ._973\n" - " ldr r0, ._973 + 4\n" + " ldr r1, ._973 @ gUnknown_Debug_2023B62\n" + " ldr r0, ._973 + 4 @ gCurrentMove\n" " ldrh r0, [r0]\n" " sub r0, r0, #0x1\n" " add r1, r0, r1\n" @@ -6066,7 +6066,7 @@ void debug_sub_8012D10() " .word gUnknown_Debug_2023B62\n" " .word gCurrentMove\n" "._968:\n" - " ldr r1, ._977\n" + " ldr r1, ._977 @ gCurrentMove\n" " ldrh r0, [r1]\n" " cmp r0, #0x1\n" " bls ._975 @cond_branch\n" @@ -6077,7 +6077,7 @@ void debug_sub_8012D10() "._977:\n" " .word gCurrentMove\n" "._975:\n" - " ldr r2, ._980\n" + " ldr r2, ._980 @ 0x19b\n" " add r0, r2, #0\n" " b ._979\n" "._981:\n" @@ -6092,7 +6092,7 @@ void debug_sub_8012D10() " beq ._982 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r1, ._987\n" + " ldr r1, ._987 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -6115,8 +6115,8 @@ void debug_sub_8012D10() " beq ._989 @cond_branch\n" " b ._990\n" "._985:\n" - " ldr r3, ._995\n" - " ldr r2, ._995 + 4\n" + " ldr r3, ._995 @ gUnknown_Debug_2023B62\n" + " ldr r2, ._995 + 4 @ gCurrentMove\n" " ldrh r0, [r2]\n" " sub r0, r0, #0x1\n" " add r1, r0, r3\n" @@ -6145,11 +6145,11 @@ void debug_sub_8012D10() " mov r0, #0x1\n" " b ._997\n" "._989:\n" - " ldr r3, ._1000\n" + " ldr r3, ._1000 @ gCurrentMove\n" " ldrh r2, [r3]\n" " add r1, r2, #0\n" " add r1, r1, #0xa\n" - " ldr r0, ._1000 + 4\n" + " ldr r0, ._1000 + 4 @ 0x19b\n" " cmp r1, r0\n" " bgt ._998 @cond_branch\n" " strh r1, [r3]\n" @@ -6160,7 +6160,7 @@ void debug_sub_8012D10() " .word gCurrentMove\n" " .word 0x19b\n" "._998:\n" - " ldr r1, ._1003\n" + " ldr r1, ._1003 @ 0xfffffe70\n" " add r0, r2, r1\n" " strh r0, [r3]\n" " b ._1025\n" @@ -6178,7 +6178,7 @@ void debug_sub_8012D10() "._1005:\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r1, ._1011\n" + " ldr r1, ._1011 @ gTasks\n" " lsl r0, r5, #0x2\n" " add r0, r0, r5\n" " lsl r0, r0, #0x3\n" @@ -6203,8 +6203,8 @@ void debug_sub_8012D10() " beq ._1014 @cond_branch\n" " b ._1067\n" "._1009:\n" - " ldr r1, ._1020\n" - " ldr r0, ._1020 + 4\n" + " ldr r1, ._1020 @ gUnknown_Debug_2023B62\n" + " ldr r0, ._1020 + 4 @ gCurrentMove\n" " ldrh r0, [r0]\n" " sub r0, r0, #0x1\n" " add r2, r0, r1\n" @@ -6238,7 +6238,7 @@ void debug_sub_8012D10() " bl debug_sub_8012AC0\n" " b ._1067\n" "._1013:\n" - " ldr r2, ._1026\n" + " ldr r2, ._1026 @ gCurrentMove\n" " ldrh r0, [r2]\n" " add r1, r0, #0\n" " sub r1, r1, #0xa\n" @@ -6268,7 +6268,7 @@ void debug_sub_8012D10() " bl debug_sub_8012B70\n" " b ._1067\n" "._916:\n" - " ldr r0, ._1032\n" + " ldr r0, ._1032 @ gMain\n" " ldrh r1, [r0, #0x2e]\n" " mov r0, #0x40\n" " and r0, r0, r1\n" @@ -6276,7 +6276,7 @@ void debug_sub_8012D10() " beq ._1030 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1032 + 4\n" + " ldr r0, ._1032 + 4 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -6301,7 +6301,7 @@ void debug_sub_8012D10() " beq ._1035 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1037\n" + " ldr r0, ._1037 @ gTasks\n" " lsl r1, r5, #0x2\n" " add r1, r1, r5\n" " lsl r1, r1, #0x3\n" @@ -6325,7 +6325,7 @@ void debug_sub_8012D10() " bl PlaySE\n" " b ._1063\n" "._917:\n" - " ldr r0, ._1044\n" + " ldr r0, ._1044 @ gMain\n" " ldrh r1, [r0, #0x2e]\n" " mov r0, #0x40\n" " and r0, r0, r1\n" @@ -6333,7 +6333,7 @@ void debug_sub_8012D10() " beq ._1042 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1044 + 4\n" + " ldr r0, ._1044 + 4 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -6358,7 +6358,7 @@ void debug_sub_8012D10() " beq ._1047 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1050\n" + " ldr r0, ._1050 @ gTasks\n" " lsl r1, r5, #0x2\n" " add r1, r1, r5\n" " lsl r1, r1, #0x3\n" @@ -6367,8 +6367,8 @@ void debug_sub_8012D10() " ldsh r0, [r1, r2]\n" " cmp r0, #0\n" " bne ._1063 @cond_branch\n" - " ldr r1, ._1050 + 4\n" - " ldr r2, ._1050 + 8\n" + " ldr r1, ._1050 + 4 @ gUnknown_Debug_2023B62\n" + " ldr r2, ._1050 + 8 @ 0x19b\n" " mov r0, #0x1f\n" " bl debug_sub_80132C8\n" " b ._1063\n" @@ -6387,7 +6387,7 @@ void debug_sub_8012D10() " bl PlaySE\n" " b ._1063\n" "._918:\n" - " ldr r0, ._1056\n" + " ldr r0, ._1056 @ gMain\n" " ldrh r1, [r0, #0x2e]\n" " mov r0, #0x40\n" " and r0, r0, r1\n" @@ -6395,7 +6395,7 @@ void debug_sub_8012D10() " beq ._1054 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1056 + 4\n" + " ldr r0, ._1056 + 4 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -6417,7 +6417,7 @@ void debug_sub_8012D10() "._1046:\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1060\n" + " ldr r0, ._1060 @ gTasks\n" " lsl r4, r5, #0x2\n" " add r4, r4, r5\n" " lsl r4, r4, #0x3\n" @@ -6440,7 +6440,7 @@ void debug_sub_8012D10() " beq ._1062 @cond_branch\n" " mov r0, #0x5\n" " bl PlaySE\n" - " ldr r0, ._1065\n" + " ldr r0, ._1065 @ gTasks\n" " lsl r1, r5, #0x2\n" " add r1, r1, r5\n" " lsl r1, r1, #0x3\n" @@ -6449,8 +6449,8 @@ void debug_sub_8012D10() " ldsh r0, [r1, r2]\n" " cmp r0, #0\n" " bne ._1063 @cond_branch\n" - " ldr r1, ._1065 + 4\n" - " ldr r2, ._1065 + 8\n" + " ldr r1, ._1065 + 4 @ gUnknown_Debug_2023B62\n" + " ldr r2, ._1065 + 8 @ 0x19b\n" " mov r0, #0x1f\n" " bl debug_sub_8013294\n" "._1063:\n" @@ -6810,7 +6810,7 @@ void debug_sub_80138CC() { asm( " push {lr}\n" - " ldr r0, ._1167\n" + " ldr r0, ._1167 @ gActiveBank\n" " ldrb r0, [r0]\n" " bl GetBankSide\n" " lsl r0, r0, #0x18\n" @@ -6818,8 +6818,8 @@ void debug_sub_80138CC() " beq ._1163 @cond_branch\n" " b ._1186\n" "._1163:\n" - " ldr r1, ._1167 + 4\n" - " ldr r2, ._1167 + 8\n" + " ldr r1, ._1167 + 4 @ gSharedMem\n" + " ldr r2, ._1167 + 8 @ 0x160fd\n" " add r0, r1, r2\n" " ldrb r0, [r0]\n" " add r2, r1, #0\n" @@ -6828,7 +6828,7 @@ void debug_sub_80138CC() " b ._1186\n" "._1165:\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._1167 + 12\n" + " ldr r1, ._1167 + 12 @ \n" " add r0, r0, r1\n" " ldr r0, [r0]\n" " mov pc, r0\n" @@ -6846,16 +6846,16 @@ void debug_sub_80138CC() " .word ._1173\n" " .word ._1174\n" "._1170:\n" - " ldr r1, ._1177\n" - " ldr r0, ._1177 + 4\n" + " ldr r1, ._1177 @ gBattleBankFunc\n" + " ldr r0, ._1177 + 4 @ gActiveBank\n" " ldrb r0, [r0]\n" " lsl r0, r0, #0x2\n" " add r0, r0, r1\n" " ldr r1, [r0]\n" - " ldr r0, ._1177 + 8\n" + " ldr r0, ._1177 + 8 @ sub_802C098\n" " cmp r1, r0\n" " bne ._1186 @cond_branch\n" - " ldr r0, ._1177 + 12\n" + " ldr r0, ._1177 + 12 @ 0x160fd\n" " add r1, r2, r0\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" @@ -6868,16 +6868,16 @@ void debug_sub_80138CC() " .word sub_802C098+1\n" " .word 0x160fd\n" "._1171:\n" - " ldr r1, ._1180\n" + " ldr r1, ._1180 @ gMain\n" " mov r0, #0x1\n" " strh r0, [r1, #0x2c]\n" " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1180 + 4\n" + " ldr r0, ._1180 + 4 @ 0x160fd\n" " add r1, r2, r0\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" " strb r0, [r1]\n" - " ldr r0, ._1180 + 8\n" + " ldr r0, ._1180 + 8 @ 0x160fe\n" " add r1, r2, r0\n" " mov r0, #0x80\n" " b ._1187\n" @@ -6888,7 +6888,7 @@ void debug_sub_80138CC() " .word 0x160fd\n" " .word 0x160fe\n" "._1172:\n" - " ldr r0, ._1184\n" + " ldr r0, ._1184 @ 0x160fe\n" " add r3, r2, r0\n" " ldrb r0, [r3]\n" " sub r0, r0, #0x1\n" @@ -6896,11 +6896,11 @@ void debug_sub_80138CC() " lsl r0, r0, #0x18\n" " cmp r0, #0\n" " bne ._1186 @cond_branch\n" - " ldr r1, ._1184 + 4\n" + " ldr r1, ._1184 + 4 @ gMain\n" " mov r0, #0x1\n" " strh r0, [r1, #0x2c]\n" " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1184 + 8\n" + " ldr r0, ._1184 + 8 @ 0x160fd\n" " add r1, r2, r0\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" @@ -6915,7 +6915,7 @@ void debug_sub_80138CC() " .word gMain\n" " .word 0x160fd\n" "._1173:\n" - " ldr r0, ._1188\n" + " ldr r0, ._1188 @ 0x160fe\n" " add r1, r2, r0\n" " ldrb r0, [r1]\n" " sub r0, r0, #0x1\n" @@ -6923,11 +6923,11 @@ void debug_sub_80138CC() " lsl r0, r0, #0x18\n" " cmp r0, #0\n" " bne ._1186 @cond_branch\n" - " ldr r1, ._1188 + 4\n" + " ldr r1, ._1188 + 4 @ gMain\n" " mov r0, #0x1\n" " strh r0, [r1, #0x2c]\n" " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1188 + 8\n" + " ldr r0, ._1188 + 8 @ 0x160fd\n" " add r1, r2, r0\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" @@ -6939,7 +6939,7 @@ void debug_sub_80138CC() " .word gMain\n" " .word 0x160fd\n" "._1174:\n" - " ldr r0, ._1190\n" + " ldr r0, ._1190 @ 0x160fd\n" " add r1, r2, r0\n" " mov r0, #0x0\n" "._1187:\n" @@ -6960,7 +6960,7 @@ void debug_sub_80139E4() { asm( " push {r4, r5, lr}\n" - " ldr r0, ._1198\n" + " ldr r0, ._1198 @ gUnknown_02023A14_50\n" " ldrb r1, [r0]\n" " mov r0, #0x80\n" " and r0, r0, r1\n" @@ -6968,10 +6968,10 @@ void debug_sub_80139E4() " lsr r4, r0, #0x18\n" " cmp r4, #0\n" " beq ._1192 @cond_branch\n" - " ldr r2, ._1198 + 4\n" + " ldr r2, ._1198 + 4 @ gActiveBank\n" " mov r0, #0x0\n" " strb r0, [r2]\n" - " ldr r1, ._1198 + 8\n" + " ldr r1, ._1198 + 8 @ gNoOfAllBanks\n" " ldrb r0, [r1]\n" " cmp r0, #0\n" " beq ._1193 @cond_branch\n" @@ -6988,17 +6988,17 @@ void debug_sub_80139E4() " cmp r0, r1\n" " bcc ._1194 @cond_branch\n" "._1193:\n" - " ldr r0, ._1198 + 12\n" + " ldr r0, ._1198 + 12 @ gBattleMainFunc\n" " ldr r0, [r0]\n" " bl _call_via_r0\n" - " ldr r1, ._1198 + 4\n" + " ldr r1, ._1198 + 4 @ gActiveBank\n" " mov r0, #0x0\n" " strb r0, [r1]\n" - " ldr r0, ._1198 + 8\n" + " ldr r0, ._1198 + 8 @ gNoOfAllBanks\n" " ldrb r0, [r0]\n" " cmp r0, #0\n" " beq ._1200 @cond_branch\n" - " ldr r5, ._1198 + 16\n" + " ldr r5, ._1198 + 16 @ gBattleBankFunc\n" " add r4, r1, #0\n" "._1196:\n" " ldrb r0, [r4]\n" @@ -7009,7 +7009,7 @@ void debug_sub_80139E4() " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" - " ldr r1, ._1198 + 8\n" + " ldr r1, ._1198 + 8 @ gNoOfAllBanks\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " ldrb r1, [r1]\n" @@ -7025,16 +7025,16 @@ void debug_sub_80139E4() " .word gBattleMainFunc\n" " .word gBattleBankFunc\n" "._1192:\n" - " ldr r0, ._1202\n" + " ldr r0, ._1202 @ gBattleMainFunc\n" " ldr r0, [r0]\n" " bl _call_via_r0\n" - " ldr r1, ._1202 + 4\n" + " ldr r1, ._1202 + 4 @ gActiveBank\n" " strb r4, [r1]\n" - " ldr r0, ._1202 + 8\n" + " ldr r0, ._1202 + 8 @ gNoOfAllBanks\n" " ldrb r0, [r0]\n" " cmp r4, r0\n" " bcs ._1200 @cond_branch\n" - " ldr r5, ._1202 + 12\n" + " ldr r5, ._1202 + 12 @ gBattleBankFunc\n" " add r4, r1, #0\n" "._1201:\n" " ldrb r0, [r4]\n" @@ -7045,7 +7045,7 @@ void debug_sub_80139E4() " ldrb r0, [r4]\n" " add r0, r0, #0x1\n" " strb r0, [r4]\n" - " ldr r1, ._1202 + 8\n" + " ldr r1, ._1202 + 8 @ gNoOfAllBanks\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " ldrb r1, [r1]\n" @@ -7080,20 +7080,20 @@ void sub_8010874() " bl SpecialStatusesClear\n" " mov r2, #0x0\n" " mov r3, #0x0\n" - " ldr r0, ._1215\n" + " ldr r0, ._1215 @ gUnknown_02024C4C\n" " mov sl, r0\n" - " ldr r1, ._1215 + 4\n" + " ldr r1, ._1215 + 4 @ gLastHitByType\n" " mov r9, r1\n" - " ldr r4, ._1215 + 8\n" + " ldr r4, ._1215 + 8 @ gLastLandedMoves\n" " mov r8, r4\n" - " ldr r0, ._1215 + 12\n" + " ldr r0, ._1215 + 12 @ gLastUsedMove\n" " mov ip, r0\n" - " ldr r4, ._1215 + 16\n" + " ldr r4, ._1215 + 16 @ gDisableStructs\n" " mov r5, #0x0\n" - " ldr r7, ._1215 + 20\n" - " ldr r6, ._1215 + 24\n" + " ldr r7, ._1215 + 20 @ gUnknown_02024C2C\n" + " ldr r6, ._1215 + 24 @ gLockedMoves\n" "._1205:\n" - " ldr r0, ._1215 + 28\n" + " ldr r0, ._1215 + 28 @ gStatuses3\n" " add r0, r5, r0\n" " str r3, [r0]\n" " mov r1, #0x0\n" @@ -7105,7 +7105,7 @@ void sub_8010874() " bls ._1204 @cond_branch\n" " mov r0, #0x2\n" " strb r0, [r4, #0x16]\n" - " ldr r1, ._1215 + 32\n" + " ldr r1, ._1215 + 32 @ gUnknown_02024C70\n" " add r0, r2, r1\n" " strb r3, [r0]\n" " mov r0, ip\n" @@ -7116,13 +7116,13 @@ void sub_8010874() " strh r3, [r0]\n" " mov r1, sl\n" " strh r3, [r1]\n" - " ldr r0, ._1215 + 36\n" + " ldr r0, ._1215 + 36 @ gUnknown_02024C5C\n" " add r1, r2, r0\n" " mov r0, #0xff\n" " strb r0, [r1]\n" " strh r3, [r6]\n" " strh r3, [r7]\n" - " ldr r1, ._1215 + 40\n" + " ldr r1, ._1215 + 40 @ gSharedMem\n" " add r0, r5, r1\n" " str r3, [r0]\n" " mov r0, #0x2\n" @@ -7138,8 +7138,8 @@ void sub_8010874() " cmp r2, #0x3\n" " ble ._1205 @cond_branch\n" " mov r5, #0x0\n" - " ldr r3, ._1215 + 44\n" - " ldr r4, ._1215 + 48\n" + " ldr r3, ._1215 + 44 @ gSideTimers\n" + " ldr r4, ._1215 + 48 @ gSideAffecting\n" " mov r2, #0x1\n" "._1207:\n" " strh r5, [r4]\n" @@ -7156,13 +7156,13 @@ void sub_8010874() " cmp r2, #0\n" " bge ._1207 @cond_branch\n" " mov r1, #0x0\n" - " ldr r2, ._1215 + 52\n" + " ldr r2, ._1215 + 52 @ gBankAttacker\n" " strb r1, [r2]\n" - " ldr r3, ._1215 + 56\n" + " ldr r3, ._1215 + 56 @ gBankTarget\n" " strb r1, [r3]\n" - " ldr r4, ._1215 + 60\n" + " ldr r4, ._1215 + 60 @ gBattleWeather\n" " strh r1, [r4]\n" - " ldr r1, ._1215 + 64\n" + " ldr r1, ._1215 + 64 @ gWishFutureKnock\n" " mov r2, #0x0\n" " mov r3, #0x0\n" "._1208:\n" @@ -7172,50 +7172,50 @@ void sub_8010874() " cmp r2, #0x2b\n" " bls ._1208 @cond_branch\n" " mov r0, #0x0\n" - " ldr r1, ._1215 + 68\n" + " ldr r1, ._1215 + 68 @ gHitMarker\n" " str r0, [r1]\n" - " ldr r2, ._1215 + 72\n" + " ldr r2, ._1215 + 72 @ gBattleTypeFlags\n" " ldrh r1, [r2]\n" " mov r0, #0x2\n" " and r0, r0, r1\n" " cmp r0, #0\n" " bne ._1210 @cond_branch\n" - " ldr r3, ._1215 + 76\n" + " ldr r3, ._1215 + 76 @ gSaveBlock2\n" " ldrb r1, [r3, #0x15]\n" " mov r0, #0x4\n" " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._1210 @cond_branch\n" " mov r0, #0x80\n" - " ldr r4, ._1215 + 68\n" + " ldr r4, ._1215 + 68 @ gHitMarker\n" " str r0, [r4]\n" "._1210:\n" - " ldr r1, ._1215 + 76\n" + " ldr r1, ._1215 + 76 @ gSaveBlock2\n" " ldrb r0, [r1, #0x15]\n" " lsl r0, r0, #0x1e\n" " lsr r0, r0, #0x1f\n" - " ldr r3, ._1215 + 80\n" - " ldr r4, ._1215 + 84\n" + " ldr r3, ._1215 + 80 @ gSharedMem\n" + " ldr r4, ._1215 + 84 @ 0x16084\n" " add r2, r3, r4\n" " mov r1, #0x0\n" " strb r0, [r2]\n" - " ldr r0, ._1215 + 88\n" + " ldr r0, ._1215 + 88 @ gMultiHitCounter\n" " strb r1, [r0]\n" - " ldr r2, ._1215 + 92\n" + " ldr r2, ._1215 + 92 @ gBattleOutcome\n" " strb r1, [r2]\n" - " ldr r3, ._1215 + 96\n" + " ldr r3, ._1215 + 96 @ gBattleExecBuffer\n" " str r1, [r3]\n" " mov r2, #0x0\n" - " ldr r4, ._1215 + 100\n" + " ldr r4, ._1215 + 100@ gPaydayMoney\n" " strh r1, [r4]\n" - " ldr r1, ._1215 + 80\n" - " ldr r3, ._1215 + 104\n" + " ldr r1, ._1215 + 80 @ gSharedMem\n" + " ldr r3, ._1215 + 104@ 0x17130\n" " add r0, r1, r3\n" " strb r2, [r0]\n" - " ldr r4, ._1215 + 108\n" + " ldr r4, ._1215 + 108@ 0x17160\n" " add r0, r1, r4\n" " strb r2, [r0]\n" - " ldr r1, ._1215 + 112\n" + " ldr r1, ._1215 + 112@ gBattleCommunication\n" " mov r2, #0x0\n" " add r0, r1, #7\n" "._1211:\n" @@ -7224,37 +7224,37 @@ void sub_8010874() " cmp r0, r1\n" " bge ._1211 @cond_branch\n" " mov r5, #0x0\n" - " ldr r0, ._1215 + 116\n" + " ldr r0, ._1215 + 116@ gPauseCounterBattle\n" " strh r5, [r0]\n" " mov r0, #0x0\n" - " ldr r1, ._1215 + 120\n" + " ldr r1, ._1215 + 120@ gBattleMoveDamage\n" " str r0, [r1]\n" - " ldr r2, ._1215 + 124\n" + " ldr r2, ._1215 + 124@ gUnknown_02024DE8\n" " strh r0, [r2]\n" - " ldr r4, ._1215 + 80\n" - " ldr r3, ._1215 + 128\n" + " ldr r4, ._1215 + 80 @ gSharedMem\n" + " ldr r3, ._1215 + 128@ 0x16002\n" " add r0, r4, r3\n" " strb r5, [r0]\n" - " ldr r1, ._1215 + 132\n" + " ldr r1, ._1215 + 132@ 0x160a1\n" " add r0, r4, r1\n" " strb r5, [r0]\n" - " ldr r2, ._1215 + 136\n" + " ldr r2, ._1215 + 136@ gLeveledUpInBattle\n" " strb r5, [r2]\n" - " ldr r3, ._1215 + 140\n" + " ldr r3, ._1215 + 140@ gAbsentBankFlags\n" " strb r5, [r3]\n" " sub r1, r1, #0x29\n" " add r0, r4, r1\n" " strb r5, [r0]\n" - " ldr r2, ._1215 + 144\n" + " ldr r2, ._1215 + 144@ 0x16086\n" " add r0, r4, r2\n" " strb r5, [r0]\n" - " ldr r3, ._1215 + 148\n" + " ldr r3, ._1215 + 148@ 0x16087\n" " add r0, r4, r3\n" " strb r5, [r0]\n" - " ldr r0, ._1215 + 152\n" + " ldr r0, ._1215 + 152@ gEnemyParty\n" " mov r1, #0xb\n" " bl GetMonData\n" - " ldr r2, ._1215 + 156\n" + " ldr r2, ._1215 + 156@ gBaseStats\n" " lsl r1, r0, #0x3\n" " sub r1, r1, r0\n" " lsl r1, r1, #0x2\n" @@ -7262,16 +7262,16 @@ void sub_8010874() " ldrb r1, [r1, #0x8]\n" " mov r0, #0x64\n" " mul r0, r0, r1\n" - " ldr r1, ._1215 + 160\n" + " ldr r1, ._1215 + 160@ 0x4fb\n" " bl __divsi3\n" - " ldr r2, ._1215 + 164\n" + " ldr r2, ._1215 + 164@ 0x16089\n" " add r1, r4, r2\n" " strb r0, [r1]\n" - " ldr r3, ._1215 + 168\n" + " ldr r3, ._1215 + 168@ 0x16088\n" " add r1, r4, r3\n" " mov r0, #0x3\n" " strb r0, [r1]\n" - " ldr r1, ._1215 + 172\n" + " ldr r1, ._1215 + 172@ 0x1601b\n" " add r0, r4, r1\n" " strb r5, [r0]\n" " sub r2, r2, #0x33\n" @@ -7281,7 +7281,7 @@ void sub_8010874() " mov r2, #0x0\n" " mov r1, #0x0\n" "._1212:\n" - " ldr r3, ._1215 + 176\n" + " ldr r3, ._1215 + 176@ 0x160ac\n" " add r0, r2, r3\n" " add r0, r0, r4\n" " strb r1, [r0]\n" @@ -7308,8 +7308,8 @@ void sub_8010874() " add r2, r2, #0x1\n" " cmp r2, #0x7\n" " ble ._1212 @cond_branch\n" - " ldr r4, ._1215 + 80\n" - " ldr r1, ._1215 + 180\n" + " ldr r4, ._1215 + 80 @ gSharedMem\n" + " ldr r1, ._1215 + 180@ 0x160c8\n" " add r0, r4, r1\n" " mov r2, #0x0\n" " mov r1, #0x6\n" @@ -7317,10 +7317,10 @@ void sub_8010874() " sub r3, r3, #0x3f\n" " add r0, r4, r3\n" " strb r1, [r0]\n" - " ldr r1, ._1215 + 184\n" + " ldr r1, ._1215 + 184@ 0x16113\n" " add r0, r4, r1\n" " strb r2, [r0]\n" - " ldr r3, ._1215 + 188\n" + " ldr r3, ._1215 + 188@ gBattleResults\n" " mov r1, #0x0\n" " mov r2, #0xa\n" " add r0, r3, #0\n" @@ -7367,12 +7367,12 @@ void sub_8010874() " add r2, r2, #0x1\n" " cmp r2, #0x9\n" " ble ._1214 @cond_branch\n" - " ldr r2, ._1215 + 80\n" - " ldr r3, ._1215 + 192\n" + " ldr r2, ._1215 + 80 @ gSharedMem\n" + " ldr r3, ._1215 + 192@ 0x1609e\n" " add r0, r2, r3\n" " mov r1, #0x0\n" " strb r1, [r0]\n" - " ldr r4, ._1215 + 196\n" + " ldr r4, ._1215 + 196@ 0x1609f\n" " add r0, r2, r4\n" " strb r1, [r0]\n" " pop {r3, r4, r5}\n" diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 9fe1f6cb0..8b81139fb 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -5024,8 +5024,8 @@ static void atk15_seteffectwithchance(void) { asm("\ push {r4, lr}\n\ - ldr r2, ._1037\n\ - ldr r0, ._1037 + 4\n\ + ldr r2, ._1037 @ gBattleMons\n\ + ldr r0, ._1037 + 4 @ gBankAttacker\n\ ldrb r1, [r0]\n\ mov r0, #0x58\n\ mul r0, r0, r1\n\ @@ -5034,8 +5034,8 @@ static void atk15_seteffectwithchance(void) ldrb r0, [r0]\n\ cmp r0, #0x20\n\ bne ._1035 @cond_branch\n\ - ldr r2, ._1037 + 8\n\ - ldr r0, ._1037 + 12\n\ + ldr r2, ._1037 + 8 @ gBattleMoves\n\ + ldr r0, ._1037 + 12 @ gCurrentMove\n\ ldrh r1, [r0]\n\ lsl r0, r1, #0x1\n\ add r0, r0, r1\n\ @@ -5052,8 +5052,8 @@ static void atk15_seteffectwithchance(void) .word gBattleMoves\n\ .word gCurrentMove\n\ ._1035:\n\ - ldr r2, ._1045\n\ - ldr r0, ._1045 + 4\n\ + ldr r2, ._1045 @ gBattleMoves\n\ + ldr r0, ._1045 + 4 @ gCurrentMove\n\ ldrh r1, [r0]\n\ lsl r0, r1, #0x1\n\ add r0, r0, r1\n\ @@ -5061,11 +5061,11 @@ static void atk15_seteffectwithchance(void) add r0, r0, r2\n\ ldrb r4, [r0, #0x5]\n\ ._1036:\n\ - ldr r0, ._1045 + 8\n\ + ldr r0, ._1045 + 8 @ gUnknown_02023A14_50\n\ ldrb r1, [r0]\n\ mov r0, #0x4\n\ and r0, r0, r1\n\ - ldr r2, ._1045 + 12\n\ + ldr r2, ._1045 + 12 @ gBattleCommunication\n\ cmp r0, #0\n\ beq ._1039 @cond_branch\n\ ldrb r1, [r2, #0x3]\n\ @@ -5073,7 +5073,7 @@ static void atk15_seteffectwithchance(void) and r0, r0, r1\n\ cmp r0, #0\n\ bne ._1040 @cond_branch\n\ - ldr r0, ._1045 + 16\n\ + ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\ ldrb r1, [r0]\n\ mov r0, #0x29\n\ and r0, r0, r1\n\ @@ -5086,13 +5086,13 @@ static void atk15_seteffectwithchance(void) cmp r0, #0\n\ beq ._1043 @cond_branch\n\ ._1040:\n\ - ldr r0, ._1045 + 16\n\ + ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\ ldrb r1, [r0]\n\ mov r0, #0x29\n\ and r0, r0, r1\n\ cmp r0, #0\n\ bne ._1043 @cond_branch\n\ - ldr r2, ._1045 + 12\n\ + ldr r2, ._1045 + 12 @ gBattleCommunication\n\ ldrb r1, [r2, #0x3]\n\ mov r0, #0x7f\n\ and r0, r0, r1\n\ @@ -5116,11 +5116,11 @@ static void atk15_seteffectwithchance(void) lsr r0, r0, #0x10\n\ cmp r0, r4\n\ bhi ._1049 @cond_branch\n\ - ldr r0, ._1052\n\ + ldr r0, ._1052 @ gBattleCommunication\n\ ldrb r0, [r0, #0x3]\n\ cmp r0, #0\n\ beq ._1049 @cond_branch\n\ - ldr r0, ._1052 + 4\n\ + ldr r0, ._1052 + 4 @ gBattleMoveFlags\n\ ldrb r1, [r0]\n\ mov r0, #0x29\n\ and r0, r0, r1\n\ @@ -5144,16 +5144,16 @@ static void atk15_seteffectwithchance(void) bl SetMoveEffect\n\ b ._1054\n\ ._1049:\n\ - ldr r1, ._1055\n\ + ldr r1, ._1055 @ gBattlescriptCurrInstr\n\ ldr r0, [r1]\n\ add r0, r0, #0x1\n\ str r0, [r1]\n\ ._1054:\n\ - ldr r0, ._1055 + 4\n\ + ldr r0, ._1055 + 4 @ gBattleCommunication\n\ mov r1, #0x0\n\ strb r1, [r0, #0x3]\n\ - ldr r0, ._1055 + 8\n\ - ldr r2, ._1055 + 12\n\ + ldr r0, ._1055 + 8 @ \n\ + ldr r2, ._1055 + 12 @ \n\ add r0, r0, r2\n\ strb r1, [r0]\n\ pop {r4}\n\ @@ -12778,12 +12778,12 @@ static void atk9E_metronome(void) push {r4, r5, r6, r7, lr}\n\ mov r7, r8\n\ push {r7}\n\ - ldr r6, ._3076\n\ + ldr r6, ._3076 @ gBankAttacker\n\ ldrb r2, [r6]\n\ lsl r1, r2, #0x1\n\ - ldr r0, ._3076 + 4\n\ + ldr r0, ._3076 + 4 @ \n\ add r3, r1, r0\n\ - ldr r5, ._3076 + 8\n\ + ldr r5, ._3076 + 8 @ \n\ mov r4, #0x58\n\ add r0, r2, #0\n\ mul r0, r0, r4\n\ @@ -12802,7 +12802,7 @@ static void atk9E_metronome(void) bne ._3072 @cond_branch\n\ strh r2, [r3]\n\ ._3072:\n\ - ldr r1, ._3076 + 12\n\ + ldr r1, ._3076 + 12 @ \n\ ldrh r0, [r3]\n\ strh r0, [r1]\n\ ldrb r0, [r6]\n\ @@ -12845,14 +12845,14 @@ static void atk9E_metronome(void) ._3079:\n\ strh r0, [r3]\n\ ._3081:\n\ - ldr r4, ._3083\n\ + ldr r4, ._3083 @ gHitMarker\n\ ldr r2, [r4]\n\ - ldr r0, ._3083 + 4\n\ + ldr r0, ._3083 + 4 @ 0xfffffbff\n\ and r2, r2, r0\n\ str r2, [r4]\n\ - ldr r6, ._3083 + 8\n\ - ldr r5, ._3083 + 12\n\ - ldr r3, ._3083 + 16\n\ + ldr r6, ._3083 + 8 @ gBattlescriptCurrInstr\n\ + ldr r5, ._3083 + 12 @ gBattleScriptsForMoveEffects\n\ + ldr r3, ._3083 + 16 @ gBattleMoves\n\ ldrh r1, [r7]\n\ lsl r0, r1, #0x1\n\ add r0, r0, r1\n\ @@ -12878,15 +12878,15 @@ static void atk9E_metronome(void) .word gBattleScriptsForMoveEffects\n\ .word gBattleMoves\n\ ._3071:\n\ - ldr r7, ._3090\n\ + ldr r7, ._3090 @ gCurrentMove\n\ mov r6, #0xb1\n\ lsl r6, r6, #0x1\n\ - ldr r5, ._3090 + 4\n\ - ldr r0, ._3090 + 8\n\ + ldr r5, ._3090 + 4 @ sMovesForbiddenToCopy\n\ + ldr r0, ._3090 + 8 @ gBattlescriptCurrInstr\n\ mov r8, r0\n\ ._3089:\n\ bl Random\n\ - ldr r2, ._3090 + 12\n\ + ldr r2, ._3090 + 12 @ 0x1ff\n\ add r1, r2, #0\n\ and r0, r0, r1\n\ add r0, r0, #0x1\n\ @@ -12898,9 +12898,9 @@ static void atk9E_metronome(void) sub r0, r0, #0x1\n\ cmp r0, #0\n\ bge ._3086 @cond_branch\n\ - ldr r4, ._3090\n\ + ldr r4, ._3090 @ gCurrentMove\n\ ldrh r2, [r4]\n\ - ldr r3, ._3090 + 16\n\ + ldr r3, ._3090 + 16 @ 0xffff\n\ sub r0, r5, #2\n\ ._3088:\n\ add r0, r0, #0x2\n\ @@ -12910,16 +12910,16 @@ static void atk9E_metronome(void) cmp r1, r3\n\ bne ._3088 @cond_branch\n\ ._3087:\n\ - ldr r0, ._3090 + 16\n\ + ldr r0, ._3090 + 16 @ 0xffff\n\ cmp r1, r0\n\ bne ._3089 @cond_branch\n\ - ldr r2, ._3090 + 20\n\ + ldr r2, ._3090 + 20 @ gHitMarker\n\ ldr r0, [r2]\n\ - ldr r1, ._3090 + 24\n\ + ldr r1, ._3090 + 24 @ 0xfffffbff\n\ and r0, r0, r1\n\ str r0, [r2]\n\ - ldr r3, ._3090 + 28\n\ - ldr r2, ._3090 + 32\n\ + ldr r3, ._3090 + 28 @ gBattleScriptsForMoveEffects\n\ + ldr r2, ._3090 + 32 @ gBattleMoves\n\ ldrh r1, [r4]\n\ lsl r0, r1, #0x1\n\ add r0, r0, r1\n\ @@ -12935,7 +12935,7 @@ static void atk9E_metronome(void) ._3082:\n\ mov r1, #0x0\n\ bl GetMoveTarget\n\ - ldr r1, ._3090 + 36\n\ + ldr r1, ._3090 + 36 @ gBankTarget\n\ strb r0, [r1]\n\ pop {r3}\n\ mov r8, r3\n\ diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 5382738f7..338f8d418 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -1447,26 +1447,26 @@ void OpponentHandlecmd20(void) mov r6, r9\n\ mov r5, r8\n\ push {r5, r6, r7}\n\ - ldr r6, ._549\n\ + ldr r6, ._549 @ gActiveBank\n\ ldrb r0, [r6]\n\ lsl r0, r0, #0x9\n\ - ldr r1, ._549 + 4\n\ + ldr r1, ._549 + 4 @ gBattleBufferA\n\ add r5, r0, r1\n\ - ldr r2, ._549 + 8\n\ + ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\ ldrb r1, [r2]\n\ mov r0, #0x4\n\ and r0, r0, r1\n\ mov sl, r6\n\ cmp r0, #0\n\ beq ._546 @cond_branch\n\ - ldr r0, ._549 + 12\n\ + ldr r0, ._549 + 12 @ gBattleMoves\n\ mov r9, r0\n\ - ldr r1, ._549 + 16\n\ + ldr r1, ._549 + 16 @ \n\ mov ip, r1\n\ add r7, r6, #0\n\ mov r0, #0x2\n\ mov r8, r0\n\ - ldr r6, ._549 + 20\n\ + ldr r6, ._549 + 20 @ \n\ ._552:\n\ ldrb r1, [r7]\n\ mov r0, r8\n\ @@ -1526,13 +1526,13 @@ void OpponentHandlecmd20(void) ldrb r0, [r1]\n\ b ._561\n\ ._553:\n\ - ldr r0, ._559\n\ + ldr r0, ._559 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._557 @cond_branch\n\ - ldr r0, ._559 + 4\n\ + ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\ ldrb r1, [r0]\n\ mov r5, #0x2\n\ add r0, r5, #0\n\ @@ -1578,7 +1578,7 @@ void OpponentHandlecmd20(void) bl OpponentBufferExecCompleted\n\ b ._562\n\ ._546:\n\ - ldr r0, ._567\n\ + ldr r0, ._567 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x93\n\ lsl r0, r0, #0x3\n\ @@ -1607,7 +1607,7 @@ void OpponentHandlecmd20(void) mov r2, #0x0\n\ b ._569\n\ ._565:\n\ - ldr r3, ._574\n\ + ldr r3, ._574 @ gBattleMoves\n\ lsl r0, r4, #0x1\n\ add r2, r5, r0\n\ ldrh r1, [r2]\n\ @@ -1620,7 +1620,7 @@ void OpponentHandlecmd20(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._570 @cond_branch\n\ - ldr r1, ._574 + 4\n\ + ldr r1, ._574 + 4 @ gBankTarget\n\ ldrb r0, [r6]\n\ strb r0, [r1]\n\ ._570:\n\ @@ -1636,11 +1636,11 @@ void OpponentHandlecmd20(void) beq ._572 @cond_branch\n\ mov r0, #0x0\n\ bl GetBankByIdentity\n\ - ldr r5, ._574 + 4\n\ + ldr r5, ._574 + 4 @ gBankTarget\n\ strb r0, [r5]\n\ - ldr r0, ._574 + 8\n\ + ldr r0, ._574 + 8 @ gAbsentBankFlags\n\ ldrb r1, [r0]\n\ - ldr r2, ._574 + 12\n\ + ldr r2, ._574 + 12 @ gBitTable\n\ ldrb r0, [r5]\n\ lsl r0, r0, #0x2\n\ add r0, r0, r2\n\ @@ -1652,7 +1652,7 @@ void OpponentHandlecmd20(void) bl GetBankByIdentity\n\ strb r0, [r5]\n\ ._572:\n\ - ldr r0, ._574 + 4\n\ + ldr r0, ._574 + 4 @ gBankTarget\n\ ldrb r2, [r0]\n\ lsl r2, r2, #0x8\n\ orr r2, r2, r4\n\ @@ -1678,7 +1678,7 @@ void OpponentHandlecmd20(void) ldrh r2, [r0]\n\ cmp r2, #0\n\ beq ._576 @cond_branch\n\ - ldr r1, ._579\n\ + ldr r1, ._579 @ gBattleMoves\n\ lsl r0, r2, #0x1\n\ add r0, r0, r2\n\ lsl r0, r0, #0x2\n\ @@ -1688,7 +1688,7 @@ void OpponentHandlecmd20(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._577 @cond_branch\n\ - ldr r0, ._579 + 4\n\ + ldr r0, ._579 + 4 @ gActiveBank\n\ ldrb r2, [r0]\n\ lsl r2, r2, #0x8\n\ b ._578\n\ @@ -1698,7 +1698,7 @@ void OpponentHandlecmd20(void) .word gBattleMoves\n\ .word gActiveBank\n\ ._577:\n\ - ldr r0, ._583\n\ + ldr r0, ._583 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index d4b4da6f2..e03e21849 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -1007,21 +1007,21 @@ void debug_sub_8030C24(void) asm("\ push {r4, r5, r6, lr}\n\ add sp, sp, #0xfffffff4\n\ - ldr r1, ._293\n\ - ldr r4, ._293 + 4\n\ + ldr r1, ._293 @ gBattlePartyID\n\ + ldr r4, ._293 + 4 @ gActiveBank\n\ ldrb r0, [r4]\n\ lsl r0, r0, #0x1\n\ add r0, r0, r1\n\ ldrh r1, [r0]\n\ mov r0, #0x64\n\ mul r0, r0, r1\n\ - ldr r1, ._293 + 8\n\ + ldr r1, ._293 + 8 @ gPlayerParty\n\ add r0, r0, r1\n\ mov r1, #0xd\n\ bl GetMonData\n\ add r1, sp, #0x8\n\ strh r0, [r1]\n\ - ldr r5, ._293 + 12\n\ + ldr r5, ._293 + 12 @ gMain\n\ ldrh r1, [r5, #0x30]\n\ cmp r1, #0x20\n\ bne ._286 @cond_branch\n\ @@ -1082,7 +1082,7 @@ void debug_sub_8030C24(void) ldrb r0, [r4]\n\ mov r1, #0x0\n\ bl dp11b_obj_free\n\ - ldr r0, ._312\n\ + ldr r0, ._312 @ gBankAttacker\n\ ldrb r2, [r4]\n\ strb r2, [r0]\n\ ldrh r1, [r5, #0x28]\n\ @@ -1090,13 +1090,13 @@ void debug_sub_8030C24(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._310 @cond_branch\n\ - ldr r0, ._312 + 4\n\ + ldr r0, ._312 + 4 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._310 @cond_branch\n\ - ldr r0, ._312 + 8\n\ + ldr r0, ._312 + 8 @ gBankTarget\n\ mov r1, #0x2\n\ eor r1, r1, r2\n\ strb r1, [r0]\n\ @@ -1108,14 +1108,14 @@ void debug_sub_8030C24(void) .word gBattleTypeFlags\n\ .word gBankTarget\n\ ._310:\n\ - ldr r0, ._317\n\ + ldr r0, ._317 @ gMain\n\ ldrh r1, [r0, #0x28]\n\ mov r2, #0x1\n\ add r0, r2, #0\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._315 @cond_branch\n\ - ldr r0, ._317 + 4\n\ + ldr r0, ._317 + 4 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ add r0, r2, #0\n\ and r0, r0, r1\n\ @@ -1132,7 +1132,7 @@ void debug_sub_8030C24(void) mov r0, #0x1\n\ ._316:\n\ bl GetBankByIdentity\n\ - ldr r1, ._320\n\ + ldr r1, ._320 @ gBankTarget\n\ strb r0, [r1]\n\ ._311:\n\ mov r0, #0x0\n\ @@ -1140,8 +1140,8 @@ void debug_sub_8030C24(void) add r0, sp, #0x8\n\ ldrh r0, [r0]\n\ bl DoMoveAnim\n\ - ldr r1, ._320 + 4\n\ - ldr r0, ._320 + 8\n\ + ldr r1, ._320 + 4 @ gBattleBankFunc\n\ + ldr r0, ._320 + 8 @ gActiveBank\n\ ldrb r0, [r0]\n\ b ._332\n\ ._321:\n\ @@ -1157,7 +1157,7 @@ void debug_sub_8030C24(void) ldrb r0, [r4]\n\ mov r1, #0x0\n\ bl dp11b_obj_free\n\ - ldr r0, ._325\n\ + ldr r0, ._325 @ gBankTarget\n\ ldrb r2, [r4]\n\ strb r2, [r0]\n\ ldrh r1, [r5, #0x28]\n\ @@ -1165,13 +1165,13 @@ void debug_sub_8030C24(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._323 @cond_branch\n\ - ldr r0, ._325 + 4\n\ + ldr r0, ._325 + 4 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._323 @cond_branch\n\ - ldr r0, ._325 + 8\n\ + ldr r0, ._325 + 8 @ gBankAttacker\n\ mov r1, #0x2\n\ eor r1, r1, r2\n\ strb r1, [r0]\n\ @@ -1183,14 +1183,14 @@ void debug_sub_8030C24(void) .word gBattleTypeFlags\n\ .word gBankAttacker\n\ ._323:\n\ - ldr r0, ._330\n\ + ldr r0, ._330 @ gMain\n\ ldrh r1, [r0, #0x28]\n\ mov r2, #0x1\n\ add r0, r2, #0\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._328 @cond_branch\n\ - ldr r0, ._330 + 4\n\ + ldr r0, ._330 + 4 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ add r0, r2, #0\n\ and r0, r0, r1\n\ @@ -1207,7 +1207,7 @@ void debug_sub_8030C24(void) mov r0, #0x1\n\ ._329:\n\ bl GetBankByIdentity\n\ - ldr r1, ._333\n\ + ldr r1, ._333 @ gBankAttacker\n\ strb r0, [r1]\n\ ._324:\n\ mov r0, #0x0\n\ @@ -1215,8 +1215,8 @@ void debug_sub_8030C24(void) add r0, sp, #0x8\n\ ldrh r0, [r0]\n\ bl DoMoveAnim\n\ - ldr r1, ._333 + 4\n\ - ldr r0, ._333 + 8\n\ + ldr r1, ._333 + 4 @ gBattleBankFunc\n\ + ldr r0, ._333 + 8 @ gActiveBank\n\ ldrb r0, [r0]\n\ b ._332\n\ ._334:\n\ @@ -1231,7 +1231,7 @@ void debug_sub_8030C24(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._336 @cond_branch\n\ - ldr r0, ._338\n\ + ldr r0, ._338 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ @@ -1245,7 +1245,7 @@ void debug_sub_8030C24(void) bl dp11b_obj_free\n\ mov r0, #0x3\n\ bl GetBankByIdentity\n\ - ldr r1, ._338 + 4\n\ + ldr r1, ._338 + 4 @ gBankAttacker\n\ strb r0, [r1]\n\ mov r0, #0x1\n\ b ._337\n\ @@ -1283,7 +1283,7 @@ void debug_sub_8030C24(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._343 @cond_branch\n\ - ldr r0, ._345\n\ + ldr r0, ._345 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ @@ -1297,24 +1297,24 @@ void debug_sub_8030C24(void) bl dp11b_obj_free\n\ mov r0, #0x1\n\ bl GetBankByIdentity\n\ - ldr r1, ._345 + 4\n\ + ldr r1, ._345 + 4 @ gBankAttacker\n\ strb r0, [r1]\n\ mov r0, #0x3\n\ ._337:\n\ bl GetBankByIdentity\n\ - ldr r1, ._345 + 8\n\ + ldr r1, ._345 + 8 @ gBankTarget\n\ strb r0, [r1]\n\ mov r0, #0x0\n\ bl sub_80326EC\n\ add r0, sp, #0x8\n\ ldrh r0, [r0]\n\ bl DoMoveAnim\n\ - ldr r1, ._345 + 12\n\ + ldr r1, ._345 + 12 @ gBattleBankFunc\n\ ldrb r0, [r4]\n\ ._332:\n\ lsl r0, r0, #0x2\n\ add r0, r0, r1\n\ - ldr r1, ._345 + 16\n\ + ldr r1, ._345 + 16 @ debug_sub_803107C\n\ str r1, [r0]\n\ b ._348\n\ ._346:\n\ @@ -1345,20 +1345,20 @@ void debug_sub_8030C24(void) add r0, r2, #0\n\ strh r0, [r1]\n\ ._347:\n\ - ldr r1, ._349\n\ - ldr r4, ._349 + 4\n\ + ldr r1, ._349 @ gBattlePartyID\n\ + ldr r4, ._349 + 4 @ gActiveBank\n\ ldrb r0, [r4]\n\ lsl r0, r0, #0x1\n\ add r0, r0, r1\n\ ldrh r1, [r0]\n\ mov r0, #0x64\n\ mul r0, r0, r1\n\ - ldr r1, ._349 + 8\n\ + ldr r1, ._349 + 8 @ gPlayerParty\n\ add r0, r0, r1\n\ mov r1, #0xd\n\ add r2, sp, #0x8\n\ bl SetMonData\n\ - ldr r2, ._349 + 12\n\ + ldr r2, ._349 + 12 @ gBattleMons\n\ ldrb r1, [r4]\n\ mov r0, #0x58\n\ mul r0, r0, r1\n\ @@ -1366,8 +1366,8 @@ void debug_sub_8030C24(void) add r1, sp, #0x8\n\ ldrh r1, [r1]\n\ strh r1, [r0, #0xc]\n\ - ldr r5, ._349 + 16\n\ - ldr r1, ._349 + 20\n\ + ldr r5, ._349 + 16 @ gUnknown_03004210\n\ + ldr r1, ._349 + 20 @ 0x1016\n\ mov r0, #0x10\n\ str r0, [sp]\n\ mov r0, #0x38\n\ @@ -1381,7 +1381,7 @@ void debug_sub_8030C24(void) ldsh r1, [r0, r2]\n\ mov r0, #0xd\n\ mul r1, r1, r0\n\ - ldr r0, ._349 + 24\n\ + ldr r0, ._349 + 24 @ gMoveNames\n\ add r1, r1, r0\n\ mov r2, #0x80\n\ lsl r2, r2, #0x1\n\ @@ -1390,7 +1390,7 @@ void debug_sub_8030C24(void) add r0, r5, #0\n\ mov r3, #0x2\n\ bl Text_InitWindowAndPrintText\n\ - ldr r4, ._349 + 28\n\ + ldr r4, ._349 + 28 @ gDisplayedStringBattle\n\ add r0, sp, #0x8\n\ mov r2, #0x0\n\ ldsh r1, [r0, r2]\n\ @@ -1418,11 +1418,11 @@ void debug_sub_8030C24(void) .word gMoveNames\n\ .word gDisplayedStringBattle\n\ ._302:\n\ - ldr r0, ._353\n\ + ldr r0, ._353 @ gMain\n\ ldrh r0, [r0, #0x30]\n\ cmp r0, #0x40\n\ bne ._351 @cond_branch\n\ - ldr r1, ._353 + 4\n\ + ldr r1, ._353 + 4 @ gAnimMoveTurn\n\ ldrb r0, [r1]\n\ sub r0, r0, #0x1\n\ b ._352\n\ @@ -1432,18 +1432,18 @@ void debug_sub_8030C24(void) .word gMain\n\ .word gAnimMoveTurn\n\ ._351:\n\ - ldr r1, ._359\n\ + ldr r1, ._359 @ gAnimMoveTurn\n\ ldrb r0, [r1]\n\ add r0, r0, #0x1\n\ ._352:\n\ strb r0, [r1]\n\ - ldr r4, ._359 + 4\n\ + ldr r4, ._359 + 4 @ gDisplayedStringBattle\n\ ldrb r1, [r1]\n\ add r0, r4, #0\n\ mov r2, #0x2\n\ mov r3, #0x3\n\ bl ConvertIntToDecimalStringN\n\ - ldr r0, ._359 + 8\n\ + ldr r0, ._359 + 8 @ gUnknown_03004210\n\ mov r2, #0x8e\n\ lsl r2, r2, #0x1\n\ mov r1, #0x39\n\ @@ -1452,7 +1452,7 @@ void debug_sub_8030C24(void) mov r3, #0x4\n\ bl Text_InitWindowAndPrintText\n\ ._348:\n\ - ldr r0, ._359 + 12\n\ + ldr r0, ._359 + 12 @ gMain\n\ ldrh r2, [r0, #0x28]\n\ mov r1, #0xc0\n\ lsl r1, r1, #0x2\n\ @@ -1461,28 +1461,28 @@ void debug_sub_8030C24(void) cmp r0, r1\n\ bne ._355 @cond_branch\n\ mov r4, #0x0\n\ - ldr r5, ._359 + 4\n\ - ldr r6, ._359 + 8\n\ + ldr r5, ._359 + 4 @ gDisplayedStringBattle\n\ + ldr r6, ._359 + 8 @ gUnknown_03004210\n\ ._361:\n\ add r0, r5, #0\n\ - ldr r1, ._359 + 16\n\ + ldr r1, ._359 + 16 @ BattleText_Format\n\ bl StringCopy\n\ - ldr r1, ._359 + 20\n\ - ldr r0, ._359 + 24\n\ + ldr r1, ._359 + 20 @ gBattlePartyID\n\ + ldr r0, ._359 + 24 @ gActiveBank\n\ ldrb r0, [r0]\n\ lsl r0, r0, #0x1\n\ add r0, r0, r1\n\ ldrh r1, [r0]\n\ mov r0, #0x64\n\ mul r0, r0, r1\n\ - ldr r1, ._359 + 28\n\ + ldr r1, ._359 + 28 @ gPlayerParty\n\ add r0, r0, r1\n\ add r1, r4, #0\n\ add r1, r1, #0xd\n\ bl GetMonData\n\ mov r1, #0xd\n\ mul r1, r1, r0\n\ - ldr r0, ._359 + 32\n\ + ldr r0, ._359 + 32 @ gMoveNames\n\ add r1, r1, r0\n\ add r0, r5, #0\n\ bl StringAppend\n\ @@ -1521,19 +1521,19 @@ void debug_sub_8030C24(void) add r0, r6, #0\n\ add r1, r5, #0\n\ bl Text_InitWindow\n\ - ldr r0, ._362\n\ + ldr r0, ._362 @ gUnknown_03004210\n\ bl Text_PrintWindow8002F44\n\ add r0, r4, #1\n\ lsl r0, r0, #0x18\n\ lsr r4, r0, #0x18\n\ cmp r4, #0x3\n\ bls ._361 @cond_branch\n\ - ldr r1, ._362 + 4\n\ - ldr r0, ._362 + 8\n\ + ldr r1, ._362 + 4 @ gBattleBankFunc\n\ + ldr r0, ._362 + 8 @ gActiveBank\n\ ldrb r0, [r0]\n\ lsl r0, r0, #0x2\n\ add r0, r0, r1\n\ - ldr r1, ._362 + 12\n\ + ldr r1, ._362 + 12 @ sub_802C68C\n\ str r1, [r0]\n\ ._355:\n\ add sp, sp, #0xc\n\ @@ -1556,16 +1556,16 @@ void debug_sub_803107C(void) push {r4, r5, r6, r7, lr}\n\ add sp, sp, #0xfffffffc\n\ mov r7, #0x0\n\ - ldr r0, ._369\n\ + ldr r0, ._369 @ gAnimScriptCallback\n\ ldr r0, [r0]\n\ bl _call_via_r0\n\ - ldr r0, ._369 + 4\n\ + ldr r0, ._369 + 4 @ gAnimScriptActive\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ bne ._364 @cond_branch\n\ mov r0, #0x1\n\ bl sub_80326EC\n\ - ldr r4, ._369 + 8\n\ + ldr r4, ._369 + 8 @ gActiveBank\n\ ldrb r0, [r4]\n\ mov r1, #0x1\n\ mov r2, #0x7\n\ @@ -1576,7 +1576,7 @@ void debug_sub_803107C(void) mov r2, #0x7\n\ mov r3, #0x1\n\ bl dp11b_obj_instanciate\n\ - ldr r0, ._369 + 12\n\ + ldr r0, ._369 + 12 @ gSprites\n\ add r2, r0, #0\n\ add r2, r2, #0x3e\n\ mov r1, #0x3f\n\ @@ -1593,13 +1593,13 @@ void debug_sub_803107C(void) sub r1, r1, #0x1\n\ cmp r1, #0\n\ bge ._366 @cond_branch\n\ - ldr r4, ._369 + 16\n\ + ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\ add r0, r4, #0\n\ add r1, r7, #0\n\ mov r2, #0x2\n\ mov r3, #0x2\n\ bl ConvertIntToDecimalStringN\n\ - ldr r6, ._369 + 20\n\ + ldr r6, ._369 + 20 @ gUnknown_03004210\n\ mov r2, #0x91\n\ lsl r2, r2, #0x1\n\ mov r5, #0x39\n\ @@ -1625,7 +1625,7 @@ void debug_sub_803107C(void) bl Text_InitWindowAndPrintText\n\ mov r1, #0x0\n\ mov r7, #0x0\n\ - ldr r0, ._369 + 24\n\ + ldr r0, ._369 + 24 @ gOamMatrixAllocBitmap\n\ mov r3, #0x1\n\ ldr r2, [r0]\n\ ._368:\n\ @@ -1641,13 +1641,13 @@ void debug_sub_803107C(void) add r1, r1, #0x1\n\ cmp r1, #0x1f\n\ ble ._368 @cond_branch\n\ - ldr r4, ._369 + 16\n\ + ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\ add r0, r4, #0\n\ add r1, r7, #0\n\ mov r2, #0x2\n\ mov r3, #0x2\n\ bl ConvertIntToDecimalStringN\n\ - ldr r0, ._369 + 20\n\ + ldr r0, ._369 + 20 @ gUnknown_03004210\n\ mov r2, #0x95\n\ lsl r2, r2, #0x1\n\ mov r1, #0x39\n\ @@ -1655,12 +1655,12 @@ void debug_sub_803107C(void) add r1, r4, #0\n\ mov r3, #0xe\n\ bl Text_InitWindowAndPrintText\n\ - ldr r1, ._369 + 28\n\ - ldr r0, ._369 + 8\n\ + ldr r1, ._369 + 28 @ gBattleBankFunc\n\ + ldr r0, ._369 + 8 @ gActiveBank\n\ ldrb r0, [r0]\n\ lsl r0, r0, #0x2\n\ add r0, r0, r1\n\ - ldr r1, ._369 + 32\n\ + ldr r1, ._369 + 32 @ debug_sub_8030C24\n\ str r1, [r0]\n\ ._364:\n\ add sp, sp, #0x4\n\ diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c index 9dd1d7b53..1532a0b2f 100644 --- a/src/battle/battle_records.c +++ b/src/battle/battle_records.c @@ -234,12 +234,12 @@ void debug_sub_81257E0(void) add sp, sp, #0xfffffffc\n\ bl InitLinkBattleRecords\n\ mov r5, #0x0\n\ - ldr r6, ._62\n\ + ldr r6, ._62 @ gUnknown_Debug_4245CC\n\ sub r0, r6, #2\n\ mov r8, r0\n\ - ldr r7, ._62 + 4\n\ + ldr r7, ._62 + 4 @ gLinkPlayers\n\ ._61:\n\ - ldr r0, ._62 + 8\n\ + ldr r0, ._62 + 8 @ gUnknown_Debug_8424620\n\ lsl r3, r5, #0x2\n\ add r3, r3, r0\n\ ldrb r4, [r3]\n\ @@ -251,7 +251,7 @@ void debug_sub_81257E0(void) add r0, r0, r8\n\ ldrh r2, [r0]\n\ ldrb r3, [r3, #0x1]\n\ - ldr r0, ._62 + 12\n\ + ldr r0, ._62 + 12 @ gLinkPlayerMapObjects\n\ lsl r4, r4, #0x2\n\ add r4, r4, r0\n\ ldrb r4, [r4, #0x1]\n\ @@ -261,7 +261,7 @@ void debug_sub_81257E0(void) add r0, r0, r7\n\ ldrb r0, [r0, #0x1a]\n\ str r0, [sp]\n\ - ldr r0, ._62 + 16\n\ + ldr r0, ._62 + 16 @ gSaveBlock1\n\ bl UpdateLinkBattleRecords_\n\ add r5, r5, #0x1\n\ cmp r5, #0x2\n\ -- cgit v1.2.3 From f87bd7328ce26deddc53b62e53827089bfacd30a Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 27 Jan 2018 20:34:43 -0600 Subject: decompile more debug functions in battle_2.c --- src/battle/battle_2.c | 2737 +++++++++++++++---------------------------------- 1 file changed, 800 insertions(+), 1937 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index b9b4290b5..a400257dd 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -67,12 +67,15 @@ struct UnknownStruct12 u8 filler4[0x54]; }; -void debug_sub_80139E4(void); -extern u8 gUnknown_02023A14_50; +extern void sub_802BBD4(); +extern const u8 Str_821F7B8[]; +extern u8 gUnknown_02023A14_50; extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; - +extern const u8 Str_821F7EA[]; +extern const u8 gUnknown_Debug_821F7F3[]; +extern const u8 BattleText_YesNo[]; extern u8 gStatStageRatios[][2]; extern u8 gActionsByTurnOrder[4]; extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; @@ -85,7 +88,7 @@ extern u8 gCurrentActionFuncId; extern u8 gBanksByTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; extern u8 gObjectBankIDs[]; -extern u16 gCurrentMove; +extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID. extern u8 gLastUsedAbility; extern u8 gStringBank; extern u8 gAbsentBankFlags; @@ -182,7 +185,7 @@ extern u8 gUnknown_081FA70C[][3]; extern u8 gUnknown_081FA71B[]; extern u8 gUnknown_081FA71F[]; - +void sub_8010824(void); static void BattlePrepIntroSlide(void); void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); void SetActionsAndBanksTurnOrder(void); @@ -551,11 +554,7 @@ void sub_800EC9C(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; -#if DEBUG - gMain.callback1 = debug_sub_80139E4; -#else gMain.callback1 = sub_8010824; -#endif SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -940,11 +939,7 @@ void sub_800F298(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; -#if DEBUG - gMain.callback1 = debug_sub_80139E4; -#else gMain.callback1 = sub_8010824; -#endif SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -1363,6 +1358,10 @@ void c2_081284E0(void) // A LOT of debug code! #if DEBUG +extern u8 gUnknown_Debug_2023B62[]; +extern const u8 Str_821F7BD[]; +extern const u8 Str_821F7DA[]; + void debug_sub_8010818(void); void debug_sub_80108B8(void); void debug_sub_8010CAC(void); @@ -1372,8 +1371,10 @@ void debug_sub_8011EA0(u8); void debug_sub_8012294(void); void debug_sub_80123D8(u8); void debug_sub_8012540(void); -void debug_sub_80125A0(void); void debug_nullsub_3(void); +void debug_sub_80125A0(void); +u32 debug_sub_8013294(u8, void *, u32); +void debug_sub_80132C8(u8, void *, u32); struct UnknownStruct2023A76 { @@ -1500,8 +1501,6 @@ void debug_sub_80108B8(void) } } -// This function matches, but it somehow affects registers in SetActionsAndBanksTurnOrder. -#ifdef NONMATCHING void debug_sub_8010A7C(u8 a, u8 b) { s32 i; @@ -1510,49 +1509,6 @@ void debug_sub_8010A7C(u8 a, u8 b) gBattleTextBuff1[i] = a; gBattleTextBuff1[i] = EOS; } -#else -__attribute__((naked)) -void debug_sub_8010A7C() -{ - asm( - " push {r4, r5, lr}\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " lsl r1, r1, #0x18\n" - " lsr r2, r1, #0x18\n" - " mov r1, #0x0\n" - " ldr r5, ._514 @ gBattleTextBuff1\n" - " cmp r1, r2\n" - " bge ._512 @cond_branch\n" - " add r3, r5, #0\n" - "._513:\n" - " add r0, r1, r3\n" - " strb r4, [r0]\n" - " add r1, r1, #0x1\n" - " cmp r1, r2\n" - " blt ._513 @cond_branch\n" - "._512:\n" - " add r1, r1, r5\n" - " mov r0, #0xff\n" - " strb r0, [r1]\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._515:\n" - " .align 2, 0\n" - "._514:\n" - " .word gBattleTextBuff1\n" - "\n" - ); -} -#endif - -/* -void debug_sub_8010AAC(u8 a) -{ - u32 r7 = gUnknown_Debug_030043A4 * 5; -} -*/ __attribute__((naked)) void debug_sub_8010AAC() @@ -5195,6 +5151,21 @@ void debug_sub_8012878() ); } +/* +void debug_sub_80128B4(void) +{ + debug_sub_8010A7C(0, 9); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gUnknown_03004210); + ConvertIntToDecimalStringN(gBattleTextBuff1, gCurrentMove, 2, 3); + gBattleTextBuff1[3] = CHAR_SPACE; + gBattleTextBuff1[4] = EOS; + StringAppend(gBattleTextBuff1, gSpeciesNames[gCurrentMove]); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gUnknown_03004210); +} +*/ + __attribute__((naked)) void debug_sub_80128B4() { @@ -5261,1226 +5232,354 @@ void debug_sub_80128B4() ); } -__attribute__((naked)) -void debug_sub_8012938() +void debug_sub_8012938(u8 taskId) { - asm( - " push {r4, r5, r6, lr}\n" - " mov r6, sl\n" - " mov r5, r9\n" - " mov r4, r8\n" - " push {r4, r5, r6}\n" - " add sp, sp, #0xfffffffc\n" - " add r5, r0, #0\n" - " lsl r5, r5, #0x18\n" - " lsr r5, r5, #0x18\n" - " mov r0, #0x0\n" - " mov r1, #0x7\n" - " bl debug_sub_8010A7C\n" - " ldr r6, ._880 @ gUnknown_03004210\n" - " ldr r4, ._880 + 4 @ gBattleTextBuff1\n" - " mov r0, #0x25\n" - " mov r8, r0\n" - " str r0, [sp]\n" - " add r0, r6, #0\n" - " add r1, r4, #0\n" - " mov r2, #0xa2\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r6, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r1, ._880 + 8 @ Str_821F7B8\n" - " add r0, r4, #0\n" - " bl StringCopy\n" - " add r0, r4, #4\n" - " ldr r1, ._880 + 12 @ gUnknown_Debug_2023B62\n" - " mov sl, r1\n" - " ldr r2, ._880 + 16 @ gCurrentMove\n" - " mov r9, r2\n" - " ldrh r1, [r2]\n" - " sub r1, r1, #0x1\n" - " add r1, r1, sl\n" - " ldrb r1, [r1]\n" - " mov r2, #0x2\n" - " mov r3, #0x3\n" - " bl ConvertIntToDecimalStringN\n" - " mov r0, r8\n" - " str r0, [sp]\n" - " add r0, r6, #0\n" - " add r1, r4, #0\n" - " mov r2, #0xa2\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r6, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r2, ._880 + 20 @ gSprites\n" - " ldr r1, ._880 + 24 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0xa\n" - " ldsh r0, [r0, r1]\n" - " lsl r1, r0, #0x4\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r2\n" - " mov r2, r9\n" - " ldrh r0, [r2]\n" - " sub r0, r0, #0x1\n" - " add r0, r0, sl\n" - " ldrb r0, [r0]\n" - " neg r0, r0\n" - " strh r0, [r1, #0x26]\n" - " add sp, sp, #0x4\n" - " pop {r3, r4, r5}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " mov sl, r5\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._881:\n" - " .align 2, 0\n" - "._880:\n" - " .word gUnknown_03004210\n" - " .word gBattleTextBuff1\n" - " .word Str_821F7B8\n" - " .word gUnknown_Debug_2023B62\n" - " .word gCurrentMove\n" - " .word gSprites\n" - " .word gTasks\n" - "\n" - ); + debug_sub_8010A7C(0, 7); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gUnknown_03004210); + StringCopy(gBattleTextBuff1, Str_821F7B8); + ConvertIntToDecimalStringN(gBattleTextBuff1 + 4, gUnknown_Debug_2023B62[gCurrentMove - 1], 2, 3); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gUnknown_03004210); + gSprites[gTasks[taskId].data[1]].pos2.y = -gUnknown_Debug_2023B62[gCurrentMove - 1]; } -__attribute__((naked)) -void debug_sub_80129F8() +void debug_sub_80129F8(u8 taskId) { - asm( - " push {r4, r5, r6, lr}\n" - " mov r6, r8\n" - " push {r6}\n" - " add sp, sp, #0xfffffff8\n" - " add r5, r0, #0\n" - " lsl r5, r5, #0x18\n" - " lsr r5, r5, #0x18\n" - " ldr r6, ._882 @ gCurrentMove\n" - " ldrh r2, [r6]\n" - " lsl r0, r2, #0x3\n" - " ldr r1, ._882 + 4 @ gMonFrontPicTable\n" - " add r0, r0, r1\n" - " ldr r1, ._882 + 8 @ gMonFrontPicCoords\n" - " mov r8, r1\n" - " lsl r2, r2, #0x2\n" - " add r2, r2, r8\n" - " ldrb r1, [r2]\n" - " ldrb r2, [r2, #0x1]\n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x12\n" - " ldr r4, ._882 + 12 @ gUnknown_081FAF4C\n" - " ldr r4, [r4, #0x4]\n" - " str r4, [sp]\n" - " ldrh r4, [r6]\n" - " str r4, [sp, #0x4]\n" - " bl DecompressPicFromTable_2\n" - " ldr r1, ._882 + 16 @ gMonPaletteTable\n" - " ldrh r0, [r6]\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov r1, #0x88\n" - " lsl r1, r1, #0x1\n" - " mov r2, #0x20\n" - " bl LoadCompressedPalette\n" - " ldr r4, ._882 + 20 @ gSprites\n" - " ldr r0, ._882 + 24 @ gTasks\n" - " lsl r2, r5, #0x2\n" - " add r2, r2, r5\n" - " lsl r2, r2, #0x3\n" - " add r2, r2, r0\n" - " mov r1, #0xa\n" - " ldsh r0, [r2, r1]\n" - " lsl r1, r0, #0x4\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r4\n" - " ldrh r0, [r6]\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r8\n" - " ldrb r0, [r0, #0x1]\n" - " add r0, r0, #0x28\n" - " strh r0, [r1, #0x22]\n" - " mov r1, #0xa\n" - " ldsh r0, [r2, r1]\n" - " lsl r1, r0, #0x4\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r4\n" - " ldr r3, ._882 + 28 @ gUnknown_Debug_2023B62\n" - " ldrh r0, [r6]\n" - " sub r0, r0, #0x1\n" - " add r0, r0, r3\n" - " ldrb r0, [r0]\n" - " neg r0, r0\n" - " strh r0, [r1, #0x26]\n" - " mov r0, #0xa\n" - " ldsh r1, [r2, r0]\n" - " lsl r0, r1, #0x4\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r4\n" - " mov r1, #0x0\n" - " bl StartSpriteAnim\n" - " add sp, sp, #0x8\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._883:\n" - " .align 2, 0\n" - "._882:\n" - " .word gCurrentMove\n" - " .word gMonFrontPicTable\n" - " .word gMonFrontPicCoords\n" - " .word gUnknown_081FAF4C\n" - " .word gMonPaletteTable\n" - " .word gSprites\n" - " .word gTasks\n" - " .word gUnknown_Debug_2023B62\n" - "\n" - ); + DecompressPicFromTable_2( + &gMonFrontPicTable[gCurrentMove], + gMonFrontPicCoords[gCurrentMove].coords, + gMonFrontPicCoords[gCurrentMove].y_offset, + (void *)0x02000000, + gUnknown_081FAF4C[1], + gCurrentMove); + LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); + gSprites[gTasks[taskId].data[1]].pos1.y = gMonFrontPicCoords[gCurrentMove].y_offset + 40; + gSprites[gTasks[taskId].data[1]].pos2.y = -gUnknown_Debug_2023B62[gCurrentMove - 1]; + StartSpriteAnim(&gSprites[gTasks[taskId].data[1]], 0); } -__attribute__((naked)) -void debug_sub_8012AC0() +void debug_sub_8012AC0(s8 a, u8 taskId) { - asm( - " push {r4, r5, r6, lr}\n" - " lsl r0, r0, #0x18\n" - " lsr r5, r0, #0x18\n" - " lsl r1, r1, #0x18\n" - " lsr r6, r1, #0x18\n" - " ldr r3, ._885 @ gCurrentMove\n" - " ldr r4, ._885 + 4 @ gBaseStats\n" - " b ._884\n" - "._886:\n" - " .align 2, 0\n" - "._885:\n" - " .word gCurrentMove\n" - " .word gBaseStats\n" - "._890:\n" - " ldrb r0, [r1, #0x7]\n" - " cmp r0, #0x2\n" - " beq ._887 @cond_branch\n" - "._884:\n" - " add r2, r3, #0\n" - " lsl r0, r5, #0x18\n" - " asr r0, r0, #0x18\n" - " ldrh r1, [r2]\n" - " add r0, r0, r1\n" - " strh r0, [r2]\n" - " lsl r0, r0, #0x10\n" - " cmp r0, #0\n" - " bne ._888 @cond_branch\n" - " ldr r1, ._891 @ 0x19b\n" - " add r0, r1, #0\n" - " strh r0, [r2]\n" - "._888:\n" - " ldrh r1, [r2]\n" - " ldr r0, ._891 @ 0x19b\n" - " cmp r1, r0\n" - " bne ._889 @cond_branch\n" - " mov r0, #0x1\n" - " strh r0, [r2]\n" - "._889:\n" - " ldrh r0, [r3]\n" - " lsl r1, r0, #0x3\n" - " sub r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r4\n" - " ldrb r0, [r1, #0x6]\n" - " cmp r0, #0x2\n" - " bne ._890 @cond_branch\n" - "._887:\n" - " bl debug_sub_80128B4\n" - " add r0, r6, #0\n" - " bl debug_sub_8012938\n" - " add r0, r6, #0\n" - " bl debug_sub_80129F8\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._892:\n" - " .align 2, 0\n" - "._891:\n" - " .word 0x19b\n" - "\n" - ); + do + { + gCurrentMove += a; + if (gCurrentMove == 0) + gCurrentMove = 411; + if (gCurrentMove == 411) + gCurrentMove = 1; + } while (gBaseStats[gCurrentMove].type1 != 2 && gBaseStats[gCurrentMove].type2 != 2); + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); } -__attribute__((naked)) -void debug_sub_8012B2C() +void debug_sub_8012B2C(u8 a) { - asm( - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x11\n" - " ldr r1, ._893 @ 0x600c772\n" - " add r2, r0, r1\n" - " mov r1, #0x1\n" - " strh r1, [r2]\n" - " ldr r1, ._893 + 4 @ 0x600c7b2\n" - " add r0, r0, r1\n" - " mov r1, #0x2\n" - " strh r1, [r0]\n" - " bx lr\n" - "._894:\n" - " .align 2, 0\n" - "._893:\n" - " .word 0x600c772\n" - " .word 0x600c7b2\n" - "\n" - ); + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 1; + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 2; } -__attribute__((naked)) -void debug_sub_8012B4C() +void debug_sub_8012B4C(u8 a) { - asm( - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x11\n" - " ldr r2, ._895 @ 0x600c772\n" - " add r1, r0, r2\n" - " ldr r3, ._895 + 4 @ 0x1016\n" - " add r2, r3, #0\n" - " strh r2, [r1]\n" - " ldr r1, ._895 + 8 @ 0x600c7b2\n" - " add r0, r0, r1\n" - " strh r2, [r0]\n" - " bx lr\n" - "._896:\n" - " .align 2, 0\n" - "._895:\n" - " .word 0x600c772\n" - " .word 0x1016\n" - " .word 0x600c7b2\n" - "\n" - ); + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 0x1016; + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 0x1016; } -__attribute__((naked)) -void debug_sub_8012B70() +void debug_sub_8012B70(u8 taskId, u8 b) { - asm( - " push {r4, r5, r6, lr}\n" - " add sp, sp, #0xfffffffc\n" - " lsl r0, r0, #0x18\n" - " lsr r5, r0, #0x18\n" - " lsl r1, r1, #0x18\n" - " lsr r6, r1, #0x18\n" - " cmp r6, #0\n" - " beq ._897 @cond_branch\n" - " mov r4, #0x1\n" - " str r4, [sp]\n" - " mov r0, #0x18\n" - " mov r1, #0x1c\n" - " mov r2, #0x1d\n" - " mov r3, #0x21\n" - " bl sub_802BBD4\n" - " bl debug_sub_80128B4\n" - " add r0, r5, #0\n" - " bl debug_sub_8012938\n" - " add r0, r5, #0\n" - " bl debug_sub_80129F8\n" - " ldr r1, ._899 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " strh r4, [r0, #0x8]\n" - " b ._898\n" - "._900:\n" - " .align 2, 0\n" - "._899:\n" - " .word gTasks\n" - "._897:\n" - " str r6, [sp]\n" - " mov r0, #0x18\n" - " mov r1, #0x1c\n" - " mov r2, #0x1d\n" - " mov r3, #0x21\n" - " bl sub_802BBD4\n" - " ldr r0, ._901 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " mov r0, #0x2\n" - " strh r0, [r4, #0x8]\n" - " ldr r5, ._901 + 4 @ gUnknown_03004210\n" - " ldr r1, ._901 + 8 @ Str_821F7DA\n" - " mov r2, #0xa4\n" - " lsl r2, r2, #0x2\n" - " mov r0, #0x1d\n" - " str r0, [sp]\n" - " add r0, r5, #0\n" - " mov r3, #0x1a\n" - " bl Text_InitWindow\n" - " add r0, r5, #0\n" - " bl Text_PrintWindow8002F44\n" - " strh r6, [r4, #0xe]\n" - " mov r0, #0x0\n" - " bl debug_sub_8012B2C\n" - "._898:\n" - " add sp, sp, #0x4\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._902:\n" - " .align 2, 0\n" - "._901:\n" - " .word gTasks\n" - " .word gUnknown_03004210\n" - " .word Str_821F7DA\n" - "\n" - ); -} - -__attribute__((naked)) -void debug_sub_8012C08() -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r8\n" - " push {r7}\n" - " add sp, sp, #0xfffffffc\n" - " add r4, r1, #0\n" - " lsl r0, r0, #0x18\n" - " lsr r6, r0, #0x18\n" - " lsl r4, r4, #0x18\n" - " lsr r4, r4, #0x18\n" - " mov r0, #0x0\n" - " mov r1, #0x9\n" - " bl debug_sub_8010A7C\n" - " ldr r7, ._905 @ gUnknown_03004210\n" - " ldr r5, ._905 + 4 @ gBattleTextBuff1\n" - " mov r0, #0x23\n" - " mov r8, r0\n" - " str r0, [sp]\n" - " add r0, r7, #0\n" - " add r1, r5, #0\n" - " mov r2, #0x90\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r7, #0\n" - " bl Text_PrintWindow8002F44\n" - " mov r0, #0x0\n" - " mov r1, #0x7\n" - " bl debug_sub_8010A7C\n" - " mov r0, #0x25\n" - " str r0, [sp]\n" - " add r0, r7, #0\n" - " add r1, r5, #0\n" - " mov r2, #0xa2\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r7, #0\n" - " bl Text_PrintWindow8002F44\n" - " mov r0, #0x0\n" - " str r0, [sp]\n" - " mov r0, #0x18\n" - " mov r1, #0x1c\n" - " mov r2, #0x1d\n" - " mov r3, #0x21\n" - " bl sub_802BBD4\n" - " cmp r4, #0\n" - " beq ._903 @cond_branch\n" - " ldr r1, ._905 + 8 @ gTasks\n" - " lsl r4, r6, #0x2\n" - " add r0, r4, r6\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x4\n" - " strh r1, [r0, #0x8]\n" - " ldr r1, ._905 + 12 @ gUnknown_Debug_821F7F3\n" - " mov r0, r8\n" - " str r0, [sp]\n" - " add r0, r7, #0\n" - " mov r2, #0x90\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " b ._904\n" - "._906:\n" - " .align 2, 0\n" - "._905:\n" - " .word gUnknown_03004210\n" - " .word gBattleTextBuff1\n" - " .word gTasks\n" - " .word gUnknown_Debug_821F7F3\n" - "._903:\n" - " ldr r1, ._907 @ gTasks\n" - " lsl r4, r6, #0x2\n" - " add r0, r4, r6\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x3\n" - " strh r1, [r0, #0x8]\n" - " ldr r1, ._907 + 4 @ Str_821F7EA\n" - " mov r0, r8\n" - " str r0, [sp]\n" - " add r0, r7, #0\n" - " mov r2, #0x90\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - "._904:\n" - " add r5, r4, #0\n" - " ldr r4, ._907 + 8 @ gUnknown_03004210\n" - " add r0, r4, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r1, ._907 + 12 @ BattleText_YesNo\n" - " mov r2, #0xa4\n" - " lsl r2, r2, #0x2\n" - " mov r0, #0x1d\n" - " str r0, [sp]\n" - " add r0, r4, #0\n" - " mov r3, #0x1a\n" - " bl Text_InitWindow\n" - " add r0, r4, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r1, ._907 @ gTasks\n" - " add r0, r5, r6\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x1\n" - " strh r1, [r0, #0xe]\n" - " mov r0, #0x1\n" - " bl debug_sub_8012B2C\n" - " add sp, sp, #0x4\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._908:\n" - " .align 2, 0\n" - "._907:\n" - " .word gTasks\n" - " .word Str_821F7EA\n" - " .word gUnknown_03004210\n" - " .word BattleText_YesNo\n" - "\n" - ); -} - -__attribute__((naked)) -void debug_sub_8012D10() -{ - asm( - " push {r4, r5, lr}\n" - " add sp, sp, #0xfffffffc\n" - " lsl r0, r0, #0x18\n" - " lsr r5, r0, #0x18\n" - " ldr r1, ._911 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x8\n" - " ldsh r0, [r0, r1]\n" - " cmp r0, #0x4\n" - " bls ._909 @cond_branch\n" - " b ._1067\n" - "._909:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._911 + 4 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._912:\n" - " .align 2, 0\n" - "._911:\n" - " .word gTasks\n" - " .word ._913\n" - "._913:\n" - " .word ._914\n" - " .word ._915\n" - " .word ._916\n" - " .word ._917\n" - " .word ._918\n" - "._914:\n" - " bl debug_sub_80128B4\n" - " add r0, r5, #0\n" - " bl debug_sub_8012938\n" - " ldr r4, ._920 @ gUnknown_03004210\n" - " ldr r1, ._920 + 4 @ Str_821F7BD\n" - " mov r2, #0xc8\n" - " lsl r2, r2, #0x1\n" - " mov r0, #0x23\n" - " str r0, [sp]\n" - " add r0, r4, #0\n" - " mov r3, #0x13\n" - " bl Text_InitWindow\n" - " add r0, r4, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r1, ._920 + 8 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " ldrh r1, [r0, #0x8]\n" - " add r1, r1, #0x1\n" - " strh r1, [r0, #0x8]\n" - " ldrb r0, [r0, #0xc]\n" - " b ._919\n" - "._921:\n" - " .align 2, 0\n" - "._920:\n" - " .word gUnknown_03004210\n" - " .word Str_821F7BD\n" - " .word gTasks\n" - "._915:\n" - " ldr r2, ._924 @ gMain\n" - " ldrh r1, [r2, #0x2e]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._922 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._924 + 4 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xc]\n" - " bl nullsub_8\n" - " ldrh r1, [r4, #0xc]\n" - " mov r0, #0x3\n" - " neg r0, r0\n" - " and r0, r0, r1\n" - " b ._931\n" - "._925:\n" - " .align 2, 0\n" - "._924:\n" - " .word gMain\n" - " .word gTasks\n" - "._922:\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._926 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._928 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xc]\n" - " bl nullsub_8\n" - " ldrh r1, [r4, #0xc]\n" - " mov r0, #0x2\n" - " b ._927\n" - "._929:\n" - " .align 2, 0\n" - "._928:\n" - " .word gTasks\n" - "._926:\n" - " mov r0, #0x20\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._930 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._932 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xc]\n" - " bl nullsub_8\n" - " ldrh r1, [r4, #0xc]\n" - " mov r0, #0x2\n" - " neg r0, r0\n" - " and r0, r0, r1\n" - " b ._931\n" - "._933:\n" - " .align 2, 0\n" - "._932:\n" - " .word gTasks\n" - "._930:\n" - " mov r0, #0x10\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._934 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._936 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xc]\n" - " bl nullsub_8\n" - " ldrh r1, [r4, #0xc]\n" - " mov r0, #0x1\n" - "._927:\n" - " orr r0, r0, r1\n" - "._931:\n" - " strh r0, [r4, #0xc]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - "._919:\n" - " mov r1, #0x0\n" - " bl sub_802E3E4\n" - " b ._1067\n" - "._937:\n" - " .align 2, 0\n" - "._936:\n" - " .word gTasks\n" - "._934:\n" - " ldrh r1, [r2, #0x30]\n" - " mov r4, #0x1\n" - " add r0, r4, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._938 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r1, ._943 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r2, #0xc\n" - " ldsh r0, [r0, r2]\n" - " cmp r0, #0x1\n" - " beq ._939 @cond_branch\n" - " cmp r0, #0x1\n" - " bgt ._940 @cond_branch\n" - " cmp r0, #0\n" - " beq ._941 @cond_branch\n" - " b ._1067\n" - "._944:\n" - " .align 2, 0\n" - "._943:\n" - " .word gTasks\n" - "._940:\n" - " cmp r0, #0x2\n" - " beq ._945 @cond_branch\n" - "._990:\n" - " cmp r0, #0x3\n" - " bne ._946 @cond_branch\n" - " b ._1014\n" - "._946:\n" - " b ._1067\n" - "._941:\n" - " ldr r1, ._952 @ gUnknown_Debug_2023B62\n" - " ldr r0, ._952 + 4 @ gCurrentMove\n" - " ldrh r0, [r0]\n" - " sub r0, r0, #0x1\n" - " add r1, r0, r1\n" - " ldrb r0, [r1]\n" - " cmp r0, #0x3f\n" - " bls ._949 @cond_branch\n" - " b ._1067\n" - "._949:\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._1019\n" - "._953:\n" - " .align 2, 0\n" - "._952:\n" - " .word gUnknown_Debug_2023B62\n" - " .word gCurrentMove\n" - "._939:\n" - " mov r0, #0x1\n" - " b ._997\n" - "._945:\n" - " ldr r1, ._957 @ gCurrentMove\n" - " ldrh r2, [r1]\n" - " mov r0, #0xcd\n" - " lsl r0, r0, #0x1\n" - " cmp r2, r0\n" - " bhi ._955 @cond_branch\n" - " add r0, r2, #1\n" - "._979:\n" - " strh r0, [r1]\n" - " b ._1025\n" - "._958:\n" - " .align 2, 0\n" - "._957:\n" - " .word gCurrentMove\n" - "._955:\n" - " strh r4, [r1]\n" - " b ._1025\n" - "._938:\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._960 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r1, ._966 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0xc\n" - " ldsh r0, [r0, r1]\n" - " cmp r0, #0x1\n" - " bne ._961 @cond_branch\n" - " b ._1007\n" - "._961:\n" - " cmp r0, #0x1\n" - " bgt ._963 @cond_branch\n" - " cmp r0, #0\n" - " beq ._964 @cond_branch\n" - " b ._1067\n" - "._967:\n" - " .align 2, 0\n" - "._966:\n" - " .word gTasks\n" - "._963:\n" - " cmp r0, #0x2\n" - " beq ._968 @cond_branch\n" - " b ._990\n" - "._964:\n" - " ldr r1, ._973 @ gUnknown_Debug_2023B62\n" - " ldr r0, ._973 + 4 @ gCurrentMove\n" - " ldrh r0, [r0]\n" - " sub r0, r0, #0x1\n" - " add r1, r0, r1\n" - " ldrb r0, [r1]\n" - " cmp r0, #0\n" - " bne ._970 @cond_branch\n" - " b ._1067\n" - "._970:\n" - " sub r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._1019\n" - "._974:\n" - " .align 2, 0\n" - "._973:\n" - " .word gUnknown_Debug_2023B62\n" - " .word gCurrentMove\n" - "._968:\n" - " ldr r1, ._977 @ gCurrentMove\n" - " ldrh r0, [r1]\n" - " cmp r0, #0x1\n" - " bls ._975 @cond_branch\n" - " sub r0, r0, #0x1\n" - " b ._979\n" - "._978:\n" - " .align 2, 0\n" - "._977:\n" - " .word gCurrentMove\n" - "._975:\n" - " ldr r2, ._980 @ 0x19b\n" - " add r0, r2, #0\n" - " b ._979\n" - "._981:\n" - " .align 2, 0\n" - "._980:\n" - " .word 0x19b\n" - "._960:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._982 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r1, ._987 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0xc\n" - " ldsh r0, [r0, r1]\n" - " cmp r0, #0x1\n" - " beq ._983 @cond_branch\n" - " cmp r0, #0x1\n" - " bgt ._984 @cond_branch\n" - " cmp r0, #0\n" - " beq ._985 @cond_branch\n" - " b ._1067\n" - "._988:\n" - " .align 2, 0\n" - "._987:\n" - " .word gTasks\n" - "._984:\n" - " cmp r0, #0x2\n" - " beq ._989 @cond_branch\n" - " b ._990\n" - "._985:\n" - " ldr r3, ._995 @ gUnknown_Debug_2023B62\n" - " ldr r2, ._995 + 4 @ gCurrentMove\n" - " ldrh r0, [r2]\n" - " sub r0, r0, #0x1\n" - " add r1, r0, r3\n" - " ldrb r0, [r1]\n" - " cmp r0, #0x3f\n" - " bls ._991 @cond_branch\n" - " b ._1067\n" - "._991:\n" - " add r0, r0, #0x8\n" - " strb r0, [r1]\n" - " ldrh r0, [r2]\n" - " sub r0, r0, #0x1\n" - " add r1, r0, r3\n" - " ldrb r0, [r1]\n" - " cmp r0, #0x40\n" - " bls ._1019 @cond_branch\n" - " mov r0, #0x40\n" - " strb r0, [r1]\n" - " b ._1019\n" - "._996:\n" - " .align 2, 0\n" - "._995:\n" - " .word gUnknown_Debug_2023B62\n" - " .word gCurrentMove\n" - "._983:\n" - " mov r0, #0x1\n" - " b ._997\n" - "._989:\n" - " ldr r3, ._1000 @ gCurrentMove\n" - " ldrh r2, [r3]\n" - " add r1, r2, #0\n" - " add r1, r1, #0xa\n" - " ldr r0, ._1000 + 4 @ 0x19b\n" - " cmp r1, r0\n" - " bgt ._998 @cond_branch\n" - " strh r1, [r3]\n" - " b ._1025\n" - "._1001:\n" - " .align 2, 0\n" - "._1000:\n" - " .word gCurrentMove\n" - " .word 0x19b\n" - "._998:\n" - " ldr r1, ._1003 @ 0xfffffe70\n" - " add r0, r2, r1\n" - " strh r0, [r3]\n" - " b ._1025\n" - "._1004:\n" - " .align 2, 0\n" - "._1003:\n" - " .word 0xfffffe70\n" - "._982:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._1005 @cond_branch\n" - " b ._1067\n" - "._1005:\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r1, ._1011 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r2, #0xc\n" - " ldsh r3, [r0, r2]\n" - " cmp r3, #0x1\n" - " beq ._1007 @cond_branch\n" - " cmp r3, #0x1\n" - " bgt ._1008 @cond_branch\n" - " cmp r3, #0\n" - " beq ._1009 @cond_branch\n" - " b ._1067\n" - "._1012:\n" - " .align 2, 0\n" - "._1011:\n" - " .word gTasks\n" - "._1008:\n" - " cmp r3, #0x2\n" - " beq ._1013 @cond_branch\n" - " cmp r3, #0x3\n" - " beq ._1014 @cond_branch\n" - " b ._1067\n" - "._1009:\n" - " ldr r1, ._1020 @ gUnknown_Debug_2023B62\n" - " ldr r0, ._1020 + 4 @ gCurrentMove\n" - " ldrh r0, [r0]\n" - " sub r0, r0, #0x1\n" - " add r2, r0, r1\n" - " ldrb r0, [r2]\n" - " add r1, r0, #0\n" - " cmp r1, #0\n" - " bne ._1016 @cond_branch\n" - " b ._1067\n" - "._1016:\n" - " cmp r1, #0x8\n" - " bls ._1018 @cond_branch\n" - " sub r0, r0, #0x8\n" - " strb r0, [r2]\n" - " b ._1019\n" - "._1021:\n" - " .align 2, 0\n" - "._1020:\n" - " .word gUnknown_Debug_2023B62\n" - " .word gCurrentMove\n" - "._1018:\n" - " strb r3, [r2]\n" - "._1019:\n" - " add r0, r5, #0\n" - " bl debug_sub_8012938\n" - " b ._1067\n" - "._1007:\n" - " mov r0, #0x1\n" - " neg r0, r0\n" - "._997:\n" - " add r1, r5, #0\n" - " bl debug_sub_8012AC0\n" - " b ._1067\n" - "._1013:\n" - " ldr r2, ._1026 @ gCurrentMove\n" - " ldrh r0, [r2]\n" - " add r1, r0, #0\n" - " sub r1, r1, #0xa\n" - " cmp r1, #0x1\n" - " ble ._1024 @cond_branch\n" - " strh r1, [r2]\n" - " b ._1025\n" - "._1027:\n" - " .align 2, 0\n" - "._1026:\n" - " .word gCurrentMove\n" - "._1024:\n" - " mov r1, #0xc8\n" - " lsl r1, r1, #0x1\n" - " add r0, r0, r1\n" - " strh r0, [r2]\n" - "._1025:\n" - " bl debug_sub_80128B4\n" - " add r0, r5, #0\n" - " bl debug_sub_8012938\n" - " add r0, r5, #0\n" - " bl debug_sub_80129F8\n" - " b ._1067\n" - "._1014:\n" - " add r0, r5, #0\n" - " mov r1, #0x0\n" - " bl debug_sub_8012B70\n" - " b ._1067\n" - "._916:\n" - " ldr r0, ._1032 @ gMain\n" - " ldrh r1, [r0, #0x2e]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1030 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1032 + 4 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xe]\n" - " bl debug_sub_8012B4C\n" - " mov r0, #0x0\n" - " b ._1055\n" - "._1033:\n" - " .align 2, 0\n" - "._1032:\n" - " .word gMain\n" - " .word gTasks\n" - "._1030:\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._1046 @cond_branch\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1035 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1037 @ gTasks\n" - " lsl r1, r5, #0x2\n" - " add r1, r1, r5\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r0\n" - " ldrb r1, [r1, #0xe]\n" - " add r0, r5, #0\n" - " bl debug_sub_8012C08\n" - " b ._1067\n" - "._1038:\n" - " .align 2, 0\n" - "._1037:\n" - " .word gTasks\n" - "._1035:\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._1039 @cond_branch\n" - " b ._1067\n" - "._1039:\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " b ._1063\n" - "._917:\n" - " ldr r0, ._1044 @ gMain\n" - " ldrh r1, [r0, #0x2e]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1042 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1044 + 4 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xe]\n" - " bl debug_sub_8012B4C\n" - " mov r0, #0x0\n" - " b ._1055\n" - "._1045:\n" - " .align 2, 0\n" - "._1044:\n" - " .word gMain\n" - " .word gTasks\n" - "._1042:\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._1046 @cond_branch\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1047 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1050 @ gTasks\n" - " lsl r1, r5, #0x2\n" - " add r1, r1, r5\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r0\n" - " mov r2, #0xe\n" - " ldsh r0, [r1, r2]\n" - " cmp r0, #0\n" - " bne ._1063 @cond_branch\n" - " ldr r1, ._1050 + 4 @ gUnknown_Debug_2023B62\n" - " ldr r2, ._1050 + 8 @ 0x19b\n" - " mov r0, #0x1f\n" - " bl debug_sub_80132C8\n" - " b ._1063\n" - "._1051:\n" - " .align 2, 0\n" - "._1050:\n" - " .word gTasks\n" - " .word gUnknown_Debug_2023B62\n" - " .word 0x19b\n" - "._1047:\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1067 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " b ._1063\n" - "._918:\n" - " ldr r0, ._1056 @ gMain\n" - " ldrh r1, [r0, #0x2e]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1054 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1056 + 4 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xe]\n" - " bl debug_sub_8012B4C\n" - " mov r0, #0x0\n" - " b ._1055\n" - "._1057:\n" - " .align 2, 0\n" - "._1056:\n" - " .word gMain\n" - " .word gTasks\n" - "._1054:\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1058 @cond_branch\n" - "._1046:\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1060 @ gTasks\n" - " lsl r4, r5, #0x2\n" - " add r4, r4, r5\n" - " lsl r4, r4, #0x3\n" - " add r4, r4, r0\n" - " ldrb r0, [r4, #0xe]\n" - " bl debug_sub_8012B4C\n" - " mov r0, #0x1\n" - "._1055:\n" - " strh r0, [r4, #0xe]\n" - " bl debug_sub_8012B2C\n" - " b ._1067\n" - "._1061:\n" - " .align 2, 0\n" - "._1060:\n" - " .word gTasks\n" - "._1058:\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1062 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " ldr r0, ._1065 @ gTasks\n" - " lsl r1, r5, #0x2\n" - " add r1, r1, r5\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r0\n" - " mov r2, #0xe\n" - " ldsh r0, [r1, r2]\n" - " cmp r0, #0\n" - " bne ._1063 @cond_branch\n" - " ldr r1, ._1065 + 4 @ gUnknown_Debug_2023B62\n" - " ldr r2, ._1065 + 8 @ 0x19b\n" - " mov r0, #0x1f\n" - " bl debug_sub_8013294\n" - "._1063:\n" - " add r0, r5, #0\n" - " mov r1, #0x1\n" - " bl debug_sub_8012B70\n" - " b ._1067\n" - "._1066:\n" - " .align 2, 0\n" - "._1065:\n" - " .word gTasks\n" - " .word gUnknown_Debug_2023B62\n" - " .word 0x19b\n" - "._1062:\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1067 @cond_branch\n" - " mov r0, #0x5\n" - " bl PlaySE\n" - " add r0, r5, #0\n" - " mov r1, #0x1\n" - " bl debug_sub_8012B70\n" - "._1067:\n" - " add sp, sp, #0x4\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "\n" - ); + if (b != 0) + { + sub_802BBD4(24, 28, 29, 33, 1); + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); + gTasks[taskId].data[0] = 1; + } + else + { + sub_802BBD4(24, 28, 29, 33, 0); + gTasks[taskId].data[0] = 2; + Text_InitWindow(&gUnknown_03004210, Str_821F7DA, 656, 26, 29); + Text_PrintWindow8002F44(&gUnknown_03004210); + gTasks[taskId].data[3] = 0; + debug_sub_8012B2C(0); + } +} + +void debug_sub_8012C08(u8 taskId, u8 b) +{ + debug_sub_8010A7C(0, 9); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gUnknown_03004210); + debug_sub_8010A7C(0, 7); + Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gUnknown_03004210); + sub_802BBD4(24, 28, 29, 33, 0); + if (b != 0) + { + gTasks[taskId].data[0] = 4; + Text_InitWindow(&gUnknown_03004210, gUnknown_Debug_821F7F3, 144, 2, 35); + } + else + { + gTasks[taskId].data[0] = 3; + Text_InitWindow(&gUnknown_03004210, Str_821F7EA, 144, 2, 35); + } + Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gUnknown_03004210, BattleText_YesNo, 656, 26, 29); + Text_PrintWindow8002F44(&gUnknown_03004210); + gTasks[taskId].data[3] = 1; + debug_sub_8012B2C(1); +} + +void debug_sub_8012D10(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + debug_sub_80128B4(); + debug_sub_8012938(taskId); + Text_InitWindow(&gUnknown_03004210, Str_821F7BD, 400, 19, 35); + Text_PrintWindow8002F44(&gUnknown_03004210); + gTasks[taskId].data[0]++; + sub_802E3E4(gTasks[taskId].data[2], 0); + break; + case 1: + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + nullsub_8(gTasks[taskId].data[2]); + gTasks[taskId].data[2] &= ~2; + sub_802E3E4(gTasks[taskId].data[2], 0); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + nullsub_8(gTasks[taskId].data[2]); + gTasks[taskId].data[2] |= 2; + sub_802E3E4(gTasks[taskId].data[2], 0); + } + else if (gMain.newKeys & DPAD_LEFT) + { + PlaySE(SE_SELECT); + nullsub_8(gTasks[taskId].data[2]); + gTasks[taskId].data[2] &= ~1; + sub_802E3E4(gTasks[taskId].data[2], 0); + } + else if (gMain.newKeys & DPAD_RIGHT) + { + PlaySE(SE_SELECT); + nullsub_8(gTasks[taskId].data[2]); + gTasks[taskId].data[2] |= 1; + sub_802E3E4(gTasks[taskId].data[2], 0); + } + else if (gMain.newAndRepeatedKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + switch (gTasks[taskId].data[2]) + { + case 0: + if (gUnknown_Debug_2023B62[gCurrentMove - 1] < 64) + { + gUnknown_Debug_2023B62[gCurrentMove - 1] += 1; + debug_sub_8012938(taskId); + } + break; + case 1: + debug_sub_8012AC0(1, taskId); + break; + case 2: + if (gCurrentMove < 411) + gCurrentMove++; + else + gCurrentMove = 1; + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); + break; + case 3: + debug_sub_8012B70(taskId, 0); + break; + } + } + else if (gMain.newAndRepeatedKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + switch (gTasks[taskId].data[2]) + { + case 0: + if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 0) + { + gUnknown_Debug_2023B62[gCurrentMove - 1] -= 1; + debug_sub_8012938(taskId); + } + break; + case 1: + debug_sub_8012AC0(-1, taskId); + break; + case 2: + if (gCurrentMove > 1) + gCurrentMove--; + else + gCurrentMove = 411; + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); + break; + case 3: + debug_sub_8012B70(taskId, 0); + break; + } + } + else if (gMain.newAndRepeatedKeys & R_BUTTON) + { + PlaySE(SE_SELECT); + switch (gTasks[taskId].data[2]) + { + case 0: + if (gUnknown_Debug_2023B62[gCurrentMove - 1] < 64) + { + gUnknown_Debug_2023B62[gCurrentMove - 1] += 8; + if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 64) + gUnknown_Debug_2023B62[gCurrentMove - 1] = 64; + debug_sub_8012938(taskId); + } + break; + case 1: + debug_sub_8012AC0(1, taskId); + break; + case 2: + if (gCurrentMove + 10 < 412) + gCurrentMove += 10; + else + gCurrentMove -= 400; + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); + break; + case 3: + debug_sub_8012B70(taskId, 0); + break; + } + } + else if (gMain.newAndRepeatedKeys & L_BUTTON) + { + PlaySE(SE_SELECT); + switch (gTasks[taskId].data[2]) + { + case 0: + if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 0) + { + if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 8) + gUnknown_Debug_2023B62[gCurrentMove - 1] -= 8; + else + gUnknown_Debug_2023B62[gCurrentMove - 1] = 0; + debug_sub_8012938(taskId); + } + break; + case 1: + debug_sub_8012AC0(-1, taskId); + break; + case 2: + if (gCurrentMove - 10 > 1) + gCurrentMove -= 10; + else + gCurrentMove += 400; + debug_sub_80128B4(); + debug_sub_8012938(taskId); + debug_sub_80129F8(taskId); + break; + case 3: + debug_sub_8012B70(taskId, 0); + break; + } + } + break; + case 2: + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 0; + debug_sub_8012B2C(0); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 1; + debug_sub_8012B2C(1); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + debug_sub_8012C08(taskId, gTasks[taskId].data[3]); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + asm(""); + debug_sub_8012B70(taskId, 1); + } + return; + case 3: + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 0; + debug_sub_8012B2C(0); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 1; + debug_sub_8012B2C(1); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gTasks[taskId].data[3] == 0) + debug_sub_80132C8(31, gUnknown_Debug_2023B62, 411); + debug_sub_8012B70(taskId, 1); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + debug_sub_8012B70(taskId, 1); + } + break; + case 4: + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 0; + debug_sub_8012B2C(0); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + debug_sub_8012B4C(gTasks[taskId].data[3]); + gTasks[taskId].data[3] = 1; + debug_sub_8012B2C(1); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gTasks[taskId].data[3] == 0) + debug_sub_8013294(31, gUnknown_Debug_2023B62, 411); + debug_sub_8012B70(taskId, 1); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + debug_sub_8012B70(taskId, 1); + } + break; + } } u8 debug_sub_8013240(void) @@ -6769,683 +5868,103 @@ void dp11b_obj_free(u8 a, u8 b) } else { - if (!ewram17810[a].unk0_2) - return; - r4 = gSprites[ewram17810[a].unk3].data[3]; - DestroySprite(&gSprites[ewram17810[a].unk3]); - ewram17810[a].unk0_2 = 0; - } - gSprites[r4].pos2.x = 0; - gSprites[r4].pos2.y = 0; -} - -void objc_dp11b_pingpong(struct Sprite *sprite) -{ - u8 spriteId = sprite->data[3]; - s32 var; - - if (sprite->data[4] == 1) - var = sprite->data[0]; - else - var = sprite->data[0]; - - gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2]; - sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; -} - -void nullsub_41(void) -{ -} - -void sub_8010800(void) -{ - sub_8010874(); - gBattleCommunication[1] = 0; - gBattleMainFunc = bc_8012FAC; -} - -#if DEBUG -__attribute__((naked)) -void debug_sub_80138CC() -{ - asm( - " push {lr}\n" - " ldr r0, ._1167 @ gActiveBank\n" - " ldrb r0, [r0]\n" - " bl GetBankSide\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._1163 @cond_branch\n" - " b ._1186\n" - "._1163:\n" - " ldr r1, ._1167 + 4 @ gSharedMem\n" - " ldr r2, ._1167 + 8 @ 0x160fd\n" - " add r0, r1, r2\n" - " ldrb r0, [r0]\n" - " add r2, r1, #0\n" - " cmp r0, #0x4\n" - " bls ._1165 @cond_branch\n" - " b ._1186\n" - "._1165:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._1167 + 12 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._1168:\n" - " .align 2, 0\n" - "._1167:\n" - " .word gActiveBank\n" - " .word gSharedMem\n" - " .word 0x160fd\n" - " .word ._1169\n" - "._1169:\n" - " .word ._1170\n" - " .word ._1171\n" - " .word ._1172\n" - " .word ._1173\n" - " .word ._1174\n" - "._1170:\n" - " ldr r1, ._1177 @ gBattleBankFunc\n" - " ldr r0, ._1177 + 4 @ gActiveBank\n" - " ldrb r0, [r0]\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r1\n" - " ldr r1, [r0]\n" - " ldr r0, ._1177 + 8 @ sub_802C098\n" - " cmp r1, r0\n" - " bne ._1186 @cond_branch\n" - " ldr r0, ._1177 + 12 @ 0x160fd\n" - " add r1, r2, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " b ._1187\n" - "._1178:\n" - " .align 2, 0\n" - "._1177:\n" - " .word gBattleBankFunc\n" - " .word gActiveBank\n" - " .word sub_802C098+1\n" - " .word 0x160fd\n" - "._1171:\n" - " ldr r1, ._1180 @ gMain\n" - " mov r0, #0x1\n" - " strh r0, [r1, #0x2c]\n" - " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1180 + 4 @ 0x160fd\n" - " add r1, r2, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " ldr r0, ._1180 + 8 @ 0x160fe\n" - " add r1, r2, r0\n" - " mov r0, #0x80\n" - " b ._1187\n" - "._1181:\n" - " .align 2, 0\n" - "._1180:\n" - " .word gMain\n" - " .word 0x160fd\n" - " .word 0x160fe\n" - "._1172:\n" - " ldr r0, ._1184 @ 0x160fe\n" - " add r3, r2, r0\n" - " ldrb r0, [r3]\n" - " sub r0, r0, #0x1\n" - " strb r0, [r3]\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._1186 @cond_branch\n" - " ldr r1, ._1184 + 4 @ gMain\n" - " mov r0, #0x1\n" - " strh r0, [r1, #0x2c]\n" - " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1184 + 8 @ 0x160fd\n" - " add r1, r2, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " mov r0, #0x80\n" - " strb r0, [r3]\n" - " b ._1186\n" - "._1185:\n" - " .align 2, 0\n" - "._1184:\n" - " .word 0x160fe\n" - " .word gMain\n" - " .word 0x160fd\n" - "._1173:\n" - " ldr r0, ._1188 @ 0x160fe\n" - " add r1, r2, r0\n" - " ldrb r0, [r1]\n" - " sub r0, r0, #0x1\n" - " strb r0, [r1]\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._1186 @cond_branch\n" - " ldr r1, ._1188 + 4 @ gMain\n" - " mov r0, #0x1\n" - " strh r0, [r1, #0x2c]\n" - " strh r0, [r1, #0x2e]\n" - " ldr r0, ._1188 + 8 @ 0x160fd\n" - " add r1, r2, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " b ._1187\n" - "._1189:\n" - " .align 2, 0\n" - "._1188:\n" - " .word 0x160fe\n" - " .word gMain\n" - " .word 0x160fd\n" - "._1174:\n" - " ldr r0, ._1190 @ 0x160fd\n" - " add r1, r2, r0\n" - " mov r0, #0x0\n" - "._1187:\n" - " strb r0, [r1]\n" - "._1186:\n" - " pop {r0}\n" - " bx r0\n" - "._1191:\n" - " .align 2, 0\n" - "._1190:\n" - " .word 0x160fd\n" - "\n" - ); + if (!ewram17810[a].unk0_2) + return; + r4 = gSprites[ewram17810[a].unk3].data[3]; + DestroySprite(&gSprites[ewram17810[a].unk3]); + ewram17810[a].unk0_2 = 0; + } + gSprites[r4].pos2.x = 0; + gSprites[r4].pos2.y = 0; } -__attribute__((naked)) -void debug_sub_80139E4() +void objc_dp11b_pingpong(struct Sprite *sprite) { - asm( - " push {r4, r5, lr}\n" - " ldr r0, ._1198 @ gUnknown_02023A14_50\n" - " ldrb r1, [r0]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " cmp r4, #0\n" - " beq ._1192 @cond_branch\n" - " ldr r2, ._1198 + 4 @ gActiveBank\n" - " mov r0, #0x0\n" - " strb r0, [r2]\n" - " ldr r1, ._1198 + 8 @ gNoOfAllBanks\n" - " ldrb r0, [r1]\n" - " cmp r0, #0\n" - " beq ._1193 @cond_branch\n" - " add r4, r2, #0\n" - " add r5, r1, #0\n" - "._1194:\n" - " bl debug_sub_80138CC\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldrb r1, [r5]\n" - " cmp r0, r1\n" - " bcc ._1194 @cond_branch\n" - "._1193:\n" - " ldr r0, ._1198 + 12 @ gBattleMainFunc\n" - " ldr r0, [r0]\n" - " bl _call_via_r0\n" - " ldr r1, ._1198 + 4 @ gActiveBank\n" - " mov r0, #0x0\n" - " strb r0, [r1]\n" - " ldr r0, ._1198 + 8 @ gNoOfAllBanks\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " beq ._1200 @cond_branch\n" - " ldr r5, ._1198 + 16 @ gBattleBankFunc\n" - " add r4, r1, #0\n" - "._1196:\n" - " ldrb r0, [r4]\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r5\n" - " ldr r0, [r0]\n" - " bl _call_via_r0\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " ldr r1, ._1198 + 8 @ gNoOfAllBanks\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldrb r1, [r1]\n" - " cmp r0, r1\n" - " bcc ._1196 @cond_branch\n" - " b ._1200\n" - "._1199:\n" - " .align 2, 0\n" - "._1198:\n" - " .word gUnknown_02023A14_50\n" - " .word gActiveBank\n" - " .word gNoOfAllBanks\n" - " .word gBattleMainFunc\n" - " .word gBattleBankFunc\n" - "._1192:\n" - " ldr r0, ._1202 @ gBattleMainFunc\n" - " ldr r0, [r0]\n" - " bl _call_via_r0\n" - " ldr r1, ._1202 + 4 @ gActiveBank\n" - " strb r4, [r1]\n" - " ldr r0, ._1202 + 8 @ gNoOfAllBanks\n" - " ldrb r0, [r0]\n" - " cmp r4, r0\n" - " bcs ._1200 @cond_branch\n" - " ldr r5, ._1202 + 12 @ gBattleBankFunc\n" - " add r4, r1, #0\n" - "._1201:\n" - " ldrb r0, [r4]\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r5\n" - " ldr r0, [r0]\n" - " bl _call_via_r0\n" - " ldrb r0, [r4]\n" - " add r0, r0, #0x1\n" - " strb r0, [r4]\n" - " ldr r1, ._1202 + 8 @ gNoOfAllBanks\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldrb r1, [r1]\n" - " cmp r0, r1\n" - " bcc ._1201 @cond_branch\n" - "._1200:\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._1203:\n" - " .align 2, 0\n" - "._1202:\n" - " .word gBattleMainFunc\n" - " .word gActiveBank\n" - " .word gNoOfAllBanks\n" - " .word gBattleBankFunc\n" - "\n" - ); + u8 spriteId = sprite->data[3]; + s32 var; + + if (sprite->data[4] == 1) + var = sprite->data[0]; + else + var = sprite->data[0]; + + gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2]; + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; } -__attribute__((naked)) -void sub_8010874() +void nullsub_41(void) { - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, sl\n" - " mov r6, r9\n" - " mov r5, r8\n" - " push {r5, r6, r7}\n" - " mov r0, #0x0\n" - " bl TurnValuesCleanUp\n" - " bl SpecialStatusesClear\n" - " mov r2, #0x0\n" - " mov r3, #0x0\n" - " ldr r0, ._1215 @ gUnknown_02024C4C\n" - " mov sl, r0\n" - " ldr r1, ._1215 + 4 @ gLastHitByType\n" - " mov r9, r1\n" - " ldr r4, ._1215 + 8 @ gLastLandedMoves\n" - " mov r8, r4\n" - " ldr r0, ._1215 + 12 @ gLastUsedMove\n" - " mov ip, r0\n" - " ldr r4, ._1215 + 16 @ gDisableStructs\n" - " mov r5, #0x0\n" - " ldr r7, ._1215 + 20 @ gUnknown_02024C2C\n" - " ldr r6, ._1215 + 24 @ gLockedMoves\n" - "._1205:\n" - " ldr r0, ._1215 + 28 @ gStatuses3\n" - " add r0, r5, r0\n" - " str r3, [r0]\n" - " mov r1, #0x0\n" - "._1204:\n" - " add r0, r4, r1\n" - " strb r3, [r0]\n" - " add r1, r1, #0x1\n" - " cmp r1, #0x1b\n" - " bls ._1204 @cond_branch\n" - " mov r0, #0x2\n" - " strb r0, [r4, #0x16]\n" - " ldr r1, ._1215 + 32 @ gUnknown_02024C70\n" - " add r0, r2, r1\n" - " strb r3, [r0]\n" - " mov r0, ip\n" - " strh r3, [r0]\n" - " mov r1, r8\n" - " strh r3, [r1]\n" - " mov r0, r9\n" - " strh r3, [r0]\n" - " mov r1, sl\n" - " strh r3, [r1]\n" - " ldr r0, ._1215 + 36 @ gUnknown_02024C5C\n" - " add r1, r2, r0\n" - " mov r0, #0xff\n" - " strb r0, [r1]\n" - " strh r3, [r6]\n" - " strh r3, [r7]\n" - " ldr r1, ._1215 + 40 @ gSharedMem\n" - " add r0, r5, r1\n" - " str r3, [r0]\n" - " mov r0, #0x2\n" - " add sl, sl, r0\n" - " add r9, r9, r0\n" - " add r8, r8, r0\n" - " add ip, ip, r0\n" - " add r4, r4, #0x1c\n" - " add r5, r5, #0x4\n" - " add r7, r7, #0x2\n" - " add r6, r6, #0x2\n" - " add r2, r2, #0x1\n" - " cmp r2, #0x3\n" - " ble ._1205 @cond_branch\n" - " mov r5, #0x0\n" - " ldr r3, ._1215 + 44 @ gSideTimers\n" - " ldr r4, ._1215 + 48 @ gSideAffecting\n" - " mov r2, #0x1\n" - "._1207:\n" - " strh r5, [r4]\n" - " mov r1, #0x0\n" - "._1206:\n" - " add r0, r3, r1\n" - " strb r5, [r0]\n" - " add r1, r1, #0x1\n" - " cmp r1, #0xb\n" - " bls ._1206 @cond_branch\n" - " add r3, r3, #0xc\n" - " add r4, r4, #0x2\n" - " sub r2, r2, #0x1\n" - " cmp r2, #0\n" - " bge ._1207 @cond_branch\n" - " mov r1, #0x0\n" - " ldr r2, ._1215 + 52 @ gBankAttacker\n" - " strb r1, [r2]\n" - " ldr r3, ._1215 + 56 @ gBankTarget\n" - " strb r1, [r3]\n" - " ldr r4, ._1215 + 60 @ gBattleWeather\n" - " strh r1, [r4]\n" - " ldr r1, ._1215 + 64 @ gWishFutureKnock\n" - " mov r2, #0x0\n" - " mov r3, #0x0\n" - "._1208:\n" - " add r0, r1, r2\n" - " strb r3, [r0]\n" - " add r2, r2, #0x1\n" - " cmp r2, #0x2b\n" - " bls ._1208 @cond_branch\n" - " mov r0, #0x0\n" - " ldr r1, ._1215 + 68 @ gHitMarker\n" - " str r0, [r1]\n" - " ldr r2, ._1215 + 72 @ gBattleTypeFlags\n" - " ldrh r1, [r2]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._1210 @cond_branch\n" - " ldr r3, ._1215 + 76 @ gSaveBlock2\n" - " ldrb r1, [r3, #0x15]\n" - " mov r0, #0x4\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._1210 @cond_branch\n" - " mov r0, #0x80\n" - " ldr r4, ._1215 + 68 @ gHitMarker\n" - " str r0, [r4]\n" - "._1210:\n" - " ldr r1, ._1215 + 76 @ gSaveBlock2\n" - " ldrb r0, [r1, #0x15]\n" - " lsl r0, r0, #0x1e\n" - " lsr r0, r0, #0x1f\n" - " ldr r3, ._1215 + 80 @ gSharedMem\n" - " ldr r4, ._1215 + 84 @ 0x16084\n" - " add r2, r3, r4\n" - " mov r1, #0x0\n" - " strb r0, [r2]\n" - " ldr r0, ._1215 + 88 @ gMultiHitCounter\n" - " strb r1, [r0]\n" - " ldr r2, ._1215 + 92 @ gBattleOutcome\n" - " strb r1, [r2]\n" - " ldr r3, ._1215 + 96 @ gBattleExecBuffer\n" - " str r1, [r3]\n" - " mov r2, #0x0\n" - " ldr r4, ._1215 + 100@ gPaydayMoney\n" - " strh r1, [r4]\n" - " ldr r1, ._1215 + 80 @ gSharedMem\n" - " ldr r3, ._1215 + 104@ 0x17130\n" - " add r0, r1, r3\n" - " strb r2, [r0]\n" - " ldr r4, ._1215 + 108@ 0x17160\n" - " add r0, r1, r4\n" - " strb r2, [r0]\n" - " ldr r1, ._1215 + 112@ gBattleCommunication\n" - " mov r2, #0x0\n" - " add r0, r1, #7\n" - "._1211:\n" - " strb r2, [r0]\n" - " sub r0, r0, #0x1\n" - " cmp r0, r1\n" - " bge ._1211 @cond_branch\n" - " mov r5, #0x0\n" - " ldr r0, ._1215 + 116@ gPauseCounterBattle\n" - " strh r5, [r0]\n" - " mov r0, #0x0\n" - " ldr r1, ._1215 + 120@ gBattleMoveDamage\n" - " str r0, [r1]\n" - " ldr r2, ._1215 + 124@ gUnknown_02024DE8\n" - " strh r0, [r2]\n" - " ldr r4, ._1215 + 80 @ gSharedMem\n" - " ldr r3, ._1215 + 128@ 0x16002\n" - " add r0, r4, r3\n" - " strb r5, [r0]\n" - " ldr r1, ._1215 + 132@ 0x160a1\n" - " add r0, r4, r1\n" - " strb r5, [r0]\n" - " ldr r2, ._1215 + 136@ gLeveledUpInBattle\n" - " strb r5, [r2]\n" - " ldr r3, ._1215 + 140@ gAbsentBankFlags\n" - " strb r5, [r3]\n" - " sub r1, r1, #0x29\n" - " add r0, r4, r1\n" - " strb r5, [r0]\n" - " ldr r2, ._1215 + 144@ 0x16086\n" - " add r0, r4, r2\n" - " strb r5, [r0]\n" - " ldr r3, ._1215 + 148@ 0x16087\n" - " add r0, r4, r3\n" - " strb r5, [r0]\n" - " ldr r0, ._1215 + 152@ gEnemyParty\n" - " mov r1, #0xb\n" - " bl GetMonData\n" - " ldr r2, ._1215 + 156@ gBaseStats\n" - " lsl r1, r0, #0x3\n" - " sub r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r2\n" - " ldrb r1, [r1, #0x8]\n" - " mov r0, #0x64\n" - " mul r0, r0, r1\n" - " ldr r1, ._1215 + 160@ 0x4fb\n" - " bl __divsi3\n" - " ldr r2, ._1215 + 164@ 0x16089\n" - " add r1, r4, r2\n" - " strb r0, [r1]\n" - " ldr r3, ._1215 + 168@ 0x16088\n" - " add r1, r4, r3\n" - " mov r0, #0x3\n" - " strb r0, [r1]\n" - " ldr r1, ._1215 + 172@ 0x1601b\n" - " add r0, r4, r1\n" - " strb r5, [r0]\n" - " sub r2, r2, #0x33\n" - " add r1, r4, r2\n" - " mov r0, #0x1\n" - " strb r0, [r1]\n" - " mov r2, #0x0\n" - " mov r1, #0x0\n" - "._1212:\n" - " ldr r3, ._1215 + 176@ 0x160ac\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r3, r3, #0x20\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r3, r3, #0x1c\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r3, r3, #0x8\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r3, r3, #0x10\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r3, r3, #0x8\n" - " add r0, r2, r3\n" - " add r0, r0, r4\n" - " strb r1, [r0]\n" - " add r2, r2, #0x1\n" - " cmp r2, #0x7\n" - " ble ._1212 @cond_branch\n" - " ldr r4, ._1215 + 80 @ gSharedMem\n" - " ldr r1, ._1215 + 180@ 0x160c8\n" - " add r0, r4, r1\n" - " mov r2, #0x0\n" - " mov r1, #0x6\n" - " strb r1, [r0]\n" - " sub r3, r3, #0x3f\n" - " add r0, r4, r3\n" - " strb r1, [r0]\n" - " ldr r1, ._1215 + 184@ 0x16113\n" - " add r0, r4, r1\n" - " strb r2, [r0]\n" - " ldr r3, ._1215 + 188@ gBattleResults\n" - " mov r1, #0x0\n" - " mov r2, #0xa\n" - " add r0, r3, #0\n" - " add r0, r0, #0x40\n" - "._1213:\n" - " strb r1, [r0]\n" - " sub r0, r0, #0x1\n" - " sub r2, r2, #0x1\n" - " cmp r2, #0\n" - " bge ._1213 @cond_branch\n" - " mov r1, #0x0\n" - " strb r1, [r3, #0x13]\n" - " strb r1, [r3]\n" - " strb r1, [r3, #0x1]\n" - " strb r1, [r3, #0x2]\n" - " strb r1, [r3, #0x3]\n" - " strb r1, [r3, #0x4]\n" - " ldrb r2, [r3, #0x5]\n" - " mov r0, #0x2\n" - " neg r0, r0\n" - " and r0, r0, r2\n" - " mov r2, #0x3\n" - " neg r2, r2\n" - " and r0, r0, r2\n" - " strb r0, [r3, #0x5]\n" - " strh r1, [r3, #0x20]\n" - " strh r1, [r3, #0x22]\n" - " strh r1, [r3, #0x24]\n" - " strh r1, [r3, #0x6]\n" - " strh r1, [r3, #0x26]\n" - " strh r1, [r3, #0x28]\n" - " mov r2, #0x0\n" - " add r5, r3, #0\n" - " add r5, r5, #0x8\n" - " mov r4, #0x0\n" - " add r1, r3, #0\n" - " add r1, r1, #0x14\n" - "._1214:\n" - " add r0, r2, r5\n" - " strb r4, [r0]\n" - " strb r4, [r1]\n" - " strb r4, [r1, #0x16]\n" - " add r1, r1, #0x1\n" - " add r2, r2, #0x1\n" - " cmp r2, #0x9\n" - " ble ._1214 @cond_branch\n" - " ldr r2, ._1215 + 80 @ gSharedMem\n" - " ldr r3, ._1215 + 192@ 0x1609e\n" - " add r0, r2, r3\n" - " mov r1, #0x0\n" - " strb r1, [r0]\n" - " ldr r4, ._1215 + 196@ 0x1609f\n" - " add r0, r2, r4\n" - " strb r1, [r0]\n" - " pop {r3, r4, r5}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " mov sl, r5\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._1216:\n" - " .align 2, 0\n" - "._1215:\n" - " .word gUnknown_02024C4C\n" - " .word gLastHitByType\n" - " .word gLastLandedMoves\n" - " .word gLastUsedMove\n" - " .word gDisableStructs\n" - " .word gUnknown_02024C2C\n" - " .word gLockedMoves\n" - " .word gStatuses3\n" - " .word gUnknown_02024C70\n" - " .word gUnknown_02024C5C\n" - " .word gSharedMem+0x17100\n" - " .word gSideTimers\n" - " .word gSideAffecting\n" - " .word gBankAttacker\n" - " .word gBankTarget\n" - " .word gBattleWeather\n" - " .word gWishFutureKnock\n" - " .word gHitMarker\n" - " .word gBattleTypeFlags\n" - " .word gSaveBlock2\n" - " .word gSharedMem\n" - " .word 0x16084\n" - " .word gMultiHitCounter\n" - " .word gBattleOutcome\n" - " .word gBattleExecBuffer\n" - " .word gPaydayMoney\n" - " .word 0x17130\n" - " .word 0x17160\n" - " .word gBattleCommunication\n" - " .word gPauseCounterBattle\n" - " .word gBattleMoveDamage\n" - " .word gUnknown_02024DE8\n" - " .word 0x16002\n" - " .word 0x160a1\n" - " .word gLeveledUpInBattle\n" - " .word gAbsentBankFlags\n" - " .word 0x16086\n" - " .word 0x16087\n" - " .word gEnemyParty\n" - " .word gBaseStats\n" - " .word 0x4fb\n" - " .word 0x16089\n" - " .word 0x16088\n" - " .word 0x1601b\n" - " .word 0x160ac\n" - " .word 0x160c8\n" - " .word 0x16113\n" - " .word gBattleResults\n" - " .word 0x1609e\n" - " .word 0x1609f\n" - "\n" - ); } -#else -void sub_8010824(void) +void sub_8010800(void) { - gBattleMainFunc(); + sub_8010874(); + gBattleCommunication[1] = 0; + gBattleMainFunc = bc_8012FAC; +} - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) - gBattleBankFunc[gActiveBank](); +#if DEBUG +void debug_sub_80138CC(void) +{ + if (GetBankSide(gActiveBank) == 0) + { + switch (gSharedMem[0x160FD]) + { + case 0: + if (gBattleBankFunc[gActiveBank] == sub_802C098) + gSharedMem[0x160FD]++; + break; + case 1: + gMain.heldKeys = A_BUTTON; + gMain.newKeys = A_BUTTON; + gSharedMem[0x160FD]++; + gSharedMem[0x160FE] = 0x80; + break; + case 2: + gSharedMem[0x160FE]--; + if (gSharedMem[0x160FE] == 0) + { + gMain.heldKeys = A_BUTTON; + gMain.newKeys = A_BUTTON; + gSharedMem[0x160FD]++; + gSharedMem[0x160FE] = 0x80; + } + break; + case 3: + gSharedMem[0x160FE]--; + if (gSharedMem[0x160FE] == 0) + { + gMain.heldKeys = A_BUTTON; + gMain.newKeys = A_BUTTON; + gSharedMem[0x160FD]++; + } + break; + case 4: + gSharedMem[0x160FD] = 0; + break; + } + } +} +#endif + +void sub_8010824(void) +{ +#if DEBUG + if (gUnknown_02023A14_50 & 0x80) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + debug_sub_80138CC(); + gBattleMainFunc(); + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + gBattleBankFunc[gActiveBank](); + } + else +#endif + { + gBattleMainFunc(); + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + gBattleBankFunc[gActiveBank](); + } } void sub_8010874(void) @@ -7548,8 +6067,11 @@ void sub_8010874(void) gBattleResults.pokeString2[i] = 0; gBattleResults.caughtNick[i] = 0; } -} +#if DEBUG + gSharedMem[0x1609E] = 0; + gSharedMem[0x1609F] = 0; #endif +} void SwitchInClearSetData(void) { @@ -9936,6 +8458,351 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) return strikesFirst; } +// The debug version should be identical, but has a strange register swap, and +// seems to be affected by other functions, which is bizarre. +#if DEBUG +__attribute__((naked)) +void SetActionsAndBanksTurnOrder(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + mov r3, #0x0\n\ + ldr r0, ._L1550\n\ + ldrh r1, [r0]\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._L1499 @cond_branch\n\ + ldr r0, ._L1550+0x4\n\ + strb r3, [r0]\n\ + ldr r4, ._L1550+0x8\n\ + mov r8, r0\n\ + ldrb r0, [r4]\n\ + cmp r3, r0\n\ + bcc ._LCB12758\n\ + b ._L1505 @long jump\n\ +._LCB12758:\n\ + ldr r7, ._L1550+0xc\n\ + ldr r6, ._L1550+0x10\n\ + mov r2, r8\n\ + ldr r5, ._L1550+0x14\n\ +._L1503:\n\ + add r1, r3, r7\n\ + ldrb r0, [r2]\n\ + add r0, r0, r6\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + add r1, r3, r5\n\ + ldrb r0, [r2]\n\ + strb r0, [r1]\n\ + add r3, r3, #0x1\n\ + ldrb r0, [r2]\n\ + add r0, r0, #0x1\n\ + strb r0, [r2]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldrb r1, [r4]\n\ + cmp r0, r1\n\ + bcc ._L1503 @cond_branch\n\ + b ._L1505\n\ +._L1551:\n\ + .align 2, 0\n\ +._L1550:\n\ + .word gBattleTypeFlags\n\ + .word gActiveBank\n\ + .word gNoOfAllBanks\n\ + .word gActionsByTurnOrder\n\ + .word gActionForBanks\n\ + .word gBanksByTurnOrder\n\ +._L1499:\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._L1506 @cond_branch\n\ + ldr r0, ._L1552\n\ + strb r3, [r0]\n\ + ldr r1, ._L1552+0x4\n\ + mov r8, r0\n\ + add r2, r1, #0\n\ + ldrb r2, [r2]\n\ + cmp r3, r2\n\ + bcs ._L1513 @cond_branch\n\ + ldr r0, ._L1552+0x8\n\ + ldrb r1, [r0]\n\ + add r4, r0, #0\n\ + cmp r1, #0x3\n\ + beq ._L1548 @cond_branch\n\ +._L1509:\n\ + mov r7, r8\n\ + ldrb r0, [r7]\n\ + add r0, r0, #0x1\n\ + strb r0, [r7]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r1, ._L1552+0x4\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcs ._L1513 @cond_branch\n\ + ldrb r0, [r7]\n\ + add r0, r0, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x3\n\ + bne ._L1509 @cond_branch\n\ + b ._L1548\n\ +._L1553:\n\ + .align 2, 0\n\ +._L1552:\n\ + .word gActiveBank\n\ + .word gNoOfAllBanks\n\ + .word gActionForBanks\n\ +._L1506:\n\ + ldr r0, ._L1554\n\ + ldrb r0, [r0]\n\ + ldr r2, ._L1554+0x4\n\ + mov r8, r2\n\ + cmp r0, #0x3\n\ + bne ._L1513 @cond_branch\n\ + strb r3, [r2]\n\ +._L1548:\n\ + mov r3, #0x5\n\ +._L1513:\n\ + cmp r3, #0x5\n\ + bne ._L1515 @cond_branch\n\ + ldr r6, ._L1554+0x8\n\ + ldr r1, ._L1554\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r6]\n\ + ldr r2, ._L1554+0xc\n\ + ldrb r0, [r3]\n\ + strb r0, [r2]\n\ + mov r3, #0x1\n\ + mov r5, #0x0\n\ + add r4, r1, #0\n\ + ldr r7, ._L1554+0x10\n\ + mov r9, r7\n\ + ldr r0, ._L1554+0x14\n\ + mov ip, r0\n\ + ldr r1, ._L1554+0x18\n\ + mov sl, r1\n\ + ldr r7, ._L1554+0x1c\n\ + ldrb r7, [r7]\n\ + cmp r5, r7\n\ + bge ._L1517 @cond_branch\n\ + add r7, r6, #0\n\ + add r6, r4, #0\n\ + add r4, r2, #0\n\ + ldr r2, ._L1554+0x1c\n\ +._L1519:\n\ + mov r0, r8\n\ + ldrb r0, [r0]\n\ + cmp r5, r0\n\ + beq ._L1518 @cond_branch\n\ + add r1, r3, r7\n\ + add r0, r5, r6\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + add r0, r3, r4\n\ + strb r5, [r0]\n\ + add r3, r3, #0x1\n\ +._L1518:\n\ + add r5, r5, #0x1\n\ + ldrb r1, [r2]\n\ + cmp r5, r1\n\ + blt ._L1519 @cond_branch\n\ +._L1517:\n\ + mov r2, ip\n\ + mov r3, r9\n\ + str r2, [r3]\n\ + ldr r1, ._L1554+0x20\n\ + add r1, r1, sl\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + b ._L1498\n\ +._L1555:\n\ + .align 2, 0\n\ +._L1554:\n\ + .word gActionForBanks\n\ + .word gActiveBank\n\ + .word gActionsByTurnOrder\n\ + .word gBanksByTurnOrder\n\ + .word gBattleMainFunc\n\ + .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\ + .word gSharedMem\n\ + .word gNoOfAllBanks\n\ + .word 0x1601d\n\ +._L1515:\n\ + mov r0, #0x0\n\ + mov r7, r8\n\ + strb r0, [r7]\n\ + ldr r1, ._L1556\n\ + ldrb r0, [r1]\n\ + cmp r0, #0\n\ + beq ._L1524 @cond_branch\n\ + ldr r6, ._L1556+0x4\n\ + mov r2, r8\n\ + ldr r5, ._L1556+0x8\n\ + ldr r4, ._L1556+0xc\n\ +._L1526:\n\ + ldrb r0, [r2]\n\ + add r0, r0, r6\n\ + ldrb r1, [r0]\n\ + sub r0, r1, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bhi ._L1525 @cond_branch\n\ + add r0, r3, r5\n\ + strb r1, [r0]\n\ + add r1, r3, r4\n\ + mov r7, r8\n\ + ldrb r0, [r7]\n\ + strb r0, [r1]\n\ + add r3, r3, #0x1\n\ +._L1525:\n\ + ldrb r0, [r2]\n\ + add r0, r0, #0x1\n\ + strb r0, [r2]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r1, ._L1556\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._L1526 @cond_branch\n\ +._L1524:\n\ + mov r0, #0x0\n\ + mov r2, r8\n\ + strb r0, [r2]\n\ + ldr r7, ._L1556\n\ + ldrb r0, [r7]\n\ + cmp r0, #0\n\ + beq ._L1530 @cond_branch\n\ + ldr r6, ._L1556+0x4\n\ + ldr r5, ._L1556+0x8\n\ + ldr r4, ._L1556+0xc\n\ +._L1532:\n\ + ldrb r0, [r2]\n\ + add r0, r0, r6\n\ + ldrb r1, [r0]\n\ + sub r0, r1, #0x1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bls ._L1531 @cond_branch\n\ + add r0, r3, r5\n\ + strb r1, [r0]\n\ + add r1, r3, r4\n\ + mov r7, r8\n\ + ldrb r0, [r7]\n\ + strb r0, [r1]\n\ + add r3, r3, #0x1\n\ +._L1531:\n\ + ldrb r0, [r2]\n\ + add r0, r0, #0x1\n\ + strb r0, [r2]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r1, ._L1556\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc ._L1532 @cond_branch\n\ +._L1530:\n\ + mov r5, #0x0\n\ + b ._L1549\n\ +._L1557:\n\ + .align 2, 0\n\ +._L1556:\n\ + .word gNoOfAllBanks\n\ + .word gActionForBanks\n\ + .word gActionsByTurnOrder\n\ + .word gBanksByTurnOrder\n\ +._L1538:\n\ + add r4, r5, #0x1\n\ + add r7, r4, #0\n\ + ldrb r1, [r1]\n\ + cmp r7, r1\n\ + bge ._L1537 @cond_branch\n\ + ldr r6, ._L1558\n\ + lsl r2, r5, #0x18\n\ + mov r8, r2\n\ +._L1542:\n\ + ldr r0, ._L1558+0x4\n\ + add r1, r5, r0\n\ + ldrb r3, [r1]\n\ + add r0, r4, r0\n\ + ldrb r1, [r0]\n\ + add r0, r5, r6\n\ + ldrb r2, [r0]\n\ + cmp r2, #0x1\n\ + beq ._L1541 @cond_branch\n\ + add r0, r4, r6\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + beq ._L1541 @cond_branch\n\ + cmp r2, #0x2\n\ + beq ._L1541 @cond_branch\n\ + cmp r0, #0x2\n\ + beq ._L1541 @cond_branch\n\ + add r0, r3, #0\n\ + mov r2, #0x0\n\ + bl GetWhoStrikesFirst\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._L1541 @cond_branch\n\ + lsl r1, r4, #0x18\n\ + lsr r1, r1, #0x18\n\ + mov r3, r8\n\ + lsr r0, r3, #0x18\n\ + bl SwapTurnOrder\n\ +._L1541:\n\ + add r4, r4, #0x1\n\ + ldr r0, ._L1558+0x8\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt ._L1542 @cond_branch\n\ +._L1537:\n\ + add r5, r7, #0\n\ +._L1549:\n\ + ldr r1, ._L1558+0x8\n\ + ldrb r0, [r1]\n\ + sub r0, r0, #0x1\n\ + cmp r5, r0\n\ + blt ._L1538 @cond_branch\n\ +._L1505:\n\ + ldr r1, ._L1558+0xc\n\ + ldr r0, ._L1558+0x10\n\ + str r0, [r1]\n\ + ldr r0, ._L1558+0x14\n\ + ldr r7, ._L1558+0x18\n\ + add r0, r0, r7\n\ + mov r1, #0x0\n\ + strb r1, [r0]\n\ +._L1498:\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._L1559:\n\ + .align 2, 0\n\ +._L1558:\n\ + .word gActionsByTurnOrder\n\ + .word gBanksByTurnOrder\n\ + .word gNoOfAllBanks\n\ + .word gBattleMainFunc\n\ + .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\ + .word gSharedMem\n\ + .word 0x1601d"); +} +#else void SetActionsAndBanksTurnOrder(void) { s32 var = 0; @@ -10028,15 +8895,11 @@ void SetActionsAndBanksTurnOrder(void) } } } - // Debug ROM has a register swap from the retail ROM. - // And doing this seems to fix it. -#if DEBUG - asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm("");asm(""); - asm("");asm("");asm("");asm("");asm("");asm("");asm(""); -#endif + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; eFocusPunchBank = 0; } +#endif static void TurnValuesCleanUp(bool8 var0) { -- cgit v1.2.3 From cb674ce14dc43f99dd76f456e69ab8a90cc3d506 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 31 Jan 2018 15:45:28 -0600 Subject: fix and decompile more battle_2.c debug code --- src/battle/battle_2.c | 511 ++++++++++---------------------------------------- 1 file changed, 101 insertions(+), 410 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index a400257dd..b8ad21869 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1376,30 +1376,9 @@ void debug_sub_80125A0(void); u32 debug_sub_8013294(u8, void *, u32); void debug_sub_80132C8(u8, void *, u32); -struct UnknownStruct2023A76 -{ - u16 unk0; - u16 unk2[(0x44-2)/2]; - s16 unk44; - u16 unk46; - u16 unk48[1]; -}; - -struct UnknownStruct2023B02 -{ - u16 unk0[4][4]; - u8 filler20[0x10]; - u16 unk30[4][4]; -}; - -struct UnknownStruct821F424 -{ - u8 filler0[0x12]; - u16 unk12[1][5]; // unknown length -}; - -extern struct UnknownStruct2023A76 gUnknown_Debug_2023A76; -extern struct UnknownStruct2023B02 gUnknown_Debug_2023B02; +extern s16 gUnknown_Debug_2023A76[][0x23]; +extern s16 gUnknown_Debug_2023A76_[][7][5]; +extern s16 gUnknown_Debug_2023B02[][6][4]; extern u8 gUnknown_Debug_03004360; extern struct Window gUnknown_Debug_03004370; extern u8 gUnknown_Debug_030043A0; @@ -1407,7 +1386,7 @@ extern u8 gUnknown_Debug_030043A4; extern u8 gUnknown_Debug_030043A8; extern u8 gBattleBuffersTransferData[]; -extern const struct UnknownStruct821F424 gUnknown_Debug_821F424; +extern const s16 gUnknown_Debug_821F424[][5]; extern const u16 gUnknown_Debug_821F56C[][5]; extern const u8 gUnusedOldCharmap_Gfx_lz[]; @@ -1421,25 +1400,24 @@ void debug_sub_8010800(void) *(u32 *)(gBattleBuffersTransferData + 0x100) = 0; } - void debug_sub_8010818(void) { s32 i; - gUnknown_Debug_2023A76.unk0 = 0x115; - gUnknown_Debug_2023A76.unk46 = 0x115; - for (i = 0; i < 30; i++) + gUnknown_Debug_2023A76[0][0] = 0x115; + gUnknown_Debug_2023A76[1][0] = 0x115; + for (i = 1; i < 31; i++) { - gUnknown_Debug_2023A76.unk2[i] = gUnknown_Debug_821F424.unk12[i][0]; - gUnknown_Debug_2023A76.unk48[i] = gUnknown_Debug_821F424.unk12[i][0]; + gUnknown_Debug_2023A76[0][i] = gUnknown_Debug_821F424[i][4]; + gUnknown_Debug_2023A76[1][i] = gUnknown_Debug_821F424[i][4]; } for (i = 0; i < 6; i++) { for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++) { - gUnknown_Debug_2023B02.unk0[i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; - gUnknown_Debug_2023B02.unk30[i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; + gUnknown_Debug_2023B02[0][i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; + gUnknown_Debug_2023B02[1][i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0]; } } } @@ -1490,7 +1468,7 @@ void debug_sub_80108B8(void) debug_nullsub_3(); gUnknown_Debug_030043A8 = 0; debug_sub_80125A0(); - if (gUnknown_Debug_2023A76.unk44 == 8) + if (gUnknown_Debug_2023A76[0][0x22] == 8) { debug_sub_801174C(); } @@ -1510,289 +1488,91 @@ void debug_sub_8010A7C(u8 a, u8 b) gBattleTextBuff1[i] = EOS; } -__attribute__((naked)) -void debug_sub_8010AAC() +// gUnknown_Debug_2023A76_ seems like a 3D array, but this function refuses to match when I do that. +#ifdef NONMATCHING +void debug_sub_8010AAC(u8 a) { - asm( - " push {r4, r5, r6, r7, lr}\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " mov ip, r0\n" - " ldr r6, ._520 @ gBaseStats\n" - " ldr r4, ._520 + 4 @ gUnknown_Debug_2023A76\n" - " ldr r5, ._520 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x2\n" - " add r7, r0, r1\n" - " lsl r1, r7, #0x1\n" - " ldr r3, ._520 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r2, [r3]\n" - " mov r0, #0x46\n" - " mul r2, r2, r0\n" - " add r1, r1, r2\n" - " add r1, r1, r4\n" - " mov r0, #0x0\n" - " ldsh r1, [r1, r0]\n" - " lsl r0, r1, #0x3\n" - " sub r0, r0, r1\n" - " lsl r0, r0, #0x2\n" - " add r0, r0, r6\n" - " ldrb r0, [r0, #0x10]\n" - " add r6, r3, #0\n" - " cmp r0, #0xfe\n" - " beq ._516 @cond_branch\n" - " cmp r0, #0xfe\n" - " bgt ._517 @cond_branch\n" - " cmp r0, #0\n" - " beq ._518 @cond_branch\n" - " b ._523\n" - "._521:\n" - " .align 2, 0\n" - "._520:\n" - " .word gBaseStats\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_03004360\n" - "._517:\n" - " cmp r0, #0xff\n" - " beq ._522 @cond_branch\n" - " b ._523\n" - "._518:\n" - " add r0, r7, #4\n" - " lsl r0, r0, #0x1\n" - " add r0, r0, r2\n" - " add r0, r0, r4\n" - " mov r1, #0x2\n" - " b ._528\n" - "._516:\n" - " add r0, r7, #4\n" - " lsl r0, r0, #0x1\n" - " add r0, r0, r2\n" - " add r0, r0, r4\n" - " mov r1, #0x3\n" - " b ._528\n" - "._522:\n" - " add r0, r7, #4\n" - " lsl r0, r0, #0x1\n" - " add r0, r0, r2\n" - " add r0, r0, r4\n" - " mov r1, #0x4\n" - " b ._528\n" - "._523:\n" - " ldrb r0, [r5]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " add r1, r1, #0x4\n" - " lsl r1, r1, #0x1\n" - " ldrb r0, [r6]\n" - " mov r3, #0x46\n" - " mul r0, r0, r3\n" - " add r1, r1, r0\n" - " add r1, r1, r4\n" - " ldrh r2, [r1]\n" - " mov r0, #0x1\n" - " and r0, r0, r2\n" - " strh r0, [r1]\n" - " mov r1, ip\n" - " cmp r1, #0\n" - " beq ._527 @cond_branch\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x1\n" - " ldrb r1, [r6]\n" - " mul r1, r1, r3\n" - " add r0, r0, r1\n" - " add r0, r0, r4\n" - " ldrh r1, [r0]\n" - " mov r2, #0x1\n" - " eor r1, r1, r2\n" - " b ._528\n" - "._527:\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x1\n" - " ldrb r1, [r6]\n" - " mul r1, r1, r3\n" - " add r0, r0, r1\n" - " add r0, r0, r4\n" - " mov r1, ip\n" - "._528:\n" - " strh r1, [r0]\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "\n" - ); + switch (gBaseStats[gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][0]].genderRatio) + { + case 0: + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 2; + break; + case 0xFE: + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 3; + break; + case 0xFF: + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 4; + break; + default: + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] &= 1; + if (a != 0) + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] ^= 1; + else + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 0; + break; + } } +#else +void debug_sub_8010AAC(u8 a) +{ + switch (gBaseStats[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5]].genderRatio) + { + case 0: + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 2; + break; + case 0xFE: + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 3; + break; + case 0xFF: + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 4; + break; + default: + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] &= 1; + if (a != 0) + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] ^= 1; + else + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 0; + break; + } +} +#endif -__attribute__((naked)) -void debug_sub_8010B80() +void debug_sub_8010B80(u8 a) { - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r9\n" - " mov r6, r8\n" - " push {r6, r7}\n" - " lsl r0, r0, #0x18\n" - " lsr r6, r0, #0x18\n" - " mov r0, #0x0\n" - " mov ip, r0\n" - " ldr r4, ._534 @ gUnknown_Debug_2023A76\n" - " ldr r1, ._534 + 4 @ gUnknown_Debug_030043A0\n" - " mov r8, r1\n" - " ldr r5, ._534 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r5]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " mov r2, r8\n" - " ldrb r2, [r2]\n" - " add r0, r0, r2\n" - " lsl r0, r0, #0x1\n" - " ldr r3, ._534 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r2, [r3]\n" - " mov r1, #0x46\n" - " mul r1, r1, r2\n" - " add r0, r0, r1\n" - " add r0, r0, r4\n" - " ldrb r7, [r0]\n" - " lsl r1, r7, #0x18\n" - " asr r0, r1, #0x18\n" - " mov r9, r4\n" - " add r2, r5, #0\n" - " add r4, r3, #0\n" - " cmp r0, #0x9\n" - " ble ._529 @cond_branch\n" - "._530:\n" - " mov r3, #0xf6\n" - " lsl r3, r3, #0x18\n" - " add r0, r1, r3\n" - " lsr r7, r0, #0x18\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x11\n" - " add r0, r0, r3\n" - " lsr r0, r0, #0x18\n" - " mov ip, r0\n" - " lsl r1, r7, #0x18\n" - " asr r0, r1, #0x18\n" - " cmp r0, #0x9\n" - " bgt ._530 @cond_branch\n" - "._529:\n" - " mov r0, #0x2\n" - " and r0, r0, r6\n" - " cmp r0, #0\n" - " beq ._531 @cond_branch\n" - " mov r0, #0x1\n" - " and r0, r0, r6\n" - " cmp r0, #0\n" - " beq ._532 @cond_branch\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x11\n" - " b ._533\n" - "._535:\n" - " .align 2, 0\n" - "._534:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_03004360\n" - "._532:\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " mov r3, #0xff\n" - " lsl r3, r3, #0x18\n" - "._533:\n" - " add r0, r0, r3\n" - " lsr r0, r0, #0x18\n" - " mov ip, r0\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " cmp r0, #0\n" - " bge ._536 @cond_branch\n" - " mov r3, #0x9\n" - " mov ip, r3\n" - "._536:\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " asr r0, r0, #0x18\n" - " cmp r0, #0x9\n" - " ble ._542 @cond_branch\n" - " mov r3, #0x0\n" - " mov ip, r3\n" - " b ._542\n" - "._531:\n" - " mov r0, #0x1\n" - " and r0, r0, r6\n" - " cmp r0, #0\n" - " beq ._539 @cond_branch\n" - " lsl r0, r7, #0x18\n" - " mov r1, #0x80\n" - " lsl r1, r1, #0x11\n" - " add r0, r0, r1\n" - " b ._540\n" - "._539:\n" - " lsl r0, r7, #0x18\n" - " mov r3, #0xff\n" - " lsl r3, r3, #0x18\n" - " add r0, r0, r3\n" - "._540:\n" - " lsr r7, r0, #0x18\n" - " lsl r0, r7, #0x18\n" - " cmp r0, #0\n" - " bgt ._541 @cond_branch\n" - " mov r7, #0x9\n" - "._541:\n" - " lsl r0, r7, #0x18\n" - " asr r0, r0, #0x18\n" - " cmp r0, #0x9\n" - " ble ._542 @cond_branch\n" - " mov r7, #0x1\n" - "._542:\n" - " ldrb r0, [r2]\n" - " lsl r2, r0, #0x2\n" - " add r2, r2, r0\n" - " mov r0, r8\n" - " ldrb r0, [r0]\n" - " add r2, r2, r0\n" - " lsl r2, r2, #0x1\n" - " ldrb r1, [r4]\n" - " mov r0, #0x1\n" - " eor r0, r0, r1\n" - " mov r1, #0x46\n" - " add r3, r0, #0\n" - " mul r3, r3, r1\n" - " add r3, r2, r3\n" - " add r3, r3, r9\n" - " ldrb r0, [r4]\n" - " mul r0, r0, r1\n" - " add r2, r2, r0\n" - " add r2, r2, r9\n" - " mov r1, ip\n" - " lsl r0, r1, #0x18\n" - " asr r0, r0, #0x18\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x1\n" - " lsl r0, r7, #0x18\n" - " asr r0, r0, #0x18\n" - " add r0, r0, r1\n" - " strh r0, [r2]\n" - " strh r0, [r3]\n" - " pop {r3, r4}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "\n" - ); + s8 r12 = 0; + s8 r7 = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0]; + + while (r7 >= 10) + { + r7 -= 10; + r12++; + } + + if (a & 2) + { + if (a & 1) + r12++; + else + r12--; + if (r12 < 0) + r12 = 9; + if (r12 > 9) + r12 = 0; + } + else + { + if (a & 1) + r7++; + else + r7--; + if (r7 < 1) + r7 = 9; + if (r7 > 9) + r7 = 1; + } + gUnknown_Debug_2023A76_[gUnknown_Debug_03004360 ^ 1][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0] + = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0] + = r12 * 10 + r7; } __attribute__((naked)) @@ -5119,39 +4899,17 @@ void debug_sub_8012688() ); } -__attribute__((naked)) -void debug_sub_8012878() +void debug_sub_8012878(void) { - asm( - " push {lr}\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " ldr r0, ._876 @ gUnknown_03004210\n" - " bl Text_UpdateWindowInBattle\n" - " bl UpdatePaletteFade\n" - " bl RunTasks\n" - " ldr r0, ._876 + 4 @ gMain\n" - " ldrh r1, [r0, #0x2c]\n" - " mov r0, #0x82\n" - " lsl r0, r0, #0x1\n" - " cmp r1, r0\n" - " bne ._875 @cond_branch\n" - " ldr r0, ._876 + 8 @ debug_sub_80108B8\n" - " bl SetMainCallback2\n" - "._875:\n" - " pop {r0}\n" - " bx r0\n" - "._877:\n" - " .align 2, 0\n" - "._876:\n" - " .word gUnknown_03004210\n" - " .word gMain\n" - " .word debug_sub_80108B8+1\n" - "\n" - ); + AnimateSprites(); + BuildOamBuffer(); + Text_UpdateWindowInBattle(&gUnknown_03004210); + UpdatePaletteFade(); + RunTasks(); + if (gMain.heldKeys == (SELECT_BUTTON | R_BUTTON)) + SetMainCallback2(debug_sub_80108B8); } -/* void debug_sub_80128B4(void) { debug_sub_8010A7C(0, 9); @@ -5164,73 +4922,6 @@ void debug_sub_80128B4(void) Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); Text_PrintWindow8002F44(&gUnknown_03004210); } -*/ - -__attribute__((naked)) -void debug_sub_80128B4() -{ - asm( - " push {r4, r5, r6, lr}\n" - " mov r6, r8\n" - " push {r6}\n" - " add sp, sp, #0xfffffffc\n" - " mov r0, #0x0\n" - " mov r1, #0x9\n" - " bl debug_sub_8010A7C\n" - " ldr r5, ._878 @ gUnknown_03004210\n" - " ldr r4, ._878 + 4 @ gBattleTextBuff1\n" - " mov r0, #0x23\n" - " mov r8, r0\n" - " str r0, [sp]\n" - " add r0, r5, #0\n" - " add r1, r4, #0\n" - " mov r2, #0x90\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r5, #0\n" - " bl Text_PrintWindow8002F44\n" - " ldr r6, ._878 + 8 @ gCurrentMove\n" - " ldrh r1, [r6]\n" - " add r0, r4, #0\n" - " mov r2, #0x2\n" - " mov r3, #0x3\n" - " bl ConvertIntToDecimalStringN\n" - " mov r0, #0x0\n" - " strb r0, [r4, #0x3]\n" - " mov r0, #0xff\n" - " strb r0, [r4, #0x4]\n" - " ldrh r1, [r6]\n" - " mov r0, #0xb\n" - " mul r1, r1, r0\n" - " ldr r0, ._878 + 12 @ gSpeciesNames\n" - " add r1, r1, r0\n" - " add r0, r4, #0\n" - " bl StringAppend\n" - " mov r0, r8\n" - " str r0, [sp]\n" - " add r0, r5, #0\n" - " add r1, r4, #0\n" - " mov r2, #0x90\n" - " mov r3, #0x2\n" - " bl Text_InitWindow\n" - " add r0, r5, #0\n" - " bl Text_PrintWindow8002F44\n" - " add sp, sp, #0x4\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._879:\n" - " .align 2, 0\n" - "._878:\n" - " .word gUnknown_03004210\n" - " .word gBattleTextBuff1\n" - " .word gCurrentMove\n" - " .word gSpeciesNames\n" - "\n" - ); -} void debug_sub_8012938(u8 taskId) { -- cgit v1.2.3 From 449d5cd95bbd1a3ad291e6ebe0654f47f2f3b6e4 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 31 Jan 2018 18:19:25 -0600 Subject: decompile more battle_2.c debug functions --- src/battle/battle_2.c | 326 ++++++++++---------------------------------------- 1 file changed, 64 insertions(+), 262 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index b8ad21869..d3ddc5960 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -69,6 +69,7 @@ struct UnknownStruct12 extern void sub_802BBD4(); +extern struct SpriteTemplate gUnknown_02024E8C; extern const u8 Str_821F7B8[]; extern u8 gUnknown_02023A14_50; extern const u16 gUnknown_08D004E0[]; @@ -1362,6 +1363,8 @@ extern u8 gUnknown_Debug_2023B62[]; extern const u8 Str_821F7BD[]; extern const u8 Str_821F7DA[]; +void debug_sub_8012878(void); +void debug_sub_8012D10(u8); void debug_sub_8010818(void); void debug_sub_80108B8(void); void debug_sub_8010CAC(void); @@ -1388,6 +1391,7 @@ extern u8 gBattleBuffersTransferData[]; extern const s16 gUnknown_Debug_821F424[][5]; extern const u16 gUnknown_Debug_821F56C[][5]; +extern const u32 gUnknown_Debug_821F798[][4]; extern const u8 gUnusedOldCharmap_Gfx_lz[]; extern const u8 gUnusedOldCharmap_Tilemap_lz[]; @@ -4628,275 +4632,73 @@ void debug_sub_80125E4() ); } -__attribute__((naked)) -void debug_sub_8012628() +void debug_sub_8012628(void) { - asm( - " ldr r3, ._868 @ gSharedMem\n" - " ldr r2, ._868 + 4 @ gUnknown_Debug_821F798\n" - " ldr r0, ._868 + 8 @ gUnknown_Debug_030043A8\n" - " ldrb r1, [r0]\n" - " lsl r1, r1, #0x2\n" - " ldr r0, ._868 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r0, [r0]\n" - " lsl r0, r0, #0x4\n" - " add r1, r1, r0\n" - " add r1, r1, r2\n" - " ldr r0, [r1]\n" - " add r0, r0, r3\n" - " mov r1, #0x6d\n" - " strb r1, [r0]\n" - " bx lr\n" - "._869:\n" - " .align 2, 0\n" - "._868:\n" - " .word gSharedMem\n" - " .word gUnknown_Debug_821F798\n" - " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_Debug_03004360\n" - "\n" - ); + gSharedMem[gUnknown_Debug_821F798[gUnknown_Debug_03004360][gUnknown_Debug_030043A8]] = 0x6D; } -__attribute__((naked)) -void debug_sub_8012658() +void debug_sub_8012658(void) { - asm( - " ldr r3, ._870 @ gSharedMem\n" - " ldr r2, ._870 + 4 @ gUnknown_Debug_821F798\n" - " ldr r0, ._870 + 8 @ gUnknown_Debug_030043A8\n" - " ldrb r1, [r0]\n" - " lsl r1, r1, #0x2\n" - " ldr r0, ._870 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r0, [r0]\n" - " lsl r0, r0, #0x4\n" - " add r1, r1, r0\n" - " add r1, r1, r2\n" - " ldr r0, [r1]\n" - " add r0, r0, r3\n" - " mov r1, #0x81\n" - " strb r1, [r0]\n" - " bx lr\n" - "._871:\n" - " .align 2, 0\n" - "._870:\n" - " .word gSharedMem\n" - " .word gUnknown_Debug_821F798\n" - " .word gUnknown_Debug_030043A8\n" - " .word gUnknown_Debug_03004360\n" - "\n" - ); + gSharedMem[gUnknown_Debug_821F798[gUnknown_Debug_03004360][gUnknown_Debug_030043A8]] = 0x81; } -__attribute__((naked)) -void debug_sub_8012688() +void debug_sub_8012688(void) { - asm( - " push {r4, r5, r6, lr}\n" - " mov r6, r8\n" - " push {r6}\n" - " add sp, sp, #0xfffffff4\n" - " mov r1, #0x0\n" - " mov r4, #0xcd\n" - " lsl r4, r4, #0x1\n" - " ldr r3, ._873 @ gUnknown_Debug_2023B62\n" - " mov r2, #0x0\n" - "._872:\n" - " add r0, r1, r3\n" - " strb r2, [r0]\n" - " add r1, r1, #0x1\n" - " cmp r1, r4\n" - " ble ._872 @cond_branch\n" - " mov r0, #0x0\n" - " bl SetHBlankCallback\n" - " mov r0, #0x0\n" - " bl SetVBlankCallback\n" - " mov r5, #0x0\n" - " str r5, [sp, #0x8]\n" - " ldr r1, ._873 + 4 @ 0x40000d4\n" - " add r0, sp, #0x8\n" - " str r0, [r1]\n" - " mov r0, #0xc0\n" - " lsl r0, r0, #0x13\n" - " str r0, [r1, #0x4]\n" - " ldr r0, ._873 + 8 @ 0x85006000\n" - " str r0, [r1, #0x8]\n" - " ldr r0, [r1, #0x8]\n" - " ldr r0, ._873 + 12 @ 0x400004c\n" - " strh r5, [r0]\n" - " sub r0, r0, #0xc\n" - " strh r5, [r0]\n" - " add r0, r0, #0x4\n" - " strh r5, [r0]\n" - " sub r0, r0, #0x2\n" - " strh r5, [r0]\n" - " add r0, r0, #0x4\n" - " strh r5, [r0]\n" - " add r0, r0, #0x2\n" - " strh r5, [r0]\n" - " add r0, r0, #0x2\n" - " strh r5, [r0]\n" - " ldr r4, ._873 + 16 @ gWindowTemplate_81E6C58\n" - " add r0, r4, #0\n" - " bl Text_LoadWindowTemplate\n" - " bl ResetPaletteFade\n" - " ldr r0, ._873 + 20 @ gBattle_BG0_X\n" - " strh r5, [r0]\n" - " ldr r1, ._873 + 24 @ gBattle_BG0_Y\n" - " mov r0, #0xa0\n" - " strh r0, [r1]\n" - " ldr r0, ._873 + 28 @ gBattle_BG1_X\n" - " strh r5, [r0]\n" - " ldr r0, ._873 + 32 @ gBattle_BG1_Y\n" - " strh r5, [r0]\n" - " ldr r0, ._873 + 36 @ gBattle_BG2_X\n" - " strh r5, [r0]\n" - " ldr r0, ._873 + 40 @ gBattle_BG2_Y\n" - " strh r5, [r0]\n" - " ldr r0, ._873 + 44 @ gBattle_BG3_X\n" - " strh r5, [r0]\n" - " ldr r0, ._873 + 48 @ gBattle_BG3_Y\n" - " strh r5, [r0]\n" - " ldr r1, ._873 + 52 @ gBattleTerrain\n" - " mov r0, #0x9\n" - " strb r0, [r1]\n" - " bl sub_800D6D4\n" - " bl sub_800DAB8\n" - " bl ResetSpriteData\n" - " bl ResetTasks\n" - " bl FreeAllSpritePalettes\n" - " ldr r1, ._873 + 56 @ gReservedSpritePaletteCount\n" - " mov r0, #0x4\n" - " strb r0, [r1]\n" - " ldr r6, ._873 + 60 @ gCurrentMove\n" - " mov r0, #0x1\n" - " strh r0, [r6]\n" - " ldr r0, ._873 + 64 @ gUnknown_03004210\n" - " add r1, r4, #0\n" - " bl Text_InitWindowWithTemplate\n" - " ldrh r2, [r6]\n" - " lsl r0, r2, #0x3\n" - " ldr r1, ._873 + 68 @ gMonFrontPicTable\n" - " add r0, r0, r1\n" - " ldr r1, ._873 + 72 @ gMonFrontPicCoords\n" - " mov r8, r1\n" - " lsl r2, r2, #0x2\n" - " add r2, r2, r8\n" - " ldrb r1, [r2]\n" - " ldrb r2, [r2, #0x1]\n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x12\n" - " ldr r4, ._873 + 76 @ gUnknown_081FAF4C\n" - " ldr r4, [r4, #0x4]\n" - " str r4, [sp]\n" - " ldrh r4, [r6]\n" - " str r4, [sp, #0x4]\n" - " bl DecompressPicFromTable_2\n" - " ldr r1, ._873 + 80 @ gMonPaletteTable\n" - " ldrh r0, [r6]\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov r1, #0x88\n" - " lsl r1, r1, #0x1\n" - " mov r2, #0x20\n" - " bl LoadCompressedPalette\n" - " ldrh r0, [r6]\n" - " mov r1, #0x1\n" - " bl GetMonSpriteTemplate_803C56C\n" - " ldr r0, ._873 + 84 @ gUnknown_02024E8C\n" - " ldrh r1, [r6]\n" - " lsl r1, r1, #0x2\n" - " add r1, r1, r8\n" - " ldrb r2, [r1, #0x1]\n" - " add r2, r2, #0x28\n" - " mov r1, #0xb0\n" - " mov r3, #0x28\n" - " bl CreateSprite\n" - " add r4, r0, #0\n" - " lsl r4, r4, #0x18\n" - " lsr r4, r4, #0x18\n" - " ldr r3, ._873 + 88 @ gSprites\n" - " lsl r1, r4, #0x4\n" - " add r1, r1, r4\n" - " lsl r1, r1, #0x2\n" - " add r0, r3, #0\n" - " add r0, r0, #0x1c\n" - " add r0, r1, r0\n" - " ldr r2, ._873 + 92 @ nullsub_37\n" - " str r2, [r0]\n" - " add r1, r1, r3\n" - " ldrb r2, [r1, #0x5]\n" - " mov r0, #0xf\n" - " and r0, r0, r2\n" - " mov r2, #0x10\n" - " orr r0, r0, r2\n" - " strb r0, [r1, #0x5]\n" - " mov r1, #0x80\n" - " lsl r1, r1, #0x13\n" - " mov r2, #0xfa\n" - " lsl r2, r2, #0x5\n" - " add r0, r2, #0\n" - " strh r0, [r1]\n" - " ldr r0, ._873 + 96 @ debug_nullsub_45\n" - " bl SetHBlankCallback\n" - " ldr r0, ._873 + 100 @ debug_sub_8011DD4\n" - " bl SetVBlankCallback\n" - " bl m4aMPlayAllStop\n" - " ldr r0, ._873 + 104 @ debug_sub_8012D10\n" - " mov r1, #0x0\n" - " bl CreateTask\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " ldr r2, ._873 + 108 @ gTasks\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r2\n" - " strh r5, [r1, #0x8]\n" - " strh r4, [r1, #0xa]\n" - " ldr r0, ._873 + 112 @ debug_sub_8012878\n" - " bl SetMainCallback2\n" - " add sp, sp, #0xc\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._874:\n" - " .align 2, 0\n" - "._873:\n" - " .word gUnknown_Debug_2023B62\n" - " .word 0x40000d4\n" - " .word 0x85006000\n" - " .word 0x400004c\n" - " .word gWindowTemplate_81E6C58\n" - " .word gBattle_BG0_X\n" - " .word gBattle_BG0_Y\n" - " .word gBattle_BG1_X\n" - " .word gBattle_BG1_Y\n" - " .word gBattle_BG2_X\n" - " .word gBattle_BG2_Y\n" - " .word gBattle_BG3_X\n" - " .word gBattle_BG3_Y\n" - " .word gBattleTerrain\n" - " .word gReservedSpritePaletteCount\n" - " .word gCurrentMove\n" - " .word gUnknown_03004210\n" - " .word gMonFrontPicTable\n" - " .word gMonFrontPicCoords\n" - " .word gUnknown_081FAF4C\n" - " .word gMonPaletteTable\n" - " .word gUnknown_02024E8C\n" - " .word gSprites\n" - " .word nullsub_37+1\n" - " .word debug_nullsub_45+1\n" - " .word debug_sub_8011DD4+1\n" - " .word debug_sub_8012D10+1\n" - " .word gTasks\n" - " .word debug_sub_8012878+1\n" - "\n" - ); + s32 i; + u8 spriteId; + u8 taskId; + + for (i = 0; i < 411; i++) + gUnknown_Debug_2023B62[i] = 0; + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + DmaFill32(3, 0, (void *)VRAM, VRAM_SIZE); + REG_MOSAIC = 0; + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_WININ = 0; + REG_WINOUT = 0; + Text_LoadWindowTemplate(&gWindowTemplate_81E6C58); + ResetPaletteFade(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = DISPLAY_HEIGHT; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + gBattleTerrain = 9; + sub_800D6D4(); + sub_800DAB8(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + gCurrentMove = 1; + Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58); + DecompressPicFromTable_2( + &gMonFrontPicTable[gCurrentMove], + gMonFrontPicCoords[gCurrentMove].coords, + gMonFrontPicCoords[gCurrentMove].y_offset, + (void *)0x02000000, + gUnknown_081FAF4C[1], + gCurrentMove); + LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); + GetMonSpriteTemplate_803C56C(gCurrentMove, 1); + spriteId = CreateSprite(&gUnknown_02024E8C, 176, 40 + gMonFrontPicCoords[gCurrentMove].y_offset, 40); + gSprites[spriteId].callback = nullsub_37; + gSprites[spriteId].oam.paletteNum = 1; + REG_DISPCNT = 0x1F40; + SetHBlankCallback(debug_nullsub_45); + SetVBlankCallback(debug_sub_8011DD4); + m4aMPlayAllStop(); + taskId = CreateTask(debug_sub_8012D10, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = spriteId; + SetMainCallback2(debug_sub_8012878); } void debug_sub_8012878(void) -- cgit v1.2.3 From 07a44e30ff530d5018f870aba4c5710d1e83059b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 3 Feb 2018 11:58:21 -0800 Subject: Decompile more of dark.s --- src/battle/anim/dark.c | 440 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 429 insertions(+), 11 deletions(-) (limited to 'src/battle') diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 8ceb00298..14988ac71 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -1,22 +1,36 @@ #include "global.h" -#include "rom_8077ABC.h" -#include "trig.h" #include "battle_anim.h" -#include "sound.h" +#include "palette.h" +#include "rom_8077ABC.h" #include "scanline_effect.h" - -void sub_80DFE90(struct Sprite *sprite); - -void sub_80DFC9C(u8 taskId); -void sub_80DFD58(u8 taskId); +#include "sound.h" +#include "trig.h" +#include "constants/battle_constants.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u8 gObjectBankIDs[]; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_WIN0H; +extern u16 gBattle_WIN0V; + +static void sub_80DFE90(struct Sprite *sprite); +static void sub_80DFC9C(u8 taskId); +static void sub_80DFD58(u8 taskId); +static void sub_80DFF58(struct Sprite *sprite); +static void sub_80DFF98(struct Sprite *sprite); +static void sub_80E00D0(struct Sprite *sprite); +static void sub_80E02A4(u8 taskId); +static void sub_80E0620(u8 taskId); +void sub_80E08CC(u8 a); +void sub_80E079C(struct Task *task); -// used in Smoke Ball escape, Sky Attack, Feint Attack and Camouflage +// used in Smoke Ball escape, Sky Attack, Feint Attack and Camouflage void sub_80DFC24(u8 taskId) { int bank; @@ -31,7 +45,7 @@ void sub_80DFC24(u8 taskId) gTasks[taskId].func = sub_80DFC9C; } -void sub_80DFC9C(u8 taskId) +static void sub_80DFC9C(u8 taskId) { u8 r2 = gTasks[taskId].data[1] >> 8; u8 r1 = gTasks[taskId].data[1]; @@ -111,7 +125,7 @@ void sub_80DFE14(struct Sprite *sprite) sub_80DFE90(sprite); } -void sub_80DFE90(struct Sprite *sprite) +static void sub_80DFE90(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -136,3 +150,407 @@ void sub_80DFE90(struct Sprite *sprite) if (--sprite->data[0] == 0) DestroyAnimSprite(sprite); } + +void sub_80DFF1C(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); + + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = gBattleAnimArgs[4]; + sprite->data[2] = gBattleAnimArgs[5]; + sprite->callback = sub_80DFF58; +} + +static void sub_80DFF58(struct Sprite *sprite) +{ + sprite->data[4] += sprite->data[0]; + sprite->data[5] += sprite->data[1]; + sprite->pos2.x = sprite->data[4] >> 8; + sprite->pos2.y = sprite->data[5] >> 8; + + if (++sprite->data[3] == sprite->data[2]) + sprite->callback = sub_80DFF98; +} + +static void sub_80DFF98(struct Sprite *sprite) +{ + sprite->data[4] -= sprite->data[0]; + sprite->data[5] -= sprite->data[1]; + sprite->pos2.x = sprite->data[4] >> 8; + sprite->pos2.y = sprite->data[5] >> 8; + + if (--sprite->data[3] == 0) + move_anim_8074EE0(sprite); +} + +void sub_80DFFD0(struct Sprite *sprite) +{ + u8 bank; + s8 xOffset; + + if (gBattleAnimArgs[0] == 0) + bank = gAnimBankAttacker; + else + bank = gAnimBankTarget; + + xOffset = 20; + sprite->oam.tileNum += 4; + + switch (gBattleAnimArgs[1]) + { + case 0: + sprite->pos1.x = sub_807A100(bank, 5) - 8; + sprite->pos1.y = sub_807A100(bank, 2) + 8; + break; + case 1: + sprite->pos1.x = sub_807A100(bank, 5) - 14; + sprite->pos1.y = sub_807A100(bank, 2) + 16; + break; + case 2: + sprite->pos1.x = sub_807A100(bank, 4) + 8; + sprite->pos1.y = sub_807A100(bank, 2) + 8; + StartSpriteAffineAnim(sprite, 1); + xOffset = -20; + break; + case 3: + sprite->pos1.x = sub_807A100(bank, 4) + 14; + sprite->pos1.y = sub_807A100(bank, 2) + 16; + StartSpriteAffineAnim(sprite, 1); + xOffset = -20; + break; + } + + sprite->data[0] = 32; + sprite->data[2] = sprite->pos1.x + xOffset; + sprite->data[4] = sprite->pos1.y + 12; + sprite->data[5] = -12; + + sub_80786EC(sprite); + sprite->callback = sub_80E00D0; +} + +static void sub_80E00D0(struct Sprite *sprite) +{ + if (sub_8078718(sprite)) + move_anim_8074EE0(sprite); +} + +void sub_80E00EC(u8 taskId) +{ + struct ScanlineEffectParams scanlineParams; + struct Struct_sub_8078914 subStruct; + u16 i; + u8 pos; + int var0; + struct Task *task = &gTasks[taskId]; + + task->data[7] = GetBankPosition(gAnimBankAttacker, 1) + 31; + task->data[6] = sub_807A100(gAnimBankAttacker, 2) - 7; + task->data[5] = task->data[7]; + task->data[4] = task->data[6]; + task->data[13] = (task->data[7] - task->data[6]) << 8; + + pos = GetBankPosition(gAnimBankAttacker, 0); + task->data[14] = pos - 32; + task->data[15] = pos + 32; + + if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + task->data[8] = -12; + else + task->data[8] = -64; + + task->data[3] = GetBankIdentity_permutated(gAnimBankAttacker); + if (task->data[3] == 1) + { + sub_8078914(&subStruct); + task->data[10] = gBattle_BG1_Y; + REG_BLDCNT = 0x3F42; + FillPalette(0, subStruct.field_8 << 4, 32); + scanlineParams.dmaDest = ®_BG1VOFS; + var0 = 2; + + if (!IsContest()) + gBattle_BG2_X += 240; + } + else + { + task->data[10] = gBattle_BG2_Y; + REG_BLDCNT = 0x3F44; + FillPalette(0, 144, 32); + scanlineParams.dmaDest = ®_BG2VOFS; + var0 = 4; + + if (!IsContest()) + gBattle_BG1_X += 240; + } + + scanlineParams.dmaControl = 0xA2600001; + scanlineParams.initState = 1; + scanlineParams.unused9 = 0; + task->data[11] = 0; + task->data[12] = 16; + task->data[0] = 0; + task->data[1] = 0; + task->data[2] = 0; + + sub_80E08CC(3); + + for (i = 0; i < 112; i++) + { + gScanlineEffectRegBuffers[0][i] = task->data[10]; + gScanlineEffectRegBuffers[1][i] = task->data[10]; + } + + ScanlineEffect_SetParams(scanlineParams); + + REG_WINOUT = 0x3F00 | (var0 ^ 0x3F); + REG_WININ = 0x3F3F; + gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; + gBattle_WIN0V = 160; + + task->func = sub_80E02A4; +} + +static void sub_80E02A4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + if (++task->data[1] > 1) + { + task->data[1] = 0; + if (++task->data[2] & 1) + { + if (task->data[11] != 12) + task->data[11]++; + } + else + { + if (task->data[12] != 8) + task->data[12]--; + } + + REG_BLDALPHA = (task->data[12] << 8) | task->data[11]; + + if (task->data[11] == 12 && task->data[12] == 8) + task->data[0]++; + } + break; + case 1: + task->data[4] -= 8; + sub_80E079C(task); + + if (task->data[4] < task->data[8]) + task->data[0]++; + break; + case 2: + task->data[4] -= 8; + sub_80E079C(task); + task->data[14] += 4; + task->data[15] -= 4; + + if (task->data[14] >= task->data[15]) + task->data[14] = task->data[15]; + + gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; + + if (task->data[14] == task->data[15]) + task->data[0]++; + break; + case 3: + gScanlineEffect.state = 3; + task->data[0]++; + break; + case 4: + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_80E03BC(u8 taskId) +{ + struct Struct_sub_8078914 subStruct; + struct ScanlineEffectParams scanlineParams; + u8 pos; + u16 i; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + if (IsContest() == TRUE) + { + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + REG_WININ = 0x3F3F; + REG_WINOUT = 0x3F3F; + DestroyAnimVisualTask(taskId); + } + else + { + task->data[3] = GetBankIdentity_permutated(gAnimBankTarget); + if (task->data[3] == 1) + { + REG_BLDCNT = 0x3F42; + gBattle_BG2_X += 240; + } + else + { + REG_BLDCNT = 0x3F44; + gBattle_BG1_X += 240; + } + + task->data[0]++; + } + break; + case 1: + if (task->data[3] == 1) + { + sub_8078914(&subStruct); + task->data[10] = gBattle_BG1_Y; + FillPalette(0, subStruct.field_8 << 4, 32); + } + else + { + task->data[10] = gBattle_BG2_Y; + FillPalette(0, 144, 32); + } + + sub_80E08CC(3); + task->data[0]++; + break; + case 2: + task->data[7] = GetBankPosition(gAnimBankTarget, 1) + 31; + task->data[6] = sub_807A100(gAnimBankTarget, 2) - 7; + task->data[13] = (task->data[7] - task->data[6]) << 8; + pos = GetBankPosition(gAnimBankTarget, 0); + task->data[14] = pos - 4; + task->data[15] = pos + 4; + + if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + task->data[8] = -12; + else + task->data[8] = -64; + + task->data[4] = task->data[8]; + task->data[5] = task->data[8]; + task->data[11] = 12; + task->data[12] = 8; + task->data[0]++; + break; + case 3: + if (task->data[3] == 1) + scanlineParams.dmaDest = ®_BG1VOFS; + else + scanlineParams.dmaDest = ®_BG2VOFS; + + for (i = 0; i < 112; i++) + { + gScanlineEffectRegBuffers[0][i] = task->data[10] + (159 - i); + gScanlineEffectRegBuffers[1][i] = task->data[10] + (159 - i); + } + + scanlineParams.dmaControl = 0xA2600001; + scanlineParams.initState = 1; + scanlineParams.unused9 = 0; + ScanlineEffect_SetParams(scanlineParams); + task->data[0]++; + break; + case 4: + if (task->data[3] == 1) + REG_WINOUT = 0x3F3D; + else + REG_WINOUT = 0x3F3B; + + REG_WININ = 0x3F3F; + gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; + gBattle_WIN0V = 160; + + task->data[0] = 0; + task->data[1] = 0; + task->data[2] = 0; + REG_BLDALPHA = 0x80C; + task->func = sub_80E0620; + break; + } +} + +static void sub_80E0620(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + task->data[5] += 8; + if (task->data[5] >= task->data[7]) + task->data[5] = task->data[7]; + + sub_80E079C(task); + + if (task->data[5] == task->data[7]) + task->data[0]++; + break; + case 1: + if (task->data[15] - task->data[14] < 64) + { + task->data[14] -= 4; + task->data[15] += 4; + } + else + { + task->data[1] = 1; + } + + gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; + task->data[4] += 8; + + if (task->data[4] >= task->data[6]) + task->data[4] = task->data[6]; + + sub_80E079C(task); + + if (task->data[4] == task->data[6] && task->data[1] != 0) + { + task->data[1] = 0; + task->data[0]++; + } + break; + case 2: + if (++task->data[1] > 1) + { + task->data[1] = 0; + if ((++task->data[2] & 1) != 0) + { + if (task->data[11] != 0) + task->data[11]--; + } + else + { + if (task->data[12] < 16) + task->data[12]++; + } + + REG_BLDALPHA = (task->data[12] << 8) | task->data[11]; + + if (task->data[11] == 0 && task->data[12] == 16) + task->data[0]++; + } + break; + case 3: + gScanlineEffect.state = 3; + task->data[0]++; + break; + case 4: + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + REG_WININ = 0x3F3F; + REG_WINOUT = 0x3F3F; + DestroyAnimVisualTask(taskId); + break; + } +} -- cgit v1.2.3 From 338d2b0b1897899a6fa787f8baa4cf392f81b718 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 4 Feb 2018 12:34:18 -0800 Subject: Finish decompiling dark.s except one function --- src/battle/anim/dark.c | 456 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 454 insertions(+), 2 deletions(-) (limited to 'src/battle') diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 14988ac71..1c88dc23e 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -1,9 +1,13 @@ #include "global.h" #include "battle_anim.h" +#include "blend_palette.h" +#include "decompress.h" +#include "ewram.h" #include "palette.h" #include "rom_8077ABC.h" #include "scanline_effect.h" #include "sound.h" +#include "sprite.h" #include "trig.h" #include "constants/battle_constants.h" @@ -17,6 +21,12 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; +extern u16 gBattlePartyID[]; +extern u8 gAnimMoveTurn; + +extern const u8 gUnknown_08D1D574[]; +extern const u8 gUnknown_08D1D410[]; +extern const u16 gUnknown_08D1D54C[]; static void sub_80DFE90(struct Sprite *sprite); static void sub_80DFC9C(u8 taskId); @@ -26,8 +36,9 @@ static void sub_80DFF98(struct Sprite *sprite); static void sub_80E00D0(struct Sprite *sprite); static void sub_80E02A4(u8 taskId); static void sub_80E0620(u8 taskId); -void sub_80E08CC(u8 a); -void sub_80E079C(struct Task *task); +static void sub_80E08CC(u8 priority); +static void sub_80E079C(struct Task *task); +static void sub_80E0CD0(u8 taskId); // used in Smoke Ball escape, Sky Attack, Feint Attack and Camouflage @@ -554,3 +565,444 @@ static void sub_80E0620(u8 taskId) break; } } + +// static void sub_80E079C(struct Task *task) +// { +// int var0, var1; +// s16 var2; +// s16 i, j; + +// var2 = task->data[5] - task->data[4]; +// if (var2 != 0) +// { +// var0 = task->data[13] / var2; +// var1 = task->data[6]; + +// for (i = 0; i < task->data[4]; i++) +// { +// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[10] - (i - 159); +// } + +// for (i = task->data[4]; i <= task->data[5]; i++) +// { +// if (i >= 0) +// { +// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = (var1 - i) + task->data[10]; +// } + +// var1 += var0; +// } + +// for (j = i; j < task->data[7]; j++) +// { +// if (j >= 0) +// { +// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][j] = (task->data[10] + 159) - j; +// } +// } +// } +// else +// { +// for (i = 0; i < 112; i++) +// { +// gScanlineEffectRegBuffers[0][i] = task->data[10] + 159 - i; +// gScanlineEffectRegBuffers[1][i] = task->data[10] + 159 - i; +// } +// } +// } + +__attribute__((naked)) +static void sub_80E079C(struct Task *task) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + adds r6, r0, 0\n\ + ldrh r0, [r6, 0x12]\n\ + ldrh r4, [r6, 0x10]\n\ + subs r0, r4\n\ + lsls r0, 16\n\ + asrs r1, r0, 16\n\ + cmp r1, 0\n\ + beq _080E0890\n\ + movs r2, 0x22\n\ + ldrsh r0, [r6, r2]\n\ + bl __divsi3\n\ + mov r8, r0\n\ + movs r3, 0x14\n\ + ldrsh r0, [r6, r3]\n\ + lsls r5, r0, 8\n\ + lsls r0, r4, 16\n\ + movs r4, 0\n\ + cmp r0, 0\n\ + ble _080E07FC\n\ + ldr r0, _080E0888 @ =gScanlineEffectRegBuffers\n\ + mov r12, r0\n\ + ldr r7, _080E088C @ =gScanlineEffect\n\ +_080E07D0:\n\ + lsls r2, r4, 16\n\ + asrs r2, 16\n\ + lsls r3, r2, 1\n\ + ldrb r1, [r7, 0x14]\n\ + lsls r0, r1, 4\n\ + subs r0, r1\n\ + lsls r0, 7\n\ + adds r3, r0\n\ + add r3, r12\n\ + adds r1, r2, 0\n\ + subs r1, 0x9F\n\ + ldrh r0, [r6, 0x1C]\n\ + subs r0, r1\n\ + strh r0, [r3]\n\ + adds r2, 0x1\n\ + lsls r2, 16\n\ + lsrs r4, r2, 16\n\ + asrs r2, 16\n\ + movs r1, 0x10\n\ + ldrsh r0, [r6, r1]\n\ + cmp r2, r0\n\ + blt _080E07D0\n\ +_080E07FC:\n\ + ldrh r4, [r6, 0x10]\n\ + lsls r3, r4, 16\n\ + asrs r1, r3, 16\n\ + movs r2, 0x12\n\ + ldrsh r0, [r6, r2]\n\ + cmp r1, r0\n\ + bgt _080E0846\n\ + ldr r0, _080E0888 @ =gScanlineEffectRegBuffers\n\ + mov r12, r0\n\ + ldr r7, _080E088C @ =gScanlineEffect\n\ +_080E0810:\n\ + asrs r4, r3, 16\n\ + cmp r4, 0\n\ + blt _080E0832\n\ + asrs r1, r5, 8\n\ + subs r1, r4\n\ + lsls r3, r4, 1\n\ + ldrb r2, [r7, 0x14]\n\ + lsls r0, r2, 4\n\ + subs r0, r2\n\ + lsls r0, 7\n\ + adds r3, r0\n\ + add r3, r12\n\ + lsls r1, 16\n\ + asrs r1, 16\n\ + ldrh r2, [r6, 0x1C]\n\ + adds r1, r2\n\ + strh r1, [r3]\n\ +_080E0832:\n\ + add r5, r8\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + lsls r3, r4, 16\n\ + asrs r1, r3, 16\n\ + movs r2, 0x12\n\ + ldrsh r0, [r6, r2]\n\ + cmp r1, r0\n\ + ble _080E0810\n\ +_080E0846:\n\ + movs r3, 0x1C\n\ + ldrsh r0, [r6, r3]\n\ + adds r0, 0x9F\n\ + lsls r2, r4, 16\n\ + asrs r1, r2, 16\n\ + subs r5, r0, r1\n\ + movs r3, 0x16\n\ + ldrsh r0, [r6, r3]\n\ + cmp r1, r0\n\ + bge _080E08BE\n\ + ldr r7, _080E0888 @ =gScanlineEffectRegBuffers\n\ + ldr r4, _080E088C @ =gScanlineEffect\n\ +_080E085E:\n\ + asrs r3, r2, 16\n\ + cmp r3, 0\n\ + blt _080E0876\n\ + lsls r2, r3, 1\n\ + ldrb r1, [r4, 0x14]\n\ + lsls r0, r1, 4\n\ + subs r0, r1\n\ + lsls r0, 7\n\ + adds r2, r0\n\ + adds r2, r7\n\ + strh r5, [r2]\n\ + subs r5, 0x1\n\ +_080E0876:\n\ + adds r0, r3, 0x1\n\ + lsls r2, r0, 16\n\ + asrs r1, r2, 16\n\ + movs r3, 0x16\n\ + ldrsh r0, [r6, r3]\n\ + cmp r1, r0\n\ + blt _080E085E\n\ + b _080E08BE\n\ + .align 2, 0\n\ +_080E0888: .4byte gScanlineEffectRegBuffers\n\ +_080E088C: .4byte gScanlineEffect\n\ +_080E0890:\n\ + movs r1, 0x1C\n\ + ldrsh r0, [r6, r1]\n\ + adds r5, r0, 0\n\ + adds r5, 0x9F\n\ + movs r4, 0\n\ + ldr r3, _080E08C8 @ =gScanlineEffectRegBuffers\n\ + movs r2, 0xF0\n\ + lsls r2, 3\n\ + adds r6, r3, r2\n\ +_080E08A2:\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + lsls r2, r0, 1\n\ + adds r1, r2, r3\n\ + strh r5, [r1]\n\ + adds r2, r6\n\ + strh r5, [r2]\n\ + subs r5, 0x1\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x6F\n\ + ble _080E08A2\n\ +_080E08BE:\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080E08C8: .4byte gScanlineEffectRegBuffers\n\ + .syntax divided\n"); +} + +static void sub_80E08CC(u8 priority) +{ + u16 i; + + for (i = 0; i < 4; i++) + { + u8 spriteId = GetAnimBankSpriteId(i); + if (spriteId != 0xFF) + gSprites[spriteId].oam.priority = priority; + } +} + +void sub_80E0918(u8 taskId) +{ + u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + sub_8076034(gAnimBankAttacker, toBG2); + gSprites[gObjectBankIDs[gAnimBankAttacker]].invisible = 0; + + if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) + { + sub_8076034(gAnimBankAttacker ^ 2, toBG2 ^ 1); + gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].invisible = 0; + } + + DestroyAnimVisualTask(taskId); +} + +void sub_80E09C4(u8 taskId) +{ + u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + sub_8076464(toBG2); + + if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) + sub_8076464(toBG2 ^ 1); + + DestroyAnimVisualTask(taskId); +} + +void sub_80E0A10(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->callback = sub_8078600; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} + +void sub_80E0A4C(u8 taskId) +{ + u16 species; + u8 spriteId; + u8 newSpriteId; + u16 paletteNum; + struct Struct_sub_8078914 subStruct; + int var0 = 0; + + gBattle_WIN0H = var0; + gBattle_WIN0V = var0; + REG_WININ = 0x3F3F; + REG_WINOUT = 0x3F3D; + REG_DISPCNT |= DISPCNT_OBJWIN_ON; + REG_BLDCNT = 0x3F42; + REG_BLDALPHA = 0xC08; + REG_BG1CNT_BITFIELD.priority = 0; + REG_BG1CNT_BITFIELD.screenSize = 0; + if (!IsContest()) + REG_BG1CNT_BITFIELD.charBaseBlock = 1; + + if (IsDoubleBattle() && !IsContest()) + { + if (GetBankIdentity(gAnimBankAttacker) == 3 || GetBankIdentity(gAnimBankAttacker) == 0) + { + if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2) == TRUE) + { + gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].oam.priority--; + REG_BG1CNT_BITFIELD.priority = 1; + var0 = 1; + } + } + } + + if (IsContest()) + { + species = EWRAM_19348; + } + else + { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + else + species = GetMonData(&gPlayerParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + } + + spriteId = GetAnimBankSpriteId(0); + newSpriteId = sub_807A4A0(gAnimBankAttacker, spriteId, species); + + sub_8078914(&subStruct); + DmaClear32(3, subStruct.field_4, 0x1000); + LZDecompressVram(&gUnknown_08D1D574, subStruct.field_4); + LZDecompressVram(&gUnknown_08D1D410, subStruct.field_0); + LoadCompressedPalette(&gUnknown_08D1D54C, subStruct.field_8 << 4, 32); + + gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96; + gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; + paletteNum = 16 + gSprites[spriteId].oam.paletteNum; + + if (gBattleAnimArgs[1] == 0) + sub_8079108(paletteNum, FALSE); + else + BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]); + + gTasks[taskId].data[0] = newSpriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = gBattleAnimArgs[1]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + gTasks[taskId].data[6] = var0; + gTasks[taskId].func = sub_80E0CD0; +} + +static void sub_80E0CD0(u8 taskId) +{ + struct Struct_sub_8078914 subStruct; + u16 paletteNum; + u8 spriteId; + u8 taskIdCopy = taskId; + + gTasks[taskIdCopy].data[10] += 4; + gBattle_BG1_X -= 4; + + if (gTasks[taskIdCopy].data[10] == 128) + { + gTasks[taskIdCopy].data[10] = 0; + gBattle_BG1_X += 128; + + if (++gTasks[taskIdCopy].data[11] == 2) + { + sub_8076464(0); + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + REG_WININ = 0x3F3F; + REG_WINOUT = 0x3F3F; + + if (!IsContest()) + REG_BG1CNT_BITFIELD.charBaseBlock = 0; + + REG_DISPCNT ^= DISPCNT_OBJWIN_ON; + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + + spriteId = GetAnimBankSpriteId(0); + paletteNum = 16 + gSprites[spriteId].oam.paletteNum; + if (gTasks[taskIdCopy].data[1] == 0) + sub_8079108(paletteNum, 1); + + DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]); + sub_8078914(&subStruct); + DmaClear32(3, subStruct.field_4, 0x800); + + if (gTasks[taskIdCopy].data[6] == 1) + { + gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].oam.priority++; + } + + DestroyAnimVisualTask(taskIdCopy); + } + } +} + +void sub_80E0E24(u8 taskId) +{ + u8 spriteId; + u8 bank; + bool8 calcSpriteId = FALSE; + u8 identity = 0; + + switch (gBattleAnimArgs[0]) + { + case 0: + case 1: + case 2: + case 3: + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + break; + case 4: + identity = IDENTITY_PLAYER_MON1; + calcSpriteId = TRUE; + break; + case 5: + identity = IDENTITY_PLAYER_MON2; + calcSpriteId = TRUE; + break; + case 6: + identity = IDENTITY_OPPONENT_MON1; + calcSpriteId = TRUE; + break; + case 7: + identity = IDENTITY_OPPONENT_MON2; + calcSpriteId = TRUE; + break; + default: + spriteId = 0xFF; + break; + } + + if (calcSpriteId) + { + bank = GetBankByIdentity(identity); + if (IsAnimBankSpriteVisible(bank)) + spriteId = gObjectBankIDs[bank]; + else + spriteId = 0xFF; + } + + if (spriteId != 0xFF) + sub_8079108(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); + + DestroyAnimVisualTask(taskId); +} + +void sub_80E0EE8(u8 taskId) +{ + if (gAnimMoveTurn < 2) + gBattleAnimArgs[7] = 0; + + if (gAnimMoveTurn == 2) + gBattleAnimArgs[7] = 1; + + DestroyAnimVisualTask(taskId); +} -- cgit v1.2.3 From ad13f21d2e672b6f3cf000987670b4cf84e3feff Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 4 Feb 2018 14:40:14 -0800 Subject: Start decompiling fight.s --- src/battle/anim/fight.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/battle/anim/fight.c (limited to 'src/battle') diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c new file mode 100644 index 000000000..4c3a6cb75 --- /dev/null +++ b/src/battle/anim/fight.c @@ -0,0 +1,72 @@ +#include "global.h" +#include "battle_anim.h" +#include "blend_palette.h" +#include "decompress.h" +#include "ewram.h" +#include "palette.h" +#include "rom_8077ABC.h" +#include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "trig.h" +#include "constants/battle_constants.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; +extern u8 gObjectBankIDs[]; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_WIN0H; +extern u16 gBattle_WIN0V; +extern u16 gBattlePartyID[]; +extern u8 gAnimMoveTurn; + +void sub_080B08A0(struct Sprite *sprite) +{ + sub_807867C(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = 15; + sprite->callback = sub_80782D8; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} + +void sub_80D902C(struct Sprite *sprite) +{ + if (gBattleAnimArgs[7] == 1 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; + } + + StartSpriteAnim(sprite, gBattleAnimArgs[6]); + gBattleAnimArgs[6] = 0; + sub_8079534(sprite); +} + +void sub_80D9078(struct Sprite *sprite) +{ + if (IsContest()) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; + } + + sub_80D902C(sprite); +} + +void sub_80D90A4(struct Sprite *sprite) +{ + StartSpriteAnim(sprite, gBattleAnimArgs[4]); + + if (gBattleAnimArgs[3] == 0) + sub_80787B0(sprite, 1); + else + sub_8078764(sprite, 1); + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->callback = sub_80782D8; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} -- cgit v1.2.3 From 088e23007aa07e2ef0fcb5900664d2e6cec0853d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 5 Feb 2018 20:10:31 -0800 Subject: Decompile more of fight.s --- src/battle/anim/fight.c | 223 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) (limited to 'src/battle') diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index 4c3a6cb75..fcce044ae 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -4,6 +4,7 @@ #include "decompress.h" #include "ewram.h" #include "palette.h" +#include "random.h" #include "rom_8077ABC.h" #include "scanline_effect.h" #include "sound.h" @@ -15,6 +16,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u8 gObjectBankIDs[]; +extern u8 gBanksBySide[]; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -24,6 +26,15 @@ extern u16 gBattle_WIN0V; extern u16 gBattlePartyID[]; extern u8 gAnimMoveTurn; +extern struct SpriteTemplate gBattleAnimSpriteTemplate_83DB4A8; + +static void sub_80D927C(struct Sprite *sprite); +static void sub_80D9328(struct Sprite *sprite); +static void sub_80D9404(struct Sprite *sprite); +static void sub_80D9474(struct Sprite *sprite); +static void sub_80D94CC(struct Sprite *sprite); +static void sub_80D9524(struct Sprite *sprite); + void sub_080B08A0(struct Sprite *sprite) { sub_807867C(sprite, gBattleAnimArgs[0]); @@ -70,3 +81,215 @@ void sub_80D90A4(struct Sprite *sprite) sprite->callback = sub_80782D8; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } + +void sub_80D90F4(struct Sprite *sprite) +{ + u8 bank; + s16 xMod, yMod; + s16 x, y; + + if (gBattleAnimArgs[0] == 0) + bank = gAnimBankAttacker; + else + bank = gAnimBankTarget; + + if (gBattleAnimArgs[2] < 0) + gBattleAnimArgs[2] = Random() % 5; + + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->pos1.x = GetBankPosition(bank, 2); + sprite->pos1.y = GetBankPosition(bank, 3); + + xMod = sub_807A100(bank, 1) / 2; + yMod = sub_807A100(bank, 0) / 4; + + x = Random() % xMod; + y = Random() % yMod; + + if (Random() & 1) + x *= -1; + if (Random() & 1) + y *= -1; + + if ((gBanksBySide[bank] & 1) == 0) + y += 0xFFF0; + + sprite->pos1.x += x; + sprite->pos1.y += y; + + sprite->data[0] = gBattleAnimArgs[1]; + sprite->data[7] = CreateSprite(&gBattleAnimSpriteTemplate_83DB4A8, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + if (sprite->data[7] != 64) + { + StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); + gSprites[sprite->data[7]].callback = SpriteCallbackDummy; + } + + sprite->callback = sub_80D927C; +} + +static void sub_80D927C(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + if (sprite->data[7] != 64) + { + FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum); + DestroySprite(&gSprites[sprite->data[7]]); + } + + DestroyAnimSprite(sprite); + } + else + { + sprite->data[0]--; + } +} + +void sub_80D92D0(struct Sprite *sprite) +{ + sub_8078764(sprite, 1); + sprite->data[0] = 30; + + if (gBattleAnimArgs[2] == 0) + { + sprite->data[2] = sprite->pos1.x - 20; + } + else + { + sprite->data[2] = sprite->pos1.x + 20; + sprite->hFlip = 1; + } + + sprite->data[4] = sprite->pos1.y - 20; + sprite->callback = sub_8078B34; + StoreSpriteCallbackInData(sprite, sub_80D9328); +} + +static void sub_80D9328(struct Sprite *sprite) +{ + if (++sprite->data[5] == 11) + { + sprite->data[2] = sprite->pos1.x - sprite->pos2.x; + sprite->data[4] = sprite->pos1.y - sprite->pos2.y; + sprite->data[0] = 8; + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + + sprite->callback = sub_8078B34; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); + } +} + +void sub_80D9378(struct Sprite *sprite) +{ + if ((gAnimBankAttacker ^ 2) == gAnimBankTarget && GetBankIdentity(gAnimBankTarget) < 2) + gBattleAnimArgs[0] *= -1; + + sub_8078764(sprite, 1); + + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = sprite->pos1.y; + + obj_translate_based_on_private_1_2_3_4(sprite); + + sprite->data[5] = gBattleAnimArgs[5]; + sprite->data[6] = gBattleAnimArgs[4]; + sprite->data[7] = 0; + + sprite->callback = sub_80D9404; +} + +static void sub_80D9404(struct Sprite *sprite) +{ + if (!sub_8078B5C(sprite)) + { + sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]); + sprite->data[7] += sprite->data[6]; + } + else + { + DestroyAnimSprite(sprite); + } +} + +void sub_80D943C(struct Sprite *sprite) +{ + sub_8078764(sprite, 1); + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->data[0] = gBattleAnimArgs[3]; + + sprite->callback = sub_80782D8; + StoreSpriteCallbackInData(sprite, sub_80D9474); +} + +static void sub_80D9474(struct Sprite *sprite) +{ + StartSpriteAffineAnim(sprite, 0); + sprite->affineAnimPaused = 1; + sprite->data[0] = 20; + + sprite->callback = sub_80782D8; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} + +void sub_80D94A8(struct Sprite *sprite) +{ + sub_8078764(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + + sprite->callback = sub_80D94CC; +} + +static void sub_80D94CC(struct Sprite *sprite) +{ + if (--sprite->data[0] == -1) + { + sprite->data[0] = 6; + sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + + sprite->callback = sub_8078B34; + StoreSpriteCallbackInData(sprite, sub_80D9524); + } +} + +static void sub_80D9524(struct Sprite *sprite) +{ + sprite->data[0] = 15; + + sprite->callback = sub_80782D8; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} + +void sub_80D9540(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sub_8078764(sprite, 1); + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[2] = gBattleAnimArgs[3]; + sprite->data[0]++; + } + else + { + sprite->data[4] += sprite->data[1]; + sprite->pos2.x = sprite->data[4] >> 8; + sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]); + sprite->data[3] = (sprite->data[3] + 3) & 0xFF; + + if (sprite->data[3] > 100) + sprite->invisible = sprite->data[3] % 2; + + if (sprite->data[3] > 120) + DestroyAnimSprite(sprite); + } +} -- cgit v1.2.3 From 5563c78798f95130cccf7d5a5c17b02cfb06442b Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 18:50:20 -0600 Subject: decompile debug_sub_8010CAC --- src/battle/battle_2.c | 1317 ++++++++++++------------------------------------- 1 file changed, 327 insertions(+), 990 deletions(-) (limited to 'src/battle') diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index d3ddc5960..b09d9ad8d 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1363,19 +1363,25 @@ extern u8 gUnknown_Debug_2023B62[]; extern const u8 Str_821F7BD[]; extern const u8 Str_821F7DA[]; -void debug_sub_8012878(void); -void debug_sub_8012D10(u8); void debug_sub_8010818(void); void debug_sub_80108B8(void); void debug_sub_8010CAC(void); +void debug_sub_8011498(void); void debug_sub_801174C(void); void debug_sub_8011D40(void); +void debug_sub_8011E5C(void); +void debug_sub_8011E74(void); void debug_sub_8011EA0(u8); void debug_sub_8012294(void); void debug_sub_80123D8(u8); void debug_sub_8012540(void); void debug_nullsub_3(void); void debug_sub_80125A0(void); +void debug_sub_80125E4(void); +void debug_sub_8012628(void); +void debug_sub_8012688(void); +void debug_sub_8012878(void); +void debug_sub_8012D10(u8); u32 debug_sub_8013294(u8, void *, u32); void debug_sub_80132C8(u8, void *, u32); @@ -1389,7 +1395,7 @@ extern u8 gUnknown_Debug_030043A4; extern u8 gUnknown_Debug_030043A8; extern u8 gBattleBuffersTransferData[]; -extern const s16 gUnknown_Debug_821F424[][5]; +extern const u16 gUnknown_Debug_821F424[][5]; extern const u16 gUnknown_Debug_821F56C[][5]; extern const u32 gUnknown_Debug_821F798[][4]; @@ -1579,994 +1585,325 @@ void debug_sub_8010B80(u8 a) = r12 * 10 + r7; } -__attribute__((naked)) -void debug_sub_8010CAC() +void debug_sub_8010CAC(void) { - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r8\n" - " push {r7}\n" - " add sp, sp, #0xfffffff0\n" - " ldr r4, ._553 @ gMain\n" - " ldrh r1, [r4, #0x28]\n" - " mov r0, #0x81\n" - " lsl r0, r0, #0x2\n" - " cmp r1, r0\n" - " bne ._543 @cond_branch\n" - " bl DoSoftReset\n" - "._543:\n" - " ldrh r0, [r4, #0x2a]\n" - " cmp r0, #0x4\n" - " beq ._544 @cond_branch\n" - " b ._559\n" - "._544:\n" - " ldr r0, ._553 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " mov r8, r0\n" - " cmp r1, #0x5\n" - " bhi ._546 @cond_branch\n" - " ldr r0, ._553 + 8 @ gUnknown_Debug_030043A8\n" - " mov r1, #0x0\n" - " strb r1, [r0]\n" - " bl debug_sub_8012628\n" - " ldr r0, ._553 + 12 @ debug_sub_8011498\n" - " bl SetMainCallback2\n" - "._546:\n" - " ldr r0, ._553 + 16 @ gUnknown_Debug_030043A0\n" - " ldrb r3, [r0]\n" - " cmp r3, #0\n" - " bne ._555 @cond_branch\n" - " mov r1, r8\n" - " ldrb r0, [r1]\n" - " cmp r0, #0x6\n" - " bne ._555 @cond_branch\n" - " ldr r0, ._553 + 20 @ debug_sub_80108B8\n" - " str r0, [r4, #0x8]\n" - " ldr r4, ._553 + 24 @ gPlayerParty\n" - " ldr r0, ._553 + 28 @ gUnknown_Debug_2023A76\n" - " ldrh r1, [r0]\n" - " ldrb r2, [r0, #0x2]\n" - " str r3, [sp]\n" - " str r3, [sp, #0x4]\n" - " str r3, [sp, #0x8]\n" - " str r3, [sp, #0xc]\n" - " add r0, r4, #0\n" - " mov r3, #0x20\n" - " bl CreateMon\n" - " mov r5, #0x0\n" - " add r6, r4, #0\n" - "._549:\n" - " add r1, r5, #0\n" - " add r1, r1, #0xd\n" - " lsl r4, r5, #0x1\n" - " ldr r0, ._553 + 32 @ gUnknown_Debug_2023B02\n" - " add r4, r4, r0\n" - " add r0, r6, #0\n" - " add r2, r4, #0\n" - " bl SetMonData\n" - " add r1, r5, #0\n" - " add r1, r1, #0x11\n" - " mov r2, #0x0\n" - " ldsh r0, [r4, r2]\n" - " lsl r2, r0, #0x1\n" - " add r2, r2, r0\n" - " lsl r2, r2, #0x2\n" - " ldr r0, ._553 + 36 @ gBattleMoves\n" - " add r2, r2, r0\n" - " add r0, r6, #0\n" - " bl SetMonData\n" - " add r5, r5, #0x1\n" - " cmp r5, #0x3\n" - " ble ._549 @cond_branch\n" - " ldr r2, ._553 + 28 @ gUnknown_Debug_2023A76\n" - " mov r4, #0x3c\n" - " ldsh r0, [r2, r4]\n" - " cmp r0, #0x1\n" - " beq ._550 @cond_branch\n" - " cmp r0, #0x2\n" - " beq ._551 @cond_branch\n" - " b ._555\n" - "._554:\n" - " .align 2, 0\n" - "._553:\n" - " .word gMain\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_030043A8\n" - " .word debug_sub_8011498+1\n" - " .word gUnknown_Debug_030043A0\n" - " .word debug_sub_80108B8+1\n" - " .word gPlayerParty\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_2023B02\n" - " .word gBattleMoves+0x4\n" - "._550:\n" - " ldr r1, ._556 @ gCB2_AfterEvolution\n" - " ldr r0, ._556 + 4 @ debug_sub_80108B8\n" - " str r0, [r1]\n" - " ldr r0, ._556 + 8 @ gPlayerParty\n" - " ldrh r1, [r2, #0xa]\n" - " mov r2, #0x1\n" - " mov r3, #0x0\n" - " bl EvolutionScene\n" - " b ._555\n" - "._557:\n" - " .align 2, 0\n" - "._556:\n" - " .word gCB2_AfterEvolution\n" - " .word debug_sub_80108B8+1\n" - " .word gPlayerParty\n" - "._551:\n" - " bl debug_sub_8012688\n" - "._555:\n" - " ldr r0, ._565 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r0]\n" - " cmp r0, #0x1\n" - " bne ._559 @cond_branch\n" - " ldr r0, ._565 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r0, [r0]\n" - " cmp r0, #0x6\n" - " bne ._559 @cond_branch\n" - " ldr r3, ._565 + 8 @ gSaveBlock2\n" - " ldrb r2, [r3, #0x15]\n" - " lsl r0, r2, #0x1d\n" - " lsr r5, r0, #0x1f\n" - " lsl r0, r2, #0x1f\n" - " lsr r0, r0, #0x1f\n" - " lsl r0, r0, #0x1\n" - " orr r5, r5, r0\n" - " add r5, r5, #0x1\n" - " cmp r5, #0x4\n" - " bne ._560 @cond_branch\n" - " mov r5, #0x0\n" - "._560:\n" - " mov r0, #0x1\n" - " add r1, r5, #0\n" - " and r1, r1, r0\n" - " lsl r1, r1, #0x2\n" - " mov r0, #0x5\n" - " neg r0, r0\n" - " and r0, r0, r2\n" - " orr r0, r0, r1\n" - " mov r1, #0x2\n" - " and r5, r5, r1\n" - " lsr r2, r5, #0x1\n" - " sub r1, r1, #0x4\n" - " and r0, r0, r1\n" - " orr r0, r0, r2\n" - " strb r0, [r3, #0x15]\n" - " lsl r0, r0, #0x1f\n" - " lsr r0, r0, #0x1f\n" - " bl SetPokemonCryStereo\n" - " bl debug_nullsub_3\n" - "._559:\n" - " ldr r4, ._565 + 12 @ gMain\n" - " ldrh r0, [r4, #0x2a]\n" - " cmp r0, #0x8\n" - " bne ._561 @cond_branch\n" - " bl debug_sub_801174C\n" - "._561:\n" - " ldrh r0, [r4, #0x2a]\n" - " cmp r0, #0x40\n" - " bne ._562 @cond_branch\n" - " bl debug_sub_80125E4\n" - " ldr r1, ._565 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r0, [r1]\n" - " cmp r0, #0\n" - " beq ._563 @cond_branch\n" - " sub r0, r0, #0x1\n" - " b ._564\n" - "._566:\n" - " .align 2, 0\n" - "._565:\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gSaveBlock2\n" - " .word gMain\n" - "._563:\n" - " mov r0, #0x6\n" - "._564:\n" - " strb r0, [r1]\n" - " bl debug_sub_8011E74\n" - " ldr r0, ._570 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - " bl debug_sub_80125A0\n" - "._562:\n" - " ldr r0, ._570 + 4 @ gMain\n" - " ldrh r0, [r0, #0x2a]\n" - " cmp r0, #0x80\n" - " bne ._567 @cond_branch\n" - " bl debug_sub_80125E4\n" - " ldr r1, ._570 @ gUnknown_Debug_030043A4\n" - " ldrb r0, [r1]\n" - " cmp r0, #0x6\n" - " bne ._568 @cond_branch\n" - " mov r0, #0x0\n" - " b ._569\n" - "._571:\n" - " .align 2, 0\n" - "._570:\n" - " .word gUnknown_Debug_030043A4\n" - " .word gMain\n" - "._568:\n" - " add r0, r0, #0x1\n" - "._569:\n" - " strb r0, [r1]\n" - " bl debug_sub_8011E74\n" - " ldr r0, ._575 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - " bl debug_sub_80125A0\n" - "._567:\n" - " ldr r0, ._575 + 4 @ gMain\n" - " ldrh r0, [r0, #0x2a]\n" - " cmp r0, #0x20\n" - " bne ._572 @cond_branch\n" - " bl debug_sub_80125E4\n" - " ldr r2, ._575 + 8 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r2]\n" - " add r1, r0, #0\n" - " cmp r1, #0\n" - " beq ._573 @cond_branch\n" - " sub r0, r0, #0x1\n" - " strb r0, [r2]\n" - " b ._577\n" - "._576:\n" - " .align 2, 0\n" - "._575:\n" - " .word gUnknown_Debug_030043A4\n" - " .word gMain\n" - " .word gUnknown_Debug_030043A0\n" - "._573:\n" - " ldr r3, ._581 @ gUnknown_Debug_03004360\n" - " ldrb r0, [r3]\n" - " cmp r0, #0\n" - " beq ._577 @cond_branch\n" - " strb r1, [r3]\n" - " mov r0, #0x4\n" - " strb r0, [r2]\n" - " ldr r0, ._581 + 4 @ gBattle_BG1_X\n" - " strh r1, [r0]\n" - " bl debug_sub_8011E5C\n" - " bl debug_sub_8011E74\n" - " ldr r0, ._581 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._577:\n" - " bl debug_sub_80125A0\n" - "._572:\n" - " ldr r0, ._581 + 12 @ gMain\n" - " ldrh r0, [r0, #0x2a]\n" - " cmp r0, #0x10\n" - " bne ._578 @cond_branch\n" - " bl debug_sub_80125E4\n" - " ldr r2, ._581 + 16 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r2]\n" - " cmp r0, #0x4\n" - " beq ._579 @cond_branch\n" - " add r0, r0, #0x1\n" - " strb r0, [r2]\n" - " b ._583\n" - "._582:\n" - " .align 2, 0\n" - "._581:\n" - " .word gUnknown_Debug_03004360\n" - " .word gBattle_BG1_X\n" - " .word gUnknown_Debug_030043A4\n" - " .word gMain\n" - " .word gUnknown_Debug_030043A0\n" - "._579:\n" - " ldr r3, ._587 @ gUnknown_Debug_03004360\n" - " ldrb r1, [r3]\n" - " cmp r1, #0\n" - " bne ._583 @cond_branch\n" - " mov r0, #0x1\n" - " strb r0, [r3]\n" - " strb r1, [r2]\n" - " ldr r1, ._587 + 4 @ gBattle_BG1_X\n" - " mov r2, #0x80\n" - " lsl r2, r2, #0x1\n" - " add r0, r2, #0\n" - " strh r0, [r1]\n" - " bl debug_sub_8011E5C\n" - " bl debug_sub_8011E74\n" - " ldr r0, ._587 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._583:\n" - " bl debug_sub_80125A0\n" - "._578:\n" - " ldr r0, ._587 + 12 @ gMain\n" - " ldrh r1, [r0, #0x30]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._584 @cond_branch\n" - " b ._607\n" - "._584:\n" - " ldr r0, ._587 + 16 @ gUnknown_Debug_030043A0\n" - " ldrb r2, [r0]\n" - " ldr r0, ._587 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r2, r0\n" - " sub r0, r0, #0x1e\n" - " cmp r0, #0x4\n" - " bhi ._586 @cond_branch\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._587 + 20 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._588:\n" - " .align 2, 0\n" - "._587:\n" - " .word gUnknown_Debug_03004360\n" - " .word gBattle_BG1_X\n" - " .word gUnknown_Debug_030043A4\n" - " .word gMain\n" - " .word gUnknown_Debug_030043A0\n" - " .word ._589\n" - "._589:\n" - " .word ._590\n" - " .word ._591\n" - " .word ._592\n" - " .word ._593\n" - " .word ._594\n" - "._591:\n" - " bl debug_sub_8010818\n" - " b ._595\n" - "._592:\n" - " ldr r1, ._597 @ gUnknown_Debug_2023A76\n" - " mov r0, #0x1f\n" - " mov r2, #0xec\n" - " bl debug_sub_80132C8\n" - "._595:\n" - " bl debug_sub_8011E5C\n" - " bl debug_sub_8011E74\n" - " bl debug_sub_8012540\n" - " bl debug_nullsub_3\n" - " ldr r0, ._597 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - " b ._607\n" - "._598:\n" - " .align 2, 0\n" - "._597:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A4\n" - "._593:\n" - " ldr r1, ._600 @ gUnknown_Debug_2023A76\n" - " mov r0, #0x1f\n" - " mov r2, #0xec\n" - " bl debug_sub_8013294\n" - " b ._607\n" - "._601:\n" - " .align 2, 0\n" - "._600:\n" - " .word gUnknown_Debug_2023A76\n" - "._594:\n" - " ldr r3, ._604 @ gUnknown_Debug_2023A76\n" - " add r2, r3, #0\n" - " add r2, r2, #0x44\n" - " ldrh r1, [r2]\n" - " mov r4, #0x0\n" - " ldsh r0, [r2, r4]\n" - " cmp r0, #0\n" - " beq ._602 @cond_branch\n" - " sub r0, r1, #1\n" - " strh r0, [r2]\n" - " add r1, r3, #0\n" - " add r1, r1, #0x8a\n" - " ldrh r0, [r1]\n" - " sub r0, r0, #0x1\n" - " strh r0, [r1]\n" - " b ._603\n" - "._605:\n" - " .align 2, 0\n" - "._604:\n" - " .word gUnknown_Debug_2023A76\n" - "._602:\n" - " mov r1, #0x8\n" - " strh r1, [r2]\n" - " add r0, r3, #0\n" - " add r0, r0, #0x8a\n" - " strh r1, [r0]\n" - "._603:\n" - " bl debug_sub_8012540\n" - " b ._607\n" - "._590:\n" - " mov r0, #0x0\n" - " bl debug_sub_8010B80\n" - " ldr r2, ._608 @ gUnknown_Debug_030043A0\n" - " ldr r0, ._608 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r2, [r2]\n" - " add r0, r0, r2\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " b ._607\n" - "._609:\n" - " .align 2, 0\n" - "._608:\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - "._586:\n" - " cmp r2, #0x4\n" - " bne ._611 @cond_branch\n" - " cmp r1, #0x5\n" - " bhi ._611 @cond_branch\n" - " mov r0, #0x1\n" - " bl debug_sub_8010AAC\n" - " b ._613\n" - "._611:\n" - " ldr r6, ._618 @ gUnknown_Debug_2023A76\n" - " ldr r5, ._618 + 4 @ gUnknown_Debug_030043A0\n" - " ldr r4, ._618 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r0, [r4]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r0, [r5]\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x1\n" - " ldr r2, ._618 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r0, [r2]\n" - " mov r3, #0x46\n" - " mul r0, r0, r3\n" - " add r1, r1, r0\n" - " add r1, r1, r6\n" - " ldrh r0, [r1]\n" - " sub r0, r0, #0x1\n" - " strh r0, [r1]\n" - " ldrb r0, [r4]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r5, [r5]\n" - " add r1, r1, r5\n" - " lsl r0, r1, #0x1\n" - " ldrb r2, [r2]\n" - " mul r2, r2, r3\n" - " add r0, r0, r2\n" - " add r3, r0, r6\n" - " mov r4, #0x0\n" - " ldsh r2, [r3, r4]\n" - " ldr r4, ._618 + 16 @ gUnknown_Debug_821F424\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r1, r0, #0x1\n" - " add r0, r4, #0\n" - " add r0, r0, #0x8\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " cmp r2, r0\n" - " bge ._613 @cond_branch\n" - " add r0, r4, #6\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " strh r0, [r3]\n" - "._613:\n" - " ldr r5, ._618 + 4 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r5]\n" - " cmp r0, #0\n" - " bne ._614 @cond_branch\n" - " mov r0, #0x0\n" - " bl debug_sub_8010AAC\n" - " ldr r0, ._618 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - "._614:\n" - " ldr r4, ._618 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r5, [r5]\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._607:\n" - " ldr r0, ._618 + 20 @ gMain\n" - " ldrh r1, [r0, #0x30]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._615 @cond_branch\n" - " b ._638\n" - "._615:\n" - " ldr r0, ._618 + 4 @ gUnknown_Debug_030043A0\n" - " ldrb r2, [r0]\n" - " ldr r0, ._618 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r2, r0\n" - " sub r0, r0, #0x1e\n" - " cmp r0, #0x4\n" - " bhi ._617 @cond_branch\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._618 + 24 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._619:\n" - " .align 2, 0\n" - "._618:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_03004360\n" - " .word gUnknown_Debug_821F424\n" - " .word gMain\n" - " .word ._620\n" - "._620:\n" - " .word ._621\n" - " .word ._622\n" - " .word ._623\n" - " .word ._624\n" - " .word ._625\n" - "._622:\n" - " bl debug_sub_8010818\n" - " b ._626\n" - "._623:\n" - " ldr r1, ._628 @ gUnknown_Debug_2023A76\n" - " mov r0, #0x1f\n" - " mov r2, #0xec\n" - " bl debug_sub_80132C8\n" - "._626:\n" - " bl debug_sub_8011E5C\n" - " bl debug_sub_8011E74\n" - " bl debug_sub_8012540\n" - " bl debug_nullsub_3\n" - " ldr r0, ._628 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - " b ._638\n" - "._629:\n" - " .align 2, 0\n" - "._628:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A4\n" - "._624:\n" - " ldr r1, ._631 @ gUnknown_Debug_2023A76\n" - " mov r0, #0x1f\n" - " mov r2, #0xec\n" - " bl debug_sub_8013294\n" - " b ._638\n" - "._632:\n" - " .align 2, 0\n" - "._631:\n" - " .word gUnknown_Debug_2023A76\n" - "._625:\n" - " ldr r3, ._635 @ gUnknown_Debug_2023A76\n" - " add r2, r3, #0\n" - " add r2, r2, #0x44\n" - " ldrh r1, [r2]\n" - " mov r4, #0x0\n" - " ldsh r0, [r2, r4]\n" - " cmp r0, #0x7\n" - " bgt ._633 @cond_branch\n" - " add r0, r1, #1\n" - " strh r0, [r2]\n" - " add r1, r3, #0\n" - " add r1, r1, #0x8a\n" - " ldrh r0, [r1]\n" - " add r0, r0, #0x1\n" - " strh r0, [r1]\n" - " b ._634\n" - "._636:\n" - " .align 2, 0\n" - "._635:\n" - " .word gUnknown_Debug_2023A76\n" - "._633:\n" - " mov r1, #0x0\n" - " strh r1, [r2]\n" - " add r0, r3, #0\n" - " add r0, r0, #0x8a\n" - " strh r1, [r0]\n" - "._634:\n" - " bl debug_sub_8012540\n" - " b ._638\n" - "._621:\n" - " mov r0, #0x1\n" - " bl debug_sub_8010B80\n" - " ldr r2, ._639 @ gUnknown_Debug_030043A0\n" - " ldr r0, ._639 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r2, [r2]\n" - " add r0, r0, r2\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " b ._638\n" - "._640:\n" - " .align 2, 0\n" - "._639:\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - "._617:\n" - " cmp r2, #0x4\n" - " bne ._642 @cond_branch\n" - " cmp r1, #0x5\n" - " bhi ._642 @cond_branch\n" - " mov r0, #0x1\n" - " bl debug_sub_8010AAC\n" - " b ._644\n" - "._642:\n" - " ldr r6, ._650 @ gUnknown_Debug_2023A76\n" - " ldr r5, ._650 + 4 @ gUnknown_Debug_030043A0\n" - " ldr r4, ._650 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r0, [r4]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r0, [r5]\n" - " add r1, r1, r0\n" - " lsl r1, r1, #0x1\n" - " ldr r2, ._650 + 12 @ gUnknown_Debug_03004360\n" - " ldrb r0, [r2]\n" - " mov r3, #0x46\n" - " mul r0, r0, r3\n" - " add r1, r1, r0\n" - " add r1, r1, r6\n" - " ldrh r0, [r1]\n" - " add r0, r0, #0x1\n" - " strh r0, [r1]\n" - " ldrb r0, [r4]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r5, [r5]\n" - " add r1, r1, r5\n" - " lsl r0, r1, #0x1\n" - " ldrb r2, [r2]\n" - " mul r2, r2, r3\n" - " add r0, r0, r2\n" - " add r3, r0, r6\n" - " mov r4, #0x0\n" - " ldsh r2, [r3, r4]\n" - " ldr r4, ._650 + 16 @ gUnknown_Debug_821F424\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r1, r0, #0x1\n" - " add r0, r4, #6\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " cmp r2, r0\n" - " ble ._644 @cond_branch\n" - " add r0, r4, #0\n" - " add r0, r0, #0x8\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " strh r0, [r3]\n" - "._644:\n" - " ldr r5, ._650 + 4 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r5]\n" - " cmp r0, #0\n" - " bne ._645 @cond_branch\n" - " mov r0, #0x0\n" - " bl debug_sub_8010AAC\n" - " ldr r0, ._650 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - "._645:\n" - " ldr r4, ._650 + 8 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r5, [r5]\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._638:\n" - " ldr r0, ._650 + 20 @ gMain\n" - " ldrh r1, [r0, #0x30]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._646 @cond_branch\n" - " ldr r0, ._650 + 4 @ gUnknown_Debug_030043A0\n" - " ldrb r1, [r0]\n" - " ldr r2, ._650 + 8 @ gUnknown_Debug_030043A4\n" - " mov r8, r2\n" - " add r7, r0, #0\n" - " cmp r1, #0x4\n" - " bne ._648 @cond_branch\n" - " ldrb r0, [r2]\n" - " cmp r0, #0x5\n" - " bhi ._648 @cond_branch\n" - " mov r0, #0x1\n" - " bl debug_sub_8010AAC\n" - " b ._653\n" - "._651:\n" - " .align 2, 0\n" - "._650:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gUnknown_Debug_03004360\n" - " .word gUnknown_Debug_821F424\n" - " .word gMain\n" - "._648:\n" - " mov r4, r8\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r1, [r7]\n" - " add r0, r0, r1\n" - " cmp r0, #0x1e\n" - " bne ._652 @cond_branch\n" - " mov r0, #0x2\n" - " bl debug_sub_8010B80\n" - " b ._653\n" - "._652:\n" - " ldr r4, ._655 @ gUnknown_Debug_2023A76\n" - " lsl r1, r0, #0x1\n" - " ldr r3, ._655 + 4 @ gUnknown_Debug_03004360\n" - " ldrb r2, [r3]\n" - " mov r0, #0x46\n" - " mul r0, r0, r2\n" - " add r1, r1, r0\n" - " add r1, r1, r4\n" - " ldrh r0, [r1]\n" - " sub r0, r0, #0xa\n" - " strh r0, [r1]\n" - " add r6, r3, #0\n" - " ldr r5, ._655 + 8 @ gUnknown_Debug_821F424\n" - " b ._654\n" - "._656:\n" - " .align 2, 0\n" - "._655:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_03004360\n" - " .word gUnknown_Debug_821F424\n" - "._657:\n" - " add r0, r5, #6\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " ldrh r2, [r3]\n" - " add r0, r0, r2\n" - " strh r0, [r3]\n" - "._654:\n" - " mov r1, r8\n" - " ldrb r0, [r1]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r2, [r7]\n" - " add r1, r1, r2\n" - " lsl r2, r1, #0x1\n" - " ldrb r3, [r6]\n" - " mov r0, #0x46\n" - " mul r0, r0, r3\n" - " add r2, r2, r0\n" - " add r3, r2, r4\n" - " mov r0, #0x0\n" - " ldsh r2, [r3, r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r1, r0, #0x1\n" - " add r0, r5, #0\n" - " add r0, r0, #0x8\n" - " add r0, r1, r0\n" - " ldrh r0, [r0]\n" - " cmp r2, r0\n" - " blt ._657 @cond_branch\n" - "._653:\n" - " ldr r5, ._663 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r5]\n" - " cmp r0, #0\n" - " bne ._658 @cond_branch\n" - " mov r0, #0x0\n" - " bl debug_sub_8010AAC\n" - " ldr r0, ._663 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - "._658:\n" - " ldr r4, ._663 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r5, [r5]\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._646:\n" - " ldr r0, ._663 + 8 @ gMain\n" - " ldrh r1, [r0, #0x30]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._659 @cond_branch\n" - " ldr r0, ._663 @ gUnknown_Debug_030043A0\n" - " ldrb r1, [r0]\n" - " ldr r2, ._663 + 4 @ gUnknown_Debug_030043A4\n" - " mov r8, r2\n" - " add r7, r0, #0\n" - " cmp r1, #0x4\n" - " bne ._661 @cond_branch\n" - " ldrb r0, [r2]\n" - " cmp r0, #0x5\n" - " bhi ._661 @cond_branch\n" - " mov r0, #0x1\n" - " bl debug_sub_8010AAC\n" - " b ._666\n" - "._664:\n" - " .align 2, 0\n" - "._663:\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - " .word gMain\n" - "._661:\n" - " mov r4, r8\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r1, [r7]\n" - " add r0, r0, r1\n" - " cmp r0, #0x1e\n" - " bne ._665 @cond_branch\n" - " mov r0, #0x3\n" - " bl debug_sub_8010B80\n" - " b ._666\n" - "._665:\n" - " ldr r4, ._668 @ gUnknown_Debug_2023A76\n" - " lsl r1, r0, #0x1\n" - " ldr r3, ._668 + 4 @ gUnknown_Debug_03004360\n" - " ldrb r2, [r3]\n" - " mov r0, #0x46\n" - " mul r0, r0, r2\n" - " add r1, r1, r0\n" - " add r1, r1, r4\n" - " ldrh r0, [r1]\n" - " add r0, r0, #0xa\n" - " strh r0, [r1]\n" - " add r6, r3, #0\n" - " ldr r5, ._668 + 8 @ gUnknown_Debug_821F424\n" - " b ._667\n" - "._669:\n" - " .align 2, 0\n" - "._668:\n" - " .word gUnknown_Debug_2023A76\n" - " .word gUnknown_Debug_03004360\n" - " .word gUnknown_Debug_821F424\n" - "._670:\n" - " ldrh r0, [r3]\n" - " sub r0, r0, r1\n" - " strh r0, [r3]\n" - "._667:\n" - " mov r2, r8\n" - " ldrb r0, [r2]\n" - " lsl r1, r0, #0x2\n" - " add r1, r1, r0\n" - " ldrb r0, [r7]\n" - " add r1, r1, r0\n" - " lsl r2, r1, #0x1\n" - " ldrb r3, [r6]\n" - " mov r0, #0x46\n" - " mul r0, r0, r3\n" - " add r2, r2, r0\n" - " add r3, r2, r4\n" - " mov r0, #0x0\n" - " ldsh r2, [r3, r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x1\n" - " add r1, r5, #6\n" - " add r0, r0, r1\n" - " ldrh r1, [r0]\n" - " cmp r2, r1\n" - " bgt ._670 @cond_branch\n" - "._666:\n" - " ldr r5, ._672 @ gUnknown_Debug_030043A0\n" - " ldrb r0, [r5]\n" - " cmp r0, #0\n" - " bne ._671 @cond_branch\n" - " mov r0, #0x0\n" - " bl debug_sub_8010AAC\n" - " ldr r0, ._672 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r0]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " add r0, r0, #0x4\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - "._671:\n" - " ldr r4, ._672 + 4 @ gUnknown_Debug_030043A4\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " ldrb r5, [r5]\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_8011EA0\n" - " ldrb r1, [r4]\n" - " lsl r0, r1, #0x2\n" - " add r0, r0, r1\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl debug_sub_80123D8\n" - "._659:\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " add sp, sp, #0x10\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._673:\n" - " .align 2, 0\n" - "._672:\n" - " .word gUnknown_Debug_030043A0\n" - " .word gUnknown_Debug_030043A4\n" - "\n" - ); + s32 r5; + + if (gMain.heldKeysRaw == 0x204) + DoSoftReset(); + if (gMain.newKeysRaw == 4) + { + if (gUnknown_Debug_030043A4 < 6) + { + gUnknown_Debug_030043A8 = 0; + debug_sub_8012628(); + SetMainCallback2(debug_sub_8011498); + } + //_546 + if (gUnknown_Debug_030043A0 == 0 && gUnknown_Debug_030043A4 == 6) + { + gMain.savedCallback = debug_sub_80108B8; + CreateMon( + &gPlayerParty[0], + gUnknown_Debug_2023A76_[0][0][0], + gUnknown_Debug_2023A76_[0][0][1], + 32, + 0, 0, 0, 0); + for (r5 = 0; r5 < 4; r5++) + { + SetMonData(&gPlayerParty[0], MON_DATA_MOVE1 + r5, &gUnknown_Debug_2023B02[0][0][r5]); + SetMonData(&gPlayerParty[0], MON_DATA_PP1 + r5, &gBattleMoves[gUnknown_Debug_2023B02[0][0][r5]].pp); + } + switch (gUnknown_Debug_2023A76_[0][6][0]) + { + case 1: //_550 + gCB2_AfterEvolution = debug_sub_80108B8; + EvolutionScene(&gPlayerParty[0], gUnknown_Debug_2023A76_[0][1][0], 1, 0); + break; + case 2: //_551 + debug_sub_8012688(); + break; + } + } + //_555 + if (gUnknown_Debug_030043A0 == 1 && gUnknown_Debug_030043A4 == 6) + { + // This is really weird + r5 = (gSaveBlock2.optionsBattleSceneOff | (gSaveBlock2.optionsSound << 1)); + r5++; + if (r5 == 4) + r5 = 0; + gSaveBlock2.optionsBattleSceneOff = (r5 & 1); + gSaveBlock2.optionsSound = (r5 & 2) >> 1; + SetPokemonCryStereo(gSaveBlock2.optionsSound); + debug_nullsub_3(); + } + } + //_559 + if (gMain.newKeysRaw == 8) + debug_sub_801174C(); + if (gMain.newKeysRaw == 0x40) + { + debug_sub_80125E4(); + if (gUnknown_Debug_030043A4 != 0) + gUnknown_Debug_030043A4--; + else + gUnknown_Debug_030043A4 = 6; + debug_sub_8011E74(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + debug_sub_80125A0(); + } + //_562 + if (gMain.newKeysRaw == 0x80) + { + debug_sub_80125E4(); + if (gUnknown_Debug_030043A4 == 6) + gUnknown_Debug_030043A4 = 0; + else + gUnknown_Debug_030043A4++; + debug_sub_8011E74(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + debug_sub_80125A0(); + } + //_567 + if (gMain.newKeysRaw == 0x20) + { + debug_sub_80125E4(); + if (gUnknown_Debug_030043A0 != 0) + { + gUnknown_Debug_030043A0--; + } + else + { + if (gUnknown_Debug_03004360 != 0) + { + gUnknown_Debug_03004360 = 0; + gUnknown_Debug_030043A0 = 4; + gBattle_BG1_X = 0; + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + } + } + //_577 + debug_sub_80125A0(); + } + //_572 + if (gMain.newKeysRaw == 0x10) + { + debug_sub_80125E4(); + if (gUnknown_Debug_030043A0 != 4) + { + gUnknown_Debug_030043A0++; + } + else + { + if (gUnknown_Debug_03004360 == 0) + { + gUnknown_Debug_03004360 = 1; + gUnknown_Debug_030043A0 = 0; + gBattle_BG1_X = 0x100; + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + } + } + debug_sub_80125A0(); + } + //_578 + if (gMain.newAndRepeatedKeys & B_BUTTON) + { + switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5) + { + case 31: + debug_sub_8010818(); + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_8012540(); + debug_nullsub_3(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + case 32: + debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC); + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_8012540(); + debug_nullsub_3(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + case 33: + debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC); + break; + case 34: + if (gUnknown_Debug_2023A76_[0][6][4] != 0) + { + gUnknown_Debug_2023A76_[0][6][4]--; + gUnknown_Debug_2023A76_[1][6][4]--; + } + else + { + gUnknown_Debug_2023A76_[0][6][4] = 8; + gUnknown_Debug_2023A76_[1][6][4] = 8; + } + debug_sub_8012540(); + break; + case 30: + debug_sub_8010B80(0); + debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5); + break; + default: + if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6) + { + debug_sub_8010AAC(1); + } + else + { + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]--; + if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4]) + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3]; + } + //_613 + if (gUnknown_Debug_030043A0 == 0) + { + debug_sub_8010AAC(0); + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4); + } + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + } + } + //_607 + if (gMain.newAndRepeatedKeys & A_BUTTON) + { + switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5) + { + case 31: + debug_sub_8010818(); + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_8012540(); + debug_nullsub_3(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + case 32: + debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC); + debug_sub_8011E5C(); + debug_sub_8011E74(); + debug_sub_8012540(); + debug_nullsub_3(); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + case 33: + debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC); + break; + case 34: + if (gUnknown_Debug_2023A76_[0][6][4] < 8) + { + gUnknown_Debug_2023A76_[0][6][4]++; + gUnknown_Debug_2023A76_[1][6][4]++; + } + else + { + gUnknown_Debug_2023A76_[0][6][4] = 0; + gUnknown_Debug_2023A76_[1][6][4] = 0; + } + debug_sub_8012540(); + break; + case 30: + debug_sub_8010B80(1); + debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5); + break; + default: + if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6) + { + debug_sub_8010AAC(1); + } + else + { + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]++; + if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3]) + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4]; + } + //_644 + if (gUnknown_Debug_030043A0 == 0) + { + debug_sub_8010AAC(0); + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4); + } + //_645 + debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + break; + } + } + //_638 + if (gMain.newAndRepeatedKeys & 0x200) + { + if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6) + { + debug_sub_8010AAC(1); + } + //_648 + else + { + if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30) + { + debug_sub_8010B80(2); + } + //_652 + else + { + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= 10; + while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4]) + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3]; + } + } + //_653 + if (gUnknown_Debug_030043A0 == 0) + { + debug_sub_8010AAC(0); + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4); + } + //_658 + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + } + //_646 + if (gMain.newAndRepeatedKeys & 0x100) + { + if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6) + { + debug_sub_8010AAC(1); + } + //_661 + else + { + if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30) + { + debug_sub_8010B80(3); + } + //_665 + else + { + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += 10; + while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3]) + gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3]; + } + } + //_666 + if (gUnknown_Debug_030043A0 == 0) + { + debug_sub_8010AAC(0); + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4); + } + //_671 + debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0); + debug_sub_80123D8(gUnknown_Debug_030043A4 * 5); + } + //_659 + AnimateSprites(); + BuildOamBuffer(); } __attribute__((naked)) -- cgit v1.2.3 From fbf34c79f3a9a290cdaae612d589a1b48411e41f Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 6 Feb 2018 21:30:46 -0800 Subject: Finish decompiling fight.s --- src/battle/anim/fight.c | 364 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 358 insertions(+), 6 deletions(-) (limited to 'src/battle') diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index fcce044ae..b20813fcb 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -1,18 +1,14 @@ #include "global.h" #include "battle_anim.h" -#include "blend_palette.h" -#include "decompress.h" -#include "ewram.h" -#include "palette.h" #include "random.h" #include "rom_8077ABC.h" -#include "scanline_effect.h" -#include "sound.h" #include "sprite.h" +#include "task.h" #include "trig.h" #include "constants/battle_constants.h" extern s16 gBattleAnimArgs[]; +extern u8 gBankAttacker; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u8 gObjectBankIDs[]; @@ -21,6 +17,8 @@ extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; extern u16 gBattlePartyID[]; @@ -34,6 +32,12 @@ static void sub_80D9404(struct Sprite *sprite); static void sub_80D9474(struct Sprite *sprite); static void sub_80D94CC(struct Sprite *sprite); static void sub_80D9524(struct Sprite *sprite); +static void sub_80D9640(struct Sprite *sprite); +static void sub_80D97A0(struct Sprite *sprite); +static void sub_80D986C(struct Sprite *sprite); +static void sub_80D9934(struct Sprite *sprite); +static void sub_80D99F4(struct Sprite *sprite); + void sub_080B08A0(struct Sprite *sprite) { @@ -293,3 +297,351 @@ void sub_80D9540(struct Sprite *sprite) DestroyAnimSprite(sprite); } } + +void sub_80D95D0(struct Sprite *sprite) +{ + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); + sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + } + else + { + sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); + sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); + } + + sprite->pos1.x += gBattleAnimArgs[1]; + sprite->pos1.y += gBattleAnimArgs[2]; + + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[3] = 0; + sprite->callback = sub_80D9640; +} + +static void sub_80D9640(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (--sprite->data[1] == 0) + { + if (sprite->data[2] == 0) + DestroyAnimSprite(sprite); + else + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + sprite->data[3]++; + if (sprite->data[3] & 1) + sprite->pos2.x = 2; + else + sprite->pos2.x = -2; + } + + if (--sprite->data[2] == 0) + DestroyAnimSprite(sprite); + break; + } +} + +void sub_80D96B8(struct Sprite *sprite) +{ + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; + sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; + } + else + { + sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2]; + sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3]; + } + + sprite->oam.tileNum += gBattleAnimArgs[1] * 16; + sprite->data[0] = 0; + + switch (gBattleAnimArgs[1]) + { + case 0: + sprite->data[6] = -3; + sprite->data[7] = -3; + break; + case 1: + sprite->data[6] = 3; + sprite->data[7] = -3; + break; + case 2: + sprite->data[6] = -3; + sprite->data[7] = 3; + break; + case 3: + sprite->data[6] = 3; + sprite->data[7] = 3; + break; + default: + DestroyAnimSprite(sprite); + return; + } + + sprite->callback = sub_80D97A0; +} + +static void sub_80D97A0(struct Sprite *sprite) +{ + sprite->pos1.x += sprite->data[6]; + sprite->pos1.y += sprite->data[7]; + + if (++sprite->data[0] > 40) + DestroyAnimSprite(sprite); +} + +void sub_80D97CC(struct Sprite *sprite) +{ + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBankPosition(gBankAttacker, 2); + sprite->pos1.y = GetBankPosition(gBankAttacker, 3); + sprite->oam.priority = sub_8079ED4(gAnimBankAttacker); + sprite->data[7] = gAnimBankTarget; + } + else + { + sprite->oam.priority = sub_8079ED4(gAnimBankTarget); + sprite->data[7] = gAnimBankAttacker; + } + + sprite->data[0] = 0; + sprite->data[1] = 12; + sprite->data[2] = 8; + sprite->callback = sub_80D986C; +} + +static void sub_80D986C(struct Sprite *sprite) +{ + if (++sprite->data[0] == 180) + { + REG_BLDCNT = 0; + + sprite->data[0] = 16; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBankPosition(sprite->data[7], 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBankPosition(sprite->data[7], 3); + + obj_translate_based_on_private_1_2_3_4(sprite); + StoreSpriteCallbackInData(sprite, move_anim_8074EE0); + sprite->callback = sub_8078BB8; + } +} + +void sub_80D98D8(struct Sprite *sprite) +{ + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = 120; + + sprite->data[0] = gBattleAnimArgs[3]; + sub_8079BF4(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8)); + + sprite->data[6] = gBattleAnimArgs[1]; + sprite->oam.tileNum += gBattleAnimArgs[2] * 4; + + sprite->callback = sub_80D9934; +} + +static void sub_80D9934(struct Sprite *sprite) +{ + void *var0; + + if (sprite->data[0] != 0) + { + var0 = sub_8079BFC(sprite->data[4], sprite->data[5]); + var0 -= sprite->data[6]; + sub_8079BF4(&sprite->data[4], &sprite->data[5], var0); + + var0 = (void *)(((intptr_t)var0) >> 8); + sprite->pos1.y = (intptr_t)var0; + if (sprite->pos1.y < -8) + DestroyAnimSprite(sprite); + else + sprite->data[0]--; + } + else + { + s16 pos0 = GetBankPosition(gAnimBankAttacker, 2); + s16 pos1 = GetBankPosition(gAnimBankAttacker, 3); + s16 pos2 = GetBankPosition(gAnimBankTarget, 2); + s16 pos3 = GetBankPosition(gAnimBankTarget, 3); + + sprite->data[0] = pos2 - pos0; + sprite->data[1] = pos3 - pos1; + sprite->data[2] = sprite->pos1.x << 4; + sprite->data[3] = sprite->pos1.y << 4; + + sprite->callback = sub_80D99F4; + } +} + +static void sub_80D99F4(struct Sprite *sprite) +{ + u16 edgeX; + + sprite->data[2] += sprite->data[0]; + sprite->data[3] += sprite->data[1]; + sprite->pos1.x = sprite->data[2] >> 4; + sprite->pos1.y = sprite->data[3] >> 4; + + edgeX = sprite->pos1.x + 8; + if (edgeX > 256 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + DestroyAnimSprite(sprite); +} + +void sub_80D9A38(struct Sprite *sprite) +{ + u8 bank; + + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBankPosition(gBankAttacker, 2); + sprite->pos1.y = GetBankPosition(gBankAttacker, 3); + bank = gAnimBankTarget; + sprite->oam.priority = sub_8079ED4(gAnimBankAttacker); + } + else + { + bank = gAnimBankAttacker; + sprite->oam.priority = sub_8079ED4(gAnimBankTarget); + } + + if (IsContest()) + sprite->oam.matrixNum |= 0x8; + else if (GetBankSide(bank) == SIDE_PLAYER) + sprite->oam.matrixNum |= 0x18; + + sprite->data[0] = 16; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBankPosition(bank, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBankPosition(bank, 3); + + obj_translate_based_on_private_1_2_3_4(sprite); + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); + sprite->callback = sub_8078BB8; +} + +static void sub_80D9B24(struct Sprite *sprite) +{ + if (sprite->data[0] == sprite->data[4]) + DestroyAnimSprite(sprite); + + sprite->data[0]++; +} + +void sub_80D9B48(struct Sprite *sprite) +{ + u8 turn; + + sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); + sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[0]; + sprite->data[3] = gBattleAnimArgs[1]; + sprite->data[4] = gBattleAnimArgs[2]; + + turn = gAnimMoveTurn; + if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + turn++; + + if (turn & 1) + { + sprite->data[2] = -sprite->data[2]; + sprite->data[1]++; + } + + StartSpriteAnim(sprite, sprite->data[1]); + sprite->pos2.x = sprite->data[2]; + sprite->pos2.y = sprite->data[3]; + sprite->callback = sub_80D9B24; +} + +void sub_80D9BD4(struct Sprite *sprite) +{ + if (gBattleAnimArgs[2] == 0) + sub_80787B0(sprite, 0); + else + sub_8078764(sprite, 0); + + if (IsContest()) + { + StartSpriteAnim(sprite, 2); + } + else if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + { + StartSpriteAnim(sprite, 1); + } + + sprite->callback = sub_8078600; + StoreSpriteCallbackInData(sprite, DestroyAnimSprite); +} + +void sub_80D9C40(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + sprite->data[1] = (sprite->data[1] + 40) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + + if (++sprite->data[0] > 40) + { + DestroyAnimSprite(sprite); + } + } +} + +void sub_80D9C80(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_80789D4(0); + task->data[8] = gBattleAnimArgs[0]; + task->data[0]++; + break; + case 1: + if (--task->data[8] == -1) + task->data[0]++; + break; + case 2: + default: + task->data[9] += 1280; + break; + } + + task->data[10] += 2816; + + if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + gBattle_BG3_X += task->data[9] >> 8; + else + gBattle_BG3_X -= task->data[9] >> 8; + + gBattle_BG3_Y += task->data[10] >> 8; + + task->data[9] &= 0xFF; + task->data[10] &= 0xFF; + + if (gBattleAnimArgs[7] == -1) + { + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + sub_80789D4(1); + DestroyAnimVisualTask(taskId); + } +} -- cgit v1.2.3