diff options
author | camthesaxman <cameronghall@cox.net> | 2017-06-07 14:33:21 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-06-07 14:33:21 -0500 |
commit | 3c700c6eb77be99f7864e52e8f3747491f050265 (patch) | |
tree | f718499a9da4e61e25439b5b323162e8a261bf79 | |
parent | 7639d3802470825ea4ac1c2ab52173b2ce86c8e6 (diff) |
decompile sub_811FDFC
-rw-r--r-- | asm/battle_811DA74.s | 147 | ||||
-rw-r--r-- | src/battle_811DA74.c | 40 |
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; + } + } +} |