summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/detail/snd_Lfo.s
blob: 32c0ad8d2a53a661578076cef9f6962980819e9b (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global Init__Q44nw4r3snd6detail8LfoParamFv
Init__Q44nw4r3snd6detail8LfoParamFv:
/* 80371BFC 0036D85C  C0 22 A6 58 */	lfs f1, lbl_80642C58-_SDA2_BASE_(r2)
/* 80371C00 0036D860  38 80 00 01 */	li r4, 1
/* 80371C04 0036D864  C0 02 A6 5C */	lfs f0, lbl_80642C5C-_SDA2_BASE_(r2)
/* 80371C08 0036D868  38 00 00 00 */	li r0, 0
/* 80371C0C 0036D86C  D0 23 00 00 */	stfs f1, 0(r3)
/* 80371C10 0036D870  98 83 00 0C */	stb r4, 0xc(r3)
/* 80371C14 0036D874  D0 03 00 04 */	stfs f0, 4(r3)
/* 80371C18 0036D878  90 03 00 08 */	stw r0, 8(r3)
/* 80371C1C 0036D87C  4E 80 00 20 */	blr

.global Reset__Q44nw4r3snd6detail3LfoFv
Reset__Q44nw4r3snd6detail3LfoFv:
/* 80371C20 0036D880  C0 02 A6 58 */	lfs f0, lbl_80642C58-_SDA2_BASE_(r2)
/* 80371C24 0036D884  38 00 00 00 */	li r0, 0
/* 80371C28 0036D888  90 03 00 10 */	stw r0, 0x10(r3)
/* 80371C2C 0036D88C  D0 03 00 14 */	stfs f0, 0x14(r3)
/* 80371C30 0036D890  4E 80 00 20 */	blr

.global Update__Q44nw4r3snd6detail3LfoFi
Update__Q44nw4r3snd6detail3LfoFi:
/* 80371C34 0036D894  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80371C38 0036D898  80 C3 00 08 */	lwz r6, 8(r3)
/* 80371C3C 0036D89C  80 A3 00 10 */	lwz r5, 0x10(r3)
/* 80371C40 0036D8A0  7C 05 30 40 */	cmplw r5, r6
/* 80371C44 0036D8A4  40 80 00 24 */	bge lbl_80371C68
/* 80371C48 0036D8A8  7C 05 22 14 */	add r0, r5, r4
/* 80371C4C 0036D8AC  7C 00 30 40 */	cmplw r0, r6
/* 80371C50 0036D8B0  41 81 00 0C */	bgt lbl_80371C5C
/* 80371C54 0036D8B4  90 03 00 10 */	stw r0, 0x10(r3)
/* 80371C58 0036D8B8  48 00 00 70 */	b lbl_80371CC8
lbl_80371C5C:
/* 80371C5C 0036D8BC  7C 05 30 50 */	subf r0, r5, r6
/* 80371C60 0036D8C0  90 C3 00 10 */	stw r6, 0x10(r3)
/* 80371C64 0036D8C4  7C 80 20 50 */	subf r4, r0, r4
lbl_80371C68:
/* 80371C68 0036D8C8  3C 00 43 30 */	lis r0, 0x4330
/* 80371C6C 0036D8CC  6C 84 80 00 */	xoris r4, r4, 0x8000
/* 80371C70 0036D8D0  90 81 00 0C */	stw r4, 0xc(r1)
/* 80371C74 0036D8D4  C8 82 A6 68 */	lfd f4, lbl_80642C68-_SDA2_BASE_(r2)
/* 80371C78 0036D8D8  90 01 00 08 */	stw r0, 8(r1)
/* 80371C7C 0036D8DC  C0 43 00 04 */	lfs f2, 4(r3)
/* 80371C80 0036D8E0  C8 01 00 08 */	lfd f0, 8(r1)
/* 80371C84 0036D8E4  C0 22 A6 60 */	lfs f1, lbl_80642C60-_SDA2_BASE_(r2)
/* 80371C88 0036D8E8  EC 60 20 28 */	fsubs f3, f0, f4
/* 80371C8C 0036D8EC  C0 03 00 14 */	lfs f0, 0x14(r3)
/* 80371C90 0036D8F0  90 01 00 18 */	stw r0, 0x18(r1)
/* 80371C94 0036D8F4  EC 42 00 F2 */	fmuls f2, f2, f3
/* 80371C98 0036D8F8  EC 22 08 24 */	fdivs f1, f2, f1
/* 80371C9C 0036D8FC  EC 20 08 2A */	fadds f1, f0, f1
/* 80371CA0 0036D900  FC 00 08 1E */	fctiwz f0, f1
/* 80371CA4 0036D904  D0 23 00 14 */	stfs f1, 0x14(r3)
/* 80371CA8 0036D908  D8 01 00 10 */	stfd f0, 0x10(r1)
/* 80371CAC 0036D90C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80371CB0 0036D910  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80371CB4 0036D914  90 01 00 1C */	stw r0, 0x1c(r1)
/* 80371CB8 0036D918  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80371CBC 0036D91C  EC 00 20 28 */	fsubs f0, f0, f4
/* 80371CC0 0036D920  EC 01 00 28 */	fsubs f0, f1, f0
/* 80371CC4 0036D924  D0 03 00 14 */	stfs f0, 0x14(r3)
lbl_80371CC8:
/* 80371CC8 0036D928  38 21 00 20 */	addi r1, r1, 0x20
/* 80371CCC 0036D92C  4E 80 00 20 */	blr

.global GetValue__Q44nw4r3snd6detail3LfoCFv
GetValue__Q44nw4r3snd6detail3LfoCFv:
/* 80371CD0 0036D930  C0 22 A6 58 */	lfs f1, lbl_80642C58-_SDA2_BASE_(r2)
/* 80371CD4 0036D934  C0 03 00 00 */	lfs f0, 0(r3)
/* 80371CD8 0036D938  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80371CDC 0036D93C  FC 01 00 00 */	fcmpu cr0, f1, f0
/* 80371CE0 0036D940  40 82 00 08 */	bne lbl_80371CE8
/* 80371CE4 0036D944  48 00 01 00 */	b lbl_80371DE4
lbl_80371CE8:
/* 80371CE8 0036D948  80 83 00 10 */	lwz r4, 0x10(r3)
/* 80371CEC 0036D94C  80 03 00 08 */	lwz r0, 8(r3)
/* 80371CF0 0036D950  7C 04 00 40 */	cmplw r4, r0
/* 80371CF4 0036D954  40 80 00 08 */	bge lbl_80371CFC
/* 80371CF8 0036D958  48 00 00 EC */	b lbl_80371DE4
lbl_80371CFC:
/* 80371CFC 0036D95C  C0 42 A6 74 */	lfs f2, lbl_80642C74-_SDA2_BASE_(r2)
/* 80371D00 0036D960  C0 23 00 14 */	lfs f1, 0x14(r3)
/* 80371D04 0036D964  C0 02 A6 70 */	lfs f0, lbl_80642C70-_SDA2_BASE_(r2)
/* 80371D08 0036D968  EC 22 00 72 */	fmuls f1, f2, f1
/* 80371D0C 0036D96C  EC 00 00 72 */	fmuls f0, f0, f1
/* 80371D10 0036D970  FC 00 00 1E */	fctiwz f0, f0
/* 80371D14 0036D974  D8 01 00 08 */	stfd f0, 8(r1)
/* 80371D18 0036D978  80 A1 00 0C */	lwz r5, 0xc(r1)
/* 80371D1C 0036D97C  2C 05 00 20 */	cmpwi r5, 0x20
/* 80371D20 0036D980  40 80 00 18 */	bge lbl_80371D38
/* 80371D24 0036D984  3C 80 80 40 */	lis r4, lbl_804028F8@ha
/* 80371D28 0036D988  38 84 28 F8 */	addi r4, r4, lbl_804028F8@l
/* 80371D2C 0036D98C  7C 04 28 AE */	lbzx r0, r4, r5
/* 80371D30 0036D990  7C 00 07 74 */	extsb r0, r0
/* 80371D34 0036D994  48 00 00 68 */	b lbl_80371D9C
lbl_80371D38:
/* 80371D38 0036D998  2C 05 00 40 */	cmpwi r5, 0x40
/* 80371D3C 0036D99C  40 80 00 20 */	bge lbl_80371D5C
/* 80371D40 0036D9A0  38 05 FF E0 */	addi r0, r5, -32
/* 80371D44 0036D9A4  3C 80 80 40 */	lis r4, lbl_804028F8@ha
/* 80371D48 0036D9A8  20 00 00 20 */	subfic r0, r0, 0x20
/* 80371D4C 0036D9AC  38 84 28 F8 */	addi r4, r4, lbl_804028F8@l
/* 80371D50 0036D9B0  7C 04 00 AE */	lbzx r0, r4, r0
/* 80371D54 0036D9B4  7C 00 07 74 */	extsb r0, r0
/* 80371D58 0036D9B8  48 00 00 44 */	b lbl_80371D9C
lbl_80371D5C:
/* 80371D5C 0036D9BC  2C 05 00 60 */	cmpwi r5, 0x60
/* 80371D60 0036D9C0  40 80 00 20 */	bge lbl_80371D80
/* 80371D64 0036D9C4  3C 80 80 40 */	lis r4, lbl_804028F8@ha
/* 80371D68 0036D9C8  38 84 28 F8 */	addi r4, r4, lbl_804028F8@l
/* 80371D6C 0036D9CC  7C 85 22 14 */	add r4, r5, r4
/* 80371D70 0036D9D0  88 04 FF C0 */	lbz r0, -0x40(r4)
/* 80371D74 0036D9D4  7C 00 00 D0 */	neg r0, r0
/* 80371D78 0036D9D8  7C 00 07 74 */	extsb r0, r0
/* 80371D7C 0036D9DC  48 00 00 20 */	b lbl_80371D9C
lbl_80371D80:
/* 80371D80 0036D9E0  38 05 FF A0 */	addi r0, r5, -96
/* 80371D84 0036D9E4  3C 80 80 40 */	lis r4, lbl_804028F8@ha
/* 80371D88 0036D9E8  20 00 00 20 */	subfic r0, r0, 0x20
/* 80371D8C 0036D9EC  38 84 28 F8 */	addi r4, r4, lbl_804028F8@l
/* 80371D90 0036D9F0  7C 04 00 AE */	lbzx r0, r4, r0
/* 80371D94 0036D9F4  7C 00 00 D0 */	neg r0, r0
/* 80371D98 0036D9F8  7C 00 07 74 */	extsb r0, r0
lbl_80371D9C:
/* 80371D9C 0036D9FC  3C 80 43 30 */	lis r4, 0x4330
/* 80371DA0 0036DA00  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80371DA4 0036DA04  90 01 00 0C */	stw r0, 0xc(r1)
/* 80371DA8 0036DA08  88 03 00 0C */	lbz r0, 0xc(r3)
/* 80371DAC 0036DA0C  90 81 00 08 */	stw r4, 8(r1)
/* 80371DB0 0036DA10  C8 42 A6 68 */	lfd f2, lbl_80642C68-_SDA2_BASE_(r2)
/* 80371DB4 0036DA14  C8 21 00 08 */	lfd f1, 8(r1)
/* 80371DB8 0036DA18  C0 02 A6 78 */	lfs f0, lbl_80642C78-_SDA2_BASE_(r2)
/* 80371DBC 0036DA1C  EC 21 10 28 */	fsubs f1, f1, f2
/* 80371DC0 0036DA20  90 01 00 14 */	stw r0, 0x14(r1)
/* 80371DC4 0036DA24  C0 63 00 00 */	lfs f3, 0(r3)
/* 80371DC8 0036DA28  90 81 00 10 */	stw r4, 0x10(r1)
/* 80371DCC 0036DA2C  EC 21 00 24 */	fdivs f1, f1, f0
/* 80371DD0 0036DA30  C8 42 A6 80 */	lfd f2, lbl_80642C80-_SDA2_BASE_(r2)
/* 80371DD4 0036DA34  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 80371DD8 0036DA38  EC 21 00 F2 */	fmuls f1, f1, f3
/* 80371DDC 0036DA3C  EC 00 10 28 */	fsubs f0, f0, f2
/* 80371DE0 0036DA40  EC 21 00 32 */	fmuls f1, f1, f0
lbl_80371DE4:
/* 80371DE4 0036DA44  38 21 00 20 */	addi r1, r1, 0x20
/* 80371DE8 0036DA48  4E 80 00 20 */	blr