summaryrefslogtreecommitdiff
path: root/asm/noise.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/noise.s')
-rwxr-xr-xasm/noise.s140
1 files changed, 140 insertions, 0 deletions
diff --git a/asm/noise.s b/asm/noise.s
new file mode 100755
index 000000000..3b21bfc97
--- /dev/null
+++ b/asm/noise.s
@@ -0,0 +1,140 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80D2D68
+sub_80D2D68: @ 80D2D68
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D2D7C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D2D84
+ ldr r0, _080D2D80 @ =gBattleAnimBankAttacker
+ b _080D2D86
+ .align 2, 0
+_080D2D7C: .4byte gBattleAnimArgs
+_080D2D80: .4byte gBattleAnimBankAttacker
+_080D2D84:
+ ldr r0, _080D2E1C @ =gBattleAnimBankTarget
+_080D2D86:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2DA0
+ ldr r1, _080D2E20 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D2DA0:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r7, _080D2E20 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DE0
+ adds r0, 0x7
+_080D2DE0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DF0
+ adds r0, 0x7
+_080D2DF0:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _080D2E24 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D2E28 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D2E2C @ =sub_80D2E30
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E1C: .4byte gBattleAnimBankTarget
+_080D2E20: .4byte gBattleAnimArgs
+_080D2E24: .4byte 0x000003ff
+_080D2E28: .4byte 0xfffffc00
+_080D2E2C: .4byte sub_80D2E30
+ thumb_func_end sub_80D2D68
+
+ thumb_func_start sub_80D2E30
+sub_80D2E30: @ 80D2E30
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D2E64
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2E64:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2E30
+
+ .align 2, 0 @ Don't pad with nop.