summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-26 23:38:59 -0700
committerYamaArashi <shadow962@live.com>2016-10-26 23:48:35 -0700
commit4d97a80e14bd61b8401cdaff8e1329bc261e3540 (patch)
treeb29cd6d49aa672353e7a9bbfe747c5ad4b4eb315
parentd7223321288cdc7ad2e8de0b80b0e15e2445b090 (diff)
decompile more rom4 functions
-rw-r--r--asm/rom4.s157
-rw-r--r--src/rom4.c78
2 files changed, 78 insertions, 157 deletions
diff --git a/asm/rom4.s b/asm/rom4.s
index 7e2d4c20f..04ef9cbe0 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -5,163 +5,6 @@
.text
- thumb_func_start sub_8055870
-sub_8055870: @ 8055870
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0
- bne _0805587E
- movs r0, 0
- b _080558A4
-_0805587E:
- ldr r0, _08055890 @ =gLink
- ldr r1, _08055894 @ =0x00000fbd
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0805589C
- ldr r1, _08055898 @ =gUnknown_03000588
- movs r0, 0x1
- b _080558A0
- .align 2, 0
-_08055890: .4byte gLink
-_08055894: .4byte 0x00000fbd
-_08055898: .4byte gUnknown_03000588
-_0805589C:
- ldr r1, _080558A8 @ =gUnknown_03000588
- movs r0, 0
-_080558A0:
- strb r0, [r1]
- ldrb r0, [r1]
-_080558A4:
- pop {r1}
- bx r1
- .align 2, 0
-_080558A8: .4byte gUnknown_03000588
- thumb_func_end sub_8055870
-
- thumb_func_start sub_80558AC
-sub_80558AC: @ 80558AC
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _08055908
- bl sub_8007B24
- cmp r0, 0x1
- bne _08055908
- ldr r0, _080558F4 @ =gUnknown_03000584
- ldr r1, [r0]
- ldr r0, _080558F8 @ =sub_8055408
- cmp r1, r0
- beq _080558F0
- ldr r0, _080558FC @ =sub_80553E4
- cmp r1, r0
- bne _08055908
- ldr r0, _08055900 @ =gUnknown_03000588
- ldrb r2, [r0]
- movs r1, 0
- strb r1, [r0]
- cmp r2, 0x1
- beq _080558F0
- ldr r2, _08055904 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08055908
- ldrb r1, [r2, 0xA]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08055908
-_080558F0:
- movs r0, 0x1
- b _0805590A
- .align 2, 0
-_080558F4: .4byte gUnknown_03000584
-_080558F8: .4byte sub_8055408
-_080558FC: .4byte sub_80553E4
-_08055900: .4byte gUnknown_03000588
-_08055904: .4byte gPaletteFade
-_08055908:
- movs r0, 0
-_0805590A:
- pop {r1}
- bx r1
- thumb_func_end sub_80558AC
-
- thumb_func_start sub_8055910
-sub_8055910: @ 8055910
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _0805592C
- bl sub_8007B24
- cmp r0, 0x1
- bne _0805592C
- ldr r0, _08055930 @ =gUnknown_03000584
- ldr r1, [r0]
- ldr r0, _08055934 @ =sub_8055438
- cmp r1, r0
- beq _08055938
-_0805592C:
- movs r0, 0
- b _0805593A
- .align 2, 0
-_08055930: .4byte gUnknown_03000584
-_08055934: .4byte sub_8055438
-_08055938:
- movs r0, 0x1
-_0805593A:
- pop {r1}
- bx r1
- thumb_func_end sub_8055910
-
- thumb_func_start sub_8055940
-sub_8055940: @ 8055940
- push {lr}
- bl sub_8007B24
- cmp r0, 0
- beq _0805594E
- movs r0, 0x1
- b _08055950
-_0805594E:
- movs r0, 0
-_08055950:
- pop {r1}
- bx r1
- thumb_func_end sub_8055940
-
- thumb_func_start sub_8055954
-sub_8055954: @ 8055954
- movs r1, 0
- str r1, [r0]
- bx lr
- thumb_func_end sub_8055954
-
- thumb_func_start strange_npc_table_clear
-strange_npc_table_clear: @ 805595C
- push {lr}
- ldr r0, _0805596C @ =gUnknown_02029818
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_0805596C: .4byte gUnknown_02029818
- thumb_func_end strange_npc_table_clear
-
- thumb_func_start sub_8055970
-sub_8055970: @ 8055970
- push {lr}
- movs r1, 0
- movs r2, 0x24
- bl memset
- pop {r0}
- bx r0
- thumb_func_end sub_8055970
-
thumb_func_start sub_8055980
sub_8055980: @ 8055980
push {r4-r7,lr}
diff --git a/src/rom4.c b/src/rom4.c
index 82c78b21d..7650ab30b 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -83,6 +83,7 @@ extern u8 gUnknown_0202E85D;
extern u8 gUnknown_03000580[];
extern u16 (*gUnknown_03000584)(u32);
+extern u8 gUnknown_03000588;
extern u16 word_3004858;
extern void (*gUnknown_0300485C)(void);
@@ -219,6 +220,8 @@ void sub_80557F4(void);
void sub_8055808(u8 *);
void sub_8055824(void);
void sub_8055840(u8 *);
+void sub_805585C(void);
+bool32 sub_8055870(void);
void sub_8055980(u8, s16, s16, u8);
void sub_80555B0(int, int, struct UnkStruct_8054FF8 *);
u8 sub_8055AE8(u8);
@@ -2346,3 +2349,78 @@ void sub_805585C(void)
ScriptContext1_SetupScript(gUnknown_081A44FE);
ScriptContext2_Enable();
}
+
+bool32 sub_8055870(void)
+{
+ if (!is_c1_link_related_active())
+ return 0;
+ if (gLink.recvQueue.count >= 3)
+ gUnknown_03000588 = 1;
+ else
+ gUnknown_03000588 = 0;
+ return gUnknown_03000588;
+}
+
+bool32 sub_80558AC(void)
+{
+ u8 temp;
+
+ if (is_c1_link_related_active() != TRUE)
+ return FALSE;
+
+ if (sub_8007B24() != TRUE)
+ return FALSE;
+
+ if (gUnknown_03000584 == sub_8055408)
+ return TRUE;
+
+ if (gUnknown_03000584 != sub_80553E4)
+ return FALSE;
+
+ temp = gUnknown_03000588;
+ gUnknown_03000588 = 0;
+
+ if (temp == TRUE)
+ return TRUE;
+
+ if (gPaletteFade.active && gPaletteFade.softwareFadeFinishing)
+ return TRUE;
+
+ return FALSE;
+}
+
+bool32 sub_8055910(void)
+{
+ if (is_c1_link_related_active() != TRUE)
+ return FALSE;
+
+ if (sub_8007B24() != TRUE)
+ return FALSE;
+
+ if (gUnknown_03000584 == sub_8055438)
+ return TRUE;
+
+ return FALSE;
+}
+
+bool32 sub_8055940(void)
+{
+ if (!sub_8007B24())
+ return FALSE;
+ return TRUE;
+}
+
+void sub_8055954(u32 *a1)
+{
+ *a1 = 0;
+}
+
+void strange_npc_table_clear(void)
+{
+ memset(gUnknown_02029818, 0, 16);
+}
+
+void sub_8055970(void *a1)
+{
+ memset(a1, 0, 36);
+}