.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8178944 sub_8178944: @ 8178944 push {lr} bl LoadOamFromSprites bl ProcessObjectCopyRequests bl copy_pal_bg_faded_to_pal_ram pop {r0} bx r0 thumb_func_end sub_8178944 thumb_func_start sub_8178958 sub_8178958: @ 8178958 push {lr} movs r2, 0 ldr r1, =gUnknown_020229E8 ldrh r0, [r1, 0x1A] ldrh r1, [r1, 0x36] cmp r0, r1 bne _08178968 movs r2, 0x1 _08178968: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_8178958 thumb_func_start sub_8178974 sub_8178974: @ 8178974 push {r4,lr} sub sp, 0x8 bl ResetAllObjectData bl ResetObjectPaletteAllocator bl ResetTasks ldr r0, =sub_8178944 bl SetVBlankCallback movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085EFD64 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates ldr r0, =gUnknown_085EFD68 bl InitWindows lsls r0, 16 cmp r0, 0 beq _08178A22 bl DeactivateAllTextPrinters movs r4, 0 _081789AC: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer adds r4, 0x1 cmp r4, 0x1 ble _081789AC movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 movs r1, 0x1 movs r2, 0xD0 bl sub_809882C movs r0, 0xE0 bl sub_81978B0 movs r1, 0xA0 lsls r1, 1 movs r0, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg ldr r0, =sub_8009404 movs r1, 0 bl CreateTask bl sub_80A2F30 bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl RunTextPrinters bl fade_and_return_progress_probably movs r0, 0 movs r1, 0 movs r2, 0x2 bl rboxid_80040B8 ldr r0, =sub_8178A78 bl SetMainCallback2 _08178A22: add sp, 0x8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8178974 thumb_func_start sub_8178A40 sub_8178A40: @ 8178A40 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 movs r5, 0x1 cmp r4, 0 bne _08178A54 ldr r1, =gUnknown_085EE80A bl StringCopy movs r5, 0 _08178A54: cmp r4, 0x2 bne _08178A5A movs r5, 0 _08178A5A: cmp r4, 0x1 bne _08178A66 ldr r1, =gUnknown_085EE827 adds r0, r6, 0 bl StringCopy _08178A66: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8178A40 thumb_func_start sub_8178A78 sub_8178A78: @ 8178A78 push {r4-r6,lr} sub sp, 0x8 ldr r1, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _08178A8E b _08178E58 _08178A8E: lsls r0, 2 ldr r1, =_08178AA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08178AA0: .4byte _08178AE4 .4byte _08178B12 .4byte _08178B48 .4byte _08178B80 .4byte _08178BCC .4byte _08178BDC .4byte _08178C54 .4byte _08178D28 .4byte _08178D38 .4byte _08178D58 .4byte _08178D60 .4byte _08178D74 .4byte _08178DBC .4byte _08178DE0 .4byte _08178E0C .4byte _08178E24 .4byte _08178E48 _08178AE4: movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0xD bl SetWindowBorderStyle movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0 bl ShowBg movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _08178E30 _08178B12: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08178B20 b _08178E58 _08178B20: ldr r1, =gUnknown_085EE765 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r1, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08178E3C .pool _08178B48: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 beq _08178B56 b _08178E58 _08178B56: ldr r1, =gUnknown_030022C0 movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_020229C6 ldr r2, =0x00005501 adds r0, r2, 0 strh r0, [r1] bl sub_8009734 b _08178E58 .pool _08178B80: ldr r0, =gUnknown_030030E0 ldr r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08178B8E b _08178D00 _08178B8E: movs r0, 0x1C ands r1, r0 cmp r1, 0x4 bhi _08178B98 b _08178D00 _08178B98: movs r0, 0x15 bl audio_play ldr r1, =gUnknown_085EE788 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r1, =gUnknown_030022C0 movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08178D00 .pool _08178BCC: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 beq _08178BDA b _08178E58 _08178BDA: b _08178E34 _08178BDC: bl sub_800ABAC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _08178CD0 ldr r4, =gUnknown_030022C0 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08178C38 movs r0, 0x5 bl audio_play bl sub_800A620 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0xD bl SetWindowBorderStyle ldr r1, =gUnknown_085EE7BF movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram movs r2, 0x87 lsls r2, 3 adds r1, r4, r2 b _08178E3C .pool _08178C38: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08178C42 b _08178E58 _08178C42: movs r0, 0x5 bl audio_play bl sub_80097E8 movs r0, 0x87 lsls r0, 3 adds r1, r4, r0 b _08178D1E _08178C54: bl sub_800B320 lsls r0, 24 cmp r0, 0 beq _08178D00 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08178C68 b _08178E58 _08178C68: movs r0, 0x2 movs r1, 0x2 bl sub_800A0C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08178CAC bl sub_800AC34 ldr r4, =gStringVar4 adds r0, r4, 0 movs r1, 0x1 bl sub_8178A40 movs r0, 0x1 str r0, [sp] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r0, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r0, r2 b _08178CF2 .pool _08178CAC: bl sub_8178958 lsls r0, 24 cmp r0, 0 beq _08178CCC ldr r1, =gUnknown_085EE7CE movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 b _08178E34 .pool _08178CCC: bl sub_80097E8 _08178CD0: ldr r4, =gStringVar4 adds r0, r4, 0 movs r1, 0x1 bl sub_8178A40 movs r0, 0x1 str r0, [sp] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r0, =gUnknown_030022C0 movs r1, 0x87 lsls r1, 3 adds r0, r1 _08178CF2: movs r1, 0xD strb r1, [r0] b _08178E58 .pool _08178D00: ldr r4, =gUnknown_030022C0 ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08178D0E b _08178E58 _08178D0E: movs r0, 0x5 bl audio_play bl sub_80097E8 movs r2, 0x87 lsls r2, 3 adds r1, r4, r2 _08178D1E: movs r0, 0xF strb r0, [r1] b _08178E58 .pool _08178D28: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 beq _08178D36 b _08178E58 _08178D36: b _08178E34 _08178D38: bl sub_800A550 lsls r0, 24 cmp r0, 0 bne _08178D44 b _08178E58 _08178D44: bl sub_800A5B4 ldr r1, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08178E3C .pool _08178D58: movs r0, 0x87 lsls r0, 3 adds r1, r4, r0 b _08178E3C _08178D60: bl sub_800AC34 ldr r1, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08178E3C .pool _08178D74: ldr r0, =gUnknown_03003124 ldrb r6, [r0] cmp r6, 0 bne _08178E58 ldr r5, =0x0201c000 adds r0, r5, 0 bl sub_81538A0 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 str r6, [sp, 0x4] ldr r2, =0x050001f5 add r0, sp, 0x4 adds r1, r5, 0 bl CpuSet ldr r0, =gStringVar4 adds r1, r4, 0 bl sub_8178A40 lsls r0, 24 cmp r0, 0 bne _08178E34 movs r0, 0 bl save_game_when_memory_present b _08178E34 .pool _08178DBC: ldr r1, =gStringVar4 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r1, =gUnknown_030022C0 movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08178E3C .pool _08178DE0: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 bne _08178E58 ldr r0, =gUnknown_030022C0 movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_0203BCF8 strb r2, [r0] b _08178E58 .pool _08178E0C: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08178E58 movs r0, 0x5 bl audio_play movs r2, 0x87 lsls r2, 3 adds r1, r4, r2 b _08178E3C _08178E24: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _08178E30: bl pal_fade_maybe _08178E34: ldr r1, =gUnknown_030022C0 movs r0, 0x87 lsls r0, 3 adds r1, r0 _08178E3C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08178E58 .pool _08178E48: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08178E58 bl Reset _08178E58: ldr r0, =gUnknown_030030E0 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08178E98 bl sub_800ABBC lsls r0, 24 cmp r0, 0 bne _08178E98 bl sub_80097E8 ldr r4, =gStringVar4 adds r0, r4, 0 movs r1, 0x1 bl sub_8178A40 movs r0, 0x1 str r0, [sp] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8178EC4 ldr r0, =gUnknown_030022C0 movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0xD strb r1, [r0] _08178E98: bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl RunTextPrinters bl fade_and_return_progress_probably add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8178A78 thumb_func_start sub_8178EC4 sub_8178EC4: @ 8178EC4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C adds r5, r0, 0 mov r10, r1 adds r6, r2, 0 ldr r4, [sp, 0x38] lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 movs r0, 0 mov r9, r0 movs r1, 0x1 mov r8, r1 add r0, sp, 0x14 mov r1, r8 strb r1, [r0] adds r1, r0, 0 movs r0, 0x2 strb r0, [r1, 0x1] movs r0, 0x3 strb r0, [r1, 0x2] adds r0, r1, 0 ldrb r0, [r0] lsls r1, r0, 4 orrs r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 str r3, [sp, 0x18] bl FillWindowPixelBuffer mov r0, r9 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] lsls r4, 24 asrs r4, 24 str r4, [sp, 0xC] mov r1, r10 str r1, [sp, 0x10] adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 ldr r3, [sp, 0x18] bl AddTextPrinterParametrized2 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8178EC4 .align 2, 0 @ Don't pad with nop.