diff options
| author | Max <mparisi@stevens.edu> | 2020-09-24 14:40:02 -0400 | 
|---|---|---|
| committer | Max <mparisi@stevens.edu> | 2020-09-24 14:40:02 -0400 | 
| commit | 53434eeebf3d27f5b63244ef93a5ebdc399b810f (patch) | |
| tree | a94783771bc96d44bf3c9190319d66898b4e330e | |
| parent | ca63e2a15bacdd4fdd1bf4f3a06e9be78ce9bbe0 (diff) | |
split snd_EnvGenerator and snd_ExternalSoundPlayer
| -rw-r--r-- | asm/NW4R/snd_Bank.s | 8 | ||||
| -rw-r--r-- | asm/NW4R/snd_BasicSound.s | 2 | ||||
| -rw-r--r-- | asm/NW4R/snd_Channel.s | 12 | ||||
| -rw-r--r-- | asm/NW4R/snd_EnvGenerator.s | 256 | ||||
| -rw-r--r-- | asm/NW4R/snd_ExternalSoundPlayer.s | 73 | ||||
| -rw-r--r-- | asm/text_10_4.s | 341 | ||||
| -rw-r--r-- | asm/text_11.s | 8 | ||||
| -rw-r--r-- | obj_files.mk | 2 | 
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 | 
