diff options
Diffstat (limited to 'asm/starter_choose.s')
-rw-r--r-- | asm/starter_choose.s | 985 |
1 files changed, 985 insertions, 0 deletions
diff --git a/asm/starter_choose.s b/asm/starter_choose.s new file mode 100644 index 000000000..b510499ea --- /dev/null +++ b/asm/starter_choose.s @@ -0,0 +1,985 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8133EDC +sub_8133EDC: @ 8133EDC + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _08133EE8 + movs r1, 0 +_08133EE8: + ldr r0, =gUnknown_085B1DF8 + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .pool + thumb_func_end sub_8133EDC + + thumb_func_start sub_8133EF8 +sub_8133EF8: @ 8133EF8 + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + pop {r0} + bx r0 + thumb_func_end sub_8133EF8 + + thumb_func_start set_256color_bg_bg0 +set_256color_bg_bg0: @ 8133F0C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0xC + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0xE + movs r1, 0 + bl SetGpuReg + movs r0, 0xC + movs r1, 0 + bl SetGpuReg + movs r0, 0xA + movs r1, 0 + bl SetGpuReg + movs r0, 0x8 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + add r1, sp, 0x4 + movs r0, 0 + strh r0, [r1] + ldr r2, =0x040000d4 + str r1, [r2] + movs r1, 0xC0 + lsls r1, 19 + str r1, [r2, 0x4] + ldr r0, =0x8100c000 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0 + mov r9, r0 + str r0, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r2] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, =0x85000100 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + add r0, sp, 0x4 + mov r3, r9 + strh r3, [r0] + str r0, [r2] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, =0x81000200 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, =gUnknown_085B0E04 + bl LZ77UnCompVram + ldr r0, =gUnknown_085B0A80 + ldr r1, =0x06003000 + bl LZ77UnCompVram + ldr r0, =gUnknown_085B0C0C + ldr r1, =0x06003800 + bl LZ77UnCompVram + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_085B1E00 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r0, =gUnknown_085B1DCC + bl InitWindows + bl DeactivateAllTextPrinters + movs r1, 0xAA + lsls r1, 2 + movs r0, 0 + movs r2, 0xD0 + bl sub_809882C + bl clear_scheduled_bg_copies_to_vram + bl remove_some_task + bl ResetTasks + bl ResetAllObjectData + bl sub_80A1A74 + bl ResetObjectPaletteAllocator + bl dp13_810BB8C + bl sub_8098C64 + movs r1, 0xE0 + movs r2, 0x20 + bl gpu_pal_apply + ldr r0, =gUnknown_085B0A00 + movs r1, 0 + movs r2, 0x40 + bl gpu_pal_apply + ldr r0, =gUnknown_085B1ED8 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085B1EE8 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085B1EF8 + bl LoadTaggedObjectPalettes + movs r0, 0x1 + negs r0, r0 + mov r1, r9 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + movs r0, 0x1 + bl EnableInterrupts + ldr r0, =sub_8133EF8 + bl SetVBlankCallback + ldr r0, =sub_81341E0 + bl SetMainCallback2 + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x1F + bl SetGpuReg + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0xFE + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x7 + bl SetGpuReg + movs r1, 0xC1 + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + ldr r0, =sub_81341FC + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r3, 0x1 + mov r10, r3 + mov r1, r10 + strh r1, [r0, 0x8] + ldr r0, =gUnknown_085B1F10 + movs r1, 0x78 + movs r2, 0x38 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x02020630 + mov r8, r3 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + strh r4, [r1, 0x2E] + ldr r6, =gUnknown_085B1F28 + ldr r5, =gUnknown_085B1DEC + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + adds r0, r6, 0 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + strh r4, [r1, 0x2E] + mov r0, r9 + strh r0, [r1, 0x30] + ldrb r1, [r5, 0x2] + ldrb r2, [r5, 0x3] + adds r0, r6, 0 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + strh r4, [r1, 0x2E] + mov r3, r10 + strh r3, [r1, 0x30] + ldrb r1, [r5, 0x4] + ldrb r2, [r5, 0x5] + adds r0, r6, 0 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + strh r4, [r1, 0x2E] + movs r0, 0x2 + strh r0, [r1, 0x30] + ldr r1, =0x030011f8 + movs r0, 0xFF + strh r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end set_256color_bg_bg0 + + thumb_func_start sub_81341E0 +sub_81341E0: @ 81341E0 + push {lr} + bl RunTasks + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl do_scheduled_bg_tilemap_copies_to_vram + bl fade_and_return_progress_probably + pop {r0} + bx r0 + thumb_func_end sub_81341E0 + + thumb_func_start sub_81341FC +sub_81341FC: @ 81341FC + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x03005e00 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x8] + bl sub_81344C8 + movs r2, 0xAA + lsls r2, 2 + movs r0, 0 + movs r1, 0 + movs r3, 0xD + bl SetWindowBorderStyle + ldr r2, =gUnknown_085E8C53 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =sub_813425C + str r0, [r4] + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81341FC + + thumb_func_start sub_813425C +sub_813425C: @ 813425C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r6, r0, r2 + ldrh r7, [r6, 0x8] + ldrb r4, [r6, 0x8] + ldr r1, =0x030022c0 + ldrh r3, [r1, 0x2E] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _081342F8 + bl sub_8134604 + ldr r0, =gUnknown_085B1F40 + ldr r1, =gUnknown_085B1DEC + lsls r2, r4, 1 + adds r3, r2, r1 + ldrb r5, [r3] + adds r1, 0x1 + adds r2, r1 + ldrb r4, [r2] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xC] + ldrh r0, [r6, 0x8] + bl sub_8133EDC + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8134690 + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x02020630 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r4, 0 + adds r2, 0x10 + adds r2, r1, r2 + ldr r3, =gUnknown_085B1ED0 + str r3, [r2] + adds r4, 0x1C + adds r1, r4 + ldr r2, =sub_8134774 + str r2, [r1] + strh r0, [r6, 0xA] + ldr r0, =sub_8134340 + str r0, [r6] + b _08134334 + .pool +_081342F8: + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _08134314 + cmp r4, 0 + beq _08134314 + subs r0, r7, 0x1 + strh r0, [r6, 0x8] + ldr r0, =sub_8134640 + str r0, [r6] + b _08134334 + .pool +_08134314: + ldrh r1, [r1, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08134334 + cmp r4, 0x1 + bhi _08134334 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + ldr r1, =sub_8134640 + str r1, [r0] +_08134334: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_813425C + + thumb_func_start sub_8134340 +sub_8134340: @ 8134340 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x02020630 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0813437E + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x78 + bne _0813437E + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x40 + bne _0813437E + ldr r0, =sub_8134390 + str r0, [r2] +_0813437E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134340 + + thumb_func_start sub_8134390 +sub_8134390: @ 8134390 + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x03005e00 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x8] + bl sub_8133EDC + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl cry_related + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, =gUnknown_085E8C90 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gUnknown_085B1DDC + movs r1, 0xAA + lsls r1, 2 + movs r2, 0xD + movs r3, 0 + bl CreateYesNoMenu + ldr r0, =sub_8134400 + str r0, [r4] + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134390 + + thumb_func_start sub_8134400 +sub_8134400: @ 8134400 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08134426 + cmp r1, 0 + bgt _08134420 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08134450 + b _0813449A +_08134420: + cmp r1, 0x1 + beq _08134450 + b _0813449A +_08134426: + ldr r2, =0x020375f0 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strh r0, [r2] + bl dp13_810BB8C + ldr r0, =0x030022c0 + ldr r0, [r0, 0x8] + bl SetMainCallback2 + b _0813449A + .pool +_08134450: + movs r0, 0x5 + bl audio_play + ldr r0, =0x03005e00 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + ldrb r4, [r5, 0xA] + ldr r6, =0x02020630 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl rotscale_free_entry + adds r0, r4, 0 + bl sub_818D820 + ldrb r0, [r5, 0xC] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r6 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl rotscale_free_entry + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + ldr r0, =sub_81344AC + str r0, [r5] +_0813449A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134400 + + thumb_func_start sub_81344AC +sub_81344AC: @ 81344AC + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =sub_81341FC + str r0, [r1] + bx lr + .pool + thumb_func_end sub_81344AC + + thumb_func_start sub_81344C8 +sub_81344C8: @ 81344C8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x34 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + bl sub_8133EDC + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + add r1, sp, 0xC + bl sub_81DB468 + movs r0, 0xB + adds r1, r4, 0 + muls r1, r0 + mov r9, r1 + ldr r0, =gSpeciesNames + add r9, r0 + ldr r0, =gUnknown_085B1DE4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x2C] + str r1, [sp, 0x30] + ldr r3, =gUnknown_085B1DF2 + lsls r5, 1 + adds r2, r5, r3 + mov r10, r2 + ldrb r0, [r2] + lsls r0, 8 + ldr r1, =0xffff00ff + ldr r2, [sp, 0x2C] + ands r2, r1 + orrs r2, r0 + str r2, [sp, 0x2C] + adds r3, 0x1 + adds r5, r3 + ldrb r1, [r5] + lsls r1, 16 + ldr r0, =0xff00ffff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x2C] + add r0, sp, 0x2C + bl AddWindow + ldr r4, =0x030011f8 + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x7 + add r1, sp, 0xC + movs r2, 0x68 + bl GetStringCenterAlignXOffset + adds r2, r0, 0 + ldrb r0, [r4] + lsls r2, 24 + lsrs r2, 24 + ldr r1, =gUnknown_085B1E0C + mov r8, r1 + str r1, [sp] + movs r6, 0 + str r6, [sp, 0x4] + add r1, sp, 0xC + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0x1 + bl box_print + movs r0, 0x1 + mov r1, r9 + movs r2, 0x68 + bl GetStringCenterAlignXOffset + adds r2, r0, 0 + ldrb r0, [r4] + lsls r2, 24 + lsrs r2, 24 + mov r1, r8 + str r1, [sp] + str r6, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x11 + bl box_print + ldrb r0, [r4] + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + mov r2, r10 + ldrb r1, [r2] + lsls r0, r1, 27 + movs r2, 0xFC + lsls r2, 24 + adds r0, r2 + adds r1, 0xD + lsls r1, 3 + adds r1, 0x4 + lsls r1, 24 + ldrb r4, [r5] + lsls r5, r4, 27 + lsrs r5, 24 + adds r4, 0x4 + lsls r4, 27 + lsrs r4, 24 + lsrs r1, 8 + orrs r1, r0 + lsrs r1, 16 + movs r0, 0x40 + bl SetGpuReg + lsls r5, 8 + orrs r5, r4 + movs r0, 0x44 + adds r1, r5, 0 + bl SetGpuReg + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81344C8 + + thumb_func_start sub_8134604 +sub_8134604: @ 8134604 + push {r4,lr} + ldr r4, =0x030011f8 + ldrb r0, [r4] + movs r1, 0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0xFF + strh r0, [r4] + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134604 + + thumb_func_start sub_8134640 +sub_8134640: @ 8134640 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8134604 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_8134668 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134640 + + thumb_func_start sub_8134668 +sub_8134668: @ 8134668 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x03005e00 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x8] + bl sub_81344C8 + ldr r0, =sub_813425C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134668 + + thumb_func_start sub_8134690 +sub_8134690: @ 8134690 + push {lr} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + str r1, [sp] + str r2, [sp, 0x4] + movs r1, 0xE + str r1, [sp, 0x8] + ldr r1, =0x0000ffff + str r1, [sp, 0xC] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x1 + bl sub_818D3E4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x02020630 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x5] + add sp, 0x10 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8134690 + + thumb_func_start sub_81346DC +sub_81346DC: @ 81346DC + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gUnknown_085B1E28 + ldr r3, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r0, 1 + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r4, 0x22] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl sine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x4 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81346DC + + thumb_func_start sub_813473C +sub_813473C: @ 813473C + push {lr} + adds r3, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _08134768 + adds r0, r3, 0 + movs r1, 0x1 + bl StartObjectImageAnimIfDifferent + b _08134770 + .pool +_08134768: + adds r0, r3, 0 + movs r1, 0 + bl StartObjectImageAnimIfDifferent +_08134770: + pop {r0} + bx r0 + thumb_func_end sub_813473C + + thumb_func_start sub_8134774 +sub_8134774: @ 8134774 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x78 + ble _08134786 + subs r0, r2, 0x4 + strh r0, [r1, 0x20] +_08134786: + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _08134794 + adds r0, r2, 0x4 + strh r0, [r1, 0x20] +_08134794: + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x40 + ble _081347A2 + subs r0, r2, 0x2 + strh r0, [r1, 0x22] +_081347A2: + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x3F + bgt _081347B0 + adds r0, r2, 0x2 + strh r0, [r1, 0x22] +_081347B0: + pop {r0} + bx r0 + thumb_func_end sub_8134774 + + .align 2, 0 @ Don't pad with nop. |