diff options
Diffstat (limited to 'asm/mail.s')
-rw-r--r-- | asm/mail.s | 892 |
1 files changed, 892 insertions, 0 deletions
diff --git a/asm/mail.s b/asm/mail.s new file mode 100644 index 000000000..5a3efbf69 --- /dev/null +++ b/asm/mail.s @@ -0,0 +1,892 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80F890C +sub_80F890C: @ 80F890C + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r2, _080F8958 @ =0x02000000 + adds r1, r2, 0 + adds r1, 0xFF + movs r0, 0x2 + strb r0, [r1] + adds r0, 0xFE + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x82 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F895C @ =sub_80EB3FC + str r0, [r1] + movs r0, 0x84 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F8960 @ =ConvertEasyChatWordsToString + str r0, [r1] + ldrh r1, [r4, 0x20] + adds r0, r1, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _080F8964 + subs r1, 0x79 + adds r0, r2, 0 + adds r0, 0xFA + strb r1, [r0] + b _080F896E + .align 2, 0 +_080F8958: .4byte 0x02000000 +_080F895C: .4byte sub_80EB3FC +_080F8960: .4byte ConvertEasyChatWordsToString +_080F8964: + adds r1, r2, 0 + adds r1, 0xFA + movs r0, 0 + strb r0, [r1] + movs r5, 0 +_080F896E: + ldr r1, _080F8994 @ =0x02000000 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8980 + cmp r0, 0x1 + beq _080F899C +_080F8980: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F8998 @ =gUnknown_083E5730 + b _080F89AC + .align 2, 0 +_080F8994: .4byte 0x02000000 +_080F8998: .4byte gUnknown_083E5730 +_080F899C: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F89DC @ =gUnknown_083E57A4 +_080F89AC: + adds r0, r1 + str r0, [r2] + ldrh r0, [r4, 0x1E] + mov r1, sp + bl sub_80A2D64 + lsls r0, 16 + ldr r1, _080F89E0 @ =0xffff0000 + adds r0, r1 + movs r1, 0xCD + lsls r1, 17 + cmp r0, r1 + bhi _080F89F8 + ldr r0, _080F89E4 @ =0x02000000 + adds r1, r0, 0 + adds r1, 0xFA + ldrb r2, [r1] + adds r1, r0, 0 + cmp r2, 0x6 + beq _080F89E8 + cmp r2, 0x9 + beq _080F89F0 + b _080F89FA + .align 2, 0 +_080F89DC: .4byte gUnknown_083E57A4 +_080F89E0: .4byte 0xffff0000 +_080F89E4: .4byte 0x02000000 +_080F89E8: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x1 + b _080F8A00 +_080F89F0: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x2 + b _080F8A00 +_080F89F8: + ldr r1, _080F8A20 @ =0x02000000 +_080F89FA: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0 +_080F8A00: + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0xF4 + str r4, [r0] + subs r0, 0x8 + str r6, [r0] + adds r0, 0xC + strb r5, [r0] + ldr r0, _080F8A24 @ =sub_80F8D50 + bl SetMainCallback2 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8A20: .4byte 0x02000000 +_080F8A24: .4byte sub_80F8D50 + thumb_func_end sub_80F890C + + thumb_func_start sub_80F8A28 +sub_80F8A28: @ 80F8A28 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _080F8A44 @ =gMain + ldr r1, _080F8A48 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x12 + bls _080F8A3A + b _080F8D3C +_080F8A3A: + lsls r0, 2 + ldr r1, _080F8A4C @ =_080F8A50 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F8A44: .4byte gMain +_080F8A48: .4byte 0x0000043c +_080F8A4C: .4byte _080F8A50 + .align 2, 0 +_080F8A50: + .4byte _080F8A9C + .4byte _080F8AB0 + .4byte _080F8AC8 + .4byte _080F8ACE + .4byte _080F8AD4 + .4byte _080F8ADA + .4byte _080F8B10 + .4byte _080F8B1C + .4byte _080F8B28 + .4byte _080F8B34 + .4byte _080F8B3A + .4byte _080F8B54 + .4byte _080F8B78 + .4byte _080F8BA0 + .4byte _080F8C14 + .4byte _080F8C2C + .4byte _080F8C58 + .4byte _080F8CBC + .4byte _080F8CC6 +_080F8A9C: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + b _080F8D30 +_080F8AB0: + add r1, sp, 0x4 + movs r0, 0 + strh r0, [r1] + movs r1, 0xE0 + lsls r1, 19 + ldr r2, _080F8AC4 @ =0x01000200 + add r0, sp, 0x4 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8AC4: .4byte 0x01000200 +_080F8AC8: + bl ResetPaletteFade + b _080F8D30 +_080F8ACE: + bl ResetTasks + b _080F8D30 +_080F8AD4: + bl ResetSpriteData + b _080F8D30 +_080F8ADA: + bl FreeAllSpritePalettes + ldr r0, _080F8B0C @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x32 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _080F8D30 + .align 2, 0 +_080F8B0C: .4byte REG_BG0HOFS +_080F8B10: + ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC + bl SetUpWindowConfig + b _080F8D30 + .align 2, 0 +_080F8B18: .4byte gWindowConfig_81E6DFC +_080F8B1C: + ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC + bl MultistepInitMenuWindowBegin + b _080F8D30 + .align 2, 0 +_080F8B24: .4byte gWindowConfig_81E6DFC +_080F8B28: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F8B32 + b _080F8D30 +_080F8B32: + b _080F8D3C +_080F8B34: + bl MenuZeroFillScreen + b _080F8D30 +_080F8B3A: + mov r0, sp + adds r0, 0x6 + movs r1, 0x1 + strh r1, [r0] + ldr r1, _080F8B4C @ =0x06004800 + ldr r2, _080F8B50 @ =0x01000400 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8B4C: .4byte 0x06004800 +_080F8B50: .4byte 0x01000400 +_080F8B54: + ldr r2, _080F8B70 @ =gMailGraphicsTable + ldr r0, _080F8B74 @ =0x02000000 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + b _080F8D30 + .align 2, 0 +_080F8B70: .4byte gMailGraphicsTable +_080F8B74: .4byte 0x02000000 +_080F8B78: + ldr r2, _080F8B94 @ =gMailGraphicsTable + ldr r0, _080F8B98 @ =0x02000000 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, _080F8B9C @ =0x06004000 + bl LZ77UnCompVram + b _080F8D30 + .align 2, 0 +_080F8B94: .4byte gMailGraphicsTable +_080F8B98: .4byte 0x02000000 +_080F8B9C: .4byte 0x06004000 +_080F8BA0: + ldr r5, _080F8C00 @ =gMailGraphicsTable + ldr r4, _080F8C04 @ =0x02000000 + adds r4, 0xFA + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r3, _080F8C08 @ =gPlttBufferUnfaded + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x10] + movs r2, 0xF1 + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x12] + adds r2, 0xE + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F8C0C @ =gUnknown_083E562C + ldr r2, _080F8C10 @ =gSaveBlock2 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x14] + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x16] + b _080F8D30 + .align 2, 0 +_080F8C00: .4byte gMailGraphicsTable +_080F8C04: .4byte 0x02000000 +_080F8C08: .4byte gPlttBufferUnfaded +_080F8C0C: .4byte gUnknown_083E562C +_080F8C10: .4byte gSaveBlock2 +_080F8C14: + ldr r0, _080F8C28 @ =0x02000000 + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8C20 + b _080F8D30 +_080F8C20: + bl sub_80F8DA0 + b _080F8D30 + .align 2, 0 +_080F8C28: .4byte 0x02000000 +_080F8C2C: + ldr r0, _080F8C4C @ =0x02000000 + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8C3A + bl sub_80F8E80 +_080F8C3A: + ldr r0, _080F8C50 @ =sub_80F8F18 + bl SetVBlankCallback + ldr r2, _080F8C54 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + b _080F8D30 + .align 2, 0 +_080F8C4C: .4byte 0x02000000 +_080F8C50: .4byte sub_80F8F18 +_080F8C54: .4byte gPaletteFade +_080F8C58: + ldr r5, _080F8C7C @ =0x02000000 + adds r0, r5, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x1 + beq _080F8C80 + cmp r0, 0x2 + beq _080F8C98 + b _080F8D30 + .align 2, 0 +_080F8C7C: .4byte 0x02000000 +_080F8C80: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8C94 @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x60 + b _080F8CA8 + .align 2, 0 +_080F8C94: .4byte SpriteCallbackDummy +_080F8C98: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8CB8 @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x28 +_080F8CA8: + movs r3, 0x80 + bl sub_809D3A4 + adds r1, r5, 0 + adds r1, 0xFC + strb r0, [r1] + b _080F8D30 + .align 2, 0 +_080F8CB8: .4byte SpriteCallbackDummy +_080F8CBC: + bl sub_8055870 + cmp r0, 0x1 + bne _080F8D30 + b _080F8D3C +_080F8CC6: + ldr r1, _080F8D14 @ =REG_BG0CNT + ldr r2, _080F8D18 @ =0x00009f08 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D1C @ =0x00000801 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D20 @ =0x00000902 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + subs r1, 0x50 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _080F8D24 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080F8D28 @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8D2C @ =sub_80F8F58 + str r1, [r0] + movs r0, 0x1 + b _080F8D3E + .align 2, 0 +_080F8D14: .4byte REG_BG0CNT +_080F8D18: .4byte 0x00009f08 +_080F8D1C: .4byte 0x00000801 +_080F8D20: .4byte 0x00000902 +_080F8D24: .4byte gPaletteFade +_080F8D28: .4byte 0x02000000 +_080F8D2C: .4byte sub_80F8F58 +_080F8D30: + ldr r1, _080F8D48 @ =gMain + ldr r0, _080F8D4C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F8D3C: + movs r0, 0 +_080F8D3E: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F8D48: .4byte gMain +_080F8D4C: .4byte 0x0000043c + thumb_func_end sub_80F8A28 + + thumb_func_start sub_80F8D50 +sub_80F8D50: @ 80F8D50 + push {lr} +_080F8D52: + bl sub_80F8A28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D6C + ldr r0, _080F8D68 @ =sub_80F8F2C + bl SetMainCallback2 + b _080F8D78 + .align 2, 0 +_080F8D68: .4byte sub_80F8F2C +_080F8D6C: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D52 +_080F8D78: + pop {r0} + bx r0 + thumb_func_end sub_80F8D50 + + thumb_func_start sub_80F8D7C +sub_80F8D7C: @ 80F8D7C + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + adds r0, r4, 0 + bl sub_814A568 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F8D7C + + thumb_func_start sub_80F8DA0 +sub_80F8DA0: @ 80F8DA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r5, 0 + ldr r2, _080F8E3C @ =0x02000000 + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + ldrb r0, [r0] + cmp r5, r0 + bcs _080F8E04 + mov r8, r2 + adds r7, r1, 0 +_080F8DBE: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + subs r0, r5 + add r0, r8 + mov r1, r8 + adds r1, 0xF4 + lsls r2, r6, 1 + ldr r1, [r1] + adds r1, r2 + ldr r2, [r7] + ldr r2, [r2, 0x4] + lsls r4, r5, 2 + adds r2, r4, r2 + ldr r2, [r2] + lsls r2, 28 + lsrs r2, 30 + movs r3, 0x1 + bl ConvertEasyChatWordsToString + ldr r1, [r7] + ldr r0, [r1, 0x4] + adds r4, r0 + ldr r0, [r4] + lsls r0, 28 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r1, [r1] + cmp r5, r1 + bcc _080F8DBE +_080F8E04: + ldr r2, _080F8E40 @ =0x020000d8 + adds r4, r2, 0 + subs r4, 0xD8 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8E48 + ldr r1, [r2, 0x1C] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + adds r2, r0, 0 + ldr r1, _080F8E44 @ =gOtherText_From + bl StringCopy + ldr r0, _080F8E40 @ =0x020000d8 + bl StringLength + movs r2, 0x86 + lsls r2, 1 + adds r1, r4, r2 + ldr r1, [r1] + ldrb r1, [r1, 0x2] + subs r1, r0 + b _080F8E6A + .align 2, 0 +_080F8E3C: .4byte 0x02000000 +_080F8E40: .4byte 0x020000d8 +_080F8E44: .4byte gOtherText_From +_080F8E48: + ldr r1, _080F8E7C @ =gOtherText_From + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r1, [r0] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + movs r1, 0x86 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + ldrb r1, [r0, 0x2] +_080F8E6A: + adds r0, r4, 0 + adds r0, 0xF9 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8E7C: .4byte gOtherText_From + thumb_func_end sub_80F8DA0 + + thumb_func_start sub_80F8E80 +sub_80F8E80: @ 80F8E80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r4, 0 + ldr r1, _080F8F10 @ =0x02000000 + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + ldrb r0, [r0] + cmp r4, r0 + bcs _080F8EF6 + mov r8, r1 + adds r7, r2, 0 +_080F8E9E: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r0, r4 + mov r1, r8 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0xFF + beq _080F8EE8 + cmp r0, 0 + beq _080F8EE8 + ldr r2, [r7] + ldr r1, [r2, 0x4] + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + lsls r3, r0, 24 + lsrs r3, 28 + lsls r0, 30 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r2, [r2, 0x3] + lsrs r1, r2, 4 + adds r1, r3 + lsls r2, 28 + lsrs r2, 28 + adds r2, r6, r2 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + adds r0, r6, 0x2 + lsls r0, 24 + lsrs r6, r0, 24 +_080F8EE8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r7] + ldrb r0, [r0] + cmp r4, r0 + bcc _080F8E9E +_080F8EF6: + ldr r0, _080F8F14 @ =0x020000d8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + ldr r2, [r0, 0x34] + ldrb r2, [r2, 0x1] + bl MenuPrint + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8F10: .4byte 0x02000000 +_080F8F14: .4byte 0x020000d8 + thumb_func_end sub_80F8E80 + + thumb_func_start sub_80F8F18 +sub_80F8F18: @ 80F8F18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_80F8F18 + + thumb_func_start sub_80F8F2C +sub_80F8F2C: @ 80F8F2C + push {r4,lr} + ldr r4, _080F8F54 @ =0x02000000 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0 + beq _080F8F42 + bl AnimateSprites + bl BuildOamBuffer +_080F8F42: + adds r0, r4, 0 + adds r0, 0xF0 + ldr r0, [r0] + bl _call_via_r0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8F54: .4byte 0x02000000 + thumb_func_end sub_80F8F2C + + thumb_func_start sub_80F8F58 +sub_80F8F58: @ 80F8F58 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F8F6C + ldr r0, _080F8F70 @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8F74 @ =sub_80F8F78 + str r1, [r0] +_080F8F6C: + pop {r0} + bx r0 + .align 2, 0 +_080F8F70: .4byte 0x02000000 +_080F8F74: .4byte sub_80F8F78 + thumb_func_end sub_80F8F58 + + thumb_func_start sub_80F8F78 +sub_80F8F78: @ 80F8F78 + push {lr} + sub sp, 0x4 + ldr r0, _080F8FA8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080F8FA0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080F8FAC @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8FB0 @ =sub_80F8FB4 + str r1, [r0] +_080F8FA0: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F8FA8: .4byte gMain +_080F8FAC: .4byte 0x02000000 +_080F8FB0: .4byte sub_80F8FB4 + thumb_func_end sub_80F8F78 + + thumb_func_start sub_80F8FB4 +sub_80F8FB4: @ 80F8FB4 + push {r4,lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F9012 + ldr r4, _080F9018 @ =0x02000000 + adds r0, r4, 0 + adds r0, 0xEC + ldr r0, [r0] + bl SetMainCallback2 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x2 + bgt _080F9002 + cmp r0, 0x1 + blt _080F9002 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r0, 16 + bl sub_809D608 + adds r0, r4, 0 + adds r0, 0xFC + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F901C @ =gSprites + adds r0, r1 + bl sub_809D510 +_080F9002: + ldr r0, _080F9018 @ =0x02000000 + movs r2, 0x88 + lsls r2, 1 + movs r1, 0 + bl memset + bl ResetPaletteFade +_080F9012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9018: .4byte 0x02000000 +_080F901C: .4byte gSprites + thumb_func_end sub_80F8FB4 + + .align 2, 0 @ Don't pad with nop. |