diff options
-rw-r--r-- | asm/pokedex_screen.s | 105 | ||||
-rw-r--r-- | src/pokedex_screen.c | 35 |
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; +} |