summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-22 22:34:47 -0700
committerYamaArashi <shadow962@live.com>2016-10-22 22:34:47 -0700
commitff71f9b220f7aec6faf059a129649868e7a43d5e (patch)
treeecb6d3230fc538d677a84d9812de6520cf831384
parent7d1b01310f36f7f1b7a5302002fb3567c4b98aae (diff)
decompile more rom4 functions
-rw-r--r--asm/rom4.s140
-rw-r--r--src/rom4.c93
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();
+}