diff options
Diffstat (limited to 'src/battle/battle_2.c')
-rw-r--r-- | src/battle/battle_2.c | 4501 |
1 files changed, 4474 insertions, 27 deletions
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 2ad2adb04..b8ad21869 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1,5 +1,12 @@ #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 "gba/flash_internal.h" #include "battle.h" #include "battle_ai.h" #include "battle_interface.h" @@ -7,6 +14,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" @@ -14,6 +22,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" @@ -24,9 +33,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" @@ -36,10 +43,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 @@ -64,9 +67,15 @@ struct UnknownStruct12 u8 filler4[0x54]; }; +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[]; @@ -79,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; @@ -176,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); @@ -244,7 +253,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); @@ -261,7 +277,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(); @@ -383,6 +403,7 @@ void sub_800EC9C(void) { u8 playerId; u8 enemyId; + s32 id; RunTasks(); AnimateSprites(); @@ -402,6 +423,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; } @@ -416,7 +447,6 @@ void sub_800EC9C(void) case 1: if ((GetBlockReceivedStatus() & 3) == 3) { - s32 id; u8 taskId; ResetBlockReceivedFlags(); @@ -566,6 +596,7 @@ void sub_800F104(void) u8 playerId; MainCallback *pSavedCallback; u16 *pSavedBattleTypeFlags; + s32 i; playerId = GetMultiplayerId(); ewram160CB = playerId; @@ -579,17 +610,30 @@ void sub_800F104(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) + if (gReceivedRemoteLinkPlayers != 0) { - sub_800F02C(); - SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); - gBattleCommunication[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 (IsLinkTaskFinished()) + { + sub_800F02C(); + SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); + gBattleCommunication[0]++; + } } break; case 1: if ((GetBlockReceivedStatus() & 0xF) == 0xF) { - s32 i; + //s32 i; ResetBlockReceivedFlags(); for (i = 0; i < 4; i++) @@ -639,14 +683,27 @@ void sub_800F298(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) + 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 (IsLinkTaskFinished()) + { + gBattleStruct->unk0 = 1; + gBattleStruct->unk1 = 1; + sub_800E9EC(); + sub_800EAAC(); + SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20); + gBattleCommunication[0]++; + } } break; case 1: @@ -898,6 +955,29 @@ 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(); @@ -1275,6 +1355,3966 @@ 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); +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_nullsub_3(void); +void debug_sub_80125A0(void); +u32 debug_sub_8013294(u8, void *, u32); +void debug_sub_80132C8(u8, void *, u32); + +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; +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_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) +{ + debug_sub_8010818(); + debug_sub_80108B8(); + *(u32 *)(gBattleBuffersTransferData + 0x100) = 0; +} + +void debug_sub_8010818(void) +{ + s32 i; + + gUnknown_Debug_2023A76[0][0] = 0x115; + gUnknown_Debug_2023A76[1][0] = 0x115; + for (i = 1; i < 31; i++) + { + 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[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]; + } + } +} + +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[0][0x22] == 8) + { + debug_sub_801174C(); + } + else + { + for (i = 0; i < 8; i++) + gSharedMem[0x160B4 + i] = 0; + } +} + +void debug_sub_8010A7C(u8 a, u8 b) +{ + s32 i; + + for (i = 0; i < b; i++) + gBattleTextBuff1[i] = a; + gBattleTextBuff1[i] = EOS; +} + +// 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) +{ + 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 + +void debug_sub_8010B80(u8 a) +{ + 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)) +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 @ 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" + ); +} + +__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 @ 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" + " 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 @ gMain\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 @ debug_sub_8010CAC\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 @ 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 @ gMain\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 @ 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 @ 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 @ gUnknown_Debug_2023B02\n" + " mov r8, r0\n" + " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n" + " ldrb r4, [r6]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl __udivsi3\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\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 @ gUnknown_Debug_821F564\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 @ 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 @ gUnknown_Debug_2023B02\n" + " mov r8, r1\n" + " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n" + " ldrb r4, [r6]\n" + " lsl r4, r4, #0x1\n" + " mov r0, r9\n" + " mov r1, #0x5\n" + " bl __udivsi3\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\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 @ gUnknown_Debug_821F564\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 @ 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 @ 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" + " mov r1, #0x5\n" + " bl __udivsi3\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r2, ._687 + 24 @ gUnknown_Debug_03004360\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 @ gUnknown_Debug_821F564\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_Debug_2023B02\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_821F564\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 __udivsi3\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 @ 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 @ 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" + " mov r1, #0x5\n" + " bl __udivsi3\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x15\n" + " add r4, r4, r0\n" + " ldr r2, ._692 + 12 @ gUnknown_Debug_03004360\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 @ gUnknown_Debug_821F564\n" + " b ._691\n" + "._693:\n" + " .align 2, 0\n" + "._692:\n" + " .word gMain\n" + " .word gUnknown_Debug_2023B02\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_821F564\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 __udivsi3\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 @ gUnknown_020297ED\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 @ gSaveBlock2\n" + " lsl r1, r6, #0x1\n" + " add r1, r1, r6\n" + " lsl r1, r1, #0x1\n" + " ldr r0, ._704 + 8 @ str_821F631\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 @ gUnknown_Debug_2023A76\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 @ 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 @ gUnknown_02023A14_50\n" + " mov r0, #0x8\n" + " strb r0, [r1]\n" + " ldr r1, ._704 + 28 @ gBattleTerrain\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 @ 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 @ 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 @ 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 @ gUnknown_Debug_2023A76\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 str_821F631\n" + " .word gUnknown_Debug_2023A76\n" + " .word gBattleTypeFlags\n" + " .word gUnknown_Debug_821F598\n" + " .word gUnknown_02023A14_50\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 __divsi3\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\n" + " ldr r1, ._719 @ gEnemyParty\n" + " add r0, r0, r1\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 @ gUnknown_Debug_2023A76\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 __divsi3\n" + " mov r2, #0x64\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._719 @ gEnemyParty\n" + " add r5, r1, r0\n" + " ldr r4, ._719 + 8 @ gUnknown_Debug_2023A7A\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_Debug_2023A76\n" + " .word gUnknown_Debug_2023A7A\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 __divsi3\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\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 @ 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 @ gUnknown_Debug_2023A76\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_Debug_2023A76\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 __divsi3\n" + " mov r2, #0x64\n" + " mul r0, r0, r2\n" + " ldr r1, ._741 @ gPlayerParty\n" + " add r0, r0, r1\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 @ gUnknown_Debug_2023ABC\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 @ gPlayerPartyCount\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 __divsi3\n" + " mov r2, #0x64\n" + " add r1, r0, #0\n" + " mul r1, r1, r2\n" + " ldr r0, ._741 @ gPlayerParty\n" + " add r4, r1, r0\n" + " ldr r0, ._741 + 12 @ gUnknown_Debug_2023AC0\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 @ gUnknown_Debug_2023A76\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 @ gUnknown_Debug_2023ABC\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_Debug_2023ABC\n" + " .word gPlayerPartyCount\n" + " .word gUnknown_Debug_2023AC0\n" + " .word gUnknown_Debug_2023A76\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 __divsi3\n" + " mov r2, #0x64\n" + " mul r0, r0, r2\n" + " ldr r1, ._750 @ gPlayerParty\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 @ gUnknown_Debug_2023ABC\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 __divsi3\n" + " mov r3, #0x64\n" + " mul r0, r0, r3\n" + " ldr r1, ._750 @ gPlayerParty\n" + " add r0, r0, r1\n" + " mov r1, #0x7\n" + " ldr r2, ._750 + 8 @ Str_821F649\n" + " bl SetMonData\n" + " ldr r2, ._750 + 12 @ gUnknown_02023A14_50\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 @ gUnknown_Debug_2023B02\n" + " mov r9, r1\n" + " ldr r2, ._750 @ gPlayerParty\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 @ gEnemyParty\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 @ gEnemyParty\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 @ gBattleMoves\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 @ gUnknown_Debug_2023B32\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 @ 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 @ gBattleMoves\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 @ gUnknown_Debug_2023A76\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 @ gUnknown_02023A14_50\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_Debug_2023ABC\n" + " .word Str_821F649\n" + " .word gUnknown_02023A14_50\n" + " .word gUnknown_Debug_2023B02\n" + " .word gEnemyParty\n" + " .word gBattleMoves+0x4\n" + " .word gUnknown_Debug_2023B32\n" + " .word gUnknown_Debug_2023A76\n" + "._748:\n" + " cmp r0, #0x7\n" + " bne ._752 @cond_branch\n" + " ldr r0, ._754 @ gUnknown_02023A14_50\n" + " ldrb r1, [r0]\n" + " mov r2, #0x20\n" + " b ._753\n" + "._755:\n" + " .align 2, 0\n" + "._754:\n" + " .word gUnknown_02023A14_50\n" + "._752:\n" + " cmp r0, #0x6\n" + " bne ._756 @cond_branch\n" + " ldr r2, ._759 @ gUnknown_02023A14_50\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 @ gSharedMem\n" + " sub r1, r1, #0x2\n" + " ldr r3, ._759 + 8 @ 0x160a3\n" + " add r0, r0, r3\n" + " b ._761\n" + "._760:\n" + " .align 2, 0\n" + "._759:\n" + " .word gUnknown_02023A14_50\n" + " .word gSharedMem\n" + " .word 0x160a3\n" + "._757:\n" + " ldr r0, ._762 @ gSharedMem\n" + " ldr r2, ._762 + 4 @ 0x160a3\n" + " add r0, r0, r2\n" + " b ._761\n" + "._763:\n" + " .align 2, 0\n" + "._762:\n" + " .word gSharedMem\n" + " .word 0x160a3\n" + "._756:\n" + " cmp r0, #0x5\n" + " bne ._764 @cond_branch\n" + " ldr r0, ._766 @ gUnknown_02023A14_50\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_50\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 @ gUnknown_02023A14_50\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 @ 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 @ gMain\n" + " ldr r1, ._772 + 8 @ debug_sub_80108B8\n" + " str r1, [r0, #0x8]\n" + " ldr r0, ._772 + 12 @ unref_sub_800D684\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 @ gUnknown_Debug_821F5AC\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_50\n" + " .word gMain\n" + " .word debug_sub_80108B8+1\n" + " .word unref_sub_800D684+1\n" + " .word gUnknown_Debug_821F5AC\n" + "\n" + ); +} + +void debug_sub_8011D40(void) +{ + 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() +{ +} + +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(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +void debug_sub_8011E5C(void) +{ + s32 i; + + for (i = 0; i < 31; i++) + debug_sub_8011EA0(i); +} + +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(); + + gUnknown_Debug_030043A8 = r5; +} + +__attribute__((naked)) +void debug_sub_8011EA0(u8 a) +{ + 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 @ 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" + " 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 @ 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 @ gUnknown_Debug_03004370\n" + " bl Text_PrintWindow8002F44\n" + " ldr r1, ._823 + 12 @ gUnknown_Debug_2023A76\n" + " mov sl, r1\n" + " lsl r4, r7, #0x1\n" + " ldr r5, ._823 + 16 @ gUnknown_Debug_03004360\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 @ gUnknown_Debug_03004370\n" + " add r1, r6, #0\n" + " bl Text_InitWindow\n" + " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n" + " bl Text_PrintWindow8002F44\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 @ 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 @ 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 @ gUnknown_Debug_03004370\n" + " bl Text_PrintWindow8002F44\n" + " b ._848\n" + "._824:\n" + " .align 2, 0\n" + "._823:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_Debug_821F424\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_Debug_2023A76\n" + " .word gUnknown_Debug_03004360\n" + " .word gSpeciesNames\n" + "._817:\n" + " ldr r6, ._826 @ gBattleTextBuff1\n" + " ldr r3, ._826 + 4 @ gUnknown_Debug_2023A76\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._826 + 8 @ gUnknown_Debug_03004360\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_Debug_2023A76\n" + " .word gUnknown_Debug_03004360\n" + "._814:\n" + " mov r0, #0x0\n" + " mov r1, #0x18\n" + " bl debug_sub_8010A7C\n" + " ldr r6, ._830 @ gUnknown_Debug_03004370\n" + " ldr r1, ._830 + 4 @ gBattleTextBuff1\n" + " mov sl, r1\n" + " ldr r4, ._830 + 8 @ gUnknown_Debug_821F424\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 Text_InitWindow\n" + " add r0, r6, #0\n" + " bl Text_PrintWindow8002F44\n" + " lsl r4, r7, #0x1\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 @ gUnknown_Debug_2023A76\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 Text_InitWindow\n" + " add r0, r6, #0\n" + " bl Text_PrintWindow8002F44\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 @ gUnknown_Debug_2023A76\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 gUnknown_Debug_821F424\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_2023A76\n" + "._828:\n" + " ldr r1, ._833 @ Str_821F624\n" + " mov r0, sl\n" + " bl StringAppend\n" + "._829:\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" + " 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 Text_InitWindow\n" + " add r0, r6, #0\n" + " bl Text_PrintWindow8002F44\n" + " b ._848\n" + "._834:\n" + " .align 2, 0\n" + "._833:\n" + " .word Str_821F624\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_Debug_821F424\n" + "._816:\n" + " mov r0, #0x0\n" + " mov r1, #0x4\n" + " bl debug_sub_8010A7C\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" + " 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 Text_InitWindow\n" + " add r0, r5, #0\n" + " bl Text_PrintWindow8002F44\n" + " mov r4, #0x0\n" + " ldr r3, ._839 + 12 @ gUnknown_Debug_2023A76\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._839 + 16 @ gUnknown_Debug_03004360\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 gUnknown_Debug_821F424\n" + " .word gUnknown_Debug_2023A76\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 @ gBattleTextBuff1\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 @ 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" + " 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 Text_InitWindow\n" + " add r0, r5, #0\n" + " bl Text_PrintWindow8002F44\n" + " b ._848\n" + "._850:\n" + " .align 2, 0\n" + "._849:\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_Debug_821F424\n" + "._815:\n" + " ldr r6, ._851 @ gBattleTextBuff1\n" + " ldr r3, ._851 + 4 @ gUnknown_Debug_2023A76\n" + " lsl r1, r7, #0x1\n" + " ldr r0, ._851 + 8 @ gUnknown_Debug_03004360\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 @ 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" + " 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 Text_InitWindow\n" + " add r0, r5, #0\n" + " bl Text_PrintWindow8002F44\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_Debug_2023A76\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_Debug_821F424\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 @ 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" + " 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 @ gUnknown_Debug_03004370\n" + " mov sl, r0\n" + " ldr r1, ._854 + 12 @ gBattleTextBuff1\n" + " mov r9, r1\n" + " ldr r2, ._854 + 16 @ gUnknown_Debug_821F564\n" + " mov r8, r2\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 @ gUnknown_Debug_821F566\n" + " add r1, r0, r3\n" + " ldrb r3, [r1]\n" + " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r9\n" + " bl Text_InitWindow\n" + " mov r0, sl\n" + " bl Text_PrintWindow8002F44\n" + " ldrb r4, [r7]\n" + " lsl r4, r4, #0x1\n" + " add r0, r5, #0\n" + " mov r1, #0x5\n" + " bl __udivsi3\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 @ 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 @ gUnknown_Debug_2023B02\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 Text_InitWindow\n" + " mov r0, sl\n" + " bl Text_PrintWindow8002F44\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 @ 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 @ gMoveNames\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 @ gUnknown_Debug_821F566\n" + " add r1, r0, r3\n" + " ldrb r3, [r1]\n" + " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " str r0, [sp]\n" + " mov r0, sl\n" + " mov r1, r9\n" + " bl Text_InitWindow\n" + " mov r0, sl\n" + " bl Text_PrintWindow8002F44\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 gUnknown_Debug_821F564\n" + " .word gUnknown_Debug_030043A8\n" + " .word gUnknown_Debug_821F566\n" + " .word gUnknown_Debug_821F568\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_2023B02\n" + " .word gMoveNames\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80123D8(u8 a) +{ + 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 @ gUnknown_Debug_03004370\n" + " ldr r0, ._858 + 4 @ gBattleTextBuff1\n" + " mov r8, r0\n" + " ldr r6, ._858 + 8 @ gUnknown_Debug_821F58C\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 Text_InitWindow\n" + " add r0, r4, #0\n" + " bl Text_PrintWindow8002F44\n" + " lsl r5, r5, #0x1\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 @ 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 @ 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 @ gAbilityNames\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 Text_InitWindow\n" + " add r0, r4, #0\n" + " bl Text_PrintWindow8002F44\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 Text_InitWindow\n" + " add r0, r4, #0\n" + " bl Text_PrintWindow8002F44\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 @ 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 @ 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 @ gAbilityNames\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 Text_InitWindow\n" + " add r0, r4, #0\n" + " bl Text_PrintWindow8002F44\n" + " b ._857\n" + "._859:\n" + " .align 2, 0\n" + "._858:\n" + " .word gUnknown_Debug_03004370\n" + " .word gBattleTextBuff1\n" + " .word gUnknown_Debug_821F58C\n" + " .word gUnknown_Debug_03004360\n" + " .word gUnknown_Debug_2023A76\n" + " .word gBaseStats\n" + " .word gAbilityNames\n" + "._856:\n" + " ldr r6, ._860 @ gBattleTextBuff1\n" + " ldr r1, ._860 + 4 @ gAbilityNames\n" + " add r0, r6, #0\n" + " bl StringCopy\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" + " str r0, [sp]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl Text_InitWindow\n" + " add r0, r5, #0\n" + " bl Text_PrintWindow8002F44\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 Text_InitWindow\n" + " add r0, r5, #0\n" + " bl Text_PrintWindow8002F44\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 gUnknown_Debug_821F58C\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8012540() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add sp, sp, #0xfffffffc\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" + " add r0, r5, #0\n" + " mov r2, #0x0\n" + " mov r3, #0x1\n" + " bl ConvertIntToDecimalStringN\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" + " 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 Text_InitWindow\n" + " add r0, r4, #0\n" + " bl Text_PrintWindow8002F44\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_Debug_2023A76\n" + " .word gUnknown_Debug_03004370\n" + " .word gUnknown_Debug_821F424\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 @ 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 @ gUnknown_Debug_03004360\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 gSharedMem\n" + " .word gUnknown_Debug_821F680\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 @ 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 @ gUnknown_Debug_03004360\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 gSharedMem\n" + " .word gUnknown_Debug_821F680\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 @ 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" + ); +} + +__attribute__((naked)) +void debug_sub_8012658() +{ + 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" + ); +} + +__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 @ 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" + ); +} + +void debug_sub_8012878(void) +{ + 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); + 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); +} + +void debug_sub_8012938(u8 taskId) +{ + 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]; +} + +void debug_sub_80129F8(u8 taskId) +{ + 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); +} + +void debug_sub_8012AC0(s8 a, u8 taskId) +{ + 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); +} + +void debug_sub_8012B2C(u8 a) +{ + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 1; + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 2; +} + +void debug_sub_8012B4C(u8 a) +{ + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 0x1016; + *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 0x1016; +} + +void debug_sub_8012B70(u8 taskId, u8 b) +{ + 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) +{ + if (IdentifyFlash() == 0) + return 0; + else + return 1; +} + +u32 debug_sub_8013258(u16 sectorNum, u8 *data, u32 size) +{ + while (1) + { + if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) + return 0; + if (size <= 0x1000) + break; + size -= 0x1000; + data += 0x1000; + sectorNum++; + } + return 1; +} + +u32 debug_sub_8013294(u8 sectorNum, void *data, u32 size) +{ + u32 result; + + if (debug_sub_8013240() != 0) + return 0; + m4aSoundVSyncOff(); + result = debug_sub_8013258(sectorNum, data, size); + m4aSoundVSyncOn(); + return result; +} + +void debug_sub_80132C8(u8 a, void *b, u32 c) +{ + if (debug_sub_8013240() == 0) + ReadFlash(a, 0, b, c); +} +#endif + void oac_poke_opponent(struct Sprite *sprite) { sprite->callback = sub_8010278; @@ -1554,12 +5594,68 @@ void sub_8010800(void) gBattleMainFunc = bc_8012FAC; } -void sub_8010824(void) +#if DEBUG +void debug_sub_80138CC(void) { - gBattleMainFunc(); + 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 - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) - gBattleBankFunc[gActiveBank](); +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) @@ -1662,6 +5758,10 @@ void sub_8010874(void) gBattleResults.pokeString2[i] = 0; gBattleResults.caughtNick[i] = 0; } +#if DEBUG + gSharedMem[0x1609E] = 0; + gSharedMem[0x1609F] = 0; +#endif } void SwitchInClearSetData(void) @@ -4049,6 +8149,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; @@ -4141,9 +8586,11 @@ void SetActionsAndBanksTurnOrder(void) } } } + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; eFocusPunchBank = 0; } +#endif static void TurnValuesCleanUp(bool8 var0) { |