summaryrefslogtreecommitdiff
path: root/src/save1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/save1.c')
-rw-r--r--src/save1.c117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/save1.c b/src/save1.c
index b7de6c6..a194557 100644
--- a/src/save1.c
+++ b/src/save1.c
@@ -1,6 +1,55 @@
#include "global.h"
+#include "code_800558C.h"
+#include "input.h"
+
+
+struct UnkSaveStruct1
+{
+ /* 0x0 */ u32 unk0;
+ /* 0x4 */ u32 unk4;
+ /* 0x8 */ u16 unk8;
+ /* 0xA */ u8 unkA;
+};
+
+struct UnkStruct
+{
+ /* 0x0 */ u8 unk0;
+ /* 0x1 */ u8 unk1;
+ /* 0x2 */ u8 unk2;
+ /* 0x3 */ u8 unk3;
+ /* 0x4 */ u8 unk4;
+ /* 0x5 */ u32 unk5;
+ /* 0x9 */ u32 unk9;
+ /* 0xD */ u32 unkD;
+ /* 0x12 */ u32 unk11;
+ /* 0x16 */ u32 unk15;
+ /* 0x1A */ u32 unk19;
+ /* 0x1E */ u32 unk1D;
+ /* 0x24 */ u32 unk24;
+ /* 0x28 */ u8 unk28;
+ /* 0x29 */ u8 unk29;
+ /* 0x2A */ u8 unk2A;
+ /* 0x2B */ u8 unk2B;
+ /* 0x2C */ u8 unk2C;
+};
extern void MemoryFree(void *);
+extern void sub_8011860();
+extern void xxx_draw_string_80144C4();
+extern void nullsub_8(u8);
+extern void sub_8005180();
+extern void sub_800CB20();
+extern void CopySpritesToOam();
+extern void sub_8005304();
+extern void TransferBGPaletteBuffer();
+extern void xxx_call_update_bg_vram();
+extern void sub_8009908();
+extern void xxx_call_update_bg_sound_input();
+extern void ResetSprites(u8 r0);
+extern u32 sub_8012AE8(void);
+extern void nullsub_34(struct UnkStruct *r0);
+
+extern struct UnkSaveStruct1 *gUnknown_203B46C;
extern u8 *gUnknown_203B194;
@@ -11,3 +60,71 @@ void sub_80129FC()
gUnknown_203B194 = NULL;
}
}
+
+void sub_8012A18()
+{
+ sub_8011860();
+ xxx_draw_string_80144C4();
+ nullsub_8(gUnknown_203B46C->unkA);
+ sub_8005180();
+ sub_80060EC();
+ sub_800CB20();
+ sub_800485C(); // Input related
+ CopySpritesToOam();
+ sub_8005304();
+ TransferBGPaletteBuffer();
+ xxx_call_update_bg_vram();
+ sub_8009908();
+ xxx_call_update_bg_sound_input();
+ ResetSprites(0);
+}
+
+u32 sub_8012A64(struct UnkStruct *r0, u32 r1)
+{
+ if(r0 == NULL)
+ {
+ return sub_8012AE8();
+ }
+ if(r1 != -1)
+ {
+ nullsub_34(r0);
+ }
+ if(r0->unk1 != 0)
+ {
+ r0->unk1 = 0;
+ return 1;
+ }
+ if(r0->unk2 == 0)
+ {
+ return sub_8012AE8();
+ }
+ r0->unk2 = r0->unk1;
+ return 2;
+}
+
+// TODO match that one line
+//u32 GetKeyPress(struct UnkStruct *r0)
+//{
+// if(r0 == NULL)
+// {
+// return sub_8012AE8();
+// }
+// // TODO it's not a struct access..
+// if(r0->unk29 != 0)
+// {
+// return 1;
+// }
+// if(r0->unk2A != 0)
+// {
+// return 2;
+// }
+// if(r0->unk2C != 0)
+// {
+// return 9;
+// }
+// if(r0->unk2B == 0)
+// {
+// return sub_8012AE8();
+// }
+// return 0xA;
+//}