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
150
151
152
153
154
155
156
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global __ct__Q44nw4r3snd6detail4BankFPCv
__ct__Q44nw4r3snd6detail4BankFPCv:
/* 8036C854 003684B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C858 003684B8 7C 08 02 A6 */ mflr r0
/* 8036C85C 003684BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C860 003684C0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C864 003684C4 7C 7F 1B 78 */ mr r31, r3
/* 8036C868 003684C8 48 00 02 15 */ bl __ct__Q44nw4r3snd6detail14BankFileReaderFPCv
/* 8036C86C 003684CC 38 00 00 00 */ li r0, 0
/* 8036C870 003684D0 7F E3 FB 78 */ mr r3, r31
/* 8036C874 003684D4 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8036C878 003684D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036C87C 003684DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C880 003684E0 7C 08 03 A6 */ mtlr r0
/* 8036C884 003684E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C888 003684E8 4E 80 00 20 */ blr
.global __dt__Q44nw4r3snd6detail4BankFv
__dt__Q44nw4r3snd6detail4BankFv:
/* 8036C88C 003684EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C890 003684F0 7C 08 02 A6 */ mflr r0
/* 8036C894 003684F4 2C 03 00 00 */ cmpwi r3, 0
/* 8036C898 003684F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C89C 003684FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C8A0 00368500 7C 7F 1B 78 */ mr r31, r3
/* 8036C8A4 00368504 41 82 00 10 */ beq lbl_8036C8B4
/* 8036C8A8 00368508 2C 04 00 00 */ cmpwi r4, 0
/* 8036C8AC 0036850C 40 81 00 08 */ ble lbl_8036C8B4
/* 8036C8B0 00368510 4B E6 E2 09 */ bl __dl__FPv
lbl_8036C8B4:
/* 8036C8B4 00368514 7F E3 FB 78 */ mr r3, r31
/* 8036C8B8 00368518 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036C8BC 0036851C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C8C0 00368520 7C 08 03 A6 */ mtlr r0
/* 8036C8C4 00368524 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C8C8 00368528 4E 80 00 20 */ blr
.global NoteOn__Q44nw4r3snd6detail4BankCFRCQ44nw4r3snd6detail10NoteOnInfo
NoteOn__Q44nw4r3snd6detail4BankCFRCQ44nw4r3snd6detail10NoteOnInfo:
/* 8036C8CC 0036852C 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8036C8D0 00368530 7C 08 02 A6 */ mflr r0
/* 8036C8D4 00368534 80 A4 00 00 */ lwz r5, 0(r4)
/* 8036C8D8 00368538 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8036C8DC 0036853C 3C 00 43 30 */ lis r0, 0x4330
/* 8036C8E0 00368540 93 E1 00 CC */ stw r31, 0xcc(r1)
/* 8036C8E4 00368544 7C 7F 1B 78 */ mr r31, r3
/* 8036C8E8 00368548 93 C1 00 C8 */ stw r30, 0xc8(r1)
/* 8036C8EC 0036854C 7C 9E 23 78 */ mr r30, r4
/* 8036C8F0 00368550 80 DE 00 04 */ lwz r6, 4(r30)
/* 8036C8F4 00368554 38 81 00 08 */ addi r4, r1, 8
/* 8036C8F8 00368558 90 01 00 B0 */ stw r0, 0xb0(r1)
/* 8036C8FC 0036855C 80 FE 00 08 */ lwz r7, 8(r30)
/* 8036C900 00368560 90 01 00 B8 */ stw r0, 0xb8(r1)
/* 8036C904 00368564 48 00 01 F5 */ bl ReadInstInfo__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8InstInfoiii
/* 8036C908 00368568 2C 03 00 00 */ cmpwi r3, 0
/* 8036C90C 0036856C 40 82 00 0C */ bne lbl_8036C918
/* 8036C910 00368570 38 60 00 00 */ li r3, 0
/* 8036C914 00368574 48 00 01 50 */ b lbl_8036CA64
lbl_8036C918:
/* 8036C918 00368578 80 A1 00 08 */ lwz r5, 8(r1)
/* 8036C91C 0036857C 7F E3 FB 78 */ mr r3, r31
/* 8036C920 00368580 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 8036C924 00368584 38 81 00 18 */ addi r4, r1, 0x18
/* 8036C928 00368588 48 00 04 A5 */ bl ReadWaveParam__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8WaveDataiPCv
/* 8036C92C 0036858C 2C 03 00 00 */ cmpwi r3, 0
/* 8036C930 00368590 40 82 00 0C */ bne lbl_8036C93C
/* 8036C934 00368594 38 60 00 00 */ li r3, 0
/* 8036C938 00368598 48 00 01 2C */ b lbl_8036CA64
lbl_8036C93C:
/* 8036C93C 0036859C 88 01 00 1A */ lbz r0, 0x1a(r1)
/* 8036C940 003685A0 38 60 00 02 */ li r3, 2
/* 8036C944 003685A4 2C 00 00 02 */ cmpwi r0, 2
/* 8036C948 003685A8 41 81 00 08 */ bgt lbl_8036C950
/* 8036C94C 003685AC 7C 03 03 78 */ mr r3, r0
lbl_8036C950:
/* 8036C950 003685B0 80 9E 00 18 */ lwz r4, 0x18(r30)
/* 8036C954 003685B4 80 BE 00 14 */ lwz r5, 0x14(r30)
/* 8036C958 003685B8 80 DE 00 1C */ lwz r6, 0x1c(r30)
/* 8036C95C 003685BC 80 FE 00 20 */ lwz r7, 0x20(r30)
/* 8036C960 003685C0 48 00 26 A5 */ bl AllocChannel__Q44nw4r3snd6detail7ChannelFiiiPFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl_vUl
/* 8036C964 003685C4 2C 03 00 00 */ cmpwi r3, 0
/* 8036C968 003685C8 7C 7F 1B 78 */ mr r31, r3
/* 8036C96C 003685CC 40 82 00 0C */ bne lbl_8036C978
/* 8036C970 003685D0 38 60 00 00 */ li r3, 0
/* 8036C974 003685D4 48 00 00 F0 */ b lbl_8036CA64
lbl_8036C978:
/* 8036C978 003685D8 80 9E 00 04 */ lwz r4, 4(r30)
/* 8036C97C 003685DC 80 1E 00 08 */ lwz r0, 8(r30)
/* 8036C980 003685E0 90 83 00 C0 */ stw r4, 0xc0(r3)
/* 8036C984 003685E4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8036C988 003685E8 C8 22 A5 90 */ lfd f1, lbl_80642B90-_SDA2_BASE_(r2)
/* 8036C98C 003685EC 88 81 00 10 */ lbz r4, 0x10(r1)
/* 8036C990 003685F0 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8036C994 003685F4 C0 42 A5 80 */ lfs f2, lbl_80642B80-_SDA2_BASE_(r2)
/* 8036C998 003685F8 90 83 00 C4 */ stw r4, 0xc4(r3)
/* 8036C99C 003685FC C8 01 00 B0 */ lfd f0, 0xb0(r1)
/* 8036C9A0 00368600 88 01 00 12 */ lbz r0, 0x12(r1)
/* 8036C9A4 00368604 EC 60 08 28 */ fsubs f3, f0, f1
/* 8036C9A8 00368608 C8 22 A5 98 */ lfd f1, lbl_80642B98-_SDA2_BASE_(r2)
/* 8036C9AC 0036860C 90 01 00 BC */ stw r0, 0xbc(r1)
/* 8036C9B0 00368610 C8 01 00 B8 */ lfd f0, 0xb8(r1)
/* 8036C9B4 00368614 EC 63 10 24 */ fdivs f3, f3, f2
/* 8036C9B8 00368618 EC 00 08 28 */ fsubs f0, f0, f1
/* 8036C9BC 0036861C EC 63 00 F2 */ fmuls f3, f3, f3
/* 8036C9C0 00368620 EC 00 10 24 */ fdivs f0, f0, f2
/* 8036C9C4 00368624 EC 63 00 32 */ fmuls f3, f3, f0
/* 8036C9C8 00368628 D0 63 00 A8 */ stfs f3, 0xa8(r3)
/* 8036C9CC 0036862C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8036C9D0 00368630 D0 03 00 B4 */ stfs f0, 0xb4(r3)
/* 8036C9D4 00368634 88 81 00 0C */ lbz r4, 0xc(r1)
/* 8036C9D8 00368638 48 00 34 45 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9DC 0036863C 88 81 00 0D */ lbz r4, 0xd(r1)
/* 8036C9E0 00368640 7F E3 FB 78 */ mr r3, r31
/* 8036C9E4 00368644 48 00 34 51 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9E8 00368648 88 81 00 0E */ lbz r4, 0xe(r1)
/* 8036C9EC 0036864C 7F E3 FB 78 */ mr r3, r31
/* 8036C9F0 00368650 48 00 34 E5 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9F4 00368654 88 81 00 0F */ lbz r4, 0xf(r1)
/* 8036C9F8 00368658 7F E3 FB 78 */ mr r3, r31
/* 8036C9FC 0036865C 48 00 34 E1 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036CA00 00368660 88 A1 00 11 */ lbz r5, 0x11(r1)
/* 8036CA04 00368664 7F E3 FB 78 */ mr r3, r31
/* 8036CA08 00368668 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8036CA0C 0036866C 38 81 00 18 */ addi r4, r1, 0x18
/* 8036CA10 00368670 38 A5 FF C0 */ addi r5, r5, -64
/* 8036CA14 00368674 C8 82 A5 90 */ lfd f4, lbl_80642B90-_SDA2_BASE_(r2)
/* 8036CA18 00368678 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 8036CA1C 0036867C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8036CA20 00368680 90 A1 00 B4 */ stw r5, 0xb4(r1)
/* 8036CA24 00368684 38 C0 00 00 */ li r6, 0
/* 8036CA28 00368688 C0 42 A5 84 */ lfs f2, lbl_80642B84-_SDA2_BASE_(r2)
/* 8036CA2C 0036868C 90 01 00 BC */ stw r0, 0xbc(r1)
/* 8036CA30 00368690 C8 01 00 B0 */ lfd f0, 0xb0(r1)
/* 8036CA34 00368694 C8 21 00 B8 */ lfd f1, 0xb8(r1)
/* 8036CA38 00368698 EC 60 20 28 */ fsubs f3, f0, f4
/* 8036CA3C 0036869C C0 02 A5 88 */ lfs f0, lbl_80642B88-_SDA2_BASE_(r2)
/* 8036CA40 003686A0 EC 21 20 28 */ fsubs f1, f1, f4
/* 8036CA44 003686A4 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 8036CA48 003686A8 EC 63 10 24 */ fdivs f3, f3, f2
/* 8036CA4C 003686AC EC 21 10 24 */ fdivs f1, f1, f2
/* 8036CA50 003686B0 EC 63 08 2A */ fadds f3, f3, f1
/* 8036CA54 003686B4 D0 7F 00 AC */ stfs f3, 0xac(r31)
/* 8036CA58 003686B8 D0 1F 00 B0 */ stfs f0, 0xb0(r31)
/* 8036CA5C 003686BC 48 00 22 05 */ bl Start__Q44nw4r3snd6detail7ChannelFRCQ44nw4r3snd6detail8WaveDataiUl
/* 8036CA60 003686C0 7F E3 FB 78 */ mr r3, r31
lbl_8036CA64:
/* 8036CA64 003686C4 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8036CA68 003686C8 83 E1 00 CC */ lwz r31, 0xcc(r1)
/* 8036CA6C 003686CC 83 C1 00 C8 */ lwz r30, 0xc8(r1)
/* 8036CA70 003686D0 7C 08 03 A6 */ mtlr r0
/* 8036CA74 003686D4 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8036CA78 003686D8 4E 80 00 20 */ blr
|