diff options
Diffstat (limited to 'asm/bard_music.s')
-rw-r--r-- | asm/bard_music.s | 130 |
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. |