summaryrefslogtreecommitdiff
path: root/asm/bard_music.s
blob: 0b622e1b4a7d07fc62c8527aef67d98277e8b14c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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.