diff options
-rw-r--r-- | asm/pokedex_screen.s | 320 | ||||
-rw-r--r-- | src/pokedex_screen.c | 94 |
2 files changed, 94 insertions, 320 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index c0e6b3395..4bd153c77 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -5,326 +5,6 @@ .text - thumb_func_start sub_81052D0 -sub_81052D0: @ 81052D0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - bl IsNationalPokedexEnabled - cmp r0, 0 - beq _081052E8 - ldr r0, _081052E4 @ =gUnknown_84406E0 - b _081052EA - .align 2, 0 -_081052E4: .4byte gUnknown_84406E0 -_081052E8: - ldr r0, _08105304 @ =gUnknown_84404C8 -_081052EA: - ldrh r4, [r0, 0xE] - ldr r1, _08105308 @ =gUnknown_203ACF0 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0x9 - bls _081052FA - b _0810557C -_081052FA: - lsls r0, 2 - ldr r1, _0810530C @ =_08105310 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08105304: .4byte gUnknown_84404C8 -_08105308: .4byte gUnknown_203ACF0 -_0810530C: .4byte _08105310 - .align 2, 0 -_08105310: - .4byte _08105338 - .4byte _08105358 - .4byte _08105364 - .4byte _08105384 - .4byte _081053DC - .4byte _0810547C - .4byte _08105492 - .4byte _081054F0 - .4byte _08105528 - .4byte _0810555C -_08105338: - movs r0, 0xC0 - lsls r0, 5 - bl Alloc - ldr r1, _08105350 @ =gUnknown_203ACF0 - ldr r1, [r1] - str r0, [r1, 0x5C] - cmp r6, 0 - beq _08105354 - movs r0, 0x6 - b _0810557A - .align 2, 0 -_08105350: .4byte gUnknown_203ACF0 -_08105354: - movs r0, 0x2 - b _0810557A -_08105358: - ldr r0, [r5] - ldr r0, [r0, 0x5C] - bl Free - movs r0, 0x1 - b _0810557E -_08105364: - ldr r0, _0810537C @ =0x00007fff - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08105380 @ =gUnknown_203ACF0 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - b _0810557A - .align 2, 0 -_0810537C: .4byte 0x00007fff -_08105380: .4byte gUnknown_203ACF0 -_08105384: - movs r0, 0x1E - str r0, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0xC - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r5, 0x20 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r0, _081053D8 @ =gUnknown_203ACF0 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - b _0810557A - .align 2, 0 -_081053D8: .4byte gUnknown_203ACF0 -_081053DC: - ldr r0, _08105474 @ =0x00007fff - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - bl sub_8104F0C - movs r0, 0x3 - bl GetBgTilemapBuffer - ldr r6, _08105478 @ =gUnknown_203ACF0 - ldr r1, [r6] - ldr r1, [r1, 0x5C] - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - bl CpuFastSet - movs r0, 0x2 - bl GetBgTilemapBuffer - ldr r1, [r6] - ldr r1, [r1, 0x5C] - movs r2, 0x80 - lsls r2, 4 - adds r1, r2 - adds r2, r4, 0 - bl CpuFastSet - movs r0, 0x1 - bl GetBgTilemapBuffer - ldr r1, [r6] - ldr r1, [r1, 0x5C] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - adds r2, r4, 0 - bl CpuFastSet - movs r0, 0x1E - str r0, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0xC - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r5, 0x20 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, [r6] - movs r0, 0 - strb r0, [r1, 0x3] - ldr r1, [r6] - b _081054DC - .align 2, 0 -_08105474: .4byte 0x00007fff -_08105478: .4byte gUnknown_203ACF0 -_0810547C: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - cmp r0, 0x9 - bhi _08105578 - bl sub_81051F0 - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - b _0810557C -_08105492: - movs r0, 0x3 - bl GetBgTilemapBuffer - ldr r4, _081054EC @ =gUnknown_203ACF0 - ldr r1, [r4] - ldr r1, [r1, 0x5C] - movs r5, 0x80 - lsls r5, 2 - adds r2, r5, 0 - bl CpuFastSet - movs r0, 0x2 - bl GetBgTilemapBuffer - ldr r1, [r4] - ldr r1, [r1, 0x5C] - movs r2, 0x80 - lsls r2, 4 - adds r1, r2 - adds r2, r5, 0 - bl CpuFastSet - movs r0, 0x1 - bl GetBgTilemapBuffer - ldr r1, [r4] - ldr r1, [r1, 0x5C] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - adds r2, r5, 0 - bl CpuFastSet - ldr r1, [r4] - movs r0, 0x9 - strb r0, [r1, 0x3] - ldr r1, [r4] -_081054DC: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - movs r0, 0x6B - bl PlaySE - b _0810557C - .align 2, 0 -_081054EC: .4byte gUnknown_203ACF0 -_081054F0: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _08105506 - bl sub_81051F0 - ldr r1, [r5] - ldrb r0, [r1, 0x3] - subs r0, 0x1 - strb r0, [r1, 0x3] - b _0810557C -_08105506: - ldrb r0, [r1, 0x2] - bl sub_81051F0 - ldr r0, _08105524 @ =0x00007fff - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - b _0810557A - .align 2, 0 -_08105524: .4byte 0x00007fff -_08105528: - ldr r2, _08105554 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - movs r0, 0 - bl sub_8104F0C - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r0, _08105558 @ =gUnknown_203ACF0 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - b _0810557A - .align 2, 0 -_08105554: .4byte gPaletteFade -_08105558: .4byte gUnknown_203ACF0 -_0810555C: - ldr r2, _08105588 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0810558C @ =0x00007fff - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08105590 @ =gUnknown_203ACF0 - ldr r1, [r0] -_08105578: - movs r0, 0x1 -_0810557A: - strb r0, [r1, 0x2] -_0810557C: - movs r0, 0 -_0810557E: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08105588: .4byte gPaletteFade -_0810558C: .4byte 0x00007fff -_08105590: .4byte gUnknown_203ACF0 - thumb_func_end sub_81052D0 - thumb_func_start sub_8105594 sub_8105594: @ 8105594 push {r4-r7,lr} diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index f54b9b1d6..3d649d312 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -1980,3 +1980,97 @@ bool8 sub_81051F0(u8 a0) CopyBgTilemapBufferToVram(3); return FALSE; } + +bool8 sub_81052D0(u8 a0) +{ + u16 r4; + if (IsNationalPokedexEnabled()) + r4 = gUnknown_84406E0[7]; + else + r4 = gUnknown_84404C8[7]; + switch (gUnknown_203ACF0->field_02) + { + case 0: + gUnknown_203ACF0->field_5C = Alloc(3 * BG_SCREEN_SIZE); + if (a0) + gUnknown_203ACF0->field_02 = 6; + else + gUnknown_203ACF0->field_02 = 2; + break; + case 1: + Free(gUnknown_203ACF0->field_5C); + return TRUE; + case 2: + BeginNormalPaletteFade(0x00007FFF, 0, 0, 16, r4); + gUnknown_203ACF0->field_02++; + break; + case 3: + FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + gUnknown_203ACF0->field_02++; + break; + case 4: + BeginNormalPaletteFade(0x00007FFF, 0, 0, 0, r4); + sub_8104F0C(FALSE); + CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20); + gUnknown_203ACF0->field_03 = 0; + gUnknown_203ACF0->field_02++; + PlaySE(SE_TB_START); + break; + case 5: + if (gUnknown_203ACF0->field_03 < 10) + { + sub_81051F0(gUnknown_203ACF0->field_03); + gUnknown_203ACF0->field_03++; + } + else + { + gUnknown_203ACF0->field_02 = 1; + } + break; + case 6: + CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE); + gUnknown_203ACF0->field_03 = 9; + gUnknown_203ACF0->field_02++; + PlaySE(SE_TB_START); + break; + case 7: + if (gUnknown_203ACF0->field_03 != 0) + { + sub_81051F0(gUnknown_203ACF0->field_03); + gUnknown_203ACF0->field_03--; + } + else + { + sub_81051F0(gUnknown_203ACF0->field_02); + BeginNormalPaletteFade(0x00007FFF, 0, 16, 16, r4); + gUnknown_203ACF0->field_02++; + } + break; + case 8: + gPaletteFade.bufferTransferDisabled = TRUE; + sub_8104F0C(FALSE); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + gUnknown_203ACF0->field_02++; + break; + case 9: + gPaletteFade.bufferTransferDisabled = FALSE; + BeginNormalPaletteFade(0x00007FFF, 0, 16, 0, r4); + gUnknown_203ACF0->field_02 = 1; + break; + } + return FALSE; +} |