summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-09-26 22:30:34 -0400
committerMax <mparisi@stevens.edu>2020-09-26 22:30:34 -0400
commitcdfc0bdae086da9f2d44470a810e1a841b656bdb (patch)
tree83453699f619282d8385870b525b3c83ff2b0142
parent87bb7c407150786d00adfb3bb134bf96deaa731d (diff)
split snd_WaveFile.s
-rw-r--r--asm/nw4r/snd/detail/snd_BankFile.s4
-rw-r--r--asm/nw4r/snd/detail/snd_StrmPlayer.s2
-rw-r--r--asm/nw4r/snd/detail/snd_WaveFile.s162
-rw-r--r--asm/text_11.s163
-rw-r--r--obj_files.mk1
5 files changed, 168 insertions, 164 deletions
diff --git a/asm/nw4r/snd/detail/snd_BankFile.s b/asm/nw4r/snd/detail/snd_BankFile.s
index 468b47d..3d456e0 100644
--- a/asm/nw4r/snd/detail/snd_BankFile.s
+++ b/asm/nw4r/snd/detail/snd_BankFile.s
@@ -292,11 +292,11 @@ lbl_8036CE28:
lbl_8036CE50:
/* 8036CE50 00368AB0 7C 64 1B 78 */ mr r4, r3
/* 8036CE54 00368AB4 38 61 00 08 */ addi r3, r1, 8
-/* 8036CE58 00368AB8 48 01 65 B5 */ bl func_8038340C
+/* 8036CE58 00368AB8 48 01 65 B5 */ bl __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
/* 8036CE5C 00368ABC 7F C4 F3 78 */ mr r4, r30
/* 8036CE60 00368AC0 7F E5 FB 78 */ mr r5, r31
/* 8036CE64 00368AC4 38 61 00 08 */ addi r3, r1, 8
-/* 8036CE68 00368AC8 48 01 65 AD */ bl func_80383414
+/* 8036CE68 00368AC8 48 01 65 AD */ bl ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
lbl_8036CE6C:
/* 8036CE6C 00368ACC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036CE70 00368AD0 83 E1 00 1C */ lwz r31, 0x1c(r1)
diff --git a/asm/nw4r/snd/detail/snd_StrmPlayer.s b/asm/nw4r/snd/detail/snd_StrmPlayer.s
index ac65382..d74e2a7 100644
--- a/asm/nw4r/snd/detail/snd_StrmPlayer.s
+++ b/asm/nw4r/snd/detail/snd_StrmPlayer.s
@@ -363,7 +363,7 @@ lbl_8037D790:
/* 8037D7BC 0037941C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8037D7C0 00379420 93 81 00 20 */ stw r28, 0x20(r1)
/* 8037D7C4 00379424 88 7E 00 80 */ lbz r3, 0x80(r30)
-/* 8037D7C8 00379428 48 00 5E 61 */ bl func_80383628
+/* 8037D7C8 00379428 48 00 5E 61 */ bl GetAxVoiceFormatFromWaveFileFormat__Q44nw4r3snd6detail14WaveFileReaderFUl
/* 8037D7CC 0037942C 80 BE 00 D4 */ lwz r5, 0xd4(r30)
/* 8037D7D0 00379430 7C 64 1B 78 */ mr r4, r3
/* 8037D7D4 00379434 80 1E 00 EC */ lwz r0, 0xec(r30)
diff --git a/asm/nw4r/snd/detail/snd_WaveFile.s b/asm/nw4r/snd/detail/snd_WaveFile.s
new file mode 100644
index 0000000..ed7c488
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_WaveFile.s
@@ -0,0 +1,162 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
+__ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo:
+/* 8038340C 0037F06C 90 83 00 00 */ stw r4, 0(r3)
+/* 80383410 0037F070 4E 80 00 20 */ blr
+
+.global ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
+ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv:
+/* 80383414 0037F074 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80383418 0037F078 7C 08 02 A6 */ mflr r0
+/* 8038341C 0037F07C 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80383420 0037F080 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80383424 0037F084 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80383428 0037F088 7C BF 2B 78 */ mr r31, r5
+/* 8038342C 0037F08C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80383430 0037F090 7C 7E 1B 78 */ mr r30, r3
+/* 80383434 0037F094 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80383438 0037F098 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8038343C 0037F09C 7C 9C 23 78 */ mr r28, r4
+/* 80383440 0037F0A0 88 06 00 00 */ lbz r0, 0(r6)
+/* 80383444 0037F0A4 28 00 00 01 */ cmplwi r0, 1
+/* 80383448 0037F0A8 40 82 00 0C */ bne lbl_80383454
+/* 8038344C 0037F0AC 3B A0 00 0A */ li r29, 0xa
+/* 80383450 0037F0B0 48 00 00 14 */ b lbl_80383464
+lbl_80383454:
+/* 80383454 0037F0B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80383458 0037F0B8 3B A0 00 00 */ li r29, 0
+/* 8038345C 0037F0BC 40 82 00 08 */ bne lbl_80383464
+/* 80383460 0037F0C0 3B A0 00 19 */ li r29, 0x19
+lbl_80383464:
+/* 80383464 0037F0C4 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80383468 0037F0C8 7F A5 EB 78 */ mr r5, r29
+/* 8038346C 0037F0CC 98 04 00 00 */ stb r0, 0(r4)
+/* 80383470 0037F0D0 38 60 00 00 */ li r3, 0
+/* 80383474 0037F0D4 88 07 00 02 */ lbz r0, 2(r7)
+/* 80383478 0037F0D8 98 04 00 02 */ stb r0, 2(r4)
+/* 8038347C 0037F0DC 88 C7 00 03 */ lbz r6, 3(r7)
+/* 80383480 0037F0E0 A0 07 00 04 */ lhz r0, 4(r7)
+/* 80383484 0037F0E4 54 C6 80 1E */ slwi r6, r6, 0x10
+/* 80383488 0037F0E8 7C 06 02 14 */ add r0, r6, r0
+/* 8038348C 0037F0EC 90 04 00 04 */ stw r0, 4(r4)
+/* 80383490 0037F0F0 88 07 00 01 */ lbz r0, 1(r7)
+/* 80383494 0037F0F4 98 04 00 01 */ stb r0, 1(r4)
+/* 80383498 0037F0F8 80 87 00 08 */ lwz r4, 8(r7)
+/* 8038349C 0037F0FC 4B FE 6B 75 */ bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
+/* 803834A0 0037F100 90 7C 00 08 */ stw r3, 8(r28)
+/* 803834A4 0037F104 7F A5 EB 78 */ mr r5, r29
+/* 803834A8 0037F108 80 9E 00 00 */ lwz r4, 0(r30)
+/* 803834AC 0037F10C 38 60 00 00 */ li r3, 0
+/* 803834B0 0037F110 80 84 00 0C */ lwz r4, 0xc(r4)
+/* 803834B4 0037F114 4B FE 6B 5D */ bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
+/* 803834B8 0037F118 38 03 00 01 */ addi r0, r3, 1
+/* 803834BC 0037F11C 80 7E 00 00 */ lwz r3, 0(r30)
+/* 803834C0 0037F120 90 1C 00 0C */ stw r0, 0xc(r28)
+/* 803834C4 0037F124 38 9C 00 10 */ addi r4, r28, 0x10
+/* 803834C8 0037F128 38 C0 00 00 */ li r6, 0
+/* 803834CC 0037F12C 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 803834D0 0037F130 7C A0 1A 14 */ add r5, r0, r3
+/* 803834D4 0037F134 48 00 01 20 */ b lbl_803835F4
+lbl_803834D8:
+/* 803834D8 0037F138 80 05 00 00 */ lwz r0, 0(r5)
+/* 803834DC 0037F13C 7C E0 1A 14 */ add r7, r0, r3
+/* 803834E0 0037F140 80 07 00 08 */ lwz r0, 8(r7)
+/* 803834E4 0037F144 90 04 00 04 */ stw r0, 4(r4)
+/* 803834E8 0037F148 80 07 00 0C */ lwz r0, 0xc(r7)
+/* 803834EC 0037F14C 90 04 00 08 */ stw r0, 8(r4)
+/* 803834F0 0037F150 80 07 00 10 */ lwz r0, 0x10(r7)
+/* 803834F4 0037F154 90 04 00 0C */ stw r0, 0xc(r4)
+/* 803834F8 0037F158 80 07 00 14 */ lwz r0, 0x14(r7)
+/* 803834FC 0037F15C 90 04 00 10 */ stw r0, 0x10(r4)
+/* 80383500 0037F160 80 67 00 04 */ lwz r3, 4(r7)
+/* 80383504 0037F164 2C 03 00 00 */ cmpwi r3, 0
+/* 80383508 0037F168 41 82 00 C8 */ beq lbl_803835D0
+/* 8038350C 0037F16C 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80383510 0037F170 7D 03 02 6E */ lhzux r8, r3, r0
+/* 80383514 0037F174 A0 03 00 02 */ lhz r0, 2(r3)
+/* 80383518 0037F178 B1 04 00 14 */ sth r8, 0x14(r4)
+/* 8038351C 0037F17C B0 04 00 16 */ sth r0, 0x16(r4)
+/* 80383520 0037F180 A1 03 00 04 */ lhz r8, 4(r3)
+/* 80383524 0037F184 A0 03 00 06 */ lhz r0, 6(r3)
+/* 80383528 0037F188 B1 04 00 18 */ sth r8, 0x18(r4)
+/* 8038352C 0037F18C B0 04 00 1A */ sth r0, 0x1a(r4)
+/* 80383530 0037F190 A1 03 00 08 */ lhz r8, 8(r3)
+/* 80383534 0037F194 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80383538 0037F198 B1 04 00 1C */ sth r8, 0x1c(r4)
+/* 8038353C 0037F19C B0 04 00 1E */ sth r0, 0x1e(r4)
+/* 80383540 0037F1A0 A1 03 00 0C */ lhz r8, 0xc(r3)
+/* 80383544 0037F1A4 A0 03 00 0E */ lhz r0, 0xe(r3)
+/* 80383548 0037F1A8 B1 04 00 20 */ sth r8, 0x20(r4)
+/* 8038354C 0037F1AC B0 04 00 22 */ sth r0, 0x22(r4)
+/* 80383550 0037F1B0 A1 03 00 10 */ lhz r8, 0x10(r3)
+/* 80383554 0037F1B4 A0 03 00 12 */ lhz r0, 0x12(r3)
+/* 80383558 0037F1B8 B1 04 00 24 */ sth r8, 0x24(r4)
+/* 8038355C 0037F1BC B0 04 00 26 */ sth r0, 0x26(r4)
+/* 80383560 0037F1C0 A1 03 00 14 */ lhz r8, 0x14(r3)
+/* 80383564 0037F1C4 A0 03 00 16 */ lhz r0, 0x16(r3)
+/* 80383568 0037F1C8 B1 04 00 28 */ sth r8, 0x28(r4)
+/* 8038356C 0037F1CC B0 04 00 2A */ sth r0, 0x2a(r4)
+/* 80383570 0037F1D0 A1 03 00 18 */ lhz r8, 0x18(r3)
+/* 80383574 0037F1D4 A0 03 00 1A */ lhz r0, 0x1a(r3)
+/* 80383578 0037F1D8 B1 04 00 2C */ sth r8, 0x2c(r4)
+/* 8038357C 0037F1DC B0 04 00 2E */ sth r0, 0x2e(r4)
+/* 80383580 0037F1E0 A1 03 00 1C */ lhz r8, 0x1c(r3)
+/* 80383584 0037F1E4 A0 03 00 1E */ lhz r0, 0x1e(r3)
+/* 80383588 0037F1E8 B1 04 00 30 */ sth r8, 0x30(r4)
+/* 8038358C 0037F1EC B0 04 00 32 */ sth r0, 0x32(r4)
+/* 80383590 0037F1F0 A1 03 00 20 */ lhz r8, 0x20(r3)
+/* 80383594 0037F1F4 A0 03 00 22 */ lhz r0, 0x22(r3)
+/* 80383598 0037F1F8 B1 04 00 34 */ sth r8, 0x34(r4)
+/* 8038359C 0037F1FC B0 04 00 36 */ sth r0, 0x36(r4)
+/* 803835A0 0037F200 A1 03 00 24 */ lhz r8, 0x24(r3)
+/* 803835A4 0037F204 A0 03 00 26 */ lhz r0, 0x26(r3)
+/* 803835A8 0037F208 B1 04 00 38 */ sth r8, 0x38(r4)
+/* 803835AC 0037F20C B0 04 00 3A */ sth r0, 0x3a(r4)
+/* 803835B0 0037F210 A0 03 00 28 */ lhz r0, 0x28(r3)
+/* 803835B4 0037F214 B0 04 00 3C */ sth r0, 0x3c(r4)
+/* 803835B8 0037F218 A0 03 00 2A */ lhz r0, 0x2a(r3)
+/* 803835BC 0037F21C B0 04 00 3E */ sth r0, 0x3e(r4)
+/* 803835C0 0037F220 A0 03 00 2C */ lhz r0, 0x2c(r3)
+/* 803835C4 0037F224 B0 04 00 40 */ sth r0, 0x40(r4)
+/* 803835C8 0037F228 A0 03 00 2E */ lhz r0, 0x2e(r3)
+/* 803835CC 0037F22C B0 04 00 42 */ sth r0, 0x42(r4)
+lbl_803835D0:
+/* 803835D0 0037F230 81 1E 00 00 */ lwz r8, 0(r30)
+/* 803835D4 0037F234 38 A5 00 04 */ addi r5, r5, 4
+/* 803835D8 0037F238 80 67 00 00 */ lwz r3, 0(r7)
+/* 803835DC 0037F23C 38 C6 00 01 */ addi r6, r6, 1
+/* 803835E0 0037F240 80 08 00 14 */ lwz r0, 0x14(r8)
+/* 803835E4 0037F244 7C 00 FA 14 */ add r0, r0, r31
+/* 803835E8 0037F248 7C 03 02 14 */ add r0, r3, r0
+/* 803835EC 0037F24C 90 04 00 00 */ stw r0, 0(r4)
+/* 803835F0 0037F250 38 84 00 44 */ addi r4, r4, 0x44
+lbl_803835F4:
+/* 803835F4 0037F254 80 7E 00 00 */ lwz r3, 0(r30)
+/* 803835F8 0037F258 88 03 00 02 */ lbz r0, 2(r3)
+/* 803835FC 0037F25C 7C 06 00 00 */ cmpw r6, r0
+/* 80383600 0037F260 41 80 FE D8 */ blt lbl_803834D8
+/* 80383604 0037F264 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80383608 0037F268 38 60 00 01 */ li r3, 1
+/* 8038360C 0037F26C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80383610 0037F270 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80383614 0037F274 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80383618 0037F278 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8038361C 0037F27C 7C 08 03 A6 */ mtlr r0
+/* 80383620 0037F280 38 21 00 20 */ addi r1, r1, 0x20
+/* 80383624 0037F284 4E 80 00 20 */ blr
+
+.global GetAxVoiceFormatFromWaveFileFormat__Q44nw4r3snd6detail14WaveFileReaderFUl
+GetAxVoiceFormatFromWaveFileFormat__Q44nw4r3snd6detail14WaveFileReaderFUl:
+/* 80383628 0037F288 28 03 00 01 */ cmplwi r3, 1
+/* 8038362C 0037F28C 40 82 00 0C */ bne lbl_80383638
+/* 80383630 0037F290 38 60 00 0A */ li r3, 0xa
+/* 80383634 0037F294 4E 80 00 20 */ blr
+lbl_80383638:
+/* 80383638 0037F298 2C 03 00 00 */ cmpwi r3, 0
+/* 8038363C 0037F29C 38 60 00 00 */ li r3, 0
+/* 80383640 0037F2A0 4C 82 00 20 */ bnelr
+/* 80383644 0037F2A4 38 60 00 19 */ li r3, 0x19
+/* 80383648 0037F2A8 4E 80 00 20 */ blr
diff --git a/asm/text_11.s b/asm/text_11.s
index 91532dc..512a084 100644
--- a/asm/text_11.s
+++ b/asm/text_11.s
@@ -2,165 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_8038340C
-func_8038340C:
-/* 8038340C 0037F06C 90 83 00 00 */ stw r4, 0(r3)
-/* 80383410 0037F070 4E 80 00 20 */ blr
-
-.global func_80383414
-func_80383414:
-/* 80383414 0037F074 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80383418 0037F078 7C 08 02 A6 */ mflr r0
-/* 8038341C 0037F07C 80 C3 00 00 */ lwz r6, 0(r3)
-/* 80383420 0037F080 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80383424 0037F084 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80383428 0037F088 7C BF 2B 78 */ mr r31, r5
-/* 8038342C 0037F08C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80383430 0037F090 7C 7E 1B 78 */ mr r30, r3
-/* 80383434 0037F094 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 80383438 0037F098 93 81 00 10 */ stw r28, 0x10(r1)
-/* 8038343C 0037F09C 7C 9C 23 78 */ mr r28, r4
-/* 80383440 0037F0A0 88 06 00 00 */ lbz r0, 0(r6)
-/* 80383444 0037F0A4 28 00 00 01 */ cmplwi r0, 1
-/* 80383448 0037F0A8 40 82 00 0C */ bne lbl_80383454
-/* 8038344C 0037F0AC 3B A0 00 0A */ li r29, 0xa
-/* 80383450 0037F0B0 48 00 00 14 */ b lbl_80383464
-lbl_80383454:
-/* 80383454 0037F0B4 2C 00 00 00 */ cmpwi r0, 0
-/* 80383458 0037F0B8 3B A0 00 00 */ li r29, 0
-/* 8038345C 0037F0BC 40 82 00 08 */ bne lbl_80383464
-/* 80383460 0037F0C0 3B A0 00 19 */ li r29, 0x19
-lbl_80383464:
-/* 80383464 0037F0C4 80 E3 00 00 */ lwz r7, 0(r3)
-/* 80383468 0037F0C8 7F A5 EB 78 */ mr r5, r29
-/* 8038346C 0037F0CC 98 04 00 00 */ stb r0, 0(r4)
-/* 80383470 0037F0D0 38 60 00 00 */ li r3, 0
-/* 80383474 0037F0D4 88 07 00 02 */ lbz r0, 2(r7)
-/* 80383478 0037F0D8 98 04 00 02 */ stb r0, 2(r4)
-/* 8038347C 0037F0DC 88 C7 00 03 */ lbz r6, 3(r7)
-/* 80383480 0037F0E0 A0 07 00 04 */ lhz r0, 4(r7)
-/* 80383484 0037F0E4 54 C6 80 1E */ slwi r6, r6, 0x10
-/* 80383488 0037F0E8 7C 06 02 14 */ add r0, r6, r0
-/* 8038348C 0037F0EC 90 04 00 04 */ stw r0, 4(r4)
-/* 80383490 0037F0F0 88 07 00 01 */ lbz r0, 1(r7)
-/* 80383494 0037F0F4 98 04 00 01 */ stb r0, 1(r4)
-/* 80383498 0037F0F8 80 87 00 08 */ lwz r4, 8(r7)
-/* 8038349C 0037F0FC 4B FE 6B 75 */ bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
-/* 803834A0 0037F100 90 7C 00 08 */ stw r3, 8(r28)
-/* 803834A4 0037F104 7F A5 EB 78 */ mr r5, r29
-/* 803834A8 0037F108 80 9E 00 00 */ lwz r4, 0(r30)
-/* 803834AC 0037F10C 38 60 00 00 */ li r3, 0
-/* 803834B0 0037F110 80 84 00 0C */ lwz r4, 0xc(r4)
-/* 803834B4 0037F114 4B FE 6B 5D */ bl GetSampleByDspAddress__Q44nw4r3snd6detail7AxVoiceFPCvUlQ54nw4r3snd6detail7AxVoice6Format
-/* 803834B8 0037F118 38 03 00 01 */ addi r0, r3, 1
-/* 803834BC 0037F11C 80 7E 00 00 */ lwz r3, 0(r30)
-/* 803834C0 0037F120 90 1C 00 0C */ stw r0, 0xc(r28)
-/* 803834C4 0037F124 38 9C 00 10 */ addi r4, r28, 0x10
-/* 803834C8 0037F128 38 C0 00 00 */ li r6, 0
-/* 803834CC 0037F12C 80 03 00 10 */ lwz r0, 0x10(r3)
-/* 803834D0 0037F130 7C A0 1A 14 */ add r5, r0, r3
-/* 803834D4 0037F134 48 00 01 20 */ b lbl_803835F4
-lbl_803834D8:
-/* 803834D8 0037F138 80 05 00 00 */ lwz r0, 0(r5)
-/* 803834DC 0037F13C 7C E0 1A 14 */ add r7, r0, r3
-/* 803834E0 0037F140 80 07 00 08 */ lwz r0, 8(r7)
-/* 803834E4 0037F144 90 04 00 04 */ stw r0, 4(r4)
-/* 803834E8 0037F148 80 07 00 0C */ lwz r0, 0xc(r7)
-/* 803834EC 0037F14C 90 04 00 08 */ stw r0, 8(r4)
-/* 803834F0 0037F150 80 07 00 10 */ lwz r0, 0x10(r7)
-/* 803834F4 0037F154 90 04 00 0C */ stw r0, 0xc(r4)
-/* 803834F8 0037F158 80 07 00 14 */ lwz r0, 0x14(r7)
-/* 803834FC 0037F15C 90 04 00 10 */ stw r0, 0x10(r4)
-/* 80383500 0037F160 80 67 00 04 */ lwz r3, 4(r7)
-/* 80383504 0037F164 2C 03 00 00 */ cmpwi r3, 0
-/* 80383508 0037F168 41 82 00 C8 */ beq lbl_803835D0
-/* 8038350C 0037F16C 80 1E 00 00 */ lwz r0, 0(r30)
-/* 80383510 0037F170 7D 03 02 6E */ lhzux r8, r3, r0
-/* 80383514 0037F174 A0 03 00 02 */ lhz r0, 2(r3)
-/* 80383518 0037F178 B1 04 00 14 */ sth r8, 0x14(r4)
-/* 8038351C 0037F17C B0 04 00 16 */ sth r0, 0x16(r4)
-/* 80383520 0037F180 A1 03 00 04 */ lhz r8, 4(r3)
-/* 80383524 0037F184 A0 03 00 06 */ lhz r0, 6(r3)
-/* 80383528 0037F188 B1 04 00 18 */ sth r8, 0x18(r4)
-/* 8038352C 0037F18C B0 04 00 1A */ sth r0, 0x1a(r4)
-/* 80383530 0037F190 A1 03 00 08 */ lhz r8, 8(r3)
-/* 80383534 0037F194 A0 03 00 0A */ lhz r0, 0xa(r3)
-/* 80383538 0037F198 B1 04 00 1C */ sth r8, 0x1c(r4)
-/* 8038353C 0037F19C B0 04 00 1E */ sth r0, 0x1e(r4)
-/* 80383540 0037F1A0 A1 03 00 0C */ lhz r8, 0xc(r3)
-/* 80383544 0037F1A4 A0 03 00 0E */ lhz r0, 0xe(r3)
-/* 80383548 0037F1A8 B1 04 00 20 */ sth r8, 0x20(r4)
-/* 8038354C 0037F1AC B0 04 00 22 */ sth r0, 0x22(r4)
-/* 80383550 0037F1B0 A1 03 00 10 */ lhz r8, 0x10(r3)
-/* 80383554 0037F1B4 A0 03 00 12 */ lhz r0, 0x12(r3)
-/* 80383558 0037F1B8 B1 04 00 24 */ sth r8, 0x24(r4)
-/* 8038355C 0037F1BC B0 04 00 26 */ sth r0, 0x26(r4)
-/* 80383560 0037F1C0 A1 03 00 14 */ lhz r8, 0x14(r3)
-/* 80383564 0037F1C4 A0 03 00 16 */ lhz r0, 0x16(r3)
-/* 80383568 0037F1C8 B1 04 00 28 */ sth r8, 0x28(r4)
-/* 8038356C 0037F1CC B0 04 00 2A */ sth r0, 0x2a(r4)
-/* 80383570 0037F1D0 A1 03 00 18 */ lhz r8, 0x18(r3)
-/* 80383574 0037F1D4 A0 03 00 1A */ lhz r0, 0x1a(r3)
-/* 80383578 0037F1D8 B1 04 00 2C */ sth r8, 0x2c(r4)
-/* 8038357C 0037F1DC B0 04 00 2E */ sth r0, 0x2e(r4)
-/* 80383580 0037F1E0 A1 03 00 1C */ lhz r8, 0x1c(r3)
-/* 80383584 0037F1E4 A0 03 00 1E */ lhz r0, 0x1e(r3)
-/* 80383588 0037F1E8 B1 04 00 30 */ sth r8, 0x30(r4)
-/* 8038358C 0037F1EC B0 04 00 32 */ sth r0, 0x32(r4)
-/* 80383590 0037F1F0 A1 03 00 20 */ lhz r8, 0x20(r3)
-/* 80383594 0037F1F4 A0 03 00 22 */ lhz r0, 0x22(r3)
-/* 80383598 0037F1F8 B1 04 00 34 */ sth r8, 0x34(r4)
-/* 8038359C 0037F1FC B0 04 00 36 */ sth r0, 0x36(r4)
-/* 803835A0 0037F200 A1 03 00 24 */ lhz r8, 0x24(r3)
-/* 803835A4 0037F204 A0 03 00 26 */ lhz r0, 0x26(r3)
-/* 803835A8 0037F208 B1 04 00 38 */ sth r8, 0x38(r4)
-/* 803835AC 0037F20C B0 04 00 3A */ sth r0, 0x3a(r4)
-/* 803835B0 0037F210 A0 03 00 28 */ lhz r0, 0x28(r3)
-/* 803835B4 0037F214 B0 04 00 3C */ sth r0, 0x3c(r4)
-/* 803835B8 0037F218 A0 03 00 2A */ lhz r0, 0x2a(r3)
-/* 803835BC 0037F21C B0 04 00 3E */ sth r0, 0x3e(r4)
-/* 803835C0 0037F220 A0 03 00 2C */ lhz r0, 0x2c(r3)
-/* 803835C4 0037F224 B0 04 00 40 */ sth r0, 0x40(r4)
-/* 803835C8 0037F228 A0 03 00 2E */ lhz r0, 0x2e(r3)
-/* 803835CC 0037F22C B0 04 00 42 */ sth r0, 0x42(r4)
-lbl_803835D0:
-/* 803835D0 0037F230 81 1E 00 00 */ lwz r8, 0(r30)
-/* 803835D4 0037F234 38 A5 00 04 */ addi r5, r5, 4
-/* 803835D8 0037F238 80 67 00 00 */ lwz r3, 0(r7)
-/* 803835DC 0037F23C 38 C6 00 01 */ addi r6, r6, 1
-/* 803835E0 0037F240 80 08 00 14 */ lwz r0, 0x14(r8)
-/* 803835E4 0037F244 7C 00 FA 14 */ add r0, r0, r31
-/* 803835E8 0037F248 7C 03 02 14 */ add r0, r3, r0
-/* 803835EC 0037F24C 90 04 00 00 */ stw r0, 0(r4)
-/* 803835F0 0037F250 38 84 00 44 */ addi r4, r4, 0x44
-lbl_803835F4:
-/* 803835F4 0037F254 80 7E 00 00 */ lwz r3, 0(r30)
-/* 803835F8 0037F258 88 03 00 02 */ lbz r0, 2(r3)
-/* 803835FC 0037F25C 7C 06 00 00 */ cmpw r6, r0
-/* 80383600 0037F260 41 80 FE D8 */ blt lbl_803834D8
-/* 80383604 0037F264 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80383608 0037F268 38 60 00 01 */ li r3, 1
-/* 8038360C 0037F26C 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80383610 0037F270 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 80383614 0037F274 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 80383618 0037F278 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8038361C 0037F27C 7C 08 03 A6 */ mtlr r0
-/* 80383620 0037F280 38 21 00 20 */ addi r1, r1, 0x20
-/* 80383624 0037F284 4E 80 00 20 */ blr
-
-.global func_80383628
-func_80383628:
-/* 80383628 0037F288 28 03 00 01 */ cmplwi r3, 1
-/* 8038362C 0037F28C 40 82 00 0C */ bne lbl_80383638
-/* 80383630 0037F290 38 60 00 0A */ li r3, 0xa
-/* 80383634 0037F294 4E 80 00 20 */ blr
-lbl_80383638:
-/* 80383638 0037F298 2C 03 00 00 */ cmpwi r3, 0
-/* 8038363C 0037F29C 38 60 00 00 */ li r3, 0
-/* 80383640 0037F2A0 4C 82 00 20 */ bnelr
-/* 80383644 0037F2A4 38 60 00 19 */ li r3, 0x19
-/* 80383648 0037F2A8 4E 80 00 20 */ blr
-
.global func_8038364C
func_8038364C:
/* 8038364C 0037F2AC 94 21 FF F0 */ stwu r1, -0x10(r1)
@@ -644,11 +485,11 @@ lbl_80383CE4:
/* 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 func_8038340C
+/* 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 func_80383414
+/* 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)
diff --git a/obj_files.mk b/obj_files.mk
index 1a54965..0eaed58 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -159,6 +159,7 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_Voice.o \
$(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/text_11.o
CTORS_O_FILES := \