diff options
author | YamaArashi <shadow962@live.com> | 2016-10-22 22:34:47 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-22 22:34:47 -0700 |
commit | ff71f9b220f7aec6faf059a129649868e7a43d5e (patch) | |
tree | ecb6d3230fc538d677a84d9812de6520cf831384 | |
parent | 7d1b01310f36f7f1b7a5302002fb3567c4b98aae (diff) |
decompile more rom4 functions
-rw-r--r-- | asm/rom4.s | 140 | ||||
-rw-r--r-- | src/rom4.c | 93 |
2 files changed, 91 insertions, 142 deletions
diff --git a/asm/rom4.s b/asm/rom4.s index 45377e31d..3fc50b3f6 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -5,146 +5,6 @@ .text - thumb_func_start sub_8055758 -sub_8055758: @ 8055758 - push {lr} - adds r1, r0, 0 - ldr r0, _080557A4 @ =gUnknown_081A4383 - cmp r1, r0 - beq _0805579E - ldr r0, _080557A8 @ =gUnknown_081A439E - cmp r1, r0 - beq _080557E0 - ldr r0, _080557AC @ =gUnknown_081A43B9 - cmp r1, r0 - beq _0805579E - ldr r0, _080557B0 @ =gUnknown_081A43D4 - cmp r1, r0 - beq _080557E0 - ldr r0, _080557B4 @ =gUnknown_081A4418 - cmp r1, r0 - beq _0805579E - ldr r0, _080557B8 @ =gUnknown_081A442D - cmp r1, r0 - beq _080557E0 - ldr r0, _080557BC @ =gUnknown_081A4442 - cmp r1, r0 - beq _0805579E - ldr r0, _080557C0 @ =gUnknown_081A4457 - cmp r1, r0 - beq _080557E0 - ldr r0, _080557C4 @ =gUnknown_081A436F - cmp r1, r0 - beq _0805579E - ldr r0, _080557C8 @ =gUnknown_081A4379 - cmp r1, r0 - beq _080557E0 - ldr r0, _080557CC @ =gUnknown_081A43F0 - cmp r1, r0 - bne _080557D0 -_0805579E: - movs r0, 0xA - b _080557E2 - .align 2, 0 -_080557A4: .4byte gUnknown_081A4383 -_080557A8: .4byte gUnknown_081A439E -_080557AC: .4byte gUnknown_081A43B9 -_080557B0: .4byte gUnknown_081A43D4 -_080557B4: .4byte gUnknown_081A4418 -_080557B8: .4byte gUnknown_081A442D -_080557BC: .4byte gUnknown_081A4442 -_080557C0: .4byte gUnknown_081A4457 -_080557C4: .4byte gUnknown_081A436F -_080557C8: .4byte gUnknown_081A4379 -_080557CC: .4byte gUnknown_081A43F0 -_080557D0: - ldr r0, _080557DC @ =gUnknown_081A43FA - cmp r1, r0 - beq _080557E0 - movs r0, 0 - b _080557E2 - .align 2, 0 -_080557DC: .4byte gUnknown_081A43FA -_080557E0: - movs r0, 0x9 -_080557E2: - pop {r1} - bx r1 - thumb_func_end sub_8055758 - - thumb_func_start sub_80557E8 -sub_80557E8: @ 80557E8 - push {lr} - bl ScriptContext2_Enable - pop {r0} - bx r0 - thumb_func_end sub_80557E8 - - thumb_func_start sub_80557F4 -sub_80557F4: @ 80557F4 - push {lr} - movs r0, 0x6 - bl PlaySE - bl sub_8071310 - bl ScriptContext2_Enable - pop {r0} - bx r0 - thumb_func_end sub_80557F4 - - thumb_func_start sub_8055808 -sub_8055808: @ 8055808 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8055808 - - thumb_func_start sub_8055824 -sub_8055824: @ 8055824 - push {lr} - movs r0, 0x6 - bl PlaySE - ldr r0, _0805583C @ =gUnknown_081A44E5 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0805583C: .4byte gUnknown_081A44E5 - thumb_func_end sub_8055824 - - thumb_func_start sub_8055840 -sub_8055840: @ 8055840 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8055840 - - thumb_func_start sub_805585C -sub_805585C: @ 805585C - push {lr} - ldr r0, _0805586C @ =gUnknown_081A44FE - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0805586C: .4byte gUnknown_081A44FE - thumb_func_end sub_805585C - thumb_func_start sub_8055870 sub_8055870: @ 8055870 push {lr} diff --git a/src/rom4.c b/src/rom4.c index b1979b3a9..a898ab988 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -96,9 +96,23 @@ extern u16 gUnknown_0300489C; extern u8 gUnknown_0819FC74[]; extern u8 gUnknown_0819FC9F[]; +extern u8 gUnknown_081A436F[]; +extern u8 gUnknown_081A4379[]; +extern u8 gUnknown_081A4383[]; +extern u8 gUnknown_081A439E[]; +extern u8 gUnknown_081A43B9[]; +extern u8 gUnknown_081A43D4[]; +extern u8 gUnknown_081A43F0[]; +extern u8 gUnknown_081A43FA[]; +extern u8 gUnknown_081A4418[]; +extern u8 gUnknown_081A442D[]; +extern u8 gUnknown_081A4442[]; +extern u8 gUnknown_081A4457[]; extern u8 gUnknown_081A4479[]; extern u8 gUnknown_081A4487[]; extern u8 gUnknown_081A4495[]; +extern u8 gUnknown_081A44E5[]; +extern u8 gUnknown_081A44FE[]; extern u8 gUnknown_081A4508[]; extern struct UCoords32 gUnknown_0821664C[]; @@ -127,6 +141,7 @@ extern void sub_8080990(void); extern u8 sub_80BBB24(void); extern u16 MapGridGetMetatileBehaviorAt(int, int); extern u8 *sub_80682A8(void *, u8, u8); +extern u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *); void sub_8053050(void); void warp_in(void); @@ -196,9 +211,15 @@ u16 sub_8055408(u32); u16 sub_8055438(u32); bool32 sub_8055618(struct UnkStruct_8054FF8 *); bool32 sub_8055630(struct UnkStruct_8054FF8 *); -u32 sub_8055648(struct UnkStruct_8054FF8 *); +u8 *sub_8055648(struct UnkStruct_8054FF8 *); bool32 sub_8055660(struct UnkStruct_8054FF8 *); u8 *sub_805568C(struct UnkStruct_8054FF8 *); +u16 sub_8055758(u8 *); +void sub_80557E8(void); +void sub_80557F4(void); +void sub_8055808(u8 *); +void sub_8055824(void); +void sub_8055840(u8 *); void sub_8055980(u8, s16, s16, u8); void sub_80555B0(int, int, struct UnkStruct_8054FF8 *); u8 sub_8055AE8(u8); @@ -2213,7 +2234,7 @@ bool32 sub_8055630(struct UnkStruct_8054FF8 *a1) return FALSE; } -u32 sub_8055648(struct UnkStruct_8054FF8 *a1) +u8 *sub_8055648(struct UnkStruct_8054FF8 *a1) { if (a1->c != 2) return 0; @@ -2258,3 +2279,71 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1) return sub_80682A8(&unkStruct, a1->field_C, a1->d); } + +u16 sub_8055758(u8 *script) +{ + if (script == gUnknown_081A4383) + return 10; + if (script == gUnknown_081A439E) + return 9; + if (script == gUnknown_081A43B9) + return 10; + if (script == gUnknown_081A43D4) + return 9; + if (script == gUnknown_081A4418) + return 10; + if (script == gUnknown_081A442D) + return 9; + if (script == gUnknown_081A4442) + return 10; + if (script == gUnknown_081A4457) + return 9; + if (script == gUnknown_081A436F) + return 10; + if (script == gUnknown_081A4379) + return 9; + if (script == gUnknown_081A43F0) + return 10; + if (script == gUnknown_081A43FA) + return 9; + return 0; +} + +void sub_80557E8(void) +{ + ScriptContext2_Enable(); +} + +void sub_80557F4(void) +{ + PlaySE(SE_WIN_OPEN); + sub_8071310(); + ScriptContext2_Enable(); +} + +void sub_8055808(u8 *script) +{ + PlaySE(SE_SELECT); + ScriptContext1_SetupScript(script); + ScriptContext2_Enable(); +} + +void sub_8055824(void) +{ + PlaySE(SE_WIN_OPEN); + ScriptContext1_SetupScript(gUnknown_081A44E5); + ScriptContext2_Enable(); +} + +void sub_8055840(u8 *script) +{ + PlaySE(SE_SELECT); + ScriptContext1_SetupScript(script); + ScriptContext2_Enable(); +} + +void sub_805585C(void) +{ + ScriptContext1_SetupScript(gUnknown_081A44FE); + ScriptContext2_Enable(); +} |