summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/NW4R/snd_Bank.s8
-rw-r--r--asm/NW4R/snd_BasicSound.s2
-rw-r--r--asm/NW4R/snd_Channel.s12
-rw-r--r--asm/NW4R/snd_EnvGenerator.s256
-rw-r--r--asm/NW4R/snd_ExternalSoundPlayer.s73
-rw-r--r--asm/text_10_4.s341
-rw-r--r--asm/text_11.s8
-rw-r--r--obj_files.mk2
8 files changed, 355 insertions, 347 deletions
diff --git a/asm/NW4R/snd_Bank.s b/asm/NW4R/snd_Bank.s
index 198270f..cef7f7d 100644
--- a/asm/NW4R/snd_Bank.s
+++ b/asm/NW4R/snd_Bank.s
@@ -112,16 +112,16 @@ lbl_8036C978:
/* 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 func_8036FE1C
+/* 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 func_8036FE34
+/* 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 func_8036FED4
+/* 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 func_8036FEDC
+/* 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)
diff --git a/asm/NW4R/snd_BasicSound.s b/asm/NW4R/snd_BasicSound.s
index 45cbd4f..874a22d 100644
--- a/asm/NW4R/snd_BasicSound.s
+++ b/asm/NW4R/snd_BasicSound.s
@@ -965,7 +965,7 @@ lbl_8036DD70:
/* 8036DD8C 003699EC 2C 03 00 00 */ cmpwi r3, 0
/* 8036DD90 003699F0 41 82 00 0C */ beq lbl_8036DD9C
/* 8036DD94 003699F4 7F C4 F3 78 */ mr r4, r30
-/* 8036DD98 003699F8 48 00 22 31 */ bl func_8036FFC8
+/* 8036DD98 003699F8 48 00 22 31 */ bl RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8036DD9C:
/* 8036DD9C 003699FC 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 8036DDA0 00369A00 2C 03 00 00 */ cmpwi r3, 0
diff --git a/asm/NW4R/snd_Channel.s b/asm/NW4R/snd_Channel.s
index 5726f81..0f9fab0 100644
--- a/asm/NW4R/snd_Channel.s
+++ b/asm/NW4R/snd_Channel.s
@@ -219,7 +219,7 @@ InitParam__Q44nw4r3snd6detail7ChannelFPFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6d
/* 8036E490 0036A0F0 D0 03 00 9C */ stfs f0, 0x9c(r3)
/* 8036E494 0036A0F4 93 E3 00 A4 */ stw r31, 0xa4(r3)
/* 8036E498 0036A0F8 93 E3 00 A0 */ stw r31, 0xa0(r3)
-/* 8036E49C 0036A0FC 48 00 17 DD */ bl func_8036FC78
+/* 8036E49C 0036A0FC 48 00 17 DD */ bl Init__Q44nw4r3snd6detail12EnvGeneratorFf
/* 8036E4A0 0036A100 38 7E 00 18 */ addi r3, r30, 0x18
/* 8036E4A4 0036A104 48 00 37 59 */ bl func_80371BFC
/* 8036E4A8 0036A108 9B FE 00 30 */ stb r31, 0x30(r30)
@@ -317,7 +317,7 @@ lbl_8036E5E4:
/* 8036E5FC 0036A25C C3 A2 A5 C4 */ lfs f29, lbl_80642BC4-_SDA2_BASE_(r2)
/* 8036E600 0036A260 EC 01 00 24 */ fdivs f0, f1, f0
/* 8036E604 0036A264 EF DE 00 32 */ fmuls f30, f30, f0
-/* 8036E608 0036A268 48 00 16 C5 */ bl func_8036FCCC
+/* 8036E608 0036A268 48 00 16 C5 */ bl GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
/* 8036E60C 0036A26C 48 01 4B 2D */ bl func_80383138
/* 8036E610 0036A270 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036E614 0036A274 EF BD 00 72 */ fmuls f29, f29, f1
@@ -621,14 +621,14 @@ lbl_8036EA78:
/* 8036EA80 0036A6E0 48 00 31 B5 */ bl func_80371C34
/* 8036EA84 0036A6E4 7F C3 F3 78 */ mr r3, r30
/* 8036EA88 0036A6E8 38 80 00 03 */ li r4, 3
-/* 8036EA8C 0036A6EC 48 00 12 6D */ bl func_8036FCF8
+/* 8036EA8C 0036A6EC 48 00 12 6D */ bl Update__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_8036EA90:
/* 8036EA90 0036A6F0 38 7E 00 18 */ addi r3, r30, 0x18
/* 8036EA94 0036A6F4 48 00 32 3D */ bl func_80371CD0
/* 8036EA98 0036A6F8 FE E0 08 90 */ fmr f23, f1
/* 8036EA9C 0036A6FC C2 82 A5 C4 */ lfs f20, lbl_80642BC4-_SDA2_BASE_(r2)
/* 8036EAA0 0036A700 7F C3 F3 78 */ mr r3, r30
-/* 8036EAA4 0036A704 48 00 12 29 */ bl func_8036FCCC
+/* 8036EAA4 0036A704 48 00 12 29 */ bl GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
/* 8036EAA8 0036A708 48 01 46 91 */ bl func_80383138
/* 8036EAAC 0036A70C 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036EAB0 0036A710 EE 94 00 72 */ fmuls f20, f20, f1
@@ -760,7 +760,7 @@ Start__Q44nw4r3snd6detail7ChannelFRCQ44nw4r3snd6detail8WaveDataiUl:
/* 8036EC8C 0036A8EC 48 00 2F 95 */ bl func_80371C20
/* 8036EC90 0036A8F0 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
/* 8036EC94 0036A8F4 7F A3 EB 78 */ mr r3, r29
-/* 8036EC98 0036A8F8 48 00 10 1D */ bl func_8036FCB4
+/* 8036EC98 0036A8F8 48 00 10 1D */ bl Reset__Q44nw4r3snd6detail12EnvGeneratorFf
/* 8036EC9C 0036A8FC 38 00 00 00 */ li r0, 0
/* 8036ECA0 0036A900 80 7D 00 DC */ lwz r3, 0xdc(r29)
/* 8036ECA4 0036A904 90 1D 00 A0 */ stw r0, 0xa0(r29)
@@ -1062,7 +1062,7 @@ lbl_8036F090:
/* 8036F0BC 0036AD1C 48 00 00 4C */ b lbl_8036F108
lbl_8036F0C0:
/* 8036F0C0 0036AD20 41 82 00 48 */ beq lbl_8036F108
-/* 8036F0C4 0036AD24 48 00 0B 75 */ bl func_8036FC38
+/* 8036F0C4 0036AD24 48 00 0B 75 */ bl __ct__Q44nw4r3snd6detail12EnvGeneratorFv
/* 8036F0C8 0036AD28 38 7A 00 18 */ addi r3, r26, 0x18
/* 8036F0CC 0036AD2C 48 00 2B 31 */ bl func_80371BFC
/* 8036F0D0 0036AD30 38 00 00 00 */ li r0, 0
diff --git a/asm/NW4R/snd_EnvGenerator.s b/asm/NW4R/snd_EnvGenerator.s
new file mode 100644
index 0000000..51fef8b
--- /dev/null
+++ b/asm/NW4R/snd_EnvGenerator.s
@@ -0,0 +1,256 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail12EnvGeneratorFv
+__ct__Q44nw4r3snd6detail12EnvGeneratorFv:
+/* 8036FC38 0036B898 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
+/* 8036FC3C 0036B89C 3C A0 80 40 */ lis r5, lbl_80402690@ha
+/* 8036FC40 0036B8A0 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FC44 0036B8A4 38 80 00 7F */ li r4, 0x7f
+/* 8036FC48 0036B8A8 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
+/* 8036FC4C 0036B8AC C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FC50 0036B8B0 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FC54 0036B8B4 C0 25 01 FC */ lfs f1, 0x1fc(r5)
+/* 8036FC58 0036B8B8 38 00 00 00 */ li r0, 0
+/* 8036FC5C 0036B8BC D0 43 00 08 */ stfs f2, 8(r3)
+/* 8036FC60 0036B8C0 D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 8036FC64 0036B8C4 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FC68 0036B8C8 D0 43 00 0C */ stfs f2, 0xc(r3)
+/* 8036FC6C 0036B8CC D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FC70 0036B8D0 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FC74 0036B8D4 4E 80 00 20 */ blr
+
+.global Init__Q44nw4r3snd6detail12EnvGeneratorFf
+Init__Q44nw4r3snd6detail12EnvGeneratorFf:
+/* 8036FC78 0036B8D8 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FC7C 0036B8DC 3C 80 80 40 */ lis r4, lbl_80402690@ha
+/* 8036FC80 0036B8E0 C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FC84 0036B8E4 38 00 00 00 */ li r0, 0
+/* 8036FC88 0036B8E8 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FC8C 0036B8EC 38 84 26 90 */ addi r4, r4, lbl_80402690@l
+/* 8036FC90 0036B8F0 C0 24 01 FC */ lfs f1, 0x1fc(r4)
+/* 8036FC94 0036B8F4 38 80 00 7F */ li r4, 0x7f
+/* 8036FC98 0036B8F8 D0 43 00 08 */ stfs f2, 8(r3)
+/* 8036FC9C 0036B8FC D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 8036FCA0 0036B900 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FCA4 0036B904 D0 43 00 0C */ stfs f2, 0xc(r3)
+/* 8036FCA8 0036B908 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FCAC 0036B90C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FCB0 0036B910 4E 80 00 20 */ blr
+
+.global Reset__Q44nw4r3snd6detail12EnvGeneratorFf
+Reset__Q44nw4r3snd6detail12EnvGeneratorFf:
+/* 8036FCB4 0036B914 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FCB8 0036B918 38 00 00 00 */ li r0, 0
+/* 8036FCBC 0036B91C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FCC0 0036B920 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FCC4 0036B924 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FCC8 0036B928 4E 80 00 20 */ blr
+
+.global GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
+GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv:
+/* 8036FCCC 0036B92C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FCD0 0036B930 2C 00 00 00 */ cmpwi r0, 0
+/* 8036FCD4 0036B934 40 82 00 14 */ bne lbl_8036FCE8
+/* 8036FCD8 0036B938 C0 22 A5 F4 */ lfs f1, lbl_80642BF4-_SDA2_BASE_(r2)
+/* 8036FCDC 0036B93C C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8036FCE0 0036B940 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8036FCE4 0036B944 4D 82 00 20 */ beqlr
+lbl_8036FCE8:
+/* 8036FCE8 0036B948 C0 23 00 04 */ lfs f1, 4(r3)
+/* 8036FCEC 0036B94C C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FCF0 0036B950 EC 21 00 24 */ fdivs f1, f1, f0
+/* 8036FCF4 0036B954 4E 80 00 20 */ blr
+
+.global Update__Q44nw4r3snd6detail12EnvGeneratorFi
+Update__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FCF8 0036B958 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FCFC 0036B95C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FD00 0036B960 2C 00 00 02 */ cmpwi r0, 2
+/* 8036FD04 0036B964 41 82 01 10 */ beq lbl_8036FE14
+/* 8036FD08 0036B968 40 80 00 14 */ bge lbl_8036FD1C
+/* 8036FD0C 0036B96C 2C 00 00 00 */ cmpwi r0, 0
+/* 8036FD10 0036B970 41 82 00 18 */ beq lbl_8036FD28
+/* 8036FD14 0036B974 40 80 00 60 */ bge lbl_8036FD74
+/* 8036FD18 0036B978 48 00 00 FC */ b lbl_8036FE14
+lbl_8036FD1C:
+/* 8036FD1C 0036B97C 2C 00 00 04 */ cmpwi r0, 4
+/* 8036FD20 0036B980 40 80 00 F4 */ bge lbl_8036FE14
+/* 8036FD24 0036B984 48 00 00 C0 */ b lbl_8036FDE4
+lbl_8036FD28:
+/* 8036FD28 0036B988 C0 02 A5 F4 */ lfs f0, lbl_80642BF4-_SDA2_BASE_(r2)
+/* 8036FD2C 0036B98C 38 00 00 01 */ li r0, 1
+/* 8036FD30 0036B990 C0 22 A5 F8 */ lfs f1, lbl_80642BF8-_SDA2_BASE_(r2)
+/* 8036FD34 0036B994 7C 89 03 A6 */ mtctr r4
+/* 8036FD38 0036B998 2C 04 00 00 */ cmpwi r4, 0
+/* 8036FD3C 0036B99C 40 81 00 2C */ ble lbl_8036FD68
+lbl_8036FD40:
+/* 8036FD40 0036B9A0 C0 63 00 04 */ lfs f3, 4(r3)
+/* 8036FD44 0036B9A4 38 84 FF FF */ addi r4, r4, -1
+/* 8036FD48 0036B9A8 C0 43 00 10 */ lfs f2, 0x10(r3)
+/* 8036FD4C 0036B9AC EC 43 00 B2 */ fmuls f2, f3, f2
+/* 8036FD50 0036B9B0 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8036FD54 0036B9B4 D0 43 00 04 */ stfs f2, 4(r3)
+/* 8036FD58 0036B9B8 40 81 00 0C */ ble lbl_8036FD64
+/* 8036FD5C 0036B9BC D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FD60 0036B9C0 90 03 00 00 */ stw r0, 0(r3)
+lbl_8036FD64:
+/* 8036FD64 0036B9C4 42 00 FF DC */ bdnz lbl_8036FD40
+lbl_8036FD68:
+/* 8036FD68 0036B9C8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FD6C 0036B9CC 2C 00 00 01 */ cmpwi r0, 1
+/* 8036FD70 0036B9D0 40 82 00 A4 */ bne lbl_8036FE14
+lbl_8036FD74:
+/* 8036FD74 0036B9D4 3C A0 43 30 */ lis r5, 0x4330
+/* 8036FD78 0036B9D8 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FD7C 0036B9DC 88 C3 00 14 */ lbz r6, 0x14(r3)
+/* 8036FD80 0036B9E0 3C 80 80 40 */ lis r4, lbl_80402590@ha
+/* 8036FD84 0036B9E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036FD88 0036B9E8 38 84 25 90 */ addi r4, r4, lbl_80402590@l
+/* 8036FD8C 0036B9EC 54 C0 08 3C */ slwi r0, r6, 1
+/* 8036FD90 0036B9F0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FD94 0036B9F4 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 8036FD98 0036B9F8 7C 04 02 AE */ lhax r0, r4, r0
+/* 8036FD9C 0036B9FC C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 8036FDA0 0036BA00 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8036FDA4 0036BA04 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8036FDA8 0036BA08 EC 40 18 28 */ fsubs f2, f0, f3
+/* 8036FDAC 0036BA0C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FDB0 0036BA10 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8036FDB4 0036BA14 90 A1 00 08 */ stw r5, 8(r1)
+/* 8036FDB8 0036BA18 EC 21 00 B2 */ fmuls f1, f1, f2
+/* 8036FDBC 0036BA1C C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FDC0 0036BA20 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8036FDC4 0036BA24 EC 22 18 28 */ fsubs f1, f2, f3
+/* 8036FDC8 0036BA28 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FDCC 0036BA2C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8036FDD0 0036BA30 41 81 00 44 */ bgt lbl_8036FE14
+/* 8036FDD4 0036BA34 38 00 00 02 */ li r0, 2
+/* 8036FDD8 0036BA38 D0 23 00 04 */ stfs f1, 4(r3)
+/* 8036FDDC 0036BA3C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FDE0 0036BA40 48 00 00 34 */ b lbl_8036FE14
+lbl_8036FDE4:
+/* 8036FDE4 0036BA44 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FDE8 0036BA48 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FDEC 0036BA4C 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FDF0 0036BA50 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FDF4 0036BA54 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FDF8 0036BA58 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8036FDFC 0036BA5C C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FE00 0036BA60 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8036FE04 0036BA64 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FE08 0036BA68 EC 21 00 B2 */ fmuls f1, f1, f2
+/* 8036FE0C 0036BA6C EC 00 08 28 */ fsubs f0, f0, f1
+/* 8036FE10 0036BA70 D0 03 00 04 */ stfs f0, 4(r3)
+lbl_8036FE14:
+/* 8036FE14 0036BA74 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FE18 0036BA78 4E 80 00 20 */ blr
+
+.global SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
+SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FE1C 0036BA7C 3C A0 80 40 */ lis r5, lbl_80402690@ha
+/* 8036FE20 0036BA80 54 80 10 3A */ slwi r0, r4, 2
+/* 8036FE24 0036BA84 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
+/* 8036FE28 0036BA88 7C 05 04 2E */ lfsx f0, r5, r0
+/* 8036FE2C 0036BA8C D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8036FE30 0036BA90 4E 80 00 20 */ blr
+
+.global SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
+SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FE34 0036BA94 2C 04 00 7F */ cmpwi r4, 0x7f
+/* 8036FE38 0036BA98 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FE3C 0036BA9C 40 82 00 0C */ bne lbl_8036FE48
+/* 8036FE40 0036BAA0 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FE44 0036BAA4 48 00 00 84 */ b lbl_8036FEC8
+lbl_8036FE48:
+/* 8036FE48 0036BAA8 2C 04 00 7E */ cmpwi r4, 0x7e
+/* 8036FE4C 0036BAAC 40 82 00 0C */ bne lbl_8036FE58
+/* 8036FE50 0036BAB0 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
+/* 8036FE54 0036BAB4 48 00 00 74 */ b lbl_8036FEC8
+lbl_8036FE58:
+/* 8036FE58 0036BAB8 2C 04 00 32 */ cmpwi r4, 0x32
+/* 8036FE5C 0036BABC 40 80 00 3C */ bge lbl_8036FE98
+/* 8036FE60 0036BAC0 54 84 08 3C */ slwi r4, r4, 1
+/* 8036FE64 0036BAC4 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FE68 0036BAC8 38 84 00 01 */ addi r4, r4, 1
+/* 8036FE6C 0036BACC 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FE70 0036BAD0 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FE74 0036BAD4 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FE78 0036BAD8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FE7C 0036BADC C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
+/* 8036FE80 0036BAE0 C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FE84 0036BAE4 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FE88 0036BAE8 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FE8C 0036BAEC EC 22 00 72 */ fmuls f1, f2, f1
+/* 8036FE90 0036BAF0 EC 01 00 24 */ fdivs f0, f1, f0
+/* 8036FE94 0036BAF4 48 00 00 34 */ b lbl_8036FEC8
+lbl_8036FE98:
+/* 8036FE98 0036BAF8 20 84 00 7E */ subfic r4, r4, 0x7e
+/* 8036FE9C 0036BAFC 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FEA0 0036BB00 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FEA4 0036BB04 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FEA8 0036BB08 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FEAC 0036BB0C 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FEB0 0036BB10 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
+/* 8036FEB4 0036BB14 C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FEB8 0036BB18 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FEBC 0036BB1C EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FEC0 0036BB20 EC 21 10 24 */ fdivs f1, f1, f2
+/* 8036FEC4 0036BB24 EC 01 00 24 */ fdivs f0, f1, f0
+lbl_8036FEC8:
+/* 8036FEC8 0036BB28 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8036FECC 0036BB2C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FED0 0036BB30 4E 80 00 20 */ blr
+
+.global SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
+SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FED4 0036BB34 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FED8 0036BB38 4E 80 00 20 */ blr
+
+.global SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
+SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FEDC 0036BB3C 2C 04 00 7F */ cmpwi r4, 0x7f
+/* 8036FEE0 0036BB40 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FEE4 0036BB44 40 82 00 0C */ bne lbl_8036FEF0
+/* 8036FEE8 0036BB48 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FEEC 0036BB4C 48 00 00 84 */ b lbl_8036FF70
+lbl_8036FEF0:
+/* 8036FEF0 0036BB50 2C 04 00 7E */ cmpwi r4, 0x7e
+/* 8036FEF4 0036BB54 40 82 00 0C */ bne lbl_8036FF00
+/* 8036FEF8 0036BB58 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
+/* 8036FEFC 0036BB5C 48 00 00 74 */ b lbl_8036FF70
+lbl_8036FF00:
+/* 8036FF00 0036BB60 2C 04 00 32 */ cmpwi r4, 0x32
+/* 8036FF04 0036BB64 40 80 00 3C */ bge lbl_8036FF40
+/* 8036FF08 0036BB68 54 84 08 3C */ slwi r4, r4, 1
+/* 8036FF0C 0036BB6C 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FF10 0036BB70 38 84 00 01 */ addi r4, r4, 1
+/* 8036FF14 0036BB74 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FF18 0036BB78 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FF1C 0036BB7C C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FF20 0036BB80 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FF24 0036BB84 C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
+/* 8036FF28 0036BB88 C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FF2C 0036BB8C C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FF30 0036BB90 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FF34 0036BB94 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8036FF38 0036BB98 EC 01 00 24 */ fdivs f0, f1, f0
+/* 8036FF3C 0036BB9C 48 00 00 34 */ b lbl_8036FF70
+lbl_8036FF40:
+/* 8036FF40 0036BBA0 20 84 00 7E */ subfic r4, r4, 0x7e
+/* 8036FF44 0036BBA4 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FF48 0036BBA8 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FF4C 0036BBAC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FF50 0036BBB0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FF54 0036BBB4 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FF58 0036BBB8 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
+/* 8036FF5C 0036BBBC C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FF60 0036BBC0 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FF64 0036BBC4 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FF68 0036BBC8 EC 21 10 24 */ fdivs f1, f1, f2
+/* 8036FF6C 0036BBCC EC 01 00 24 */ fdivs f0, f1, f0
+lbl_8036FF70:
+/* 8036FF70 0036BBD0 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8036FF74 0036BBD4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FF78 0036BBD8 4E 80 00 20 */ blr
diff --git a/asm/NW4R/snd_ExternalSoundPlayer.s b/asm/NW4R/snd_ExternalSoundPlayer.s
new file mode 100644
index 0000000..3c13396
--- /dev/null
+++ b/asm/NW4R/snd_ExternalSoundPlayer.s
@@ -0,0 +1,73 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
+InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound:
+/* 8036FF7C 0036BBDC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FF80 0036BBE0 7C 08 02 A6 */ mflr r0
+/* 8036FF84 0036BBE4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8036FF88 0036BBE8 38 03 00 04 */ addi r0, r3, 4
+/* 8036FF8C 0036BBEC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8036FF90 0036BBF0 7C 9F 23 78 */ mr r31, r4
+/* 8036FF94 0036BBF4 38 81 00 08 */ addi r4, r1, 8
+/* 8036FF98 0036BBF8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036FF9C 0036BBFC 7C 7E 1B 78 */ mr r30, r3
+/* 8036FFA0 0036BC00 38 BF 00 D0 */ addi r5, r31, 0xd0
+/* 8036FFA4 0036BC04 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FFA8 0036BC08 4B FF 2C A1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 8036FFAC 0036BC0C 93 DF 00 14 */ stw r30, 0x14(r31)
+/* 8036FFB0 0036BC10 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8036FFB4 0036BC14 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8036FFB8 0036BC18 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8036FFBC 0036BC1C 7C 08 03 A6 */ mtlr r0
+/* 8036FFC0 0036BC20 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FFC4 0036BC24 4E 80 00 20 */ blr
+
+.global RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
+RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound:
+/* 8036FFC8 0036BC28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036FFCC 0036BC2C 7C 08 02 A6 */ mflr r0
+/* 8036FFD0 0036BC30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036FFD4 0036BC34 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036FFD8 0036BC38 7C 9F 23 78 */ mr r31, r4
+/* 8036FFDC 0036BC3C 38 84 00 D0 */ addi r4, r4, 0xd0
+/* 8036FFE0 0036BC40 4B FF 2C 95 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 8036FFE4 0036BC44 38 00 00 00 */ li r0, 0
+/* 8036FFE8 0036BC48 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8036FFEC 0036BC4C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036FFF0 0036BC50 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036FFF4 0036BC54 7C 08 03 A6 */ mtlr r0
+/* 8036FFF8 0036BC58 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036FFFC 0036BC5C 4E 80 00 20 */ blr
+
+.global GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv
+GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv:
+/* 80370000 0036BC60 80 83 00 04 */ lwz r4, 4(r3)
+/* 80370004 0036BC64 38 03 00 04 */ addi r0, r3, 4
+/* 80370008 0036BC68 39 00 00 80 */ li r8, 0x80
+/* 8037000C 0036BC6C 38 60 00 00 */ li r3, 0
+/* 80370010 0036BC70 48 00 00 40 */ b lbl_80370050
+lbl_80370014:
+/* 80370014 0036BC74 88 C4 FF A4 */ lbz r6, -0x5c(r4)
+/* 80370018 0036BC78 38 E4 FF 30 */ addi r7, r4, -208
+/* 8037001C 0036BC7C 80 A4 FF 70 */ lwz r5, -0x90(r4)
+/* 80370020 0036BC80 7C C6 2A 14 */ add r6, r6, r5
+/* 80370024 0036BC84 2C 06 00 7F */ cmpwi r6, 0x7f
+/* 80370028 0036BC88 40 81 00 0C */ ble lbl_80370034
+/* 8037002C 0036BC8C 38 A0 00 7F */ li r5, 0x7f
+/* 80370030 0036BC90 48 00 00 0C */ b lbl_8037003C
+lbl_80370034:
+/* 80370034 0036BC94 7C C5 FE 70 */ srawi r5, r6, 0x1f
+/* 80370038 0036BC98 7C C5 28 78 */ andc r5, r6, r5
+lbl_8037003C:
+/* 8037003C 0036BC9C 7C 08 28 00 */ cmpw r8, r5
+/* 80370040 0036BCA0 40 81 00 0C */ ble lbl_8037004C
+/* 80370044 0036BCA4 7C E3 3B 78 */ mr r3, r7
+/* 80370048 0036BCA8 7C A8 2B 78 */ mr r8, r5
+lbl_8037004C:
+/* 8037004C 0036BCAC 80 84 00 00 */ lwz r4, 0(r4)
+lbl_80370050:
+/* 80370050 0036BCB0 7C 04 00 40 */ cmplw r4, r0
+/* 80370054 0036BCB4 40 82 FF C0 */ bne lbl_80370014
+/* 80370058 0036BCB8 4E 80 00 20 */ blr
diff --git a/asm/text_10_4.s b/asm/text_10_4.s
index 5c78ecd..ba17d86 100644
--- a/asm/text_10_4.s
+++ b/asm/text_10_4.s
@@ -2,329 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_8036FC38
-func_8036FC38:
-/* 8036FC38 0036B898 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
-/* 8036FC3C 0036B89C 3C A0 80 40 */ lis r5, lbl_80402690@ha
-/* 8036FC40 0036B8A0 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FC44 0036B8A4 38 80 00 7F */ li r4, 0x7f
-/* 8036FC48 0036B8A8 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
-/* 8036FC4C 0036B8AC C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FC50 0036B8B0 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FC54 0036B8B4 C0 25 01 FC */ lfs f1, 0x1fc(r5)
-/* 8036FC58 0036B8B8 38 00 00 00 */ li r0, 0
-/* 8036FC5C 0036B8BC D0 43 00 08 */ stfs f2, 8(r3)
-/* 8036FC60 0036B8C0 D0 23 00 10 */ stfs f1, 0x10(r3)
-/* 8036FC64 0036B8C4 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FC68 0036B8C8 D0 43 00 0C */ stfs f2, 0xc(r3)
-/* 8036FC6C 0036B8CC D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FC70 0036B8D0 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FC74 0036B8D4 4E 80 00 20 */ blr
-
-.global func_8036FC78
-func_8036FC78:
-/* 8036FC78 0036B8D8 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FC7C 0036B8DC 3C 80 80 40 */ lis r4, lbl_80402690@ha
-/* 8036FC80 0036B8E0 C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FC84 0036B8E4 38 00 00 00 */ li r0, 0
-/* 8036FC88 0036B8E8 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FC8C 0036B8EC 38 84 26 90 */ addi r4, r4, lbl_80402690@l
-/* 8036FC90 0036B8F0 C0 24 01 FC */ lfs f1, 0x1fc(r4)
-/* 8036FC94 0036B8F4 38 80 00 7F */ li r4, 0x7f
-/* 8036FC98 0036B8F8 D0 43 00 08 */ stfs f2, 8(r3)
-/* 8036FC9C 0036B8FC D0 23 00 10 */ stfs f1, 0x10(r3)
-/* 8036FCA0 0036B900 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FCA4 0036B904 D0 43 00 0C */ stfs f2, 0xc(r3)
-/* 8036FCA8 0036B908 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FCAC 0036B90C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FCB0 0036B910 4E 80 00 20 */ blr
-
-.global func_8036FCB4
-func_8036FCB4:
-/* 8036FCB4 0036B914 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FCB8 0036B918 38 00 00 00 */ li r0, 0
-/* 8036FCBC 0036B91C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FCC0 0036B920 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FCC4 0036B924 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FCC8 0036B928 4E 80 00 20 */ blr
-
-.global func_8036FCCC
-func_8036FCCC:
-/* 8036FCCC 0036B92C 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FCD0 0036B930 2C 00 00 00 */ cmpwi r0, 0
-/* 8036FCD4 0036B934 40 82 00 14 */ bne lbl_8036FCE8
-/* 8036FCD8 0036B938 C0 22 A5 F4 */ lfs f1, lbl_80642BF4-_SDA2_BASE_(r2)
-/* 8036FCDC 0036B93C C0 03 00 10 */ lfs f0, 0x10(r3)
-/* 8036FCE0 0036B940 FC 01 00 00 */ fcmpu cr0, f1, f0
-/* 8036FCE4 0036B944 4D 82 00 20 */ beqlr
-lbl_8036FCE8:
-/* 8036FCE8 0036B948 C0 23 00 04 */ lfs f1, 4(r3)
-/* 8036FCEC 0036B94C C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FCF0 0036B950 EC 21 00 24 */ fdivs f1, f1, f0
-/* 8036FCF4 0036B954 4E 80 00 20 */ blr
-
-.global func_8036FCF8
-func_8036FCF8:
-/* 8036FCF8 0036B958 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FCFC 0036B95C 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FD00 0036B960 2C 00 00 02 */ cmpwi r0, 2
-/* 8036FD04 0036B964 41 82 01 10 */ beq lbl_8036FE14
-/* 8036FD08 0036B968 40 80 00 14 */ bge lbl_8036FD1C
-/* 8036FD0C 0036B96C 2C 00 00 00 */ cmpwi r0, 0
-/* 8036FD10 0036B970 41 82 00 18 */ beq lbl_8036FD28
-/* 8036FD14 0036B974 40 80 00 60 */ bge lbl_8036FD74
-/* 8036FD18 0036B978 48 00 00 FC */ b lbl_8036FE14
-lbl_8036FD1C:
-/* 8036FD1C 0036B97C 2C 00 00 04 */ cmpwi r0, 4
-/* 8036FD20 0036B980 40 80 00 F4 */ bge lbl_8036FE14
-/* 8036FD24 0036B984 48 00 00 C0 */ b lbl_8036FDE4
-lbl_8036FD28:
-/* 8036FD28 0036B988 C0 02 A5 F4 */ lfs f0, lbl_80642BF4-_SDA2_BASE_(r2)
-/* 8036FD2C 0036B98C 38 00 00 01 */ li r0, 1
-/* 8036FD30 0036B990 C0 22 A5 F8 */ lfs f1, lbl_80642BF8-_SDA2_BASE_(r2)
-/* 8036FD34 0036B994 7C 89 03 A6 */ mtctr r4
-/* 8036FD38 0036B998 2C 04 00 00 */ cmpwi r4, 0
-/* 8036FD3C 0036B99C 40 81 00 2C */ ble lbl_8036FD68
-lbl_8036FD40:
-/* 8036FD40 0036B9A0 C0 63 00 04 */ lfs f3, 4(r3)
-/* 8036FD44 0036B9A4 38 84 FF FF */ addi r4, r4, -1
-/* 8036FD48 0036B9A8 C0 43 00 10 */ lfs f2, 0x10(r3)
-/* 8036FD4C 0036B9AC EC 43 00 B2 */ fmuls f2, f3, f2
-/* 8036FD50 0036B9B0 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8036FD54 0036B9B4 D0 43 00 04 */ stfs f2, 4(r3)
-/* 8036FD58 0036B9B8 40 81 00 0C */ ble lbl_8036FD64
-/* 8036FD5C 0036B9BC D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FD60 0036B9C0 90 03 00 00 */ stw r0, 0(r3)
-lbl_8036FD64:
-/* 8036FD64 0036B9C4 42 00 FF DC */ bdnz lbl_8036FD40
-lbl_8036FD68:
-/* 8036FD68 0036B9C8 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FD6C 0036B9CC 2C 00 00 01 */ cmpwi r0, 1
-/* 8036FD70 0036B9D0 40 82 00 A4 */ bne lbl_8036FE14
-lbl_8036FD74:
-/* 8036FD74 0036B9D4 3C A0 43 30 */ lis r5, 0x4330
-/* 8036FD78 0036B9D8 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FD7C 0036B9DC 88 C3 00 14 */ lbz r6, 0x14(r3)
-/* 8036FD80 0036B9E0 3C 80 80 40 */ lis r4, lbl_80402590@ha
-/* 8036FD84 0036B9E4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036FD88 0036B9E8 38 84 25 90 */ addi r4, r4, lbl_80402590@l
-/* 8036FD8C 0036B9EC 54 C0 08 3C */ slwi r0, r6, 1
-/* 8036FD90 0036B9F0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FD94 0036B9F4 90 A1 00 10 */ stw r5, 0x10(r1)
-/* 8036FD98 0036B9F8 7C 04 02 AE */ lhax r0, r4, r0
-/* 8036FD9C 0036B9FC C8 01 00 10 */ lfd f0, 0x10(r1)
-/* 8036FDA0 0036BA00 6C 00 80 00 */ xoris r0, r0, 0x8000
-/* 8036FDA4 0036BA04 C0 23 00 08 */ lfs f1, 8(r3)
-/* 8036FDA8 0036BA08 EC 40 18 28 */ fsubs f2, f0, f3
-/* 8036FDAC 0036BA0C 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FDB0 0036BA10 C0 03 00 04 */ lfs f0, 4(r3)
-/* 8036FDB4 0036BA14 90 A1 00 08 */ stw r5, 8(r1)
-/* 8036FDB8 0036BA18 EC 21 00 B2 */ fmuls f1, f1, f2
-/* 8036FDBC 0036BA1C C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FDC0 0036BA20 EC 00 08 28 */ fsubs f0, f0, f1
-/* 8036FDC4 0036BA24 EC 22 18 28 */ fsubs f1, f2, f3
-/* 8036FDC8 0036BA28 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FDCC 0036BA2C FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 8036FDD0 0036BA30 41 81 00 44 */ bgt lbl_8036FE14
-/* 8036FDD4 0036BA34 38 00 00 02 */ li r0, 2
-/* 8036FDD8 0036BA38 D0 23 00 04 */ stfs f1, 4(r3)
-/* 8036FDDC 0036BA3C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FDE0 0036BA40 48 00 00 34 */ b lbl_8036FE14
-lbl_8036FDE4:
-/* 8036FDE4 0036BA44 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FDE8 0036BA48 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FDEC 0036BA4C 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FDF0 0036BA50 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FDF4 0036BA54 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FDF8 0036BA58 C0 23 00 0C */ lfs f1, 0xc(r3)
-/* 8036FDFC 0036BA5C C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FE00 0036BA60 C0 03 00 04 */ lfs f0, 4(r3)
-/* 8036FE04 0036BA64 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FE08 0036BA68 EC 21 00 B2 */ fmuls f1, f1, f2
-/* 8036FE0C 0036BA6C EC 00 08 28 */ fsubs f0, f0, f1
-/* 8036FE10 0036BA70 D0 03 00 04 */ stfs f0, 4(r3)
-lbl_8036FE14:
-/* 8036FE14 0036BA74 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FE18 0036BA78 4E 80 00 20 */ blr
-
-.global func_8036FE1C
-func_8036FE1C:
-/* 8036FE1C 0036BA7C 3C A0 80 40 */ lis r5, lbl_80402690@ha
-/* 8036FE20 0036BA80 54 80 10 3A */ slwi r0, r4, 2
-/* 8036FE24 0036BA84 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
-/* 8036FE28 0036BA88 7C 05 04 2E */ lfsx f0, r5, r0
-/* 8036FE2C 0036BA8C D0 03 00 10 */ stfs f0, 0x10(r3)
-/* 8036FE30 0036BA90 4E 80 00 20 */ blr
-
-.global func_8036FE34
-func_8036FE34:
-/* 8036FE34 0036BA94 2C 04 00 7F */ cmpwi r4, 0x7f
-/* 8036FE38 0036BA98 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FE3C 0036BA9C 40 82 00 0C */ bne lbl_8036FE48
-/* 8036FE40 0036BAA0 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FE44 0036BAA4 48 00 00 84 */ b lbl_8036FEC8
-lbl_8036FE48:
-/* 8036FE48 0036BAA8 2C 04 00 7E */ cmpwi r4, 0x7e
-/* 8036FE4C 0036BAAC 40 82 00 0C */ bne lbl_8036FE58
-/* 8036FE50 0036BAB0 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
-/* 8036FE54 0036BAB4 48 00 00 74 */ b lbl_8036FEC8
-lbl_8036FE58:
-/* 8036FE58 0036BAB8 2C 04 00 32 */ cmpwi r4, 0x32
-/* 8036FE5C 0036BABC 40 80 00 3C */ bge lbl_8036FE98
-/* 8036FE60 0036BAC0 54 84 08 3C */ slwi r4, r4, 1
-/* 8036FE64 0036BAC4 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FE68 0036BAC8 38 84 00 01 */ addi r4, r4, 1
-/* 8036FE6C 0036BACC 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FE70 0036BAD0 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FE74 0036BAD4 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FE78 0036BAD8 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FE7C 0036BADC C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
-/* 8036FE80 0036BAE0 C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FE84 0036BAE4 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FE88 0036BAE8 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FE8C 0036BAEC EC 22 00 72 */ fmuls f1, f2, f1
-/* 8036FE90 0036BAF0 EC 01 00 24 */ fdivs f0, f1, f0
-/* 8036FE94 0036BAF4 48 00 00 34 */ b lbl_8036FEC8
-lbl_8036FE98:
-/* 8036FE98 0036BAF8 20 84 00 7E */ subfic r4, r4, 0x7e
-/* 8036FE9C 0036BAFC 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FEA0 0036BB00 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FEA4 0036BB04 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FEA8 0036BB08 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FEAC 0036BB0C 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FEB0 0036BB10 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
-/* 8036FEB4 0036BB14 C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FEB8 0036BB18 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FEBC 0036BB1C EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FEC0 0036BB20 EC 21 10 24 */ fdivs f1, f1, f2
-/* 8036FEC4 0036BB24 EC 01 00 24 */ fdivs f0, f1, f0
-lbl_8036FEC8:
-/* 8036FEC8 0036BB28 D0 03 00 08 */ stfs f0, 8(r3)
-/* 8036FECC 0036BB2C 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FED0 0036BB30 4E 80 00 20 */ blr
-
-.global func_8036FED4
-func_8036FED4:
-/* 8036FED4 0036BB34 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FED8 0036BB38 4E 80 00 20 */ blr
-
-.global func_8036FEDC
-func_8036FEDC:
-/* 8036FEDC 0036BB3C 2C 04 00 7F */ cmpwi r4, 0x7f
-/* 8036FEE0 0036BB40 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FEE4 0036BB44 40 82 00 0C */ bne lbl_8036FEF0
-/* 8036FEE8 0036BB48 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FEEC 0036BB4C 48 00 00 84 */ b lbl_8036FF70
-lbl_8036FEF0:
-/* 8036FEF0 0036BB50 2C 04 00 7E */ cmpwi r4, 0x7e
-/* 8036FEF4 0036BB54 40 82 00 0C */ bne lbl_8036FF00
-/* 8036FEF8 0036BB58 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
-/* 8036FEFC 0036BB5C 48 00 00 74 */ b lbl_8036FF70
-lbl_8036FF00:
-/* 8036FF00 0036BB60 2C 04 00 32 */ cmpwi r4, 0x32
-/* 8036FF04 0036BB64 40 80 00 3C */ bge lbl_8036FF40
-/* 8036FF08 0036BB68 54 84 08 3C */ slwi r4, r4, 1
-/* 8036FF0C 0036BB6C 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FF10 0036BB70 38 84 00 01 */ addi r4, r4, 1
-/* 8036FF14 0036BB74 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FF18 0036BB78 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FF1C 0036BB7C C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FF20 0036BB80 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FF24 0036BB84 C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
-/* 8036FF28 0036BB88 C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FF2C 0036BB8C C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FF30 0036BB90 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FF34 0036BB94 EC 22 00 72 */ fmuls f1, f2, f1
-/* 8036FF38 0036BB98 EC 01 00 24 */ fdivs f0, f1, f0
-/* 8036FF3C 0036BB9C 48 00 00 34 */ b lbl_8036FF70
-lbl_8036FF40:
-/* 8036FF40 0036BBA0 20 84 00 7E */ subfic r4, r4, 0x7e
-/* 8036FF44 0036BBA4 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FF48 0036BBA8 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FF4C 0036BBAC 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FF50 0036BBB0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FF54 0036BBB4 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FF58 0036BBB8 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
-/* 8036FF5C 0036BBBC C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FF60 0036BBC0 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FF64 0036BBC4 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FF68 0036BBC8 EC 21 10 24 */ fdivs f1, f1, f2
-/* 8036FF6C 0036BBCC EC 01 00 24 */ fdivs f0, f1, f0
-lbl_8036FF70:
-/* 8036FF70 0036BBD0 D0 03 00 0C */ stfs f0, 0xc(r3)
-/* 8036FF74 0036BBD4 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FF78 0036BBD8 4E 80 00 20 */ blr
-
-.global func_8036FF7C
-func_8036FF7C:
-/* 8036FF7C 0036BBDC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FF80 0036BBE0 7C 08 02 A6 */ mflr r0
-/* 8036FF84 0036BBE4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8036FF88 0036BBE8 38 03 00 04 */ addi r0, r3, 4
-/* 8036FF8C 0036BBEC 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8036FF90 0036BBF0 7C 9F 23 78 */ mr r31, r4
-/* 8036FF94 0036BBF4 38 81 00 08 */ addi r4, r1, 8
-/* 8036FF98 0036BBF8 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8036FF9C 0036BBFC 7C 7E 1B 78 */ mr r30, r3
-/* 8036FFA0 0036BC00 38 BF 00 D0 */ addi r5, r31, 0xd0
-/* 8036FFA4 0036BC04 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FFA8 0036BC08 4B FF 2C A1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 8036FFAC 0036BC0C 93 DF 00 14 */ stw r30, 0x14(r31)
-/* 8036FFB0 0036BC10 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8036FFB4 0036BC14 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8036FFB8 0036BC18 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8036FFBC 0036BC1C 7C 08 03 A6 */ mtlr r0
-/* 8036FFC0 0036BC20 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FFC4 0036BC24 4E 80 00 20 */ blr
-
-.global func_8036FFC8
-func_8036FFC8:
-/* 8036FFC8 0036BC28 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036FFCC 0036BC2C 7C 08 02 A6 */ mflr r0
-/* 8036FFD0 0036BC30 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036FFD4 0036BC34 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036FFD8 0036BC38 7C 9F 23 78 */ mr r31, r4
-/* 8036FFDC 0036BC3C 38 84 00 D0 */ addi r4, r4, 0xd0
-/* 8036FFE0 0036BC40 4B FF 2C 95 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 8036FFE4 0036BC44 38 00 00 00 */ li r0, 0
-/* 8036FFE8 0036BC48 90 1F 00 14 */ stw r0, 0x14(r31)
-/* 8036FFEC 0036BC4C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036FFF0 0036BC50 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036FFF4 0036BC54 7C 08 03 A6 */ mtlr r0
-/* 8036FFF8 0036BC58 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036FFFC 0036BC5C 4E 80 00 20 */ blr
-
-.global func_80370000
-func_80370000:
-/* 80370000 0036BC60 80 83 00 04 */ lwz r4, 4(r3)
-/* 80370004 0036BC64 38 03 00 04 */ addi r0, r3, 4
-/* 80370008 0036BC68 39 00 00 80 */ li r8, 0x80
-/* 8037000C 0036BC6C 38 60 00 00 */ li r3, 0
-/* 80370010 0036BC70 48 00 00 40 */ b lbl_80370050
-lbl_80370014:
-/* 80370014 0036BC74 88 C4 FF A4 */ lbz r6, -0x5c(r4)
-/* 80370018 0036BC78 38 E4 FF 30 */ addi r7, r4, -208
-/* 8037001C 0036BC7C 80 A4 FF 70 */ lwz r5, -0x90(r4)
-/* 80370020 0036BC80 7C C6 2A 14 */ add r6, r6, r5
-/* 80370024 0036BC84 2C 06 00 7F */ cmpwi r6, 0x7f
-/* 80370028 0036BC88 40 81 00 0C */ ble lbl_80370034
-/* 8037002C 0036BC8C 38 A0 00 7F */ li r5, 0x7f
-/* 80370030 0036BC90 48 00 00 0C */ b lbl_8037003C
-lbl_80370034:
-/* 80370034 0036BC94 7C C5 FE 70 */ srawi r5, r6, 0x1f
-/* 80370038 0036BC98 7C C5 28 78 */ andc r5, r6, r5
-lbl_8037003C:
-/* 8037003C 0036BC9C 7C 08 28 00 */ cmpw r8, r5
-/* 80370040 0036BCA0 40 81 00 0C */ ble lbl_8037004C
-/* 80370044 0036BCA4 7C E3 3B 78 */ mr r3, r7
-/* 80370048 0036BCA8 7C A8 2B 78 */ mr r8, r5
-lbl_8037004C:
-/* 8037004C 0036BCAC 80 84 00 00 */ lwz r4, 0(r4)
-lbl_80370050:
-/* 80370050 0036BCB0 7C 04 00 40 */ cmplw r4, r0
-/* 80370054 0036BCB4 40 82 FF C0 */ bne lbl_80370014
-/* 80370058 0036BCB8 4E 80 00 20 */ blr
-
.global func_8037005C
func_8037005C:
/* 8037005C 0036BCBC 38 00 00 00 */ li r0, 0
@@ -6745,7 +6422,7 @@ lbl_80375958:
/* 80375968 003715C8 41 80 00 10 */ blt lbl_80375978
/* 8037596C 003715CC 7F C3 F3 78 */ mr r3, r30
/* 80375970 003715D0 57 A4 06 3E */ clrlwi r4, r29, 0x18
-/* 80375974 003715D4 4B FF A5 69 */ bl func_8036FEDC
+/* 80375974 003715D4 4B FF A5 69 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_80375978:
/* 80375978 003715D8 7F C3 F3 78 */ mr r3, r30
/* 8037597C 003715DC 4B FF 93 65 */ bl Release__Q44nw4r3snd6detail7ChannelFv
@@ -7468,25 +7145,25 @@ lbl_803763AC:
/* 803763B0 00372010 28 04 00 FF */ cmplwi r4, 0xff
/* 803763B4 00372014 41 82 00 0C */ beq lbl_803763C0
/* 803763B8 00372018 7F E3 FB 78 */ mr r3, r31
-/* 803763BC 0037201C 4B FF 9A 61 */ bl func_8036FE1C
+/* 803763BC 0037201C 4B FF 9A 61 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763C0:
/* 803763C0 00372020 88 9C 00 90 */ lbz r4, 0x90(r28)
/* 803763C4 00372024 28 04 00 FF */ cmplwi r4, 0xff
/* 803763C8 00372028 41 82 00 0C */ beq lbl_803763D4
/* 803763CC 0037202C 7F E3 FB 78 */ mr r3, r31
-/* 803763D0 00372030 4B FF 9A 65 */ bl func_8036FE34
+/* 803763D0 00372030 4B FF 9A 65 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763D4:
/* 803763D4 00372034 88 9C 00 91 */ lbz r4, 0x91(r28)
/* 803763D8 00372038 28 04 00 FF */ cmplwi r4, 0xff
/* 803763DC 0037203C 41 82 00 0C */ beq lbl_803763E8
/* 803763E0 00372040 7F E3 FB 78 */ mr r3, r31
-/* 803763E4 00372044 4B FF 9A F1 */ bl func_8036FED4
+/* 803763E4 00372044 4B FF 9A F1 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763E8:
/* 803763E8 00372048 88 9C 00 92 */ lbz r4, 0x92(r28)
/* 803763EC 0037204C 28 04 00 FF */ cmplwi r4, 0xff
/* 803763F0 00372050 41 82 00 0C */ beq lbl_803763FC
/* 803763F4 00372054 7F E3 FB 78 */ mr r3, r31
-/* 803763F8 00372058 4B FF 9A E5 */ bl func_8036FEDC
+/* 803763F8 00372058 4B FF 9A E5 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763FC:
/* 803763FC 0037205C 88 1C 00 5F */ lbz r0, 0x5f(r28)
/* 80376400 00372060 C0 3C 00 80 */ lfs f1, 0x80(r28)
@@ -13453,7 +13130,7 @@ lbl_8037B55C:
/* 8037B584 003771E4 41 82 00 10 */ beq lbl_8037B594
/* 8037B588 003771E8 7F 23 CB 78 */ mr r3, r25
/* 8037B58C 003771EC 7F 64 DB 78 */ mr r4, r27
-/* 8037B590 003771F0 4B FF 49 ED */ bl func_8036FF7C
+/* 8037B590 003771F0 4B FF 49 ED */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B594:
/* 8037B594 003771F4 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037B598 003771F8 7E E3 BB 78 */ mr r3, r23
@@ -13730,7 +13407,7 @@ lbl_8037B920:
/* 8037B948 003775A8 41 82 00 10 */ beq lbl_8037B958
/* 8037B94C 003775AC 7F 23 CB 78 */ mr r3, r25
/* 8037B950 003775B0 7F 64 DB 78 */ mr r4, r27
-/* 8037B954 003775B4 4B FF 46 29 */ bl func_8036FF7C
+/* 8037B954 003775B4 4B FF 46 29 */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B958:
/* 8037B958 003775B8 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037B95C 003775BC 7E E3 BB 78 */ mr r3, r23
@@ -14007,7 +13684,7 @@ lbl_8037BCE4:
/* 8037BD0C 0037796C 41 82 00 10 */ beq lbl_8037BD1C
/* 8037BD10 00377970 7F 23 CB 78 */ mr r3, r25
/* 8037BD14 00377974 7F 64 DB 78 */ mr r4, r27
-/* 8037BD18 00377978 4B FF 42 65 */ bl func_8036FF7C
+/* 8037BD18 00377978 4B FF 42 65 */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037BD1C:
/* 8037BD1C 0037797C 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037BD20 00377980 7E E3 BB 78 */ mr r3, r23
@@ -14185,7 +13862,7 @@ lbl_8037BF34:
/* 8037BF68 00377BC8 48 00 00 70 */ b lbl_8037BFD8
lbl_8037BF6C:
/* 8037BF6C 00377BCC 7F C3 F3 78 */ mr r3, r30
-/* 8037BF70 00377BD0 4B FF 40 91 */ bl func_80370000
+/* 8037BF70 00377BD0 4B FF 40 91 */ bl GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv
/* 8037BF74 00377BD4 2C 03 00 00 */ cmpwi r3, 0
/* 8037BF78 00377BD8 40 82 00 14 */ bne lbl_8037BF8C
/* 8037BF7C 00377BDC 7F E3 FB 78 */ mr r3, r31
diff --git a/asm/text_11.s b/asm/text_11.s
index 146b349..129dda3 100644
--- a/asm/text_11.s
+++ b/asm/text_11.s
@@ -3952,16 +3952,16 @@ lbl_803846DC:
/* 80384700 00380360 48 00 00 5C */ b lbl_8038475C
lbl_80384704:
/* 80384704 00380364 88 81 00 0C */ lbz r4, 0xc(r1)
-/* 80384708 00380368 4B FE B7 15 */ bl func_8036FE1C
+/* 80384708 00380368 4B FE B7 15 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8038470C 0038036C 88 81 00 0D */ lbz r4, 0xd(r1)
/* 80384710 00380370 7F C3 F3 78 */ mr r3, r30
-/* 80384714 00380374 4B FE B7 21 */ bl func_8036FE34
+/* 80384714 00380374 4B FE B7 21 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
/* 80384718 00380378 88 81 00 0E */ lbz r4, 0xe(r1)
/* 8038471C 0038037C 7F C3 F3 78 */ mr r3, r30
-/* 80384720 00380380 4B FE B7 B5 */ bl func_8036FED4
+/* 80384720 00380380 4B FE B7 B5 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
/* 80384724 00380384 88 81 00 0F */ lbz r4, 0xf(r1)
/* 80384728 00380388 7F C3 F3 78 */ mr r3, r30
-/* 8038472C 0038038C 4B FE B7 B1 */ bl func_8036FEDC
+/* 8038472C 0038038C 4B FE B7 B1 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
/* 80384730 00380390 88 1F 00 90 */ lbz r0, 0x90(r31)
/* 80384734 00380394 7F C3 F3 78 */ mr r3, r30
/* 80384738 00380398 7F A6 EB 78 */ mr r6, r29
diff --git a/obj_files.mk b/obj_files.mk
index 6546cdc..0c1c84c 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -115,6 +115,8 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/NW4R/snd_Channel.o \
$(BUILD_DIR)/asm/NW4R/snd_DisposeCallbackManager.o \
$(BUILD_DIR)/asm/NW4R/snd_DvdSoundArchive.o \
+ $(BUILD_DIR)/asm/NW4R/snd_EnvGenerator.o \
+ $(BUILD_DIR)/asm/NW4R/snd_ExternalSoundPlayer.o \
$(BUILD_DIR)/asm/text_10_4.o \
$(BUILD_DIR)/asm/text_11.o