summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_800D090.s189
-rw-r--r--asm/save1.s17
-rw-r--r--include/input.h1
-rw-r--r--src/code_800558C.c8
-rw-r--r--src/code_80118A4.c92
-rw-r--r--src/save_mid.c17
6 files changed, 114 insertions, 210 deletions
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index b3c63f3..394944e 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -9305,193 +9305,4 @@ _08011758: .4byte gUnknown_203B46C
_0801175C: .4byte gUnknown_203B47C
thumb_func_end sub_801169C
- thumb_func_start sub_8011760
-sub_8011760:
- push {lr}
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08011776
- movs r0, 0x13
- bl sub_800BDFC
- b _08011788
-_08011776:
- movs r0, 0xC
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08011788
- movs r0, 0x7
- bl sub_800BDFC
-_08011788:
- pop {r0}
- bx r0
- thumb_func_end sub_8011760
-
- thumb_func_start sub_801178C
-sub_801178C:
- push {lr}
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080117A2
- movs r0, 0x13
- bl sub_800BDFC
- b _080117A8
-_080117A2:
- movs r0, 0x7
- bl sub_800BDFC
-_080117A8:
- pop {r0}
- bx r0
- thumb_func_end sub_801178C
-
- thumb_func_start sub_80117AC
-sub_80117AC:
- push {lr}
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080117C0
- movs r0, 0x1E
- bl sub_800BFD0
-_080117C0:
- pop {r0}
- bx r0
- thumb_func_end sub_80117AC
-
- thumb_func_start sub_80117C4
-sub_80117C4:
- push {lr}
- movs r0, 0x1E
- bl sub_800BFD0
- pop {r0}
- bx r0
- thumb_func_end sub_80117C4
-
- thumb_func_start sub_80117D0
-sub_80117D0:
- push {lr}
- movs r0, 0x97
- lsls r0, 1
- movs r1, 0x80
- lsls r1, 1
- bl sub_800C074
- pop {r0}
- bx r0
- thumb_func_end sub_80117D0
-
- thumb_func_start sub_80117E4
-sub_80117E4:
- push {lr}
- ldr r0, _080117F4
- movs r1, 0x80
- lsls r1, 1
- bl sub_800C074
- pop {r0}
- bx r0
- .align 2, 0
-_080117F4: .4byte 0x0000012f
- thumb_func_end sub_80117E4
-
- thumb_func_start sub_80117F8
-sub_80117F8:
- push {lr}
- ldr r0, _08011808
- movs r1, 0x80
- lsls r1, 1
- bl sub_800C074
- pop {r0}
- bx r0
- .align 2, 0
-_08011808: .4byte 0x0000012d
- thumb_func_end sub_80117F8
-
- thumb_func_start sub_801180C
-sub_801180C:
- ldr r0, _08011820
- movs r1, 0
- str r1, [r0]
- ldr r0, _08011824
- strh r1, [r0]
- ldr r0, _08011828
- strh r1, [r0]
- ldr r0, _0801182C
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08011820: .4byte gUnknown_202DE1C
-_08011824: .4byte gUnknown_202DE20
-_08011828: .4byte gUnknown_202DE22
-_0801182C: .4byte gUnknown_202DE24
- thumb_func_end sub_801180C
-
- thumb_func_start sub_8011830
-sub_8011830:
- push {lr}
- bl sub_800C93C
- ldr r0, _08011848
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0801184C
- strh r1, [r0]
- ldr r0, _08011850
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08011848: .4byte gUnknown_202DE20
-_0801184C: .4byte gUnknown_202DE22
-_08011850: .4byte gUnknown_202DE24
- thumb_func_end sub_8011830
-
- thumb_func_start sub_8011854
-sub_8011854:
- push {lr}
- bl sub_800C9CC
- pop {r0}
- bx r0
- thumb_func_end sub_8011854
-
- thumb_func_start sub_8011860
-sub_8011860:
- push {lr}
- ldr r1, _08011898
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08011872
- subs r0, r2, 0x1
- strh r0, [r1]
-_08011872:
- ldr r1, _0801189C
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08011882
- subs r0, r2, 0x1
- strh r0, [r1]
-_08011882:
- ldr r1, _080118A0
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08011892
- subs r0, r2, 0x1
- strh r0, [r1]
-_08011892:
- pop {r0}
- bx r0
- .align 2, 0
-_08011898: .4byte gUnknown_202DE20
-_0801189C: .4byte gUnknown_202DE22
-_080118A0: .4byte gUnknown_202DE24
- thumb_func_end sub_8011860
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/save1.s b/asm/save1.s
index 3a64f71..543552e 100644
--- a/asm/save1.s
+++ b/asm/save1.s
@@ -5,23 +5,6 @@
.text
- thumb_func_start sub_8012468
-sub_8012468:
- push {r4,lr}
- ldr r4, _08012480
- movs r0, 0x8
- movs r1, 0x5
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0x1
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08012480: .4byte gUnknown_203B188
- thumb_func_end sub_8012468
-
thumb_func_start sub_8012484
sub_8012484:
push {r4,r5,lr}
diff --git a/include/input.h b/include/input.h
index 0032a37..0c4208d 100644
--- a/include/input.h
+++ b/include/input.h
@@ -44,6 +44,7 @@ struct Input
/* 0x28 */ u8 unk28;
/* 0x29 */ u8 unk29;
/* 0x2A */ u8 unk2A;
+ /* 0x2B */ u8 padding;
};
void InitInput(void);
diff --git a/src/code_800558C.c b/src/code_800558C.c
index 773e773..4cc90e9 100644
--- a/src/code_800558C.c
+++ b/src/code_800558C.c
@@ -3,12 +3,12 @@
extern u32 gUnknown_203B47C;
+extern u8 gUnknown_2026E38;
extern u32 gUnknown_2026E3C;
-extern u32 gUnknown_2026E58;
-extern u32 gUnknown_2026E54;
-extern u32 gUnknown_2026E50;
extern u16 gUnknown_2026E4E;
-extern u8 gUnknown_2026E38;
+extern u32 gUnknown_2026E50;
+extern u32 gUnknown_2026E54;
+extern u32 gUnknown_2026E58;
extern void sub_800CC44(u32 r0, u32 r1);
diff --git a/src/code_80118A4.c b/src/code_80118A4.c
index 85782d7..c809bdb 100644
--- a/src/code_80118A4.c
+++ b/src/code_80118A4.c
@@ -3,6 +3,7 @@
void sub_8011924(void);
void nullsub_26(void);
+extern u8 sub_80023E4(u8);
extern void sub_800BDFC(u16 r0);
extern void sub_800BE8C(u16 r0, u16 r1);
extern void sub_800BF48(u16 r0);
@@ -13,7 +14,9 @@ extern void sub_801199C(u16 r0);
extern u16 sub_800C068();
extern void sub_800C074(u16 r0, u16 r1);
extern void sub_800C298(u16 r0);
+extern void sub_800C93C();
extern u8 sub_800C5D0(u16 r0);
+extern void sub_800C9CC();
extern void nullsub_27(void);
extern void nullsub_29(void);
@@ -31,9 +34,98 @@ struct UnkStructType
extern u16 gUnknown_80D4144[];
extern struct UnkStructType gUnknown_202DE20;
extern struct UnkStructType gUnknown_202DE22;
+extern struct UnkStructType gUnknown_202DE24;
extern u32 gUnknown_202DE1C;
extern u32 gUnknown_203B14C;
+void sub_8011760(void)
+{
+ if(sub_80023E4(0xD) != 0)
+ {
+ sub_800BDFC(0x13);
+ return;
+ }
+ if(sub_80023E4(0xC) != 0)
+ {
+ sub_800BDFC(0x7);
+ }
+}
+
+void sub_801178C(void)
+{
+ if(sub_80023E4(0xD) != 0)
+ {
+ sub_800BDFC(0x13);
+ return;
+ }
+ sub_800BDFC(0x7);
+}
+
+void sub_80117AC(void)
+{
+ if(sub_80023E4(0xD) == 0)
+ {
+ sub_800BFD0(0x1E);
+ }
+}
+
+void sub_80117C4(void)
+{
+ sub_800BFD0(0x1E);
+}
+
+void sub_80117D0(void)
+{
+ sub_800C074(0x97 << 1, 0x80 << 1);
+}
+
+void sub_80117E4(void)
+{
+ sub_800C074(0x12f, 0x80 << 1);
+}
+
+void sub_80117F8(void)
+{
+ sub_800C074(0x12d, 0x80 << 1);
+}
+
+void sub_801180C(void)
+{
+ gUnknown_202DE1C = 0;
+ gUnknown_202DE20.unk0 = 0;
+ gUnknown_202DE22.unk0 = 0;
+ gUnknown_202DE24.unk0 = 0;
+}
+
+void sub_8011830(void)
+{
+ sub_800C93C();
+ gUnknown_202DE20.unk0 = 0;
+ gUnknown_202DE22.unk0 = 0;
+ gUnknown_202DE24.unk0 = 0;
+}
+
+void sub_8011854(void)
+{
+ sub_800C9CC();
+}
+
+void sub_8011860(void)
+{
+ if(gUnknown_202DE20.unk0 > 0)
+ {
+ gUnknown_202DE20.unk0--;
+ }
+ if(gUnknown_202DE22.unk0 > 0)
+ {
+ gUnknown_202DE22.unk0--;
+ }
+ if(gUnknown_202DE24.unk0 > 0)
+ {
+ gUnknown_202DE24.unk0--;
+ }
+}
+
void sub_80118A4(void)
{
sub_8011924();
diff --git a/src/save_mid.c b/src/save_mid.c
index 67ad932..d401ec3 100644
--- a/src/save_mid.c
+++ b/src/save_mid.c
@@ -4,6 +4,14 @@
extern struct UnkStruct_203B184 *gUnknown_203B184;
extern struct unkTimeStruct *gUnknown_203B47C;
+struct unk_203B188
+{
+ u32 unk0;
+ u32 unk4;
+};
+
+extern struct unk_203B188 *gUnknown_203B188;
+
extern u32 gUnknown_203B460;
extern u32 gUnknown_203B45C;
extern u32 gUnknown_203B480;
@@ -50,6 +58,8 @@ extern void sub_8012240();
extern void sub_8094FA8(struct unkTimeStruct *Time); // defined in src/code_8094F88.c
extern struct unkTimeStruct *sub_8094FA0(void);
+extern void* MemoryAlloc(u32 a, u32 b);
+
void sub_80122D0();
void sub_80122F4();
void sub_8012300();
@@ -156,3 +166,10 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
gUnknown_203B47C = sub_8094FA0();
}
+
+void sub_8012468(void)
+{
+ gUnknown_203B188 = MemoryAlloc(sizeof(struct unk_203B188), 5);
+ gUnknown_203B188->unk0 = 1;
+
+}