summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokedex_screen.s105
-rw-r--r--src/pokedex_screen.c35
2 files changed, 34 insertions, 106 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index 7b7c7e213..c0e6b3395 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -5,111 +5,6 @@
.text
- thumb_func_start sub_81051F0
-sub_81051F0: @ 81051F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetBgTilemapBuffer
- mov r10, r0
- movs r0, 0x2
- bl GetBgTilemapBuffer
- mov r9, r0
- movs r0, 0x3
- bl GetBgTilemapBuffer
- mov r8, r0
- ldr r0, _0810526C @ =gUnknown_203ACF0
- ldr r0, [r0]
- ldr r0, [r0, 0x5C]
- movs r1, 0x80
- lsls r1, 5
- adds r1, r0, r1
- str r1, [sp, 0x4]
- movs r1, 0x80
- lsls r1, 4
- adds r1, r0, r1
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
- movs r0, 0
- str r0, [sp]
- ldr r1, _08105270 @ =gUnknown_8452388
- movs r7, 0
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 1
- adds r6, r0, r1
-_08105242:
- ldrb r4, [r6]
- cmp r4, 0x1E
- bne _08105274
- lsrs r4, r7, 24
- movs r0, 0
- mov r1, r10
- adds r2, r4, 0
- bl sub_81051D0
- movs r0, 0
- mov r1, r9
- adds r2, r4, 0
- bl sub_81051D0
- movs r0, 0xC
- mov r1, r8
- adds r2, r4, 0
- bl sub_81051D0
- b _0810529A
- .align 2, 0
-_0810526C: .4byte gUnknown_203ACF0
-_08105270: .4byte gUnknown_8452388
-_08105274:
- lsrs r5, r7, 24
- ldr r0, [sp, 0x4]
- adds r1, r4, 0
- mov r2, r10
- adds r3, r5, 0
- bl sub_81051AC
- ldr r0, [sp, 0x8]
- adds r1, r4, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_81051AC
- ldr r0, [sp, 0xC]
- adds r1, r4, 0
- mov r2, r8
- adds r3, r5, 0
- bl sub_81051AC
-_0810529A:
- movs r1, 0x80
- lsls r1, 17
- adds r7, r1
- adds r6, 0x1
- ldr r0, [sp]
- adds r0, 0x1
- str r0, [sp]
- cmp r0, 0x1D
- ble _08105242
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81051F0
-
thumb_func_start sub_81052D0
sub_81052D0: @ 81052D0
push {r4-r6,lr}
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index 0590ed2e4..f54b9b1d6 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -66,7 +66,7 @@ struct PokedexScreenData
u16 field_48;
u8 filler_4A[0x10];
u16 field_5A;
- u8 filler_5C[0x4];
+ u16 * field_5C;
u8 field_60;
u8 field_61;
u16 field_62;
@@ -158,6 +158,7 @@ extern const struct WindowTemplate gUnknown_84521CC;
extern const u16 gUnknown_845228C[];
extern const u8 (*const gUnknown_8452334[])[4];
extern const u8 *const gUnknown_8452344[];
+extern const u8 gUnknown_8452388[][30];
extern const struct ScrollArrowsTemplate gUnknown_84524B4;
extern const struct CursorStruct gUnknown_84524C4;
@@ -1947,3 +1948,35 @@ bool8 sub_81051D0(u16 a0, u16 *a1, u8 a2)
}
return FALSE;
}
+
+bool8 sub_81051F0(u8 a0)
+{
+ int i;
+ int r4;
+ u16 *bg1buff = GetBgTilemapBuffer(1);
+ u16 *bg2buff = GetBgTilemapBuffer(2);
+ u16 *bg3buff = GetBgTilemapBuffer(3);
+ u16 *sp04 = gUnknown_203ACF0->field_5C + 0x800;
+ u16 *sp08 = gUnknown_203ACF0->field_5C + 0x400;
+ u16 *sp0C = gUnknown_203ACF0->field_5C + 0x000;
+ for (i = 0; i < 30; i++)
+ {
+ r4 = gUnknown_8452388[a0][i];
+ if (r4 == 30)
+ {
+ sub_81051D0(0x000, bg1buff, i);
+ sub_81051D0(0x000, bg2buff, i);
+ sub_81051D0(0x00C, bg3buff, i);
+ }
+ else
+ {
+ sub_81051AC(sp04, r4, bg1buff, i);
+ sub_81051AC(sp08, r4, bg2buff, i);
+ sub_81051AC(sp0C, r4, bg3buff, i);
+ }
+ }
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(3);
+ return FALSE;
+}