.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80F1DAC sub_80F1DAC: @ 80F1DAC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80F1DAC thumb_func_start sub_80F1DC0 sub_80F1DC0: @ 80F1DC0 push {lr} bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80F1DC0 thumb_func_start InitHallOfFameScreen InitHallOfFameScreen: @ 80F1DDC push {r4,lr} sub sp, 0x4 ldr r0, _080F1DFC @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _080F1DF0 b _080F1EF0 _080F1DF0: lsls r0, 2 ldr r1, _080F1E00 @ =_080F1E04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F1DFC: .4byte gMain _080F1E00: .4byte _080F1E04 .align 2, 0 _080F1E04: .4byte _080F1E18 .4byte _080F1E50 .4byte _080F1E56 .4byte _080F1E88 .4byte _080F1EC4 _080F1E18: ldr r1, _080F1E40 @ =gUnknown_3005ECC movs r0, 0 strb r0, [r1] movs r0, 0 bl SetVBlankCallback bl ClearVramOamPltt_LoadHofPal ldr r4, _080F1E44 @ =gUnknown_203AB3C ldr r0, _080F1E48 @ =0x00002008 bl AllocZeroed str r0, [r4] ldr r0, _080F1E4C @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _080F1EF0 .align 2, 0 _080F1E40: .4byte gUnknown_3005ECC _080F1E44: .4byte gUnknown_203AB3C _080F1E48: .4byte 0x00002008 _080F1E4C: .4byte gMain _080F1E50: bl sub_80F36BC b _080F1EAA _080F1E56: ldr r1, _080F1E80 @ =0x00003f42 movs r0, 0x50 bl SetGpuReg movs r1, 0xE2 lsls r1, 3 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl sub_80F36F8 ldr r0, _080F1E84 @ =gUnknown_203AB3C ldr r1, [r0] movs r0, 0 strh r0, [r1] b _080F1EAA .align 2, 0 _080F1E80: .4byte 0x00003f42 _080F1E84: .4byte gUnknown_203AB3C _080F1E88: bl sub_80F3770 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080F1EF0 ldr r0, _080F1EBC @ =sub_80F1DAC bl SetVBlankCallback movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _080F1EAA: ldr r1, _080F1EC0 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F1EF0 .align 2, 0 _080F1EBC: .4byte sub_80F1DAC _080F1EC0: .4byte gMain _080F1EC4: bl UpdatePaletteFade ldr r0, _080F1EE8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F1EF0 ldr r0, _080F1EEC @ =sub_80F1DC0 bl SetMainCallback2 movs r0, 0x8F lsls r0, 1 bl PlayBGM movs r0, 0 b _080F1EF2 .align 2, 0 _080F1EE8: .4byte gPaletteFade _080F1EEC: .4byte sub_80F1DC0 _080F1EF0: movs r0, 0x1 _080F1EF2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end InitHallOfFameScreen thumb_func_start CB2_DoHallOfFameScreen CB2_DoHallOfFameScreen: @ 80F1EFC push {r4,lr} bl InitHallOfFameScreen lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080F1F2C ldr r0, _080F1F34 @ =Task_Hof_InitMonData movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F1F38 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] ldr r4, _080F1F3C @ =gUnknown_203AB38 movs r0, 0x78 bl AllocZeroed str r0, [r4] _080F1F2C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F1F34: .4byte Task_Hof_InitMonData _080F1F38: .4byte gTasks _080F1F3C: .4byte gUnknown_203AB38 thumb_func_end CB2_DoHallOfFameScreen thumb_func_start CB2_DoHallOfFameScreenDontSaveData CB2_DoHallOfFameScreenDontSaveData: @ 80F1F40 push {lr} bl InitHallOfFameScreen lsls r0, 24 cmp r0, 0 bne _080F1F66 ldr r0, _080F1F6C @ =Task_Hof_InitMonData movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F1F70 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] _080F1F66: pop {r0} bx r0 .align 2, 0 _080F1F6C: .4byte Task_Hof_InitMonData _080F1F70: .4byte gTasks thumb_func_end CB2_DoHallOfFameScreenDontSaveData thumb_func_start Task_Hof_InitMonData Task_Hof_InitMonData: @ 80F1F74 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _080F2050 @ =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r7, 0 ldr r0, _080F2054 @ =gUnknown_203AB38 mov r9, r0 _080F1F98: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080F2058 @ =gPlayerParty adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r5, r0, 0 cmp r5, 0 beq _080F2064 adds r0, r6, 0 movs r1, 0x41 bl GetMonData mov r1, r9 ldr r3, [r1] lsls r4, r7, 2 adds r4, r7 lsls r4, 2 adds r3, r4 ldr r2, _080F205C @ =0x000001ff adds r1, r2, 0 ands r0, r1 ldrh r1, [r3, 0x8] ldr r5, _080F2060 @ =0xfffffe00 adds r2, r5, 0 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x8] adds r0, r6, 0 movs r1, 0x1 bl GetMonData mov r2, r9 ldr r1, [r2] adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0 bl GetMonData mov r5, r9 ldr r1, [r5] adds r1, 0x4 adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0x38 bl GetMonData ldr r2, [r5] adds r2, r4 lsls r0, 1 ldrb r3, [r2, 0x9] movs r1, 0x1 ands r1, r3 orrs r1, r0 strb r1, [r2, 0x9] adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl GetMonData movs r2, 0 mov r6, r8 lsls r5, r6, 2 ldr r3, _080F2054 @ =gUnknown_203AB38 _080F2022: ldr r0, [r3] adds r1, r2, r4 adds r0, 0xA adds r0, r1 mov r6, sp adds r1, r6, r2 ldrb r1, [r1] strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9 bls _080F2022 ldr r0, _080F2050 @ =gTasks mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] b _080F2098 .align 2, 0 _080F2050: .4byte gTasks _080F2054: .4byte gUnknown_203AB38 _080F2058: .4byte gPlayerParty _080F205C: .4byte 0x000001ff _080F2060: .4byte 0xfffffe00 _080F2064: mov r6, r9 ldr r3, [r6] lsls r2, r7, 2 adds r2, r7 lsls r2, 2 adds r4, r3, r2 ldrh r0, [r4, 0x8] ldr r6, _080F20EC @ =0xfffffe00 adds r1, r6, 0 ands r0, r1 strh r0, [r4, 0x8] str r5, [r4] adds r3, 0x4 adds r3, r2 str r5, [r3] ldrb r1, [r4, 0x9] movs r0, 0x1 ands r0, r1 strb r0, [r4, 0x9] mov r1, r9 ldr r0, [r1] adds r0, r2 movs r1, 0xFF strb r1, [r0, 0xA] mov r2, r8 lsls r5, r2, 2 _080F2098: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bhi _080F20A4 b _080F1F98 _080F20A4: ldr r0, _080F20F0 @ =gUnknown_203AB34 movs r3, 0 str r3, [r0] ldr r4, _080F20F4 @ =gTasks mov r6, r8 adds r1, r5, r6 lsls r1, 3 adds r2, r1, r4 strh r3, [r2, 0xA] movs r0, 0xFF strh r0, [r2, 0x10] movs r7, 0 adds r3, r4, 0 adds r3, 0x8 movs r2, 0xFF _080F20C2: adds r0, r7, 0x5 lsls r0, 1 adds r0, r1 adds r0, r3 strh r2, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _080F20C2 mov r1, r8 adds r0, r5, r1 lsls r0, 3 adds r1, r0, r4 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _080F20FC ldr r0, _080F20F8 @ =sub_80F2294 b _080F20FE .align 2, 0 _080F20EC: .4byte 0xfffffe00 _080F20F0: .4byte gUnknown_203AB34 _080F20F4: .4byte gTasks _080F20F8: .4byte sub_80F2294 _080F20FC: ldr r0, _080F2110 @ =Task_Hof_InitTeamSaveData _080F20FE: str r0, [r1] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2110: .4byte Task_Hof_InitTeamSaveData thumb_func_end Task_Hof_InitMonData thumb_func_start Task_Hof_InitTeamSaveData Task_Hof_InitTeamSaveData: @ 80F2114 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r7, _080F2140 @ =gDecompressionBuffer bl sub_8112450 ldr r0, _080F2144 @ =gUnknown_203AB44 ldrb r0, [r0] cmp r0, 0 bne _080F2148 movs r2, 0x80 lsls r2, 6 adds r0, r7, 0 movs r1, 0 bl memset b _080F2162 .align 2, 0 _080F2140: .4byte gDecompressionBuffer _080F2144: .4byte gUnknown_203AB44 _080F2148: movs r0, 0x3 bl Save_LoadGameData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080F2162 movs r2, 0x80 lsls r2, 6 adds r0, r7, 0 movs r1, 0 bl memset _080F2162: movs r5, 0 ldrh r1, [r7, 0x8] ldr r2, _080F2208 @ =0x000001ff adds r0, r2, 0 ands r0, r1 mov r1, r9 lsls r1, 2 mov r8, r1 cmp r0, 0 beq _080F218C _080F2176: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r7, 0x78 cmp r5, 0x31 bhi _080F2190 ldrh r1, [r7, 0x8] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080F2176 _080F218C: cmp r5, 0x31 bls _080F21B2 _080F2190: ldr r4, _080F220C @ =gDecompressionBuffer adds r6, r4, 0 adds r4, 0x78 movs r5, 0 subs r7, 0x78 _080F219A: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x78 bl memcpy adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x78 adds r4, 0x78 cmp r5, 0x30 bls _080F219A _080F21B2: ldr r0, _080F2210 @ =gUnknown_203AB38 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x78 bl memcpy movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, _080F2214 @ =gUnknown_8419F54 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0 bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, _080F2218 @ =gTasks mov r0, r8 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _080F221C @ =sub_80F2220 str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2208: .4byte 0x000001ff _080F220C: .4byte gDecompressionBuffer _080F2210: .4byte gUnknown_203AB38 _080F2214: .4byte gUnknown_8419F54 _080F2218: .4byte gTasks _080F221C: .4byte sub_80F2220 thumb_func_end Task_Hof_InitTeamSaveData thumb_func_start sub_80F2220 sub_80F2220: @ 80F2220 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080F2254 @ =gGameContinueCallback ldr r0, _080F2258 @ =CB2_DoHallOfFameScreenDontSaveData str r0, [r1] movs r0, 0x3 bl TrySavingData movs r0, 0x30 bl PlaySE ldr r1, _080F225C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F2260 @ =sub_80F2264 str r1, [r0] movs r1, 0x20 strh r1, [r0, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _080F2254: .4byte gGameContinueCallback _080F2258: .4byte CB2_DoHallOfFameScreenDontSaveData _080F225C: .4byte gTasks _080F2260: .4byte sub_80F2264 thumb_func_end sub_80F2220 thumb_func_start sub_80F2264 sub_80F2264: @ 80F2264 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080F2284 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _080F2288 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _080F228C .align 2, 0 _080F2284: .4byte gTasks _080F2288: ldr r0, _080F2290 @ =sub_80F2294 str r0, [r1] _080F228C: pop {r0} bx r0 .align 2, 0 _080F2290: .4byte sub_80F2294 thumb_func_end sub_80F2264 thumb_func_start sub_80F2294 sub_80F2294: @ 80F2294 lsls r0, 24 lsrs r0, 24 ldr r2, _080F22A8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080F22AC @ =sub_80F22B0 str r0, [r1] bx lr .align 2, 0 _080F22A8: .4byte gTasks _080F22AC: .4byte sub_80F22B0 thumb_func_end sub_80F2294 thumb_func_start sub_80F22B0 sub_80F22B0: @ 80F22B0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080F22E4 @ =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r6, [r1, 0xA] ldr r2, _080F22E8 @ =gUnknown_203AB38 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 ldr r2, [r2] adds r4, r2, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x3 ble _080F22F0 ldr r1, _080F22EC @ =gUnknown_840C268 b _080F22F2 .align 2, 0 _080F22E4: .4byte gTasks _080F22E8: .4byte gUnknown_203AB38 _080F22EC: .4byte gUnknown_840C268 _080F22F0: ldr r1, _080F2388 @ =gUnknown_840C298 _080F22F2: lsls r2, r6, 3 adds r0, r2, r1 ldrh r3, [r0] adds r0, r1, 0x2 adds r0, r2, r0 ldrh r5, [r0] adds r0, r1, 0x4 adds r0, r2, r0 ldrh r0, [r0] mov r9, r0 adds r1, 0x6 adds r2, r1 ldrh r2, [r2] mov r8, r2 ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 ldr r1, [r4] ldr r2, [r4, 0x4] lsls r3, 16 asrs r3, 16 str r3, [sp] lsls r3, r5, 16 asrs r3, 16 str r3, [sp, 0x4] lsls r3, r6, 24 lsrs r3, 24 str r3, [sp, 0x8] ldr r3, _080F238C @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 bl CreateMonPicSprite_HandleDeoxys lsls r0, 24 lsrs r0, 24 ldr r3, _080F2390 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r1, r3 movs r4, 0 mov r5, r9 strh r5, [r2, 0x30] mov r5, r8 strh r5, [r2, 0x32] strh r4, [r2, 0x2E] adds r3, 0x1C adds r1, r3 ldr r2, _080F2394 @ =sub_80F3870 str r2, [r1] ldr r5, _080F2398 @ =gTasks adds r1, r6, 0x5 lsls r1, 1 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r1, r4 adds r2, r5, 0 adds r2, 0x8 adds r1, r2 strh r0, [r1] movs r0, 0 movs r1, 0x1 bl ClearDialogWindowAndFrame adds r4, r5 ldr r0, _080F239C @ =sub_80F23A0 str r0, [r4] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2388: .4byte gUnknown_840C298 _080F238C: .4byte 0x0000ffff _080F2390: .4byte gSprites _080F2394: .4byte sub_80F3870 _080F2398: .4byte gTasks _080F239C: .4byte sub_80F23A0 thumb_func_end sub_80F22B0 thumb_func_start sub_80F23A0 sub_80F23A0: @ 80F23A0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _080F2410 @ =gTasks lsls r3, r0, 2 adds r3, r0 lsls r3, 3 adds r5, r3, r4 ldrh r1, [r5, 0xA] ldr r2, _080F2414 @ =gUnknown_203AB38 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r2, [r2] adds r6, r2, r0 ldr r2, _080F2418 @ =gSprites adds r1, 0x5 lsls r1, 1 adds r1, r3 adds r4, 0x8 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0 beq _080F2408 ldrh r2, [r6, 0x8] ldr r0, _080F241C @ =0x000001ff ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080F23F6 lsls r0, r2, 23 lsrs r0, 23 movs r1, 0 bl PlayCry1 _080F23F6: adds r0, r6, 0 movs r1, 0 movs r2, 0xE bl sub_80F3194 movs r0, 0x78 strh r0, [r5, 0xE] ldr r0, _080F2420 @ =Task_Hof_TryDisplayAnotherMon str r0, [r5] _080F2408: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F2410: .4byte gTasks _080F2414: .4byte gUnknown_203AB38 _080F2418: .4byte gSprites _080F241C: .4byte 0x000001ff _080F2420: .4byte Task_Hof_TryDisplayAnotherMon thumb_func_end sub_80F23A0 thumb_func_start Task_Hof_TryDisplayAnotherMon Task_Hof_TryDisplayAnotherMon: @ 80F2424 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080F2460 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 adds r4, r6, r2 ldrh r3, [r4, 0xA] ldr r1, _080F2464 @ =gUnknown_203AB38 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 ldr r1, [r1] adds r1, r0 mov r9, r1 ldrh r1, [r4, 0xE] movs r7, 0xE ldrsh r0, [r4, r7] mov r12, r2 cmp r0, 0 beq _080F2468 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _080F2500 .align 2, 0 _080F2460: .4byte gTasks _080F2464: .4byte gUnknown_203AB38 _080F2468: ldr r2, _080F24E0 @ =gUnknown_203AB34 ldr r0, _080F24E4 @ =gSprites mov r8, r0 adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 mov r1, r12 adds r1, 0x8 adds r6, r0, r1 movs r7, 0 ldrsh r1, [r6, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x5] lsrs r0, 4 movs r1, 0x80 lsls r1, 9 lsls r1, r0 ldr r3, [r2] orrs r3, r1 str r3, [r2] ldrh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _080F24F4 mov r7, r9 ldrh r1, [r7, 0x1C] ldr r0, _080F24E8 @ =0x000001ff ands r0, r1 cmp r0, 0 beq _080F24F4 adds r0, r2, 0x1 strh r0, [r4, 0xA] ldr r0, _080F24EC @ =0x00007716 str r0, [sp] adds r0, r3, 0 movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r0, _080F24F0 @ =sub_80F22B0 str r0, [r4] b _080F2500 .align 2, 0 _080F24E0: .4byte gUnknown_203AB34 _080F24E4: .4byte gSprites _080F24E8: .4byte 0x000001ff _080F24EC: .4byte 0x00007716 _080F24F0: .4byte sub_80F22B0 _080F24F4: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r12 ldr r1, _080F2510 @ =Task_Hof_PaletteFadeAndPrintWelcomeText str r1, [r0] _080F2500: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2510: .4byte Task_Hof_PaletteFadeAndPrintWelcomeText thumb_func_end Task_Hof_TryDisplayAnotherMon thumb_func_start Task_Hof_PaletteFadeAndPrintWelcomeText Task_Hof_PaletteFadeAndPrintWelcomeText: @ 80F2514 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F259C @ =0xffff0000 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade movs r3, 0 lsls r1, r4, 2 adds r0, r1, r4 lsls r5, r0, 3 ldr r0, _080F25A0 @ =gTasks+0x8 mov r12, r0 mov r8, r1 ldr r6, _080F25A4 @ =gSprites movs r7, 0xD negs r7, r7 _080F2542: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 mov r2, r12 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _080F2564 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x5] _080F2564: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080F2542 movs r0, 0 movs r1, 0xF bl HallOfFame_PrintWelcomeText movs r0, 0x62 bl PlaySE ldr r1, _080F25A8 @ =gTasks mov r2, r8 adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0xC8 lsls r1, 1 strh r1, [r0, 0xE] ldr r1, _080F25AC @ =sub_80F25B0 str r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F259C: .4byte 0xffff0000 _080F25A0: .4byte gTasks+0x8 _080F25A4: .4byte gSprites _080F25A8: .4byte gTasks _080F25AC: .4byte sub_80F25B0 thumb_func_end Task_Hof_PaletteFadeAndPrintWelcomeText thumb_func_start sub_80F25B0 sub_80F25B0: @ 80F25B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _080F25F0 @ =gTasks lsls r4, r6, 2 adds r0, r4, r6 lsls r5, r0, 3 adds r1, r5, r7 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _080F25F4 subs r2, 0x1 strh r2, [r1, 0xE] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _080F266E lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x6E ble _080F266E bl sub_80F3930 b _080F266E .align 2, 0 _080F25F0: .4byte gTasks _080F25F4: movs r3, 0 mov r9, r4 ldr r0, _080F2680 @ =gUnknown_203AB34 mov r10, r0 adds r4, r5, 0 adds r7, 0x8 mov r8, r7 ldr r7, _080F2684 @ =gSprites movs r1, 0xD negs r1, r1 mov r12, r1 movs r5, 0x4 _080F260C: adds r0, r3, 0x5 lsls r0, 1 adds r0, r4 mov r2, r8 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _080F2630 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r12 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] _080F2630: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080F260C mov r3, r10 ldr r0, [r3] ldr r1, _080F2688 @ =0x00007716 str r1, [sp] movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, _080F268C @ =gTasks mov r2, r9 adds r0, r2, r6 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0xE] ldr r1, _080F2690 @ =sub_80F2694 str r1, [r0] _080F266E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2680: .4byte gUnknown_203AB34 _080F2684: .4byte gSprites _080F2688: .4byte 0x00007716 _080F268C: .4byte gTasks _080F2690: .4byte sub_80F2694 thumb_func_end sub_80F25B0 thumb_func_start sub_80F2694 sub_80F2694: @ 80F2694 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080F26B4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0xF ble _080F26BC ldr r0, _080F26B8 @ =sub_80F26D4 str r0, [r1] b _080F26CE .align 2, 0 _080F26B4: .4byte gTasks _080F26B8: .4byte sub_80F26D4 _080F26BC: adds r0, r2, 0x1 strh r0, [r1, 0xE] movs r0, 0xE ldrsh r1, [r1, r0] lsls r1, 24 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg _080F26CE: pop {r0} bx r0 thumb_func_end sub_80F2694 thumb_func_start sub_80F26D4 sub_80F26D4: @ 80F26D4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x3 bl ShowBg ldr r0, _080F2748 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r1, 0x6 str r1, [sp] ldr r1, _080F274C @ =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 movs r2, 0x78 movs r3, 0x48 bl CreateTrainerPicSprite ldr r1, _080F2750 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 strh r0, [r4, 0x10] ldr r0, _080F2754 @ =gUnknown_840C234 bl AddWindow ldr r1, _080F2758 @ =0x0000021d movs r0, 0x1 movs r2, 0xD0 bl TextWindow_SetStdFrame0_WithPal movs r0, 0x78 strh r0, [r4, 0xE] ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo str r0, [r4] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2748: .4byte gSaveBlock2Ptr _080F274C: .4byte 0x0000ffff _080F2750: .4byte gTasks _080F2754: .4byte gUnknown_840C234 _080F2758: .4byte 0x0000021d _080F275C: .4byte Task_Hof_WaitAndPrintPlayerInfo thumb_func_end sub_80F26D4 thumb_func_start Task_Hof_WaitAndPrintPlayerInfo Task_Hof_WaitAndPrintPlayerInfo: @ 80F2760 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 ldr r2, _080F2784 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0xE] movs r1, 0xE ldrsh r5, [r4, r1] cmp r5, 0 beq _080F2788 subs r0, 0x1 strh r0, [r4, 0xE] b _080F27F4 .align 2, 0 _080F2784: .4byte gTasks _080F2788: ldr r2, _080F27A8 @ =gSprites movs r3, 0x10 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0xC0 beq _080F27AC adds r0, r2, 0x1 strh r0, [r1, 0x20] b _080F27F4 .align 2, 0 _080F27A8: .4byte gSprites _080F27AC: movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 movs r1, 0x2 bl sub_80F33DC movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, _080F27FC @ =gUnknown_84160C8 str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0 bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _080F2800 @ =Task_Hof_ExitOnKeyPressed str r0, [r4] _080F27F4: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F27FC: .4byte gUnknown_84160C8 _080F2800: .4byte Task_Hof_ExitOnKeyPressed thumb_func_end Task_Hof_WaitAndPrintPlayerInfo thumb_func_start Task_Hof_ExitOnKeyPressed Task_Hof_ExitOnKeyPressed: @ 80F2804 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F2830 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F282A movs r0, 0x4 bl FadeOutBGM ldr r0, _080F2834 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080F2838 @ =Task_Hof_HandlePaletteOnExit str r0, [r1] _080F282A: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2830: .4byte gMain _080F2834: .4byte gTasks _080F2838: .4byte Task_Hof_HandlePaletteOnExit thumb_func_end Task_Hof_ExitOnKeyPressed thumb_func_start Task_Hof_HandlePaletteOnExit Task_Hof_HandlePaletteOnExit: @ 80F283C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F287C @ =gPlttBufferFaded ldr r1, _080F2880 @ =gPlttBufferUnfaded movs r2, 0x80 lsls r2, 2 bl CpuSet movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080F2884 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F2888 @ =Task_Hof_HandleExit str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080F287C: .4byte gPlttBufferFaded _080F2880: .4byte gPlttBufferUnfaded _080F2884: .4byte gTasks _080F2888: .4byte Task_Hof_HandleExit thumb_func_end Task_Hof_HandlePaletteOnExit thumb_func_start Task_Hof_HandleExit Task_Hof_HandleExit: @ 80F288C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F2924 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F291E lsls r7, r6, 2 ldr r1, _080F2928 @ =gTasks adds r0, r7, r6 lsls r0, 3 adds r1, 0x12 adds r4, r0, r1 movs r5, 0x5 _080F28AC: ldrb r0, [r4] cmp r0, 0xFF beq _080F28B6 bl FreeAndDestroyMonPicSprite _080F28B6: adds r4, 0x2 subs r5, 0x1 cmp r5, 0 bge _080F28AC ldr r0, _080F2928 @ =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] bl FreeAndDestroyTrainerPicSprite movs r0, 0 bl HideBg movs r0, 0x1 bl HideBg movs r0, 0x3 bl HideBg bl FreeAllWindowBuffers movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x3 bl UnsetBgTilemapBuffer movs r0, 0 bl ResetBgsAndClearDma3BusyFlags adds r0, r6, 0 bl DestroyTask ldr r4, _080F292C @ =gUnknown_203AB3C ldr r0, [r4] cmp r0, 0 beq _080F290A bl Free movs r0, 0 str r0, [r4] _080F290A: ldr r4, _080F2930 @ =gUnknown_203AB38 ldr r0, [r4] cmp r0, 0 beq _080F291A bl Free movs r0, 0 str r0, [r4] _080F291A: bl sub_80F2934 _080F291E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2924: .4byte gPaletteFade _080F2928: .4byte gTasks _080F292C: .4byte gUnknown_203AB3C _080F2930: .4byte gUnknown_203AB38 thumb_func_end Task_Hof_HandleExit thumb_func_start sub_80F2934 sub_80F2934: @ 80F2934 push {lr} sub sp, 0x4 ldr r0, _080F2970 @ =0x00004085 movs r1, 0x1 bl VarSet movs r0, 0x80 lsls r0, 7 bl FlagSet ldr r1, _080F2974 @ =gUnknown_2031DD8 movs r0, 0x2 strb r0, [r1] movs r2, 0x1 negs r2, r2 movs r0, 0x6 str r0, [sp] movs r0, 0x3 movs r1, 0x9 movs r3, 0xB bl Overworld_SetWarpDestination bl DoWarp bl ResetInitialPlayerAvatarState add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F2970: .4byte 0x00004085 _080F2974: .4byte gUnknown_2031DD8 thumb_func_end sub_80F2934 thumb_func_start sub_80F2978 sub_80F2978: @ 80F2978 push {r4,lr} ldr r0, _080F2994 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bhi _080F29B4 lsls r0, 2 ldr r1, _080F2998 @ =_080F299C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F2994: .4byte gMain _080F2998: .4byte _080F299C .align 2, 0 _080F299C: .4byte _080F29B4 .4byte _080F29E4 .4byte _080F29EA .4byte _080F2A08 .4byte _080F2A28 .4byte _080F2A58 _080F29B4: movs r0, 0 bl SetVBlankCallback bl ClearVramOamPltt_LoadHofPal ldr r4, _080F29D8 @ =gUnknown_203AB3C ldr r0, _080F29DC @ =0x00002008 bl AllocZeroed str r0, [r4] ldr r0, _080F29E0 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _080F2A8C .align 2, 0 _080F29D8: .4byte gUnknown_203AB3C _080F29DC: .4byte 0x00002008 _080F29E0: .4byte gMain _080F29E4: bl sub_80F36BC b _080F2A42 _080F29EA: 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 sub_80F36F8 b _080F2A42 _080F2A08: bl sub_80F3770 lsls r0, 24 cmp r0, 0 bne _080F2A8C movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80A0A48 ldr r0, _080F2A24 @ =sub_80F1DAC bl SetVBlankCallback b _080F2A42 .align 2, 0 _080F2A24: .4byte sub_80F1DAC _080F2A28: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_80A0A98 lsls r0, 24 cmp r0, 0 bne _080F2A8C _080F2A42: ldr r1, _080F2A54 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F2A8C .align 2, 0 _080F2A54: .4byte gMain _080F2A58: ldr r1, _080F2A94 @ =0x00003f42 movs r0, 0x50 bl SetGpuReg movs r1, 0xE2 lsls r1, 3 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, _080F2A98 @ =sub_80F2AA4 movs r1, 0 bl CreateTask ldr r4, _080F2A9C @ =gUnknown_203AB38 movs r0, 0x80 lsls r0, 6 bl AllocZeroed str r0, [r4] ldr r0, _080F2AA0 @ =sub_80F1DC0 bl SetMainCallback2 _080F2A8C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2A94: .4byte 0x00003f42 _080F2A98: .4byte sub_80F2AA4 _080F2A9C: .4byte gUnknown_203AB38 _080F2AA0: .4byte sub_80F1DC0 thumb_func_end sub_80F2978 thumb_func_start sub_80F2AA4 sub_80F2AA4: @ 80F2AA4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F2AD8 @ =0x00000226 str r0, [sp] movs r0, 0 movs r1, 0x1E movs r2, 0 movs r3, 0xC bl CreateWindow_SnapRight_StdPal movs r0, 0x3 bl Save_LoadGameData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080F2AE4 ldr r0, _080F2ADC @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _080F2AE0 @ =sub_80F30A4 b _080F2B5A .align 2, 0 _080F2AD8: .4byte 0x00000226 _080F2ADC: .4byte gTasks _080F2AE0: .4byte sub_80F30A4 _080F2AE4: ldr r0, _080F2B2C @ =gDecompressionBuffer ldr r4, _080F2B30 @ =gUnknown_203AB38 ldr r1, [r4] movs r2, 0x80 lsls r2, 5 bl CpuSet ldr r4, [r4] movs r2, 0 ldrh r1, [r4, 0x8] ldr r3, _080F2B34 @ =0x000001ff adds r0, r3, 0 ands r0, r1 lsls r5, r6, 2 cmp r0, 0 beq _080F2B1A _080F2B04: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 adds r4, 0x78 cmp r2, 0x31 bhi _080F2B3C ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080F2B04 _080F2B1A: cmp r2, 0x31 bhi _080F2B3C ldr r0, _080F2B38 @ =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r0 subs r0, r2, 0x1 b _080F2B46 .align 2, 0 _080F2B2C: .4byte gDecompressionBuffer _080F2B30: .4byte gUnknown_203AB38 _080F2B34: .4byte 0x000001ff _080F2B38: .4byte gTasks _080F2B3C: ldr r0, _080F2B64 @ =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r0 movs r0, 0x31 _080F2B46: strh r0, [r1, 0x8] movs r0, 0xA bl GetGameStat ldr r2, _080F2B64 @ =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r2 strh r0, [r1, 0xA] ldr r0, _080F2B68 @ =sub_80F2B6C _080F2B5A: str r0, [r1] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F2B64: .4byte gTasks _080F2B68: .4byte sub_80F2B6C thumb_func_end sub_80F2AA4 thumb_func_start sub_80F2B6C sub_80F2B6C: @ 80F2B6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080F2C24 @ =gUnknown_203AB38 ldr r3, [r0] movs r5, 0 ldr r1, _080F2C28 @ =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 movs r4, 0x8 ldrsh r0, [r0, r4] adds r4, r1, 0 ldr r2, _080F2C2C @ =gUnknown_203AB34 cmp r5, r0 bge _080F2BAA adds r1, r0, 0 _080F2B9E: adds r3, 0x78 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r1 blt _080F2B9E _080F2BAA: adds r6, r3, 0 movs r0, 0 str r0, [r2] mov r5, r9 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r4 strh r0, [r1, 0xC] strh r0, [r1, 0x10] movs r5, 0 str r2, [sp, 0x14] ldr r4, _080F2C30 @ =0x000001ff adds r2, r1, 0 _080F2BC6: ldrh r1, [r6, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080F2BD6 ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] _080F2BD6: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x14 cmp r5, 0x5 bls _080F2BC6 adds r6, r3, 0 movs r5, 0 ldr r1, _080F2C28 @ =gTasks ldr r0, [sp, 0x14] add r0, r9 lsls r0, 3 mov r8, r0 adds r0, r1 str r0, [sp, 0x10] adds r1, 0x8 mov r10, r1 _080F2BF8: ldrh r1, [r6, 0x8] ldr r2, _080F2C30 @ =0x000001ff adds r0, r2, 0 ands r0, r1 adds r7, r1, 0 cmp r0, 0 beq _080F2CA8 ldr r4, [sp, 0x10] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x3 ble _080F2C3C lsls r1, r5, 3 ldr r0, _080F2C34 @ =gUnknown_840C268 adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r2, _080F2C38 @ =gUnknown_840C26E adds r1, r2 ldrh r4, [r1] b _080F2C4C .align 2, 0 _080F2C24: .4byte gUnknown_203AB38 _080F2C28: .4byte gTasks _080F2C2C: .4byte gUnknown_203AB34 _080F2C30: .4byte 0x000001ff _080F2C34: .4byte gUnknown_840C268 _080F2C38: .4byte gUnknown_840C26E _080F2C3C: ldr r0, _080F2C9C @ =gUnknown_840C298 lsls r2, r5, 3 adds r1, r0, 0x4 adds r1, r2, r1 ldrh r3, [r1] adds r0, 0x6 adds r2, r0 ldrh r4, [r2] _080F2C4C: lsls r0, r7, 23 lsrs r0, 23 ldr r1, [r6] ldr r2, [r6, 0x4] lsls r3, 16 asrs r3, 16 str r3, [sp] lsls r3, r4, 16 asrs r3, 16 str r3, [sp, 0x4] lsls r3, r5, 24 lsrs r3, 24 str r3, [sp, 0x8] ldr r3, _080F2CA0 @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r0, 16 ldr r2, _080F2CA4 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r2, r4, 0 ands r3, r2 movs r2, 0x4 orrs r3, r2 strb r3, [r1, 0x5] adds r1, r5, 0x5 lsls r1, 1 add r1, r8 add r1, r10 strh r0, [r1] b _080F2CB4 .align 2, 0 _080F2C9C: .4byte gUnknown_840C298 _080F2CA0: .4byte 0x0000ffff _080F2CA4: .4byte gSprites _080F2CA8: adds r0, r5, 0x5 lsls r0, 1 add r0, r8 add r0, r10 movs r1, 0xFF strh r1, [r0] _080F2CB4: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x14 cmp r5, 0x5 bls _080F2BF8 ldr r0, _080F2D08 @ =0xffff0000 ldr r2, _080F2D0C @ =0x00007716 movs r1, 0xC bl BlendPalettes ldr r0, _080F2D10 @ =gStringVar1 ldr r1, _080F2D14 @ =gTasks ldr r4, [sp, 0x14] add r4, r9 lsls r4, 3 adds r4, r1 movs r5, 0xA ldrsh r1, [r4, r5] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r5, _080F2D18 @ =gStringVar4 ldr r1, _080F2D1C @ =gUnknown_84160B4 adds r0, r5, 0 bl StringExpandPlaceholders movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bgt _080F2D24 ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 bl Menu_PrintHelpSystemUIHeader b _080F2D34 .align 2, 0 _080F2D08: .4byte 0xffff0000 _080F2D0C: .4byte 0x00007716 _080F2D10: .4byte gStringVar1 _080F2D14: .4byte gTasks _080F2D18: .4byte gStringVar4 _080F2D1C: .4byte gUnknown_84160B4 _080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel _080F2D24: ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 bl Menu_PrintHelpSystemUIHeader _080F2D34: ldr r0, _080F2D58 @ =gTasks ldr r1, [sp, 0x14] add r1, r9 lsls r1, 3 adds r1, r0 ldr r0, _080F2D5C @ =Task_HofPC_PrintMonInfo str r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack _080F2D58: .4byte gTasks _080F2D5C: .4byte Task_HofPC_PrintMonInfo thumb_func_end sub_80F2B6C thumb_func_start Task_HofPC_PrintMonInfo Task_HofPC_PrintMonInfo: @ 80F2D60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F2E68 @ =gUnknown_203AB38 ldr r5, [r0] movs r3, 0 ldr r1, _080F2E6C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r3, r0 bge _080F2D94 adds r1, r0, 0 _080F2D88: adds r5, 0x78 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 blt _080F2D88 _080F2D94: movs r3, 0 lsls r7, r4, 2 adds r0, r7, r4 lsls r6, r0, 3 ldr r0, _080F2E70 @ =gTasks+0x8 mov r10, r0 ldr r1, _080F2E74 @ =gSprites mov r8, r1 movs r2, 0xD negs r2, r2 mov r9, r2 movs r0, 0x4 mov r12, r0 _080F2DAE: adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 add r0, r10 ldrh r1, [r0] cmp r1, 0xFF beq _080F2DD0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] mov r1, r9 ands r1, r2 mov r2, r12 orrs r1, r2 strb r1, [r0, 0x5] _080F2DD0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080F2DAE adds r1, r7, r4 lsls r1, 3 ldr r0, _080F2E6C @ =gTasks adds r6, r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] adds r0, 0x5 lsls r0, 1 adds r0, r1 ldr r1, _080F2E6C @ =gTasks adds r1, 0x8 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F2E74 @ =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] lsrs r1, 4 movs r0, 0x80 lsls r0, 9 lsls r0, r1 ldr r1, _080F2E78 @ =0xffff0000 eors r0, r1 ldr r2, _080F2E7C @ =gUnknown_203AB34 str r0, [r2] ldr r2, _080F2E80 @ =0x00007716 movs r1, 0xC bl BlendPalettesUnfaded movs r0, 0xC ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, r5, r0 ldrh r1, [r4, 0x8] ldr r0, _080F2E84 @ =0x000001ff ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080F2E4A bl StopCryAndClearCrySongs ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0 bl PlayCry1 _080F2E4A: adds r0, r4, 0 movs r1, 0 movs r2, 0xE bl sub_80F3194 ldr r0, _080F2E88 @ =Task_HofPC_HandleInput str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2E68: .4byte gUnknown_203AB38 _080F2E6C: .4byte gTasks _080F2E70: .4byte gTasks+0x8 _080F2E74: .4byte gSprites _080F2E78: .4byte 0xffff0000 _080F2E7C: .4byte gUnknown_203AB34 _080F2E80: .4byte 0x00007716 _080F2E84: .4byte 0x000001ff _080F2E88: .4byte Task_HofPC_HandleInput thumb_func_end Task_HofPC_PrintMonInfo thumb_func_start Task_HofPC_HandleInput Task_HofPC_HandleInput: @ 80F2E8C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080F2F00 @ =gMain ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r3, r1, 0 cmp r0, 0 beq _080F2F38 ldr r7, _080F2F04 @ =gTasks lsls r0, r5, 2 adds r1, r0, r5 lsls r3, r1, 3 adds r4, r3, r7 ldrh r2, [r4, 0x8] movs r6, 0x8 ldrsh r1, [r4, r6] mov r8, r0 cmp r1, 0 beq _080F2F0C subs r0, r2, 0x1 strh r0, [r4, 0x8] movs r4, 0 adds r6, r3, 0 adds r7, 0x8 _080F2EC4: adds r0, r4, 0x5 lsls r0, 1 adds r0, r6 adds r0, r7 ldrb r0, [r0] cmp r0, 0xFF beq _080F2ED6 bl FreeAndDestroyMonPicSprite _080F2ED6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x5 bls _080F2EC4 ldr r0, _080F2F04 @ =gTasks mov r2, r8 adds r1, r2, r5 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _080F2EF8 subs r0, r2, 0x1 strh r0, [r1, 0xA] _080F2EF8: ldr r0, _080F2F08 @ =sub_80F2B6C str r0, [r1] b _080F2FD8 .align 2, 0 _080F2F00: .4byte gMain _080F2F04: .4byte gTasks _080F2F08: .4byte sub_80F2B6C _080F2F0C: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _080F2F26 bl StopCryAndClearCrySongs ldr r0, _080F2F2C @ =gMPlayInfo_BGM ldr r1, _080F2F30 @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _080F2F26: ldr r0, _080F2F34 @ =sub_80F2FEC str r0, [r4] b _080F2FD8 .align 2, 0 _080F2F2C: .4byte gMPlayInfo_BGM _080F2F30: .4byte 0x0000ffff _080F2F34: .4byte sub_80F2FEC _080F2F38: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080F2F7C bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _080F2F5A bl StopCryAndClearCrySongs ldr r0, _080F2F6C @ =gMPlayInfo_BGM ldr r1, _080F2F70 @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _080F2F5A: ldr r0, _080F2F74 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080F2F78 @ =sub_80F2FEC str r0, [r1] b _080F2FD8 .align 2, 0 _080F2F6C: .4byte gMPlayInfo_BGM _080F2F70: .4byte 0x0000ffff _080F2F74: .4byte gTasks _080F2F78: .4byte sub_80F2FEC _080F2F7C: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _080F2FAC ldr r0, _080F2FA4 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _080F2FAC subs r0, r2, 0x1 strh r0, [r1, 0xC] ldr r0, _080F2FA8 @ =Task_HofPC_PrintMonInfo str r0, [r1] b _080F2FD8 .align 2, 0 _080F2FA4: .4byte gTasks _080F2FA8: .4byte Task_HofPC_PrintMonInfo _080F2FAC: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F2FD8 ldr r1, _080F2FE4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 movs r6, 0xC ldrsh r1, [r2, r6] movs r3, 0x10 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _080F2FD8 ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ldr r0, _080F2FE8 @ =Task_HofPC_PrintMonInfo str r0, [r2] _080F2FD8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2FE4: .4byte gTasks _080F2FE8: .4byte Task_HofPC_PrintMonInfo thumb_func_end Task_HofPC_HandleInput thumb_func_start sub_80F2FEC sub_80F2FEC: @ 80F2FEC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F3020 @ =gPlttBufferFaded ldr r1, _080F3024 @ =gPlttBufferUnfaded movs r2, 0x80 lsls r2, 2 bl CpuSet movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80A0A70 ldr r1, _080F3028 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F302C @ =sub_80F3030 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080F3020: .4byte gPlttBufferFaded _080F3024: .4byte gPlttBufferUnfaded _080F3028: .4byte gTasks _080F302C: .4byte sub_80F3030 thumb_func_end sub_80F2FEC thumb_func_start sub_80F3030 sub_80F3030: @ 80F3030 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80A0AAC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080F3094 movs r0, 0 bl HideBg movs r0, 0x1 bl HideBg movs r0, 0x3 bl HideBg bl sub_810F740 bl FreeAllWindowBuffers movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x3 bl UnsetBgTilemapBuffer movs r0, 0 bl ResetBgsAndClearDma3BusyFlags adds r0, r5, 0 bl DestroyTask ldr r5, _080F309C @ =gUnknown_203AB3C ldr r0, [r5] cmp r0, 0 beq _080F3082 bl Free str r4, [r5] _080F3082: ldr r5, _080F30A0 @ =gUnknown_203AB38 ldr r0, [r5] cmp r0, 0 beq _080F3090 bl Free str r4, [r5] _080F3090: bl ReturnFromHallOfFamePC _080F3094: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F309C: .4byte gUnknown_203AB3C _080F30A0: .4byte gUnknown_203AB38 thumb_func_end sub_80F3030 thumb_func_start sub_80F30A4 sub_80F30A4: @ 80F30A4 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F30FC @ =gText_ABUTTONExit movs r1, 0x8 movs r2, 0x1 bl PrintTextOnRightSnappedWindow movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, _080F3100 @ =gUnknown_8416090 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0 bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, _080F3104 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F3108 @ =Task_HofPC_ExitOnButtonPress str r1, [r0] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _080F30FC: .4byte gText_ABUTTONExit _080F3100: .4byte gUnknown_8416090 _080F3104: .4byte gTasks _080F3108: .4byte Task_HofPC_ExitOnButtonPress thumb_func_end sub_80F30A4 thumb_func_start Task_HofPC_ExitOnButtonPress Task_HofPC_ExitOnButtonPress: @ 80F310C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080F3130 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F312C ldr r0, _080F3134 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080F3138 @ =sub_80F2FEC str r0, [r1] _080F312C: pop {r0} bx r0 .align 2, 0 _080F3130: .4byte gMain _080F3134: .4byte gTasks _080F3138: .4byte sub_80F2FEC thumb_func_end Task_HofPC_ExitOnButtonPress thumb_func_start HallOfFame_PrintWelcomeText HallOfFame_PrintWelcomeText: @ 80F313C push {r4,r5,lr} sub sp, 0xC ldr r5, _080F318C @ =gUnknown_8416008 movs r0, 0x2 adds r1, r5, 0 movs r2, 0 bl GetStringWidth movs r4, 0xD0 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap ldr r0, _080F3190 @ =gUnknown_840C23C str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x2 adds r2, r4, 0 movs r3, 0x1 bl AddTextPrinterParameterized3 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F318C: .4byte gUnknown_8416008 _080F3190: .4byte gUnknown_840C23C thumb_func_end HallOfFame_PrintWelcomeText thumb_func_start sub_80F3194 sub_80F3194: @ 80F3194 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x34 adds r7, r0, 0 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap ldrh r0, [r7, 0x8] ldr r1, _080F3214 @ =0x000001ff ands r1, r0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _080F3252 add r4, sp, 0x1C ldr r1, _080F3218 @ =gUnknown_84160EC adds r0, r4, 0 bl StringCopy ldrh r0, [r7, 0x8] lsls r0, 23 lsrs r0, 23 bl sub_8043F90 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F321C @ =0x0000ffff mov r8, r4 cmp r6, r0 beq _080F3220 add r4, sp, 0xC adds r0, r6, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] add r5, sp, 0xC adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] add r5, sp, 0xC adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] b _080F322E .align 2, 0 _080F3214: .4byte 0x000001ff _080F3218: .4byte gUnknown_84160EC _080F321C: .4byte 0x0000ffff _080F3220: add r3, sp, 0xC adds r2, r3, 0 adds r1, r2, 0 movs r0, 0xAC strb r0, [r1, 0x2] strb r0, [r2, 0x1] strb r0, [r3] _080F322E: add r1, sp, 0xC movs r0, 0xFF strb r0, [r1, 0x3] mov r0, r8 bl StringAppend ldr r0, _080F32B8 @ =gUnknown_840C23C str r0, [sp] movs r0, 0 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x10 movs r3, 0x1 bl AddTextPrinterParameterized3 _080F3252: movs r2, 0 ldrb r0, [r7, 0xA] cmp r0, 0xFF beq _080F327C adds r3, r7, 0 adds r3, 0xA _080F325E: mov r1, sp adds r1, r2 adds r1, 0xC adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9 bhi _080F327C adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF bne _080F325E _080F327C: mov r1, sp adds r1, r2 adds r1, 0xC movs r0, 0xFF strb r0, [r1] movs r0, 0x2 movs r1, 0x2 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x2 add r1, sp, 0xC bl GetStringWidth adds r2, r0, 0 ldrh r1, [r7, 0x8] ldr r0, _080F32BC @ =0x000001ff ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _080F32C0 lsrs r0, r2, 31 adds r0, r2, r0 asrs r0, 1 movs r1, 0x80 subs r0, r1, r0 b _080F32C4 .align 2, 0 _080F32B8: .4byte gUnknown_840C23C _080F32BC: .4byte 0x000001ff _080F32C0: movs r0, 0x80 subs r0, r2 _080F32C4: lsls r2, r0, 24 lsrs r2, 24 ldr r0, _080F331C @ =gUnknown_840C23C str r0, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParameterized3 ldrh r2, [r7, 0x8] ldr r4, _080F3320 @ =0x000001ff adds r0, r4, 0 ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080F33BA add r1, sp, 0xC movs r0, 0xBA strb r0, [r1] mov r0, sp adds r0, 0xD lsls r1, r2, 23 lsrs r1, 23 movs r2, 0xB muls r1, r2 ldr r2, _080F3324 @ =gSpeciesNames adds r1, r2 bl StringCopy adds r6, r0, 0 ldrh r1, [r7, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0x20 beq _080F3318 cmp r0, 0x1D bne _080F3328 _080F3318: movs r0, 0xFF b _080F333A .align 2, 0 _080F331C: .4byte gUnknown_840C23C _080F3320: .4byte 0x000001ff _080F3324: .4byte gSpeciesNames _080F3328: lsls r0, r1, 23 lsrs r0, 23 ldr r1, [r7, 0x4] bl GetGenderFromSpeciesAndPersonality lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080F3342 _080F333A: cmp r0, 0xFE beq _080F3346 movs r0, 0 b _080F3348 _080F3342: movs r0, 0xB5 b _080F3348 _080F3346: movs r0, 0xB6 _080F3348: strb r0, [r6] adds r6, 0x1 movs r0, 0xFF strb r0, [r6] ldr r5, _080F33D0 @ =gUnknown_840C23C str r5, [sp] movs r4, 0 str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x80 movs r3, 0x1 bl AddTextPrinterParameterized3 ldr r1, _080F33D4 @ =gUnknown_84160F4 add r0, sp, 0xC bl StringCopy adds r6, r0, 0 ldrb r1, [r7, 0x9] lsrs r1, 1 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x20 movs r3, 0x11 bl AddTextPrinterParameterized3 ldr r1, _080F33D8 @ =gUnknown_8416104 add r0, sp, 0xC bl StringCopy adds r6, r0, 0 ldrh r1, [r7] movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x60 movs r3, 0x11 bl AddTextPrinterParameterized3 _080F33BA: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0x34 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F33D0: .4byte gUnknown_840C23C _080F33D4: .4byte gUnknown_84160F4 _080F33D8: .4byte gUnknown_8416104 thumb_func_end sub_80F3194 thumb_func_start sub_80F33DC sub_80F33DC: @ 80F33DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C ldr r0, _080F35EC @ =gUnknown_840C234 ldrb r6, [r0, 0x3] lsls r6, 3 subs r0, r6, 0x6 str r0, [sp, 0x28] movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x1 bl PutWindowTilemap ldr r2, _080F35F0 @ =0x0000021d movs r0, 0x1 movs r1, 0 movs r3, 0xD bl SetWindowBorderStyle movs r7, 0 str r7, [sp] str r7, [sp, 0x4] ldr r1, _080F35F4 @ =gUnknown_840C240 mov r9, r1 str r1, [sp, 0x8] str r7, [sp, 0xC] ldr r0, _080F35F8 @ =gUnknown_84160FC str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 bl AddTextPrinterParameterized4 ldr r0, _080F35FC @ =gSaveBlock2Ptr mov r10, r0 ldr r1, [r0] movs r0, 0x2 movs r2, 0 bl GetStringWidth adds r2, r0, 0 ldr r1, [sp, 0x28] subs r2, r1, r2 lsls r2, 24 lsrs r2, 24 mov r0, r9 str r0, [sp] str r7, [sp, 0x4] mov r1, r10 ldr r0, [r1] str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r3, 0x3 bl AddTextPrinterParameterized3 mov r1, r10 ldr r0, [r1] ldrb r4, [r0, 0xA] ldrb r0, [r0, 0xB] lsls r0, 8 orrs r4, r0 mov r0, r9 str r0, [sp] str r7, [sp, 0x4] ldr r0, _080F3600 @ =gUnknown_8416104 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x12 bl AddTextPrinterParameterized3 add r1, sp, 0x14 mov r8, r1 ldr r1, _080F3604 @ =0x000186a0 adds r0, r4, 0 bl __modsi3 ldr r5, _080F3608 @ =0x00002710 adds r1, r5, 0 bl __divsi3 subs r0, 0x5F mov r1, r8 strb r0, [r1] add r0, sp, 0x14 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r5, 0xFA lsls r5, 2 adds r1, r5, 0 bl __udivsi3 adds r0, 0xA1 mov r1, r8 strb r0, [r1, 0x1] add r0, sp, 0x14 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 mov r1, r8 strb r0, [r1, 0x2] add r5, sp, 0x14 adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x3] add r5, sp, 0x14 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x4] add r1, sp, 0x14 movs r0, 0xFF strb r0, [r1, 0x5] subs r6, 0x24 lsls r6, 24 lsrs r6, 24 mov r0, r9 str r0, [sp] str r7, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 adds r2, r6, 0 movs r3, 0x12 bl AddTextPrinterParameterized3 mov r1, r9 str r1, [sp] str r7, [sp, 0x4] ldr r0, _080F360C @ =gUnknown_8415CE8 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x20 bl AddTextPrinterParameterized3 add r5, sp, 0x14 mov r0, r10 ldr r4, [r0] ldrh r0, [r4, 0xE] movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r5] add r5, sp, 0x14 ldrh r0, [r4, 0xE] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] add r5, sp, 0x14 ldrh r0, [r4, 0xE] movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] add r0, sp, 0x14 ldrb r0, [r0] cmp r0, 0xA1 bne _080F3570 add r0, sp, 0x14 strb r7, [r0] _080F3570: add r0, sp, 0x14 ldrb r1, [r0] cmp r1, 0 bne _080F3582 ldrb r0, [r0, 0x1] cmp r0, 0xA1 bne _080F3582 add r0, sp, 0x14 strb r1, [r0, 0x1] _080F3582: add r1, sp, 0x14 movs r6, 0 movs r0, 0xF0 strb r0, [r1, 0x3] adds r4, r1, 0 ldr r0, _080F35FC @ =gSaveBlock2Ptr ldr r5, [r0] ldrb r0, [r5, 0x10] movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4, 0x4] add r4, sp, 0x14 ldrb r0, [r5, 0x10] movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4, 0x5] add r1, sp, 0x14 movs r0, 0xFF strb r0, [r1, 0x6] ldr r2, [sp, 0x28] subs r2, 0x24 lsls r2, 24 lsrs r2, 24 ldr r0, _080F35F4 @ =gUnknown_840C240 str r0, [sp] str r6, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r3, 0x20 bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F35EC: .4byte gUnknown_840C234 _080F35F0: .4byte 0x0000021d _080F35F4: .4byte gUnknown_840C240 _080F35F8: .4byte gUnknown_84160FC _080F35FC: .4byte gSaveBlock2Ptr _080F3600: .4byte gUnknown_8416104 _080F3604: .4byte 0x000186a0 _080F3608: .4byte 0x00002710 _080F360C: .4byte gUnknown_8415CE8 thumb_func_end sub_80F33DC thumb_func_start ClearVramOamPltt_LoadHofPal ClearVramOamPltt_LoadHofPal: @ 80F3610 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _080F36B0 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _080F36B4 @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080F3636: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _080F3636 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _080F36B0 @ =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl ResetPaletteFade ldr r0, _080F36B8 @ =gUnknown_840C39C movs r1, 0 movs r2, 0x20 bl LoadPalette add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F36B0: .4byte 0x040000d4 _080F36B4: .4byte 0x81000800 _080F36B8: .4byte gUnknown_840C39C thumb_func_end ClearVramOamPltt_LoadHofPal thumb_func_start sub_80F36BC sub_80F36BC: @ 80F36BC push {lr} bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl reset_temp_tile_data_buffers bl ResetAllPicSprites bl FreeAllSpritePalettes ldr r1, _080F36EC @ =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, _080F36F0 @ =gUnknown_840C248 bl LoadCompressedObjectPic ldr r0, _080F36F4 @ =gUnknown_840C258 bl LoadCompressedObjectPalette pop {r0} bx r0 .align 2, 0 _080F36EC: .4byte gReservedSpritePaletteCount _080F36F0: .4byte gUnknown_840C248 _080F36F4: .4byte gUnknown_840C258 thumb_func_end sub_80F36BC thumb_func_start sub_80F36F8 sub_80F36F8: @ 80F36F8 push {r4,lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080F3764 @ =gUnknown_840C228 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, _080F3768 @ =gUnknown_203AB3C ldr r1, [r4] adds r1, 0x6 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _080F376C @ =0x00001006 adds r1, r0 movs r0, 0x3 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 movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY pop {r4} pop {r0} bx r0 .align 2, 0 _080F3764: .4byte gUnknown_840C228 _080F3768: .4byte gUnknown_203AB3C _080F376C: .4byte 0x00001006 thumb_func_end sub_80F36F8 thumb_func_start sub_80F3770 sub_80F3770: @ 80F3770 push {r4,lr} sub sp, 0x8 ldr r0, _080F3788 @ =gUnknown_203AB3C ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x4 bhi _080F3854 lsls r0, 2 ldr r1, _080F378C @ =_080F3790 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F3788: .4byte gUnknown_203AB3C _080F378C: .4byte _080F3790 .align 2, 0 _080F3790: .4byte _080F37A4 .4byte _080F37BC .4byte _080F37C8 .4byte _080F381E .4byte _080F3828 _080F37A4: ldr r1, _080F37B8 @ =gUnknown_840C3BC movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _080F3854 .align 2, 0 _080F37B8: .4byte gUnknown_840C3BC _080F37BC: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _080F3854 b _080F385E _080F37C8: movs r4, 0x20 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x3 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0xE bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0x2 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080F3854 _080F381E: bl InitStandardTextBoxWindows bl ResetBg0 b _080F3854 _080F3828: movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x3 bl ShowBg ldr r0, _080F3850 @ =gUnknown_203AB3C ldr r1, [r0] movs r0, 0 strh r0, [r1] b _080F3860 .align 2, 0 _080F3850: .4byte gUnknown_203AB3C _080F3854: ldr r0, _080F3868 @ =gUnknown_203AB3C ldr r1, [r0] ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F385E: movs r0, 0x1 _080F3860: add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080F3868: .4byte gUnknown_203AB3C thumb_func_end sub_80F3770 thumb_func_start nullsub_84 nullsub_84: @ 80F386C bx lr thumb_func_end nullsub_84 thumb_func_start sub_80F3870 sub_80F3870: @ 80F3870 push {r4,lr} adds r2, r0, 0 ldr r1, [r2, 0x20] ldr r0, [r2, 0x30] cmp r1, r0 beq _080F38C6 ldrh r3, [r2, 0x20] movs r1, 0x20 ldrsh r0, [r2, r1] movs r4, 0x30 ldrsh r1, [r2, r4] cmp r0, r1 bge _080F3890 adds r0, r3, 0 adds r0, 0xF strh r0, [r2, 0x20] _080F3890: ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, r1 ble _080F38A0 adds r0, r3, 0 subs r0, 0xF strh r0, [r2, 0x20] _080F38A0: ldrh r3, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bge _080F38B4 adds r0, r3, 0 adds r0, 0xA strh r0, [r2, 0x22] _080F38B4: ldrh r3, [r2, 0x22] movs r4, 0x22 ldrsh r0, [r2, r4] cmp r0, r1 ble _080F38CE adds r0, r3, 0 subs r0, 0xA strh r0, [r2, 0x22] b _080F38CE _080F38C6: movs r0, 0x1 strh r0, [r2, 0x2E] ldr r0, _080F38D4 @ =nullsub_84 str r0, [r2, 0x1C] _080F38CE: pop {r4} pop {r0} bx r0 .align 2, 0 _080F38D4: .4byte nullsub_84 thumb_func_end sub_80F3870 thumb_func_start sub_80F38D8 sub_80F38D8: @ 80F38D8 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x26] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r0, 0x78 ble _080F38EE adds r0, r5, 0 bl DestroySprite b _080F3926 _080F38EE: adds r0, r1, 0x1 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x26] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, 0x8 ldr r1, _080F392C @ =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] muls r0, r1 cmp r0, 0 bge _080F391C adds r0, 0xFF _080F391C: asrs r0, 8 strh r0, [r5, 0x24] ldrh r0, [r5, 0x2E] adds r0, 0x4 strh r0, [r5, 0x2E] _080F3926: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F392C: .4byte gSineTable thumb_func_end sub_80F38D8 thumb_func_start sub_80F3930 sub_80F3930: @ 80F3930 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x7 ands r2, r0 negs r2, r2 ldr r0, _080F39A0 @ =gUnknown_840C384 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r1, r4, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080F39A4 @ =gSprites adds r4, r1, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0 beq _080F39A8 movs r0, 0 b _080F39AA .align 2, 0 _080F39A0: .4byte gUnknown_840C384 _080F39A4: .4byte gSprites _080F39A8: movs r0, 0x1 _080F39AA: strh r0, [r4, 0x30] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F3930 .align 2, 0 @ Don't pad with nop.