summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-06-07 14:33:21 -0500
committercamthesaxman <cameronghall@cox.net>2017-06-07 14:33:21 -0500
commit3c700c6eb77be99f7864e52e8f3747491f050265 (patch)
treef718499a9da4e61e25439b5b323162e8a261bf79
parent7639d3802470825ea4ac1c2ab52173b2ce86c8e6 (diff)
decompile sub_811FDFC
-rw-r--r--asm/battle_811DA74.s147
-rw-r--r--src/battle_811DA74.c40
2 files changed, 40 insertions, 147 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index 0ffaeef75..fa26110e4 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -6,153 +6,6 @@
.text
- thumb_func_start sub_811FDFC
-sub_811FDFC: @ 811FDFC
- push {r4-r6,lr}
- ldr r6, _0811FEE0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0811FE0E
- b _0811FF1E
-_0811FE0E:
- ldr r0, _0811FEE4 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _0811FEE8 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0811FEEC @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _0811FEF0 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _0811FEF4 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _0811FEF8 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0811FEFC @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _0811FF00 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811FF04
- bl dp01_tbl3_exec_completed
- b _0811FF1E
- .align 2, 0
-_0811FEE0: .4byte gUnknown_02024A60
-_0811FEE4: .4byte gUnknown_02023A60
-_0811FEE8: .4byte gUnknown_0202F7C4
-_0811FEEC: .4byte gUnknown_0202F7BC
-_0811FEF0: .4byte gUnknown_0202F7B8
-_0811FEF4: .4byte gUnknown_0202F7BE
-_0811FEF8: .4byte gUnknown_0202F7C0
-_0811FEFC: .4byte gUnknown_0202F7B4
-_0811FF00: .4byte gUnknown_02024E70
-_0811FF04:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811FF24 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _0811FF28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FF2C @ =sub_811FF30
- str r1, [r0]
-_0811FF1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FF24: .4byte 0x02017810
-_0811FF28: .4byte gUnknown_03004330
-_0811FF2C: .4byte sub_811FF30
- thumb_func_end sub_811FDFC
-
thumb_func_start sub_811FF30
sub_811FF30: @ 811FF30
push {r4-r7,lr}
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 12991c60f..8152645bc 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -48,7 +48,14 @@ extern u32 gUnknown_02024A64;
extern u16 gUnknown_02024A6A[];
extern u8 gUnknown_02024BE0[];
extern u8 gUnknown_02024E6D;
+extern u32 gUnknown_02024E70[];
extern struct SpriteTemplate gUnknown_02024E8C;
+extern u32 *gUnknown_0202F7B4;
+extern u32 gUnknown_0202F7B8;
+extern u16 gUnknown_0202F7BC;
+extern u8 gUnknown_0202F7BE;
+extern u16 gUnknown_0202F7C0;
+extern u8 gUnknown_0202F7C4;
extern struct Window gUnknown_03004210;
extern MainCallback gUnknown_030042D0;
extern void (*gUnknown_03004330[])(void);
@@ -62,6 +69,8 @@ extern u8 unk_2000000[];
#define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800))
#define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810))
+extern u8 sub_8031720();
+extern u8 mplay_80342A4();
extern void oamt_add_pos2_onto_pos1();
extern void oamt_set_x3A_32();
extern void sub_8078B34(struct Sprite *);
@@ -100,6 +109,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b);
void sub_811EC68(u8);
void sub_811F864(u8, u8);
void sub_811FA5C(void);
+void sub_811FF30(void);
void nullsub_74(void)
{
@@ -1135,3 +1145,33 @@ void sub_811FDF0(void)
{
dp01_tbl3_exec_completed();
}
+
+void sub_811FDFC(void)
+{
+ if (mplay_80342A4(gUnknown_02024A60) == 0)
+ {
+ u32 r0 = gUnknown_02023A60[gUnknown_02024A60][1]
+ | (gUnknown_02023A60[gUnknown_02024A60][2] << 8);
+
+ gUnknown_0202F7C4 = gUnknown_02023A60[gUnknown_02024A60][3];
+ gUnknown_0202F7BC = gUnknown_02023A60[gUnknown_02024A60][4]
+ | (gUnknown_02023A60[gUnknown_02024A60][5] << 8);
+ gUnknown_0202F7B8 = gUnknown_02023A60[gUnknown_02024A60][6]
+ | (gUnknown_02023A60[gUnknown_02024A60][7] << 8)
+ | (gUnknown_02023A60[gUnknown_02024A60][8] << 16)
+ | (gUnknown_02023A60[gUnknown_02024A60][9] << 24);
+ gUnknown_0202F7BE = gUnknown_02023A60[gUnknown_02024A60][10];
+ gUnknown_0202F7C0 = gUnknown_02023A60[gUnknown_02024A60][12]
+ | (gUnknown_02023A60[gUnknown_02024A60][13] << 8);
+ gUnknown_0202F7B4 = (u32 *)&gUnknown_02023A60[gUnknown_02024A60][16];
+ gUnknown_02024E70[gUnknown_02024A60] = *gUnknown_0202F7B4;
+
+ if (sub_8031720(r0, gUnknown_0202F7C4) != 0)
+ dp01_tbl3_exec_completed();
+ else
+ {
+ EWRAM_17810[gUnknown_02024A60].unk4 = 0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811FF30;
+ }
+ }
+}