diff options
-rw-r--r-- | asm/save.s | 61 | ||||
-rw-r--r-- | include/save.h | 34 | ||||
-rw-r--r-- | src/save.c | 15 | ||||
-rw-r--r-- | src/save_mid.c | 80 |
4 files changed, 96 insertions, 94 deletions
@@ -351,65 +351,4 @@ _0801227C: bx r1 thumb_func_end sub_8012240 - thumb_func_start sub_8012284 -sub_8012284: - push {lr} - bl sub_80122D0 - bl sub_80122F4 - bl sub_8012300 - pop {r0} - bx r0 - thumb_func_end sub_8012284 - - thumb_func_start sub_8012298 -sub_8012298: - push {lr} - bl sub_80976A8 - bl sub_80122A8 - pop {r0} - bx r0 - thumb_func_end sub_8012298 - - thumb_func_start sub_80122A8 -sub_80122A8: - push {lr} - bl sub_80122D0 - bl sub_80122F4 - bl sub_8012300 - bl sub_8012240 - pop {r0} - bx r0 - thumb_func_end sub_80122A8 - - thumb_func_start nullsub_33 -nullsub_33: - bx lr - thumb_func_end nullsub_33 - - thumb_func_start sub_80122C4 -sub_80122C4: - push {lr} - bl sub_80122A8 - pop {r0} - bx r0 - thumb_func_end sub_80122C4 - - thumb_func_start sub_80122D0 -sub_80122D0: - push {lr} - movs r0, 0 - bl sub_8011C28 - movs r0, 0x1 - negs r0, r0 - bl sub_8011C40 - bl sub_8097748 - ldr r0, _080122F0 - ldr r0, [r0] - bl sub_8094FA8 - pop {r0} - bx r0 - .align 2, 0 -_080122F0: .4byte gUnknown_203B47C - thumb_func_end sub_80122D0 - .align 2, 0 @ Don't pad with nop. diff --git a/include/save.h b/include/save.h new file mode 100644 index 0000000..6d0f568 --- /dev/null +++ b/include/save.h @@ -0,0 +1,34 @@ +struct unkTimeStruct +{ + u16 unk0; + u8 unk2; + u8 unk3; + u8 unk4; +}; + +struct UnkStruct_203B184 { + /* 0x0 */ u32 unk0; + /* 0x4 */ u32 unk4; + /* 0x8 */ u32 unk8; + /* 0xC */ u32 unkC; + /* 0x10 */ u32 unk10; + /* 0x14 */ u32 unk14; + /* 0x18 */ u32 unk18; + /* 0x1C */ u32 unk1C; + /* 0x20 */ u32 unk20; + /* 0x24 */ u32 unk24; + /* 0x28 */ u32 unk28; + /* 0x2C */ u32 unk2C; + /* 0x30 */ struct unkTimeStruct *unk30; + u32 unk34; + u32 unk38; + u32 unk3C; + u32 unk40; + u32 unk44; + u32 unk48; + u8 *unk04C; + u32 unk050; + u32 unk054; + u32 unk058; +}; + @@ -1,14 +1,7 @@ #include "global.h" #include "flash.h" #include "memory.h" - -struct UnkStruct_203B184 { - u8 fill000[0x4C]; - u8 *unk04C; - u32 unk050; - u32 unk054; - u32 unk058; -}; +#include "save.h" struct UnkStruct_sub_8011DAC { u8 fill000[0x4]; @@ -30,7 +23,7 @@ struct UnkStruct_sub_8011DAC { u8 fill448[0x538C]; }; -extern u32 gUnknown_202DE28; +extern s32 gUnknown_202DE28; extern u32 gUnknown_203B17C; extern u32 gUnknown_203B180; extern volatile struct UnkStruct_203B184 *gUnknown_203B184; @@ -61,12 +54,12 @@ void sub_8011C28(u32 in) gUnknown_203B17C = in; } -u32 sub_8011C34(void) +s32 sub_8011C34(void) { return gUnknown_202DE28; } -void sub_8011C40(u32 in) +void sub_8011C40(s32 in) { gUnknown_202DE28 = in; } diff --git a/src/save_mid.c b/src/save_mid.c index da96d09..67ad932 100644 --- a/src/save_mid.c +++ b/src/save_mid.c @@ -1,24 +1,8 @@ #include "global.h" +#include "save.h" -// TODO unify with UnkStruct_203B184 in save.c -struct unkSaveStruct -{ - /* 0x0 */ u32 unk0; - /* 0x4 */ u32 unk4; - /* 0x8 */ u32 unk8; - /* 0xC */ u32 unkC; - /* 0x10 */ u32 unk10; - /* 0x14 */ u32 unk14; - /* 0x18 */ u32 unk18; - /* 0x1C */ u32 unk1C; - /* 0x20 */ u32 unk20; - /* 0x24 */ u32 unk24; - /* 0x28 */ u32 unk28; - /* 0x2C */ u32 unk2C; - /* 0x30 */ u32 unk30; -}; - -extern struct unkSaveStruct *gUnknown_203B184; +extern struct UnkStruct_203B184 *gUnknown_203B184; +extern struct unkTimeStruct *gUnknown_203B47C; extern u32 gUnknown_203B460; extern u32 gUnknown_203B45C; @@ -32,7 +16,6 @@ extern u32 gUnknown_203B494; extern u32 gUnknown_203B498; extern u32 gUnknown_203B468; extern u32 gUnknown_203B46C; -extern u32 gUnknown_203B47C; extern void sub_800135C(void); extern u32 sub_808CE00(void); @@ -45,7 +28,6 @@ extern u32 sub_80923B0(void); extern void sub_80923B8(void); extern u32 sub_8094990(void); extern void sub_8094998(u8 r0); -extern u32 sub_8094FA0(void); extern u32 sub_80950F8(void); extern u32 sub_8095100(void); extern u32 sub_8095108(void); @@ -59,6 +41,60 @@ extern void sub_80974E8(void); extern u32 sub_8097F6C(void); extern void sub_8097F74(void); +extern void sub_8011C28(u32 r0); +extern void sub_8011C40(s32 r0); +extern void sub_8097748(void); +extern void sub_8012240(); + + +extern void sub_8094FA8(struct unkTimeStruct *Time); // defined in src/code_8094F88.c +extern struct unkTimeStruct *sub_8094FA0(void); + +void sub_80122D0(); +void sub_80122F4(); +void sub_8012300(); +void sub_80976A8(); +void sub_80122A8(); + +void sub_8012284(void) +{ + sub_80122D0(); + sub_80122F4(); + sub_8012300(); +} + +void sub_8012298(void) +{ + sub_80976A8(); + sub_80122A8(); +} + +void sub_80122A8(void) +{ + sub_80122D0(); + sub_80122F4(); + sub_8012300(); + sub_8012240(); + +} + +void nullsub_33(void) +{ +} + +void sub_80122C4(void) +{ + sub_80122A8(); +} + +void sub_80122D0(void) +{ + sub_8011C28(0); + sub_8011C40(-1); + sub_8097748(); + sub_8094FA8(gUnknown_203B47C); +} + void sub_80122F4(void) { sub_800135C(); @@ -85,7 +121,7 @@ void nullsub_200(u32 r0) } // Unused -void sub_8012334(struct unkSaveStruct *r0) +void sub_8012334(struct UnkStruct_203B184 *r0) { gUnknown_203B184 = r0; if(r0 != NULL) |