.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80F39B4 sub_80F39B4: @ 80F39B4 push {r4,lr} ldr r4, _080F39E0 @ =gUnknown_203AB40 movs r0, 0x20 bl AllocZeroed str r0, [r4] bl ResetTasks ldr r1, [r4] movs r0, 0xFF strb r0, [r1, 0x2] ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x1D] bl ResetSpriteData ldr r0, _080F39E4 @ =sub_80F39E8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080F39E0: .4byte gUnknown_203AB40 _080F39E4: .4byte sub_80F39E8 thumb_func_end sub_80F39B4 thumb_func_start sub_80F39E8 sub_80F39E8: @ 80F39E8 push {lr} bl sub_80F3BD0 adds r1, r0, 0 cmp r1, 0x1 beq _080F3A16 cmp r1, 0x1 bgt _080F39FE cmp r1, 0 beq _080F3A04 b _080F3A68 _080F39FE: cmp r1, 0x2 beq _080F3A4C b _080F3A68 _080F3A04: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade b _080F3A68 _080F3A16: ldr r0, _080F3A28 @ =gUnknown_203AB40 ldr r0, [r0] ldrb r0, [r0, 0x1D] ands r1, r0 cmp r1, 0 beq _080F3A2C bl sub_80574A4 b _080F3A3C .align 2, 0 _080F3A28: .4byte gUnknown_203AB40 _080F3A2C: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade _080F3A3C: ldr r0, _080F3A48 @ =gUnknown_203AB40 ldr r1, [r0] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] b _080F3A68 .align 2, 0 _080F3A48: .4byte gUnknown_203AB40 _080F3A4C: movs r0, 0x80 lsls r0, 7 bl FlagClear ldr r1, _080F3A6C @ =gUnknown_2031DD8 movs r0, 0 strb r0, [r1] ldr r0, _080F3A70 @ =gUnknown_203AB40 ldr r0, [r0] bl Free movs r0, 0xFF bl SoftReset _080F3A68: pop {r0} bx r0 .align 2, 0 _080F3A6C: .4byte gUnknown_2031DD8 _080F3A70: .4byte gUnknown_203AB40 thumb_func_end sub_80F39E8 thumb_func_start sub_80F3A74 sub_80F3A74: @ 80F3A74 push {lr} movs r1, 0x80 lsls r1, 7 movs r0, 0 bl ClearGpuRegBits movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldr r1, _080F3AA0 @ =0x00001f3f movs r0, 0x48 bl SetGpuReg movs r0, 0x4A movs r1, 0xE bl SetGpuReg pop {r0} bx r0 .align 2, 0 _080F3AA0: .4byte 0x00001f3f thumb_func_end sub_80F3A74 thumb_func_start sub_80F3AA4 sub_80F3AA4: @ 80F3AA4 push {lr} movs r0, 0x50 movs r1, 0xCE bl SetGpuReg movs r1, 0x82 lsls r1, 3 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0xA bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80F3AA4 thumb_func_start sub_80F3AC4 sub_80F3AC4: @ 80F3AC4 push {r4,lr} ldr r0, _080F3AFC @ =gUnknown_8410E08 bl AddWindow ldr r4, _080F3B00 @ =gUnknown_203AB40 ldr r1, [r4] strb r0, [r1, 0xA] ldr r0, [r4] ldrb r0, [r0, 0xA] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r4] ldrb r0, [r0, 0xA] bl PutWindowTilemap ldr r0, [r4] ldrb r0, [r0, 0xA] movs r1, 0x3 bl CopyWindowToVram ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0xB] pop {r4} pop {r0} bx r0 .align 2, 0 _080F3AFC: .4byte gUnknown_8410E08 _080F3B00: .4byte gUnknown_203AB40 thumb_func_end sub_80F3AC4 thumb_func_start sub_80F3B04 sub_80F3B04: @ 80F3B04 push {r4,lr} ldr r4, _080F3B28 @ =gUnknown_203AB40 ldr r1, [r4] ldrb r0, [r1, 0xB] cmp r0, 0 beq _080F3B20 ldrb r0, [r1, 0xA] bl RemoveWindow bl CleanupOverworldWindowsAndTilemaps ldr r1, [r4] movs r0, 0 strb r0, [r1, 0xB] _080F3B20: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3B28: .4byte gUnknown_203AB40 thumb_func_end sub_80F3B04 thumb_func_start sub_80F3B2C sub_80F3B2C: @ 80F3B2C push {r4,r5,lr} ldr r5, _080F3B40 @ =gUnknown_203AB40 ldr r0, [r5] ldrb r4, [r0, 0x1] cmp r4, 0 beq _080F3B44 cmp r4, 0x1 beq _080F3B5E _080F3B3C: movs r0, 0 b _080F3BB0 .align 2, 0 _080F3B40: .4byte gUnknown_203AB40 _080F3B44: movs r0, 0x80 lsls r0, 7 bl FlagSet ldr r1, _080F3BB8 @ =gUnknown_2031DD8 movs r0, 0x2 strb r0, [r1] ldr r0, [r5] strb r4, [r0, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] _080F3B5E: ldr r0, _080F3BBC @ =gUnknown_203AB40 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C ldr r2, _080F3BC0 @ =gUnknown_8414588 ldrb r1, [r1, 0x9] lsls r1, 2 adds r1, r2 ldr r1, [r1] movs r2, 0 bl sub_805750C cmp r0, 0 beq _080F3B3C bl sub_80F3AC4 movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r1, _080F3BC4 @ =0x0000247c movs r0, 0x44 bl SetGpuReg bl sub_80F3A74 bl sub_80F3AA4 movs r0, 0xF0 bl Menu_LoadStdPalAt ldr r0, _080F3BC8 @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 adds r0, r2 movs r1, 0 strh r1, [r0] ldr r0, _080F3BCC @ =gPlttBufferFaded adds r0, r2 strh r1, [r0] movs r0, 0x1 _080F3BB0: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F3BB8: .4byte gUnknown_2031DD8 _080F3BBC: .4byte gUnknown_203AB40 _080F3BC0: .4byte gUnknown_8414588 _080F3BC4: .4byte 0x0000247c _080F3BC8: .4byte gPlttBufferUnfaded _080F3BCC: .4byte gPlttBufferFaded thumb_func_end sub_80F3B2C thumb_func_start sub_80F3BD0 sub_80F3BD0: @ 80F3BD0 push {r4-r7,lr} sub sp, 0x24 ldr r1, _080F3BEC @ =gUnknown_203AB40 ldr r0, [r1] ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0x12 bls _080F3BE2 b _080F4180 _080F3BE2: lsls r0, 2 ldr r1, _080F3BF0 @ =_080F3BF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F3BEC: .4byte gUnknown_203AB40 _080F3BF0: .4byte _080F3BF4 .align 2, 0 _080F3BF4: .4byte _080F3C40 .4byte _080F3C64 .4byte _080F3C98 .4byte _080F3CEE .4byte _080F3D0A .4byte _080F3D48 .4byte _080F3D6A .4byte _080F3EB4 .4byte _080F3F24 .4byte _080F3F84 .4byte _080F3FC4 .4byte _080F3FF0 .4byte _080F400A .4byte _080F4084 .4byte _080F40B8 .4byte _080F40D0 .4byte _080F4100 .4byte _080F4118 .4byte _080F4170 _080F3C40: bl sub_80F3A74 movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r1, _080F3C5C @ =0x00004f51 movs r0, 0x44 bl SetGpuReg ldr r0, _080F3C60 @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x1 b _080F413C .align 2, 0 _080F3C5C: .4byte 0x00004f51 _080F3C60: .4byte gUnknown_203AB40 _080F3C64: bl sub_80F3AA4 bl sub_80F3AC4 movs r0, 0xF0 bl Menu_LoadStdPalAt ldr r0, _080F3C8C @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 adds r0, r2 movs r1, 0 strh r1, [r0] ldr r0, _080F3C90 @ =gPlttBufferFaded adds r0, r2 strh r1, [r0] ldr r0, _080F3C94 @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x2 b _080F413C .align 2, 0 _080F3C8C: .4byte gPlttBufferUnfaded _080F3C90: .4byte gPlttBufferFaded _080F3C94: .4byte gUnknown_203AB40 _080F3C98: movs r0, 0x44 bl GetGpuReg add r1, sp, 0x14 lsls r0, 16 lsrs r0, 24 strh r0, [r1] movs r0, 0x44 bl GetGpuReg add r2, sp, 0x14 movs r1, 0xFF ands r1, r0 strh r1, [r2, 0x2] adds r0, r2, 0 ldrh r0, [r0] cmp r0, 0x24 bne _080F3CCC ldr r0, _080F3CC8 @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x4] movs r0, 0x3 b _080F413C .align 2, 0 _080F3CC8: .4byte gUnknown_203AB40 _080F3CCC: add r1, sp, 0x14 subs r0, 0x1 strh r0, [r1] adds r2, r1, 0 adds r0, r1, 0 ldrh r1, [r0, 0x2] adds r1, 0x1 strh r1, [r2, 0x2] ldrh r0, [r0] lsls r0, 8 adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg b _080F3D06 _080F3CEE: ldr r1, [r7] ldrh r0, [r1, 0x4] cmp r0, 0 bne _080F3D52 movs r0, 0 bl sub_80F4930 ldr r0, [r7] movs r1, 0x64 strh r1, [r0, 0x4] movs r1, 0x4 strb r1, [r0] _080F3D06: movs r0, 0 b _080F4182 _080F3D0A: ldr r1, [r7] ldrh r0, [r1, 0x4] adds r2, r0, 0 cmp r2, 0 bne _080F3D52 movs r0, 0xB4 lsls r0, 1 strh r0, [r1, 0x4] ldrb r0, [r1, 0xA] movs r1, 0x1 str r1, [sp] movs r1, 0x2 str r1, [sp, 0x4] ldr r1, _080F3D40 @ =gUnknown_8410E00 str r1, [sp, 0x8] str r2, [sp, 0xC] ldr r1, _080F3D44 @ =gUnknown_841D198 str r1, [sp, 0x10] movs r1, 0x1 movs r2, 0x8 movs r3, 0x29 bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x5 b _080F413C .align 2, 0 _080F3D40: .4byte gUnknown_8410E00 _080F3D44: .4byte gUnknown_841D198 _080F3D48: ldr r1, [r7] ldrh r0, [r1, 0x4] adds r4, r0, 0 cmp r4, 0 beq _080F3D58 _080F3D52: subs r0, 0x1 strh r0, [r1, 0x4] b _080F3D06 _080F3D58: bl sub_80F3B04 ldr r0, [r7] movs r1, 0x6 strb r1, [r0] ldr r0, [r7] strh r4, [r0, 0x4] strh r4, [r0, 0x6] b _080F3D06 _080F3D6A: ldr r2, [r7] ldrh r0, [r2, 0x4] cmp r0, 0 beq _080F3D7A subs r0, 0x1 strh r0, [r2, 0x4] ldrb r0, [r2, 0x8] b _080F4182 _080F3D7A: ldr r1, _080F3D94 @ =gUnknown_8410CF4 ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bls _080F3D8A b _080F3E94 _080F3D8A: lsls r0, 2 ldr r1, _080F3D98 @ =_080F3D9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F3D94: .4byte gUnknown_8410CF4 _080F3D98: .4byte _080F3D9C .align 2, 0 _080F3D9C: .4byte _080F3DB4 .4byte _080F3DE0 .4byte _080F3E10 .4byte _080F3E30 .4byte _080F3E58 .4byte _080F3E8C _080F3DB4: movs r0, 0x80 lsls r0, 8 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r4, _080F3DDC @ =gUnknown_203AB40 ldr r1, [r4] movs r0, 0x7 strb r0, [r1] ldr r0, [r4] ldrb r0, [r0, 0xA] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r4] ldrb r0, [r0, 0x8] b _080F4182 .align 2, 0 _080F3DDC: .4byte gUnknown_203AB40 _080F3DE0: ldr r2, _080F3E04 @ =gUnknown_203AB40 ldr r1, [r2] movs r0, 0xA strb r0, [r1] ldr r2, [r2] ldr r1, _080F3E08 @ =gUnknown_8410CF4 ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strb r0, [r2, 0x9] ldr r2, _080F3E0C @ =0x3fffffff movs r0, 0x1 movs r1, 0 bl sub_807A944 b _080F3E94 .align 2, 0 _080F3E04: .4byte gUnknown_203AB40 _080F3E08: .4byte gUnknown_8410CF4 _080F3E0C: .4byte 0x3fffffff _080F3E10: ldr r2, _080F3E28 @ =gUnknown_203AB40 ldr r1, [r2] movs r0, 0xC strb r0, [r1] ldr r2, [r2] ldr r1, _080F3E2C @ =gUnknown_8410CF4 ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strb r0, [r2, 0x9] b _080F3E94 .align 2, 0 _080F3E28: .4byte gUnknown_203AB40 _080F3E2C: .4byte gUnknown_8410CF4 _080F3E30: ldr r2, _080F3E50 @ =gUnknown_203AB40 ldr r1, [r2] movs r0, 0xD strb r0, [r1] ldr r2, [r2] ldr r1, _080F3E54 @ =gUnknown_8410CF4 ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strb r0, [r2, 0x9] movs r0, 0x1 movs r1, 0 bl fade_screen b _080F3E94 .align 2, 0 _080F3E50: .4byte gUnknown_203AB40 _080F3E54: .4byte gUnknown_8410CF4 _080F3E58: ldr r2, _080F3E84 @ =gUnknown_203AB40 ldr r1, [r2] movs r3, 0 movs r0, 0xF strb r0, [r1] ldr r2, [r2] ldr r1, _080F3E88 @ =gUnknown_8410CF4 ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strb r0, [r2, 0x9] movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080F3E94 .align 2, 0 _080F3E84: .4byte gUnknown_203AB40 _080F3E88: .4byte gUnknown_8410CF4 _080F3E8C: ldr r0, _080F3EAC @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x11 strb r0, [r1] _080F3E94: ldr r0, _080F3EAC @ =gUnknown_203AB40 ldr r1, [r0] ldr r2, _080F3EB0 @ =gUnknown_8410CF4 ldrh r0, [r1, 0x6] lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2] strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _080F3D06 .align 2, 0 _080F3EAC: .4byte gUnknown_203AB40 _080F3EB0: .4byte gUnknown_8410CF4 _080F3EB4: ldr r0, _080F3F14 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080F3FBA add r3, sp, 0x14 ldr r5, _080F3F18 @ =gUnknown_84145BC ldr r4, _080F3F1C @ =gUnknown_8410CF4 ldr r2, [r7] ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x8] strh r0, [r3] ldrb r0, [r2, 0xA] str r6, [sp] str r6, [sp, 0x4] ldr r1, _080F3F20 @ =gUnknown_8410E00 str r1, [sp, 0x8] movs r1, 0x1 negs r1, r1 str r1, [sp, 0xC] ldrh r1, [r2, 0x6] lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r5 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x1 movs r2, 0x2 movs r3, 0x6 bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x8 b _080F3FB8 .align 2, 0 _080F3F14: .4byte gPaletteFade _080F3F18: .4byte gUnknown_84145BC _080F3F1C: .4byte gUnknown_8410CF4 _080F3F20: .4byte gUnknown_8410E00 _080F3F24: add r4, sp, 0x14 ldr r3, _080F3F78 @ =gUnknown_84145BC ldr r5, _080F3F7C @ =gUnknown_8410CF4 ldr r2, [r7] ldrh r0, [r2, 0x6] lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x8] movs r1, 0 strh r0, [r4] ldrb r0, [r2, 0xA] str r1, [sp] str r1, [sp, 0x4] ldr r1, _080F3F80 @ =gUnknown_8410E04 str r1, [sp, 0x8] movs r1, 0x1 negs r1, r1 str r1, [sp, 0xC] ldrh r1, [r2, 0x6] lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, 0x4 adds r1, r3 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x2 movs r2, 0x8 movs r3, 0x6 bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x9 b _080F3FB8 .align 2, 0 _080F3F78: .4byte gUnknown_84145BC _080F3F7C: .4byte gUnknown_8410CF4 _080F3F80: .4byte gUnknown_8410E04 _080F3F84: ldr r0, [r7] ldrb r0, [r0, 0xA] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r7] ldr r2, _080F3FC0 @ =gUnknown_8410CF4 ldrh r0, [r1, 0x6] lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2] movs r2, 0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] movs r0, 0x80 lsls r0, 8 str r2, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, [r7] movs r0, 0x6 _080F3FB8: strb r0, [r1] _080F3FBA: ldr r0, [r7] ldrb r0, [r0, 0x8] b _080F4182 .align 2, 0 _080F3FC0: .4byte gUnknown_8410CF4 _080F3FC4: ldr r0, _080F3FE8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080F3FD6 b _080F3D06 _080F3FD6: bl sub_80F3B04 ldr r1, _080F3FEC @ =gUnknown_203AB40 ldr r0, [r1] strb r4, [r0, 0x1] ldr r1, [r1] movs r0, 0xB b _080F413C .align 2, 0 _080F3FE8: .4byte gPaletteFade _080F3FEC: .4byte gUnknown_203AB40 _080F3FF0: ldr r0, [r7] ldrb r0, [r0, 0x9] bl sub_80F3B2C cmp r0, 0 bne _080F3FFE b _080F3D06 _080F3FFE: ldr r1, [r7] movs r0, 0x1 strb r0, [r1, 0x8] ldr r1, [r7] movs r0, 0x6 b _080F413C _080F400A: ldr r0, _080F4050 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080F401C b _080F3D06 _080F401C: bl sub_80F3B04 ldr r1, _080F4054 @ =gUnknown_203AB40 ldr r0, [r1] strb r4, [r0, 0x1] adds r4, r1, 0 _080F4028: ldr r0, [r4] ldrb r0, [r0, 0x9] bl sub_80F3B2C cmp r0, 0 beq _080F4028 ldr r0, _080F4054 @ =gUnknown_203AB40 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x6 beq _080F4058 cmp r0, 0x6 ble _080F404A cmp r0, 0x9 beq _080F405E cmp r0, 0xC beq _080F4064 _080F404A: add r1, sp, 0x14 movs r0, 0x1 b _080F4068 .align 2, 0 _080F4050: .4byte gPaletteFade _080F4054: .4byte gUnknown_203AB40 _080F4058: add r1, sp, 0x14 movs r0, 0x2 b _080F4068 _080F405E: add r1, sp, 0x14 movs r0, 0x3 b _080F4068 _080F4064: add r1, sp, 0x14 movs r0, 0x4 _080F4068: strh r0, [r1] add r0, sp, 0x14 ldrb r0, [r0] bl sub_80F4930 ldr r2, _080F4080 @ =gUnknown_203AB40 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x8] ldr r1, [r2] movs r0, 0x6 b _080F413C .align 2, 0 _080F4080: .4byte gUnknown_203AB40 _080F4084: ldr r0, _080F40B0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080F4096 b _080F3D06 _080F4096: bl sub_80F48D0 bl sub_80F3B04 ldr r1, _080F40B4 @ =gUnknown_203AB40 ldr r0, [r1] strb r4, [r0, 0x1] ldr r0, [r1] strb r4, [r0, 0x8] ldr r1, [r1] movs r0, 0xE b _080F413C .align 2, 0 _080F40B0: .4byte gPaletteFade _080F40B4: .4byte gUnknown_203AB40 _080F40B8: bl sub_80F4328 cmp r0, 0 bne _080F40C2 b _080F3D06 _080F40C2: ldr r0, _080F40CC @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x6 b _080F413C .align 2, 0 _080F40CC: .4byte gUnknown_203AB40 _080F40D0: ldr r0, _080F40F8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080F40E2 b _080F3D06 _080F40E2: bl sub_80F3B04 ldr r1, _080F40FC @ =gUnknown_203AB40 ldr r0, [r1] strb r4, [r0, 0x1] ldr r0, [r1] strb r4, [r0, 0x8] ldr r1, [r1] movs r0, 0x10 b _080F413C .align 2, 0 _080F40F8: .4byte gPaletteFade _080F40FC: .4byte gUnknown_203AB40 _080F4100: bl sub_80F4674 cmp r0, 0 bne _080F410A b _080F3D06 _080F410A: ldr r0, _080F4114 @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x6 b _080F413C .align 2, 0 _080F4114: .4byte gUnknown_203AB40 _080F4118: ldr r0, _080F4140 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F414C movs r0, 0x1 negs r0, r0 ldr r1, _080F4144 @ =0x00007fff str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080F4148 @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x12 _080F413C: strb r0, [r1] b _080F3D06 .align 2, 0 _080F4140: .4byte gMain _080F4144: .4byte 0x00007fff _080F4148: .4byte gUnknown_203AB40 _080F414C: ldr r1, [r7] ldrh r0, [r1, 0x4] cmp r0, 0 beq _080F4156 b _080F3D52 _080F4156: movs r0, 0x12 strb r0, [r1] subs r0, 0x13 ldr r1, _080F416C @ =0x00007fff str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080F3D06 .align 2, 0 _080F416C: .4byte 0x00007fff _080F4170: ldr r0, _080F418C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F4180 bl sub_80F3B04 _080F4180: movs r0, 0x2 _080F4182: add sp, 0x24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F418C: .4byte gPaletteFade thumb_func_end sub_80F3BD0 thumb_func_start sub_80F4190 sub_80F4190: @ 80F4190 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80F4190 thumb_func_start sub_80F41A4 sub_80F41A4: @ 80F41A4 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _080F4200 cmp r4, 0x1 bgt _080F41BA cmp r4, 0 beq _080F41C4 b _080F42C2 _080F41BA: cmp r4, 0x2 beq _080F4240 cmp r4, 0x3 beq _080F4288 b _080F42C2 _080F41C4: ldr r0, _080F41F4 @ =gUnknown_840C5B0 bl InitWindows movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0xA str r0, [sp] str r4, [sp, 0x4] movs r0, 0x6 movs r1, 0x8 movs r2, 0 movs r3, 0x1 bl sub_810C228 ldr r1, _080F41F8 @ =gUnknown_840CB8C movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer ldr r1, _080F41FC @ =gUnknown_840D228 b _080F4270 .align 2, 0 _080F41F4: .4byte gUnknown_840C5B0 _080F41F8: .4byte gUnknown_840CB8C _080F41FC: .4byte gUnknown_840D228 _080F4200: ldr r0, _080F4234 @ =gUnknown_840C5D0 bl InitWindows movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0xA str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x3 movs r1, 0x8 movs r2, 0 movs r3, 0x1 bl sub_810C228 ldr r1, _080F4238 @ =gUnknown_840E158 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer ldr r1, _080F423C @ =gUnknown_840E904 b _080F4270 .align 2, 0 _080F4234: .4byte gUnknown_840C5D0 _080F4238: .4byte gUnknown_840E158 _080F423C: .4byte gUnknown_840E904 _080F4240: ldr r0, _080F427C @ =gUnknown_840C5F0 bl InitWindows movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0xA str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x9 movs r1, 0x8 movs r2, 0 movs r3, 0x1 bl sub_810C228 ldr r1, _080F4280 @ =gUnknown_840F240 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer ldr r1, _080F4284 @ =gUnknown_840F944 _080F4270: movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer b _080F42C2 .align 2, 0 _080F427C: .4byte gUnknown_840C5F0 _080F4280: .4byte gUnknown_840F240 _080F4284: .4byte gUnknown_840F944 _080F4288: ldr r0, _080F42E4 @ =gUnknown_840C610 bl InitWindows movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0xA str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x19 movs r1, 0x8 movs r2, 0 movs r3, 0x1 bl sub_810C228 ldr r1, _080F42E8 @ =gUnknown_8410198 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer ldr r1, _080F42EC @ =gUnknown_84105B4 movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer _080F42C2: movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080F42E4: .4byte gUnknown_840C610 _080F42E8: .4byte gUnknown_8410198 _080F42EC: .4byte gUnknown_84105B4 thumb_func_end sub_80F41A4 thumb_func_start sub_80F42F0 sub_80F42F0: @ 80F42F0 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080F4314 cmp r0, 0x1 bgt _080F4306 cmp r0, 0 beq _080F4310 b _080F4320 _080F4306: cmp r1, 0x2 beq _080F4318 cmp r1, 0x3 beq _080F431C b _080F4320 _080F4310: movs r0, 0x6 b _080F4322 _080F4314: movs r0, 0x3 b _080F4322 _080F4318: movs r0, 0x9 b _080F4322 _080F431C: movs r0, 0x19 b _080F4322 _080F4320: movs r0, 0 _080F4322: pop {r1} bx r1 thumb_func_end sub_80F42F0 thumb_func_start sub_80F4328 sub_80F4328: @ 80F4328 push {r4-r6,lr} sub sp, 0x10 ldr r1, _080F4344 @ =gUnknown_203AB40 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x9 bls _080F433A b _080F4668 _080F433A: lsls r0, 2 ldr r1, _080F4348 @ =_080F434C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F4344: .4byte gUnknown_203AB40 _080F4348: .4byte _080F434C .align 2, 0 _080F434C: .4byte _080F4374 .4byte _080F44CC .4byte _080F4504 .4byte _080F4530 .4byte _080F453A .4byte _080F4558 .4byte _080F4582 .4byte _080F45D6 .4byte _080F460E .4byte _080F4638 _080F4374: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0xC0 lsls r1, 7 movs r0, 0 bl ClearGpuRegBits movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl ResetPaletteFade bl ResetSpriteData bl ResetTasks movs r0, 0x1 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080F44A8 @ =gUnknown_840C5A4 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates movs r0, 0x80 lsls r0, 4 bl Alloc adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer 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 ldr r6, _080F44AC @ =gUnknown_203AB40 ldr r1, [r6] movs r4, 0 strh r4, [r1, 0xC] strh r4, [r1, 0xE] movs r2, 0x80 lsls r2, 8 movs r0, 0x50 str r0, [sp] movs r3, 0xC ldrsh r0, [r1, r3] str r0, [sp, 0x4] movs r3, 0xC ldrsh r0, [r1, r3] str r0, [sp, 0x8] str r4, [sp, 0xC] movs r0, 0x2 adds r1, r2, 0 movs r3, 0x78 bl SetBgAffine ldr r1, _080F44B0 @ =gUnknown_8EAAB98 movs r5, 0x80 lsls r5, 6 str r4, [sp] movs r0, 0x1 adds r2, r5, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B4 @ =gUnknown_840C650 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B8 @ =gUnknown_8EAB30C movs r2, 0xA0 lsls r2, 3 movs r4, 0x1 str r4, [sp] movs r0, 0x1 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44BC @ =gUnknown_840CA54 movs r2, 0x80 lsls r2, 3 str r4, [sp] movs r0, 0x2 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r0, [r0, 0x9] lsls r0, 5 ldr r1, _080F44C0 @ =gUnknown_8EAAB18 adds r0, r1 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _080F44C4 @ =gUnknown_840C630 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, [r6] ldrb r0, [r0, 0x9] bl sub_80F41A4 ldr r0, _080F44C8 @ =sub_80F4190 bl SetVBlankCallback movs r0, 0x1 bl EnableInterrupts ldr r1, [r6] b _080F4630 .align 2, 0 _080F44A8: .4byte gUnknown_840C5A4 _080F44AC: .4byte gUnknown_203AB40 _080F44B0: .4byte gUnknown_8EAAB98 _080F44B4: .4byte gUnknown_840C650 _080F44B8: .4byte gUnknown_8EAB30C _080F44BC: .4byte gUnknown_840CA54 _080F44C0: .4byte gUnknown_8EAAB18 _080F44C4: .4byte gUnknown_840C630 _080F44C8: .4byte sub_80F4190 _080F44CC: movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0 bl PutWindowTilemap movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, _080F4500 @ =gUnknown_203AB40 ldr r1, [r0] b _080F4630 .align 2, 0 _080F4500: .4byte gUnknown_203AB40 _080F4504: movs r0, 0x2 bl ShowBg movs r0, 0 bl ShowBg movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080F452C @ =gUnknown_203AB40 ldr r1, [r0] movs r0, 0x28 strh r0, [r1, 0xC] b _080F4630 .align 2, 0 _080F452C: .4byte gUnknown_203AB40 _080F4530: ldr r1, [r4] ldrh r0, [r1, 0xC] cmp r0, 0 bne _080F45DE b _080F4630 _080F453A: ldr r0, _080F4554 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F4548 b _080F4668 _080F4548: ldr r1, [r4] movs r0, 0x8 strh r0, [r1, 0xC] movs r0, 0x1 strh r0, [r1, 0xE] b _080F4630 .align 2, 0 _080F4554: .4byte gPaletteFade _080F4558: ldr r1, [r4] ldrh r0, [r1, 0xC] cmp r0, 0 bne _080F45DE ldrh r0, [r1, 0xE] cmp r0, 0x2 bhi _080F4630 lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r4] movs r0, 0x4 strh r0, [r1, 0xC] ldrh r0, [r1, 0xE] adds r0, 0x1 strh r0, [r1, 0xE] b _080F4668 _080F4582: ldr r3, [r4] ldrh r0, [r3, 0xC] cmp r0, 0xFF bhi _080F45B2 adds r0, 0x10 movs r1, 0 strh r0, [r3, 0xC] movs r2, 0x80 lsls r2, 8 movs r0, 0x50 str r0, [sp] movs r4, 0xC ldrsh r0, [r3, r4] str r0, [sp, 0x4] movs r4, 0xC ldrsh r0, [r3, r4] str r0, [sp, 0x8] str r1, [sp, 0xC] movs r0, 0x2 adds r1, r2, 0 movs r3, 0x78 bl SetBgAffine b _080F4668 _080F45B2: movs r2, 0x80 lsls r2, 8 movs r0, 0x50 str r0, [sp] adds r0, 0xB0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] movs r0, 0x2 adds r1, r2, 0 movs r3, 0x78 bl SetBgAffine ldr r1, [r4] movs r0, 0x20 strh r0, [r1, 0xC] b _080F4630 _080F45D6: ldr r1, [r4] ldrh r0, [r1, 0xC] cmp r0, 0 beq _080F45E4 _080F45DE: subs r0, 0x1 strh r0, [r1, 0xC] b _080F4668 _080F45E4: movs r0, 0x2 bl HideBg movs r0, 0x1 bl ShowBg ldr r0, [r4] ldrb r0, [r0, 0x9] bl sub_80F42F0 lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x7D movs r3, 0xA bl PlayCry2 ldr r1, [r4] movs r0, 0x80 strh r0, [r1, 0xC] b _080F4630 _080F460E: ldr r2, [r4] ldrh r0, [r2, 0xC] adds r1, r0, 0 cmp r1, 0 beq _080F461E subs r0, 0x1 strh r0, [r2, 0xC] b _080F4668 _080F461E: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, [r4] _080F4630: ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080F4668 _080F4638: ldr r0, _080F4660 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080F4668 bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer bl Free ldr r0, _080F4664 @ =gUnknown_203AB40 ldr r0, [r0] strb r4, [r0, 0x1] movs r0, 0x1 b _080F466A .align 2, 0 _080F4660: .4byte gPaletteFade _080F4664: .4byte gUnknown_203AB40 _080F4668: movs r0, 0 _080F466A: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F4328 thumb_func_start sub_80F4674 sub_80F4674: @ 80F4674 push {r4-r6,lr} sub sp, 0x4 ldr r6, _080F4690 @ =gUnknown_203AB40 ldr r2, [r6] ldrb r5, [r2, 0x1] cmp r5, 0x1 bne _080F4684 b _080F4784 _080F4684: cmp r5, 0x1 bgt _080F4694 cmp r5, 0 beq _080F46A0 b _080F47EC .align 2, 0 _080F4690: .4byte gUnknown_203AB40 _080F4694: cmp r5, 0x2 beq _080F478E cmp r5, 0x3 bne _080F469E b _080F47D0 _080F469E: b _080F47EC _080F46A0: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0xC0 lsls r1, 7 movs r0, 0 bl ClearGpuRegBits movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl ResetPaletteFade bl ResetSpriteData bl ResetTasks movs r0, 0x1 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080F4778 @ =gUnknown_840C5A4 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r4, _080F477C @ =gUnknown_8410CDC ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, [r0] movs r2, 0x80 lsls r2, 6 str r5, [sp] movs r0, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r1, r4, 0x4 adds r0, r1 ldr r1, [r0] movs r2, 0x80 lsls r2, 4 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r4, 0x8 adds r0, r4 ldr r0, [r0] movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadPalette ldr r0, _080F4780 @ =sub_80F4190 bl SetVBlankCallback movs r0, 0x1 bl EnableInterrupts ldr r1, [r6] b _080F47C2 .align 2, 0 _080F4778: .4byte gUnknown_840C5A4 _080F477C: .4byte gUnknown_8410CDC _080F4780: .4byte sub_80F4190 _080F4784: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r6] b _080F47C2 _080F478E: movs r0, 0 bl ShowBg ldr r0, [r6] ldrb r1, [r0, 0x9] cmp r1, 0 beq _080F47AE movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade b _080F47BE _080F47AE: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _080F47BE: ldr r0, _080F47CC @ =gUnknown_203AB40 ldr r1, [r0] _080F47C2: ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _080F47EC .align 2, 0 _080F47CC: .4byte gUnknown_203AB40 _080F47D0: ldr r0, _080F47E8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080F47EC strb r0, [r2, 0x1] movs r0, 0x1 b _080F47EE .align 2, 0 _080F47E8: .4byte gPaletteFade _080F47EC: movs r0, 0 _080F47EE: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F4674 thumb_func_start sub_80F47F8 sub_80F47F8: @ 80F47F8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080F481C @ =gTasks+0x8 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0x1 beq _080F4820 cmp r0, 0x1 ble _080F48C2 cmp r0, 0x2 beq _080F484C cmp r0, 0x3 beq _080F4896 b _080F48C2 .align 2, 0 _080F481C: .4byte gTasks+0x8 _080F4820: ldr r4, _080F4848 @ =gSprites ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r2, [r1, 0x20] movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0xD0 beq _080F4890 subs r0, r2, 0x1 strh r0, [r1, 0x20] ldrb r1, [r3, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 b _080F48BC .align 2, 0 _080F4848: .4byte gSprites _080F484C: ldr r0, _080F4888 @ =gUnknown_203AB40 ldr r0, [r0] ldrb r1, [r0, 0x1D] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F48C2 ldr r4, _080F488C @ =gSprites ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r2, [r1, 0x22] movs r5, 0x22 ldrsh r0, [r1, r5] cmp r0, 0x50 beq _080F4890 subs r0, r2, 0x1 strh r0, [r1, 0x22] ldrb r1, [r3, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] b _080F48C2 .align 2, 0 _080F4888: .4byte gUnknown_203AB40 _080F488C: .4byte gSprites _080F4890: movs r0, 0 strb r0, [r3] b _080F48C2 _080F4896: ldr r0, _080F48C8 @ =gUnknown_203AB40 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xF bne _080F48C2 ldr r2, _080F48CC @ =gSprites ldrb r1, [r3, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] ldrb r1, [r3, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 _080F48BC: ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] _080F48C2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F48C8: .4byte gUnknown_203AB40 _080F48CC: .4byte gSprites thumb_func_end sub_80F47F8 thumb_func_start sub_80F48D0 sub_80F48D0: @ 80F48D0 push {r4-r6,lr} ldr r6, _080F4924 @ =gUnknown_203AB40 ldr r1, [r6] ldrb r0, [r1, 0x2] cmp r0, 0xFF beq _080F491E lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080F4928 @ =gTasks+0x8 adds r4, r0 ldrh r0, [r4, 0x2] bl FreeSpriteTilesByTag ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080F492C @ =gSprites adds r0, r5 bl DestroySprite ldrh r0, [r4, 0x8] bl FreeSpriteTilesByTag ldrb r1, [r4, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite ldr r0, [r6] ldrb r0, [r0, 0x2] bl DestroyTask ldr r1, [r6] movs r0, 0xFF strb r0, [r1, 0x2] _080F491E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F4924: .4byte gUnknown_203AB40 _080F4928: .4byte gTasks+0x8 _080F492C: .4byte gSprites thumb_func_end sub_80F48D0 thumb_func_start sub_80F4930 sub_80F4930: @ 80F4930 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x20 lsls r0, 24 lsrs r7, r0, 24 ldr r4, _080F4988 @ =gUnknown_203AB40 ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0xFF beq _080F494A b _080F4BDE _080F494A: ldr r0, _080F498C @ =sub_80F47F8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _080F4990 @ =gTasks+0x8 adds r6, r1, r2 ldr r1, [r4] strb r0, [r1, 0x2] ldr r1, _080F4994 @ =gUnknown_841431C lsls r2, r7, 1 adds r0, r2, r7 lsls r0, 1 adds r1, 0x4 adds r0, r1 ldrh r0, [r0] mov r8, r2 cmp r0, 0x1 beq _080F4998 cmp r0, 0x1 ble _080F4980 cmp r0, 0x2 beq _080F49A2 _080F4980: movs r4, 0xD0 movs r0, 0x50 mov r9, r0 b _080F49A8 .align 2, 0 _080F4988: .4byte gUnknown_203AB40 _080F498C: .4byte sub_80F47F8 _080F4990: .4byte gTasks+0x8 _080F4994: .4byte gUnknown_841431C _080F4998: movs r4, 0x88 lsls r4, 1 movs r2, 0x50 mov r9, r2 b _080F49A8 _080F49A2: movs r4, 0xD0 movs r3, 0xA0 mov r9, r3 _080F49A8: ldr r2, _080F49D0 @ =gUnknown_841431C mov r5, r8 adds r1, r5, r7 lsls r1, 1 adds r0, r2, 0x4 adds r0, r1, r0 ldrh r0, [r0] strb r0, [r6] movs r0, 0x80 lsls r0, 6 strh r0, [r6, 0x2] ldr r0, _080F49D4 @ =0x0000ffff strh r0, [r6, 0x4] adds r1, r2 ldrh r0, [r1] cmp r0, 0 beq _080F49D8 cmp r0, 0x1 beq _080F4A4C b _080F4A6C .align 2, 0 _080F49D0: .4byte gUnknown_841431C _080F49D4: .4byte 0x0000ffff _080F49D8: ldr r0, _080F4A0C @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _080F4A20 ldr r0, _080F4A10 @ =gUnknown_8410E30 str r0, [sp, 0x18] ldr r1, _080F4A14 @ =0xffff0000 add r0, sp, 0x18 ldr r3, [r0, 0x4] ands r3, r1 movs r1, 0xC0 lsls r1, 6 orrs r3, r1 str r3, [r0, 0x4] ldrh r2, [r6, 0x2] lsls r2, 16 ldr r1, _080F4A18 @ =0x0000ffff ands r1, r3 orrs r1, r2 str r1, [r0, 0x4] bl LoadCompressedSpriteSheet ldr r0, _080F4A1C @ =gUnknown_8410E10 b _080F4A36 .align 2, 0 _080F4A0C: .4byte gSaveBlock2Ptr _080F4A10: .4byte gUnknown_8410E30 _080F4A14: .4byte 0xffff0000 _080F4A18: .4byte 0x0000ffff _080F4A1C: .4byte gUnknown_8410E10 _080F4A20: ldr r0, _080F4A44 @ =gUnknown_8411C18 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x2] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4A48 @ =gUnknown_8411BF8 _080F4A36: movs r1, 0xF8 lsls r1, 1 movs r2, 0x20 bl LoadPalette b _080F4A6C .align 2, 0 _080F4A44: .4byte gUnknown_8411C18 _080F4A48: .4byte gUnknown_8411BF8 _080F4A4C: ldr r0, _080F4AD8 @ =gUnknown_84129C0 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x2] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4ADC @ =gUnknown_84129A0 movs r1, 0xF8 lsls r1, 1 movs r2, 0x20 bl LoadPalette _080F4A6C: mov r1, sp ldr r0, _080F4AE0 @ =gUnknown_8414364 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r1, sp ldrh r0, [r6, 0x2] movs r5, 0 strh r0, [r1] lsls r4, 16 asrs r1, r4, 16 mov r2, r9 mov r0, sp movs r3, 0 bl CreateSprite strb r0, [r6, 0x1] ldr r3, _080F4AE4 @ =gSprites ldrb r1, [r6, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xF0 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r6, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 strb r5, [r0] ldr r0, _080F4AE8 @ =0x00002001 strh r0, [r6, 0x8] ldr r0, _080F4AEC @ =0x0000ffff strh r0, [r6, 0xA] ldr r1, _080F4AF0 @ =gUnknown_841431C mov r2, r8 adds r0, r2, r7 lsls r0, 1 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 beq _080F4B20 cmp r0, 0x1 bgt _080F4AF4 cmp r0, 0 beq _080F4AFE b _080F4BA0 .align 2, 0 _080F4AD8: .4byte gUnknown_84129C0 _080F4ADC: .4byte gUnknown_84129A0 _080F4AE0: .4byte gUnknown_8414364 _080F4AE4: .4byte gSprites _080F4AE8: .4byte 0x00002001 _080F4AEC: .4byte 0x0000ffff _080F4AF0: .4byte gUnknown_841431C _080F4AF4: cmp r0, 0x2 beq _080F4B54 cmp r0, 0x3 beq _080F4B74 b _080F4BA0 _080F4AFE: ldr r0, _080F4B18 @ =gUnknown_8413338 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4B1C @ =gUnknown_8413318 b _080F4B8A .align 2, 0 _080F4B18: .4byte gUnknown_8413338 _080F4B1C: .4byte gUnknown_8413318 _080F4B20: ldr r0, _080F4B48 @ =gUnknown_8413338 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4B4C @ =gUnknown_8413318 movs r1, 0xF0 lsls r1, 1 movs r2, 0x20 bl LoadPalette mov r1, sp ldr r0, _080F4B50 @ =gUnknown_84143D0 b _080F4B98 .align 2, 0 _080F4B48: .4byte gUnknown_8413338 _080F4B4C: .4byte gUnknown_8413318 _080F4B50: .4byte gUnknown_84143D0 _080F4B54: ldr r0, _080F4B6C @ =gUnknown_8413874 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4B70 @ =gUnknown_8413854 b _080F4B8A .align 2, 0 _080F4B6C: .4byte gUnknown_8413874 _080F4B70: .4byte gUnknown_8413854 _080F4B74: ldr r0, _080F4BEC @ =gUnknown_8413DB8 str r0, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xC0 lsls r1, 6 strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] bl LoadCompressedSpriteSheet ldr r0, _080F4BF0 @ =gUnknown_8413D98 _080F4B8A: movs r1, 0xF0 lsls r1, 1 movs r2, 0x20 bl LoadPalette mov r1, sp ldr r0, _080F4BF4 @ =gUnknown_84143B8 _080F4B98: ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _080F4BA0: mov r1, sp ldrh r0, [r6, 0x8] strh r0, [r1] asrs r1, r4, 16 mov r2, r9 adds r2, 0x26 mov r0, sp movs r3, 0 bl CreateSprite strb r0, [r6, 0x6] ldr r3, _080F4BF8 @ =gSprites ldrb r1, [r6, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x5] movs r1, 0xF ands r1, r2 movs r2, 0xE0 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r6, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 movs r1, 0x1 strb r1, [r0] _080F4BDE: add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4BEC: .4byte gUnknown_8413DB8 _080F4BF0: .4byte gUnknown_8413D98 _080F4BF4: .4byte gUnknown_84143B8 _080F4BF8: .4byte gSprites thumb_func_end sub_80F4930 .align 2, 0 @ Don't pad with nop.