through sub_8096BE0

This commit is contained in:
PikalaxALT
2018-01-07 22:03:21 -05:00
parent 0947fdf167
commit ceebbe1991
3 changed files with 66 additions and 127 deletions
-117
View File
@@ -5,123 +5,6 @@
.text
thumb_func_start sub_8096AFC
sub_8096AFC: @ 8096AFC
push {lr}
ldr r2, _08096B2C @ =REG_BG2HOFS
ldr r1, _08096B30 @ =gSharedMem
ldr r3, _08096B34 @ =0x000008b4
adds r0, r1, r3
ldrh r0, [r0]
strh r0, [r2]
adds r2, 0x4
ldrh r0, [r1, 0xA]
strh r0, [r2]
adds r2, 0x2
ldrh r0, [r1, 0x8]
strh r0, [r2]
bl LoadOam
bl ProcessSpriteCopyRequests
bl sub_809CFF0
bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
_08096B2C: .4byte REG_BG2HOFS
_08096B30: .4byte gSharedMem
_08096B34: .4byte 0x000008b4
thumb_func_end sub_8096AFC
thumb_func_start sub_8096B38
sub_8096B38: @ 8096B38
push {lr}
ldr r0, _08096B58 @ =gSharedMem
ldr r0, [r0]
bl _call_via_r0
bl sub_8097E44
bl sub_8098734
bl AnimateSprites
bl BuildOamBuffer
pop {r0}
bx r0
.align 2, 0
_08096B58: .4byte gSharedMem
thumb_func_end sub_8096B38
thumb_func_start sub_8096B5C
sub_8096B5C: @ 8096B5C
push {r4,r5,lr}
sub sp, 0x8
ldr r4, _08096B70 @ =gSharedMem
ldrb r0, [r4, 0x6]
cmp r0, 0
beq _08096B74
cmp r0, 0x1
beq _08096BAC
b _08096BCC
.align 2, 0
_08096B70: .4byte gSharedMem
_08096B74:
ldr r1, _08096B98 @ =0x00002690
adds r0, r4, r1
ldr r0, [r0]
ldr r2, _08096B9C @ =0x0000268d
adds r1, r4, r2
ldrb r1, [r1]
ldr r3, _08096BA0 @ =0x0000268c
adds r2, r4, r3
ldrb r2, [r2]
ldr r3, _08096BA4 @ =sub_80969A0
ldr r5, _08096BA8 @ =0x0000268e
adds r4, r5
ldrb r4, [r4]
str r4, [sp]
bl ShowPokemonSummaryScreen
b _08096BCC
.align 2, 0
_08096B98: .4byte 0x00002690
_08096B9C: .4byte 0x0000268d
_08096BA0: .4byte 0x0000268c
_08096BA4: .4byte sub_80969A0
_08096BA8: .4byte 0x0000268e
_08096BAC:
ldr r0, _08096BD4 @ =gPokemonStorage
ldrb r2, [r0]
lsls r1, r2, 3
adds r1, r2
ldr r2, _08096BD8 @ =0x00008344
adds r0, r2
adds r1, r0
movs r0, 0
str r0, [sp]
ldr r0, _08096BDC @ =sub_80969A0
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl DoNamingScreen
_08096BCC:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08096BD4: .4byte gPokemonStorage
_08096BD8: .4byte 0x00008344
_08096BDC: .4byte sub_80969A0
thumb_func_end sub_8096B5C
thumb_func_start sub_8096BE0
sub_8096BE0: @ 8096BE0
ldr r1, _08096BEC @ =gSharedMem
str r0, [r1]
movs r0, 0
strb r0, [r1, 0x4]
bx lr
.align 2, 0
_08096BEC: .4byte gSharedMem
thumb_func_end sub_8096BE0
thumb_func_start sub_8096BF0
sub_8096BF0: @ 8096BF0
push {r4,lr}
+1 -1
View File
@@ -18,7 +18,7 @@ struct PokemonMarkMenu
/*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
/*0x1030*/ u8 filler1030[0x80];
/*0x10B0*/ u8 tileLoadState;
};
}; // 10b4
void sub_80F7404(void);
void sub_80F727C(struct PokemonMarkMenu *ptr);
+65 -9
View File
@@ -13,6 +13,8 @@
#include "event_data.h"
#include "ewram.h"
#include "script.h"
#include "pokemon_summary_screen.h"
#include "naming_screen.h"
#include "pokemon_storage_system.h"
struct StorageAction {
@@ -31,15 +33,6 @@ struct UnkStruct_2000020 {
u8 unk_05;
};
struct PokemonStorageSystemData {
u8 filler_0000[5];
u8 unk_0005;
u8 filler_0006[26];
struct UnkStruct_2000020 unk_0020[595]; // refine size later
u8 filler_12b8[4];
struct PokemonMarkMenu unk_12bc;
};
struct UnkPSSStruct_2002370 {
struct Sprite *unk_0000;
struct Sprite *unk_0004[4];
@@ -51,6 +44,27 @@ struct UnkPSSStruct_2002370 {
u8 unk_023e;
u16 unk_0240;
u16 unk_0242;
}; // 0244
struct PokemonStorageSystemData {
void (*unk_0000)(void);
u8 unk_0004;
u8 unk_0005;
u8 unk_0006;
u16 unk_0008;
u16 unk_000a;
u8 filler_000c[20];
struct UnkStruct_2000020 unk_0020[274]; // refine size later
u8 filler_08b0[4];
u16 unk_08b4;
u8 filler_08b6[0xa06];
struct PokemonMarkMenu unk_12bc;
struct UnkPSSStruct_2002370 unk_2370;
u8 filler_25b4[0xd8];
u8 unk_268c;
u8 unk_268d;
u8 unk_268e;
struct Pokemon *unk_2690;
};
void StorageSystemCreatePrimaryMenu(u8 whichMenu);
@@ -69,8 +83,10 @@ void sub_8096BE0(void (*func)(void));
void sub_8096BF0(void);
void sub_8096C68(void);
void sub_8097DE0(void);
void sub_8097E44(void);
void sub_8097E70(void);
void sub_8098400(void);
void sub_8098734(void);
void sub_8099BF8(u8 a0);
void sub_8098B48(void);
struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4);
@@ -80,6 +96,7 @@ void sub_809B0D4(void);
void sub_809BBC0(void);
void sub_809BD14(void);
void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2);
void sub_809CFF0(void);
const struct PSS_MenuStringPtrs gUnknown_083B600C[] = {
{PCText_WithdrawPoke, PCText_MovePokeToParty},
@@ -955,6 +972,45 @@ void sub_80969A0(void)
}
}
void sub_8096AFC(void)
{
REG_BG2HOFS = ePokemonStorageSystem.unk_08b4;
REG_BG3HOFS = ePokemonStorageSystem.unk_000a;
REG_BG3VOFS = ePokemonStorageSystem.unk_0008;
LoadOam();
ProcessSpriteCopyRequests();
sub_809CFF0();
TransferPlttBuffer();
}
void sub_8096B38(void)
{
ePokemonStorageSystem.unk_0000();
sub_8097E44();
sub_8098734();
AnimateSprites();
BuildOamBuffer();
}
void sub_8096B5C(void)
{
switch (ePokemonStorageSystem.unk_0006)
{
case 0:
ShowPokemonSummaryScreen(ePokemonStorageSystem.unk_2690, ePokemonStorageSystem.unk_268d, ePokemonStorageSystem.unk_268c, sub_80969A0, ePokemonStorageSystem.unk_268e);
break;
case 1:
DoNamingScreen(1, gPokemonStorage.boxNames[gPokemonStorage.currentBox], 0, 0, 0, sub_80969A0);
break;
}
}
void sub_8096BE0(void (*func)(void))
{
ePokemonStorageSystem.unk_0000 = func;
ePokemonStorageSystem.unk_0004 = 0;
}
asm(".section .text.8098898");
void sub_8098898(u8 index) {