diff options
author | YamaArashi <shadow962@live.com> | 2016-10-26 23:38:59 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-26 23:48:35 -0700 |
commit | 4d97a80e14bd61b8401cdaff8e1329bc261e3540 (patch) | |
tree | b29cd6d49aa672353e7a9bbfe747c5ad4b4eb315 | |
parent | d7223321288cdc7ad2e8de0b80b0e15e2445b090 (diff) |
decompile more rom4 functions
-rw-r--r-- | asm/rom4.s | 157 | ||||
-rw-r--r-- | src/rom4.c | 78 |
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); +} |