summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-09-26 23:16:31 -0400
committerMax <mparisi@stevens.edu>2020-09-26 23:16:31 -0400
commitdc4a9eceb5ef7a66f44634c4eabc3eaee7e82c92 (patch)
tree41adb1711f71cee8a03b2a1d0756a1e7c8881e92
parentcdfc0bdae086da9f2d44470a810e1a841b656bdb (diff)
split snd_WaveSound, snd_WaveSoundHandle, and snd_WsdFile
-rw-r--r--asm/ctors.s2
-rw-r--r--asm/nw4r/snd/detail/snd_WaveSound.s275
-rw-r--r--asm/nw4r/snd/detail/snd_WsdFile.s237
-rw-r--r--asm/nw4r/snd/snd_SoundArchivePlayer.s14
-rw-r--r--asm/nw4r/snd/snd_SoundPlayer.s4
-rw-r--r--asm/nw4r/snd/snd_WaveSoundHandle.s21
-rw-r--r--asm/text_11.s504
-rw-r--r--obj_files.mk3
8 files changed, 552 insertions, 508 deletions
diff --git a/asm/ctors.s b/asm/ctors.s
index 042ed7d..b6ff010 100644
--- a/asm/ctors.s
+++ b/asm/ctors.s
@@ -68,7 +68,7 @@ lbl_803E1E60:
.4byte func_80262AE0, func_80262E70, func_80263C9C, func_802674AC
.4byte func_80268208, __sinit_$3ut_IOStream_cpp, __sinit_$3ut_FileStream_cpp, __sinit_$3ut_DvdFileStream_cpp
.4byte ut_DvdLockedFileStream_cpp, __sinit_$3ut_TextWriterBase_cpp, __sinit_$3snd_BasicSound_cpp, __sinit_$3snd_SeqSound_cpp
- .4byte __sinit_$3snd_SoundSystem_cpp, __sinit_$3snd_StrmSound_cpp, func_80383998, func_80385E14
+ .4byte __sinit_$3snd_SoundSystem_cpp, __sinit_$3snd_StrmSound_cpp, __sinit_$3snd_WaveSound_cpp, func_80385E14
.4byte func_803872D0, func_80387EA8, func_8038A320, func_8038A3CC
.4byte func_8038F254, func_803D91F4, func_803D9EA0
diff --git a/asm/nw4r/snd/detail/snd_WaveSound.s b/asm/nw4r/snd/detail/snd_WaveSound.s
new file mode 100644
index 0000000..7e94ec3
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_WaveSound.s
@@ -0,0 +1,275 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
+__ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1:
+/* 8038364C 0037F2AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383650 0037F2B0 7C 08 02 A6 */ mflr r0
+/* 80383654 0037F2B4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80383658 0037F2B8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8038365C 0037F2BC 7C 9F 23 78 */ mr r31, r4
+/* 80383660 0037F2C0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80383664 0037F2C4 7C 7E 1B 78 */ mr r30, r3
+/* 80383668 0037F2C8 4B FE 99 7D */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv
+/* 8038366C 0037F2CC 3C 80 80 45 */ lis r4, lbl_8044D050@ha
+/* 80383670 0037F2D0 38 7E 00 D8 */ addi r3, r30, 0xd8
+/* 80383674 0037F2D4 38 84 D0 50 */ addi r4, r4, lbl_8044D050@l
+/* 80383678 0037F2D8 90 9E 00 00 */ stw r4, 0(r30)
+/* 8038367C 0037F2DC 48 00 06 A9 */ bl func_80383D24
+/* 80383680 0037F2E0 38 00 00 00 */ li r0, 0
+/* 80383684 0037F2E4 93 FE 01 CC */ stw r31, 0x1cc(r30)
+/* 80383688 0037F2E8 7F C3 F3 78 */ mr r3, r30
+/* 8038368C 0037F2EC 90 1E 01 C8 */ stw r0, 0x1c8(r30)
+/* 80383690 0037F2F0 98 1E 01 D0 */ stb r0, 0x1d0(r30)
+/* 80383694 0037F2F4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80383698 0037F2F8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8038369C 0037F2FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803836A0 0037F300 7C 08 03 A6 */ mtlr r0
+/* 803836A4 0037F304 38 21 00 10 */ addi r1, r1, 0x10
+/* 803836A8 0037F308 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail9WsdPlayerFv
+__dt__Q44nw4r3snd6detail9WsdPlayerFv:
+/* 803836AC 0037F30C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803836B0 0037F310 7C 08 02 A6 */ mflr r0
+/* 803836B4 0037F314 2C 03 00 00 */ cmpwi r3, 0
+/* 803836B8 0037F318 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803836BC 0037F31C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803836C0 0037F320 7C 7F 1B 78 */ mr r31, r3
+/* 803836C4 0037F324 41 82 00 10 */ beq lbl_803836D4
+/* 803836C8 0037F328 2C 04 00 00 */ cmpwi r4, 0
+/* 803836CC 0037F32C 40 81 00 08 */ ble lbl_803836D4
+/* 803836D0 0037F330 4B E5 73 E9 */ bl func_801DAAB8
+lbl_803836D4:
+/* 803836D4 0037F334 7F E3 FB 78 */ mr r3, r31
+/* 803836D8 0037F338 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803836DC 0037F33C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803836E0 0037F340 7C 08 03 A6 */ mtlr r0
+/* 803836E4 0037F344 38 21 00 10 */ addi r1, r1, 0x10
+/* 803836E8 0037F348 4E 80 00 20 */ blr
+
+.global Prepare__Q44nw4r3snd6detail9WaveSoundFPCvlQ54nw4r3snd6detail9WsdPlayer15StartOffsetTypeliPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl
+Prepare__Q44nw4r3snd6detail9WaveSoundFPCvlQ54nw4r3snd6detail9WsdPlayer15StartOffsetTypeliPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl:
+/* 803836EC 0037F34C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803836F0 0037F350 7C 08 02 A6 */ mflr r0
+/* 803836F4 0037F354 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803836F8 0037F358 39 61 00 30 */ addi r11, r1, 0x30
+/* 803836FC 0037F35C 4B E4 3A 21 */ bl _savegpr_24
+/* 80383700 0037F360 81 83 00 00 */ lwz r12, 0(r3)
+/* 80383704 0037F364 7C 78 1B 78 */ mr r24, r3
+/* 80383708 0037F368 7C 99 23 78 */ mr r25, r4
+/* 8038370C 0037F36C 7C BA 2B 78 */ mr r26, r5
+/* 80383710 0037F370 81 8C 00 64 */ lwz r12, 0x64(r12)
+/* 80383714 0037F374 7C DB 33 78 */ mr r27, r6
+/* 80383718 0037F378 7C FC 3B 78 */ mr r28, r7
+/* 8038371C 0037F37C 7D 1D 43 78 */ mr r29, r8
+/* 80383720 0037F380 7D 3E 4B 78 */ mr r30, r9
+/* 80383724 0037F384 7D 5F 53 78 */ mr r31, r10
+/* 80383728 0037F388 7D 89 03 A6 */ mtctr r12
+/* 8038372C 0037F38C 4E 80 04 21 */ bctrl
+/* 80383730 0037F390 7F 24 CB 78 */ mr r4, r25
+/* 80383734 0037F394 7F 45 D3 78 */ mr r5, r26
+/* 80383738 0037F398 7F 66 DB 78 */ mr r6, r27
+/* 8038373C 0037F39C 7F 87 E3 78 */ mr r7, r28
+/* 80383740 0037F3A0 7F A8 EB 78 */ mr r8, r29
+/* 80383744 0037F3A4 7F C9 F3 78 */ mr r9, r30
+/* 80383748 0037F3A8 7F EA FB 78 */ mr r10, r31
+/* 8038374C 0037F3AC 38 78 00 D8 */ addi r3, r24, 0xd8
+/* 80383750 0037F3B0 48 00 06 F1 */ bl func_80383E40
+/* 80383754 0037F3B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80383758 0037F3B8 40 82 00 0C */ bne lbl_80383764
+/* 8038375C 0037F3BC 38 60 00 00 */ li r3, 0
+/* 80383760 0037F3C0 48 00 00 10 */ b lbl_80383770
+lbl_80383764:
+/* 80383764 0037F3C4 38 00 00 01 */ li r0, 1
+/* 80383768 0037F3C8 38 60 00 01 */ li r3, 1
+/* 8038376C 0037F3CC 98 18 01 D0 */ stb r0, 0x1d0(r24)
+lbl_80383770:
+/* 80383770 0037F3D0 39 61 00 30 */ addi r11, r1, 0x30
+/* 80383774 0037F3D4 4B E4 39 F5 */ bl _restgpr_24
+/* 80383778 0037F3D8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8038377C 0037F3DC 7C 08 03 A6 */ mtlr r0
+/* 80383780 0037F3E0 38 21 00 30 */ addi r1, r1, 0x30
+/* 80383784 0037F3E4 4E 80 00 20 */ blr
+
+.global Shutdown__Q44nw4r3snd6detail9WaveSoundFv
+Shutdown__Q44nw4r3snd6detail9WaveSoundFv:
+/* 80383788 0037F3E8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8038378C 0037F3EC 7C 08 02 A6 */ mflr r0
+/* 80383790 0037F3F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80383794 0037F3F4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80383798 0037F3F8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8038379C 0037F3FC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803837A0 0037F400 7C 7D 1B 78 */ mr r29, r3
+/* 803837A4 0037F404 4B FE A4 D9 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv
+/* 803837A8 0037F408 83 DD 01 CC */ lwz r30, 0x1cc(r29)
+/* 803837AC 0037F40C 3B FE 00 10 */ addi r31, r30, 0x10
+/* 803837B0 0037F410 7F E3 FB 78 */ mr r3, r31
+/* 803837B4 0037F414 4B EE C1 95 */ bl func_8026F948
+/* 803837B8 0037F418 80 1E 00 04 */ lwz r0, 4(r30)
+/* 803837BC 0037F41C 2C 00 00 00 */ cmpwi r0, 0
+/* 803837C0 0037F420 40 82 00 10 */ bne lbl_803837D0
+/* 803837C4 0037F424 7F E3 FB 78 */ mr r3, r31
+/* 803837C8 0037F428 4B EE C2 5D */ bl func_8026FA24
+/* 803837CC 0037F42C 48 00 00 3C */ b lbl_80383808
+lbl_803837D0:
+/* 803837D0 0037F430 38 7E 00 04 */ addi r3, r30, 4
+/* 803837D4 0037F434 38 9D 00 B8 */ addi r4, r29, 0xb8
+/* 803837D8 0037F438 4B FD F4 9D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 803837DC 0037F43C 81 9D 00 00 */ lwz r12, 0(r29)
+/* 803837E0 0037F440 7F A3 EB 78 */ mr r3, r29
+/* 803837E4 0037F444 38 80 FF FF */ li r4, -1
+/* 803837E8 0037F448 81 8C 00 0C */ lwz r12, 0xc(r12)
+/* 803837EC 0037F44C 7D 89 03 A6 */ mtctr r12
+/* 803837F0 0037F450 4E 80 04 21 */ bctrl
+/* 803837F4 0037F454 7F C3 F3 78 */ mr r3, r30
+/* 803837F8 0037F458 7F A4 EB 78 */ mr r4, r29
+/* 803837FC 0037F45C 4B FE E3 B9 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv
+/* 80383800 0037F460 7F E3 FB 78 */ mr r3, r31
+/* 80383804 0037F464 4B EE C2 21 */ bl func_8026FA24
+lbl_80383808:
+/* 80383808 0037F468 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8038380C 0037F46C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80383810 0037F470 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80383814 0037F474 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80383818 0037F478 7C 08 03 A6 */ mtlr r0
+/* 8038381C 0037F47C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80383820 0037F480 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail9WaveSoundFv
+__dt__Q44nw4r3snd6detail9WaveSoundFv:
+/* 80383824 0037F484 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383828 0037F488 7C 08 02 A6 */ mflr r0
+/* 8038382C 0037F48C 2C 03 00 00 */ cmpwi r3, 0
+/* 80383830 0037F490 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80383834 0037F494 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80383838 0037F498 7C 7F 1B 78 */ mr r31, r3
+/* 8038383C 0037F49C 41 82 00 10 */ beq lbl_8038384C
+/* 80383840 0037F4A0 2C 04 00 00 */ cmpwi r4, 0
+/* 80383844 0037F4A4 40 81 00 08 */ ble lbl_8038384C
+/* 80383848 0037F4A8 4B E5 72 71 */ bl func_801DAAB8
+lbl_8038384C:
+/* 8038384C 0037F4AC 7F E3 FB 78 */ mr r3, r31
+/* 80383850 0037F4B0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80383854 0037F4B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80383858 0037F4B8 7C 08 03 A6 */ mtlr r0
+/* 8038385C 0037F4BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80383860 0037F4C0 4E 80 00 20 */ blr
+
+.global SetChannelPriority__Q44nw4r3snd6detail9WaveSoundFi
+SetChannelPriority__Q44nw4r3snd6detail9WaveSoundFi:
+/* 80383864 0037F4C4 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 80383868 0037F4C8 48 00 09 7C */ b lbl_803841E4
+
+.global SetReleasePriorityFix__Q44nw4r3snd6detail9WaveSoundFb
+SetReleasePriorityFix__Q44nw4r3snd6detail9WaveSoundFb:
+/* 8038386C 0037F4CC 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 80383870 0037F4D0 48 00 09 C8 */ b lbl_80384238
+
+.global SetPlayerPriority__Q44nw4r3snd6detail9WaveSoundFi
+SetPlayerPriority__Q44nw4r3snd6detail9WaveSoundFi:
+/* 80383874 0037F4D4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80383878 0037F4D8 7C 08 02 A6 */ mflr r0
+/* 8038387C 0037F4DC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80383880 0037F4E0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80383884 0037F4E4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80383888 0037F4E8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8038388C 0037F4EC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80383890 0037F4F0 7C 7C 1B 78 */ mr r28, r3
+/* 80383894 0037F4F4 4B FE A5 59 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi
+/* 80383898 0037F4F8 88 7C 00 74 */ lbz r3, 0x74(r28)
+/* 8038389C 0037F4FC 80 1C 00 40 */ lwz r0, 0x40(r28)
+/* 803838A0 0037F500 7C 63 02 14 */ add r3, r3, r0
+/* 803838A4 0037F504 2C 03 00 7F */ cmpwi r3, 0x7f
+/* 803838A8 0037F508 40 81 00 0C */ ble lbl_803838B4
+/* 803838AC 0037F50C 3B A0 00 7F */ li r29, 0x7f
+/* 803838B0 0037F510 48 00 00 0C */ b lbl_803838BC
+lbl_803838B4:
+/* 803838B4 0037F514 7C 60 FE 70 */ srawi r0, r3, 0x1f
+/* 803838B8 0037F518 7C 7D 00 78 */ andc r29, r3, r0
+lbl_803838BC:
+/* 803838BC 0037F51C 83 DC 01 CC */ lwz r30, 0x1cc(r28)
+/* 803838C0 0037F520 3B FE 00 10 */ addi r31, r30, 0x10
+/* 803838C4 0037F524 7F E3 FB 78 */ mr r3, r31
+/* 803838C8 0037F528 4B EE C0 81 */ bl func_8026F948
+/* 803838CC 0037F52C 3B 9C 00 B8 */ addi r28, r28, 0xb8
+/* 803838D0 0037F530 38 7E 00 04 */ addi r3, r30, 4
+/* 803838D4 0037F534 7F 84 E3 78 */ mr r4, r28
+/* 803838D8 0037F538 4B FD F3 9D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 803838DC 0037F53C 80 7E 00 08 */ lwz r3, 8(r30)
+/* 803838E0 0037F540 38 1E 00 08 */ addi r0, r30, 8
+/* 803838E4 0037F544 48 00 00 34 */ b lbl_80383918
+lbl_803838E8:
+/* 803838E8 0037F548 88 A3 FF BC */ lbz r5, -0x44(r3)
+/* 803838EC 0037F54C 80 83 FF 88 */ lwz r4, -0x78(r3)
+/* 803838F0 0037F550 7C A5 22 14 */ add r5, r5, r4
+/* 803838F4 0037F554 2C 05 00 7F */ cmpwi r5, 0x7f
+/* 803838F8 0037F558 40 81 00 0C */ ble lbl_80383904
+/* 803838FC 0037F55C 38 80 00 7F */ li r4, 0x7f
+/* 80383900 0037F560 48 00 00 0C */ b lbl_8038390C
+lbl_80383904:
+/* 80383904 0037F564 7C A4 FE 70 */ srawi r4, r5, 0x1f
+/* 80383908 0037F568 7C A4 20 78 */ andc r4, r5, r4
+lbl_8038390C:
+/* 8038390C 0037F56C 7C 1D 20 00 */ cmpw r29, r4
+/* 80383910 0037F570 41 80 00 10 */ blt lbl_80383920
+/* 80383914 0037F574 80 63 00 00 */ lwz r3, 0(r3)
+lbl_80383918:
+/* 80383918 0037F578 7C 03 00 40 */ cmplw r3, r0
+/* 8038391C 0037F57C 40 82 FF CC */ bne lbl_803838E8
+lbl_80383920:
+/* 80383920 0037F580 90 61 00 08 */ stw r3, 8(r1)
+/* 80383924 0037F584 7F 85 E3 78 */ mr r5, r28
+/* 80383928 0037F588 38 7E 00 04 */ addi r3, r30, 4
+/* 8038392C 0037F58C 38 81 00 08 */ addi r4, r1, 8
+/* 80383930 0037F590 4B FD F3 19 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80383934 0037F594 7F E3 FB 78 */ mr r3, r31
+/* 80383938 0037F598 4B EE C0 ED */ bl func_8026FA24
+/* 8038393C 0037F59C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80383940 0037F5A0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80383944 0037F5A4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80383948 0037F5A8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8038394C 0037F5AC 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80383950 0037F5B0 7C 08 03 A6 */ mtlr r0
+/* 80383954 0037F5B4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80383958 0037F5B8 4E 80 00 20 */ blr
+
+.global IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9WaveSoundFv
+IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9WaveSoundFv:
+/* 8038395C 0037F5BC 80 63 01 C8 */ lwz r3, 0x1c8(r3)
+/* 80383960 0037F5C0 7C 03 00 D0 */ neg r0, r3
+/* 80383964 0037F5C4 7C 00 1B 78 */ or r0, r0, r3
+/* 80383968 0037F5C8 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8038396C 0037F5CC 4E 80 00 20 */ blr
+
+.global DetachTempSpecialHandle__Q44nw4r3snd6detail9WaveSoundFv
+DetachTempSpecialHandle__Q44nw4r3snd6detail9WaveSoundFv:
+/* 80383970 0037F5D0 80 63 01 C8 */ lwz r3, 0x1c8(r3)
+/* 80383974 0037F5D4 48 00 00 30 */ b DetachSound__Q34nw4r3snd15WaveSoundHandleFv
+
+.global GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundFv
+GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundFv:
+/* 80383978 0037F5D8 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 8038397C 0037F5DC 4E 80 00 20 */ blr
+
+.global GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundCFv
+GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundCFv:
+/* 80383980 0037F5E0 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 80383984 0037F5E4 4E 80 00 20 */ blr
+
+.global IsPrepared__Q44nw4r3snd6detail9WaveSoundCFv
+IsPrepared__Q44nw4r3snd6detail9WaveSoundCFv:
+/* 80383988 0037F5E8 88 63 01 D0 */ lbz r3, 0x1d0(r3)
+/* 8038398C 0037F5EC 4E 80 00 20 */ blr
+
+.global GetRuntimeTypeInfo__Q44nw4r3snd6detail9WaveSoundCFv
+GetRuntimeTypeInfo__Q44nw4r3snd6detail9WaveSoundCFv:
+/* 80383990 0037F5F0 38 6D B2 A0 */ addi r3, r13, lbl_80640560-_SDA_BASE_
+/* 80383994 0037F5F4 4E 80 00 20 */ blr
+
+.global __sinit_$3snd_WaveSound_cpp
+__sinit_$3snd_WaveSound_cpp:
+/* 80383998 0037F5F8 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_
+/* 8038399C 0037F5FC 90 0D B2 A0 */ stw r0, lbl_80640560-_SDA_BASE_(r13)
+/* 803839A0 0037F600 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/detail/snd_WsdFile.s b/asm/nw4r/snd/detail/snd_WsdFile.s
new file mode 100644
index 0000000..041845f
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_WsdFile.s
@@ -0,0 +1,237 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail13WsdFileReaderFPCv
+__ct__Q44nw4r3snd6detail13WsdFileReaderFPCv:
+/* 803839DC 0037F63C 80 A4 00 00 */ lwz r5, 0(r4)
+/* 803839E0 0037F640 38 C0 00 00 */ li r6, 0
+/* 803839E4 0037F644 90 C3 00 00 */ stw r6, 0(r3)
+/* 803839E8 0037F648 3C 05 AD A9 */ addis r0, r5, 0xada9
+/* 803839EC 0037F64C 28 00 53 44 */ cmplwi r0, 0x5344
+/* 803839F0 0037F650 90 C3 00 04 */ stw r6, 4(r3)
+/* 803839F4 0037F654 90 C3 00 08 */ stw r6, 8(r3)
+/* 803839F8 0037F658 41 82 00 0C */ beq lbl_80383A04
+/* 803839FC 0037F65C 38 00 00 00 */ li r0, 0
+/* 80383A00 0037F660 48 00 00 30 */ b lbl_80383A30
+lbl_80383A04:
+/* 80383A04 0037F664 A0 C4 00 06 */ lhz r6, 6(r4)
+/* 80383A08 0037F668 28 06 01 00 */ cmplwi r6, 0x100
+/* 80383A0C 0037F66C 40 80 00 0C */ bge lbl_80383A18
+/* 80383A10 0037F670 38 00 00 00 */ li r0, 0
+/* 80383A14 0037F674 48 00 00 1C */ b lbl_80383A30
+lbl_80383A18:
+/* 80383A18 0037F678 20 06 01 02 */ subfic r0, r6, 0x102
+/* 80383A1C 0037F67C 38 A0 01 02 */ li r5, 0x102
+/* 80383A20 0037F680 7C A5 33 38 */ orc r5, r5, r6
+/* 80383A24 0037F684 54 00 F8 7E */ srwi r0, r0, 1
+/* 80383A28 0037F688 7C 00 28 50 */ subf r0, r0, r5
+/* 80383A2C 0037F68C 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_80383A30:
+/* 80383A30 0037F690 2C 00 00 00 */ cmpwi r0, 0
+/* 80383A34 0037F694 4D 82 00 20 */ beqlr
+/* 80383A38 0037F698 80 A4 00 10 */ lwz r5, 0x10(r4)
+/* 80383A3C 0037F69C 80 04 00 18 */ lwz r0, 0x18(r4)
+/* 80383A40 0037F6A0 7C A5 22 14 */ add r5, r5, r4
+/* 80383A44 0037F6A4 90 83 00 00 */ stw r4, 0(r3)
+/* 80383A48 0037F6A8 7C 00 22 14 */ add r0, r0, r4
+/* 80383A4C 0037F6AC 90 A3 00 04 */ stw r5, 4(r3)
+/* 80383A50 0037F6B0 90 03 00 08 */ stw r0, 8(r3)
+/* 80383A54 0037F6B4 4E 80 00 20 */ blr
+
+.global ReadWaveSoundInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail13WaveSoundInfoi
+ReadWaveSoundInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail13WaveSoundInfoi:
+/* 80383A58 0037F6B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383A5C 0037F6BC 7C 08 02 A6 */ mflr r0
+/* 80383A60 0037F6C0 80 C3 00 04 */ lwz r6, 4(r3)
+/* 80383A64 0037F6C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80383A68 0037F6C8 54 A0 18 38 */ slwi r0, r5, 3
+/* 80383A6C 0037F6CC 38 A6 00 08 */ addi r5, r6, 8
+/* 80383A70 0037F6D0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80383A74 0037F6D4 7C 9F 23 78 */ mr r31, r4
+/* 80383A78 0037F6D8 7C 86 02 14 */ add r4, r6, r0
+/* 80383A7C 0037F6DC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80383A80 0037F6E0 7C 7E 1B 78 */ mr r30, r3
+/* 80383A84 0037F6E4 88 64 00 0C */ lbz r3, 0xc(r4)
+/* 80383A88 0037F6E8 80 84 00 10 */ lwz r4, 0x10(r4)
+/* 80383A8C 0037F6EC 4B FF F9 5D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+/* 80383A90 0037F6F0 7C 64 1B 78 */ mr r4, r3
+/* 80383A94 0037F6F4 80 BE 00 04 */ lwz r5, 4(r30)
+/* 80383A98 0037F6F8 88 63 00 00 */ lbz r3, 0(r3)
+/* 80383A9C 0037F6FC 80 84 00 04 */ lwz r4, 4(r4)
+/* 80383AA0 0037F700 38 A5 00 08 */ addi r5, r5, 8
+/* 80383AA4 0037F704 4B FF F9 45 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+/* 80383AA8 0037F708 80 9E 00 00 */ lwz r4, 0(r30)
+/* 80383AAC 0037F70C A0 04 00 06 */ lhz r0, 6(r4)
+/* 80383AB0 0037F710 28 00 01 02 */ cmplwi r0, 0x102
+/* 80383AB4 0037F714 40 82 00 40 */ bne lbl_80383AF4
+/* 80383AB8 0037F718 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80383ABC 0037F71C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80383AC0 0037F720 88 03 00 04 */ lbz r0, 4(r3)
+/* 80383AC4 0037F724 98 1F 00 04 */ stb r0, 4(r31)
+/* 80383AC8 0037F728 88 03 00 05 */ lbz r0, 5(r3)
+/* 80383ACC 0037F72C 98 1F 00 05 */ stb r0, 5(r31)
+/* 80383AD0 0037F730 88 03 00 06 */ lbz r0, 6(r3)
+/* 80383AD4 0037F734 98 1F 00 06 */ stb r0, 6(r31)
+/* 80383AD8 0037F738 88 03 00 07 */ lbz r0, 7(r3)
+/* 80383ADC 0037F73C 98 1F 00 07 */ stb r0, 7(r31)
+/* 80383AE0 0037F740 88 03 00 08 */ lbz r0, 8(r3)
+/* 80383AE4 0037F744 98 1F 00 08 */ stb r0, 8(r31)
+/* 80383AE8 0037F748 88 03 00 09 */ lbz r0, 9(r3)
+/* 80383AEC 0037F74C 98 1F 00 09 */ stb r0, 9(r31)
+/* 80383AF0 0037F750 48 00 00 6C */ b lbl_80383B5C
+lbl_80383AF4:
+/* 80383AF4 0037F754 28 00 01 01 */ cmplwi r0, 0x101
+/* 80383AF8 0037F758 40 82 00 38 */ bne lbl_80383B30
+/* 80383AFC 0037F75C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80383B00 0037F760 38 80 00 00 */ li r4, 0
+/* 80383B04 0037F764 38 00 00 7F */ li r0, 0x7f
+/* 80383B08 0037F768 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80383B0C 0037F76C 88 A3 00 04 */ lbz r5, 4(r3)
+/* 80383B10 0037F770 98 BF 00 04 */ stb r5, 4(r31)
+/* 80383B14 0037F774 88 63 00 05 */ lbz r3, 5(r3)
+/* 80383B18 0037F778 98 7F 00 05 */ stb r3, 5(r31)
+/* 80383B1C 0037F77C 98 9F 00 06 */ stb r4, 6(r31)
+/* 80383B20 0037F780 98 9F 00 07 */ stb r4, 7(r31)
+/* 80383B24 0037F784 98 9F 00 08 */ stb r4, 8(r31)
+/* 80383B28 0037F788 98 1F 00 09 */ stb r0, 9(r31)
+/* 80383B2C 0037F78C 48 00 00 30 */ b lbl_80383B5C
+lbl_80383B30:
+/* 80383B30 0037F790 C0 02 A7 F0 */ lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
+/* 80383B34 0037F794 38 60 00 00 */ li r3, 0
+/* 80383B38 0037F798 38 80 00 40 */ li r4, 0x40
+/* 80383B3C 0037F79C 38 00 00 7F */ li r0, 0x7f
+/* 80383B40 0037F7A0 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80383B44 0037F7A4 98 9F 00 04 */ stb r4, 4(r31)
+/* 80383B48 0037F7A8 98 7F 00 05 */ stb r3, 5(r31)
+/* 80383B4C 0037F7AC 98 7F 00 06 */ stb r3, 6(r31)
+/* 80383B50 0037F7B0 98 7F 00 07 */ stb r3, 7(r31)
+/* 80383B54 0037F7B4 98 7F 00 08 */ stb r3, 8(r31)
+/* 80383B58 0037F7B8 98 1F 00 09 */ stb r0, 9(r31)
+lbl_80383B5C:
+/* 80383B5C 0037F7BC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80383B60 0037F7C0 38 60 00 01 */ li r3, 1
+/* 80383B64 0037F7C4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80383B68 0037F7C8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80383B6C 0037F7CC 7C 08 03 A6 */ mtlr r0
+/* 80383B70 0037F7D0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80383B74 0037F7D4 4E 80 00 20 */ blr
+
+.global ReadWaveSoundNoteInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail17WaveSoundNoteInfoii
+ReadWaveSoundNoteInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail17WaveSoundNoteInfoii:
+/* 80383B78 0037F7D8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80383B7C 0037F7DC 7C 08 02 A6 */ mflr r0
+/* 80383B80 0037F7E0 80 E3 00 04 */ lwz r7, 4(r3)
+/* 80383B84 0037F7E4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80383B88 0037F7E8 54 A0 18 38 */ slwi r0, r5, 3
+/* 80383B8C 0037F7EC 38 A7 00 08 */ addi r5, r7, 8
+/* 80383B90 0037F7F0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80383B94 0037F7F4 7C 9F 23 78 */ mr r31, r4
+/* 80383B98 0037F7F8 7C 87 02 14 */ add r4, r7, r0
+/* 80383B9C 0037F7FC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80383BA0 0037F800 7C DE 33 78 */ mr r30, r6
+/* 80383BA4 0037F804 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80383BA8 0037F808 7C 7D 1B 78 */ mr r29, r3
+/* 80383BAC 0037F80C 88 64 00 0C */ lbz r3, 0xc(r4)
+/* 80383BB0 0037F810 80 84 00 10 */ lwz r4, 0x10(r4)
+/* 80383BB4 0037F814 4B FF F8 35 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+/* 80383BB8 0037F818 7C 64 1B 78 */ mr r4, r3
+/* 80383BBC 0037F81C 80 BD 00 04 */ lwz r5, 4(r29)
+/* 80383BC0 0037F820 88 63 00 10 */ lbz r3, 0x10(r3)
+/* 80383BC4 0037F824 80 84 00 14 */ lwz r4, 0x14(r4)
+/* 80383BC8 0037F828 38 A5 00 08 */ addi r5, r5, 8
+/* 80383BCC 0037F82C 4B FF F8 1D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+/* 80383BD0 0037F830 57 C0 18 38 */ slwi r0, r30, 3
+/* 80383BD4 0037F834 80 9D 00 04 */ lwz r4, 4(r29)
+/* 80383BD8 0037F838 7C C3 02 14 */ add r6, r3, r0
+/* 80383BDC 0037F83C 38 A4 00 08 */ addi r5, r4, 8
+/* 80383BE0 0037F840 88 66 00 04 */ lbz r3, 4(r6)
+/* 80383BE4 0037F844 80 86 00 08 */ lwz r4, 8(r6)
+/* 80383BE8 0037F848 4B FF F8 01 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+/* 80383BEC 0037F84C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80383BF0 0037F850 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80383BF4 0037F854 90 1F 00 00 */ stw r0, 0(r31)
+/* 80383BF8 0037F858 88 03 00 04 */ lbz r0, 4(r3)
+/* 80383BFC 0037F85C 98 1F 00 04 */ stb r0, 4(r31)
+/* 80383C00 0037F860 88 03 00 05 */ lbz r0, 5(r3)
+/* 80383C04 0037F864 98 1F 00 05 */ stb r0, 5(r31)
+/* 80383C08 0037F868 88 03 00 06 */ lbz r0, 6(r3)
+/* 80383C0C 0037F86C 98 1F 00 06 */ stb r0, 6(r31)
+/* 80383C10 0037F870 88 03 00 07 */ lbz r0, 7(r3)
+/* 80383C14 0037F874 98 1F 00 07 */ stb r0, 7(r31)
+/* 80383C18 0037F878 88 03 00 0C */ lbz r0, 0xc(r3)
+/* 80383C1C 0037F87C 98 1F 00 08 */ stb r0, 8(r31)
+/* 80383C20 0037F880 88 03 00 0D */ lbz r0, 0xd(r3)
+/* 80383C24 0037F884 98 1F 00 0B */ stb r0, 0xb(r31)
+/* 80383C28 0037F888 A0 04 00 06 */ lhz r0, 6(r4)
+/* 80383C2C 0037F88C 28 00 01 01 */ cmplwi r0, 0x101
+/* 80383C30 0037F890 41 80 00 20 */ blt lbl_80383C50
+/* 80383C34 0037F894 88 03 00 0E */ lbz r0, 0xe(r3)
+/* 80383C38 0037F898 98 1F 00 09 */ stb r0, 9(r31)
+/* 80383C3C 0037F89C 88 03 00 0F */ lbz r0, 0xf(r3)
+/* 80383C40 0037F8A0 98 1F 00 0A */ stb r0, 0xa(r31)
+/* 80383C44 0037F8A4 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 80383C48 0037F8A8 D0 1F 00 0C */ stfs f0, 0xc(r31)
+/* 80383C4C 0037F8AC 48 00 00 1C */ b lbl_80383C68
+lbl_80383C50:
+/* 80383C50 0037F8B0 C0 02 A7 F0 */ lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
+/* 80383C54 0037F8B4 38 60 00 40 */ li r3, 0x40
+/* 80383C58 0037F8B8 38 00 00 00 */ li r0, 0
+/* 80383C5C 0037F8BC 98 7F 00 09 */ stb r3, 9(r31)
+/* 80383C60 0037F8C0 98 1F 00 0A */ stb r0, 0xa(r31)
+/* 80383C64 0037F8C4 D0 1F 00 0C */ stfs f0, 0xc(r31)
+lbl_80383C68:
+/* 80383C68 0037F8C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80383C6C 0037F8CC 38 60 00 01 */ li r3, 1
+/* 80383C70 0037F8D0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80383C74 0037F8D4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80383C78 0037F8D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80383C7C 0037F8DC 7C 08 03 A6 */ mtlr r0
+/* 80383C80 0037F8E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80383C84 0037F8E4 4E 80 00 20 */ blr
+
+.global ReadWaveParam__Q44nw4r3snd6detail13WsdFileReaderCFiPQ44nw4r3snd6detail8WaveDataPCv
+ReadWaveParam__Q44nw4r3snd6detail13WsdFileReaderCFiPQ44nw4r3snd6detail8WaveDataPCv:
+/* 80383C88 0037F8E8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80383C8C 0037F8EC 7C 08 02 A6 */ mflr r0
+/* 80383C90 0037F8F0 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80383C94 0037F8F4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80383C98 0037F8F8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80383C9C 0037F8FC 7C DF 33 78 */ mr r31, r6
+/* 80383CA0 0037F900 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80383CA4 0037F904 7C BE 2B 78 */ mr r30, r5
+/* 80383CA8 0037F908 A0 07 00 06 */ lhz r0, 6(r7)
+/* 80383CAC 0037F90C 28 00 01 00 */ cmplwi r0, 0x100
+/* 80383CB0 0037F910 40 82 00 1C */ bne lbl_80383CCC
+/* 80383CB4 0037F914 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80383CB8 0037F918 54 80 10 3A */ slwi r0, r4, 2
+/* 80383CBC 0037F91C 7C 65 02 14 */ add r3, r5, r0
+/* 80383CC0 0037F920 80 03 00 08 */ lwz r0, 8(r3)
+/* 80383CC4 0037F924 7C 80 2A 14 */ add r4, r0, r5
+/* 80383CC8 0037F928 48 00 00 2C */ b lbl_80383CF4
+lbl_80383CCC:
+/* 80383CCC 0037F92C 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80383CD0 0037F930 80 05 00 08 */ lwz r0, 8(r5)
+/* 80383CD4 0037F934 7C 04 00 40 */ cmplw r4, r0
+/* 80383CD8 0037F938 41 80 00 0C */ blt lbl_80383CE4
+/* 80383CDC 0037F93C 38 60 00 00 */ li r3, 0
+/* 80383CE0 0037F940 48 00 00 2C */ b lbl_80383D0C
+lbl_80383CE4:
+/* 80383CE4 0037F944 54 80 10 3A */ slwi r0, r4, 2
+/* 80383CE8 0037F948 7C 65 02 14 */ add r3, r5, r0
+/* 80383CEC 0037F94C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80383CF0 0037F950 7C 80 2A 14 */ add r4, r0, r5
+lbl_80383CF4:
+/* 80383CF4 0037F954 38 61 00 08 */ addi r3, r1, 8
+/* 80383CF8 0037F958 4B FF F7 15 */ bl __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
+/* 80383CFC 0037F95C 7F C4 F3 78 */ mr r4, r30
+/* 80383D00 0037F960 7F E5 FB 78 */ mr r5, r31
+/* 80383D04 0037F964 38 61 00 08 */ addi r3, r1, 8
+/* 80383D08 0037F968 4B FF F7 0D */ bl ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
+lbl_80383D0C:
+/* 80383D0C 0037F96C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80383D10 0037F970 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80383D14 0037F974 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80383D18 0037F978 7C 08 03 A6 */ mtlr r0
+/* 80383D1C 0037F97C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80383D20 0037F980 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/snd_SoundArchivePlayer.s b/asm/nw4r/snd/snd_SoundArchivePlayer.s
index 6266ba5..fac36be 100644
--- a/asm/nw4r/snd/snd_SoundArchivePlayer.s
+++ b/asm/nw4r/snd/snd_SoundArchivePlayer.s
@@ -1902,7 +1902,7 @@ lbl_8037A394:
/* 8037A3A0 00376000 7F C7 F3 78 */ mr r7, r30
/* 8037A3A4 00376004 7F E8 FB 78 */ mr r8, r31
/* 8037A3A8 00376008 39 39 00 28 */ addi r9, r25, 0x28
-/* 8037A3AC 0037600C 48 00 93 41 */ bl func_803836EC
+/* 8037A3AC 0037600C 48 00 93 41 */ bl Prepare__Q44nw4r3snd6detail9WaveSoundFPCvlQ54nw4r3snd6detail9WsdPlayer15StartOffsetTypeliPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl
/* 8037A3B0 00376010 2C 03 00 00 */ cmpwi r3, 0
/* 8037A3B4 00376014 40 82 00 0C */ bne lbl_8037A3C0
/* 8037A3B8 00376018 38 60 00 FF */ li r3, 0xff
@@ -1925,10 +1925,10 @@ lbl_8037A3C0:
/* 8037A3F8 00376058 4E 80 04 21 */ bctrl
/* 8037A3FC 0037605C 80 9C 00 04 */ lwz r4, 4(r28)
/* 8037A400 00376060 7F 43 D3 78 */ mr r3, r26
-/* 8037A404 00376064 48 00 94 61 */ bl func_80383864
+/* 8037A404 00376064 48 00 94 61 */ bl SetChannelPriority__Q44nw4r3snd6detail9WaveSoundFi
/* 8037A408 00376068 88 9C 00 08 */ lbz r4, 8(r28)
/* 8037A40C 0037606C 7F 43 D3 78 */ mr r3, r26
-/* 8037A410 00376070 48 00 94 5D */ bl func_8038386C
+/* 8037A410 00376070 48 00 94 5D */ bl SetReleasePriorityFix__Q44nw4r3snd6detail9WaveSoundFb
/* 8037A414 00376074 81 9A 00 00 */ lwz r12, 0(r26)
/* 8037A418 00376078 7F 43 D3 78 */ mr r3, r26
/* 8037A41C 0037607C 80 9B 00 10 */ lwz r4, 0x10(r27)
@@ -2241,11 +2241,11 @@ lbl_8037A810:
lbl_8037A830:
/* 8037A830 00376490 7F 84 E3 78 */ mr r4, r28
/* 8037A834 00376494 38 61 00 08 */ addi r3, r1, 8
-/* 8037A838 00376498 48 00 91 A5 */ bl func_803839DC
+/* 8037A838 00376498 48 00 91 A5 */ bl __ct__Q44nw4r3snd6detail13WsdFileReaderFPCv
/* 8037A83C 0037649C 7F 24 CB 78 */ mr r4, r25
/* 8037A840 003764A0 7F A5 EB 78 */ mr r5, r29
/* 8037A844 003764A4 38 61 00 08 */ addi r3, r1, 8
-/* 8037A848 003764A8 48 00 92 11 */ bl func_80383A58
+/* 8037A848 003764A8 48 00 92 11 */ bl ReadWaveSoundInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail13WaveSoundInfoi
/* 8037A84C 003764AC 2C 03 00 00 */ cmpwi r3, 0
/* 8037A850 003764B0 40 82 00 0C */ bne lbl_8037A85C
/* 8037A854 003764B4 38 60 00 00 */ li r3, 0
@@ -2255,7 +2255,7 @@ lbl_8037A85C:
/* 8037A860 003764C0 7F A5 EB 78 */ mr r5, r29
/* 8037A864 003764C4 7F C6 F3 78 */ mr r6, r30
/* 8037A868 003764C8 38 61 00 08 */ addi r3, r1, 8
-/* 8037A86C 003764CC 48 00 93 0D */ bl func_80383B78
+/* 8037A86C 003764CC 48 00 93 0D */ bl ReadWaveSoundNoteInfo__Q44nw4r3snd6detail13WsdFileReaderCFPQ44nw4r3snd6detail17WaveSoundNoteInfoii
/* 8037A870 003764D0 2C 03 00 00 */ cmpwi r3, 0
/* 8037A874 003764D4 40 82 00 0C */ bne lbl_8037A880
/* 8037A878 003764D8 38 60 00 00 */ li r3, 0
@@ -2265,7 +2265,7 @@ lbl_8037A880:
/* 8037A884 003764E4 7F 65 DB 78 */ mr r5, r27
/* 8037A888 003764E8 7F E6 FB 78 */ mr r6, r31
/* 8037A88C 003764EC 38 61 00 08 */ addi r3, r1, 8
-/* 8037A890 003764F0 48 00 93 F9 */ bl func_80383C88
+/* 8037A890 003764F0 48 00 93 F9 */ bl ReadWaveParam__Q44nw4r3snd6detail13WsdFileReaderCFiPQ44nw4r3snd6detail8WaveDataPCv
lbl_8037A894:
/* 8037A894 003764F4 39 61 00 40 */ addi r11, r1, 0x40
/* 8037A898 003764F8 4B E4 C8 D1 */ bl _restgpr_24
diff --git a/asm/nw4r/snd/snd_SoundPlayer.s b/asm/nw4r/snd/snd_SoundPlayer.s
index 290b7e6..f01f737 100644
--- a/asm/nw4r/snd/snd_SoundPlayer.s
+++ b/asm/nw4r/snd/snd_SoundPlayer.s
@@ -1127,7 +1127,7 @@ lbl_8037BADC:
/* 8037BAF8 00377758 7C 7B 1B 78 */ mr r27, r3
/* 8037BAFC 0037775C 41 82 00 B4 */ beq lbl_8037BBB0
/* 8037BB00 00377760 7F 44 D3 78 */ mr r4, r26
-/* 8037BB04 00377764 48 00 7B 49 */ bl func_8038364C
+/* 8037BB04 00377764 48 00 7B 49 */ bl __ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
/* 8037BB08 00377768 7C 7B 1B 78 */ mr r27, r3
/* 8037BB0C 0037776C 48 00 00 A4 */ b lbl_8037BBB0
lbl_8037BB10:
@@ -1175,7 +1175,7 @@ lbl_8037BB80:
/* 8037BB9C 003777FC 2C 03 00 00 */ cmpwi r3, 0
/* 8037BBA0 00377800 41 82 00 0C */ beq lbl_8037BBAC
/* 8037BBA4 00377804 7F 44 D3 78 */ mr r4, r26
-/* 8037BBA8 00377808 48 00 7A A5 */ bl func_8038364C
+/* 8037BBA8 00377808 48 00 7A A5 */ bl __ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
lbl_8037BBAC:
/* 8037BBAC 0037780C 7C 7B 1B 78 */ mr r27, r3
lbl_8037BBB0:
diff --git a/asm/nw4r/snd/snd_WaveSoundHandle.s b/asm/nw4r/snd/snd_WaveSoundHandle.s
new file mode 100644
index 0000000..20001b6
--- /dev/null
+++ b/asm/nw4r/snd/snd_WaveSoundHandle.s
@@ -0,0 +1,21 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DetachSound__Q34nw4r3snd15WaveSoundHandleFv
+DetachSound__Q34nw4r3snd15WaveSoundHandleFv:
+/* 803839A4 0037F604 80 83 00 00 */ lwz r4, 0(r3)
+/* 803839A8 0037F608 2C 04 00 00 */ cmpwi r4, 0
+/* 803839AC 0037F60C 41 82 00 18 */ beq lbl_803839C4
+/* 803839B0 0037F610 80 04 01 C8 */ lwz r0, 0x1c8(r4)
+/* 803839B4 0037F614 7C 00 18 40 */ cmplw r0, r3
+/* 803839B8 0037F618 40 82 00 0C */ bne lbl_803839C4
+/* 803839BC 0037F61C 38 00 00 00 */ li r0, 0
+/* 803839C0 0037F620 90 04 01 C8 */ stw r0, 0x1c8(r4)
+lbl_803839C4:
+/* 803839C4 0037F624 80 03 00 00 */ lwz r0, 0(r3)
+/* 803839C8 0037F628 2C 00 00 00 */ cmpwi r0, 0
+/* 803839CC 0037F62C 4D 82 00 20 */ beqlr
+/* 803839D0 0037F630 38 00 00 00 */ li r0, 0
+/* 803839D4 0037F634 90 03 00 00 */ stw r0, 0(r3)
+/* 803839D8 0037F638 4E 80 00 20 */ blr
diff --git a/asm/text_11.s b/asm/text_11.s
index 512a084..08c3334 100644
--- a/asm/text_11.s
+++ b/asm/text_11.s
@@ -2,502 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_8038364C
-func_8038364C:
-/* 8038364C 0037F2AC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383650 0037F2B0 7C 08 02 A6 */ mflr r0
-/* 80383654 0037F2B4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80383658 0037F2B8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8038365C 0037F2BC 7C 9F 23 78 */ mr r31, r4
-/* 80383660 0037F2C0 93 C1 00 08 */ stw r30, 8(r1)
-/* 80383664 0037F2C4 7C 7E 1B 78 */ mr r30, r3
-/* 80383668 0037F2C8 4B FE 99 7D */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv
-/* 8038366C 0037F2CC 3C 80 80 45 */ lis r4, lbl_8044D050@ha
-/* 80383670 0037F2D0 38 7E 00 D8 */ addi r3, r30, 0xd8
-/* 80383674 0037F2D4 38 84 D0 50 */ addi r4, r4, lbl_8044D050@l
-/* 80383678 0037F2D8 90 9E 00 00 */ stw r4, 0(r30)
-/* 8038367C 0037F2DC 48 00 06 A9 */ bl func_80383D24
-/* 80383680 0037F2E0 38 00 00 00 */ li r0, 0
-/* 80383684 0037F2E4 93 FE 01 CC */ stw r31, 0x1cc(r30)
-/* 80383688 0037F2E8 7F C3 F3 78 */ mr r3, r30
-/* 8038368C 0037F2EC 90 1E 01 C8 */ stw r0, 0x1c8(r30)
-/* 80383690 0037F2F0 98 1E 01 D0 */ stb r0, 0x1d0(r30)
-/* 80383694 0037F2F4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80383698 0037F2F8 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8038369C 0037F2FC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 803836A0 0037F300 7C 08 03 A6 */ mtlr r0
-/* 803836A4 0037F304 38 21 00 10 */ addi r1, r1, 0x10
-/* 803836A8 0037F308 4E 80 00 20 */ blr
-lbl_803836AC:
-/* 803836AC 0037F30C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 803836B0 0037F310 7C 08 02 A6 */ mflr r0
-/* 803836B4 0037F314 2C 03 00 00 */ cmpwi r3, 0
-/* 803836B8 0037F318 90 01 00 14 */ stw r0, 0x14(r1)
-/* 803836BC 0037F31C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 803836C0 0037F320 7C 7F 1B 78 */ mr r31, r3
-/* 803836C4 0037F324 41 82 00 10 */ beq lbl_803836D4
-/* 803836C8 0037F328 2C 04 00 00 */ cmpwi r4, 0
-/* 803836CC 0037F32C 40 81 00 08 */ ble lbl_803836D4
-/* 803836D0 0037F330 4B E5 73 E9 */ bl func_801DAAB8
-lbl_803836D4:
-/* 803836D4 0037F334 7F E3 FB 78 */ mr r3, r31
-/* 803836D8 0037F338 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 803836DC 0037F33C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 803836E0 0037F340 7C 08 03 A6 */ mtlr r0
-/* 803836E4 0037F344 38 21 00 10 */ addi r1, r1, 0x10
-/* 803836E8 0037F348 4E 80 00 20 */ blr
-
-.global func_803836EC
-func_803836EC:
-/* 803836EC 0037F34C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 803836F0 0037F350 7C 08 02 A6 */ mflr r0
-/* 803836F4 0037F354 90 01 00 34 */ stw r0, 0x34(r1)
-/* 803836F8 0037F358 39 61 00 30 */ addi r11, r1, 0x30
-/* 803836FC 0037F35C 4B E4 3A 21 */ bl _savegpr_24
-/* 80383700 0037F360 81 83 00 00 */ lwz r12, 0(r3)
-/* 80383704 0037F364 7C 78 1B 78 */ mr r24, r3
-/* 80383708 0037F368 7C 99 23 78 */ mr r25, r4
-/* 8038370C 0037F36C 7C BA 2B 78 */ mr r26, r5
-/* 80383710 0037F370 81 8C 00 64 */ lwz r12, 0x64(r12)
-/* 80383714 0037F374 7C DB 33 78 */ mr r27, r6
-/* 80383718 0037F378 7C FC 3B 78 */ mr r28, r7
-/* 8038371C 0037F37C 7D 1D 43 78 */ mr r29, r8
-/* 80383720 0037F380 7D 3E 4B 78 */ mr r30, r9
-/* 80383724 0037F384 7D 5F 53 78 */ mr r31, r10
-/* 80383728 0037F388 7D 89 03 A6 */ mtctr r12
-/* 8038372C 0037F38C 4E 80 04 21 */ bctrl
-/* 80383730 0037F390 7F 24 CB 78 */ mr r4, r25
-/* 80383734 0037F394 7F 45 D3 78 */ mr r5, r26
-/* 80383738 0037F398 7F 66 DB 78 */ mr r6, r27
-/* 8038373C 0037F39C 7F 87 E3 78 */ mr r7, r28
-/* 80383740 0037F3A0 7F A8 EB 78 */ mr r8, r29
-/* 80383744 0037F3A4 7F C9 F3 78 */ mr r9, r30
-/* 80383748 0037F3A8 7F EA FB 78 */ mr r10, r31
-/* 8038374C 0037F3AC 38 78 00 D8 */ addi r3, r24, 0xd8
-/* 80383750 0037F3B0 48 00 06 F1 */ bl func_80383E40
-/* 80383754 0037F3B4 2C 03 00 00 */ cmpwi r3, 0
-/* 80383758 0037F3B8 40 82 00 0C */ bne lbl_80383764
-/* 8038375C 0037F3BC 38 60 00 00 */ li r3, 0
-/* 80383760 0037F3C0 48 00 00 10 */ b lbl_80383770
-lbl_80383764:
-/* 80383764 0037F3C4 38 00 00 01 */ li r0, 1
-/* 80383768 0037F3C8 38 60 00 01 */ li r3, 1
-/* 8038376C 0037F3CC 98 18 01 D0 */ stb r0, 0x1d0(r24)
-lbl_80383770:
-/* 80383770 0037F3D0 39 61 00 30 */ addi r11, r1, 0x30
-/* 80383774 0037F3D4 4B E4 39 F5 */ bl _restgpr_24
-/* 80383778 0037F3D8 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 8038377C 0037F3DC 7C 08 03 A6 */ mtlr r0
-/* 80383780 0037F3E0 38 21 00 30 */ addi r1, r1, 0x30
-/* 80383784 0037F3E4 4E 80 00 20 */ blr
-/* 80383788 0037F3E8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8038378C 0037F3EC 7C 08 02 A6 */ mflr r0
-/* 80383790 0037F3F0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80383794 0037F3F4 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80383798 0037F3F8 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8038379C 0037F3FC 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 803837A0 0037F400 7C 7D 1B 78 */ mr r29, r3
-/* 803837A4 0037F404 4B FE A4 D9 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv
-/* 803837A8 0037F408 83 DD 01 CC */ lwz r30, 0x1cc(r29)
-/* 803837AC 0037F40C 3B FE 00 10 */ addi r31, r30, 0x10
-/* 803837B0 0037F410 7F E3 FB 78 */ mr r3, r31
-/* 803837B4 0037F414 4B EE C1 95 */ bl func_8026F948
-/* 803837B8 0037F418 80 1E 00 04 */ lwz r0, 4(r30)
-/* 803837BC 0037F41C 2C 00 00 00 */ cmpwi r0, 0
-/* 803837C0 0037F420 40 82 00 10 */ bne lbl_803837D0
-/* 803837C4 0037F424 7F E3 FB 78 */ mr r3, r31
-/* 803837C8 0037F428 4B EE C2 5D */ bl func_8026FA24
-/* 803837CC 0037F42C 48 00 00 3C */ b lbl_80383808
-lbl_803837D0:
-/* 803837D0 0037F430 38 7E 00 04 */ addi r3, r30, 4
-/* 803837D4 0037F434 38 9D 00 B8 */ addi r4, r29, 0xb8
-/* 803837D8 0037F438 4B FD F4 9D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 803837DC 0037F43C 81 9D 00 00 */ lwz r12, 0(r29)
-/* 803837E0 0037F440 7F A3 EB 78 */ mr r3, r29
-/* 803837E4 0037F444 38 80 FF FF */ li r4, -1
-/* 803837E8 0037F448 81 8C 00 0C */ lwz r12, 0xc(r12)
-/* 803837EC 0037F44C 7D 89 03 A6 */ mtctr r12
-/* 803837F0 0037F450 4E 80 04 21 */ bctrl
-/* 803837F4 0037F454 7F C3 F3 78 */ mr r3, r30
-/* 803837F8 0037F458 7F A4 EB 78 */ mr r4, r29
-/* 803837FC 0037F45C 4B FE E3 B9 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv
-/* 80383800 0037F460 7F E3 FB 78 */ mr r3, r31
-/* 80383804 0037F464 4B EE C2 21 */ bl func_8026FA24
-lbl_80383808:
-/* 80383808 0037F468 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8038380C 0037F46C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80383810 0037F470 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80383814 0037F474 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 80383818 0037F478 7C 08 03 A6 */ mtlr r0
-/* 8038381C 0037F47C 38 21 00 20 */ addi r1, r1, 0x20
-/* 80383820 0037F480 4E 80 00 20 */ blr
-/* 80383824 0037F484 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383828 0037F488 7C 08 02 A6 */ mflr r0
-/* 8038382C 0037F48C 2C 03 00 00 */ cmpwi r3, 0
-/* 80383830 0037F490 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80383834 0037F494 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80383838 0037F498 7C 7F 1B 78 */ mr r31, r3
-/* 8038383C 0037F49C 41 82 00 10 */ beq lbl_8038384C
-/* 80383840 0037F4A0 2C 04 00 00 */ cmpwi r4, 0
-/* 80383844 0037F4A4 40 81 00 08 */ ble lbl_8038384C
-/* 80383848 0037F4A8 4B E5 72 71 */ bl func_801DAAB8
-lbl_8038384C:
-/* 8038384C 0037F4AC 7F E3 FB 78 */ mr r3, r31
-/* 80383850 0037F4B0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80383854 0037F4B4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80383858 0037F4B8 7C 08 03 A6 */ mtlr r0
-/* 8038385C 0037F4BC 38 21 00 10 */ addi r1, r1, 0x10
-/* 80383860 0037F4C0 4E 80 00 20 */ blr
-
-.global func_80383864
-func_80383864:
-/* 80383864 0037F4C4 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 80383868 0037F4C8 48 00 09 7C */ b lbl_803841E4
-
-.global func_8038386C
-func_8038386C:
-/* 8038386C 0037F4CC 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 80383870 0037F4D0 48 00 09 C8 */ b lbl_80384238
-/* 80383874 0037F4D4 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80383878 0037F4D8 7C 08 02 A6 */ mflr r0
-/* 8038387C 0037F4DC 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80383880 0037F4E0 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80383884 0037F4E4 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80383888 0037F4E8 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8038388C 0037F4EC 93 81 00 10 */ stw r28, 0x10(r1)
-/* 80383890 0037F4F0 7C 7C 1B 78 */ mr r28, r3
-/* 80383894 0037F4F4 4B FE A5 59 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi
-/* 80383898 0037F4F8 88 7C 00 74 */ lbz r3, 0x74(r28)
-/* 8038389C 0037F4FC 80 1C 00 40 */ lwz r0, 0x40(r28)
-/* 803838A0 0037F500 7C 63 02 14 */ add r3, r3, r0
-/* 803838A4 0037F504 2C 03 00 7F */ cmpwi r3, 0x7f
-/* 803838A8 0037F508 40 81 00 0C */ ble lbl_803838B4
-/* 803838AC 0037F50C 3B A0 00 7F */ li r29, 0x7f
-/* 803838B0 0037F510 48 00 00 0C */ b lbl_803838BC
-lbl_803838B4:
-/* 803838B4 0037F514 7C 60 FE 70 */ srawi r0, r3, 0x1f
-/* 803838B8 0037F518 7C 7D 00 78 */ andc r29, r3, r0
-lbl_803838BC:
-/* 803838BC 0037F51C 83 DC 01 CC */ lwz r30, 0x1cc(r28)
-/* 803838C0 0037F520 3B FE 00 10 */ addi r31, r30, 0x10
-/* 803838C4 0037F524 7F E3 FB 78 */ mr r3, r31
-/* 803838C8 0037F528 4B EE C0 81 */ bl func_8026F948
-/* 803838CC 0037F52C 3B 9C 00 B8 */ addi r28, r28, 0xb8
-/* 803838D0 0037F530 38 7E 00 04 */ addi r3, r30, 4
-/* 803838D4 0037F534 7F 84 E3 78 */ mr r4, r28
-/* 803838D8 0037F538 4B FD F3 9D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 803838DC 0037F53C 80 7E 00 08 */ lwz r3, 8(r30)
-/* 803838E0 0037F540 38 1E 00 08 */ addi r0, r30, 8
-/* 803838E4 0037F544 48 00 00 34 */ b lbl_80383918
-lbl_803838E8:
-/* 803838E8 0037F548 88 A3 FF BC */ lbz r5, -0x44(r3)
-/* 803838EC 0037F54C 80 83 FF 88 */ lwz r4, -0x78(r3)
-/* 803838F0 0037F550 7C A5 22 14 */ add r5, r5, r4
-/* 803838F4 0037F554 2C 05 00 7F */ cmpwi r5, 0x7f
-/* 803838F8 0037F558 40 81 00 0C */ ble lbl_80383904
-/* 803838FC 0037F55C 38 80 00 7F */ li r4, 0x7f
-/* 80383900 0037F560 48 00 00 0C */ b lbl_8038390C
-lbl_80383904:
-/* 80383904 0037F564 7C A4 FE 70 */ srawi r4, r5, 0x1f
-/* 80383908 0037F568 7C A4 20 78 */ andc r4, r5, r4
-lbl_8038390C:
-/* 8038390C 0037F56C 7C 1D 20 00 */ cmpw r29, r4
-/* 80383910 0037F570 41 80 00 10 */ blt lbl_80383920
-/* 80383914 0037F574 80 63 00 00 */ lwz r3, 0(r3)
-lbl_80383918:
-/* 80383918 0037F578 7C 03 00 40 */ cmplw r3, r0
-/* 8038391C 0037F57C 40 82 FF CC */ bne lbl_803838E8
-lbl_80383920:
-/* 80383920 0037F580 90 61 00 08 */ stw r3, 8(r1)
-/* 80383924 0037F584 7F 85 E3 78 */ mr r5, r28
-/* 80383928 0037F588 38 7E 00 04 */ addi r3, r30, 4
-/* 8038392C 0037F58C 38 81 00 08 */ addi r4, r1, 8
-/* 80383930 0037F590 4B FD F3 19 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 80383934 0037F594 7F E3 FB 78 */ mr r3, r31
-/* 80383938 0037F598 4B EE C0 ED */ bl func_8026FA24
-/* 8038393C 0037F59C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80383940 0037F5A0 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80383944 0037F5A4 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80383948 0037F5A8 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8038394C 0037F5AC 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 80383950 0037F5B0 7C 08 03 A6 */ mtlr r0
-/* 80383954 0037F5B4 38 21 00 20 */ addi r1, r1, 0x20
-/* 80383958 0037F5B8 4E 80 00 20 */ blr
-
-.global LexicalCast_b_i_
-LexicalCast_b_i_:
-/* 8038395C 0037F5BC 80 63 01 C8 */ lwz r3, 0x1c8(r3)
-/* 80383960 0037F5C0 7C 03 00 D0 */ neg r0, r3
-/* 80383964 0037F5C4 7C 00 1B 78 */ or r0, r0, r3
-/* 80383968 0037F5C8 54 03 0F FE */ srwi r3, r0, 0x1f
-/* 8038396C 0037F5CC 4E 80 00 20 */ blr
-/* 80383970 0037F5D0 80 63 01 C8 */ lwz r3, 0x1c8(r3)
-/* 80383974 0037F5D4 48 00 00 30 */ b lbl_803839A4
-/* 80383978 0037F5D8 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 8038397C 0037F5DC 4E 80 00 20 */ blr
-/* 80383980 0037F5E0 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 80383984 0037F5E4 4E 80 00 20 */ blr
-/* 80383988 0037F5E8 88 63 01 D0 */ lbz r3, 0x1d0(r3)
-/* 8038398C 0037F5EC 4E 80 00 20 */ blr
-/* 80383990 0037F5F0 38 6D B2 A0 */ addi r3, r13, lbl_80640560-_SDA_BASE_
-/* 80383994 0037F5F4 4E 80 00 20 */ blr
-
-.global func_80383998
-func_80383998:
-/* 80383998 0037F5F8 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_
-/* 8038399C 0037F5FC 90 0D B2 A0 */ stw r0, lbl_80640560-_SDA_BASE_(r13)
-/* 803839A0 0037F600 4E 80 00 20 */ blr
-lbl_803839A4:
-/* 803839A4 0037F604 80 83 00 00 */ lwz r4, 0(r3)
-/* 803839A8 0037F608 2C 04 00 00 */ cmpwi r4, 0
-/* 803839AC 0037F60C 41 82 00 18 */ beq lbl_803839C4
-/* 803839B0 0037F610 80 04 01 C8 */ lwz r0, 0x1c8(r4)
-/* 803839B4 0037F614 7C 00 18 40 */ cmplw r0, r3
-/* 803839B8 0037F618 40 82 00 0C */ bne lbl_803839C4
-/* 803839BC 0037F61C 38 00 00 00 */ li r0, 0
-/* 803839C0 0037F620 90 04 01 C8 */ stw r0, 0x1c8(r4)
-lbl_803839C4:
-/* 803839C4 0037F624 80 03 00 00 */ lwz r0, 0(r3)
-/* 803839C8 0037F628 2C 00 00 00 */ cmpwi r0, 0
-/* 803839CC 0037F62C 4D 82 00 20 */ beqlr
-/* 803839D0 0037F630 38 00 00 00 */ li r0, 0
-/* 803839D4 0037F634 90 03 00 00 */ stw r0, 0(r3)
-/* 803839D8 0037F638 4E 80 00 20 */ blr
-
-.global func_803839DC
-func_803839DC:
-/* 803839DC 0037F63C 80 A4 00 00 */ lwz r5, 0(r4)
-/* 803839E0 0037F640 38 C0 00 00 */ li r6, 0
-/* 803839E4 0037F644 90 C3 00 00 */ stw r6, 0(r3)
-/* 803839E8 0037F648 3C 05 AD A9 */ addis r0, r5, 0xada9
-/* 803839EC 0037F64C 28 00 53 44 */ cmplwi r0, 0x5344
-/* 803839F0 0037F650 90 C3 00 04 */ stw r6, 4(r3)
-/* 803839F4 0037F654 90 C3 00 08 */ stw r6, 8(r3)
-/* 803839F8 0037F658 41 82 00 0C */ beq lbl_80383A04
-/* 803839FC 0037F65C 38 00 00 00 */ li r0, 0
-/* 80383A00 0037F660 48 00 00 30 */ b lbl_80383A30
-lbl_80383A04:
-/* 80383A04 0037F664 A0 C4 00 06 */ lhz r6, 6(r4)
-/* 80383A08 0037F668 28 06 01 00 */ cmplwi r6, 0x100
-/* 80383A0C 0037F66C 40 80 00 0C */ bge lbl_80383A18
-/* 80383A10 0037F670 38 00 00 00 */ li r0, 0
-/* 80383A14 0037F674 48 00 00 1C */ b lbl_80383A30
-lbl_80383A18:
-/* 80383A18 0037F678 20 06 01 02 */ subfic r0, r6, 0x102
-/* 80383A1C 0037F67C 38 A0 01 02 */ li r5, 0x102
-/* 80383A20 0037F680 7C A5 33 38 */ orc r5, r5, r6
-/* 80383A24 0037F684 54 00 F8 7E */ srwi r0, r0, 1
-/* 80383A28 0037F688 7C 00 28 50 */ subf r0, r0, r5
-/* 80383A2C 0037F68C 54 00 0F FE */ srwi r0, r0, 0x1f
-lbl_80383A30:
-/* 80383A30 0037F690 2C 00 00 00 */ cmpwi r0, 0
-/* 80383A34 0037F694 4D 82 00 20 */ beqlr
-/* 80383A38 0037F698 80 A4 00 10 */ lwz r5, 0x10(r4)
-/* 80383A3C 0037F69C 80 04 00 18 */ lwz r0, 0x18(r4)
-/* 80383A40 0037F6A0 7C A5 22 14 */ add r5, r5, r4
-/* 80383A44 0037F6A4 90 83 00 00 */ stw r4, 0(r3)
-/* 80383A48 0037F6A8 7C 00 22 14 */ add r0, r0, r4
-/* 80383A4C 0037F6AC 90 A3 00 04 */ stw r5, 4(r3)
-/* 80383A50 0037F6B0 90 03 00 08 */ stw r0, 8(r3)
-/* 80383A54 0037F6B4 4E 80 00 20 */ blr
-
-.global func_80383A58
-func_80383A58:
-/* 80383A58 0037F6B8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383A5C 0037F6BC 7C 08 02 A6 */ mflr r0
-/* 80383A60 0037F6C0 80 C3 00 04 */ lwz r6, 4(r3)
-/* 80383A64 0037F6C4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80383A68 0037F6C8 54 A0 18 38 */ slwi r0, r5, 3
-/* 80383A6C 0037F6CC 38 A6 00 08 */ addi r5, r6, 8
-/* 80383A70 0037F6D0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80383A74 0037F6D4 7C 9F 23 78 */ mr r31, r4
-/* 80383A78 0037F6D8 7C 86 02 14 */ add r4, r6, r0
-/* 80383A7C 0037F6DC 93 C1 00 08 */ stw r30, 8(r1)
-/* 80383A80 0037F6E0 7C 7E 1B 78 */ mr r30, r3
-/* 80383A84 0037F6E4 88 64 00 0C */ lbz r3, 0xc(r4)
-/* 80383A88 0037F6E8 80 84 00 10 */ lwz r4, 0x10(r4)
-/* 80383A8C 0037F6EC 4B FF F9 5D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-/* 80383A90 0037F6F0 7C 64 1B 78 */ mr r4, r3
-/* 80383A94 0037F6F4 80 BE 00 04 */ lwz r5, 4(r30)
-/* 80383A98 0037F6F8 88 63 00 00 */ lbz r3, 0(r3)
-/* 80383A9C 0037F6FC 80 84 00 04 */ lwz r4, 4(r4)
-/* 80383AA0 0037F700 38 A5 00 08 */ addi r5, r5, 8
-/* 80383AA4 0037F704 4B FF F9 45 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-/* 80383AA8 0037F708 80 9E 00 00 */ lwz r4, 0(r30)
-/* 80383AAC 0037F70C A0 04 00 06 */ lhz r0, 6(r4)
-/* 80383AB0 0037F710 28 00 01 02 */ cmplwi r0, 0x102
-/* 80383AB4 0037F714 40 82 00 40 */ bne lbl_80383AF4
-/* 80383AB8 0037F718 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80383ABC 0037F71C D0 1F 00 00 */ stfs f0, 0(r31)
-/* 80383AC0 0037F720 88 03 00 04 */ lbz r0, 4(r3)
-/* 80383AC4 0037F724 98 1F 00 04 */ stb r0, 4(r31)
-/* 80383AC8 0037F728 88 03 00 05 */ lbz r0, 5(r3)
-/* 80383ACC 0037F72C 98 1F 00 05 */ stb r0, 5(r31)
-/* 80383AD0 0037F730 88 03 00 06 */ lbz r0, 6(r3)
-/* 80383AD4 0037F734 98 1F 00 06 */ stb r0, 6(r31)
-/* 80383AD8 0037F738 88 03 00 07 */ lbz r0, 7(r3)
-/* 80383ADC 0037F73C 98 1F 00 07 */ stb r0, 7(r31)
-/* 80383AE0 0037F740 88 03 00 08 */ lbz r0, 8(r3)
-/* 80383AE4 0037F744 98 1F 00 08 */ stb r0, 8(r31)
-/* 80383AE8 0037F748 88 03 00 09 */ lbz r0, 9(r3)
-/* 80383AEC 0037F74C 98 1F 00 09 */ stb r0, 9(r31)
-/* 80383AF0 0037F750 48 00 00 6C */ b lbl_80383B5C
-lbl_80383AF4:
-/* 80383AF4 0037F754 28 00 01 01 */ cmplwi r0, 0x101
-/* 80383AF8 0037F758 40 82 00 38 */ bne lbl_80383B30
-/* 80383AFC 0037F75C C0 03 00 00 */ lfs f0, 0(r3)
-/* 80383B00 0037F760 38 80 00 00 */ li r4, 0
-/* 80383B04 0037F764 38 00 00 7F */ li r0, 0x7f
-/* 80383B08 0037F768 D0 1F 00 00 */ stfs f0, 0(r31)
-/* 80383B0C 0037F76C 88 A3 00 04 */ lbz r5, 4(r3)
-/* 80383B10 0037F770 98 BF 00 04 */ stb r5, 4(r31)
-/* 80383B14 0037F774 88 63 00 05 */ lbz r3, 5(r3)
-/* 80383B18 0037F778 98 7F 00 05 */ stb r3, 5(r31)
-/* 80383B1C 0037F77C 98 9F 00 06 */ stb r4, 6(r31)
-/* 80383B20 0037F780 98 9F 00 07 */ stb r4, 7(r31)
-/* 80383B24 0037F784 98 9F 00 08 */ stb r4, 8(r31)
-/* 80383B28 0037F788 98 1F 00 09 */ stb r0, 9(r31)
-/* 80383B2C 0037F78C 48 00 00 30 */ b lbl_80383B5C
-lbl_80383B30:
-/* 80383B30 0037F790 C0 02 A7 F0 */ lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
-/* 80383B34 0037F794 38 60 00 00 */ li r3, 0
-/* 80383B38 0037F798 38 80 00 40 */ li r4, 0x40
-/* 80383B3C 0037F79C 38 00 00 7F */ li r0, 0x7f
-/* 80383B40 0037F7A0 D0 1F 00 00 */ stfs f0, 0(r31)
-/* 80383B44 0037F7A4 98 9F 00 04 */ stb r4, 4(r31)
-/* 80383B48 0037F7A8 98 7F 00 05 */ stb r3, 5(r31)
-/* 80383B4C 0037F7AC 98 7F 00 06 */ stb r3, 6(r31)
-/* 80383B50 0037F7B0 98 7F 00 07 */ stb r3, 7(r31)
-/* 80383B54 0037F7B4 98 7F 00 08 */ stb r3, 8(r31)
-/* 80383B58 0037F7B8 98 1F 00 09 */ stb r0, 9(r31)
-lbl_80383B5C:
-/* 80383B5C 0037F7BC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80383B60 0037F7C0 38 60 00 01 */ li r3, 1
-/* 80383B64 0037F7C4 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80383B68 0037F7C8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80383B6C 0037F7CC 7C 08 03 A6 */ mtlr r0
-/* 80383B70 0037F7D0 38 21 00 10 */ addi r1, r1, 0x10
-/* 80383B74 0037F7D4 4E 80 00 20 */ blr
-
-.global func_80383B78
-func_80383B78:
-/* 80383B78 0037F7D8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80383B7C 0037F7DC 7C 08 02 A6 */ mflr r0
-/* 80383B80 0037F7E0 80 E3 00 04 */ lwz r7, 4(r3)
-/* 80383B84 0037F7E4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80383B88 0037F7E8 54 A0 18 38 */ slwi r0, r5, 3
-/* 80383B8C 0037F7EC 38 A7 00 08 */ addi r5, r7, 8
-/* 80383B90 0037F7F0 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80383B94 0037F7F4 7C 9F 23 78 */ mr r31, r4
-/* 80383B98 0037F7F8 7C 87 02 14 */ add r4, r7, r0
-/* 80383B9C 0037F7FC 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80383BA0 0037F800 7C DE 33 78 */ mr r30, r6
-/* 80383BA4 0037F804 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 80383BA8 0037F808 7C 7D 1B 78 */ mr r29, r3
-/* 80383BAC 0037F80C 88 64 00 0C */ lbz r3, 0xc(r4)
-/* 80383BB0 0037F810 80 84 00 10 */ lwz r4, 0x10(r4)
-/* 80383BB4 0037F814 4B FF F8 35 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-/* 80383BB8 0037F818 7C 64 1B 78 */ mr r4, r3
-/* 80383BBC 0037F81C 80 BD 00 04 */ lwz r5, 4(r29)
-/* 80383BC0 0037F820 88 63 00 10 */ lbz r3, 0x10(r3)
-/* 80383BC4 0037F824 80 84 00 14 */ lwz r4, 0x14(r4)
-/* 80383BC8 0037F828 38 A5 00 08 */ addi r5, r5, 8
-/* 80383BCC 0037F82C 4B FF F8 1D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-/* 80383BD0 0037F830 57 C0 18 38 */ slwi r0, r30, 3
-/* 80383BD4 0037F834 80 9D 00 04 */ lwz r4, 4(r29)
-/* 80383BD8 0037F838 7C C3 02 14 */ add r6, r3, r0
-/* 80383BDC 0037F83C 38 A4 00 08 */ addi r5, r4, 8
-/* 80383BE0 0037F840 88 66 00 04 */ lbz r3, 4(r6)
-/* 80383BE4 0037F844 80 86 00 08 */ lwz r4, 8(r6)
-/* 80383BE8 0037F848 4B FF F8 01 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-/* 80383BEC 0037F84C 80 03 00 00 */ lwz r0, 0(r3)
-/* 80383BF0 0037F850 80 9D 00 00 */ lwz r4, 0(r29)
-/* 80383BF4 0037F854 90 1F 00 00 */ stw r0, 0(r31)
-/* 80383BF8 0037F858 88 03 00 04 */ lbz r0, 4(r3)
-/* 80383BFC 0037F85C 98 1F 00 04 */ stb r0, 4(r31)
-/* 80383C00 0037F860 88 03 00 05 */ lbz r0, 5(r3)
-/* 80383C04 0037F864 98 1F 00 05 */ stb r0, 5(r31)
-/* 80383C08 0037F868 88 03 00 06 */ lbz r0, 6(r3)
-/* 80383C0C 0037F86C 98 1F 00 06 */ stb r0, 6(r31)
-/* 80383C10 0037F870 88 03 00 07 */ lbz r0, 7(r3)
-/* 80383C14 0037F874 98 1F 00 07 */ stb r0, 7(r31)
-/* 80383C18 0037F878 88 03 00 0C */ lbz r0, 0xc(r3)
-/* 80383C1C 0037F87C 98 1F 00 08 */ stb r0, 8(r31)
-/* 80383C20 0037F880 88 03 00 0D */ lbz r0, 0xd(r3)
-/* 80383C24 0037F884 98 1F 00 0B */ stb r0, 0xb(r31)
-/* 80383C28 0037F888 A0 04 00 06 */ lhz r0, 6(r4)
-/* 80383C2C 0037F88C 28 00 01 01 */ cmplwi r0, 0x101
-/* 80383C30 0037F890 41 80 00 20 */ blt lbl_80383C50
-/* 80383C34 0037F894 88 03 00 0E */ lbz r0, 0xe(r3)
-/* 80383C38 0037F898 98 1F 00 09 */ stb r0, 9(r31)
-/* 80383C3C 0037F89C 88 03 00 0F */ lbz r0, 0xf(r3)
-/* 80383C40 0037F8A0 98 1F 00 0A */ stb r0, 0xa(r31)
-/* 80383C44 0037F8A4 C0 03 00 10 */ lfs f0, 0x10(r3)
-/* 80383C48 0037F8A8 D0 1F 00 0C */ stfs f0, 0xc(r31)
-/* 80383C4C 0037F8AC 48 00 00 1C */ b lbl_80383C68
-lbl_80383C50:
-/* 80383C50 0037F8B0 C0 02 A7 F0 */ lfs f0, lbl_80642DF0-_SDA2_BASE_(r2)
-/* 80383C54 0037F8B4 38 60 00 40 */ li r3, 0x40
-/* 80383C58 0037F8B8 38 00 00 00 */ li r0, 0
-/* 80383C5C 0037F8BC 98 7F 00 09 */ stb r3, 9(r31)
-/* 80383C60 0037F8C0 98 1F 00 0A */ stb r0, 0xa(r31)
-/* 80383C64 0037F8C4 D0 1F 00 0C */ stfs f0, 0xc(r31)
-lbl_80383C68:
-/* 80383C68 0037F8C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80383C6C 0037F8CC 38 60 00 01 */ li r3, 1
-/* 80383C70 0037F8D0 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80383C74 0037F8D4 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 80383C78 0037F8D8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80383C7C 0037F8DC 7C 08 03 A6 */ mtlr r0
-/* 80383C80 0037F8E0 38 21 00 20 */ addi r1, r1, 0x20
-/* 80383C84 0037F8E4 4E 80 00 20 */ blr
-
-.global func_80383C88
-func_80383C88:
-/* 80383C88 0037F8E8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80383C8C 0037F8EC 7C 08 02 A6 */ mflr r0
-/* 80383C90 0037F8F0 80 E3 00 00 */ lwz r7, 0(r3)
-/* 80383C94 0037F8F4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80383C98 0037F8F8 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80383C9C 0037F8FC 7C DF 33 78 */ mr r31, r6
-/* 80383CA0 0037F900 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80383CA4 0037F904 7C BE 2B 78 */ mr r30, r5
-/* 80383CA8 0037F908 A0 07 00 06 */ lhz r0, 6(r7)
-/* 80383CAC 0037F90C 28 00 01 00 */ cmplwi r0, 0x100
-/* 80383CB0 0037F910 40 82 00 1C */ bne lbl_80383CCC
-/* 80383CB4 0037F914 80 A3 00 08 */ lwz r5, 8(r3)
-/* 80383CB8 0037F918 54 80 10 3A */ slwi r0, r4, 2
-/* 80383CBC 0037F91C 7C 65 02 14 */ add r3, r5, r0
-/* 80383CC0 0037F920 80 03 00 08 */ lwz r0, 8(r3)
-/* 80383CC4 0037F924 7C 80 2A 14 */ add r4, r0, r5
-/* 80383CC8 0037F928 48 00 00 2C */ b lbl_80383CF4
-lbl_80383CCC:
-/* 80383CCC 0037F92C 80 A3 00 08 */ lwz r5, 8(r3)
-/* 80383CD0 0037F930 80 05 00 08 */ lwz r0, 8(r5)
-/* 80383CD4 0037F934 7C 04 00 40 */ cmplw r4, r0
-/* 80383CD8 0037F938 41 80 00 0C */ blt lbl_80383CE4
-/* 80383CDC 0037F93C 38 60 00 00 */ li r3, 0
-/* 80383CE0 0037F940 48 00 00 2C */ b lbl_80383D0C
-lbl_80383CE4:
-/* 80383CE4 0037F944 54 80 10 3A */ slwi r0, r4, 2
-/* 80383CE8 0037F948 7C 65 02 14 */ add r3, r5, r0
-/* 80383CEC 0037F94C 80 03 00 0C */ lwz r0, 0xc(r3)
-/* 80383CF0 0037F950 7C 80 2A 14 */ add r4, r0, r5
-lbl_80383CF4:
-/* 80383CF4 0037F954 38 61 00 08 */ addi r3, r1, 8
-/* 80383CF8 0037F958 4B FF F7 15 */ bl __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
-/* 80383CFC 0037F95C 7F C4 F3 78 */ mr r4, r30
-/* 80383D00 0037F960 7F E5 FB 78 */ mr r5, r31
-/* 80383D04 0037F964 38 61 00 08 */ addi r3, r1, 8
-/* 80383D08 0037F968 4B FF F7 0D */ bl ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
-lbl_80383D0C:
-/* 80383D0C 0037F96C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80383D10 0037F970 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80383D14 0037F974 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80383D18 0037F978 7C 08 03 A6 */ mtlr r0
-/* 80383D1C 0037F97C 38 21 00 20 */ addi r1, r1, 0x20
-/* 80383D20 0037F980 4E 80 00 20 */ blr
-
.global func_80383D24
func_80383D24:
/* 80383D24 0037F984 94 21 FF F0 */ stwu r1, -0x10(r1)
@@ -829,6 +333,8 @@ lbl_803841C0:
/* 803841D8 0037FE38 7C 08 03 A6 */ mtlr r0
/* 803841DC 0037FE3C 38 21 00 20 */ addi r1, r1, 0x20
/* 803841E0 0037FE40 4E 80 00 20 */ blr
+
+.global lbl_803841E4
lbl_803841E4:
/* 803841E4 0037FE44 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803841E8 0037FE48 7C 08 02 A6 */ mflr r0
@@ -851,6 +357,8 @@ lbl_803841E4:
/* 8038422C 0037FE8C 7C 08 03 A6 */ mtlr r0
/* 80384230 0037FE90 38 21 00 20 */ addi r1, r1, 0x20
/* 80384234 0037FE94 4E 80 00 20 */ blr
+
+.global lbl_80384238
lbl_80384238:
/* 80384238 0037FE98 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8038423C 0037FE9C 7C 08 02 A6 */ mflr r0
@@ -1544,13 +1052,13 @@ lbl_80384BE0:
/* 80384C28 00380888 38 63 FF 8C */ addi r3, r3, -116
/* 80384C2C 0038088C 4B FF F6 60 */ b lbl_8038428C
/* 80384C30 00380890 38 63 FF 8C */ addi r3, r3, -116
-/* 80384C34 00380894 4B FF EA 78 */ b lbl_803836AC
+/* 80384C34 00380894 4B FF EA 78 */ b __dt__Q44nw4r3snd6detail9WsdPlayerFv
/* 80384C38 00380898 38 63 FF 80 */ addi r3, r3, -128
/* 80384C3C 0038089C 4B FF FF 94 */ b lbl_80384BD0
/* 80384C40 003808A0 38 63 FF 80 */ addi r3, r3, -128
/* 80384C44 003808A4 4B FF FF 88 */ b lbl_80384BCC
/* 80384C48 003808A8 38 63 FF 80 */ addi r3, r3, -128
-/* 80384C4C 003808AC 4B FF EA 60 */ b lbl_803836AC
+/* 80384C4C 003808AC 4B FF EA 60 */ b __dt__Q44nw4r3snd6detail9WsdPlayerFv
.global func_80384C50
func_80384C50:
diff --git a/obj_files.mk b/obj_files.mk
index 0eaed58..43dca46 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -160,6 +160,9 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_VoiceManager.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_Util.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_WaveFile.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WaveSound.o \
+ $(BUILD_DIR)/asm/nw4r/snd/snd_WaveSoundHandle.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WsdFile.o \
$(BUILD_DIR)/asm/text_11.o
CTORS_O_FILES := \