summaryrefslogtreecommitdiff
path: root/asm/bard_music.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/bard_music.s')
-rw-r--r--asm/bard_music.s130
1 files changed, 130 insertions, 0 deletions
diff --git a/asm/bard_music.s b/asm/bard_music.s
new file mode 100644
index 000000000..0b622e1b4
--- /dev/null
+++ b/asm/bard_music.s
@@ -0,0 +1,130 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_817C7DC
+sub_817C7DC: @ 817C7DC
+ ldr r2, =gUnknown_0860A320
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bx lr
+ .pool
+ thumb_func_end sub_817C7DC
+
+ thumb_func_start sub_817C7F4
+sub_817C7F4: @ 817C7F4
+ push {r4,r5,lr}
+ lsls r4, r0, 16
+ lsrs r5, r4, 16
+ adds r0, r5, 0
+ bl sub_811EB10
+ lsls r0, 24
+ cmp r0, 0
+ beq _0817C810
+ ldr r0, =gUnknown_0860A3AC
+ b _0817C84E
+ .pool
+_0817C810:
+ lsrs r0, r4, 25
+ ldr r2, =0x000001ff
+ ands r2, r5
+ cmp r0, 0x13
+ bhi _0817C828
+ cmp r0, 0x12
+ bcs _0817C834
+ cmp r0, 0
+ beq _0817C82C
+ b _0817C83C
+ .pool
+_0817C828:
+ cmp r0, 0x15
+ bne _0817C83C
+_0817C82C:
+ ldr r1, =gUnknown_085F5494
+ b _0817C844
+ .pool
+_0817C834:
+ ldr r1, =gUnknown_085FA1D8
+ b _0817C844
+ .pool
+_0817C83C:
+ ldr r1, =gUnknown_0860A168
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+_0817C844:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r1, r0
+ adds r0, r1, 0
+_0817C84E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_817C7F4
+
+ thumb_func_start sub_817C858
+sub_817C858: @ 817C858
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r0, 0
+ strh r0, [r5, 0x4]
+ movs r6, 0
+ ldr r0, =gUnknown_0860A3DC
+ mov r8, r0
+ adds r4, r5, 0
+ adds r4, 0x18
+_0817C872:
+ lsls r0, r6, 3
+ ldr r1, [r5, 0x30]
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _0817C8A0
+ movs r1, 0x1
+ ldrsb r1, [r2, r1]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ adds r1, r0
+ strh r1, [r4]
+ adds r0, r7, 0
+ adds r0, 0x1E
+ adds r1, r6, 0
+ bl sub_817C7DC
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x4]
+_0817C8A0:
+ adds r4, 0x4
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0817C872
+ movs r0, 0
+ strb r0, [r5, 0x1]
+ strh r0, [r5, 0xA]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_817C858
+
+ .align 2, 0 @ Don't pad with nop.