diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2019-12-13 19:21:47 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2019-12-13 19:21:47 -0500 |
commit | f4515f14dc1402ae2af2f83e5e6d7a9338371eeb (patch) | |
tree | 24d6a55e65a089a293e5813febc1be183d092cf6 | |
parent | 8616d7172a14332425e7c876e7731d484369f9e4 (diff) | |
parent | 6ea4a7a40cfe1d30b19a179818ef9423d28129e8 (diff) |
Merge branch 'pokedex_screen' of github.com:PikalaxALT/pokefirered into pokedex_screen
-rw-r--r-- | asm/pokedex_screen.s | 1027 | ||||
-rw-r--r-- | include/global.h | 5 | ||||
-rw-r--r-- | include/pokedex_screen.h | 2 | ||||
-rw-r--r-- | include/strings.h | 2 | ||||
-rw-r--r-- | src/pokedex_screen.c | 314 |
5 files changed, 307 insertions, 1043 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 814a5a5a3..c0e6b3395 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -5,1033 +5,6 @@ .text - thumb_func_start sub_8104AB0 -sub_8104AB0: @ 8104AB0 - push {r4-r7,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - lsls r2, 24 - cmp r2, 0 - beq _08104ACA - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - adds r3, r0, 0 -_08104ACA: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r0, 19 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x7 - ands r3, r0 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r3 - lsrs r6, r0, 24 - movs r0, 0 - mov r12, r0 - cmp r5, 0x1 - beq _08104B14 - cmp r5, 0x1 - bgt _08104AF4 - cmp r5, 0 - beq _08104AFE - b _08104BB0 -_08104AF4: - cmp r7, 0x2 - beq _08104B68 - cmp r7, 0x3 - beq _08104BA0 - b _08104BB0 -_08104AFE: - ldr r0, _08104B10 @ =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0x5C - adds r0, r4 - ldrb r1, [r0] - ands r1, r6 - cmp r1, 0 - beq _08104BB0 - b _08104B34 - .align 2, 0 -_08104B10: .4byte gSaveBlock2Ptr -_08104B14: - ldr r0, _08104B5C @ =gSaveBlock2Ptr - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x28 - adds r0, r4 - ldrb r1, [r0] - ands r1, r6 - cmp r1, 0 - beq _08104BB0 - adds r0, r2, 0 - adds r0, 0x5C - adds r0, r4 - ldrb r0, [r0] - ands r0, r6 - cmp r1, r0 - bne _08104BB0 -_08104B34: - ldr r0, _08104B60 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xBF - lsls r3, 3 - adds r0, r2, r3 - adds r0, r4 - ldrb r0, [r0] - ands r0, r6 - cmp r1, r0 - bne _08104BB0 - ldr r3, _08104B64 @ =0x00003a18 - adds r0, r2, r3 - adds r0, r4 - ldrb r0, [r0] - ands r0, r6 - cmp r1, r0 - bne _08104BB0 - movs r0, 0x1 - mov r12, r0 - b _08104BB0 - .align 2, 0 -_08104B5C: .4byte gSaveBlock2Ptr -_08104B60: .4byte gSaveBlock1Ptr -_08104B64: .4byte 0x00003a18 -_08104B68: - ldr r0, _08104B94 @ =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, 0x5C - adds r1, r4 - ldrb r2, [r1] - adds r0, r6, 0 - orrs r0, r2 - strb r0, [r1] - ldr r3, _08104B98 @ =gSaveBlock1Ptr - ldr r1, [r3] - movs r0, 0xBF - lsls r0, 3 - adds r1, r0 - adds r1, r4 - ldrb r2, [r1] - adds r0, r6, 0 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - ldr r3, _08104B9C @ =0x00003a18 - adds r1, r3 - b _08104BA6 - .align 2, 0 -_08104B94: .4byte gSaveBlock2Ptr -_08104B98: .4byte gSaveBlock1Ptr -_08104B9C: .4byte 0x00003a18 -_08104BA0: - ldr r0, _08104BB8 @ =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, 0x28 -_08104BA6: - adds r1, r4 - ldrb r2, [r1] - adds r0, r6, 0 - orrs r0, r2 - strb r0, [r1] -_08104BB0: - mov r0, r12 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08104BB8: .4byte gSaveBlock2Ptr - thumb_func_end sub_8104AB0 - - thumb_func_start sub_8104BBC -sub_8104BBC: @ 8104BBC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r5, 0 - cmp r1, 0 - beq _08104BD2 - cmp r1, 0x1 - beq _08104BF8 - b _08104C1E -_08104BD2: - movs r0, 0 -_08104BD4: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_8104AB0 - lsls r0, 24 - cmp r0, 0 - beq _08104BF0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08104BF0: - adds r0, r4, 0 - cmp r0, 0x96 - bls _08104BD4 - b _08104C1E -_08104BF8: - movs r0, 0 - ldr r7, _08104C28 @ =0x00000181 -_08104BFC: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_8104AB0 - lsls r0, 24 - cmp r0, 0 - beq _08104C18 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08104C18: - adds r0, r4, 0 - cmp r0, r7 - bls _08104BFC -_08104C1E: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08104C28: .4byte 0x00000181 - thumb_func_end sub_8104BBC - - thumb_func_start sub_8104C2C -sub_8104C2C: @ 8104C2C - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r1, 0x14 - negs r1, r1 - adds r3, r1, 0 - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - adds r2, r4, 0 - bl sub_81047C8 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104C2C - - thumb_func_start sub_8104C64 -sub_8104C64: @ 8104C64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x20 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - movs r0, 0xFF - lsls r0, 24 - adds r2, r0 - lsrs r2, 24 - mov r9, r2 - ldr r1, _08104D50 @ =gUnknown_845228C - ldr r2, _08104D54 @ =gUnknown_8452334 - mov r3, r9 - lsls r0, r3, 2 - adds r6, r0, r2 - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, r4, r0 - ldrb r2, [r0] - ldrb r3, [r0, 0x1] - movs r0, 0x8 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0x5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - movs r0, 0x3 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r7, _08104D58 @ =gUnknown_203ACF0 - ldr r0, [r7] - adds r0, 0x20 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08104D6C - ldr r0, _08104D5C @ =gUnknown_84521C4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, [r6] - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, 8 - ldr r3, _08104D60 @ =0xffff00ff - ldr r2, [sp, 0x18] - ands r2, r3 - orrs r2, r0 - str r2, [sp, 0x18] - ldr r0, [r6] - adds r0, r4, r0 - ldrb r1, [r0, 0x1] - lsls r1, 16 - ldr r0, _08104D64 @ =0xff00ffff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x18] - adds r1, r5, 0x1 - lsls r1, 24 - lsrs r1, 16 - ldr r0, [sp, 0x1C] - ands r0, r3 - orrs r0, r1 - lsls r1, r5, 6 - adds r1, 0x8 - lsls r1, 16 - ldr r2, _08104D68 @ =0x0000ffff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x1C] - add r0, sp, 0x18 - bl AddWindow - ldr r1, [r7] - adds r1, 0x20 - adds r1, r5 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x20 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r7] - adds r0, 0x20 - adds r0, r5 - ldrb r0, [r0] - lsls r2, r5, 20 - movs r1, 0x80 - lsls r1, 13 - adds r2, r1 - lsrs r2, 16 - mov r1, r8 - bl sub_81049FC - ldr r0, [r7] - adds r0, 0x20 - adds r0, r5 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r7] - adds r0, 0x20 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _08104D72 - .align 2, 0 -_08104D50: .4byte gUnknown_845228C -_08104D54: .4byte gUnknown_8452334 -_08104D58: .4byte gUnknown_203ACF0 -_08104D5C: .4byte gUnknown_84521C4 -_08104D60: .4byte 0xffff00ff -_08104D64: .4byte 0xff00ffff -_08104D68: .4byte 0x0000ffff -_08104D6C: - ldrb r0, [r1] - bl PutWindowTilemap -_08104D72: - ldr r6, _08104E60 @ =gUnknown_203ACF0 - ldr r0, [r6] - adds r0, 0x24 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08104E78 - mov r3, r8 - cmp r3, 0 - beq _08104E7E - ldr r0, _08104E64 @ =gUnknown_84521CC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _08104E68 @ =gUnknown_8452334 - mov r1, r9 - lsls r2, r1, 2 - adds r2, r0 - ldr r0, [r2] - lsls r1, r5, 2 - adds r0, r1, r0 - ldrb r0, [r0, 0x2] - add r3, sp, 0x18 - movs r4, 0 - strb r0, [r3, 0x1] - ldr r0, [r2] - adds r0, r1, r0 - ldrb r0, [r0, 0x3] - strb r0, [r3, 0x2] - adds r1, r5 - lsls r1, 3 - movs r0, 0x84 - lsls r0, 1 - adds r1, r0 - strh r1, [r3, 0x6] - adds r0, r3, 0 - bl AddWindow - ldr r1, [r6] - adds r1, 0x24 - adds r1, r5 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - ldr r1, _08104E6C @ =gUnknown_8440124 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - str r4, [sp] - movs r1, 0 - mov r2, r8 - movs r3, 0xC - bl sub_8104A34 - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0xB - mov r2, r8 - muls r2, r1 - ldr r1, _08104E70 @ =gSpeciesNames - adds r2, r1 - movs r1, 0xD - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x2 - movs r3, 0x2 - bl sub_81047C8 - mov r0, r8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_8104AB0 - lsls r0, 24 - cmp r0, 0 - beq _08104E42 - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - ldr r1, _08104E74 @ =gUnknown_8443600 - movs r3, 0x8 - str r3, [sp] - str r3, [sp, 0x4] - movs r2, 0x2 - str r2, [sp, 0x8] - movs r2, 0x3 - str r2, [sp, 0xC] - str r3, [sp, 0x10] - str r3, [sp, 0x14] - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow -_08104E42: - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r6] - adds r0, 0x24 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _08104E7E - .align 2, 0 -_08104E60: .4byte gUnknown_203ACF0 -_08104E64: .4byte gUnknown_84521CC -_08104E68: .4byte gUnknown_8452334 -_08104E6C: .4byte gUnknown_8440124 -_08104E70: .4byte gSpeciesNames -_08104E74: .4byte gUnknown_8443600 -_08104E78: - ldrb r0, [r1] - bl PutWindowTilemap -_08104E7E: - movs r0, 0x1 - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8104C64 - - thumb_func_start sub_8104E90 -sub_8104E90: @ 8104E90 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08104EBC @ =gUnknown_203ACF0 -_08104E96: - adds r1, r4, 0 - adds r1, 0x20 - ldr r0, [r5] - adds r0, r1 - bl sub_81047B0 - adds r1, r4, 0 - adds r1, 0x24 - ldr r0, [r5] - adds r0, r1 - bl sub_81047B0 - adds r4, 0x1 - cmp r4, 0x3 - ble _08104E96 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104EBC: .4byte gUnknown_203ACF0 - thumb_func_end sub_8104E90 - - thumb_func_start sub_8104EC0 -sub_8104EC0: @ 8104EC0 - push {r4,r5,lr} - sub sp, 0x20 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r1, _08104F08 @ =gUnknown_8416002 - mov r0, sp - bl StringCopy - adds r1, r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r1, r0, 0 - movs r0, 0xBA - strb r0, [r1] - adds r1, 0x1 - adds r0, r1, 0 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x2 - bl sub_8106E78 - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104F08: .4byte gUnknown_8416002 - thumb_func_end sub_8104EC0 - - thumb_func_start sub_8104F0C -sub_8104F0C: @ 8104F0C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x1E - str r0, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x2 - 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 r5, _08104F80 @ =gUnknown_203ACF0 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r0, [r0] - adds r1, 0x2B - ldrb r1, [r1] - bl sub_81068DC - movs r0, 0 - movs r1, 0xFF - bl FillWindowPixelBuffer - cmp r6, 0 - beq _08104F88 - ldr r1, _08104F84 @ =gUnknown_8452344 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl sub_8106E78 - b _08104FD0 - .align 2, 0 -_08104F80: .4byte gUnknown_203ACF0 -_08104F84: .4byte gUnknown_8452344 -_08104F88: - ldr r1, _08105048 @ =gUnknown_8452344 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl sub_8106E78 - ldr r0, [r5] - adds r0, 0x2B - ldrb r0, [r0] - bl sub_8106AF8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, [r5] - adds r0, 0x2A - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl sub_8106AF8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - adds r1, r4, 0 - movs r3, 0xA0 - bl sub_8104EC0 -_08104FD0: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0xFF - bl FillWindowPixelBuffer - cmp r6, 0 - bne _08104FEA - ldr r0, _0810504C @ =gUnknown_8415F6C - bl sub_8104C2C -_08104FEA: - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - ldr r5, _08105050 @ =gUnknown_203ACF0 - ldr r1, [r5] - ldrh r0, [r1, 0x18] - ldr r4, _08105054 @ =0x0000ffff - cmp r0, r4 - beq _08105008 - adds r1, 0x2C - ldrb r2, [r1] - movs r1, 0 - bl sub_8104C64 -_08105008: - ldr r1, [r5] - ldrh r0, [r1, 0x1A] - cmp r0, r4 - beq _0810501A - adds r1, 0x2C - ldrb r2, [r1] - movs r1, 0x1 - bl sub_8104C64 -_0810501A: - ldr r1, [r5] - ldrh r0, [r1, 0x1C] - cmp r0, r4 - beq _0810502C - adds r1, 0x2C - ldrb r2, [r1] - movs r1, 0x2 - bl sub_8104C64 -_0810502C: - ldr r1, [r5] - ldrh r0, [r1, 0x1E] - cmp r0, r4 - beq _0810503E - adds r1, 0x2C - ldrb r2, [r1] - movs r1, 0x3 - bl sub_8104C64 -_0810503E: - movs r0, 0 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08105048: .4byte gUnknown_8452344 -_0810504C: .4byte gUnknown_8415F6C -_08105050: .4byte gUnknown_203ACF0 -_08105054: .4byte 0x0000ffff - thumb_func_end sub_8104F0C - - thumb_func_start sub_8105058 -sub_8105058: @ 8105058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - cmp r0, 0xFF - bne _081050C0 - ldr r7, _081050B4 @ =gUnknown_84406C8 - movs r6, 0xB0 - lsls r6, 15 - movs r5, 0xA4 - lsls r5, 15 - movs r4, 0x3 -_0810507A: - lsrs r1, r5, 16 - adds r0, r7, 0 - movs r2, 0x2 - bl LoadPalette - lsrs r1, r6, 16 - adds r0, r7, 0x2 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x80 - lsls r0, 13 - adds r6, r0 - adds r5, r0 - subs r4, 0x1 - cmp r4, 0 - bge _0810507A - ldr r0, _081050B4 @ =gUnknown_84406C8 - ldr r1, _081050B8 @ =0x00000141 - movs r2, 0x2 - bl LoadPalette - ldr r0, _081050BC @ =gUnknown_203ACF0 - ldr r0, [r0] - adds r0, 0x2E - movs r1, 0 - strb r1, [r0] - b _0810515E - .align 2, 0 -_081050B4: .4byte gUnknown_84406C8 -_081050B8: .4byte 0x00000141 -_081050BC: .4byte gUnknown_203ACF0 -_081050C0: - ldr r2, _08105120 @ =gUnknown_203ACF0 - ldr r1, [r2] - adds r1, 0x2E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x2E - ldrb r0, [r1] - cmp r0, 0x10 - bne _081050DC - movs r0, 0 - strb r0, [r1] -_081050DC: - ldr r0, [r2] - adds r0, 0x2E - ldrb r0, [r0] - lsrs r7, r0, 2 - movs r4, 0 - lsls r0, r7, 2 - mov r8, r0 - ldr r0, _08105124 @ =gUnknown_84406CC - mov r10, r0 - movs r6, 0xB0 - lsls r6, 15 - movs r5, 0xA4 - lsls r5, 15 - movs r0, 0x4 - negs r0, r0 - add r0, r10 - mov r9, r0 -_081050FE: - ldr r0, [sp] - cmp r4, r0 - bne _0810512C - lsrs r1, r5, 16 - mov r0, r8 - add r0, r10 - movs r2, 0x2 - bl LoadPalette - lsrs r1, r6, 16 - ldr r0, _08105128 @ =gUnknown_84406CE - add r0, r8 - movs r2, 0x2 - bl LoadPalette - b _08105142 - .align 2, 0 -_08105120: .4byte gUnknown_203ACF0 -_08105124: .4byte gUnknown_84406CC -_08105128: .4byte gUnknown_84406CE -_0810512C: - lsrs r1, r5, 16 - mov r0, r9 - movs r2, 0x2 - bl LoadPalette - lsrs r1, r6, 16 - mov r0, r9 - adds r0, 0x2 - movs r2, 0x2 - bl LoadPalette -_08105142: - lsls r1, r7, 2 - movs r0, 0x80 - lsls r0, 13 - adds r6, r0 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x3 - ble _081050FE - ldr r0, _08105170 @ =gUnknown_84406CC - adds r0, r1, r0 - ldr r1, _08105174 @ =0x00000141 - movs r2, 0x2 - bl LoadPalette -_0810515E: - 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 -_08105170: .4byte gUnknown_84406CC -_08105174: .4byte 0x00000141 - thumb_func_end sub_8105058 - - thumb_func_start sub_8105178 -sub_8105178: @ 8105178 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 24 - movs r3, 0xFF - lsls r3, 24 - adds r2, r3 - ldr r3, _081051A8 @ =gUnknown_8452334 - lsrs r2, 22 - adds r2, r3 - ldr r2, [r2] - lsrs r1, 22 - adds r1, r2 - ldrb r3, [r1, 0x2] - lsls r3, 3 - ldrb r2, [r1, 0x3] - lsls r2, 3 - adds r1, r3, 0 - movs r3, 0 - bl ListMenuUpdateCursorObject - pop {r0} - bx r0 - .align 2, 0 -_081051A8: .4byte gUnknown_8452334 - thumb_func_end sub_8105178 - - thumb_func_start sub_81051AC -sub_81051AC: @ 81051AC - push {lr} - lsls r1, 24 - lsls r3, 24 - lsrs r1, 23 - adds r1, r0, r1 - lsrs r3, 23 - adds r2, r3 - movs r3, 0x13 -_081051BC: - ldrh r0, [r1] - strh r0, [r2] - adds r2, 0x40 - adds r1, 0x40 - subs r3, 0x1 - cmp r3, 0 - bge _081051BC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_81051AC - - thumb_func_start sub_81051D0 -sub_81051D0: @ 81051D0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 23 - adds r1, r2 - movs r2, 0x13 -_081051DE: - strh r0, [r1] - adds r1, 0x40 - subs r2, 0x1 - cmp r2, 0 - bge _081051DE - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_81051D0 - - 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/include/global.h b/include/global.h index 219c09c62..9df153270 100644 --- a/include/global.h +++ b/include/global.h @@ -765,9 +765,8 @@ struct SaveBlock1 /*0x3120*/ struct MEventBuffers mysteryEventBuffers; /*0x348C*/ u8 filler_348C[400]; /*0x361C*/ struct RamScript ramScript; - /*0x3A08*/ u8 filler3A08[12]; - /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; - /*0x3A48*/ u8 filler_3a48[4]; + /*0x3A08*/ u8 filler3A08[16]; + /*0x3A18*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x204]; diff --git a/include/pokedex_screen.h b/include/pokedex_screen.h index 9cc362d59..6dc640719 100644 --- a/include/pokedex_screen.h +++ b/include/pokedex_screen.h @@ -2,6 +2,6 @@ #define GUARD_POKEDEX_SCREEN_H void CB2_OpenPokedexFromStartMenu(void); -s8 sub_8104AB0(u16 nationalDexNo, u8 caseID, u8 unk); +s8 sub_8104AB0(u16 nationalDexNo, u8 caseID, bool8 indexIsSpecies); #endif //GUARD_POKEDEX_SCREEN_H diff --git a/include/strings.h b/include/strings.h index 0288dc05f..bc1aee889 100644 --- a/include/strings.h +++ b/include/strings.h @@ -975,7 +975,9 @@ extern const u8 gUnknown_8415DD7[]; extern const u8 gUnknown_8415F3D[]; extern const u8 gUnknown_8415F4A[]; extern const u8 gUnknown_8415F66[]; +extern const u8 gUnknown_8415F6C[]; extern const u8 gUnknown_8415FFF[]; +extern const u8 gUnknown_8416002[]; // trainer card extern const u8 gText_WaitingTrainerFinishReading[]; diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index ace5282a2..f54b9b1d6 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -21,6 +21,7 @@ #include "pokedex_screen.h" #include "data.h" #include "pokedex.h" +#include "string_util.h" #include "trainer_pokemon_sprites.h" #include "constants/songs.h" #include "constants/species.h" @@ -40,7 +41,9 @@ struct PokedexScreenData u8 field_15; u8 field_16; u8 field_17; - u16 field_18[0x8]; + u16 field_18[0x4]; + u8 field_20[0x4]; + u8 field_24[0x4]; u8 field_28; u8 field_29; u8 field_2A; @@ -63,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; @@ -101,10 +104,10 @@ void sub_81047B0(u8 *windowId_p); void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx); void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y); -u16 sub_8104BBC(u8 a0, u8 a1); -void sub_8104C2C(const u8 *a0); +u16 sub_8104BBC(u8 caseID, bool8 whichDex); +void sub_8104C2C(const u8 *src); void sub_8104E90(void); -void sub_8104F0C(u8 a0); +bool8 sub_8104F0C(bool8 a0); void sub_8105058(u8 a0); void sub_8105178(u8 a0, u8 a1, u8 a2); bool8 sub_81052D0(u8 a0); @@ -117,15 +120,20 @@ u8 sub_81068A0(u8 a0); void sub_810699C(u8 a0); bool8 sub_8106A20(u16 a0); void sub_81067C0(void); +void sub_81068DC(u8 a0, u8 a1); +u8 sub_8106AF8(u16 a0); void sub_8106B34(void); void sub_8106E78(const u8 *a0, s32 a1); +extern const u16 gUnknown_8440124[]; extern const u32 gUnknown_8440274[]; extern const u32 gUnknown_84403AC[]; extern const u16 gUnknown_84404C8[]; +extern const u16 gUnknown_84406C8[]; extern const u16 gUnknown_84406E0[]; extern const u16 gUnknown_8440EF0[]; extern const u16 gUnknown_8443460[]; +extern const u8 gUnknown_8443600[]; extern const u16 gUnknown_8443FC0[]; extern const u16 gUnknown_84442F6[]; extern const u16 gUnknown_84448FE[]; @@ -136,15 +144,21 @@ extern const struct PokedexScreenData gUnknown_8451EE4; extern const struct WindowTemplate gUnknown_8451F54; extern const struct WindowTemplate gUnknown_8451F5C; extern const struct WindowTemplate gUnknown_8451F64; -extern const struct WindowTemplate gUnknown_845216C; -extern const struct ListMenuTemplate gUnknown_8452174; extern const struct ListMenuTemplate gUnknown_8452004; extern const struct ListMenuTemplate gUnknown_84520BC; extern const struct ScrollArrowsTemplate gUnknown_84520D4; extern const struct ScrollArrowsTemplate gUnknown_84520E4; extern const struct PokedexScreenWindowGfx gUnknown_84520F4[]; +extern const struct WindowTemplate gUnknown_845216C; +extern const struct ListMenuTemplate gUnknown_8452174; extern const struct ListMenuWindowRect gUnknown_845218C; extern const struct ScrollArrowsTemplate gUnknown_84521B4; +extern const struct WindowTemplate gUnknown_84521C4; +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; @@ -666,7 +680,7 @@ void sub_810345C(void) u16 sub_8103518(u8 a0) { - s32 max_n = IsNationalPokedexEnabled() ? NATIONAL_DEX_DEOXYS : NATIONAL_DEX_MEW; + s32 max_n = IsNationalPokedexEnabled() ? NATIONAL_DEX_COUNT : KANTO_DEX_COUNT; u16 ndex_num; u16 ret = NATIONAL_DEX_NONE; s32 i; @@ -677,7 +691,7 @@ u16 sub_8103518(u8 a0) { default: case 0: - for (i = 0; i < NATIONAL_DEX_MEW; i++) + for (i = 0; i < KANTO_DEX_COUNT; i++) { ndex_num = i + 1; seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0); @@ -729,7 +743,7 @@ u16 sub_8103518(u8 a0) } break; case 3: - for (i = 0; i < NATIONAL_DEX_DEOXYS; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { ndex_num = gUnknown_84442F6[i]; if (ndex_num <= max_n) @@ -746,7 +760,7 @@ u16 sub_8103518(u8 a0) } break; case 4: - for (i = 0; i < NATIONAL_DEX_DEOXYS; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { ndex_num = gUnknown_84445FA[i]; if (ndex_num <= max_n) @@ -763,7 +777,7 @@ u16 sub_8103518(u8 a0) } break; case 5: - for (i = 0; i < NATIONAL_DEX_DEOXYS; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { ndex_num = i + 1; seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0); @@ -1690,3 +1704,279 @@ void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y) sub_81047C8(windowId, fontId, gUnknown_8415FFF, x, y, 0); sub_8104880(windowId, fontId, dexNum, x + 9, y, 0); } + +s8 sub_8104AB0(u16 nationalDexNo, u8 caseID, bool8 indexIsSpecies) +{ + u8 index; + u8 bit; + u8 mask; + s8 retVal; + + if (indexIsSpecies) + nationalDexNo = SpeciesToNationalPokedexNum(nationalDexNo); + + nationalDexNo--; + index = nationalDexNo / 8; + bit = nationalDexNo % 8; + mask = 1 << bit; + retVal = 0; + switch (caseID) + { + case FLAG_GET_SEEN: + if (gSaveBlock2Ptr->pokedex.seen[index] & mask) + { + if ((gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask) + && (gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask)) + retVal = 1; + } + break; + case FLAG_GET_CAUGHT: + if (gSaveBlock2Ptr->pokedex.owned[index] & mask) + { + if ((gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock2Ptr->pokedex.seen[index] & mask) + && (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask) + && (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask)) + retVal = 1; + } + break; + case FLAG_SET_SEEN: + gSaveBlock2Ptr->pokedex.seen[index] |= mask; + gSaveBlock1Ptr->seen1[index] |= mask; + gSaveBlock1Ptr->seen2[index] |= mask; + break; + case FLAG_SET_CAUGHT: + gSaveBlock2Ptr->pokedex.owned[index] |= mask; + break; + } + return retVal; +} + +u16 sub_8104BBC(u8 caseID, bool8 whichDex) +{ + u16 count = 0; + u16 i; + + switch (whichDex) + { + case 0: // Kanto + for (i = 0; i < KANTO_DEX_COUNT; i++) + { + if (sub_8104AB0(i + 1, caseID, FALSE)) + count++; + } + break; + case 1: // National + for (i = 0; i < NATIONAL_DEX_COUNT; i++) + { + if (sub_8104AB0(i + 1, caseID, FALSE)) + count++; + + } + break; + } + return count; +} + +void sub_8104C2C(const u8 *src) +{ + sub_81047C8(1, 0, src, 236 - GetStringWidth(0, src, 0), 2, 4); +} + +bool8 sub_8104C64(u16 a0, u8 a1, u8 a2) +{ + struct WindowTemplate template; + a2--; + CopyToBgTilemapBufferRect_ChangePalette(3, gUnknown_845228C, gUnknown_8452334[a2][a1][0], gUnknown_8452334[a2][a1][1], 8, 8, a1 + 5); + if (gUnknown_203ACF0->field_20[a1] == 0xFF) + { + template = gUnknown_84521C4; + template.tilemapLeft = gUnknown_8452334[a2][a1][0]; + template.tilemapTop = gUnknown_8452334[a2][a1][1]; + template.paletteNum = a1 + 1; + template.baseBlock = a1 * 64 + 8; + gUnknown_203ACF0->field_20[a1] = AddWindow(&template); + FillWindowPixelBuffer(gUnknown_203ACF0->field_20[a1], PIXEL_FILL(0)); + sub_81049FC(gUnknown_203ACF0->field_20[a1], a0, a1 * 16 + 16); + PutWindowTilemap(gUnknown_203ACF0->field_20[a1]); + CopyWindowToVram(gUnknown_203ACF0->field_20[a1], 2); + } + else + PutWindowTilemap(gUnknown_203ACF0->field_20[a1]); + + if (gUnknown_203ACF0->field_24[a1] == 0xFF) + { + if (a0 != SPECIES_NONE) + { + template = gUnknown_84521CC; + template.tilemapLeft = gUnknown_8452334[a2][a1][2]; + template.tilemapTop = gUnknown_8452334[a2][a1][3]; + template.baseBlock = a1 * 40 + 0x108; + gUnknown_203ACF0->field_24[a1] = AddWindow(&template); + CopyToWindowPixelBuffer(gUnknown_203ACF0->field_24[a1], gUnknown_8440124, 0, 0); + sub_8104A34(gUnknown_203ACF0->field_24[a1], 0, a0, 12, 0); + sub_81047C8(gUnknown_203ACF0->field_24[a1], 2, gSpeciesNames[a0], 2, 13, 0); + if (sub_8104AB0(a0, FLAG_GET_CAUGHT, TRUE)) + BlitBitmapRectToWindow(gUnknown_203ACF0->field_24[a1], gUnknown_8443600, 0, 0, 8, 8, 2, 3, 8, 8); + PutWindowTilemap(gUnknown_203ACF0->field_24[a1]); + CopyWindowToVram(gUnknown_203ACF0->field_24[a1], 2); + } + } + else + PutWindowTilemap(gUnknown_203ACF0->field_24[a1]); + + return TRUE; +} + +void sub_8104E90(void) +{ + int i; + for (i = 0; i < 4; i++) + { + sub_81047B0(&gUnknown_203ACF0->field_20[i]); + sub_81047B0(&gUnknown_203ACF0->field_24[i]); + } +} + +void sub_8104EC0(u8 unused, u16 a1, u16 a2, u8 unused2, u8 unused3) +{ + u8 buffer[30]; + u8 *ptr = StringCopy(buffer, gUnknown_8416002); + ptr = ConvertIntToDecimalStringN(ptr, a1, STR_CONV_MODE_RIGHT_ALIGN, 2); + *ptr++ = CHAR_SLASH; + ptr = ConvertIntToDecimalStringN(ptr, a2, STR_CONV_MODE_RIGHT_ALIGN, 2); + sub_8106E78(buffer, 2); +} + +bool8 sub_8104F0C(bool8 a0) +{ + FillBgTilemapBufferRect_Palette0(3, 2, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 32, 20); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20); + sub_81068DC(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B); + FillWindowPixelBuffer(0, PIXEL_FILL(15)); + if (a0) + { + sub_8106E78(gUnknown_8452344[gUnknown_203ACF0->field_28], 1); + } + else + { + sub_8106E78(gUnknown_8452344[gUnknown_203ACF0->field_28], 0); + sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2); + } + CopyWindowToVram(0, 2); + FillWindowPixelBuffer(1, PIXEL_FILL(15)); + if (!a0) + sub_8104C2C(gUnknown_8415F6C); + CopyWindowToVram(1, 2); + if (gUnknown_203ACF0->field_18[0] != 0xFFFF) + sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C); + if (gUnknown_203ACF0->field_18[1] != 0xFFFF) + sub_8104C64(gUnknown_203ACF0->field_18[1], 1, gUnknown_203ACF0->field_2C); + if (gUnknown_203ACF0->field_18[2] != 0xFFFF) + sub_8104C64(gUnknown_203ACF0->field_18[2], 2, gUnknown_203ACF0->field_2C); + if (gUnknown_203ACF0->field_18[3] != 0xFFFF) + sub_8104C64(gUnknown_203ACF0->field_18[3], 3, gUnknown_203ACF0->field_2C); + return FALSE; +} + +void sub_8105058(u8 a0) +{ + int i; + u32 r7; + + if (a0 == 0xFF) + { + for (i = 0; i < 4; i++) + { + LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2); + LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2); + } + LoadPalette(&gUnknown_84406C8[0], 0x141, 2); + gUnknown_203ACF0->field_2E = 0; + } + else + { + gUnknown_203ACF0->field_2E++; + if (gUnknown_203ACF0->field_2E == 16) + gUnknown_203ACF0->field_2E = 0; + r7 = gUnknown_203ACF0->field_2E >> 2; + for (i = 0; i < 4; i++) + { + if (i == a0) + { + LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x52 + 0x10 * i, 2); + LoadPalette(&gUnknown_84406C8[2 * r7 + 3], 0x58 + 0x10 * i, 2); + } + else + { + LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2); + LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2); + } + } + LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x141, 2); + } +} + +void sub_8105178(u8 a0, u8 a1, u8 a2) +{ + a2--; + ListMenuUpdateCursorObject(a0, gUnknown_8452334[a2][a1][2] * 8, gUnknown_8452334[a2][a1][3] * 8, 0); +} + +bool8 sub_81051AC(const u16 *a0, u8 a1, u16 *a2, u8 a3) +{ + int i; + const u16 *src = &a0[a1]; + u16 *dst = &a2[a3]; + for (i = 0; i < 20; i++) + { + *dst = *src; + dst += 32; + src += 32; + } + return FALSE; +} + +bool8 sub_81051D0(u16 a0, u16 *a1, u8 a2) +{ + int i; + u16 *dst = &a1[a2]; + for (i = 0; i < 20; i++) + { + *dst = a0; + dst += 32; + } + 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; +} |