diff options
author | camthesaxman <cameronghall@cox.net> | 2017-06-13 01:01:44 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-06-13 01:01:44 -0500 |
commit | 83f63ae5f641adb4186c0df21a71f92d1dbbfd5e (patch) | |
tree | b3084938b7052f6e4310f0abf9695c45a845ddda | |
parent | 828237e9b46d41860c5d06e8c0cd02296596e179 (diff) |
decompile sub_8091E20 - sub_809204C
-rw-r--r-- | asm/pokedex.s | 280 | ||||
-rw-r--r-- | src/pokedex.c | 88 |
2 files changed, 88 insertions, 280 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s index 99f080c63..e968a3ddd 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -6,286 +6,6 @@ .text - thumb_func_start sub_8091E20 -sub_8091E20: @ 8091E20 - push {lr} - sub sp, 0x8 - movs r1, 0x20 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x9 - movs r2, 0x78 - movs r3, 0xD0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8091E20 - - thumb_func_start sub_8091E3C -sub_8091E3C: @ 8091E3C - push {lr} - ldr r0, _08091E50 @ =sub_8091E54 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08091E50: .4byte sub_8091E54 - thumb_func_end sub_8091E3C - - thumb_func_start sub_8091E54 -sub_8091E54: @ 8091E54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08091E78 @ =gMain - ldr r2, _08091E7C @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x4 - bhi _08091E98 - lsls r0, 2 - ldr r1, _08091E80 @ =_08091E84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091E78: .4byte gMain -_08091E7C: .4byte 0x0000043c -_08091E80: .4byte _08091E84 - .align 2, 0 -_08091E84: - .4byte _08091E98 - .4byte _08091F50 - .4byte _08091FC0 - .4byte _08091FE0 - .4byte _0809200C -_08091E98: - ldr r0, _08091F1C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08091EA6 - b _08092030 -_08091EA6: - ldr r0, _08091F20 @ =gPokedexView - ldr r0, [r0] - ldr r1, _08091F24 @ =0x0000064a - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - movs r0, 0 - bl sub_8091060 - ldr r0, _08091F28 @ =gPokedexMenuSearch_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08091F2C @ =gUnknown_08E96D2C - ldr r1, _08091F30 @ =0x06007800 - bl LZ77UnCompVram - ldr r0, _08091F34 @ =gPokedexMenuSearch_Pal + 0x2 - movs r1, 0x1 - movs r2, 0x7E - bl LoadPalette - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08091F10 - movs r4, 0 - ldr r2, _08091F38 @ =0x06007a80 - mov r8, r2 - ldr r0, _08091F3C @ =0x06007b00 - mov r12, r0 - movs r5, 0x1 - ldr r7, _08091F40 @ =0x06007ac0 - ldr r6, _08091F44 @ =0x06007b40 -_08091EEC: - lsls r1, r4, 1 - mov r0, r8 - adds r2, r1, r0 - mov r0, r12 - adds r3, r1, r0 - ldrh r0, [r3] - strh r0, [r2] - adds r2, r1, r7 - adds r1, r6 - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r3] - strh r5, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x10 - bls _08091EEC -_08091F10: - ldr r0, _08091F48 @ =gMain - ldr r1, _08091F4C @ =0x0000043c - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08092030 - .align 2, 0 -_08091F1C: .4byte gPaletteFade -_08091F20: .4byte gPokedexView -_08091F24: .4byte 0x0000064a -_08091F28: .4byte gPokedexMenuSearch_Gfx -_08091F2C: .4byte gUnknown_08E96D2C -_08091F30: .4byte 0x06007800 -_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2 -_08091F38: .4byte 0x06007a80 -_08091F3C: .4byte 0x06007b00 -_08091F40: .4byte 0x06007ac0 -_08091F44: .4byte 0x06007b40 -_08091F48: .4byte gMain -_08091F4C: .4byte 0x0000043c -_08091F50: - ldr r4, _08091FA8 @ =gWindowConfig_81E7064 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08091FAC @ =gUnknown_083A05CC - bl LoadCompressedObjectPic - ldr r0, _08091FB0 @ =gUnknown_083A05DC - bl LoadSpritePalettes - adds r0, r5, 0 - bl sub_809308C - movs r4, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r1, r0, 3 - ldr r3, _08091FB4 @ =gTasks + 0x8 - movs r2, 0 -_08091F7C: - lsls r0, r4, 1 - adds r0, r1 - adds r0, r3 - strh r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _08091F7C - adds r0, r5, 0 - bl sub_8092EB0 - movs r0, 0 - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r1, _08091FB8 @ =gMain - ldr r2, _08091FBC @ =0x0000043c - adds r1, r2 - b _08091FF6 - .align 2, 0 -_08091FA8: .4byte gWindowConfig_81E7064 -_08091FAC: .4byte gUnknown_083A05CC -_08091FB0: .4byte gUnknown_083A05DC -_08091FB4: .4byte gTasks + 0x8 -_08091FB8: .4byte gMain -_08091FBC: .4byte 0x0000043c -_08091FC0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08091FD8 @ =gMain - ldr r0, _08091FDC @ =0x0000043c - adds r1, r0 - b _08091FF6 - .align 2, 0 -_08091FD8: .4byte gMain -_08091FDC: .4byte 0x0000043c -_08091FE0: - ldr r1, _08092000 @ =REG_BG3CNT - ldr r2, _08092004 @ =0x00000f03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xE2 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08092008 @ =0x0000043c - adds r1, r3, r0 -_08091FF6: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08092030 - .align 2, 0 -_08092000: .4byte REG_BG3CNT -_08092004: .4byte 0x00000f03 -_08092008: .4byte 0x0000043c -_0809200C: - ldr r0, _0809203C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08092030 - ldr r1, _08092040 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08092044 @ =sub_809204C - str r1, [r0] - ldr r1, _08092048 @ =0x0000043c - adds r0, r3, r1 - strb r2, [r0] -_08092030: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809203C: .4byte gPaletteFade -_08092040: .4byte gTasks -_08092044: .4byte sub_809204C -_08092048: .4byte 0x0000043c - thumb_func_end sub_8091E54 - - thumb_func_start sub_809204C -sub_809204C: @ 809204C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08092074 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r0, _08092078 @ =sub_809207C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092074: .4byte gTasks -_08092078: .4byte sub_809207C - thumb_func_end sub_809204C - thumb_func_start sub_809207C sub_809207C: @ 809207C push {r4,r5,lr} diff --git a/src/pokedex.c b/src/pokedex.c index bf383275b..518982099 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -104,6 +104,9 @@ extern const struct SpriteSheet gTrainerFrontPicTable[]; extern const struct MonCoords gTrainerFrontPicCoords[]; extern const struct PokedexEntry gPokedexEntries[]; extern const struct BaseStats gBaseStats[]; +extern const u8 gPokedexMenuSearch_Gfx[]; +extern const u8 gUnknown_08E96D2C[]; +extern const u16 gPokedexMenuSearch_Pal[]; extern void sub_800D74C(); extern const u16 *species_and_otid_get_pal(u16, u32, u32); @@ -122,6 +125,14 @@ extern u16 gPokedexOrder_Height[]; void sub_8090B8C(u8); void sub_8090C28(struct Sprite *); u16 NationalPokedexNumToSpecies(u16); +void sub_8091E54(u8); +void sub_809204C(u8); +void sub_809207C(u8); + +void sub_8092AB0(u8); +void sub_8092B68(); +void sub_8092EB0(); +void sub_809308C(); // asm/pokedex_area_screen void ShowPokedexAreaScreen(u16 species, u8 *string); @@ -4201,3 +4212,80 @@ int sub_8091AF8(u8 a, u8 b, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2) return resultsCount; } + +void sub_8091E20(u8 *str) +{ + sub_8072AB0(str, 9, 120, 208, 32, 1); +} + +u8 sub_8091E3C(void) +{ + return CreateTask(sub_8091E54, 0); +} + +void sub_8091E54(u8 taskId) +{ + u16 i; + + switch (gMain.state) + { + default: + case 0: + if (!gPaletteFade.active) + { + gPokedexView->unk64A = 2; + sub_8091060(0); + LZ77UnCompVram(gPokedexMenuSearch_Gfx, (void *)VRAM); + LZ77UnCompVram(gUnknown_08E96D2C, (void *)(VRAM + 0x7800)); + LoadPalette(gPokedexMenuSearch_Pal + 1, 1, 0x7E); + if (!IsNationalPokedexEnabled()) + { + for (i = 0; i < 17; i++) + { + ((u16 *)(VRAM + 0x7A80))[i] = ((u16 *)(VRAM + 0x7B00))[i]; + ((u16 *)(VRAM + 0x7AC0))[i] = ((u16 *)(VRAM + 0x7B40))[i]; + ((u16 *)(VRAM + 0x7B00))[i] = 1; + ((u16 *)(VRAM + 0x7B40))[i] = 1; + } + } + gMain.state = 1; + } + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7064); + InitMenuWindow(&gWindowConfig_81E7064); + LoadCompressedObjectPic(&gUnknown_083A05CC); + LoadSpritePalettes(gUnknown_083A05DC); + sub_809308C(taskId); + for (i = 0; i < 16; i++) + gTasks[taskId].data[i] = 0; + sub_8092EB0(taskId); + sub_8092AB0(0); + sub_8092B68(taskId); + gMain.state++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gMain.state++; + break; + case 3: + REG_BG3CNT = 0x0F03; + REG_DISPCNT = 0x1C40; + gMain.state++; + break; + case 4: + if (!gPaletteFade.active) + { + gTasks[taskId].func = sub_809204C; + gMain.state = 0; + } + break; + } +} + +void sub_809204C(u8 taskId) +{ + sub_8092AB0(gTasks[taskId].data[0]); + sub_8092B68(taskId); + gTasks[taskId].func = sub_809207C; +} |