diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-07 21:27:40 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-07 21:27:40 -0500 |
commit | 0947fdf167bff7fe67e1344fea8b287fc59a6cd2 (patch) | |
tree | 6571f54c7da901270e007aa3b225693eec206d1b | |
parent | bfeaa80fcd9409645325c2f7ae94850f970fbb58 (diff) |
sub_80969A0
-rw-r--r-- | asm/pokemon_storage_system.s | 150 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system.c | 97 | ||||
-rw-r--r-- | sym_ewram.txt | 54 |
3 files changed, 90 insertions, 211 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 071ac48e9..47324f443 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,156 +5,6 @@ .text - thumb_func_start sub_80969A0 -sub_80969A0: @ 80969A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080969BC @ =gMain - ldr r1, _080969C0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _080969B2 - b _08096AE4 -_080969B2: - lsls r0, 2 - ldr r1, _080969C4 @ =_080969C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080969BC: .4byte gMain -_080969C0: .4byte 0x0000043c -_080969C4: .4byte _080969C8 - .align 2, 0 -_080969C8: - .4byte _080969F4 - .4byte _08096A34 - .4byte _08096A40 - .4byte _08096A50 - .4byte _08096A56 - .4byte _08096A60 - .4byte _08096A66 - .4byte _08096A6C - .4byte _08096A72 - .4byte _08096AAC - .4byte _08096AC8 -_080969F4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _08096A28 @ =gSharedMem - ldr r0, _08096A2C @ =gUnknown_0203847D - ldrb r0, [r0] - strb r0, [r1, 0x5] - bl sub_8096804 - ldr r4, _08096A30 @ =gUnknown_0203847F - ldrb r0, [r4] - cmp r0, 0x1 - bne _08096A1A - bl sub_809BBC0 -_08096A1A: - ldrb r0, [r4] - cmp r0, 0 - bne _08096AD8 - bl sub_809BD14 - b _08096AD8 - .align 2, 0 -_08096A28: .4byte gSharedMem -_08096A2C: .4byte gUnknown_0203847D -_08096A30: .4byte gUnknown_0203847F -_08096A34: - ldr r0, _08096A3C @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _08096AD8 - .align 2, 0 -_08096A3C: .4byte gWindowConfig_81E6D00 -_08096A40: - ldr r0, _08096A4C @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _08096AD8 - .align 2, 0 -_08096A4C: .4byte gWindowConfig_81E6D00 -_08096A50: - bl sub_80967DC - b _08096AD8 -_08096A56: - bl sub_8098B48 - bl sub_809AA98 - b _08096AD8 -_08096A60: - bl sub_8097DE0 - b _08096AD8 -_08096A66: - bl sub_8097E70 - b _08096AD8 -_08096A6C: - bl sub_8098400 - b _08096AD8 -_08096A72: - ldr r0, _08096A98 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096A9C @ =gSharedMem - ldr r1, _08096AA0 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _08096AA4 @ =0x000012be - adds r2, r1 - ldr r1, _08096AA8 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _08096AD8 - .align 2, 0 -_08096A98: .4byte gPokemonStorage -_08096A9C: .4byte gSharedMem -_08096AA0: .4byte 0x000012bc -_08096AA4: .4byte 0x000012be -_08096AA8: .4byte 0x0000dacb -_08096AAC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08096AC4 @ =sub_8096AFC - bl SetVBlankCallback - b _08096AD8 - .align 2, 0 -_08096AC4: .4byte sub_8096AFC -_08096AC8: - bl sub_8096874 - ldr r0, _08096AEC @ =sub_8096C68 - bl sub_8096BE0 - ldr r0, _08096AF0 @ =sub_8096B38 - bl SetMainCallback2 -_08096AD8: - ldr r1, _08096AF4 @ =gMain - ldr r0, _08096AF8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096AE4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096AEC: .4byte sub_8096C68 -_08096AF0: .4byte sub_8096B38 -_08096AF4: .4byte gMain -_08096AF8: .4byte 0x0000043c - thumb_func_end sub_80969A0 - thumb_func_start sub_8096AFC sub_8096AFC: @ 8096AFC push {lr} diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c index 91d56a4b9..2b36f5d71 100644 --- a/src/pokemon/pokemon_storage_system.c +++ b/src/pokemon/pokemon_storage_system.c @@ -67,15 +67,19 @@ void sub_8096AFC(void); void sub_8096B38(void); void sub_8096BE0(void (*func)(void)); void sub_8096BF0(void); +void sub_8096C68(void); void sub_8097DE0(void); void sub_8097E70(void); void sub_8098400(void); void sub_8099BF8(u8 a0); void sub_8098B48(void); -void sub_809AA24(void); struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4); +void sub_809AA24(void); +void sub_809AA98(void); void sub_809B0D4(void); -void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 * a1, u8 a2); +void sub_809BBC0(void); +void sub_809BD14(void); +void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2); const struct PSS_MenuStringPtrs gUnknown_083B600C[] = { {PCText_WithdrawPoke, PCText_MovePokeToParty}, @@ -131,11 +135,23 @@ extern const struct PokemonStorageSystemData *gUnknown_083B6DB4; extern u8 *const gUnknown_083B6DB8; EWRAM_DATA struct PokemonStorage gPokemonStorage = {0}; -EWRAM_DATA u8 gUnknown_02038474; -EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478; -EWRAM_DATA u8 gUnknown_0203847C; -EWRAM_DATA u8 gUnknown_0203847D; -EWRAM_DATA u8 gUnknown_0203847E; +EWRAM_DATA u8 gUnknown_02038470[3] = {}; +EWRAM_DATA u8 gUnknown_02038473 = 0; +EWRAM_DATA u8 gUnknown_02038474 = 0; +EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478 = NULL; +EWRAM_DATA u8 gUnknown_0203847C = 0; +EWRAM_DATA u8 gUnknown_0203847D = 0; +EWRAM_DATA u8 gUnknown_0203847E = 0; +EWRAM_DATA u8 gUnknown_0203847F = 0; +EWRAM_DATA struct Pokemon gUnknown_02038480 = {}; +EWRAM_DATA u8 gUnknown_020384E4 = 0; +EWRAM_DATA u8 gUnknown_020384E5 = 0; +EWRAM_DATA u8 gUnknown_020384E6 = 0; +EWRAM_DATA u8 gUnknown_020384E7 = 0; +EWRAM_DATA u8 gUnknown_020384E8 = 0; +EWRAM_DATA u8 gUnknown_020384E9 = 0; +EWRAM_DATA u16 gUnknown_020384EA = 0; +EWRAM_DATA u32 gUnknown_020384EC = 0; static u8 CountPokemonInBoxN(u8 boxId) { @@ -872,6 +888,73 @@ void sub_8096884(void) } } +void sub_80969A0(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + REG_DISPCNT = 0x0000; + ePokemonStorageSystem.unk_0005 = gUnknown_0203847D; + sub_8096804(); + if (gUnknown_0203847F == 1) + sub_809BBC0(); + if (gUnknown_0203847F == 0) + sub_809BD14(); + gMain.state++; + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E6D00); + gMain.state++; + break; + case 2: + InitMenuWindow(&gWindowConfig_81E6D00); + MenuZeroFillScreen(); + gMain.state++; + break; + case 3: + sub_80967DC(); + gMain.state++; + break; + case 4: + sub_8098B48(); + sub_809AA98(); + gMain.state++; + break; + case 5: + sub_8097DE0(); + gMain.state++; + break; + case 6: + sub_8097E70(); + gMain.state++; + break; + case 7: + sub_8098400(); + gMain.state++; + break; + case 8: + sub_8099BF8(gPokemonStorage.currentBox); + ePokemonStorageSystem.unk_12bc.baseTileTag = 0x000a; + ePokemonStorageSystem.unk_12bc.basePaletteTag = 0xdacb; + sub_80F727C(&ePokemonStorageSystem.unk_12bc); + sub_80F7404(); + gMain.state++; + break; + case 9: + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + SetVBlankCallback(sub_8096AFC); + gMain.state++; + break; + case 10: + sub_8096874(); + sub_8096BE0(sub_8096C68); + SetMainCallback2(sub_8096B38); + gMain.state++; + break; + } +} + asm(".section .text.8098898"); void sub_8098898(u8 index) { diff --git a/sym_ewram.txt b/sym_ewram.txt index 6f7be47c1..de949bbe7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -379,60 +379,6 @@ gUnknown_0202FFA4: @ 202FFA4 .include "src/engine/trainer_card.o" .include "src/pokemon/pokemon_storage_system.o" -@ still pokemon_storage_system - - .align 2 -gUnknown_02038470: @ 2038470 - .space 0x3 - -gUnknown_02038473: @ 2038473 - .space 0x1 - -gUnknown_02038474: @ 2038474 - .space 0x4 - -gUnknown_02038478: @ 2038478 - .space 0x4 - -gUnknown_0203847C: @ 203847C - .space 0x1 - -gUnknown_0203847D: @ 203847D - .space 0x1 - -gUnknown_0203847E: @ 203847E - .space 0x1 - -gUnknown_0203847F: @ 203847F - .space 0x1 - -gUnknown_02038480: @ 2038480 - .space 0x64 - -gUnknown_020384E4: @ 20384E4 - .space 0x1 - -gUnknown_020384E5: @ 20384E5 - .space 0x1 - -gUnknown_020384E6: @ 20384E6 - .space 0x1 - -gUnknown_020384E7: @ 20384E7 - .space 0x1 - -gUnknown_020384E8: @ 20384E8 - .space 0x1 - -gUnknown_020384E9: @ 20384E9 - .space 0x1 - -gUnknown_020384EA: @ 20384EA - .space 0x2 - -gUnknown_020384EC: @ 20384EC - .space 0x4 - @ pokemon_summary_screen gUnknown_020384F0: @ 20384F0 |