summaryrefslogtreecommitdiff
path: root/asm/unk_sprite_file.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/unk_sprite_file.s')
-rwxr-xr-xasm/unk_sprite_file.s607
1 files changed, 607 insertions, 0 deletions
diff --git a/asm/unk_sprite_file.s b/asm/unk_sprite_file.s
new file mode 100755
index 000000000..5a25b8e08
--- /dev/null
+++ b/asm/unk_sprite_file.s
@@ -0,0 +1,607 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81DA700
+sub_81DA700: @ 81DA700
+ push {lr}
+ sub sp, 0x8
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_8149F58
+ ldr r0, =gUnknown_0862AD54
+ ldr r1, [sp, 0x4]
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_0862AF30
+ ldr r1, [sp]
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_0862B53C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0862B724
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_0862B72C
+ bl LoadSpritePalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81DA700
+
+ thumb_func_start sub_81DA74C
+sub_81DA74C: @ 81DA74C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, [sp, 0x24]
+ ldr r1, [sp, 0x28]
+ ldr r4, [sp, 0x2C]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r0, =gUnknown_0862B758
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r7, 0x1
+ beq _081DA7D0
+ cmp r7, 0x1
+ bgt _081DA7A8
+ cmp r7, 0
+ beq _081DA7B8
+ b _081DA7AC
+ .pool
+_081DA7A8:
+ cmp r7, 0x2
+ beq _081DA7E4
+_081DA7AC:
+ ldr r6, =gSprites
+ lsls r3, r5, 4
+ b _081DA7F8
+ .pool
+_081DA7B8:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x78
+ strh r1, [r0, 0x2E]
+ movs r1, 0x2D
+ b _081DA7F4
+ .pool
+_081DA7D0:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x59
+ b _081DA7F0
+ .pool
+_081DA7E4:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x97
+_081DA7F0:
+ strh r1, [r0, 0x2E]
+ movs r1, 0x61
+_081DA7F4:
+ strh r1, [r0, 0x30]
+ adds r6, r2, 0
+_081DA7F8:
+ adds r4, r3, r5
+ lsls r4, 2
+ adds r0, r4, r6
+ mov r2, r8
+ lsls r1, r2, 24
+ asrs r1, 24
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ mov r3, r9
+ lsls r1, r3, 24
+ asrs r1, 24
+ strh r1, [r0, 0x34]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x3A]
+ mov r3, r10
+ strh r3, [r0, 0x3C]
+ strh r2, [r0, 0x36]
+ strh r2, [r0, 0x38]
+ adds r1, r7, 0
+ bl StartSpriteAnim
+ adds r0, r6, 0
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, =sub_81DA848
+ str r0, [r4]
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81DA74C
+
+ thumb_func_start sub_81DA848
+sub_81DA848: @ 81DA848
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x2E
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ bne _081DA874
+ movs r5, 0x22
+ ldrsh r1, [r3, r5]
+ movs r4, 0x2
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _081DA874
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ b _081DA8B4
+ .pool
+_081DA874:
+ ldrh r4, [r2, 0x8]
+ movs r5, 0x8
+ ldrsh r1, [r2, r5]
+ movs r5, 0xC
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _081DA890
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r3, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r3, 0x20]
+ strh r1, [r2, 0x8]
+ b _081DA894
+_081DA890:
+ adds r0, r4, 0x1
+ strh r0, [r2, 0x8]
+_081DA894:
+ ldrh r4, [r2, 0xA]
+ movs r5, 0xA
+ ldrsh r1, [r2, r5]
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _081DA8B0
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r3, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r3, 0x22]
+ strh r1, [r2, 0xA]
+ b _081DA8B4
+_081DA8B0:
+ adds r0, r4, 0x1
+ strh r0, [r2, 0xA]
+_081DA8B4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81DA848
+
+ thumb_func_start sub_81DA8BC
+sub_81DA8BC: @ 81DA8BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r1
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ ldr r4, [sp, 0x34]
+ ldr r5, [sp, 0x38]
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r4, 16
+ lsrs r7, r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0862B758
+ lsls r6, 16
+ asrs r6, 16
+ mov r1, r8
+ lsls r1, 16
+ asrs r1, 16
+ mov r8, r1
+ adds r1, r6, 0
+ mov r2, r8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r5, 0x1
+ beq _081DA94C
+ cmp r5, 0x1
+ bgt _081DA924
+ cmp r5, 0
+ beq _081DA934
+ b _081DA928
+ .pool
+_081DA924:
+ cmp r5, 0x2
+ beq _081DA960
+_081DA928:
+ ldr r2, =gSprites
+ lsls r3, r6, 4
+ b _081DA972
+ .pool
+_081DA934:
+ ldr r2, =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x78
+ strh r1, [r0, 0x2E]
+ movs r1, 0x2D
+ b _081DA970
+ .pool
+_081DA94C:
+ ldr r2, =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x59
+ b _081DA96C
+ .pool
+_081DA960:
+ ldr r2, =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x97
+_081DA96C:
+ strh r1, [r0, 0x2E]
+ movs r1, 0x61
+_081DA970:
+ strh r1, [r0, 0x30]
+_081DA972:
+ adds r4, r3, r6
+ lsls r4, 2
+ adds r0, r4, r2
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r0, 0x32]
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r0, 0x34]
+ mov r3, r10
+ strh r3, [r0, 0x36]
+ mov r1, r9
+ strh r1, [r0, 0x38]
+ strh r7, [r0, 0x3A]
+ adds r1, r5, 0
+ str r2, [sp, 0x8]
+ bl StartSpriteAnim
+ ldr r2, [sp, 0x8]
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, =sub_81DA9BC
+ str r0, [r4]
+ adds r0, r6, 0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81DA8BC
+
+ thumb_func_start sub_81DA9BC
+sub_81DA9BC: @ 81DA9BC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r4, r3]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0xB4
+ lsls r1, 1
+ bl __modsi3
+ strh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ movs r3, 0x36
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _081DAA12
+ ldrh r0, [r4, 0x3A]
+ adds r0, r2, r0
+ strh r0, [r4, 0x36]
+ b _081DAA16
+_081DAA12:
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_081DAA16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81DA9BC
+
+ thumb_func_start sub_81DAA20
+sub_81DAA20: @ 81DAA20
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =0x00002e90
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x10
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x12
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81DAA20
+
+ thumb_func_start sub_81DAA74
+sub_81DAA74: @ 81DAA74
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r2, =gSprites
+ movs r0, 0x10
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r2, 0
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r4, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r4, r0
+ bne _081DAAC4
+ movs r0, 0x12
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r2, [r0]
+ cmp r2, r4
+ bne _081DAAC4
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r0, [r1]
+ cmp r0, r2
+ bne _081DAAC4
+ movs r0, 0x1
+ b _081DAAC6
+ .pool
+_081DAAC4:
+ movs r0, 0
+_081DAAC6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81DAA74
+
+ thumb_func_start sub_81DAACC
+sub_81DAACC: @ 81DAACC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081DAB20
+ bl sub_81DA700
+ ldr r1, =0x00003f41
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r1, 0xA0
+ lsls r1, 3
+ movs r0, 0
+ movs r2, 0x2
+ bl ChangeBgY
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _081DAB46
+ .pool
+_081DAB20:
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+ movs r1, 0x80
+ lsls r1, 7
+ movs r0, 0
+ bl ClearGpuRegBits
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0
+ bl ClearGpuRegBits
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0
+_081DAB46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81DAACC
+
+ thumb_func_start sub_81DAB4C
+sub_81DAB4C: @ 81DAB4C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081DAB64
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0
+ bl SetGpuRegBits
+_081DAB64:
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _081DAB98
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bne _081DAB92
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081DABB0
+_081DAB92:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _081DABB0
+_081DAB98:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+_081DABB0:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81DAB4C
+
+ .align 2, 0 @ Don't pad with nop.