diff options
-rw-r--r-- | asm/clear_save_data_screen.s | 5 | ||||
-rw-r--r-- | asm/evolution_graphics.s | 1825 | ||||
-rw-r--r-- | asm/evolution_scene.s | 14 | ||||
-rw-r--r-- | baserom.ips | bin | 298582 -> 280527 bytes | |||
-rw-r--r-- | data/battle_anim_effects_misc.s | 1907 | ||||
-rw-r--r-- | data/battle_anim_special.s | 131 | ||||
-rw-r--r-- | data/evolution_graphics.s | 22 | ||||
-rw-r--r-- | graphics/battle_anims/unk_83E4874.bin | bin | 0 -> 4096 bytes | |||
-rw-r--r-- | graphics/battle_anims/unk_83E4874.png | bin | 0 -> 286 bytes | |||
-rw-r--r-- | graphics/misc/evolution_sprite_841EEA4.png | bin | 0 -> 167 bytes | |||
-rw-r--r-- | graphics/unknown/unk_841EF48.png | bin | 0 -> 230 bytes | |||
-rw-r--r-- | include/evolution_scene.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/dark.c | 2 | ||||
-rw-r--r-- | src/evolution_graphics.c | 640 | ||||
-rw-r--r-- | src/ice.c | 2 | ||||
-rw-r--r-- | src/new_menu_helpers.c | 50 | ||||
-rw-r--r-- | src/poison.c | 2 |
18 files changed, 2423 insertions, 2182 deletions
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index 5d9d2ac03..367f12814 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -466,9 +466,4 @@ _080F5944: .4byte gUnknown_841EE64 _080F5948: .4byte gUnknown_841EE68 thumb_func_end sub_80F5820 - thumb_func_start nullsub_85 -nullsub_85: @ 80F594C - bx lr - thumb_func_end nullsub_85 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s deleted file mode 100644 index 64edbdf7a..000000000 --- a/asm/evolution_graphics.s +++ /dev/null @@ -1,1825 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetEvoSparklesMatrices -SetEvoSparklesMatrices: @ 80F5950 - push {r4,r5,lr} - sub sp, 0x4 - movs r4, 0 - ldr r5, _080F5984 @ =gUnknown_841EF10 -_080F5958: - adds r0, r4, 0 - adds r0, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xB - bls _080F5958 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5984: .4byte gUnknown_841EF10 - thumb_func_end SetEvoSparklesMatrices - - thumb_func_start SpriteCB_PreEvoSparkleSet1 -SpriteCB_PreEvoSparkleSet1: @ 80F5988 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _080F5A36 - movs r2, 0x3C - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x50 - bl __divsi3 - movs r1, 0x58 - subs r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080F59C2 - adds r0, 0x3 -_080F59C2: - asrs r0, 2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0x4 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F59EC - ldrh r0, [r4, 0x38] - subs r0, 0x1 - strh r0, [r4, 0x38] -_080F59EC: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080F5A02 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - b _080F5A08 -_080F5A02: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x14 -_080F5A08: - strb r0, [r1] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080F5A14 - adds r0, 0x3 -_080F5A14: - asrs r0, 2 - adds r0, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080F5A22 - movs r2, 0x1F -_080F5A22: - movs r0, 0x1F - ands r2, r0 - lsls r2, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - b _080F5A3C -_080F5A36: - adds r0, r4, 0 - bl DestroySprite -_080F5A3C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PreEvoSparkleSet1 - - thumb_func_start CreatePreEvoSparkleSet1 -CreatePreEvoSparkleSet1: @ 80F5A44 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F5A94 @ =gUnknown_841EEF8 - movs r1, 0x78 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080F5A8E - ldr r4, _080F5A98 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - movs r0, 0x30 - strh r0, [r2, 0x38] - strh r5, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0x34 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r2, 0x3] - adds r4, 0x1C - adds r3, r4 - ldr r0, _080F5A9C @ =SpriteCB_PreEvoSparkleSet1 - str r0, [r3] -_080F5A8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5A94: .4byte gUnknown_841EEF8 -_080F5A98: .4byte gSprites -_080F5A9C: .4byte SpriteCB_PreEvoSparkleSet1 - thumb_func_end CreatePreEvoSparkleSet1 - - thumb_func_start SpriteCB_PreEvoSparkleSet2 -SpriteCB_PreEvoSparkleSet2: @ 80F5AA0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0x57 - bgt _080F5B06 - movs r2, 0x3C - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x5 - bl __divsi3 - adds r0, 0x8 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080F5AD8 - adds r0, 0x3 -_080F5AD8: - asrs r0, 2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r0, 26 - lsrs r0, 24 - movs r1, 0x28 - bl Sin - adds r0, 0x8 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - b _080F5B0C -_080F5B06: - adds r0, r4, 0 - bl DestroySprite -_080F5B0C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PreEvoSparkleSet2 - - thumb_func_start CreatePreEvoSparkleSet2 -CreatePreEvoSparkleSet2: @ 80F5B14 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F5B70 @ =gUnknown_841EEF8 - movs r1, 0x78 - movs r2, 0x8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080F5B6A - ldr r4, _080F5B74 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - movs r0, 0x8 - strh r0, [r2, 0x38] - strh r5, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0xC - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x32 - orrs r0, r1 - strb r0, [r2, 0x3] - adds r2, 0x43 - movs r0, 0x1 - strb r0, [r2] - adds r4, 0x1C - adds r3, r4 - ldr r0, _080F5B78 @ =SpriteCB_PreEvoSparkleSet2 - str r0, [r3] -_080F5B6A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5B70: .4byte gUnknown_841EEF8 -_080F5B74: .4byte gSprites -_080F5B78: .4byte SpriteCB_PreEvoSparkleSet2 - thumb_func_end CreatePreEvoSparkleSet2 - - thumb_func_start SpriteCB_PostEvoSparkleSet1 -SpriteCB_PostEvoSparkleSet1: @ 80F5B7C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _080F5BB8 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x4 - strh r0, [r4, 0x3A] - b _080F5BBE -_080F5BB8: - adds r0, r4, 0 - bl DestroySprite -_080F5BBE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PostEvoSparkleSet1 - - thumb_func_start CreatePostEvoSparkleSet1 -CreatePostEvoSparkleSet1: @ 80F5BC4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080F5C20 @ =gUnknown_841EEF8 - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080F5C1A - ldr r4, _080F5C24 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - strh r5, [r2, 0x34] - movs r0, 0x78 - strh r0, [r2, 0x38] - strh r6, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0x7C - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r2, 0x3] - adds r2, 0x43 - movs r0, 0x1 - strb r0, [r2] - adds r4, 0x1C - adds r3, r4 - ldr r0, _080F5C28 @ =SpriteCB_PostEvoSparkleSet1 - str r0, [r3] -_080F5C1A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5C20: .4byte gUnknown_841EEF8 -_080F5C24: .4byte gSprites -_080F5C28: .4byte SpriteCB_PostEvoSparkleSet1 - thumb_func_end CreatePostEvoSparkleSet1 - - thumb_func_start SpriteCB_PostEvoSparkleSet2 -SpriteCB_PostEvoSparkleSet2: @ 80F5C2C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080F5C40 - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080F5C40: - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bgt _080F5CF0 - lsls r0, r1, 24 - lsrs r0, 24 - movs r5, 0x38 - ldrsh r1, [r4, r5] - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - muls r0, r1 - movs r1, 0x3 - bl __divsi3 - adds r0, 0x78 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x3A] - adds r3, r0, 0x1 - strh r3, [r4, 0x3A] - movs r5, 0x3A - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - cmp r0, 0 - bge _080F5C84 - adds r0, 0x7F -_080F5C84: - asrs r0, 7 - movs r1, 0x1F - subs r1, r0 - lsls r1, 24 - lsrs r2, r1, 24 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _080F5CA0 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] - b _080F5CD0 -_080F5CA0: - adds r3, r4, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x14 - strb r0, [r1] - ldrh r1, [r4, 0x3A] - movs r5, 0x3A - ldrsh r0, [r4, r5] - cmp r0, 0x70 - ble _080F5CD0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F5CD0 - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_080F5CD0: - cmp r2, 0x13 - bhi _080F5CD6 - movs r2, 0x14 -_080F5CD6: - movs r0, 0x1F - ands r2, r0 - lsls r2, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - b _080F5CF6 -_080F5CF0: - adds r0, r4, 0 - bl DestroySprite -_080F5CF6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PostEvoSparkleSet2 - - thumb_func_start CreatePostEvoSparkleSet2 -CreatePostEvoSparkleSet2: @ 80F5CFC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080F5D78 @ =gUnknown_841EEF8 - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _080F5D6C - bl Random - ldr r6, _080F5D7C @ =gSprites - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - bl __umodsi3 - movs r1, 0x3 - subs r1, r0 - movs r0, 0 - mov r8, r0 - strh r1, [r4, 0x34] - bl Random - movs r1, 0x3F - ands r1, r0 - adds r1, 0x30 - strh r1, [r4, 0x38] - mov r0, r8 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r4, 0x3] - adds r4, 0x43 - movs r0, 0x14 - strb r0, [r4] - adds r6, 0x1C - adds r5, r6 - ldr r0, _080F5D80 @ =SpriteCB_PostEvoSparkleSet2 - str r0, [r5] -_080F5D6C: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5D78: .4byte gUnknown_841EEF8 -_080F5D7C: .4byte gSprites -_080F5D80: .4byte SpriteCB_PostEvoSparkleSet2 - thumb_func_end CreatePostEvoSparkleSet2 - - thumb_func_start LoadEvoSparkleSpriteAndPal -LoadEvoSparkleSpriteAndPal: @ 80F5D84 - push {lr} - ldr r0, _080F5D98 @ =gUnknown_841EEC4 - bl LoadCompressedSpriteSheetUsingHeap - ldr r0, _080F5D9C @ =gUnknown_841EED4 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_080F5D98: .4byte gUnknown_841EEC4 -_080F5D9C: .4byte gUnknown_841EED4 - thumb_func_end LoadEvoSparkleSpriteAndPal - - thumb_func_start LaunchTask_PreEvoSparklesSet1 -LaunchTask_PreEvoSparklesSet1: @ 80F5DA0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080F5DC8 @ =sub_80F5DD0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F5DCC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F5DC8: .4byte sub_80F5DD0 -_080F5DCC: .4byte gTasks - thumb_func_end LaunchTask_PreEvoSparklesSet1 - - thumb_func_start sub_80F5DD0 -sub_80F5DD0: @ 80F5DD0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl SetEvoSparklesMatrices - ldr r0, _080F5E14 @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x3 - lsls r0, r1 - ldr r1, _080F5E18 @ =0x00007fff - str r1, [sp] - movs r1, 0xA - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F5E1C @ =EvoTask_CreatePreEvoSparkleSet1 - str r0, [r5] - movs r0, 0x85 - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5E14: .4byte gTasks -_080F5E18: .4byte 0x00007fff -_080F5E1C: .4byte EvoTask_CreatePreEvoSparkleSet1 - thumb_func_end sub_80F5DD0 - - thumb_func_start EvoTask_CreatePreEvoSparkleSet1 -EvoTask_CreatePreEvoSparkleSet1: @ 80F5E20 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080F5E78 @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x26] - movs r4, 0x26 - ldrsh r0, [r1, r4] - cmp r0, 0x3F - bgt _080F5E7C - movs r0, 0x7 - ands r0, r2 - adds r7, r3, 0 - cmp r0, 0 - bne _080F5E66 - movs r4, 0 - adds r6, r1, 0 -_080F5E48: - ldrh r1, [r6, 0x26] - movs r0, 0x78 - ands r0, r1 - lsls r0, 1 - lsls r1, r4, 6 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl CreatePreEvoSparkleSet1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080F5E48 -_080F5E66: - ldr r0, _080F5E78 @ =gTasks - adds r1, r7, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _080F5E84 - .align 2, 0 -_080F5E78: .4byte gTasks -_080F5E7C: - movs r0, 0x60 - strh r0, [r1, 0x26] - ldr r0, _080F5E8C @ =EvoTask_WaitForPre1SparklesToGoUp - str r0, [r1] -_080F5E84: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5E8C: .4byte EvoTask_WaitForPre1SparklesToGoUp - thumb_func_end EvoTask_CreatePreEvoSparkleSet1 - - thumb_func_start EvoTask_WaitForPre1SparklesToGoUp -EvoTask_WaitForPre1SparklesToGoUp: @ 80F5E90 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080F5EB0 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - ldrh r3, [r1, 0x26] - movs r4, 0x26 - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _080F5EB4 - subs r0, r3, 0x1 - strh r0, [r1, 0x26] - b _080F5EBA - .align 2, 0 -_080F5EB0: .4byte gTasks -_080F5EB4: - adds r0, r2, 0 - bl DestroyTask -_080F5EBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end EvoTask_WaitForPre1SparklesToGoUp - - thumb_func_start sub_80F5EC0 -sub_80F5EC0: @ 80F5EC0 - push {lr} - ldr r0, _080F5ED4 @ =sub_80F5ED8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080F5ED4: .4byte sub_80F5ED8 - thumb_func_end sub_80F5EC0 - - thumb_func_start sub_80F5ED8 -sub_80F5ED8: @ 80F5ED8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl SetEvoSparklesMatrices - ldr r1, _080F5F04 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r1, _080F5F08 @ =EvoTask_CreatePreEvoSparklesSet2 - str r1, [r0] - movs r0, 0xB0 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F5F04: .4byte gTasks -_080F5F08: .4byte EvoTask_CreatePreEvoSparklesSet2 - thumb_func_end sub_80F5ED8 - - thumb_func_start EvoTask_CreatePreEvoSparklesSet2 -EvoTask_CreatePreEvoSparklesSet2: @ 80F5F0C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080F5F50 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0x5F - bgt _080F5F54 - adds r6, r2, 0 - cmp r0, 0x5 - bgt _080F5F3E - movs r4, 0 -_080F5F2C: - lsls r0, r4, 28 - lsrs r0, 24 - bl CreatePreEvoSparkleSet2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _080F5F2C -_080F5F3E: - ldr r0, _080F5F50 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _080F5F58 - .align 2, 0 -_080F5F50: .4byte gTasks -_080F5F54: - ldr r0, _080F5F60 @ =sub_80F5F64 - str r0, [r1] -_080F5F58: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5F60: .4byte sub_80F5F64 - thumb_func_end EvoTask_CreatePreEvoSparklesSet2 - - thumb_func_start sub_80F5F64 -sub_80F5F64: @ 80F5F64 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_80F5F64 - - thumb_func_start sub_80F5F74 -sub_80F5F74: @ 80F5F74 - push {lr} - ldr r0, _080F5F88 @ =sub_80F5F8C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080F5F88: .4byte sub_80F5F8C - thumb_func_end sub_80F5F74 - - thumb_func_start sub_80F5F8C -sub_80F5F8C: @ 80F5F8C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl SetEvoSparklesMatrices - ldr r1, _080F5FB8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r1, _080F5FBC @ =EvoTask_CreatePostEvoSparklesSet1 - str r1, [r0] - movs r0, 0x5F - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F5FB8: .4byte gTasks -_080F5FBC: .4byte EvoTask_CreatePostEvoSparklesSet1 - thumb_func_end sub_80F5F8C - - thumb_func_start EvoTask_CreatePostEvoSparklesSet1 -EvoTask_CreatePostEvoSparklesSet1: @ 80F5FC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080F602C @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0x2F - bgt _080F6030 - adds r6, r2, 0 - cmp r0, 0 - bne _080F5FF4 - movs r4, 0 -_080F5FE0: - lsls r0, r4, 28 - lsrs r0, 24 - movs r1, 0x4 - bl CreatePostEvoSparkleSet1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080F5FE0 -_080F5FF4: - ldr r0, _080F602C @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0x20 - bne _080F601A - movs r4, 0 -_080F6006: - lsls r0, r4, 28 - lsrs r0, 24 - movs r1, 0x8 - bl CreatePostEvoSparkleSet1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080F6006 -_080F601A: - ldr r0, _080F602C @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _080F6034 - .align 2, 0 -_080F602C: .4byte gTasks -_080F6030: - ldr r0, _080F603C @ =sub_80F6040 - str r0, [r1] -_080F6034: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F603C: .4byte sub_80F6040 - thumb_func_end EvoTask_CreatePostEvoSparklesSet1 - - thumb_func_start sub_80F6040 -sub_80F6040: @ 80F6040 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_80F6040 - - thumb_func_start LaunchTask_PostEvoSparklesSet2AndFlash -LaunchTask_PostEvoSparklesSet2AndFlash: @ 80F6050 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080F6078 @ =sub_80F6080 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F607C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F6078: .4byte sub_80F6080 -_080F607C: .4byte gTasks - thumb_func_end LaunchTask_PostEvoSparklesSet2AndFlash - - thumb_func_start sub_80F6080 -sub_80F6080: @ 80F6080 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl SetEvoSparklesMatrices - ldr r0, _080F60CC @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - bl sub_80D0474 - ldr r0, _080F60D0 @ =gPlttBufferFaded + 0x40 - ldr r1, _080F60D4 @ =gPlttBufferUnfaded + 0x40 - movs r2, 0x30 - bl CpuSet - ldr r0, _080F60D8 @ =0xfff90f1c - ldr r1, _080F60DC @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F60E0 @ =sub_80F60E4 - str r0, [r5] - movs r0, 0xC3 - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F60CC: .4byte gTasks -_080F60D0: .4byte gPlttBufferFaded + 0x40 -_080F60D4: .4byte gPlttBufferUnfaded + 0x40 -_080F60D8: .4byte 0xfff90f1c -_080F60DC: .4byte 0x00007fff -_080F60E0: .4byte sub_80F60E4 - thumb_func_end sub_80F6080 - - thumb_func_start sub_80F60E4 -sub_80F60E4: @ 80F60E4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080F611C @ =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x26 - ldrsh r2, [r1, r0] - cmp r2, 0x7F - bgt _080F6160 - adds r0, r2, 0 - cmp r0, 0 - beq _080F6120 - cmp r0, 0x20 - beq _080F6134 - cmp r2, 0x31 - bgt _080F6144 - bl Random - movs r1, 0x7 - ands r0, r1 - bl CreatePostEvoSparkleSet2 - b _080F6144 - .align 2, 0 -_080F611C: .4byte gTasks -_080F6120: - movs r4, 0 -_080F6122: - adds r0, r4, 0 - bl CreatePostEvoSparkleSet2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080F6122 - b _080F6144 -_080F6134: - ldr r0, _080F6154 @ =0xffff0f1c - ldr r1, _080F6158 @ =0x00007fff - str r1, [sp] - movs r1, 0x10 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080F6144: - ldr r0, _080F615C @ =gTasks - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _080F6164 - .align 2, 0 -_080F6154: .4byte 0xffff0f1c -_080F6158: .4byte 0x00007fff -_080F615C: .4byte gTasks -_080F6160: - ldr r0, _080F616C @ =sub_80F6170 - str r0, [r1] -_080F6164: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F616C: .4byte sub_80F6170 - thumb_func_end sub_80F60E4 - - thumb_func_start sub_80F6170 -sub_80F6170: @ 80F6170 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080F618C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F6188 - adds r0, r2, 0 - bl DestroyTask -_080F6188: - pop {r0} - bx r0 - .align 2, 0 -_080F618C: .4byte gPaletteFade - thumb_func_end sub_80F6170 - - thumb_func_start sub_80F6190 -sub_80F6190: @ 80F6190 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080F61B8 @ =sub_80F61C0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F61BC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F61B8: .4byte sub_80F61C0 -_080F61BC: .4byte gTasks - thumb_func_end sub_80F6190 - - thumb_func_start sub_80F61C0 -sub_80F61C0: @ 80F61C0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl SetEvoSparklesMatrices - ldr r0, _080F620C @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - bl sub_80D0474 - ldr r0, _080F6210 @ =gPlttBufferFaded + 0x40 - ldr r1, _080F6214 @ =gPlttBufferUnfaded + 0x40 - movs r2, 0x30 - bl CpuSet - ldr r0, _080F6218 @ =0xfff90f00 - ldr r1, _080F621C @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F6220 @ =sub_80F6224 - str r0, [r5] - movs r0, 0xC3 - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F620C: .4byte gTasks -_080F6210: .4byte gPlttBufferFaded + 0x40 -_080F6214: .4byte gPlttBufferUnfaded + 0x40 -_080F6218: .4byte 0xfff90f00 -_080F621C: .4byte 0x00007fff -_080F6220: .4byte sub_80F6224 - thumb_func_end sub_80F61C0 - - thumb_func_start sub_80F6224 -sub_80F6224: @ 80F6224 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080F625C @ =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x26 - ldrsh r2, [r1, r0] - cmp r2, 0x7F - bgt _080F62A0 - adds r0, r2, 0 - cmp r0, 0 - beq _080F6260 - cmp r0, 0x20 - beq _080F6274 - cmp r2, 0x31 - bgt _080F6284 - bl Random - movs r1, 0x7 - ands r0, r1 - bl CreatePostEvoSparkleSet2 - b _080F6284 - .align 2, 0 -_080F625C: .4byte gTasks -_080F6260: - movs r4, 0 -_080F6262: - adds r0, r4, 0 - bl CreatePostEvoSparkleSet2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080F6262 - b _080F6284 -_080F6274: - ldr r0, _080F6294 @ =0xffff0f00 - ldr r1, _080F6298 @ =0x00007fff - str r1, [sp] - movs r1, 0x10 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080F6284: - ldr r0, _080F629C @ =gTasks - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _080F62A4 - .align 2, 0 -_080F6294: .4byte 0xffff0f00 -_080F6298: .4byte 0x00007fff -_080F629C: .4byte gTasks -_080F62A0: - ldr r0, _080F62AC @ =sub_80F6170 - str r0, [r1] -_080F62A4: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F62AC: .4byte sub_80F6170 - thumb_func_end sub_80F6224 - - thumb_func_start nullsub_86 -nullsub_86: @ 80F62B0 - bx lr - thumb_func_end nullsub_86 - - thumb_func_start sub_80F62B4 -sub_80F62B4: @ 80F62B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r1, 0 - ldr r3, _080F63E8 @ =sub_80F6400 - ldr r2, _080F63EC @ =0x00007fff -_080F62CE: - lsls r0, r1, 1 - add r0, sp - adds r0, 0x4 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080F62CE - adds r0, r3, 0 - movs r1, 0 - bl CreateTask - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080F63F0 @ =gTasks - mov r1, r8 - lsls r6, r1, 2 - add r6, r8 - lsls r6, 3 - adds r6, r0 - strh r5, [r6, 0xA] - strh r7, [r6, 0xC] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r6, 0xE] - movs r0, 0x10 - strh r0, [r6, 0x10] - movs r4, 0x80 - lsls r4, 9 - str r1, [sp] - movs r0, 0x1E - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r0, 0x10 - ldrsh r1, [r6, r0] - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1F - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldr r1, _080F63F4 @ =gSprites - mov r9, r1 - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - mov r3, r9 - adds r3, 0x1C - adds r0, r2, r3 - ldr r1, _080F63F8 @ =nullsub_86 - str r1, [r0] - add r2, r9 - ldrb r1, [r2, 0x1] - movs r4, 0x4 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x3C - orrs r0, r1 - strb r0, [r2, 0x3] - movs r0, 0x3E - adds r0, r2 - mov r10, r0 - ldrb r1, [r0] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - mov r1, r10 - strb r0, [r1] - ldrb r1, [r2, 0x5] - lsrs r1, 4 - lsls r1, 5 - ldr r0, _080F63FC @ =gPlttBufferFaded + 0x200 - mov r10, r0 - add r1, r10 - add r0, sp, 0x4 - movs r2, 0x10 - str r3, [sp, 0x24] - bl CpuSet - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - ldr r3, [sp, 0x24] - adds r3, r1, r3 - ldr r0, _080F63F8 @ =nullsub_86 - str r0, [r3] - add r1, r9 - ldrb r0, [r1, 0x1] - ands r4, r0 - movs r0, 0x1 - orrs r4, r0 - strb r4, [r1, 0x1] - ldrb r0, [r1, 0x3] - movs r2, 0x3E - orrs r0, r2 - strb r0, [r1, 0x3] - adds r2, r1, 0 - adds r2, 0x3E - ldrb r0, [r2] - ands r5, r0 - strb r5, [r2] - ldrb r1, [r1, 0x5] - lsrs r1, 4 - lsls r1, 5 - add r1, r10 - add r0, sp, 0x4 - movs r2, 0x10 - bl CpuSet - movs r1, 0 - strh r1, [r6, 0x18] - mov r0, r8 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F63E8: .4byte sub_80F6400 -_080F63EC: .4byte 0x00007fff -_080F63F0: .4byte gTasks -_080F63F4: .4byte gSprites -_080F63F8: .4byte nullsub_86 -_080F63FC: .4byte gPlttBufferFaded + 0x200 - thumb_func_end sub_80F62B4 - - thumb_func_start sub_80F6400 -sub_80F6400: @ 80F6400 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F641C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x12] - movs r0, 0x8 - strh r0, [r1, 0x14] - ldr r0, _080F6420 @ =sub_80F6424 - str r0, [r1] - bx lr - .align 2, 0 -_080F641C: .4byte gTasks -_080F6420: .4byte sub_80F6424 - thumb_func_end sub_80F6400 - - thumb_func_start sub_80F6424 -sub_80F6424: @ 80F6424 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080F6444 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x18 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080F6448 - adds r0, r3, 0 - bl PreEvoVisible_PostEvoInvisible_KillTask - b _080F646A - .align 2, 0 -_080F6444: .4byte gTasks -_080F6448: - ldrh r1, [r2, 0x14] - movs r4, 0x14 - ldrsh r0, [r2, r4] - cmp r0, 0x80 - bne _080F645A - adds r0, r3, 0 - bl PreEvoInvisible_PostEvoVisible_KillTask - b _080F646A -_080F645A: - adds r0, r1, 0x2 - strh r0, [r2, 0x14] - ldrh r0, [r2, 0x12] - movs r1, 0x1 - eors r0, r1 - strh r0, [r2, 0x12] - ldr r0, _080F6470 @ =sub_80F6474 - str r0, [r2] -_080F646A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6470: .4byte sub_80F6474 - thumb_func_end sub_80F6424 - - thumb_func_start sub_80F6474 -sub_80F6474: @ 80F6474 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080F6498 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x18 - ldrsh r0, [r2, r3] - adds r5, r1, 0 - cmp r0, 0 - beq _080F64A0 - ldr r0, _080F649C @ =PreEvoVisible_PostEvoInvisible_KillTask - str r0, [r2] - b _080F6584 - .align 2, 0 -_080F6498: .4byte gTasks -_080F649C: .4byte PreEvoVisible_PostEvoInvisible_KillTask -_080F64A0: - movs r6, 0 - movs r7, 0x12 - ldrsh r0, [r2, r7] - cmp r0, 0 - bne _080F64F0 - movs r0, 0xE - ldrsh r1, [r2, r0] - movs r3, 0x14 - ldrsh r0, [r2, r3] - movs r3, 0x80 - lsls r3, 1 - subs r0, r3, r0 - cmp r1, r0 - bge _080F64C6 - ldrh r0, [r2, 0x14] - ldrh r7, [r2, 0xE] - adds r0, r7 - strh r0, [r2, 0xE] - b _080F64CA -_080F64C6: - strh r3, [r2, 0xE] - movs r6, 0x1 -_080F64CA: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r5 - movs r0, 0x10 - ldrsh r1, [r3, r0] - movs r7, 0x14 - ldrsh r0, [r3, r7] - adds r0, 0x10 - cmp r1, r0 - ble _080F64EA - ldrh r0, [r3, 0x10] - ldrh r1, [r3, 0x14] - subs r0, r1 - strh r0, [r3, 0x10] - b _080F653A -_080F64EA: - movs r0, 0x10 - strh r0, [r3, 0x10] - b _080F6534 -_080F64F0: - movs r0, 0x10 - ldrsh r1, [r2, r0] - movs r3, 0x14 - ldrsh r0, [r2, r3] - movs r3, 0x80 - lsls r3, 1 - subs r0, r3, r0 - cmp r1, r0 - bge _080F650C - ldrh r0, [r2, 0x14] - ldrh r7, [r2, 0x10] - adds r0, r7 - strh r0, [r2, 0x10] - b _080F6510 -_080F650C: - strh r3, [r2, 0x10] - movs r6, 0x1 -_080F6510: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r5 - movs r0, 0xE - ldrsh r1, [r3, r0] - movs r7, 0x14 - ldrsh r0, [r3, r7] - adds r0, 0x10 - cmp r1, r0 - ble _080F6530 - ldrh r0, [r3, 0xE] - ldrh r1, [r3, 0x14] - subs r0, r1 - strh r0, [r3, 0xE] - b _080F653A -_080F6530: - movs r0, 0x10 - strh r0, [r3, 0xE] -_080F6534: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080F653A: - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r5 - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r4, 0x80 - lsls r4, 9 - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1E - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r3, 0x10 - ldrsh r1, [r5, r3] - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1F - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - cmp r6, 0x2 - bne _080F6584 - ldr r0, _080F658C @ =sub_80F6424 - str r0, [r5] -_080F6584: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F658C: .4byte sub_80F6424 - thumb_func_end sub_80F6474 - - thumb_func_start PreEvoInvisible_PostEvoVisible_KillTask -PreEvoInvisible_PostEvoVisible_KillTask: @ 80F6590 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080F6638 @ =gSprites - mov r8, r1 - ldr r1, _080F663C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x1] - movs r6, 0x4 - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - strb r1, [r2, 0x1] - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x3] - movs r5, 0x3F - negs r5, r5 - adds r1, r5, 0 - ands r1, r3 - strb r1, [r2, 0x3] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x1] - ands r6, r2 - strb r6, [r1, 0x1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x3] - ands r5, r2 - strb r5, [r1, 0x3] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F6638: .4byte gSprites -_080F663C: .4byte gTasks - thumb_func_end PreEvoInvisible_PostEvoVisible_KillTask - - thumb_func_start PreEvoVisible_PostEvoInvisible_KillTask -PreEvoVisible_PostEvoInvisible_KillTask: @ 80F6640 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080F66E8 @ =gSprites - mov r8, r1 - ldr r1, _080F66EC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x1] - movs r6, 0x4 - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - strb r1, [r2, 0x1] - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x3] - movs r5, 0x3F - negs r5, r5 - adds r1, r5, 0 - ands r1, r3 - strb r1, [r2, 0x3] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x1] - ands r6, r2 - strb r6, [r1, 0x1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x3] - ands r5, r2 - strb r5, [r1, 0x3] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F66E8: .4byte gSprites -_080F66EC: .4byte gTasks - thumb_func_end PreEvoVisible_PostEvoInvisible_KillTask - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index dac85320e..a1aff00ea 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -1619,7 +1619,7 @@ _080CEBA6: ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x3] - bl sub_80F5EC0 + bl LaunchTask_PreEvoSparklesSet2 strb r0, [r4, 0x2] bl _080CF528 .align 2, 0 @@ -1641,7 +1641,7 @@ _080CEBE6: ldr r1, [r0] ldrb r0, [r1] ldrb r1, [r1, 0x1] - bl sub_80F62B4 + bl LaunchTask_PrePostEvoMonSprites strb r0, [r4, 0x2] mov r0, r8 adds r1, r0, r7 @@ -1685,7 +1685,7 @@ _080CEC38: _080CEC44: .4byte gUnknown_2039A20 _080CEC48: .4byte gBattleCommunication _080CEC4C: - bl sub_80F5F74 + bl LaunchTask_PostEvoSparklesSet1 ldr r1, _080CEC60 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r0, _080CEC64 @ =gTasks @@ -2953,7 +2953,7 @@ _080CF752: ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x3] - bl sub_80F5EC0 + bl LaunchTask_PreEvoSparklesSet2 strb r0, [r4, 0x2] bl _080D003A .align 2, 0 @@ -2975,7 +2975,7 @@ _080CF78E: ldr r1, [r0] ldrb r0, [r1] ldrb r1, [r1, 0x1] - bl sub_80F62B4 + bl LaunchTask_PrePostEvoMonSprites strb r0, [r4, 0x2] adds r1, r7, r6 lsls r1, 3 @@ -3017,7 +3017,7 @@ _080CF7DC: _080CF7E4: .4byte gUnknown_2039A20 _080CF7E8: .4byte gBattleCommunication _080CF7EC: - bl sub_80F5F74 + bl LaunchTask_PostEvoSparklesSet1 ldr r1, _080CF800 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r0, _080CF804 @ =gTasks @@ -3045,7 +3045,7 @@ _080CF820: lsls r4, 3 adds r4, r5 ldrh r0, [r4, 0xC] - bl sub_80F6190 + bl LaunchTask_PostEvoSparklesSet2Alt mov r1, r8 strb r0, [r1, 0x2] b _080CFA90 diff --git a/baserom.ips b/baserom.ips Binary files differindex 1150e0779..b18fbddfe 100644 --- a/baserom.ips +++ b/baserom.ips diff --git a/data/battle_anim_effects_misc.s b/data/battle_anim_effects_misc.s index e9e96f2c8..ff14e90a4 100644 --- a/data/battle_anim_effects_misc.s +++ b/data/battle_anim_effects_misc.s @@ -9,7 +9,7 @@ gUnknown_83E2964:: @ 83E2964 .byte 0x02, 0x04, 0x01, 0x03 -gUnknown_83E2968:: +gUnknown_83E2968:: @ 83E2968 obj_image_anim_frame 0x0000, 5 obj_image_anim_frame 0x0002, 5 obj_image_anim_frame 0x0004, 5 @@ -20,55 +20,55 @@ gUnknown_83E2968:: obj_image_anim_frame 0x000e, 5 obj_image_anim_jump 0x0000 -gUnknown_83E298C:: +gUnknown_83E298C:: @ 83E298C .4byte gUnknown_83E2968 -gUnknown_83E2990:: +gUnknown_83E2990:: @ 83E2990 spr_template 10067, 10067, gOamData_83ACA08, gUnknown_83E298C, NULL, gDummySpriteAffineAnimTable, sub_80A22E8 -gUnknown_83E29A8:: +gUnknown_83E29A8:: @ 83E29A8 spr_template 10068, 10068, gOamData_83ACA08, gUnknown_83E298C, NULL, gDummySpriteAffineAnimTable, sub_80A22E8 -gUnknown_83E29C0:: +gUnknown_83E29C0:: @ 83E29C0 spr_template 10065, 10065, gOamData_83ACA08, gUnknown_83E298C, NULL, gDummySpriteAffineAnimTable, sub_80A22E8 -gAnimCmd_83E29D8:: +gAnimCmd_83E29D8:: @ 83E29D8 obj_image_anim_frame 0, 1 obj_image_anim_end -gAnimCmd_83E29E0:: +gAnimCmd_83E29E0:: @ 83E29E0 obj_image_anim_frame 1, 1 obj_image_anim_end -gAnimCmd_83E29E8:: +gAnimCmd_83E29E8:: @ 83E29E8 obj_image_anim_frame 2, 1 obj_image_anim_end -gAnimCmd_83E29F0:: +gAnimCmd_83E29F0:: @ 83E29F0 obj_image_anim_frame 3, 1 obj_image_anim_end -gAnimCmd_83E29F8:: +gAnimCmd_83E29F8:: @ 83E29F8 obj_image_anim_frame 4, 1 obj_image_anim_end -gAnimCmd_83E2A00:: +gAnimCmd_83E2A00:: @ 83E2A00 obj_image_anim_frame 5, 1 obj_image_anim_end -gAnimCmd_83E2A08:: +gAnimCmd_83E2A08:: @ 83E2A08 obj_image_anim_frame 6, 1 obj_image_anim_end -gAnimCmd_83E2A10:: +gAnimCmd_83E2A10:: @ 83E2A10 obj_image_anim_frame 7, 1 obj_image_anim_end -gAnimCmd_83E2A18:: +gAnimCmd_83E2A18:: @ 83E2A18 obj_image_anim_frame 8, 1 obj_image_anim_end -gSpriteAnimTable_83E2A20:: +gSpriteAnimTable_83E2A20:: @ 83E2A20 .4byte gAnimCmd_83E29D8 .4byte gAnimCmd_83E29E0 .4byte gAnimCmd_83E29E8 @@ -77,453 +77,1792 @@ gSpriteAnimTable_83E2A20:: .4byte gAnimCmd_83E2A00 .4byte gAnimCmd_83E2A08 -gSpriteAnimTable_83E2A3C:: +gSpriteAnimTable_83E2A3C:: @ 83E2A3C .4byte gAnimCmd_83E2A10 -gSpriteAnimTable_83E2A40:: +gSpriteAnimTable_83E2A40:: @ 83E2A40 .4byte gAnimCmd_83E2A18 -gAffineAnimCmd_83E2A44:: +gAffineAnimCmd_83E2A44:: @ 83E2A44 obj_rot_scal_anim_frame -5, -5, 0, 1 obj_rot_scal_anim_jump 0 -gSpriteAffineAnimTable_83E2A54:: +gSpriteAffineAnimTable_83E2A54:: @ 83E2A54 .4byte gAffineAnimCmd_83E2A44 -gUnknown_83E2A58:: +gUnknown_83E2A58:: @ 83E2A58 spr_template 10147, 10147, gOamData_83ACB50, gSpriteAnimTable_83E2A40, NULL, gSpriteAffineAnimTable_83E2A54, sub_80A2388 -gUnknown_83E2A70:: +gUnknown_83E2A70:: @ 83E2A70 spr_template 10147, 10147, gOamData_83AC9C8, gSpriteAnimTable_83E2A20, NULL, gDummySpriteAffineAnimTable, sub_80A23D8 gUnknown_83E2A88:: @ 83E2A88 spr_template 10147, 10147, gOamData_83AC9C8, gSpriteAnimTable_83E2A3C, NULL, gDummySpriteAffineAnimTable, sub_80A2430 -gSpriteTemplate_83E2AA0:: - .incbin "baserom.gba", 0x3E2AA0, 0x1C +gUnknown_83E2AA0:: @ 83E2AA0 + obj_rot_scal_anim_frame 320, 320, 0, 0 + obj_rot_scal_anim_frame -14, -14, 0, 1 + obj_rot_scal_anim_jump 1 -gUnknown_83E2ABC:: - .incbin "baserom.gba", 0x3E2ABC, 0x2C +gUnknown_83E2AB8:: @ 83E2AB8 + .4byte gUnknown_83E2AA0 -gUnknown_83E2AE8:: - .incbin "baserom.gba", 0x3E2AE8, 0x18 +gUnknown_83E2ABC:: @ 83E2ABC + spr_template 10235, 10235, gOamData_83ACA88, gDummySpriteAnimTable, NULL, gUnknown_83E2AB8, sub_80A2388 -gUnknown_83E2B00:: - .incbin "baserom.gba", 0x3E2B00, 0x34 +gUnknown_83E2AD4:: @ 83E2AD4 + obj_rot_scal_anim_frame -5, -5, 0, 1 + obj_rot_scal_anim_jump 0 + +gUnknown_83E2AE4:: @ 83E2AE4 + .4byte gUnknown_83E2AD4 + +gUnknown_83E2AE8:: @ 83E2AE8 + spr_template 10147, 10147, gOamData_83ACB50, gSpriteAnimTable_83E2A40, NULL, gUnknown_83E2AE4, sub_80A2580 + +gUnknown_83E2B00:: @ 83E2B00 + spr_template 10147, 10147, gOamData_83AC9C8, gSpriteAnimTable_83E2A20, NULL, gDummySpriteAffineAnimTable, sub_80A25EC + +gUnknown_83E2B18:: @ 83E2B18 + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E2B20:: @ 83E2B20 + obj_image_anim_frame 4, 7 + obj_image_anim_frame 8, 7 + obj_image_anim_jump 0 + +gUnknown_83E2B2C:: @ 83E2B2C + .4byte gUnknown_83E2B18 + .4byte gUnknown_83E2B20 + +gUnknown_83E2B34:: @ 83E2B34 + spr_template 10006, 10006, gOamData_83AC9D0, gUnknown_83E2B2C, NULL, gDummySpriteAffineAnimTable, sub_80A26F0 + +gUnknown_83E2B4C:: @ 83E2B4C + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E2B54:: @ 83E2B54 + obj_image_anim_frame 4, 7 + obj_image_anim_end + +gUnknown_83E2B5C:: @ 83E2B5C + .4byte gUnknown_83E2B4C + .4byte gUnknown_83E2B54 + +gUnknown_83E2B64:: @ 83E2B64 + spr_template 10158, 10158, gOamData_83AC9D0, gUnknown_83E2B5C, NULL, gDummySpriteAffineAnimTable, sub_80A27D0 + +gUnknown_83E2B7C:: @ 83E2B7C + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E2B84:: @ 83E2B84 + obj_image_anim_frame 4, 1 + obj_image_anim_end + +gUnknown_83E2B8C:: @ 83E2B8C + .4byte gUnknown_83E2B7C + +gUnknown_83E2B90:: @ 83E2B90 + .4byte gUnknown_83E2B84 + +gUnknown_83E2B94:: @ 83E2B94 + spr_template 10159, 10159, gOamData_83AC9D0, gUnknown_83E2B8C, NULL, gDummySpriteAffineAnimTable, sub_80A2920 + +gUnknown_83E2BAC:: @ 83E2BAC + spr_template 10159, 10159, gOamData_83AC9C8, gUnknown_83E2B90, NULL, gDummySpriteAffineAnimTable, sub_80A29EC + +gUnknown_83E2BC4:: @ 83E2BC4 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 4, 5 + obj_image_anim_frame 8, 5 + obj_image_anim_frame 12, 5 + obj_image_anim_frame 16, 5 + obj_image_anim_frame 20, 5 + obj_image_anim_frame 16, 5 + obj_image_anim_frame 12, 5 + obj_image_anim_frame 8, 5 + obj_image_anim_frame 4, 5 + obj_image_anim_jump 0 + +gUnknown_83E2BF0:: @ 83E2BF0 + obj_image_anim_frame 24, 5 + obj_image_anim_frame 28, 5 + obj_image_anim_frame 32, 5 + obj_image_anim_end + +gUnknown_83E2C00:: @ 83E2C00 + .4byte gUnknown_83E2BC4 + .4byte gUnknown_83E2BF0 + +gUnknown_83E2C08:: @ 83E2C08 + spr_template 10063, 10063, gOamData_83AC9D0, gUnknown_83E2C00, NULL, gDummySpriteAffineAnimTable, sub_80A2AA4 + +gUnknown_83E2C20:: @ 83E2C20 + spr_template 10063, 10063, gOamData_83AC9D0, gUnknown_83E2C00, NULL, gDummySpriteAffineAnimTable, AnimMoveTwisterParticle + +gUnknown_83E2C38:: @ 83E2C38 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_jump 0 + +gUnknown_83E2C4C:: @ 83E2C4C + .4byte gUnknown_83E2C38 + +gUnknown_83E2C50:: @ 83E2C50 + spr_template 10160, 10160, gOamData_83AC9F8, gUnknown_83E2C4C, NULL, gDummySpriteAffineAnimTable, sub_80A2B9C + +gUnknown_83E2C68:: @ 83E2C68 + obj_rot_scal_anim_frame 0, 0, 0, 1 + obj_rot_scal_anim_jump 0 + +gUnknown_83E2C78:: @ 83E2C78 + .4byte gUnknown_83E2C68 + +gUnknown_83E2C7C:: @ 83E2C7C + spr_template 10174, 10174, gOamData_83ACA38, gDummySpriteAnimTable, NULL, gUnknown_83E2C78, sub_80A2B9C + +gUnknown_83E2C94:: @ 83E2C94 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 32, 4 + obj_image_anim_frame 64, 4 + obj_image_anim_frame 96, 4 + obj_image_anim_end + +gUnknown_83E2CA8:: @ 83E2CA8 + obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 96, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end -gUnknown_83E2B34:: - .incbin "baserom.gba", 0x3E2B34, 0x30 +gUnknown_83E2CBC:: @ 83E2CBC + .4byte gUnknown_83E2C94 + .4byte gUnknown_83E2CA8 -gUnknown_83E2B64:: - .incbin "baserom.gba", 0x3E2B64, 0x30 +gUnknown_83E2CC4:: @ 83E2CC4 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_frame -11, 0, 0, 6 + obj_rot_scal_anim_frame 11, 0, 0, 6 + obj_rot_scal_anim_end -gUnknown_83E2B94:: - .incbin "baserom.gba", 0x3E2B94, 0x18 +gUnknown_83E2CE4:: @ 83E2CE4 + obj_rot_scal_anim_frame -256, 256, 0, 0 + obj_rot_scal_anim_frame 11, 0, 0, 6 + obj_rot_scal_anim_frame -11, 0, 0, 6 + obj_rot_scal_anim_end -gUnknown_83E2BAC:: - .incbin "baserom.gba", 0x3E2BAC, 0x5C +gUnknown_83E2D04:: @ 83E2D04 + .4byte gUnknown_83E2CC4 + .4byte gUnknown_83E2CE4 -gUnknown_83E2C08:: - .incbin "baserom.gba", 0x3E2C08, 0x18 +gUnknown_83E2D0C:: @ 83E2D0C + spr_template 10186, 10186, gOamData_83ACA60, gUnknown_83E2CBC, NULL, gUnknown_83E2D04, sub_80A2E28 -gUnknown_83E2C20:: - .incbin "baserom.gba", 0x3E2C20, 0x30 +gUnknown_83E2D24:: @ 83E2D24 + obj_rot_scal_anim_frame 0, 0, 0, 0 + obj_rot_scal_anim_frame 48, 48, 0, 14 + obj_rot_scal_anim_end -gUnknown_83E2C50:: - .incbin "baserom.gba", 0x3E2C50, 0x2C +gUnknown_83E2D3C:: @ 83E2D3C + obj_rot_scal_anim_frame -16, -16, 0, 1 + obj_rot_scal_anim_jump 0 + +gUnknown_83E2D4C:: @ 83E2D4C + .4byte gUnknown_83E2D24 + .4byte gUnknown_83E2D3C + +gUnknown_83E2D54:: @ 83E2D54 + spr_template 10147, 10147, gOamData_83ACA90, gSpriteAnimTable_83E2A40, NULL, gUnknown_83E2D4C, sub_80A3098 + +gUnknown_83E2D6C:: @ 83E2D6C + obj_image_anim_frame 0, 7 + obj_image_anim_frame 16, 7 + obj_image_anim_frame 32, 7 + obj_image_anim_frame 48, 7 + obj_image_anim_end + +gUnknown_83E2D80:: @ 83E2D80 + obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 48, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E2D94:: @ 83E2D94 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 16, 7 + obj_image_anim_frame 32, 7 + obj_image_anim_end + +gUnknown_83E2DA4:: @ 83E2DA4 + obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E2DB4:: @ 83E2DB4 + .4byte gUnknown_83E2D6C + .4byte gUnknown_83E2D80 + .4byte gUnknown_83E2D94 + .4byte gUnknown_83E2DA4 + +gUnknown_83E2DC4:: @ 83E2DC4 + spr_template 10223, 10223, gOamData_83AC9D8, gUnknown_83E2DB4, NULL, gDummySpriteAffineAnimTable, sub_80A3168 + +gUnknown_83E2DDC:: @ 83E2DDC + spr_template 10223, 10223, gOamData_83AC9D8, gUnknown_83E2DB4, NULL, gDummySpriteAffineAnimTable, sub_80A31EC + +gUnknown_83E2DF4:: @ 83E2DF4 + obj_image_anim_frame 3, 3 + obj_image_anim_frame 0, 5 + obj_image_anim_jump 0 -gUnknown_83E2C7C:: - .incbin "baserom.gba", 0x3E2C7C, 0x90 +gUnknown_83E2E00:: @ 83E2E00 + .4byte gUnknown_83E2DF4 -gUnknown_83E2D0C:: - .incbin "baserom.gba", 0x3E2D0C, 0x48 +gUnknown_83E2E04:: @ 83E2E04 + spr_template 10147, 10147, gOamData_83AC9C8, gUnknown_83E2E00, NULL, gDummySpriteAffineAnimTable, sub_80A3334 -gUnknown_83E2D54:: - .incbin "baserom.gba", 0x3E2D54, 0x70 +gUnknown_83E2E1C:: @ 83E2E1C + obj_image_anim_frame 0, 30 + obj_image_anim_end -gUnknown_83E2DC4:: - .incbin "baserom.gba", 0x3E2DC4, 0x18 +gUnknown_83E2E24:: @ 83E2E24 + .4byte gUnknown_83E2E1C + +gUnknown_83E2E28:: @ 83E2E28 + obj_rot_scal_anim_frame 0, 0, 252, 10 + obj_rot_scal_anim_frame 0, 0, 4, 20 + obj_rot_scal_anim_frame 0, 0, 252, 10 + obj_rot_scal_anim_end + +gUnknown_83E2E48:: @ 83E2E48 + obj_rot_scal_anim_frame 0, 0, 255, 2 + obj_rot_scal_anim_frame 0, 0, 1, 4 + obj_rot_scal_anim_frame 0, 0, 255, 4 + obj_rot_scal_anim_frame 0, 0, 1, 4 + obj_rot_scal_anim_frame 0, 0, 255, 4 + obj_rot_scal_anim_frame 0, 0, 1, 2 + obj_rot_scal_anim_end + +gUnknown_83E2E80:: @ 83E2E80 + .4byte gUnknown_83E2E28 + .4byte gUnknown_83E2E48 + +gUnknown_83E2E88:: @ 83E2E88 + spr_template 10224, 10224, gOamData_83ACA38, gUnknown_83E2E24, NULL, gUnknown_83E2E80, sub_80A3518 + +gUnknown_83E2EA0:: @ 83E2EA0 + spr_template 10224, 10224, gOamData_83ACA38, gUnknown_83E2E24, NULL, gUnknown_83E2E80, sub_80A35F4 + +gUnknown_83E2EB8:: @ 83E2EB8 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 4, 4 + obj_image_anim_frame 8, 4 + obj_image_anim_frame 12, 4 + obj_image_anim_end -gUnknown_83E2DDC:: - .incbin "baserom.gba", 0x3E2DDC, 0x28 +gUnknown_83E2ECC:: @ 83E2ECC + .4byte gUnknown_83E2EB8 -gUnknown_83E2E04:: - .incbin "baserom.gba", 0x3E2E04, 0x84 +gUnknown_83E2ED0:: @ 83E2ED0 + spr_template 10195, 10195, gOamData_83AC9D0, gUnknown_83E2ECC, NULL, gDummySpriteAffineAnimTable, sub_80A3670 -gUnknown_83E2E88:: - .incbin "baserom.gba", 0x3E2E88, 0x18 +gUnknown_83E2EE8:: @ 83E2EE8 + spr_template 10224, 10224, gOamData_83ACA38, gUnknown_83E2E24, NULL, gUnknown_83E2E80, sub_80A36B4 -gUnknown_83E2EA0:: - .incbin "baserom.gba", 0x3E2EA0, 0x30 +gUnknown_83E2F00:: @ 83E2F00 + obj_rot_scal_anim_frame 0, 0, 0, 3 + obj_rot_scal_anim_end -gUnknown_83E2ED0:: - .incbin "baserom.gba", 0x3E2ED0, 0x18 +gUnknown_83E2F10:: @ 83E2F10 + obj_rot_scal_anim_frame 0, -10, 0, 3 + obj_rot_scal_anim_frame 0, -6, 0, 3 + obj_rot_scal_anim_frame 0, -2, 0, 3 + obj_rot_scal_anim_frame 0, 0, 0, 3 + obj_rot_scal_anim_frame 0, 2, 0, 3 + obj_rot_scal_anim_frame 0, 6, 0, 3 + obj_rot_scal_anim_frame 0, 10, 0, 3 + obj_rot_scal_anim_end -gUnknown_83E2EE8:: - .incbin "baserom.gba", 0x3E2EE8, 0x78 +gUnknown_83E2F50:: @ 83E2F50 + .4byte gUnknown_83E2F00 + .4byte gUnknown_83E2F10 + .4byte gUnknown_83E2E28 + .4byte gUnknown_83E2E48 -gUnknown_83E2F60:: - .incbin "baserom.gba", 0x3E2F60, 0x18 +gUnknown_83E2F60:: @ 83E2F60 + spr_template 10224, 10224, gOamData_83ACA38, gUnknown_83E2E24, NULL, gUnknown_83E2F50, sub_80A37BC gUnknown_83E2F78:: @ 83E2F78 - .incbin "baserom.gba", 0x3E2F78, 0x78 + .byte 0x05, 0x18, 0x01, 0x00, 0x04, 0x00, 0x08, 0x10, 0xff, 0x00, 0x02, 0x00, 0x08, 0x10, 0x01, 0x00, 0x02, 0x00, 0x08, 0x10, 0x01, 0x00, 0x02, 0x00, 0x08, 0x10, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x7f, 0x00, 0x00, 0x00 + +gUnknown_83E2F9C:: @ 83E2F9C + obj_image_anim_frame 28, 1 + obj_image_anim_end + +gUnknown_83E2FA4:: @ 83E2FA4 + obj_image_anim_frame 32, 1 + obj_image_anim_end + +gUnknown_83E2FAC:: @ 83E2FAC + obj_image_anim_frame 20, 1 + obj_image_anim_end + +gUnknown_83E2FB4:: @ 83E2FB4 + obj_image_anim_frame 28, 1, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E2FBC:: @ 83E2FBC + obj_image_anim_frame 16, 1 + obj_image_anim_end + +gUnknown_83E2FC4:: @ 83E2FC4 + obj_image_anim_frame 16, 1, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E2FCC:: @ 83E2FCC + obj_image_anim_frame 28, 1 + obj_image_anim_end + +gUnknown_83E2FD4:: @ 83E2FD4 + .4byte gUnknown_83E2F9C + .4byte gUnknown_83E2FA4 + .4byte gUnknown_83E2FAC + .4byte gUnknown_83E2FB4 + .4byte gUnknown_83E2FBC + .4byte gUnknown_83E2FC4 + .4byte gUnknown_83E2FCC gUnknown_83E2FF0:: @ 83E2FF0 - .incbin "baserom.gba", 0x3E2FF0, 0x34 + spr_template 10063, 10063, gOamData_83AC9D0, gUnknown_83E2FD4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + +gUnknown_83E3008:: @ 83E3008 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_frame 0, 0, 4, 1 + obj_rot_scal_anim_jump 1 + +gUnknown_83E3020:: @ 83E3020 + .4byte gUnknown_83E3008 + +gUnknown_83E3024:: @ 83E3024 + spr_template 10159, 10159, gOamData_83AC9C8, gUnknown_83E2B90, NULL, gDummySpriteAffineAnimTable, sub_80A4040 + +gUnknown_83E303C:: @ 83E303C + spr_template 10159, 10159, gOamData_83ACA30, gUnknown_83E2B8C, NULL, gUnknown_83E3020, sub_80A4040 + +gUnknown_83E3054:: @ 83E3054 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_frame 0, 0, 246, 1 + obj_rot_scal_anim_jump 1 + +gUnknown_83E306C:: @ 83E306C + obj_rot_scal_anim_frame 192, 192, 0, 0 + obj_rot_scal_anim_frame 0, 0, 244, 1 + obj_rot_scal_anim_jump 1 + +gUnknown_83E3084:: @ 83E3084 + obj_rot_scal_anim_frame 143, 143, 0, 0 + obj_rot_scal_anim_frame 0, 0, 241, 1 + obj_rot_scal_anim_jump 1 + +gUnknown_83E309C:: @ 83E309C + .4byte gUnknown_83E3054 -gUnknown_83E3024:: - .incbin "baserom.gba", 0x3E3024, 0x18 +gUnknown_83E30A0:: @ 83E30A0 + .4byte gUnknown_83E306C -gUnknown_83E303C:: - .incbin "baserom.gba", 0x3E303C, 0x6C +gUnknown_83E30A4:: @ 83E30A4 + .4byte gUnknown_83E3084 -gUnknown_83E30A8:: - .incbin "baserom.gba", 0x3E30A8, 0x18 +gUnknown_83E30A8:: @ 83E30A8 + spr_template 10271, 10271, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E309C, sub_80A4040 -gUnknown_83E30C0:: - .incbin "baserom.gba", 0x3E30C0, 0x18 +gUnknown_83E30C0:: @ 83E30C0 + spr_template 10271, 10271, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E30A0, sub_80A4040 -gUnknown_83E30D8:: - .incbin "baserom.gba", 0x3E30D8, 0x18 +gUnknown_83E30D8:: @ 83E30D8 + spr_template 10271, 10271, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E30A4, sub_80A4040 gUnknown_83E30F0:: @ 83E30F0 - .incbin "baserom.gba", 0x3E30F0, 0x10 + .2byte 0x001f, 0x027f, 0x03ff, 0x03e0, 0x7dc5, 0x7d56, 0x7eb6, 0x0000 -gUnknown_83E3100:: - .incbin "baserom.gba", 0x3E3100, 0x48 +gUnknown_83E3100:: @ 83E3100 + spr_template 10266, 10266, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A4298 -gUnknown_83E3148:: - .incbin "baserom.gba", 0x3E3148, 0x18 +gUnknown_83E3118:: @ 83E3118 + obj_image_anim_frame 64, 3 + obj_image_anim_frame 80, 3 + obj_image_anim_frame 96, 3 + obj_image_anim_frame 112, 6 + obj_image_anim_end + +gUnknown_83E312C:: @ 83E312C + obj_image_anim_frame 64, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 80, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 96, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 112, 6, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3140:: @ 83E3140 + .4byte gUnknown_83E3118 + .4byte gUnknown_83E312C + +gUnknown_83E3148:: @ 83E3148 + spr_template 10056, 10056, gOamData_83AC9D8, gUnknown_83E3140, NULL, gDummySpriteAffineAnimTable, sub_80A4450 + +gUnknown_83E3160:: @ 83E3160 + spr_template 10287, 10287, gOamData_83AC9D8, gUnknown_83E3140, NULL, gDummySpriteAffineAnimTable, sub_80A4450 + +gUnknown_83E3178:: @ 83E3178 + obj_image_anim_frame 0x0000, 4 + obj_image_anim_frame 0x0010, 4 + obj_image_anim_frame 0x0020, 4 + obj_image_anim_frame 0x0030, 4 + obj_image_anim_frame 0x0040, 5 + obj_image_anim_end + +gUnknown_83E3190:: @ 83E3190 + .4byte gUnknown_83E3178 + +gUnknown_83E3194:: @ 83E3194 + spr_template 10021, 10021, gOamData_83AC9D8, gUnknown_83E3190, NULL, gDummySpriteAffineAnimTable, sub_80A43F8 + +gUnknown_83E31AC:: @ 83E31AC + spr_template 10022, 10022, gOamData_83AC9D8, gUnknown_83E3190, NULL, gDummySpriteAffineAnimTable, sub_80A43F8 + +gUnknown_83E31C4:: @ 83E31C4 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_end + +gUnknown_83E31D4:: + obj_rot_scal_anim_frame 256, 256, 32, 0 + obj_rot_scal_anim_end + +gUnknown_83E31E4:: + obj_rot_scal_anim_frame 256, 256, 64, 0 + obj_rot_scal_anim_end + +gUnknown_83E31F4:: + obj_rot_scal_anim_frame 256, 256, 96, 0 + obj_rot_scal_anim_end + +gUnknown_83E3204:: + obj_rot_scal_anim_frame 256, 256, 128, 0 + obj_rot_scal_anim_end + +gUnknown_83E3214:: + obj_rot_scal_anim_frame 256, 256, 160, 0 + obj_rot_scal_anim_end + +gUnknown_83E3224:: + obj_rot_scal_anim_frame 256, 256, 192, 0 + obj_rot_scal_anim_end + +gUnknown_83E3234:: + obj_rot_scal_anim_frame 256, 256, 224, 0 + obj_rot_scal_anim_end + +gUnknown_83E3244:: + .4byte gUnknown_83E31C4 + .4byte gUnknown_83E31D4 + .4byte gUnknown_83E31E4 + .4byte gUnknown_83E31F4 + .4byte gUnknown_83E3204 + .4byte gUnknown_83E3214 + .4byte gUnknown_83E3224 + .4byte gUnknown_83E3234 + +gUnknown_83E3264:: + spr_template 10143, 10143, gOamData_83ACA38, gDummySpriteAnimTable, NULL, gUnknown_83E3244, sub_80A4494 + +gUnknown_83E327C:: @ 83E327C + obj_image_anim_frame 0, 5 + obj_image_anim_frame 16, 5 + obj_image_anim_frame 32, 5 + obj_image_anim_frame 48, 5 + obj_image_anim_end + +gUnknown_83E3290:: @ 83E3290 + .4byte gUnknown_83E327C + +gUnknown_83E3294:: @ 83E3294 + spr_template 10138, 10138, gOamData_83ACAF8, gUnknown_83E3290, NULL, gDummySpriteAffineAnimTable, sub_80A44E0 + +gUnknown_83E32AC:: @ 83E32AC + spr_template 10138, 10138, gOamData_83ACAF8, gUnknown_83E3290, NULL, gDummySpriteAffineAnimTable, sub_80A4588 + +gUnknown_83E32C4:: @ 83E32C4 + obj_image_anim_frame 0x0000, 1 + obj_image_anim_end + +gUnknown_83E32CC:: + obj_image_anim_frame 0x0004, 1 + obj_image_anim_end + +gUnknown_83E32D4:: + obj_image_anim_frame 0x0008, 1 + obj_image_anim_end + +gUnknown_83E32DC:: + obj_image_anim_frame 0x000c, 1 + obj_image_anim_end + +gUnknown_83E32E4:: + obj_image_anim_frame 0x0010, 1 + obj_image_anim_end + +gUnknown_83E32EC:: + obj_image_anim_frame 0x0014, 1 + obj_image_anim_end + +gUnknown_83E32F4:: + obj_image_anim_frame 0x0000, 1, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end + +gUnknown_83E32FC:: + obj_image_anim_frame 0x0004, 1, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end + +gUnknown_83E3304:: + obj_image_anim_frame 0x0008, 1, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end + +gUnknown_83E330C:: + obj_image_anim_frame 0x000c, 1, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end + +gUnknown_83E3314:: + .4byte gUnknown_83E32C4 + .4byte gUnknown_83E32CC + .4byte gUnknown_83E32D4 + .4byte gUnknown_83E32DC + .4byte gUnknown_83E32E4 + .4byte gUnknown_83E32EC + .4byte gUnknown_83E32F4 + .4byte gUnknown_83E32FC + .4byte gUnknown_83E3304 + .4byte gUnknown_83E330C + +gUnknown_83E333C:: + spr_template 10072, 10072, gOamData_83AC9D0, gUnknown_83E3314, NULL, gDummySpriteAffineAnimTable, sub_80A481C + +gUnknown_83E3354:: @ 83E3354 + spr_template 10280, 10280, gOamData_83ACB00, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A48F0 + +gUnknown_83E336C:: @ 83E336C + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_end + +gUnknown_83E337C:: @ 83E337C + obj_rot_scal_anim_frame 0, 0, 2, 12 + obj_rot_scal_anim_frame 0, 0, 0, 6 + obj_rot_scal_anim_frame 0, 0, 254, 24 + obj_rot_scal_anim_frame 0, 0, 0, 6 + obj_rot_scal_anim_frame 0, 0, 2, 12 + obj_rot_scal_anim_jump 0 + +gUnknown_83E33AC:: @ 83E33AC + .4byte gUnknown_83E336C + .4byte gUnknown_83E337C + +gUnknown_83E33B4:: @ 83E33B4 + spr_template 10099, 10099, gOamData_83ACB58, gDummySpriteAnimTable, NULL, gUnknown_83E33AC, sub_80A4ACC + +gUnknown_83E33CC:: @ 83E33CC + obj_image_anim_frame 0, 7 + obj_image_anim_frame 16, 7 + obj_image_anim_frame 32, 7 + obj_image_anim_frame 48, 7 + obj_image_anim_frame 64, 7 + obj_image_anim_frame 80, 7 + obj_image_anim_frame 96, 7 + obj_image_anim_frame 112, 7 + obj_image_anim_jump 0 + +gUnknown_83E33F0:: @ 83E33F0 + .4byte gUnknown_83E33CC + +gUnknown_83E33F4:: @ 83E33F4 + spr_template 10049, 10049, gOamData_83AC9D8, gUnknown_83E33F0, NULL, gDummySpriteAffineAnimTable, sub_80A4D0C + +gUnknown_83E340C:: @ 83E340C + spr_template 10049, 10049, gOamData_83AC9D8, gUnknown_83E33F0, NULL, gDummySpriteAffineAnimTable, sub_80A4D5C + +gUnknown_83E3424:: @ 83E3424 + obj_image_anim_frame 0x0000, 10 + obj_image_anim_frame 0x0004, 10 + obj_image_anim_frame 0x0008, 10 + obj_image_anim_frame 0x000c, 10 + obj_image_anim_frame 0x0010, 26 + obj_image_anim_frame 0x0010, 5 + obj_image_anim_frame 0x0014, 5 + obj_image_anim_frame 0x0018, 15 + obj_image_anim_end + +gUnknown_83E3448:: + obj_image_anim_frame 0x0000, 10, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0004, 10, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0008, 10, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x000c, 10, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0010, 26, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0010, 5, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0014, 5, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0018, 15, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E346C:: + .4byte gUnknown_83E3424 + .4byte gUnknown_83E3448 -gUnknown_83E3160:: - .incbin "baserom.gba", 0x3E3160, 0x134 +gUnknown_83E3474:: + spr_template 10032, 10032, gOamData_83AC9D0, gUnknown_83E346C, NULL, gDummySpriteAffineAnimTable, sub_80A4E40 -gUnknown_83E3294:: - .incbin "baserom.gba", 0x3E3294, 0x18 +gUnknown_83E348C:: @ 83E348C + obj_image_anim_frame 0, 40 + obj_image_anim_end + +gUnknown_83E3494:: @ 83E3494 + .4byte gUnknown_83E348C -gUnknown_83E32AC:: - .incbin "baserom.gba", 0x3E32AC, 0xA8 +gUnknown_83E3498:: @ 83E3498 + obj_rot_scal_anim_frame 20, 20, 226, 0 + obj_rot_scal_anim_frame 8, 8, 1, 24 + obj_rot_scal_anim_end -gUnknown_83E3354:: - .incbin "baserom.gba", 0x3E3354, 0x60 +gUnknown_83E34B0:: @ 83E34B0 + obj_rot_scal_anim_loop 0 + obj_rot_scal_anim_frame 0, 0, 1, 24 + obj_rot_scal_anim_loop 10 -gUnknown_83E33B4:: - .incbin "baserom.gba", 0x3E33B4, 0x40 +gUnknown_83E34C8:: @ 83E34C8 + obj_rot_scal_anim_frame 20, 20, 30, 0 + obj_rot_scal_anim_frame 8, 8, 255, 24 + obj_rot_scal_anim_end -gUnknown_83E33F4:: - .incbin "baserom.gba", 0x3E33F4, 0x18 +gUnknown_83E34E0:: @ 83E34E0 + obj_rot_scal_anim_loop 0 + obj_rot_scal_anim_frame 0, 0, 255, 24 + obj_rot_scal_anim_loop 10 -gUnknown_83E340C:: - .incbin "baserom.gba", 0x3E340C, 0xF4 +gUnknown_83E34F8:: @ 83E34F8 + .4byte gUnknown_83E3498 + .4byte gUnknown_83E34C8 -gUnknown_83E3500:: - .incbin "baserom.gba", 0x3E3500, 0x18 +gUnknown_83E3500:: @ 83E3500 + spr_template 10228, 10228, gOamData_83ACA38, gUnknown_83E3494, NULL, gUnknown_83E34F8, sub_80A4EF4 -gUnknown_83E3518:: - .incbin "baserom.gba", 0x3E3518, 0x18 +gUnknown_83E3518:: @ 83E3518 + spr_template 10014, 10014, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A4FAC -gUnknown_83E3530:: - .incbin "baserom.gba", 0x3E3530, 0x18 +gUnknown_83E3530:: @ 83E3530 + spr_template 10014, 10014, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A5298 gUnknown_83E3548:: @ 83E3548 - .incbin "baserom.gba", 0x3E3548, 0x8 + .byte 0x40, 0x40, 0x00, 0xc0, 0xc0, 0x40, 0x20, 0xe0 + +gUnknown_83E3550:: @ 83E3550 + spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A5340 + spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A5590 + +gUnknown_83E3580:: @ 83E3580 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 32, 4 + obj_image_anim_frame 48, 4 + obj_image_anim_end + +gUnknown_83E3594:: @ 83E3594 + obj_image_anim_frame 48, 4 + obj_image_anim_end + +gUnknown_83E359C:: @ 83E359C + .4byte gUnknown_83E3580 + .4byte gUnknown_83E3594 + +gUnknown_83E35A4:: @ 83E35A4 + spr_template 10183, 10183, gOamData_83AC9D8, gUnknown_83E359C, NULL, gDummySpriteAffineAnimTable, sub_80A5940 + +gUnknown_83E35BC:: @ 83E35BC + spr_template 10286, 10286, gOamData_83AC9D8, gUnknown_83E359C, NULL, gDummySpriteAffineAnimTable, sub_80A59A8 + +gUnknown_83E35D4:: @ 83E35D4 + spr_template 10286, 10286, gOamData_83AC9D8, gUnknown_83E359C, NULL, gDummySpriteAffineAnimTable, sub_80A59F0 + +gUnknown_83E35EC:: @ 83E35EC + obj_image_anim_frame 0, 4 + obj_image_anim_frame 8, 12 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 24, 4 + obj_image_anim_end + +gUnknown_83E3600:: @ 83E3600 + .4byte gUnknown_83E35EC + +gUnknown_83E3604:: @ 83E3604 + spr_template 10184, 10184, gOamData_83ACA18, gUnknown_83E3600, NULL, gDummySpriteAffineAnimTable, sub_80A5AD8 + +gUnknown_83E361C:: @ 83E361C + obj_image_anim_frame 0, 18 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 16, 18 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 32, 18 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 32, 6 + obj_image_anim_frame 48, 18 + obj_image_anim_frame 32, 6 + obj_image_anim_frame 48, 6 + obj_image_anim_frame 64, 18 + obj_image_anim_frame 48, 6 + obj_image_anim_frame 64, 54 + obj_image_anim_end + +gUnknown_83E3658:: @ 83E3658 + .4byte gUnknown_83E361C + +gUnknown_83E365C:: @ 83E365C + spr_template 10185, 10185, gOamData_83AC9D8, gUnknown_83E3658, NULL, gDummySpriteAffineAnimTable, sub_80A5B7C + +gUnknown_83E3674:: @ 83E3674 + spr_template 10017, 10017, gOamData_83AC9C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation + +gUnknown_83E368C:: @ 83E368C + obj_image_anim_frame 0, 3 + obj_image_anim_frame 16, 3 + obj_image_anim_frame 32, 3 + obj_image_anim_frame 48, 3 + obj_image_anim_frame 64, 3 + obj_image_anim_end -gUnknown_83E3550:: - .incbin "baserom.gba", 0x3E3550, 0x54 +gUnknown_83E36A4:: @ 83E36A4 + .4byte gUnknown_83E368C -gUnknown_83E35A4:: - .incbin "baserom.gba", 0x3E35A4, 0x18 +gUnknown_83E36A8:: @ 83E36A8 + spr_template 10030, 10030, gOamData_83AC9D8, gUnknown_83E36A4, NULL, gDummySpriteAffineAnimTable, AnimSpriteOnMonPos -gUnknown_83E35BC:: - .incbin "baserom.gba", 0x3E35BC, 0x18 +gUnknown_83E36C0:: @ 83E36C0 + obj_image_anim_frame 3, 5 + obj_image_anim_frame 2, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end -gUnknown_83E35D4:: - .incbin "baserom.gba", 0x3E35D4, 0x30 +gUnknown_83E36D4:: @ 83E36D4 + .4byte gUnknown_83E36C0 -gUnknown_83E3604:: - .incbin "baserom.gba", 0x3E3604, 0x58 +gUnknown_83E36D8:: @ 83E36D8 + obj_rot_scal_anim_frame 512, 512, 0, 0 + obj_rot_scal_anim_end -gUnknown_83E365C:: - .incbin "baserom.gba", 0x3E365C, 0x18 +gUnknown_83E36E8:: @ 83E36E8 + .4byte gUnknown_83E36D8 -gUnknown_83E3674:: - .incbin "baserom.gba", 0x3E3674, 0x34 +gUnknown_83E36EC:: @ 83E36EC + spr_template 10018, 10018, gOamData_83ACBA8, gUnknown_83E36D4, NULL, gUnknown_83E36E8, sub_80A5C68 -gUnknown_83E36A8:: - .incbin "baserom.gba", 0x3E36A8, 0x44 +gUnknown_83E3704:: @ 83E3704 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 2, 5 + obj_image_anim_frame 3, 5 + obj_image_anim_end -gUnknown_83E36EC:: - .incbin "baserom.gba", 0x3E36EC, 0x30 +gUnknown_83E3718:: @ 83E3718 + .4byte gUnknown_83E3704 -gUnknown_83E371C:: - .incbin "baserom.gba", 0x3E371C, 0x18 +gUnknown_83E371C:: @ 83E371C + spr_template 10018, 10018, gOamData_83ACBA8, gUnknown_83E3718, NULL, gUnknown_83E36E8, sub_80A5D4C gUnknown_83E3734:: @ 83E3734 - .incbin "baserom.gba", 0x3E3734, 0x30 + spr_template 10194, 10194, gOamData_83ACB00, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A5EE0 + +gUnknown_83E374C:: @ 83E374C + obj_image_anim_frame 0, 8 + obj_image_anim_frame 4, 8 + obj_image_anim_frame 8, 8 + obj_image_anim_frame 12, 8 + obj_image_anim_jump 0 + +gUnknown_83E3760:: @ 83E3760 + .4byte gUnknown_83E374C gUnknown_83E3764:: @ 83E3764 - .incbin "baserom.gba", 0x3E3764, 0x40 + spr_template 10195, 10195, gOamData_83AC9D0, gUnknown_83E3760, NULL, gDummySpriteAffineAnimTable, sub_80A5F40 + +gUnknown_83E377C:: @ 83E377C + obj_image_anim_frame 0, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 48, 3 + obj_image_anim_frame 64, 5 + obj_image_anim_frame 80, 3 + obj_image_anim_frame 96, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_end + +gUnknown_83E37A0:: @ 83E37A0 + .4byte gUnknown_83E377C + +gUnknown_83E37A4:: @ 83E37A4 + spr_template 10031, 10031, gOamData_83AC9D8, gUnknown_83E37A0, NULL, gDummySpriteAffineAnimTable, AnimSpriteOnMonPos + +gUnknown_83E37BC:: @ 83E37BC + spr_template 10020, 10020, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A6244 + +gUnknown_83E37D4:: @ 83E37D4 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 48, 2 + obj_image_anim_end + +gUnknown_83E37E8:: @ 83E37E8 + .4byte gUnknown_83E37D4 + +gUnknown_83E37EC:: @ 83E37EC + spr_template 10192, 10192, gOamData_83AC9D8, gUnknown_83E37E8, NULL, gDummySpriteAffineAnimTable, sub_80A65CC + +gUnknown_83E3804:: @ 83E3804 + obj_image_anim_frame 0x0000, 10 + obj_image_anim_end + +gOamData_83E380C:: + obj_image_anim_frame 0x0004, 10 + obj_image_anim_end + +gUnknown_83E3814:: @ 83E3814 + obj_image_anim_frame 0x0008, 41 + obj_image_anim_end + +gUnknown_83E381C:: @ 83E381C + obj_image_anim_frame 0x000c, 10 + obj_image_anim_end -gUnknown_83E37A4:: - .incbin "baserom.gba", 0x3E37A4, 0x18 +gUnknown_83E3824:: @ 83E3824 + obj_image_anim_frame 0x0010, 10 + obj_image_anim_end + +gUnknown_83E382C:: @ 83E382C + obj_image_anim_frame 0x0014, 10 + obj_image_anim_end + obj_image_anim_frame 0x0000, 10, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end + obj_image_anim_frame 0x0004, 10, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end -gUnknown_83E37BC:: - .incbin "baserom.gba", 0x3E37BC, 0x30 +gUnknown_83E3844:: @ 83E3844 + spr_template 14340, 2110, gOamData_83E380C, gUnknown_83E3814, gUnknown_83E381C, gUnknown_83E3824, gUnknown_83E382C -gUnknown_83E37EC:: - .incbin "baserom.gba", 0x3E37EC, 0x94 +gUnknown_83E385C:: @ 83E385C + .4byte 0x83e3834 + .4byte 0x83e383c -gUnknown_83E3880:: - .incbin "baserom.gba", 0x3E3880, 0x18 +gUnknown_83E3864:: @ 83E3864 + obj_rot_scal_anim_frame 12, 12, 0, 16 + obj_rot_scal_anim_frame -12, -12, 0, 16 + obj_rot_scal_anim_jump 0 + +gUnknown_83E387C:: @ 83E387C + .4byte gUnknown_83E3864 + +gUnknown_83E3880:: @ 83E3880 + spr_template 10072, 10072, gOamData_83ACA90, gUnknown_83E3844, NULL, gUnknown_83E387C, sub_80A66D4 gUnknown_83E3898:: @ 83E3898 - .incbin "baserom.gba", 0x3E3898, 0x30 + .2byte 0x2758, 0x7fff, 0x735f, 0x6adf, 0x623f, 0x59bf, 0x2771, 0x7fff, 0x6bf9, 0x57f4, 0x43ef, 0x33ea, 0x27c9, 0x7fff, 0x63ff, 0x47ff + .2byte 0x2bff, 0x0fff, 0x27bf, 0x7fff, 0x7f9a, 0x7f55, 0x7f10, 0x7ecc + +gUnknown_83E38C8:: @ 83E38C8 + spr_template 10072, 10072, gOamData_83ACA90, gUnknown_83E3844, NULL, gUnknown_83E387C, sub_80A68B0 + +gUnknown_83E38E0:: @ 83E38E0 + spr_template 10193, 10193, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A69B8 -gUnknown_83E38C8:: - .incbin "baserom.gba", 0x3E38C8, 0x18 +gUnknown_83E38F8:: @ 83E38F8 + obj_rot_scal_anim_frame 160, 160, 0, 0 + obj_rot_scal_anim_frame 4, 4, 0, 1 + obj_rot_scal_anim_jump 1 -gUnknown_83E38E0:: - .incbin "baserom.gba", 0x3E38E0, 0x34 +gUnknown_83E3910:: @ 83E3910 + .4byte gUnknown_83E38F8 -gUnknown_83E3914:: - .incbin "baserom.gba", 0x3E3914, 0x78 +gUnknown_83E3914:: @ 83E3914 + spr_template 10072, 10072, gOamData_83ACA90, gUnknown_83E3844, NULL, gUnknown_83E3910, sub_80A6A28 + +gUnknown_83E392C:: @ 83E392C + obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3940:: @ 83E3940 + obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3954:: @ 83E3954 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 48, 2 + obj_image_anim_end + +gUnknown_83E3968:: @ 83E3968 + obj_image_anim_frame 48, 2 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_end + +gUnknown_83E397C:: @ 83E397C + .4byte gUnknown_83E392C + .4byte gUnknown_83E3954 + .4byte gUnknown_83E3940 + .4byte gUnknown_83E3968 gUnknown_83E398C:: @ 83E398C - .incbin "baserom.gba", 0x3E398C, 0xA8 + spr_template 10209, 10209, gOamData_83AC9D8, gUnknown_83E397C, NULL, gDummySpriteAffineAnimTable, sub_80A6B64 + +gUnknown_83E39A4:: @ 83E39A4 + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_frame 30, 30, 0, 8 + obj_rot_scal_anim_end + +gUnknown_83E39BC:: @ 83E39BC + obj_rot_scal_anim_frame 0, 0, 4, 11 + obj_rot_scal_anim_frame 0, 0, 252, 11 + obj_rot_scal_anim_loop 2 + obj_rot_scal_anim_frame -30, -30, 0, 8 + obj_rot_scal_anim_end + +gUnknown_83E39E4:: @ 83E39E4 + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_frame 30, 30, 0, 8 + obj_rot_scal_anim_frame 0, 0, 0, 16 + obj_rot_scal_anim_loop 0 + obj_rot_scal_anim_frame 0, 0, 4, 11 + obj_rot_scal_anim_frame 0, 0, 252, 11 + obj_rot_scal_anim_loop 2 + obj_rot_scal_anim_frame -30, -30, 0, 8 + obj_rot_scal_anim_end + +gUnknown_83E3A2C:: @ 83E3A2C + .4byte gUnknown_83E39A4 + .4byte gUnknown_83E39BC + +gUnknown_83E3A34:: @ 83E3A34 + spr_template 10064, 10064, gOamData_83ACA98, gDummySpriteAnimTable, NULL, gUnknown_83E3A2C, sub_80A6C08 + +gUnknown_83E3A4C:: @ 83E3A4C + spr_template 10064, 10064, gOamData_83ACA38, gDummySpriteAnimTable, NULL, gUnknown_83E3A2C, sub_80A6C84 + +gUnknown_83E3A64:: @ 83E3A64 + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E3A6C:: @ 83E3A6C + obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3A74:: @ 83E3A74 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 32, 4 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 32, 4 + obj_image_anim_end + +gUnknown_83E3A94:: @ 83E3A94 + obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3AB4:: @ 83E3AB4 + .4byte gUnknown_83E3A64 + .4byte gUnknown_83E3A6C + .4byte gUnknown_83E3A74 + .4byte gUnknown_83E3A94 + +gUnknown_83E3AC4:: @ 83E3AC4 + spr_template 10214, 10214, gOamData_83AC9D8, gUnknown_83E3AB4, NULL, gDummySpriteAffineAnimTable, sub_80A6D90 + +gUnknown_83E3ADC:: + spr_template 10064, 10064, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A6E48 + +gUnknown_83E3AF4:: @ 83E3AF4 + obj_image_anim_frame 0x0004, 1 + obj_image_anim_end + +gUnknown_83E3AFC:: + .4byte gUnknown_83E3AF4 + +gUnknown_83E3B00:: + spr_template 10072, 10072, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A6E98 + +gUnknown_83E3B18:: + spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A6F8C + +gUnknown_83E3B30:: + spr_template 10145, 10145, gOamData_83ACB60, gDummySpriteAnimTable, NULL, gUnknown_83E7910, sub_80A7020 + +gUnknown_83E3B48:: + obj_image_anim_frame 0x0000, 9 + obj_image_anim_frame 0x0010, 3 + obj_image_anim_frame 0x0020, 3 + obj_image_anim_frame 0x0030, 3 + obj_image_anim_end + +gUnknown_83E3B5C:: + .4byte gUnknown_83E3B48 + +gUnknown_83E3B60:: + obj_rot_scal_anim_frame 80, 80, 0, 0 + obj_rot_scal_anim_frame 9, 9, 0, 18 + obj_rot_scal_anim_end + +gUnknown_83E3B78:: + .4byte gUnknown_83E3B60 + +gUnknown_83E3B7C:: + spr_template 10007, 10007, gOamData_83ACA38, gUnknown_83E3B5C, NULL, gUnknown_83E3B78, AnimSpriteOnMonPos + +gUnknown_83E3B94:: @ 83E3B94 + obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 8, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 40, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_loop 1 + obj_image_anim_end -gUnknown_83E3A34:: - .incbin "baserom.gba", 0x3E3A34, 0x18 +gUnknown_83E3BB8:: @ 83E3BB8 + .4byte gUnknown_83E3B94 -gUnknown_83E3A4C:: - .incbin "baserom.gba", 0x3E3A4C, 0x78 +gUnknown_83E3BBC:: @ 83E3BBC + spr_template 10075, 10075, gOamData_83AC9F8, gUnknown_83E3BB8, NULL, gDummySpriteAffineAnimTable, sub_80A71D8 -gUnknown_83E3AC4:: - .incbin "baserom.gba", 0x3E3AC4, 0xF8 +gUnknown_83E3BD4:: @ 83E3BD4 + obj_rot_scal_anim_frame 16, 256, 0, 0 + obj_rot_scal_anim_frame 20, 0, 0, 12 + obj_rot_scal_anim_frame 0, 0, 0, 32 + obj_rot_scal_anim_end -gUnknown_83E3BBC:: - .incbin "baserom.gba", 0x3E3BBC, 0x3C +gUnknown_83E3BF4:: @ 83E3BF4 + .4byte gUnknown_83E3BD4 -gUnknown_83E3BF8:: - .incbin "baserom.gba", 0x3E3BF8, 0x18 +gUnknown_83E3BF8:: @ 83E3BF8 + spr_template 10005, 10005, gOamData_83ACBA0, gDummySpriteAnimTable, NULL, gUnknown_83E3BF4, sub_80A727C -gUnknown_83E3C10:: - .incbin "baserom.gba", 0x3E3C10, 0x18 +gUnknown_83E3C10:: @ 83E3C10 + spr_template 10003, 10003, gOamData_83ACBD8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A72C8 gUnknown_83E3C28:: @ 83E3C28 - .incbin "baserom.gba", 0x3E3C28, 0x78 + spr_template 10003, 10003, gOamData_83ACB18, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A74A4 -gUnknown_83E3CA0:: - .incbin "baserom.gba", 0x3E3CA0, 0x18 +gUnknown_83E3C40:: @ 83E3C40 + obj_rot_scal_anim_frame 32, 32, 0, 0 + obj_rot_scal_anim_frame 7, 7, 0, 200 + obj_rot_scal_anim_end -gUnknown_83E3CB8:: - .incbin "baserom.gba", 0x3E3CB8, 0x18 +gUnknown_83E3C58:: @ 83E3C58 + obj_rot_scal_anim_frame 5, 5, 0, 10 + obj_rot_scal_anim_frame -10, -10, 0, 10 + obj_rot_scal_anim_frame 10, 10, 0, 10 + obj_rot_scal_anim_frame -10, -10, 0, 10 + obj_rot_scal_anim_frame 10, 10, 0, 10 + obj_rot_scal_anim_frame -10, -10, 0, 10 + obj_rot_scal_anim_frame 10, 10, 0, 10 + obj_rot_scal_anim_end -gUnknown_83E3CD0:: - .incbin "baserom.gba", 0x3E3CD0, 0x18 +gUnknown_83E3C98:: @ 83E3C98 + .4byte gUnknown_83E3C40 -gUnknown_83E3CE8:: - .incbin "baserom.gba", 0x3E3CE8, 0x18 +gUnknown_83E3C9C:: @ 83E3C9C + .4byte gUnknown_83E3C58 -gUnknown_83E3D00:: - .incbin "baserom.gba", 0x3E3D00, 0x18 +gUnknown_83E3CA0:: @ 83E3CA0 + spr_template 10163, 10163, gOamData_83ACAD8, gDummySpriteAnimTable, NULL, gUnknown_83E3C98, TranslateAnimSpriteToTargetMonLocation + +gUnknown_83E3CB8:: @ 83E3CB8 + spr_template 10164, 10164, gOamData_83ACAD8, gDummySpriteAnimTable, NULL, gUnknown_83E3C98, TranslateAnimSpriteToTargetMonLocation + +gUnknown_83E3CD0:: @ 83E3CD0 + spr_template 10260, 10260, gOamData_83ACAE0, gDummySpriteAnimTable, NULL, gUnknown_83E3C98, TranslateAnimSpriteToTargetMonLocation + +gUnknown_83E3CE8:: @ 83E3CE8 + spr_template 10288, 10288, gOamData_83ACAD8, gDummySpriteAnimTable, NULL, gUnknown_83E3C9C, sub_80AC6D8 + +gUnknown_83E3D00:: @ 83E3D00 + spr_template 10175, 10175, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimThrowProjectile gUnknown_83E3D18:: @ 83E3D18 - .incbin "baserom.gba", 0x3E3D18, 0x38 + spr_template 10178, 10178, gOamData_83ACB00, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A79E8 + +gUnknown_83E3D30:: @ 83E3D30 + obj_image_anim_frame 8, 1 + obj_image_anim_end + +gUnknown_83E3D38:: @ 83E3D38 + .4byte gUnknown_83E3D30 + +gUnknown_83E3D3C:: @ 83E3D3C + obj_rot_scal_anim_frame 0, 0, 10, 1 + obj_rot_scal_anim_jump 0 + +gUnknown_83E3D4C:: @ 83E3D4C + .4byte gUnknown_83E3D3C + +gUnknown_83E3D50:: @ 83E3D50 + spr_template 10100, 10100, gOamData_83ACA30, gUnknown_83E3D38, NULL, gDummySpriteAffineAnimTable, sub_80A7A88 + +gUnknown_83E3D68:: @ 83E3D68 + spr_template 10100, 10100, gOamData_83ACA30, gUnknown_83E3D38, NULL, gUnknown_83E3D4C, sub_80A7B3C + +gUnknown_83E3D80:: @ 83E3D80 + obj_rot_scal_anim_frame 0, 0, 20, 1 + obj_rot_scal_anim_jump 0 + +gUnknown_83E3D90:: @ 83E3D90 + .4byte gUnknown_83E3D80 + +gUnknown_83E3D94:: @ 83E3D94 + spr_template 10006, 10006, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E3D90, sub_80A7BC4 + +gUnknown_83E3DAC:: @ 83E3DAC + obj_rot_scal_anim_frame 16, 256, 0, 0 + obj_rot_scal_anim_frame 4, 0, 0, 40 + obj_rot_scal_anim_end + +gUnknown_83E3DC4:: @ 83E3DC4 + .4byte gUnknown_83E3DAC + +gUnknown_83E3DC8:: @ 83E3DC8 + spr_template 10009, 10009, gOamData_83ACA80, gDummySpriteAnimTable, NULL, gUnknown_83E3DC4, sub_80A7D04 -gUnknown_83E3D50:: - .incbin "baserom.gba", 0x3E3D50, 0x18 +gUnknown_83E3DE0:: @ 83E3DE0 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 16, 3 + obj_image_anim_frame 32, 20 + obj_image_anim_end + +gUnknown_83E3DF0:: @ 83E3DF0 + obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_frame 32, 20, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end -gUnknown_83E3D68:: - .incbin "baserom.gba", 0x3E3D68, 0x2C +gUnknown_83E3E00:: @ 83E3E00 + .4byte gUnknown_83E3DE0 + .4byte gUnknown_83E3DF0 -gUnknown_83E3D94:: - .incbin "baserom.gba", 0x3E3D94, 0x34 +gUnknown_83E3E08:: @ 83E3E08 + spr_template 10138, 10138, gOamData_83ACAF8, gUnknown_83E3E00, NULL, gDummySpriteAffineAnimTable, sub_80A7D64 + +gUnknown_83E3E20:: @ 83E3E20 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 32, 1 + obj_image_anim_end -gUnknown_83E3DC8:: - .incbin "baserom.gba", 0x3E3DC8, 0x40 +gUnknown_83E3E30:: @ 83E3E30 + obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_frame 32, 1, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_end -gUnknown_83E3E08:: - .incbin "baserom.gba", 0x3E3E08, 0x40 +gUnknown_83E3E40:: @ 83E3E40 + .4byte gUnknown_83E3E20 + .4byte gUnknown_83E3E30 -gUnknown_83E3E48:: - .incbin "baserom.gba", 0x3E3E48, 0x18 +gUnknown_83E3E48:: @ 83E3E48 + spr_template 10138, 10138, gOamData_83ACAF8, gUnknown_83E3E40, NULL, gDummySpriteAffineAnimTable, sub_80A7E14 gUnknown_83E3E60:: @ 83E3E60 - .incbin "baserom.gba", 0x3E3E60, 0x20 + obj_rot_scal_anim_frame -6, 4, 0, 8 + obj_rot_scal_anim_frame 10, -10, 0, 8 + obj_rot_scal_anim_frame -4, 6, 0, 8 + obj_rot_scal_anim_end gUnknown_83E3E80:: @ 83E3E80 - .incbin "baserom.gba", 0x3E3E80, 0x50 + obj_rot_scal_anim_frame -4, -5, 0, 12 + obj_rot_scal_anim_frame 0, 0, 0, 24 + obj_rot_scal_anim_frame 4, 5, 0, 12 + obj_rot_scal_anim_end + +gUnknown_83E3EA0:: @ 83E3EA0 + obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 4, 40, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 12, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E3EB4:: @ 83E3EB4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 4, 40 + obj_image_anim_frame 8, 4 + obj_image_anim_frame 12, 4 + obj_image_anim_end + +gUnknown_83E3EC8:: @ 83E3EC8 + .4byte gUnknown_83E3EA0 + .4byte gUnknown_83E3EB4 -gUnknown_83E3ED0:: - .incbin "baserom.gba", 0x3E3ED0, 0x34 +gUnknown_83E3ED0:: @ 83E3ED0 + spr_template 10086, 10086, gOamData_83AC9D0, gUnknown_83E3EC8, NULL, gDummySpriteAffineAnimTable, sub_80A851C -gUnknown_83E3F04:: - .incbin "baserom.gba", 0x3E3F04, 0x18 +gUnknown_83E3EE8:: @ 83E3EE8 + obj_rot_scal_anim_frame 11, 11, 0, 8 + obj_rot_scal_anim_frame -11, -11, 0, 8 + obj_rot_scal_anim_end + +gUnknown_83E3F00:: @ 83E3F00 + .4byte gUnknown_83E3EE8 + +gUnknown_83E3F04:: @ 83E3F04 + spr_template 10087, 10087, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E3F00, sub_80A85AC gUnknown_83E3F1C:: @ 83E3F1C - .incbin "baserom.gba", 0x3E3F1C, 0x30 + obj_rot_scal_anim_frame -10, 9, 0, 7 + obj_rot_scal_anim_frame 20, -20, 0, 7 + obj_rot_scal_anim_frame -20, 20, 0, 7 + obj_rot_scal_anim_frame 10, -9, 0, 7 + obj_rot_scal_anim_loop 2 + obj_rot_scal_anim_end + +gUnknown_83E3F4C:: @ 83E3F4C + spr_template 10002, 10002, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8A1C + +gUnknown_83E3F64:: @ 83E3F64 + spr_template 10197, 10197, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimSnoreZ + +gUnknown_83E3F7C:: @ 83E3F7C + obj_image_anim_frame 0, 5 + obj_image_anim_frame 16, 5 + obj_image_anim_frame 32, 5 + obj_image_anim_frame 48, 5 + obj_image_anim_end + +gUnknown_83E3F90:: @ 83E3F90 + .4byte gUnknown_83E3F7C + +gUnknown_83E3F94:: @ 83E3F94 + spr_template 10198, 10198, gOamData_83AC9D8, gUnknown_83E3F90, NULL, gDummySpriteAffineAnimTable, AnimSpriteOnMonPos + +gUnknown_83E3FAC:: @ 83E3FAC + obj_rot_scal_anim_frame 0, 0, 248, 2 + obj_rot_scal_anim_frame 0, 0, 8, 4 + obj_rot_scal_anim_frame 0, 0, 248, 2 + obj_rot_scal_anim_jump 0 + +gUnknown_83E3FCC:: @ 83E3FCC + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_end + +gUnknown_83E3FDC:: @ 83E3FDC + obj_rot_scal_anim_frame -8, 4, 0, 8 + obj_rot_scal_anim_loop 0 + obj_rot_scal_anim_frame 16, -8, 0, 8 + obj_rot_scal_anim_frame -16, 8, 0, 8 + obj_rot_scal_anim_loop 1 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_frame 0, 0, 0, 15 + obj_rot_scal_anim_end + +gUnknown_83E401C:: @ 83E401C + .4byte gUnknown_83E3FAC + .4byte gUnknown_83E3FCC + .4byte gUnknown_83E3FDC -gUnknown_83E3F4C:: - .incbin "baserom.gba", 0x3E3F4C, 0x18 +gUnknown_83E4028:: @ 83E4028 + spr_template 10202, 10202, gOamData_83ACBB8, gDummySpriteAnimTable, NULL, gUnknown_83E401C, sub_80A8F38 -gUnknown_83E3F64:: - .incbin "baserom.gba", 0x3E3F64, 0x30 +gUnknown_83E4040:: @ 83E4040 + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_frame 16, 16, 0, 30 + obj_rot_scal_anim_end 1 -gUnknown_83E3F94:: - .incbin "baserom.gba", 0x3E3F94, 0x94 +gUnknown_83E4058:: @ 83E4058 + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_frame 32, 32, 0, 15 + obj_rot_scal_anim_end 1 -gUnknown_83E4028:: - .incbin "baserom.gba", 0x3E4028, 0x6C +gUnknown_83E4070:: @ 83E4070 + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_frame 11, 11, 0, 45 + obj_rot_scal_anim_end 1 -gUnknown_83E4094:: - .incbin "baserom.gba", 0x3E4094, 0x34 +gUnknown_83E4088:: @ 83E4088 + .4byte gUnknown_83E4040 + .4byte gUnknown_83E4058 -gUnknown_83E40C8:: - .incbin "baserom.gba", 0x3E40C8, 0x18 +gUnknown_83E4090:: @ 83E4090 + .4byte gUnknown_83E4070 -gUnknown_83E40E0:: - .incbin "baserom.gba", 0x3E40E0, 0x18 +gUnknown_83E4094:: @ 83E4094 + spr_template 10203, 10203, gOamData_83ACAA0, gDummySpriteAnimTable, NULL, gUnknown_83E4088, AnimSpriteOnMonPos -gUnknown_83E40F8:: - .incbin "baserom.gba", 0x3E40F8, 0x18 +gUnknown_83E40AC:: @ 83E40AC + obj_rot_scal_anim_frame 512, 512, 0, 0 + obj_rot_scal_anim_frame -16, -16, 0, 30 + obj_rot_scal_anim_end 1 -gUnknown_83E4110:: - .incbin "baserom.gba", 0x3E4110, 0x18 +gUnknown_83E40C4:: @ 83E40C4 + .4byte gUnknown_83E40AC + +gUnknown_83E40C8:: @ 83E40C8 + spr_template 10203, 10203, gOamData_83ACBC0, gDummySpriteAnimTable, NULL, gUnknown_83E40C4, AnimSpriteOnMonPos + +gUnknown_83E40E0:: @ 83E40E0 + spr_template 10203, 10203, gOamData_83ACBC0, gDummySpriteAnimTable, NULL, gUnknown_83E4088, sub_80A8BC4 + +gUnknown_83E40F8:: @ 83E40F8 + spr_template 10203, 10203, gOamData_83ACBC0, gDummySpriteAnimTable, NULL, gUnknown_83E4090, sub_80A8CA4 + +gUnknown_83E4110:: @ 83E4110 + spr_template 10203, 10203, gOamData_83ACBC0, gDummySpriteAnimTable, NULL, gUnknown_83E4088, sub_80A8EE8 gUnknown_83E4128:: @ 83E4128 - .incbin "baserom.gba", 0x3E4128, 0x2C + obj_rot_scal_anim_frame 96, -13, 0, 8 + obj_rot_scal_anim_end + +gUnknown_83E4138:: @ 83E4138 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 4, 3 + obj_image_anim_frame 8, 3 + obj_image_anim_frame 4, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_end + +gUnknown_83E4150:: @ 83E4150 + .4byte gUnknown_83E4138 gUnknown_83E4154:: @ 83E4154 - .incbin "baserom.gba", 0x3E4154, 0x18 + spr_template 10207, 10207, gOamData_83AC9D0, gUnknown_83E4150, NULL, gDummySpriteAffineAnimTable, sub_80A9648 gUnknown_83E416C:: @ 83E416C - .incbin "baserom.gba", 0x3E416C, 0x44 + .byte 0x1e, 0x1c, 0xec, 0x18, 0x10, 0x1a, 0xf6, 0x1c + +gUnknown_83E4174:: @ 83E4174 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 32, 15 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 15, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0, 6 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 32, 15 + obj_image_anim_frame 16, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + +gUnknown_83E41AC:: @ 83E41AC + .4byte gUnknown_83E4174 -gUnknown_83E41B0:: - .incbin "baserom.gba", 0x3E41B0, 0x18 +gUnknown_83E41B0:: @ 83E41B0 + spr_template 10205, 10205, gOamData_83AC9D8, gUnknown_83E41AC, NULL, gDummySpriteAffineAnimTable, AnimSpriteOnMonPos gUnknown_83E41C8:: @ 83E41C8 - .incbin "baserom.gba", 0x3E41C8, 0x8 + .2byte 10206, 9999, 9998 -gUnknown_83E41D0:: - .incbin "baserom.gba", 0x3E41D0, 0x18 + .align 2 +gUnknown_83E41D0:: @ 83E41D0 + spr_template 10206, 10206, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A97E8 -gUnknown_83E41E8:: - .incbin "baserom.gba", 0x3E41E8, 0x18 +gUnknown_83E41E8:: @ 83E41E8 + spr_template 10210, 10210, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9860 gUnknown_83E4200:: @ 83E4200 - .incbin "baserom.gba", 0x3E4200, 0x18 + obj_rot_scal_anim_frame 10, -13, 0, 10 + obj_rot_scal_anim_frame -10, 13, 0, 10 + obj_rot_scal_anim_end + +gUnknown_83E4218:: @ 83E4218 + spr_template 10216, 10216, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9B40 -gUnknown_83E4218:: - .incbin "baserom.gba", 0x3E4218, 0x18 +gUnknown_83E4230:: @ 83E4230 + spr_template 10216, 10216, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9BC4 -gUnknown_83E4230:: - .incbin "baserom.gba", 0x3E4230, 0x18 +gUnknown_83E4248:: @ 83E4248 + spr_template 10216, 10216, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9C4C -gUnknown_83E4248:: - .incbin "baserom.gba", 0x3E4248, 0x34 +gUnknown_83E4260:: @ 83E4260 + obj_rot_scal_anim_frame 128, 128, 0, 0 + obj_rot_scal_anim_frame 8, 8, 0, 1 + obj_rot_scal_anim_jump 1 -gUnknown_83E427C:: - .incbin "baserom.gba", 0x3E427C, 0x18 +gUnknown_83E4278:: @ 83E4278 + .4byte gUnknown_83E4260 -gUnknown_83E4294:: - .incbin "baserom.gba", 0x3E4294, 0x34 +gUnknown_83E427C:: @ 83E427C + spr_template 10217, 10217, gOamData_83ACA30, gDummySpriteAnimTable, NULL, gUnknown_83E4278, sub_80AA174 -gUnknown_83E42C8:: - .incbin "baserom.gba", 0x3E42C8, 0x34 +gUnknown_83E4294:: @ 83E4294 + spr_template 10217, 10217, gOamData_83ACA90, gDummySpriteAnimTable, NULL, gUnknown_83E4278, sub_80AA2B0 -gUnknown_83E42FC:: - .incbin "baserom.gba", 0x3E42FC, 0x24 +gUnknown_83E42AC:: @ 83E42AC + obj_rot_scal_anim_frame 128, 128, 0, 0 + obj_rot_scal_anim_frame 8, 8, 0, 1 + obj_rot_scal_anim_jump 1 -gUnknown_83E4320:: - .incbin "baserom.gba", 0x3E4320, 0x18 +gUnknown_83E42C4:: @ 83E42C4 + .4byte gUnknown_83E42AC -gUnknown_83E4338:: - .incbin "baserom.gba", 0x3E4338, 0x30 +gUnknown_83E42C8:: @ 83E42C8 + spr_template 10237, 10237, gOamData_83ACA88, gDummySpriteAnimTable, NULL, gUnknown_83E42C4, sub_80AA37C -gUnknown_83E4368:: - .incbin "baserom.gba", 0x3E4368, 0x48 +gUnknown_83E42E0:: @ 83E42E0 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 4, 4 + obj_image_anim_frame 8, 4 + obj_image_anim_frame 4, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_end -gUnknown_83E43B0:: - .incbin "baserom.gba", 0x3E43B0, 0x48 +gUnknown_83E42F8:: @ 83E42F8 + .4byte gUnknown_83E42E0 -gUnknown_83E43F8:: - .incbin "baserom.gba", 0x3E43F8, 0x18 +gUnknown_83E42FC:: @ 83E42FC + spr_template 10218, 10218, gOamData_83AC9D0, gUnknown_83E42F8, NULL, gDummySpriteAffineAnimTable, sub_80AA3F0 -gUnknown_83E4410:: @ 83E4410 - .incbin "baserom.gba", 0x3E4410, 0x20 +gUnknown_83E4314:: @ 83E4314 + obj_image_anim_frame 0, 24 + obj_image_anim_end + +gUnknown_83E431C:: @ 83E431C + .4byte gUnknown_83E4314 + +gUnknown_83E4320:: @ 83E4320 + spr_template 10220, 10220, gOamData_83AC9D8, gUnknown_83E431C, NULL, gDummySpriteAffineAnimTable, sub_80AA408 + +gUnknown_83E4338:: @ 83E4338 + spr_template 10219, 10219, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA508 + +gUnknown_83E4350:: @ 83E4350 + obj_image_anim_frame 0, 3 + obj_image_anim_jump 0 + +gUnknown_83E4358:: @ 83E4358 + obj_image_anim_frame 16, 3 + obj_image_anim_jump 0 + +gUnknown_83E4360:: @ 83E4360 + .4byte gUnknown_83E4350 + .4byte gUnknown_83E4358 + +gUnknown_83E4368:: @ 83E4368 + spr_template 10221, 10221, gOamData_83AC9D8, gUnknown_83E4360, NULL, gDummySpriteAffineAnimTable, sub_80AA58C -gUnknown_83E4430:: - .incbin "baserom.gba", 0x3E4430, 0x54 +gUnknown_83E4380:: @ 83E4380 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 16, 4 + obj_image_anim_frame 32, 4 + obj_image_anim_frame 48, 4 + obj_image_anim_end + +gUnknown_83E4394:: @ 83E4394 + obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E43A8:: @ 83E43A8 + .4byte gUnknown_83E4380 + .4byte gUnknown_83E4394 + +gUnknown_83E43B0:: @ 83E43B0 + spr_template 10222, 10222, gOamData_83AC9D8, gUnknown_83E43A8, NULL, gDummySpriteAffineAnimTable, sub_80AA6B8 + +gUnknown_83E43C8:: @ 83E43C8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 16, 8 + obj_image_anim_frame 32, 8 + obj_image_anim_frame 16, 8 + obj_image_anim_end + +gUnknown_83E43DC:: @ 83E43DC + obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 32, 8, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_end + +gUnknown_83E43F0:: @ 83E43F0 + .4byte gUnknown_83E43C8 + .4byte gUnknown_83E43DC -gUnknown_83E4484:: - .incbin "baserom.gba", 0x3E4484, 0x18 +gUnknown_83E43F8:: @ 83E43F8 + spr_template 10215, 10215, gOamData_83AC9D8, gUnknown_83E43F0, NULL, gDummySpriteAffineAnimTable, sub_80AA708 -gUnknown_83E449C:: - .incbin "baserom.gba", 0x3E449C, 0x40 +gUnknown_83E4410:: @ 83E4410 + obj_rot_scal_anim_frame -12, 8, 0, 4 + obj_rot_scal_anim_frame 20, -20, 0, 4 + obj_rot_scal_anim_frame -8, 12, 0, 4 + obj_rot_scal_anim_end + +gUnknown_83E4430:: @ 83E4430 + spr_template 10225, 10225, gOamData_83AC9D8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA838 + +gUnknown_83E4448:: @ 83E4448 + obj_rot_scal_anim_frame 0, 0, 0, 5 + obj_rot_scal_anim_end + +gUnknown_83E4458:: @ 83E4458 + obj_rot_scal_anim_frame 0, 0, 248, 16 + obj_rot_scal_anim_end 1 + +gUnknown_83E4468:: @ 83E4468 + obj_rot_scal_anim_frame 0, 0, 8, 16 + obj_rot_scal_anim_end 1 + +gUnknown_83E4478:: @ 83E4478 + .4byte gUnknown_83E4448 + .4byte gUnknown_83E4458 + .4byte gUnknown_83E4468 + +gUnknown_83E4484:: @ 83E4484 + spr_template 10206, 10206, gOamData_83ACA30, gUnknown_83E3844, NULL, gUnknown_83E4478, sub_80AA998 + +gUnknown_83E449C:: @ 83E449C + spr_template 10206, 10206, gOamData_83ACA30, gUnknown_83E3844, NULL, gUnknown_83E4478, sub_80AA938 + +gUnknown_83E44B4:: @ 83E44B4 + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_end + +gUnknown_83E44C4:: @ 83E44C4 + obj_rot_scal_anim_frame 512, 256, 0, 0 + obj_rot_scal_anim_end + +gUnknown_83E44D4:: @ 83E44D4 + .4byte gUnknown_83E44B4 + .4byte gUnknown_83E44C4 + +gUnknown_83E44DC:: @ 83E44DC + spr_template 10244, 10244, gOamData_83ACBE0, gDummySpriteAnimTable, NULL, gUnknown_83E44D4, sub_80AAAE4 + +gUnknown_83E44F4:: @ 83E44F4 + .incbin "graphics/battle_anims/unk_83E4874.4bpp" + +gUnknown_83E4874:: + .incbin "graphics/battle_anims/unk_83E4874.bin" + +gUnknown_83E5874:: @ 83E5874 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 8, 2 + obj_image_anim_frame 16, 2 + obj_image_anim_frame 24, 6 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 40, 2 + obj_image_anim_frame 48, 2 + obj_image_anim_end -gUnknown_83E44DC:: - .incbin "baserom.gba", 0x3E44DC, 0x13BC +gUnknown_83E5894:: @ 83E5894 + .4byte gUnknown_83E5874 gUnknown_83E5898:: @ 83E5898 - .incbin "baserom.gba", 0x3E5898, 0x48 + spr_template 10115, 10115, gOamData_83ACA18, gUnknown_83E5894, NULL, gDummySpriteAffineAnimTable, sub_80AAC54 + +gUnknown_83E58B0:: @ 83E58B0 + obj_rot_scal_anim_frame -5, -5, 0, 10 + obj_rot_scal_anim_frame 5, 5, 0, 10 + obj_rot_scal_anim_jump 0 + +gUnknown_83E58C8:: @ 83E58C8 + .4byte gUnknown_83E58B0 + +gUnknown_83E58CC:: @ 83E58CC + obj_image_anim_frame 0, 1 + obj_image_anim_frame 4, 5 + obj_image_anim_frame 8, 5 + obj_image_anim_end + +gUnknown_83E58DC:: @ 83E58DC + .4byte gUnknown_83E58CC + +gUnknown_83E58E0:: @ 83E58E0 + spr_template 10146, 10146, gOamData_83ACB50, gUnknown_83E58DC, NULL, gUnknown_83E58C8, sub_80AAC98 -gUnknown_83E58E0:: - .incbin "baserom.gba", 0x3E58E0, 0x4C +gUnknown_83E58F8:: @ 83E58F8 + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E5900:: @ 83E5900 + obj_image_anim_frame 4, 1 + obj_image_anim_end -gUnknown_83E592C:: - .incbin "baserom.gba", 0x3E592C, 0x2C +gUnknown_83E5908:: @ 83E5908 + .4byte gUnknown_83E58F8 + .4byte gUnknown_83E5900 + +gUnknown_83E5910:: @ 83E5910 + obj_rot_scal_anim_frame 0, 0, 0, 1 + obj_rot_scal_anim_frame 96, 96, 0, 1 + obj_rot_scal_anim_end + +gUnknown_83E5928:: @ 83E5928 + .4byte gUnknown_83E5910 + +gUnknown_83E592C:: @ 83E592C + spr_template 10140, 10140, gOamData_83ACAC8, gUnknown_83E5908, NULL, gUnknown_83E5928, sub_80AAE84 + +gUnknown_83E5944:: @ 83E5944 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 4, 1 + obj_image_anim_frame 8, 1 + obj_image_anim_frame 12, 1 + obj_image_anim_jump 0 gUnknown_83E5958:: @ 83E5958 - .incbin "baserom.gba", 0x3E5958, 0x4 + .4byte gUnknown_83E5944 + +gUnknown_83E595C:: @ 83E595C + spr_template 10149, 10149, gOamData_83ACAF0, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024 + +gUnknown_83E5974:: @ 83E5974 + spr_template 10259, 10259, gOamData_83ACAF0, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024 + +gUnknown_83E598C:: @ 83E598C + spr_template 10264, 10264, gOamData_83AC9C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024 + +gUnknown_83E59A4:: @ 83E59A4 + spr_template 10265, 10265, gOamData_83AC9C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024 + +gUnknown_83E59BC:: @ 83E59BC + obj_image_anim_frame 16, 2 + obj_image_anim_frame 32, 2 + obj_image_anim_frame 48, 2 + obj_image_anim_jump 0 + +gUnknown_83E59CC:: @ 83E59CC + .4byte gUnknown_83E59BC + +gUnknown_83E59D0:: @ 83E59D0 + spr_template 10029, 10029, gOamData_83AC9D8, gUnknown_83E59CC, NULL, gDummySpriteAffineAnimTable, sub_80AB024 + +gUnknown_83E59E8:: @ 83E59E8 + spr_template 10165, 10165, gOamData_83ACAD8, gDummySpriteAnimTable, NULL, gUnknown_83E3C98, sub_80AB024 -gUnknown_83E595C:: - .incbin "baserom.gba", 0x3E595C, 0x18 +gUnknown_83E5A00:: @ 83E5A00 + obj_rot_scal_anim_frame 3, 3, 10, 50 + obj_rot_scal_anim_frame 0, 0, 0, 10 + obj_rot_scal_anim_frame -20, -20, 246, 20 + obj_rot_scal_anim_end -gUnknown_83E5974:: - .incbin "baserom.gba", 0x3E5974, 0x18 +gUnknown_83E5A20:: @ 83E5A20 + obj_rot_scal_anim_frame 336, 336, 0, 0 + obj_rot_scal_anim_end -gUnknown_83E598C:: - .incbin "baserom.gba", 0x3E598C, 0x18 +gUnknown_83E5A30:: @ 83E5A30 + .4byte gUnknown_83E5A00 -gUnknown_83E59A4:: - .incbin "baserom.gba", 0x3E59A4, 0x2C +gUnknown_83E5A34:: @ 83E5A34 + .4byte gUnknown_83E5A20 -gUnknown_83E59D0:: - .incbin "baserom.gba", 0x3E59D0, 0x18 +gUnknown_83E5A38:: @ 83E5A38 + spr_template 10149, 10149, gOamData_83ACBB0, gUnknown_83E5958, NULL, gUnknown_83E5A30, sub_80AB168 -gUnknown_83E59E8:: - .incbin "baserom.gba", 0x3E59E8, 0x50 +gUnknown_83E5A50:: @ 83E5A50 + spr_template 10149, 10149, gOamData_83ACBB0, gUnknown_83E5958, NULL, gUnknown_83E5A34, sub_80AB1F8 -gUnknown_83E5A38:: - .incbin "baserom.gba", 0x3E5A38, 0x18 +gUnknown_83E5A68:: @ 83E5A68 + obj_image_anim_frame 0, 1 + obj_image_anim_end + +gUnknown_83E5A70:: @ 83E5A70 + obj_image_anim_frame 4, 1 + obj_image_anim_end -gUnknown_83E5A50:: - .incbin "baserom.gba", 0x3E5A50, 0x28 +gUnknown_83E5A78:: @ 83E5A78 + .4byte gUnknown_83E5A68 -gUnknown_83E5A78:: - .incbin "baserom.gba", 0x3E5A78, 0x8 +gUnknown_83E5A7C:: @ 83E5A7C + .4byte gUnknown_83E5A70 -gUnknown_83E5A80:: - .incbin "baserom.gba", 0x3E5A80, 0x18 +gUnknown_83E5A80:: @ 83E5A80 + spr_template 10155, 10155, gOamData_83ACAF0, gUnknown_83E5A78, NULL, gDummySpriteAffineAnimTable, AnimThrowProjectile -gUnknown_83E5A98:: - .incbin "baserom.gba", 0x3E5A98, 0x18 +gUnknown_83E5A98:: @ 83E5A98 + spr_template 10155, 10155, gOamData_83ACBB0, gUnknown_83E5A7C, NULL, gUnknown_83E6A80, sub_80AB2CC -gUnknown_83E5AB0:: - .incbin "baserom.gba", 0x3E5AB0, 0x18 +gUnknown_83E5AB0:: @ 83E5AB0 + spr_template 10141, 10141, gOamData_83AC9C8, gUnknown_83E6330, NULL, gDummySpriteAffineAnimTable, sub_80AB308 -gUnknown_83E5AC8:: - .incbin "baserom.gba", 0x3E5AC8, 0x18 +gUnknown_83E5AC8:: @ 83E5AC8 + spr_template 10155, 10155, gOamData_83AC9C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABA78 gUnknown_83E5AE0:: @ 83E5AE0 - .incbin "baserom.gba", 0x3E5AE0, 0x90 + spr_template 10268, 10268, gOamData_83AC9C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABF60 + +gUnknown_83E5AF8:: @ 83E5AF8 + obj_image_anim_frame 8, 1 + obj_image_anim_end + +gUnknown_83E5B00:: @ 83E5B00 + obj_image_anim_frame 9, 1 + obj_image_anim_end + +gUnknown_83E5B08:: @ 83E5B08 + obj_image_anim_frame 4, 1 + obj_image_anim_end + +gUnknown_83E5B10:: @ 83E5B10 + .4byte gUnknown_83E5AF8 + .4byte gUnknown_83E5B00 + +gUnknown_83E5B18:: @ 83E5B18 + .4byte gUnknown_83E5B08 + +gUnknown_83E5B1C:: @ 83E5B1C + obj_rot_scal_anim_frame 256, 256, 0, 0 + obj_rot_scal_anim_frame -10, -10, 0, 15 + obj_rot_scal_anim_end + +gUnknown_83E5B34:: @ 83E5B34 + obj_rot_scal_anim_frame 224, 224, 0, 0 + obj_rot_scal_anim_frame -8, -8, 0, 15 + obj_rot_scal_anim_end + +gUnknown_83E5B4C:: @ 83E5B4C + obj_rot_scal_anim_frame 336, 336, 0, 0 + obj_rot_scal_anim_frame 0, 0, 0, 15 + obj_rot_scal_anim_end + +gUnknown_83E5B64:: @ 83E5B64 + .4byte gUnknown_83E5B1C + .4byte gUnknown_83E5B34 + +gUnknown_83E5B6C:: @ 83E5B6C + .4byte gUnknown_83E5B4C -gUnknown_83E5B70:: - .incbin "baserom.gba", 0x3E5B70, 0x18 +gUnknown_83E5B70:: @ 83E5B70 + spr_template 10155, 10155, gOamData_83AC9C8, gUnknown_83E5B10, NULL, gDummySpriteAffineAnimTable, sub_80AC624 gUnknown_83E5B88:: @ 83E5B88 - .incbin "baserom.gba", 0x3E5B88, 0x18 + spr_template 10155, 10155, gOamData_83ACA28, gUnknown_83E5B10, NULL, gUnknown_83E5B64, sub_80AC698 gUnknown_83E5BA0:: @ 83E5BA0 - .incbin "baserom.gba", 0x3E5BA0, 0x18 + spr_template 10155, 10155, gOamData_83ACA30, gUnknown_83E5B18, NULL, gUnknown_83E5B6C, sub_8077350 diff --git a/data/battle_anim_special.s b/data/battle_anim_special.s index 341f6b4df..967e27674 100644 --- a/data/battle_anim_special.s +++ b/data/battle_anim_special.s @@ -1,37 +1,148 @@ #include "constants/region_map.h" #include "constants/flags.h" #include "constants/moves.h" +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) .include "asm/macros.inc" .include "constants/constants.inc" .section .rodata .align 2 gUnknown_840BF3C:: @ 840BF3C - .incbin "baserom.gba", 0x40BF3C, 0xC + .byte 10, 2, -3, 0 + .byte 15, 0, -4, 0 + .byte -10, 2, -4, 0 gUnknown_840BF48:: @ 840BF48 - .incbin "baserom.gba", 0x40BF48, 0x60 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55020 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55021 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55022 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55023 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55024 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55025 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55026 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55027 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55028 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55029 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55030 + obj_tiles gFile_graphics_battle_anims_sprites_particles_sheet, 0x0100, 55031 gUnknown_840BFA8:: @ 840BFA8 - .incbin "baserom.gba", 0x40BFA8, 0xC0 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55020 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55021 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55022 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55023 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55024 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55025 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55026 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55027 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55028 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55029 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55030 + obj_pal gFile_graphics_battle_anims_sprites_136_palette, 55031 + +gAnimCmd_840C008:: @ 840C008 + obj_image_anim_frame 0x0000, 1 + obj_image_anim_frame 0x0001, 1 + obj_image_anim_frame 0x0002, 1 + obj_image_anim_frame 0x0000, 1, OBJ_IMAGE_ANIM_H_FLIP + obj_image_anim_frame 0x0002, 1 + obj_image_anim_frame 0x0001, 1 + obj_image_anim_jump 0x0000 + +gAnimCmd_840C024:: @ 840C024 + obj_image_anim_frame 0x0003, 1 + obj_image_anim_end + +gAnimCmd_840C02C:: @ 840C02C + obj_image_anim_frame 0x0004, 1 + obj_image_anim_end + +gAnimCmd_840C034:: @ 840C034 + obj_image_anim_frame 0x0005, 1 + obj_image_anim_end + +gAnimCmd_840C03C:: @ 840C03C + obj_image_anim_frame 0x0006, 4 + obj_image_anim_frame 0x0007, 4 + obj_image_anim_jump 0x0000 + +gAnimCmd_840C048:: @ 840C048 + obj_image_anim_frame 0x0007, 4 + obj_image_anim_end + +gSpriteAnimTable_840C050:: + .4byte gAnimCmd_840C008 + .4byte gAnimCmd_840C024 + .4byte gAnimCmd_840C02C + .4byte gAnimCmd_840C034 + .4byte gAnimCmd_840C03C + .4byte gAnimCmd_840C048 gUnknown_840C068:: @ 840C068 - .incbin "baserom.gba", 0x40C068, 0xC + .byte 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x02, 0x03, 0x05, 0x05, 0x04, 0x04 gUnknown_840C074:: @ 840C074 - .incbin "baserom.gba", 0x40C074, 0x30 + .4byte sub_80F06A4 + .4byte sub_80F0C28 + .4byte sub_80F0A20 + .4byte sub_80F0B20 + .4byte sub_80F0F10 + .4byte sub_80F0A20 + .4byte sub_80F091C + .4byte sub_80F0B20 + .4byte sub_80F0DB4 + .4byte sub_80F0818 + .4byte sub_80F0C28 + .4byte sub_80F103C gUnknown_840C0A4:: @ 840C0A4 - .incbin "baserom.gba", 0x40C0A4, 0x60 + spr_template 55020, 55020, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + +gUnknown_840C0BC:: + spr_template 55021, 55021, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55022, 55022, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55023, 55023, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_840C104:: @ 840C104 - .incbin "baserom.gba", 0x40C104, 0xC0 + spr_template 55024, 55024, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55025, 55025, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55026, 55026, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55027, 55027, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55028, 55028, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55029, 55029, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55030, 55030, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 55031, 55031, gOamData_83AC9C8, gSpriteAnimTable_840C050, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_840C1C4:: @ 840C1C4 - .incbin "baserom.gba", 0x40C1C4, 0x28 + .2byte RGB(31, 22, 30) + .2byte RGB(16, 23, 30) + .2byte RGB(23, 30, 20) + .2byte RGB(31, 31, 15) + .2byte RGB(23, 20, 28) + .2byte RGB(21, 31, 25) + .2byte RGB(12, 25, 30) + .2byte RGB(30, 27, 10) + .2byte RGB(31, 24, 16) + .2byte RGB(29, 30, 30) + .2byte RGB(31, 17, 10) + .2byte RGB(31, 9, 10) + +gUnknown_840C1DC:: @ 840C1DC + .byte 0x00, 0x00, 0x01, 0x02, 0x03 + .byte 0x04, 0x01, 0x01, 0x00, 0x01 + .byte 0x03, 0x05, 0x06, 0x05, 0x04 + .align 2 gUnknown_840C1EC:: - .incbin "baserom.gba", 0x40C1EC, 0x24 + spr_template 10269, 10269, gOamData_83AC9D0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F1B3C + +gUnknown_840C204:: + obj_image_anim_frame 0x0040, 1 + obj_image_anim_end + +gSpriteAnimTable_840C20C:: + .4byte gUnknown_840C204 gUnknown_840C210:: - .incbin "baserom.gba", 0x40C210, 0x18 + spr_template 10058, 10058, gOamData_83AC9D8, gSpriteAnimTable_840C20C, NULL, gDummySpriteAffineAnimTable, sub_80F1B3C + diff --git a/data/evolution_graphics.s b/data/evolution_graphics.s deleted file mode 100644 index 08276557a..000000000 --- a/data/evolution_graphics.s +++ /dev/null @@ -1,22 +0,0 @@ -#include "constants/region_map.h" -#include "constants/flags.h" -#include "constants/moves.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -gUnknown_841EE84:: @ 841EE84 - .incbin "baserom.gba", 0x41EE84, 0x40 - -gUnknown_841EEC4:: @ 841EEC4 - .incbin "baserom.gba", 0x41EEC4, 0x10 - -gUnknown_841EED4:: @ 841EED4 - .incbin "baserom.gba", 0x41EED4, 0x24 - -gUnknown_841EEF8:: @ 841EEF8 - .incbin "baserom.gba", 0x41EEF8, 0x18 - -gUnknown_841EF10:: @ 841EF10 - .incbin "baserom.gba", 0x41EF10, 0x2B8 diff --git a/graphics/battle_anims/unk_83E4874.bin b/graphics/battle_anims/unk_83E4874.bin Binary files differnew file mode 100644 index 000000000..dc2990b0a --- /dev/null +++ b/graphics/battle_anims/unk_83E4874.bin diff --git a/graphics/battle_anims/unk_83E4874.png b/graphics/battle_anims/unk_83E4874.png Binary files differnew file mode 100644 index 000000000..c4a27b929 --- /dev/null +++ b/graphics/battle_anims/unk_83E4874.png diff --git a/graphics/misc/evolution_sprite_841EEA4.png b/graphics/misc/evolution_sprite_841EEA4.png Binary files differnew file mode 100644 index 000000000..c942e5b4f --- /dev/null +++ b/graphics/misc/evolution_sprite_841EEA4.png diff --git a/graphics/unknown/unk_841EF48.png b/graphics/unknown/unk_841EF48.png Binary files differnew file mode 100644 index 000000000..a61833c0a --- /dev/null +++ b/graphics/unknown/unk_841EF48.png diff --git a/include/evolution_scene.h b/include/evolution_scene.h index 6ceed99c1..75b64dadc 100644 --- a/include/evolution_scene.h +++ b/include/evolution_scene.h @@ -8,5 +8,6 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID); void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID); extern void (*gCB2_AfterEvolution)(void); +void sub_80D0474(void); #endif // GUARD_EVOLUTION_SCENE_H diff --git a/ld_script.txt b/ld_script.txt index 50a3b3270..495647b45 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -218,7 +218,7 @@ SECTIONS { src/diploma.o(.text); asm/save_failed_screen.o(.text); asm/clear_save_data_screen.o(.text); - asm/evolution_graphics.o(.text); + src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); src/new_menu_helpers.o(.text); asm/box_party_pokemon_dropdown.o(.text); @@ -494,7 +494,7 @@ SECTIONS { data/strings.o(.rodata); data/save_failed_screen.o(.rodata); data/clear_save_data_screen.o(.rodata); - data/evolution_graphics.o(.rodata); + src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); data/box_party_pokemon_dropdown.o(.rodata); src/map_preview_screen.o(.rodata); diff --git a/src/dark.c b/src/dark.c index b6d13afe3..368f5cbd5 100644 --- a/src/dark.c +++ b/src/dark.c @@ -82,7 +82,7 @@ static const union AffineAnimCmd gUnknown_83E7900[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7910[] = +const union AffineAnimCmd *const gUnknown_83E7910[] = { gUnknown_83E7890, gUnknown_83E78A0, diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c new file mode 100644 index 000000000..da6ada735 --- /dev/null +++ b/src/evolution_graphics.c @@ -0,0 +1,640 @@ +#include "global.h" +#include "trig.h" +#include "random.h" +#include "decompress.h" +#include "palette.h" +#include "sound.h" +#include "task.h" +#include "evolution_scene.h" +#include "evolution_graphics.h" +#include "constants/songs.h" + +static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite); +static void EvoTask_PreEvoSparkleSet1Init(u8 taskId); +static void EvoTask_CreatePreEvoSparkleSet1(u8 taskId); +static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId); +static void EvoTask_PreEvoSparkleSet2Init(u8 taskId); +static void EvoTask_CreatePreEvoSparklesSet2(u8 taskId); +static void EvoTask_PreEvoSparkleSet2Teardown(u8 taskId); +static void EvoTask_PostEvoSparklesSet1Init(u8 taskId); +static void EvoTask_CreatePostEvoSparklesSet1(u8 taskId); +static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId); +static void EvoTask_PostEvoSparklesSet2Init(u8 taskId); +static void EvoTask_CreatePostEvoSparklesSet2(u8 taskId); +static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId); +static void EvoTask_PostEvoSparklesSet2AltInit(u8 taskId); +static void EvoTask_CreatePostEvoSparklesSet2Alt(u8 taskId); +static void EvoTask_PrePostEvoMonSpritesInit(u8 taskId); +static void EvoTask_ChooseNextEvoSpriteAnim(u8 taskId); +static void EvoTask_ShrinkOrExpandEvoSprites(u8 taskId); +static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskId); +static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskId); + +static const u16 sEvolutionSparklesPalData[] = INCBIN_U16("graphics/misc/evolution_sprite_841EEA4.gbapal"); +static const u32 sEvolutionSparklesTileData[] = INCBIN_U32("graphics/misc/evolution_sprite_841EEA4.4bpp.lz"); + +static const struct CompressedSpriteSheet sSpriteSheet_EvolutionSparkles[] = { + { sEvolutionSparklesTileData, 0x20, 1001 }, + {} +}; +static const struct SpritePalette sSpritePalette_EvolutionSparkles[] = { + { sEvolutionSparklesPalData, 1001 }, + {} +}; + +static const struct OamData sOamData_EvolutionSparkles = { + .y = 160, + .priority = 1 +}; + +static const union AnimCmd sSpriteAnim_EvolutionSparkles_0[] = { + ANIMCMD_FRAME(0, 8), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_EvolutionSparkles[] = { + sSpriteAnim_EvolutionSparkles_0 +}; + +static const struct SpriteTemplate sSpriteTemplate_EvolutionSparkles = { + .tileTag = 1001, + .paletteTag = 1001, + .oam = &sOamData_EvolutionSparkles, + .anims = sSpriteAnimTable_EvolutionSparkles, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy_EvoSparkles +}; + +static const u16 sEvolutionSparkleMatrixScales[12] = { + 0x3C0, + 0x380, + 0x340, + 0x300, + 0x2C0, + 0x280, + 0x240, + 0x200, + 0x1C0, + 0x180, + 0x140, + 0x100 +}; + +static const s16 sUnref_841EF28[][2] = { + {-4, 0x10}, + {-3, 0x30}, + {-2, 0x50}, + {-1, 0x70}, + { 1, 0x70}, + { 2, 0x50}, + { 3, 0x30}, + { 4, 0x10} +}; + +static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite) +{ + +} + +static void SetEvoSparklesMatrices(void) +{ + u16 i; + for (i = 0; i < NELEMS(sEvolutionSparkleMatrixScales); i++) + SetOamMatrix(i + 20, sEvolutionSparkleMatrixScales[i], 0, 0, sEvolutionSparkleMatrixScales[i]); +} + +static void SpriteCB_PreEvoSparkleSet1(struct Sprite * sprite) +{ + u8 mnum; + if (sprite->pos1.y > 8) + { + sprite->pos1.y = 88 - sprite->data[7] * sprite->data[7] / 80; + sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]) / 4; + sprite->pos2.x = Cos((u8) sprite->data[6], sprite->data[5]); + sprite->data[6] += 4; + if (sprite->data[7] & 1) + sprite->data[5]--; + sprite->data[7]++; + if (sprite->pos2.y > 0) + sprite->subpriority = 1; + else + sprite->subpriority = 20; + mnum = sprite->data[5] / 4 + 20; + if (mnum > 31) + mnum = 31; + sprite->oam.matrixNum = mnum; + } + else + { + DestroySprite(sprite); + } +} + +static void CreatePreEvoSparkleSet1(u8 a0) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 88, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[5] = 48; + gSprites[spriteId].data[6] = a0; + gSprites[spriteId].data[7] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 31; + gSprites[spriteId].callback = SpriteCB_PreEvoSparkleSet1; + } +} + +static void SpriteCB_PreEvoSparkleSet2(struct Sprite * sprite) +{ + if (sprite->pos1.y < 88) + { + sprite->pos1.y = 8 + sprite->data[7] * sprite->data[7] / 5; + sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]) / 4; + sprite->pos2.x = Cos((u8)sprite->data[6], sprite->data[5]); + sprite->data[5] = Sin((u8)(sprite->data[7] * 4), 40) + 8; + sprite->data[7]++; + } + else + { + DestroySprite(sprite); + } +} + +static void CreatePreEvoSparkleSet2(u8 a0) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 8, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[5] = 8; + gSprites[spriteId].data[6] = a0; + gSprites[spriteId].data[7] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 25; + gSprites[spriteId].subpriority = 1; + gSprites[spriteId].callback = SpriteCB_PreEvoSparkleSet2; + } +} + +static void SpriteCB_PostEvoSparkleSet1(struct Sprite * sprite) +{ + if (sprite->data[5] > 8) + { + sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]); + sprite->pos2.x = Cos((u8)sprite->data[6], sprite->data[5]); + sprite->data[5] -= sprite->data[3]; + sprite->data[6] += 4; + } + else + { + DestroySprite(sprite); + } +} + +static void CreatePostEvoSparkleSet1(u8 a0, u8 a1) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 56, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[3] = a1; + gSprites[spriteId].data[5] = 120; + gSprites[spriteId].data[6] = a0; + gSprites[spriteId].data[7] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 31; + gSprites[spriteId].subpriority = 1; + gSprites[spriteId].callback = SpriteCB_PostEvoSparkleSet1; + } +} + +static void SpriteCB_PostEvoSparkleSet2(struct Sprite * sprite) +{ + u8 mnum; + if ((sprite->data[7] & 3) == 0) + sprite->pos1.y++; + if (sprite->data[6] < 128) + { + sprite->pos2.y = -Sin((u8)sprite->data[6], sprite->data[5]); + sprite->pos1.x = 120 + sprite->data[3] * sprite->data[7] / 3; + sprite->data[6]++; + mnum = 31 - sprite->data[6] * 12 / 128; + if (sprite->data[6] > 64) + { + sprite->subpriority = 1; + } + else + { + sprite->invisible = FALSE; + sprite->subpriority = 20; + if (sprite->data[6] > 112 && (sprite->data[6] & 1)) + sprite->invisible = TRUE; + } + if (mnum < 20) + mnum = 20; + sprite->oam.matrixNum = mnum; + sprite->data[7]++; + } + else + { + DestroySprite(sprite); + } +} + +static void CreatePostEvoSparkleSet2(u8 unused) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 56, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[3] = 3 - (Random() % 7); + gSprites[spriteId].data[5] = 48 + (Random() & 63); + gSprites[spriteId].data[7] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 31; + gSprites[spriteId].subpriority = 20; + gSprites[spriteId].callback = SpriteCB_PostEvoSparkleSet2; + } +} + +void LoadEvoSparkleSpriteAndPal(void) +{ + LoadCompressedSpriteSheetUsingHeap(sSpriteSheet_EvolutionSparkles); + LoadSpritePalettes(sSpritePalette_EvolutionSparkles); +} + +u8 LaunchTask_PreEvoSparklesSet1(u16 a0) +{ + u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet1Init, 0); + gTasks[taskId].data[1] = a0; + return taskId; +} + +static void EvoTask_PreEvoSparkleSet1Init(u8 taskId) +{ + SetEvoSparklesMatrices(); + gTasks[taskId].data[15] = 0; + BeginNormalPaletteFade(3 << gTasks[taskId].data[1], 10, 0, 16, RGB_WHITE); + gTasks[taskId].func = EvoTask_CreatePreEvoSparkleSet1; + PlaySE(SE_W025); +} + +static void EvoTask_CreatePreEvoSparkleSet1(u8 taskId) +{ + u8 i; + if (gTasks[taskId].data[15] < 64) + { + if ((gTasks[taskId].data[15] & 7) == 0) + { + for (i = 0; i < 4; i++) + CreatePreEvoSparkleSet1(2 * (gTasks[taskId].data[15] & 0x78) + 64 * i); + } + gTasks[taskId].data[15]++; + } + else + { + gTasks[taskId].data[15] = 96; + gTasks[taskId].func = EvoTask_WaitForPre1SparklesToGoUp; + } +} + +static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId) +{ + if (gTasks[taskId].data[15] != 0) + gTasks[taskId].data[15]--; + else + DestroyTask(taskId); +} + +u8 LaunchTask_PreEvoSparklesSet2(void) +{ + u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet2Init, 0); + return taskId; +} + +static void EvoTask_PreEvoSparkleSet2Init(u8 taskId) +{ + SetEvoSparklesMatrices(); + gTasks[taskId].data[15] = 0; + gTasks[taskId].func = EvoTask_CreatePreEvoSparklesSet2; + PlaySE(SE_W062B); +} + +static void EvoTask_CreatePreEvoSparklesSet2(u8 taskId) +{ + u8 i; + if (gTasks[taskId].data[15] < 96) + { + if (gTasks[taskId].data[15] < 6) + { + for (i = 0; i < 9; i++) + CreatePreEvoSparkleSet2(16 * i); + } + gTasks[taskId].data[15]++; + } + else + { + gTasks[taskId].func = EvoTask_PreEvoSparkleSet2Teardown; + } +} + +static void EvoTask_PreEvoSparkleSet2Teardown(u8 taskId) +{ + DestroyTask(taskId); +} + +u8 LaunchTask_PostEvoSparklesSet1(void) +{ + u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet1Init, 0); + return taskId; +} + +static void EvoTask_PostEvoSparklesSet1Init(u8 taskId) +{ + SetEvoSparklesMatrices(); + gTasks[taskId].data[15] = 0; + gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet1; + PlaySE(SE_REAPOKE); +} + +static void EvoTask_CreatePostEvoSparklesSet1(u8 taskId) +{ + u8 i; + if (gTasks[taskId].data[15] < 48) + { + if (gTasks[taskId].data[15] == 0) + { + for (i = 0; i < 16; i++) + { + CreatePostEvoSparkleSet1(i * 16, 4); + } + } + if (gTasks[taskId].data[15] == 32) + { + for (i = 0; i < 16; i++) + { + CreatePostEvoSparkleSet1(i * 16, 8); + } + } + gTasks[taskId].data[15]++; + } + else + { + gTasks[taskId].func = EvoTask_PostEvoSparklesSet1Teardown; + } +} + +static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId) +{ + DestroyTask(taskId); +} + +u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 a0) +{ + u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0); + gTasks[taskId].data[2] = a0; + return taskId; +} + +static void EvoTask_PostEvoSparklesSet2Init(u8 taskId) +{ + SetEvoSparklesMatrices(); + gTasks[taskId].data[15] = 0; + sub_80D0474(); + CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96); + BeginNormalPaletteFade(0xFFF90F1C, 0, 0, 16, RGB_WHITE); + gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2; + PlaySE(SE_W080); +} + +static void EvoTask_CreatePostEvoSparklesSet2(u8 taskId) +{ + u8 i; + if (gTasks[taskId].data[15] < 128) + { + switch (gTasks[taskId].data[15]) + { + default: + if (gTasks[taskId].data[15] < 50) + CreatePostEvoSparkleSet2(Random() & 7); + break; + case 0: + for (i = 0; i < 8; i++) + CreatePostEvoSparkleSet2(i); + break; + case 32: + BeginNormalPaletteFade(0xFFFF0F1C, 16, 16, 0, RGB_WHITE); + break; + } + gTasks[taskId].data[15]++; + } + else + { + gTasks[taskId].func = EvoTask_PostEvoSparklesSet2Teardown; + } +} + +static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId) +{ + if (!gPaletteFade.active) + DestroyTask(taskId); +} + +u8 LaunchTask_PostEvoSparklesSet2Alt(u16 a0) +{ + u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2AltInit, 0); + gTasks[taskId].data[2] = a0; + return taskId; +} + +static void EvoTask_PostEvoSparklesSet2AltInit(u8 taskId) +{ + SetEvoSparklesMatrices(); + gTasks[taskId].data[15] = 0; + sub_80D0474(); + CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96); + BeginNormalPaletteFade(0xFFF90F00, 0, 0, 16, RGB_WHITE); + gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2Alt; + PlaySE(SE_W080); +} + +static void EvoTask_CreatePostEvoSparklesSet2Alt(u8 taskId) +{ + u8 i; + if (gTasks[taskId].data[15] < 128) + { + switch (gTasks[taskId].data[15]) + { + default: + if (gTasks[taskId].data[15] < 50) + CreatePostEvoSparkleSet2(Random() & 7); + break; + case 0: + for (i = 0; i < 8; i++) + CreatePostEvoSparkleSet2(i); + break; + case 32: + BeginNormalPaletteFade(0xFFFF0F00, 16, 16, 0, RGB_WHITE); + break; + } + gTasks[taskId].data[15]++; + } + else + { + gTasks[taskId].func = EvoTask_PostEvoSparklesSet2Teardown; + } +} + +static void SpriteCallbackDummy_MonSprites(struct Sprite * sprite) +{ + +} + +#define tPreEvoSpriteId data[1] +#define tPostEvoSpriteId data[2] +#define tPreEvoScale data[3] +#define tPostEvoScale data[4] +#define tDirection data[5] +#define tSpeed data[6] +#define tBButtonCancel data[8] + +u8 LaunchTask_PrePostEvoMonSprites(u8 preEvoSpriteId, u8 postEvoSpriteId) +{ + u16 i; + u8 taskId; + u16 palette[16]; + for (i = 0; i < 16; i++) + palette[i] = RGB_WHITE; + taskId = CreateTask(EvoTask_PrePostEvoMonSpritesInit, 0); + gTasks[taskId].tPreEvoSpriteId = preEvoSpriteId; + gTasks[taskId].tPostEvoSpriteId = postEvoSpriteId; + gTasks[taskId].tPreEvoScale = 256; + gTasks[taskId].tPostEvoScale = 16; + SetOamMatrix(30, 0x10000 / gTasks[taskId].tPreEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPreEvoScale); + SetOamMatrix(31, 0x10000 / gTasks[taskId].tPostEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPostEvoScale); + gSprites[preEvoSpriteId].callback = SpriteCallbackDummy_MonSprites; + gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[preEvoSpriteId].oam.matrixNum = 30; + gSprites[preEvoSpriteId].invisible = FALSE; + CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[preEvoSpriteId].oam.paletteNum], 32); + gSprites[postEvoSpriteId].callback = SpriteCallbackDummy_MonSprites; + gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[postEvoSpriteId].oam.matrixNum = 31; + gSprites[postEvoSpriteId].invisible = FALSE; + CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[postEvoSpriteId].oam.paletteNum], 32); + gTasks[taskId].tBButtonCancel = FALSE; + return taskId; +} + +static void EvoTask_PrePostEvoMonSpritesInit(u8 taskId) +{ + gTasks[taskId].tDirection = FALSE; + gTasks[taskId].tSpeed = 8; + gTasks[taskId].func = EvoTask_ChooseNextEvoSpriteAnim; +} + +static void EvoTask_ChooseNextEvoSpriteAnim(u8 taskId) +{ + if (gTasks[taskId].tBButtonCancel) + { + PreEvoVisible_PostEvoInvisible_KillTask(taskId); + } + else if (gTasks[taskId].tSpeed == 128) + { + PreEvoInvisible_PostEvoVisible_KillTask(taskId); + } + else + { + gTasks[taskId].tSpeed += 2; + gTasks[taskId].tDirection ^= TRUE; + gTasks[taskId].func = EvoTask_ShrinkOrExpandEvoSprites; + } +} + +static void EvoTask_ShrinkOrExpandEvoSprites(u8 taskId) +{ + u8 r6; + if (gTasks[taskId].tBButtonCancel) + { + gTasks[taskId].func = PreEvoVisible_PostEvoInvisible_KillTask; + } + else + { + r6 = 0; + if (!gTasks[taskId].tDirection) + { + if (gTasks[taskId].tPreEvoScale < 0x100 - gTasks[taskId].tSpeed) + { + gTasks[taskId].tPreEvoScale += gTasks[taskId].tSpeed; + } + else + { + gTasks[taskId].tPreEvoScale = 0x100; + r6 = 1; + } + if (gTasks[taskId].tPostEvoScale > 0x10 + gTasks[taskId].tSpeed) + { + gTasks[taskId].tPostEvoScale -= gTasks[taskId].tSpeed; + } + else + { + gTasks[taskId].tPostEvoScale = 0x10; + r6++; + } + } + else + { + if (gTasks[taskId].tPostEvoScale < 0x100 - gTasks[taskId].tSpeed) + { + gTasks[taskId].tPostEvoScale += gTasks[taskId].tSpeed; + } + else + { + gTasks[taskId].tPostEvoScale = 0x100; + r6 = 1; + } + if (gTasks[taskId].tPreEvoScale > 0x10 + gTasks[taskId].tSpeed) + { + gTasks[taskId].tPreEvoScale -= gTasks[taskId].tSpeed; + } + else + { + gTasks[taskId].tPreEvoScale = 0x10; + r6++; + } + } + SetOamMatrix(30, 0x10000 / gTasks[taskId].tPreEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPreEvoScale); + SetOamMatrix(31, 0x10000 / gTasks[taskId].tPostEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPostEvoScale); + if (r6 == 2) + { + gTasks[taskId].func = EvoTask_ChooseNextEvoSpriteAnim; + } + } +} + +static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskId) +{ + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = FALSE; + DestroyTask(taskId); +} + +static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskId) +{ + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = TRUE; + DestroyTask(taskId); +} + +#undef tPreEvoSpriteId +#undef tPostEvoSpriteId +#undef tPreEvoScale +#undef tPostEvoScale +#undef tDirection +#undef tSpeed +#undef tBButtonCancel @@ -135,7 +135,7 @@ static const union AnimCmd *const gUnknown_83E632C[] = gUnknown_83E6308, }; -static const union AnimCmd *const gUnknown_83E6330[] = +const union AnimCmd *const gUnknown_83E6330[] = { gUnknown_83E6310, }; diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index 84befe63e..f879e6810 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -21,11 +21,13 @@ #define STD_WINDOW_PALETTE_NUM 14 #define STD_WINDOW_BASE_TILE_NUM 0x214 -static EWRAM_DATA bool8 gUnknown_203AB58[4] = {FALSE}; // knizz: bgmaps_that_need_syncing -static EWRAM_DATA u16 gUnknown_203AB5C = {0}; -static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL}; +static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE}; +static EWRAM_DATA u16 sTempTileDataBufferCursor = {0}; +static EWRAM_DATA void *sTempTileDataBuffers[0x20] = {NULL}; static EWRAM_DATA u8 sStartMenuWindowId = {0}; +static const u16 gUnknown_841EF48[] = INCBIN_U16("graphics/unknown/unk_841EF48.4bpp"); + const u16 gUnknown_841F1C8[] = INCBIN_U16("graphics/text_window/unk_841F1C8.4bpp"); const u16 gTMCaseMainWindowPalette[] = INCBIN_U16("graphics/tm_case/unk_841F408.gbapal"); @@ -169,35 +171,35 @@ static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId); void ClearScheduledBgCopiesToVram(void) { - memset(gUnknown_203AB58, 0, sizeof(gUnknown_203AB58)); + memset(sScheduledBgCopiesToVram, 0, sizeof(sScheduledBgCopiesToVram)); } void ScheduleBgCopyTilemapToVram(u8 bgId) { - gUnknown_203AB58[bgId] = TRUE; + sScheduledBgCopiesToVram[bgId] = TRUE; } void DoScheduledBgTilemapCopiesToVram(void) { - if (gUnknown_203AB58[0] == TRUE) + if (sScheduledBgCopiesToVram[0] == TRUE) { CopyBgTilemapBufferToVram(0); - gUnknown_203AB58[0] = FALSE; + sScheduledBgCopiesToVram[0] = FALSE; } - if (gUnknown_203AB58[1] == TRUE) + if (sScheduledBgCopiesToVram[1] == TRUE) { CopyBgTilemapBufferToVram(1); - gUnknown_203AB58[1] = FALSE; + sScheduledBgCopiesToVram[1] = FALSE; } - if (gUnknown_203AB58[2] == TRUE) + if (sScheduledBgCopiesToVram[2] == TRUE) { CopyBgTilemapBufferToVram(2); - gUnknown_203AB58[2] = FALSE; + sScheduledBgCopiesToVram[2] = FALSE; } - if (gUnknown_203AB58[3] == TRUE) + if (sScheduledBgCopiesToVram[3] == TRUE) { CopyBgTilemapBufferToVram(3); - gUnknown_203AB58[3] = FALSE; + sScheduledBgCopiesToVram[3] = FALSE; } } @@ -205,11 +207,11 @@ void ResetTempTileDataBuffers(void) { int i; - for (i = 0; i < (s32)NELEMS(gUnknown_203AB60); i++) + for (i = 0; i < (s32)NELEMS(sTempTileDataBuffers); i++) { - gUnknown_203AB60[i] = NULL; + sTempTileDataBuffers[i] = NULL; } - gUnknown_203AB5C = 0; + sTempTileDataBufferCursor = 0; } bool8 FreeTempTileDataBuffersIfPossible(void) @@ -218,13 +220,13 @@ bool8 FreeTempTileDataBuffersIfPossible(void) if (!IsDma3ManagerBusyWithBgCopy()) { - if (gUnknown_203AB5C) + if (sTempTileDataBufferCursor) { - for (i = 0; i < gUnknown_203AB5C; i++) + for (i = 0; i < sTempTileDataBufferCursor; i++) { - FREE_AND_SET_NULL(gUnknown_203AB60[i]); + FREE_AND_SET_NULL(sTempTileDataBuffers[i]); } - gUnknown_203AB5C = 0; + sTempTileDataBufferCursor = 0; } return FALSE; } @@ -238,7 +240,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of { u32 sizeOut; - if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60)) + if (sTempTileDataBufferCursor < NELEMS(sTempTileDataBuffers)) { void *ptr = MallocAndDecompress(src, &sizeOut); if (!size) @@ -246,7 +248,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of if (ptr) { CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode); - gUnknown_203AB60[gUnknown_203AB5C++] = ptr; + sTempTileDataBuffers[sTempTileDataBufferCursor++] = ptr; } return ptr; } @@ -257,7 +259,7 @@ void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 o { u32 sizeOut; - if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60)) + if (sTempTileDataBufferCursor < NELEMS(sTempTileDataBuffers)) { void *ptr = MallocAndDecompress(src, &sizeOut); if (sizeOut > size) @@ -265,7 +267,7 @@ void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 o if (ptr) { CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode); - gUnknown_203AB60[gUnknown_203AB5C++] = ptr; + sTempTileDataBuffers[sTempTileDataBufferCursor++] = ptr; } return ptr; } diff --git a/src/poison.c b/src/poison.c index 004e9aa98..7a0788c29 100644 --- a/src/poison.c +++ b/src/poison.c @@ -134,7 +134,7 @@ static const union AffineAnimCmd gUnknown_83E6A68[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6A80[] = +const union AffineAnimCmd *const gUnknown_83E6A80[] = { gUnknown_83E6A68, }; |