summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokedex_screen.s320
-rw-r--r--src/pokedex_screen.c94
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;
+}