diff options
Diffstat (limited to 'asm/mon_markings.s')
-rw-r--r-- | asm/mon_markings.s | 1004 |
1 files changed, 1004 insertions, 0 deletions
diff --git a/asm/mon_markings.s b/asm/mon_markings.s new file mode 100644 index 000000000..762135a92 --- /dev/null +++ b/asm/mon_markings.s @@ -0,0 +1,1004 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80F727C +sub_80F727C: @ 80F727C + ldr r1, _080F7288 @ =gUnknown_020388B8 + str r0, [r1] + movs r1, 0 + strb r1, [r0, 0xB] + bx lr + .align 2, 0 +_080F7288: .4byte gUnknown_020388B8 + thumb_func_end sub_80F727C + + thumb_func_start sub_80F728C +sub_80F728C: @ 80F728C + push {lr} + sub sp, 0x4 + ldr r0, _080F72C4 @ =gSaveBlock2 + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl GetTextWindowFrameGraphics + ldr r3, _080F72C8 @ =gUnknown_020388B8 + ldr r2, [r3] + ldr r1, [r0] + str r1, [r2, 0x28] + ldr r0, [r0, 0x4] + str r0, [r2, 0x2C] + ldr r0, _080F72CC @ =0x000010b0 + adds r2, r0 + movs r1, 0 + strb r1, [r2] + mov r0, sp + strh r1, [r0] + ldr r1, [r3] + adds r1, 0x30 + ldr r2, _080F72D0 @ =0x01000800 + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F72C4: .4byte gSaveBlock2 +_080F72C8: .4byte gUnknown_020388B8 +_080F72CC: .4byte 0x000010b0 +_080F72D0: .4byte 0x01000800 + thumb_func_end sub_80F728C + + thumb_func_start sub_80F72D4 +sub_80F72D4: @ 80F72D4 + push {r4-r7,lr} + ldr r0, _080F72F4 @ =gUnknown_020388B8 + ldr r1, [r0] + ldr r2, _080F72F8 @ =0x000010b0 + adds r0, r1, r2 + ldrb r2, [r0] + lsls r0, r2, 8 + adds r0, 0x30 + adds r5, r1, r0 + cmp r2, 0xD + beq _080F73A4 + cmp r2, 0xD + bgt _080F72FC + cmp r2, 0 + beq _080F7302 + b _080F734C + .align 2, 0 +_080F72F4: .4byte gUnknown_020388B8 +_080F72F8: .4byte 0x000010b0 +_080F72FC: + cmp r2, 0xE + beq _080F73F0 + b _080F734C +_080F7302: + ldr r0, [r1, 0x28] + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7312: + ldr r6, _080F7344 @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x20 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7312 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x40 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r0, _080F7348 @ =0x000010b0 + adds r1, r0 + b _080F7392 + .align 2, 0 +_080F7344: .4byte gUnknown_020388B8 +_080F7348: .4byte 0x000010b0 +_080F734C: + ldr r0, _080F739C @ =gUnknown_020388B8 + ldr r0, [r0] + ldr r0, [r0, 0x28] + adds r0, 0x60 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7362: + ldr r6, _080F739C @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x80 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7362 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xA0 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73A0 @ =0x000010b0 + adds r1, r2 +_080F7392: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F73FC + .align 2, 0 +_080F739C: .4byte gUnknown_020388B8 +_080F73A0: .4byte 0x000010b0 +_080F73A4: + ldr r0, [r1, 0x28] + adds r0, 0xC0 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F73B6: + ldr r6, _080F73F4 @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xE0 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F73B6 + ldr r0, [r6] + ldr r0, [r0, 0x28] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73F8 @ =0x000010b0 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F73F0: + movs r0, 0 + b _080F73FE + .align 2, 0 +_080F73F4: .4byte gUnknown_020388B8 +_080F73F8: .4byte 0x000010b0 +_080F73FC: + movs r0, 0x1 +_080F73FE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F72D4 + + thumb_func_start sub_80F7404 +sub_80F7404: @ 80F7404 + push {lr} + bl sub_80F728C +_080F740A: + bl sub_80F72D4 + lsls r0, 24 + cmp r0, 0 + bne _080F740A + pop {r0} + bx r0 + thumb_func_end sub_80F7404 + + thumb_func_start sub_80F7418 +sub_80F7418: @ 80F7418 + push {r4-r6,lr} + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + ldr r2, _080F746C @ =gUnknown_020388B8 + ldr r3, [r2] + movs r1, 0 + strb r1, [r3, 0x5] + ldr r1, [r2] + strb r0, [r1, 0x4] + movs r3, 0 + adds r4, r2, 0 + movs r2, 0x1 +_080F7434: + ldr r0, [r4] + adds r1, r0, 0x6 + adds r1, r3 + ldrb r0, [r0, 0x4] + asrs r0, r3 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F7434 + bl sub_814A7FC + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + ldr r2, _080F746C @ =gUnknown_020388B8 + ldr r3, [r2] + ldrh r2, [r3] + ldrh r3, [r3, 0x2] + bl sub_80F761C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F746C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7418 + + thumb_func_start sub_80F7470 +sub_80F7470: @ 80F7470 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080F74FC @ =gUnknown_020388B8 +_080F7476: + ldr r0, [r5] + ldrh r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080F7476 + ldr r4, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + movs r4, 0 +_080F74A8: + ldr r0, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r4, 2 + adds r0, 0xC + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F74A8 + movs r4, 0 +_080F74C8: + ldr r5, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x14 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080F74C8 + bl sub_814A7FC + ldr r0, [r5] + ldr r0, [r0, 0x24] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite +_080F74F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F74FC: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7470 + + thumb_func_start sub_80F7500 +sub_80F7500: @ 80F7500 + push {r4,r5,lr} + sub sp, 0x30 + ldr r4, _080F7580 @ =gUnknown_020388B8 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x30 + str r0, [sp, 0x18] + add r1, sp, 0x1C + movs r5, 0 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + ldrh r1, [r2] + mov r0, sp + adds r0, 0x1E + strh r1, [r0] + add r1, sp, 0x20 + ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx + str r0, [sp, 0x20] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x28 + movs r1, 0 + movs r2, 0x8 + bl memset + add r1, sp, 0x18 + mov r0, sp + movs r2, 0x18 + bl memcpy + ldr r0, [r4] + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _080F7558 + mov r0, sp + bl LoadTilesForSpriteSheets + ldr r0, [r4] + strb r5, [r0, 0xB] +_080F7558: + ldr r0, _080F7588 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F758C + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + subs r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + cmp r0, 0 + bge _080F75FE + ldr r1, [r4] + movs r0, 0x5 + strb r0, [r1, 0x5] + b _080F75FE + .align 2, 0 +_080F7580: .4byte gUnknown_020388B8 +_080F7584: .4byte gPokenavConditionMenuMisc_Gfx +_080F7588: .4byte gMain +_080F758C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F75B0 + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + ble _080F75FE + ldr r0, [r4] + strb r5, [r0, 0x5] + b _080F75FE +_080F75B0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080F7602 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + movs r1, 0x5 + ldrsb r1, [r0, r1] + cmp r1, 0x4 + beq _080F75DC + cmp r1, 0x5 + beq _080F7610 + adds r0, 0x6 + adds r1, r0, r1 + movs r2, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F75FC + movs r2, 0x1 + b _080F75FC +_080F75DC: + strb r5, [r0, 0x4] + movs r3, 0 +_080F75E0: + ldr r2, [r4] + adds r0, r2, 0x6 + adds r0, r3 + ldrb r0, [r0] + lsls r0, r3 + ldrb r1, [r2, 0x4] + orrs r0, r1 + strb r0, [r2, 0x4] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F75E0 + b _080F7610 +_080F75FC: + strb r2, [r1] +_080F75FE: + movs r0, 0x1 + b _080F7612 +_080F7602: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080F75FE + movs r0, 0x5 + bl PlaySE +_080F7610: + movs r0, 0 +_080F7612: + add sp, 0x30 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F7500 + + thumb_func_start sub_80F761C +sub_80F761C: @ 80F761C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x5C + adds r5, r2, 0 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4C] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x50] + lsls r5, 16 + lsrs r5, 16 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x54] + ldr r0, _080F7820 @ =gUnknown_020388B8 + mov r8, r0 + ldr r0, [r0] + adds r0, 0x30 + str r0, [sp, 0x1C] + add r1, sp, 0x20 + movs r2, 0 + mov r9, r2 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + mov r0, sp + adds r0, 0x22 + strh r5, [r0] + add r1, sp, 0x24 + ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx + str r0, [sp, 0x24] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + adds r0, r5, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x2C + movs r1, 0 + movs r2, 0x8 + bl memset + add r6, sp, 0x1C + add r0, sp, 0x4 + adds r1, r6, 0 + movs r2, 0x18 + bl memcpy + mov r3, r8 + ldr r0, [r3] + ldr r0, [r0, 0x2C] + str r0, [sp, 0x34] + add r0, sp, 0x38 + add r1, sp, 0x54 + ldrh r1, [r1] + strh r1, [r0] + add r1, sp, 0x3C + ldr r0, _080F7828 @ =gUnknown_08E966B8 + str r0, [sp, 0x3C] + ldr r0, [sp, 0x54] + adds r0, 0x1 + strh r0, [r1, 0x4] + add r0, sp, 0x44 + movs r1, 0 + movs r2, 0x8 + bl memset + add r4, sp, 0x34 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x18 + bl memcpy + strh r5, [r4] + add r2, sp, 0x54 + ldrh r2, [r2] + strh r2, [r4, 0x2] + ldr r0, _080F782C @ =gUnknown_083E5214 + str r0, [r4, 0x4] + ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC + str r0, [r4, 0x8] + mov r3, r9 + str r3, [r4, 0xC] + ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable + str r0, [r4, 0x10] + ldr r0, _080F7838 @ =nullsub_65 + str r0, [r4, 0x14] + mov r0, r8 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0xB] + add r0, sp, 0x4 + bl AllocTilesForSpriteSheets + adds r0, r6, 0 + bl LoadSpritePalettes + movs r5, 0 + ldr r1, [sp, 0x4C] + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 14 + adds r2, r0 + mov r8, r2 + str r0, [sp, 0x58] + ldr r3, [sp, 0x50] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r7, r0, r1 + mov r9, r0 +_080F7700: + adds r0, r4, 0 + mov r2, r8 + asrs r1, r2, 16 + asrs r2, r7, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080F7718 + b _080F7850 +_080F7718: + ldr r6, _080F7820 @ =gUnknown_020388B8 + ldr r2, [r6] + lsls r0, r5, 2 + adds r2, 0xC + adds r2, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F783C @ =gSprites + adds r0, r1 + str r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F7700 + ldr r0, [r6] + ldr r1, [r0, 0x10] + mov r3, r9 + asrs r0, r3, 16 + adds r0, 0x60 + strh r0, [r1, 0x22] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274 + str r0, [r4, 0x8] + ldr r0, _080F7844 @ =sub_80F78CC + str r0, [r4, 0x14] + ldr r0, _080F7848 @ =gUnknown_083E521C + str r0, [r4, 0x4] + movs r5, 0 + ldr r0, [sp, 0x58] + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + mov r10, r0 +_080F7770: + lsls r2, r5, 4 + adds r2, 0x10 + mov r3, r9 + asrs r3, 16 + mov r8, r3 + add r2, r8 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + mov r3, r10 + asrs r1, r3, 16 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7860 + ldr r6, _080F7820 @ =gUnknown_020388B8 + ldr r1, [r6] + lsls r0, r5, 2 + adds r1, 0x14 + adds r1, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r7, _080F783C @ =gSprites + adds r0, r7 + str r0, [r1] + strh r5, [r0, 0x2E] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F7770 + ldr r0, _080F784C @ =SpriteCallbackDummy + str r0, [r4, 0x14] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7874 + ldr r1, [r6] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r7 + str r0, [r1, 0x24] + ldrb r2, [r0, 0x1] + movs r1, 0x3F + ands r1, r2 + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x1] + ldr r0, [r6] + ldr r2, [r0, 0x24] + ldrb r0, [r2, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r2, 0x3] + ldr r0, [r6] + ldr r0, [r0, 0x24] + movs r1, 0x9 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, 0x24] + ldr r3, [sp, 0x58] + asrs r0, r3, 16 + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r2, [r1, 0x24] + mov r0, r8 + adds r0, 0x50 + strh r0, [r2, 0x22] + ldr r0, [r1, 0x24] + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0 + bl CalcCenterToCornerVec + b _080F787A + .align 2, 0 +_080F7820: .4byte gUnknown_020388B8 +_080F7824: .4byte gPokenavConditionMenuMisc_Gfx +_080F7828: .4byte gUnknown_08E966B8 +_080F782C: .4byte gUnknown_083E5214 +_080F7830: .4byte gSpriteAnimTable_83E52AC +_080F7834: .4byte gDummySpriteAffineAnimTable +_080F7838: .4byte nullsub_65 +_080F783C: .4byte gSprites +_080F7840: .4byte gSpriteAnimTable_83E5274 +_080F7844: .4byte sub_80F78CC +_080F7848: .4byte gUnknown_083E521C +_080F784C: .4byte SpriteCallbackDummy +_080F7850: + ldr r0, _080F785C @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0xC + b _080F7868 + .align 2, 0 +_080F785C: .4byte gUnknown_020388B8 +_080F7860: + ldr r0, _080F7870 @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x14 +_080F7868: + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F78B0 + .align 2, 0 +_080F7870: .4byte gUnknown_020388B8 +_080F7874: + ldr r1, [r6] + movs r0, 0 + str r0, [r1, 0x24] +_080F787A: + ldr r4, _080F78C0 @ =gUnknown_020388B8 + ldr r1, [r4] + ldr r0, [sp, 0x50] + adds r0, 0x8 + strb r0, [r1, 0xA] + ldr r1, [sp, 0x54] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x30 + str r0, [sp] + movs r0, 0 + movs r2, 0xF + movs r3, 0 + bl sub_814A5C0 + ldr r0, [sp, 0x4C] + adds r0, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + ldrb r1, [r1, 0xA] + bl sub_814A880 + ldr r0, _080F78C4 @ =sub_80F7908 + bl sub_814AABC +_080F78B0: + add sp, 0x5C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F78C0: .4byte gUnknown_020388B8 +_080F78C4: .4byte sub_80F7908 + thumb_func_end sub_80F761C + + thumb_func_start nullsub_65 +nullsub_65: @ 80F78C8 + bx lr + thumb_func_end nullsub_65 + + thumb_func_start sub_80F78CC +sub_80F78CC: @ 80F78CC + push {lr} + adds r2, r0, 0 + ldr r0, _080F78F4 @ =gUnknown_020388B8 + ldr r0, [r0] + movs r3, 0x2E + ldrsh r1, [r2, r3] + adds r0, 0x6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F78F8 + lsls r1, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080F7902 + .align 2, 0 +_080F78F4: .4byte gUnknown_020388B8 +_080F78F8: + lsls r1, 25 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim +_080F7902: + pop {r0} + bx r0 + thumb_func_end sub_80F78CC + + thumb_func_start sub_80F7908 +sub_80F7908: @ 80F7908 + ldr r1, _080F791C @ =gUnknown_020388B8 + ldr r2, [r1] + movs r1, 0x5 + ldrsb r1, [r2, r1] + lsls r1, 4 + ldrb r2, [r2, 0xA] + adds r1, r2 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F791C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7908 + + thumb_func_start sub_80F7920 +sub_80F7920: @ 80F7920 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7930 + ldr r2, _080F793C @ =gUnknown_083E49F4 +_080F7930: + movs r3, 0x10 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F793C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7920 + + thumb_func_start sub_80F7940 +sub_80F7940: @ 80F7940 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7950 + ldr r2, _080F795C @ =gUnknown_083E49F4 +_080F7950: + movs r3, 0x1 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F795C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7940 + + thumb_func_start sub_80F7960 +sub_80F7960: @ 80F7960 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _080F79DC @ =gUnknown_083E4A14 + str r4, [sp, 0x18] + movs r4, 0x80 + add r5, sp, 0x18 + lsrs r6, r0, 16 + orrs r0, r4 + str r0, [r5, 0x4] + str r2, [sp, 0x20] + ldr r0, _080F79E0 @ =0xffff0000 + mov r8, r0 + add r4, sp, 0x20 + ldr r0, [r4, 0x4] + mov r2, r8 + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + movs r2, 0 + strh r6, [r0] + strh r1, [r0, 0x2] + ldr r0, _080F79E4 @ =gUnknown_083E52B4 + str r0, [sp, 0x4] + ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x10] + ldr r0, _080F79F0 @ =nullsub_65 + str r0, [sp, 0x14] + lsls r3, 23 + lsrs r3, 16 + ldr r0, [r5, 0x4] + mov r1, r8 + ands r0, r1 + orrs r0, r3 + str r0, [r5, 0x4] + adds r0, r5, 0 + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F79F4 + movs r0, 0 + b _080F79FE + .align 2, 0 +_080F79DC: .4byte gUnknown_083E4A14 +_080F79E0: .4byte 0xffff0000 +_080F79E4: .4byte gUnknown_083E52B4 +_080F79E8: .4byte gSpriteAnimTable_83E533C +_080F79EC: .4byte gDummySpriteAffineAnimTable +_080F79F0: .4byte nullsub_65 +_080F79F4: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F7A0C @ =gSprites + adds r0, r1 +_080F79FE: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F7A0C: .4byte gSprites + thumb_func_end sub_80F7960 + + thumb_func_start sub_80F7A10 +sub_80F7A10: @ 80F7A10 + lsls r0, 24 + lsrs r0, 17 + ldr r2, _080F7A28 @ =gUnknown_083E4A14 + adds r0, r2 + ldr r2, _080F7A2C @ =0x040000d4 + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080F7A30 @ =0x80000040 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + bx lr + .align 2, 0 +_080F7A28: .4byte gUnknown_083E4A14 +_080F7A2C: .4byte 0x040000d4 +_080F7A30: .4byte 0x80000040 + thumb_func_end sub_80F7A10 + + .align 2, 0 @ Don't pad with nop. |