diff options
-rwxr-xr-x | asm/water.s | 414 | ||||
-rw-r--r-- | include/rom_8077ABC.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rwxr-xr-x | src/battle/anim/love_bg.c | 7 | ||||
-rwxr-xr-x | src/battle/anim/scary_face.c | 7 | ||||
-rw-r--r-- | src/battle/anim/water.c | 371 | ||||
-rw-r--r-- | src/rom_8077ABC.c | 6 |
7 files changed, 378 insertions, 435 deletions
diff --git a/asm/water.s b/asm/water.s index e982d4265..4bf95ab59 100755 --- a/asm/water.s +++ b/asm/water.s @@ -7,420 +7,6 @@ @ water - thumb_func_start sub_80D37FC -sub_80D37FC: @ 80D37FC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D382C @ =gBattleAnimArgs - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080D3830 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D3834 @ =move_anim_8072740 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D382C: .4byte gBattleAnimArgs -_080D3830: .4byte sub_8078B34 -_080D3834: .4byte move_anim_8072740 - thumb_func_end sub_80D37FC - - thumb_func_start sub_80D3838 -sub_80D3838: @ 80D3838 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D3850 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D3854 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D385C - .align 2, 0 -_080D3850: .4byte gBattleAnimArgs -_080D3854: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 -_080D385C: - ldr r0, _080D386C @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080D3870 @ =sub_80D3874 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D386C: .4byte gBattleAnimArgs -_080D3870: .4byte sub_80D3874 - thumb_func_end sub_80D3838 - - thumb_func_start sub_80D3874 -sub_80D3874: @ 80D3874 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D38B4 - adds r0, r4, 0 - bl move_anim_8072740 -_080D38B4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D3874 - - thumb_func_start sub_80D38BC -sub_80D38BC: @ 80D38BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080D398C @ =REG_BLDCNT - ldr r2, _080D3990 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r2, _080D3994 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x10 - add r0, sp, 0xC - mov r12, r0 - movs r5, 0 - ldr r1, _080D3998 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r7, _080D399C @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D3920: - str r5, [sp, 0x10] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D3920 - str r5, [sp, 0x10] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - mov r3, r12 - strb r0, [r3] - strb r0, [r3] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x10] - ldr r0, _080D3998 @ =0x040000d4 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D399C @ =0x85000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl NotInBattle - lsls r0, 24 - cmp r0, 0 - bne _080D39B8 - ldr r2, _080D3994 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D39A0 @ =gBattleAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D39A8 - ldr r0, _080D39A4 @ =gUnknown_08E70968 - b _080D39AA - .align 2, 0 -_080D398C: .4byte REG_BLDCNT -_080D3990: .4byte 0x00003f42 -_080D3994: .4byte REG_BG1CNT -_080D3998: .4byte 0x040000d4 -_080D399C: .4byte 0x85000400 -_080D39A0: .4byte gBattleAnimBankAttacker -_080D39A4: .4byte gUnknown_08E70968 -_080D39A8: - ldr r0, _080D39B4 @ =gUnknown_08E70C38 -_080D39AA: - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080D39CE - .align 2, 0 -_080D39B4: .4byte gUnknown_08E70C38 -_080D39B8: - ldr r0, _080D39F0 @ =gUnknown_08E70F0C - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80763FC -_080D39CE: - ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D39F8 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D3A00 - ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080D3A0E - .align 2, 0 -_080D39F0: .4byte gUnknown_08E70F0C -_080D39F4: .4byte gBattleAnimBackgroundImage_Surf -_080D39F8: .4byte gBattleAnimArgs -_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf -_080D3A00: - ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080D3A0E: - ldr r0, _080D3A7C @ =sub_80D3D68 - ldr r4, _080D3A80 @ =gTasks - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - mov r9, r3 - mov r0, r8 - strh r0, [r6, 0x26] - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r2, r9 - strh r2, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl NotInBattle - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080D3A94 - ldr r3, _080D3A84 @ =0x0000ffb0 - adds r0, r3, 0 - ldr r1, _080D3A88 @ =gUnknown_030042C0 - strh r0, [r1] - ldr r2, _080D3A8C @ =0x0000ffd0 - adds r0, r2, 0 - ldr r3, _080D3A90 @ =gUnknown_030041B4 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal -_080D3A7C: .4byte sub_80D3D68 -_080D3A80: .4byte gTasks -_080D3A84: .4byte 0x0000ffb0 -_080D3A88: .4byte gUnknown_030042C0 -_080D3A8C: .4byte 0x0000ffd0 -_080D3A90: .4byte gUnknown_030041B4 -_080D3A94: - ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080D3AD8 - ldr r2, _080D3AC8 @ =0x0000ff20 - adds r0, r2, 0 - ldr r3, _080D3ACC @ =gUnknown_030042C0 - strh r0, [r3] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r3, _080D3AD0 @ =gUnknown_030041B4 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080D3AD4 @ =0x0000ffff - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3AC4: .4byte gBattleAnimBankAttacker -_080D3AC8: .4byte 0x0000ff20 -_080D3ACC: .4byte gUnknown_030042C0 -_080D3AD0: .4byte gUnknown_030041B4 -_080D3AD4: .4byte 0x0000ffff -_080D3AD8: - ldr r0, _080D3B1C @ =gUnknown_030042C0 - strh r4, [r0] - ldr r1, _080D3B20 @ =0x0000ffd0 - adds r0, r1, 0 - ldr r2, _080D3B24 @ =gUnknown_030041B4 - strh r0, [r2] - ldr r0, _080D3B28 @ =0x0000fffe - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080D3AEE: - ldr r1, _080D3B2C @ =REG_BG1HOFS - ldr r3, _080D3B1C @ =gUnknown_030042C0 - ldrh r0, [r3] - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080D3B24 @ =gUnknown_030041B4 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _080D3B30 @ =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080D3B34 - movs r0, 0x30 - strh r0, [r2, 0x10] - movs r0, 0x70 - b _080D3B38 - .align 2, 0 -_080D3B1C: .4byte gUnknown_030042C0 -_080D3B20: .4byte 0x0000ffd0 -_080D3B24: .4byte gUnknown_030041B4 -_080D3B28: .4byte 0x0000fffe -_080D3B2C: .4byte REG_BG1HOFS -_080D3B30: .4byte gTasks -_080D3B34: - movs r0, 0 - strh r0, [r2, 0x10] -_080D3B38: - strh r0, [r2, 0x12] - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080D3B5C @ =sub_80D3B60 - str r1, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3B5C: .4byte sub_80D3B60 - thumb_func_end sub_80D38BC - thumb_func_start sub_80D3B60 sub_80D3B60: @ 80D3B60 push {r4-r7,lr} diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 2a2947968..703ae18a2 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -12,6 +12,12 @@ enum ANIM_BANK_DEF_PARTNER }; +struct Struct_sub_8078914 { + u8 *field_0; + u8 *field_4; + u8 field_8; +}; + u8 sub_8077ABC(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); u8 GetAnimBankSpriteId(u8 side); diff --git a/ld_script.txt b/ld_script.txt index b6f1ae054..15f8518da 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -275,8 +275,8 @@ SECTIONS { asm/rain.o(.text); src/battle/anim/bubble.o(.text); src/battle/anim/aurora.o(.text); - asm/aurora.o(.text); asm/liquid_ball.o(.text); + src/battle/anim/water.o(.text); asm/water.o(.text); asm/fire.o(.text); asm/sunlight.o(.text); diff --git a/src/battle/anim/love_bg.c b/src/battle/anim/love_bg.c index c5659463e..1e49b536c 100755 --- a/src/battle/anim/love_bg.c +++ b/src/battle/anim/love_bg.c @@ -6,13 +6,6 @@ #include "decompress.h" #include "palette.h" -struct Struct_sub_8078914 -{ - u8 *field_0; - u8 *field_4; - u8 field_8; -}; - extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimBankAttacker; extern u8 gBattleAnimBankTarget; diff --git a/src/battle/anim/scary_face.c b/src/battle/anim/scary_face.c index 9f1dfd7d0..0c5056704 100755 --- a/src/battle/anim/scary_face.c +++ b/src/battle/anim/scary_face.c @@ -6,13 +6,6 @@ #include "decompress.h" #include "palette.h" -struct Struct_sub_8078914 -{ - u8 *field_0; - u8 *field_4; - u8 field_8; -}; - extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimBankAttacker; extern u8 gBattleAnimBankTarget; diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c new file mode 100644 index 000000000..396a4637d --- /dev/null +++ b/src/battle/anim/water.c @@ -0,0 +1,371 @@ +#include "global.h" +#include "battle_anim.h" +#include "rom_8077ABC.h" +#include "trig.h" +#include "util.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gBattleAnimBankAttacker; +extern u8 gBattleAnimBankTarget; + +static void sub_80D3874(struct Sprite *); + +void sub_80D37FC(struct Sprite *sprite) +{ + sub_8078764(sprite, 1); + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4]; + + sprite->callback = sub_8078B34; + StoreSpriteCallbackInData(sprite, move_anim_8072740); +} + +void sub_80D3838(struct Sprite *sprite) +{ + if (gBattleAnimArgs[3] != 0) + { + sub_8078764(sprite, 1); + } + else + { + sub_80787B0(sprite, 1); + } + + sprite->data[7] = gBattleAnimArgs[2]; + sprite->callback = sub_80D3874; +} + +static void sub_80D3874(struct Sprite *sprite) +{ + sprite->data[0] = (sprite->data[0] + 11) & 0xFF; + sprite->pos2.x = Sin(sprite->data[0], 4); + + sprite->data[1] += 48; + sprite->pos2.y = -(sprite->data[1] >> 8); + + if (--sprite->data[7] == -1) + { + move_anim_8072740(sprite); + } +} + +__attribute__((naked)) +void sub_80D38BC(u8 taskId) +{ + asm(".syntax unified\n\ + .equ REG_BLDCNT, 0x4000050\n\ + .equ REG_BG1CNT, 0x400000A\n\ + .equ REG_BG1HOFS, 0x4000014\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldr r1, _080D398C @ =REG_BLDCNT\n\ + ldr r2, _080D3990 @ =0x00003f42\n\ + adds r0, r2, 0\n\ + strh r0, [r1]\n\ + adds r1, 0x2\n\ + movs r3, 0x80\n\ + lsls r3, 5\n\ + adds r0, r3, 0\n\ + strh r0, [r1]\n\ + ldr r2, _080D3994 @ =REG_BG1CNT\n\ + ldrb r1, [r2]\n\ + movs r0, 0x4\n\ + negs r0, r0\n\ + ands r0, r1\n\ + movs r1, 0x1\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + ldrb r1, [r2, 0x1]\n\ + movs r0, 0x3F\n\ + ands r0, r1\n\ + movs r1, 0x40\n\ + orrs r0, r1\n\ + strb r0, [r2, 0x1]\n\ + mov r0, sp\n\ + bl sub_8078914\n\ + ldr r2, [sp]\n\ + movs r3, 0x80\n\ + lsls r3, 6\n\ + add r6, sp, 0x10\n\ + add r0, sp, 0xC\n\ + mov r12, r0\n\ + movs r5, 0\n\ + ldr r1, _080D3998 @ =0x040000d4\n\ + movs r4, 0x80\n\ + lsls r4, 5\n\ + mov r8, r6\n\ + ldr r7, _080D399C @ =0x85000400\n\ + movs r0, 0x85\n\ + lsls r0, 24\n\ + mov r9, r0\n\ +_080D3920:\n\ + str r5, [sp, 0x10]\n\ + mov r0, r8\n\ + str r0, [r1]\n\ + str r2, [r1, 0x4]\n\ + str r7, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + adds r2, r4\n\ + subs r3, r4\n\ + cmp r3, r4\n\ + bhi _080D3920\n\ + str r5, [sp, 0x10]\n\ + str r6, [r1]\n\ + str r2, [r1, 0x4]\n\ + lsrs r0, r3, 2\n\ + mov r2, r9\n\ + orrs r0, r2\n\ + str r0, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + movs r0, 0\n\ + mov r3, r12\n\ + strb r0, [r3]\n\ + strb r0, [r3]\n\ + ldr r1, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0x10]\n\ + ldr r0, _080D3998 @ =0x040000d4\n\ + str r6, [r0]\n\ + str r1, [r0, 0x4]\n\ + ldr r1, _080D399C @ =0x85000400\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + bl NotInBattle\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080D39B8\n\ + ldr r2, _080D3994 @ =REG_BG1CNT\n\ + ldrb r1, [r2]\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r1\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + ldr r0, _080D39A0 @ =gBattleAnimBankAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _080D39A8\n\ + ldr r0, _080D39A4 @ =gUnknown_08E70968\n\ + b _080D39AA\n\ + .align 2, 0\n\ +_080D398C: .4byte REG_BLDCNT\n\ +_080D3990: .4byte 0x00003f42\n\ +_080D3994: .4byte REG_BG1CNT\n\ +_080D3998: .4byte 0x040000d4\n\ +_080D399C: .4byte 0x85000400\n\ +_080D39A0: .4byte gBattleAnimBankAttacker\n\ +_080D39A4: .4byte gUnknown_08E70968\n\ +_080D39A8:\n\ + ldr r0, _080D39B4 @ =gUnknown_08E70C38\n\ +_080D39AA:\n\ + ldr r1, [sp, 0x4]\n\ + bl LZDecompressVram\n\ + b _080D39CE\n\ + .align 2, 0\n\ +_080D39B4: .4byte gUnknown_08E70C38\n\ +_080D39B8:\n\ + ldr r0, _080D39F0 @ =gUnknown_08E70F0C\n\ + ldr r1, [sp, 0x4]\n\ + bl LZDecompressVram\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + ldr r1, [sp, 0x4]\n\ + movs r2, 0\n\ + movs r3, 0x1\n\ + bl sub_80763FC\n\ +_080D39CE:\n\ + ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf\n\ + ldr r1, [sp]\n\ + bl LZDecompressVram\n\ + ldr r0, _080D39F8 @ =gBattleAnimArgs\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + cmp r0, 0\n\ + bne _080D3A00\n\ + ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ + b _080D3A0E\n\ + .align 2, 0\n\ +_080D39F0: .4byte gUnknown_08E70F0C\n\ +_080D39F4: .4byte gBattleAnimBackgroundImage_Surf\n\ +_080D39F8: .4byte gBattleAnimArgs\n\ +_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf\n\ +_080D3A00:\n\ + ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ +_080D3A0E:\n\ + ldr r0, _080D3A7C @ =sub_80D3D68\n\ + ldr r4, _080D3A80 @ =gTasks\n\ + mov r2, r10\n\ + lsls r5, r2, 2\n\ + adds r1, r5, r2\n\ + lsls r1, 3\n\ + adds r6, r1, r4\n\ + ldrb r1, [r6, 0x7]\n\ + adds r1, 0x1\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r3, 0\n\ + mov r9, r3\n\ + mov r0, r8\n\ + strh r0, [r6, 0x26]\n\ + mov r1, r8\n\ + lsls r0, r1, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r7, r0, r4\n\ + mov r2, r9\n\ + strh r2, [r7, 0x8]\n\ + movs r0, 0x80\n\ + lsls r0, 5\n\ + strh r0, [r7, 0xA]\n\ + strh r0, [r7, 0xC]\n\ + bl NotInBattle\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + beq _080D3A94\n\ + ldr r3, _080D3A84 @ =0x0000ffb0\n\ + adds r0, r3, 0\n\ + ldr r1, _080D3A88 @ =gUnknown_030042C0\n\ + strh r0, [r1]\n\ + ldr r2, _080D3A8C @ =0x0000ffd0\n\ + adds r0, r2, 0\n\ + ldr r3, _080D3A90 @ =gUnknown_030041B4\n\ + strh r0, [r3]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + mov r0, r9\n\ + strh r0, [r7, 0xE]\n\ + b _080D3AEE\n\ + .align 2, 0\n\ +_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal\n\ +_080D3A7C: .4byte sub_80D3D68\n\ +_080D3A80: .4byte gTasks\n\ +_080D3A84: .4byte 0x0000ffb0\n\ +_080D3A88: .4byte gUnknown_030042C0\n\ +_080D3A8C: .4byte 0x0000ffd0\n\ +_080D3A90: .4byte gUnknown_030041B4\n\ +_080D3A94:\n\ + ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x1\n\ + bne _080D3AD8\n\ + ldr r2, _080D3AC8 @ =0x0000ff20\n\ + adds r0, r2, 0\n\ + ldr r3, _080D3ACC @ =gUnknown_030042C0\n\ + strh r0, [r3]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r0, r2, 0\n\ + ldr r3, _080D3AD0 @ =gUnknown_030041B4\n\ + strh r0, [r3]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + ldr r0, _080D3AD4 @ =0x0000ffff\n\ + strh r0, [r6, 0xA]\n\ + strh r1, [r7, 0xE]\n\ + b _080D3AEE\n\ + .align 2, 0\n\ +_080D3AC4: .4byte gBattleAnimBankAttacker\n\ +_080D3AC8: .4byte 0x0000ff20\n\ +_080D3ACC: .4byte gUnknown_030042C0\n\ +_080D3AD0: .4byte gUnknown_030041B4\n\ +_080D3AD4: .4byte 0x0000ffff\n\ +_080D3AD8:\n\ + ldr r0, _080D3B1C @ =gUnknown_030042C0\n\ + strh r4, [r0]\n\ + ldr r1, _080D3B20 @ =0x0000ffd0\n\ + adds r0, r1, 0\n\ + ldr r2, _080D3B24 @ =gUnknown_030041B4\n\ + strh r0, [r2]\n\ + ldr r0, _080D3B28 @ =0x0000fffe\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + strh r4, [r7, 0xE]\n\ +_080D3AEE:\n\ + ldr r1, _080D3B2C @ =REG_BG1HOFS\n\ + ldr r3, _080D3B1C @ =gUnknown_030042C0\n\ + ldrh r0, [r3]\n\ + strh r0, [r1]\n\ + adds r1, 0x2\n\ + ldr r2, _080D3B24 @ =gUnknown_030041B4\n\ + ldrh r0, [r2]\n\ + strh r0, [r1]\n\ + ldr r1, _080D3B30 @ =gTasks\n\ + mov r3, r8\n\ + lsls r0, r3, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r2, r0, r1\n\ + movs r3, 0xE\n\ + ldrsh r0, [r2, r3]\n\ + cmp r0, 0\n\ + bne _080D3B34\n\ + movs r0, 0x30\n\ + strh r0, [r2, 0x10]\n\ + movs r0, 0x70\n\ + b _080D3B38\n\ + .align 2, 0\n\ +_080D3B1C: .4byte gUnknown_030042C0\n\ +_080D3B20: .4byte 0x0000ffd0\n\ +_080D3B24: .4byte gUnknown_030041B4\n\ +_080D3B28: .4byte 0x0000fffe\n\ +_080D3B2C: .4byte REG_BG1HOFS\n\ +_080D3B30: .4byte gTasks\n\ +_080D3B34:\n\ + movs r0, 0\n\ + strh r0, [r2, 0x10]\n\ +_080D3B38:\n\ + strh r0, [r2, 0x12]\n\ + mov r2, r10\n\ + adds r0, r5, r2\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + movs r1, 0x1\n\ + strh r1, [r0, 0x14]\n\ + ldr r1, _080D3B5C @ =sub_80D3B60\n\ + str r1, [r0]\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080D3B5C: .4byte sub_80D3B60\n\ + .syntax divided\n"); +} diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 8fea7f710..ec7d5fdb8 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -70,12 +70,6 @@ struct Color { u16 b:5; }; -struct Struct_sub_8078914 { - u8 *field_0; - u8 *field_4; - u8 field_8; -}; - struct BGCnt { u16 priority:2; u16 charBase:2; |