diff options
-rw-r--r-- | asm/ctors.s | 2 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_AxManager.s | 16 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_AxVoice.s | 4 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_BankFile.s | 12 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_Channel.s | 14 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_MmlParser.s | 4 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_SoundArchiveFile.s | 66 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_SoundThread.s | 10 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_StrmFile.s | 12 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_StrmPlayer.s | 6 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_Util.s | 353 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_Voice.s | 30 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_VoiceManager.s | 497 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_WaveFile.s | 162 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_WaveSound.s | 275 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_WsdFile.s | 237 | ||||
-rw-r--r-- | asm/nw4r/snd/snd_SoundArchivePlayer.s | 14 | ||||
-rw-r--r-- | asm/nw4r/snd/snd_SoundPlayer.s | 4 | ||||
-rw-r--r-- | asm/nw4r/snd/snd_SoundSystem.s | 12 | ||||
-rw-r--r-- | asm/nw4r/snd/snd_WaveSoundHandle.s | 21 | ||||
-rw-r--r-- | asm/text_11.s | 1505 | ||||
-rw-r--r-- | obj_files.mk | 6 |
22 files changed, 1660 insertions, 1602 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_AxManager.s b/asm/nw4r/snd/detail/snd_AxManager.s index 5ce30e1..e84dd92 100644 --- a/asm/nw4r/snd/detail/snd_AxManager.s +++ b/asm/nw4r/snd/detail/snd_AxManager.s @@ -535,9 +535,9 @@ Update__Q44nw4r3snd6detail9AxManagerFv: /* 8036873C 0036439C 41 82 00 44 */ beq lbl_80368780
/* 80368740 003643A0 38 00 00 00 */ li r0, 0
/* 80368744 003643A4 98 1D 00 1A */ stb r0, 0x1a(r29)
-/* 80368748 003643A8 48 01 A1 B9 */ bl func_80382900
+/* 80368748 003643A8 48 01 A1 B9 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8036874C 003643AC 38 80 00 02 */ li r4, 2
-/* 80368750 003643B0 48 01 A7 E9 */ bl func_80382F38
+/* 80368750 003643B0 48 01 A7 E9 */ bl UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl
/* 80368754 003643B4 48 00 00 2C */ b lbl_80368780
lbl_80368758:
/* 80368758 003643B8 2C 03 00 01 */ cmpwi r3, 1
@@ -547,9 +547,9 @@ lbl_80368758: /* 80368768 003643C8 40 82 00 18 */ bne lbl_80368780
/* 8036876C 003643CC 38 00 00 01 */ li r0, 1
/* 80368770 003643D0 98 1D 00 1A */ stb r0, 0x1a(r29)
-/* 80368774 003643D4 48 01 A1 8D */ bl func_80382900
+/* 80368774 003643D4 48 01 A1 8D */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 80368778 003643D8 38 80 00 02 */ li r4, 2
-/* 8036877C 003643DC 48 01 A7 BD */ bl func_80382F38
+/* 8036877C 003643DC 48 01 A7 BD */ bl UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl
lbl_80368780:
/* 80368780 003643E0 C3 82 A5 4C */ lfs f28, lbl_80642B4C-_SDA2_BASE_(r2)
/* 80368784 003643E4 7F BF EB 78 */ mr r31, r29
@@ -701,9 +701,9 @@ lbl_80368950: /* 80368980 003645E0 38 03 00 01 */ addi r0, r3, 1
/* 80368984 003645E4 90 1D 00 28 */ stw r0, 0x28(r29)
lbl_80368988:
-/* 80368988 003645E8 48 01 9F 79 */ bl func_80382900
+/* 80368988 003645E8 48 01 9F 79 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8036898C 003645EC 38 80 00 08 */ li r4, 8
-/* 80368990 003645F0 48 01 A5 A9 */ bl func_80382F38
+/* 80368990 003645F0 48 01 A5 A9 */ bl UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl
lbl_80368994:
/* 80368994 003645F4 80 7D 00 48 */ lwz r3, 0x48(r29)
/* 80368998 003645F8 80 1D 00 44 */ lwz r0, 0x44(r29)
@@ -902,9 +902,9 @@ lbl_80368C34: /* 80368C34 00364894 38 60 00 00 */ li r3, 0
/* 80368C38 00364898 4B F2 7B 61 */ bl func_80290798
lbl_80368C3C:
-/* 80368C3C 0036489C 48 01 9C C5 */ bl func_80382900
+/* 80368C3C 0036489C 48 01 9C C5 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 80368C40 003648A0 38 80 00 10 */ li r4, 0x10
-/* 80368C44 003648A4 48 01 A2 F5 */ bl func_80382F38
+/* 80368C44 003648A4 48 01 A2 F5 */ bl UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl
/* 80368C48 003648A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80368C4C 003648AC 7C 08 03 A6 */ mtlr r0
/* 80368C50 003648B0 38 21 00 10 */ addi r1, r1, 0x10
diff --git a/asm/nw4r/snd/detail/snd_AxVoice.s b/asm/nw4r/snd/detail/snd_AxVoice.s index d669653..d2fde9d 100644 --- a/asm/nw4r/snd/detail/snd_AxVoice.s +++ b/asm/nw4r/snd/detail/snd_AxVoice.s @@ -2447,7 +2447,7 @@ lbl_8036B4E8: /* 8036B4FC 0036715C 38 C1 00 0C */ addi r6, r1, 0xc
/* 8036B500 00367160 38 E1 00 0A */ addi r7, r1, 0xa
/* 8036B504 00367164 39 01 00 08 */ addi r8, r1, 8
-/* 8036B508 00367168 48 01 7E 69 */ bl func_80383370
+/* 8036B508 00367168 48 01 7E 69 */ bl GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
/* 8036B50C 0036716C A0 A1 00 10 */ lhz r5, 0x10(r1)
/* 8036B510 00367170 7F A3 EB 78 */ mr r3, r29
/* 8036B514 00367174 A0 C1 00 0E */ lhz r6, 0xe(r1)
@@ -2472,7 +2472,7 @@ lbl_8036B534: /* 8036B55C 003671BC B0 01 00 18 */ sth r0, 0x18(r1)
/* 8036B560 003671C0 B0 01 00 1A */ sth r0, 0x1a(r1)
/* 8036B564 003671C4 B0 01 00 1C */ sth r0, 0x1c(r1)
-/* 8036B568 003671C8 48 01 7E 09 */ bl func_80383370
+/* 8036B568 003671C8 48 01 7E 09 */ bl GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
/* 8036B56C 003671CC 4B F0 31 F1 */ bl OSDisableInterrupts
/* 8036B570 003671D0 80 9D 00 00 */ lwz r4, 0(r29)
/* 8036B574 003671D4 7C 7E 1B 78 */ mr r30, r3
diff --git a/asm/nw4r/snd/detail/snd_BankFile.s b/asm/nw4r/snd/detail/snd_BankFile.s index 81cf66b..3d456e0 100644 --- a/asm/nw4r/snd/detail/snd_BankFile.s +++ b/asm/nw4r/snd/detail/snd_BankFile.s @@ -112,7 +112,7 @@ lbl_8036CBE4: /* 8036CBE8 00368848 88 64 00 00 */ lbz r3, 0(r4)
/* 8036CBEC 0036884C 80 84 00 04 */ lwz r4, 4(r4)
/* 8036CBF0 00368850 38 A5 00 08 */ addi r5, r5, 8
-/* 8036CBF4 00368854 48 01 67 F5 */ bl func_803833E8
+/* 8036CBF4 00368854 48 01 67 F5 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CBF8 00368858 2C 03 00 00 */ cmpwi r3, 0
/* 8036CBFC 0036885C 40 82 00 0C */ bne lbl_8036CC08
/* 8036CC00 00368860 38 60 00 00 */ li r3, 0
@@ -190,7 +190,7 @@ lbl_8036CCF0: /* 8036CCF4 00368954 88 64 00 00 */ lbz r3, 0(r4)
/* 8036CCF8 00368958 80 84 00 04 */ lwz r4, 4(r4)
/* 8036CCFC 0036895C 38 A5 00 08 */ addi r5, r5, 8
-/* 8036CD00 00368960 48 01 66 E9 */ bl func_803833E8
+/* 8036CD00 00368960 48 01 66 E9 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CD04 00368964 2C 03 00 00 */ cmpwi r3, 0
/* 8036CD08 00368968 40 82 00 0C */ bne lbl_8036CD14
/* 8036CD0C 0036896C 38 60 00 00 */ li r3, 0
@@ -222,7 +222,7 @@ lbl_8036CD60: /* 8036CD64 003689C4 88 64 00 00 */ lbz r3, 0(r4)
/* 8036CD68 003689C8 80 84 00 04 */ lwz r4, 4(r4)
/* 8036CD6C 003689CC 38 A5 00 08 */ addi r5, r5, 8
-/* 8036CD70 003689D0 48 01 66 79 */ bl func_803833E8
+/* 8036CD70 003689D0 48 01 66 79 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CD74 003689D4 2C 03 00 00 */ cmpwi r3, 0
/* 8036CD78 003689D8 40 82 00 0C */ bne lbl_8036CD84
/* 8036CD7C 003689DC 38 60 00 00 */ li r3, 0
@@ -284,7 +284,7 @@ lbl_8036CE28: /* 8036CE30 00368A90 7C 84 02 14 */ add r4, r4, r0
/* 8036CE34 00368A94 88 64 00 0C */ lbz r3, 0xc(r4)
/* 8036CE38 00368A98 80 84 00 10 */ lwz r4, 0x10(r4)
-/* 8036CE3C 00368A9C 48 01 65 AD */ bl func_803833E8
+/* 8036CE3C 00368A9C 48 01 65 AD */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CE40 00368AA0 2C 03 00 00 */ cmpwi r3, 0
/* 8036CE44 00368AA4 40 82 00 0C */ bne lbl_8036CE50
/* 8036CE48 00368AA8 38 60 00 00 */ li r3, 0
@@ -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_Channel.s b/asm/nw4r/snd/detail/snd_Channel.s index 3491ce5..d6009c3 100644 --- a/asm/nw4r/snd/detail/snd_Channel.s +++ b/asm/nw4r/snd/detail/snd_Channel.s @@ -318,14 +318,14 @@ lbl_8036E5E4: /* 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 GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
-/* 8036E60C 0036A26C 48 01 4B 2D */ bl func_80383138
+/* 8036E60C 0036A26C 48 01 4B 2D */ bl CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
/* 8036E610 0036A270 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036E614 0036A274 EF BD 00 72 */ fmuls f29, f29, f1
/* 8036E618 0036A278 28 00 00 01 */ cmplwi r0, 1
/* 8036E61C 0036A27C 40 82 00 14 */ bne lbl_8036E630
/* 8036E620 0036A280 C0 02 A5 CC */ lfs f0, lbl_80642BCC-_SDA2_BASE_(r2)
/* 8036E624 0036A284 EC 20 07 F2 */ fmuls f1, f0, f31
-/* 8036E628 0036A288 48 01 4B 11 */ bl func_80383138
+/* 8036E628 0036A288 48 01 4B 11 */ bl CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
/* 8036E62C 0036A28C EF BD 00 72 */ fmuls f29, f29, f1
lbl_8036E630:
/* 8036E630 0036A290 80 1E 00 00 */ lwz r0, 0(r30)
@@ -525,7 +525,7 @@ lbl_8036E8EC: /* 8036E908 0036A568 EE 94 00 72 */ fmuls f20, f20, f1
/* 8036E90C 0036A56C D8 01 00 58 */ stfd f0, 0x58(r1)
/* 8036E910 0036A570 80 61 00 5C */ lwz r3, 0x5c(r1)
-/* 8036E914 0036A574 48 01 46 95 */ bl func_80382FA8
+/* 8036E914 0036A574 48 01 46 95 */ bl CalcPitchRatio__Q44nw4r3snd6detail4UtilFi
/* 8036E918 0036A578 C3 62 A5 C0 */ lfs f27, lbl_80642BC0-_SDA2_BASE_(r2)
/* 8036E91C 0036A57C EF 81 05 32 */ fmuls f28, f1, f20
/* 8036E920 0036A580 C0 1E 00 AC */ lfs f0, 0xac(r30)
@@ -629,14 +629,14 @@ lbl_8036EA90: /* 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 GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
-/* 8036EAA8 0036A708 48 01 46 91 */ bl func_80383138
+/* 8036EAA8 0036A708 48 01 46 91 */ bl CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
/* 8036EAAC 0036A70C 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036EAB0 0036A710 EE 94 00 72 */ fmuls f20, f20, f1
/* 8036EAB4 0036A714 28 00 00 01 */ cmplwi r0, 1
/* 8036EAB8 0036A718 40 82 00 14 */ bne lbl_8036EACC
/* 8036EABC 0036A71C C0 02 A5 CC */ lfs f0, lbl_80642BCC-_SDA2_BASE_(r2)
/* 8036EAC0 0036A720 EC 20 05 F2 */ fmuls f1, f0, f23
-/* 8036EAC4 0036A724 48 01 46 75 */ bl func_80383138
+/* 8036EAC4 0036A724 48 01 46 75 */ bl CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
/* 8036EAC8 0036A728 EE 94 00 72 */ fmuls f20, f20, f1
lbl_8036EACC:
/* 8036EACC 0036A72C 80 7E 00 DC */ lwz r3, 0xdc(r30)
@@ -1096,14 +1096,14 @@ lbl_8036F108: lbl_8036F13C:
/* 8036F13C 0036AD9C 3B 80 00 01 */ li r28, 1
/* 8036F140 0036ADA0 9B 9A 00 33 */ stb r28, 0x33(r26)
-/* 8036F144 0036ADA4 48 01 37 BD */ bl func_80382900
+/* 8036F144 0036ADA4 48 01 37 BD */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8036F148 0036ADA8 3C E0 80 37 */ lis r7, VoiceCallbackFunc__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv@ha
/* 8036F14C 0036ADAC 7F A4 EB 78 */ mr r4, r29
/* 8036F150 0036ADB0 7F C5 F3 78 */ mr r5, r30
/* 8036F154 0036ADB4 7F E6 FB 78 */ mr r6, r31
/* 8036F158 0036ADB8 7F 48 D3 78 */ mr r8, r26
/* 8036F15C 0036ADBC 38 E7 EE B0 */ addi r7, r7, VoiceCallbackFunc__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv@l
-/* 8036F160 0036ADC0 48 01 39 65 */ bl func_80382AC4
+/* 8036F160 0036ADC0 48 01 39 65 */ bl AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv
/* 8036F164 0036ADC4 2C 03 00 00 */ cmpwi r3, 0
/* 8036F168 0036ADC8 40 82 00 A8 */ bne lbl_8036F210
/* 8036F16C 0036ADCC 88 0D B1 F8 */ lbz r0, lbl_806404B8-_SDA_BASE_(r13)
diff --git a/asm/nw4r/snd/detail/snd_MmlParser.s b/asm/nw4r/snd/detail/snd_MmlParser.s index 4b99fdf..5821b7b 100644 --- a/asm/nw4r/snd/detail/snd_MmlParser.s +++ b/asm/nw4r/snd/detail/snd_MmlParser.s @@ -856,7 +856,7 @@ lbl_80372A78: /* 80372A88 0036E6E8 3B 60 00 01 */ li r27, 1
/* 80372A8C 0036E6EC 7C 1D 07 34 */ extsh r29, r0
lbl_80372A90:
-/* 80372A90 0036E6F0 48 01 09 35 */ bl func_803833C4
+/* 80372A90 0036E6F0 48 01 09 35 */ bl CalcRandom__Q44nw4r3snd6detail4UtilFv
/* 80372A94 0036E6F4 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80372A98 0036E6F8 38 1D 00 01 */ addi r0, r29, 1
/* 80372A9C 0036E6FC 7C 63 01 D6 */ mullw r3, r3, r0
@@ -1050,7 +1050,7 @@ lbl_80372CE4: /* 80372D18 0036E978 90 04 00 00 */ stw r0, 0(r4)
/* 80372D1C 0036E97C 8B E5 00 00 */ lbz r31, 0(r5)
/* 80372D20 0036E980 50 7F 44 2E */ rlwimi r31, r3, 8, 0x10, 0x17
-/* 80372D24 0036E984 48 01 06 A1 */ bl func_803833C4
+/* 80372D24 0036E984 48 01 06 A1 */ bl CalcRandom__Q44nw4r3snd6detail4UtilFv
/* 80372D28 0036E988 7F E0 07 34 */ extsh r0, r31
/* 80372D2C 0036E98C 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 80372D30 0036E990 7C 7E 00 50 */ subf r3, r30, r0
diff --git a/asm/nw4r/snd/detail/snd_SoundArchiveFile.s b/asm/nw4r/snd/detail/snd_SoundArchiveFile.s index e55648c..06f7ef2 100644 --- a/asm/nw4r/snd/detail/snd_SoundArchiveFile.s +++ b/asm/nw4r/snd/detail/snd_SoundArchiveFile.s @@ -83,7 +83,7 @@ GetSoundType__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl: /* 80377678 003732D8 7C 7E 1B 78 */ mr r30, r3
/* 8037767C 003732DC 88 65 00 00 */ lbz r3, 0(r5)
/* 80377680 003732E0 80 85 00 04 */ lwz r4, 4(r5)
-/* 80377684 003732E4 48 00 BD 65 */ bl func_803833E8
+/* 80377684 003732E4 48 00 BD 65 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377688 003732E8 2C 03 00 00 */ cmpwi r3, 0
/* 8037768C 003732EC 40 82 00 0C */ bne lbl_80377698
/* 80377690 003732F0 38 60 00 00 */ li r3, 0
@@ -103,7 +103,7 @@ lbl_803776AC: /* 803776C0 00373320 7C 83 02 14 */ add r4, r3, r0
/* 803776C4 00373324 88 64 00 04 */ lbz r3, 4(r4)
/* 803776C8 00373328 80 84 00 08 */ lwz r4, 8(r4)
-/* 803776CC 0037332C 48 00 BD 1D */ bl func_803833E8
+/* 803776CC 0037332C 48 00 BD 1D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 803776D0 00373330 2C 03 00 00 */ cmpwi r3, 0
/* 803776D4 00373334 40 82 00 0C */ bne lbl_803776E0
/* 803776D8 00373338 38 60 00 00 */ li r3, 0
@@ -160,7 +160,7 @@ ReadSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12Sound /* 80377774 003733D4 7C 7D 1B 78 */ mr r29, r3
/* 80377778 003733D8 88 66 00 00 */ lbz r3, 0(r6)
/* 8037777C 003733DC 80 86 00 04 */ lwz r4, 4(r6)
-/* 80377780 003733E0 48 00 BC 69 */ bl func_803833E8
+/* 80377780 003733E0 48 00 BC 69 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377784 003733E4 2C 03 00 00 */ cmpwi r3, 0
/* 80377788 003733E8 40 82 00 0C */ bne lbl_80377794
/* 8037778C 003733EC 38 60 00 00 */ li r3, 0
@@ -180,7 +180,7 @@ lbl_803777A8: /* 803777BC 0037341C 7C 83 02 14 */ add r4, r3, r0
/* 803777C0 00373420 88 64 00 04 */ lbz r3, 4(r4)
/* 803777C4 00373424 80 84 00 08 */ lwz r4, 8(r4)
-/* 803777C8 00373428 48 00 BC 21 */ bl func_803833E8
+/* 803777C8 00373428 48 00 BC 21 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 803777CC 0037342C 48 00 00 18 */ b lbl_803777E4
lbl_803777D0:
/* 803777D0 00373430 57 C4 18 38 */ slwi r4, r30, 3
@@ -242,7 +242,7 @@ ReadSeqSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12So /* 80377890 003734F0 80 BE 00 28 */ lwz r5, 0x28(r30)
/* 80377894 003734F4 90 81 00 0C */ stw r4, 0xc(r1)
/* 80377898 003734F8 88 61 00 08 */ lbz r3, 8(r1)
-/* 8037789C 003734FC 48 00 BB 4D */ bl func_803833E8
+/* 8037789C 003734FC 48 00 BB 4D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 803778A0 00373500 2C 03 00 00 */ cmpwi r3, 0
/* 803778A4 00373504 40 82 00 0C */ bne lbl_803778B0
/* 803778A8 00373508 38 60 00 00 */ li r3, 0
@@ -290,7 +290,7 @@ ReadStrmSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12S /* 80377934 00373594 80 BF 00 28 */ lwz r5, 0x28(r31)
/* 80377938 00373598 90 81 00 0C */ stw r4, 0xc(r1)
/* 8037793C 0037359C 88 61 00 08 */ lbz r3, 8(r1)
-/* 80377940 003735A0 48 00 BA A9 */ bl func_803833E8
+/* 80377940 003735A0 48 00 BA A9 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377944 003735A4 7C 03 00 D0 */ neg r0, r3
/* 80377948 003735A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037794C 003735AC 7C 00 1B 78 */ or r0, r0, r3
@@ -314,7 +314,7 @@ ReadWaveSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12S /* 80377988 003735E8 80 BE 00 28 */ lwz r5, 0x28(r30)
/* 8037798C 003735EC 90 81 00 0C */ stw r4, 0xc(r1)
/* 80377990 003735F0 88 61 00 08 */ lbz r3, 8(r1)
-/* 80377994 003735F4 48 00 BA 55 */ bl func_803833E8
+/* 80377994 003735F4 48 00 BA 55 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377998 003735F8 2C 03 00 00 */ cmpwi r3, 0
/* 8037799C 003735FC 40 82 00 0C */ bne lbl_803779A8
/* 803779A0 00373600 38 60 00 00 */ li r3, 0
@@ -361,7 +361,7 @@ ReadBankInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundA /* 80377A28 00373688 7C 7D 1B 78 */ mr r29, r3
/* 80377A2C 0037368C 88 66 00 08 */ lbz r3, 8(r6)
/* 80377A30 00373690 80 86 00 0C */ lwz r4, 0xc(r6)
-/* 80377A34 00373694 48 00 B9 B5 */ bl func_803833E8
+/* 80377A34 00373694 48 00 B9 B5 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377A38 00373698 2C 03 00 00 */ cmpwi r3, 0
/* 80377A3C 0037369C 40 82 00 0C */ bne lbl_80377A48
/* 80377A40 003736A0 38 60 00 00 */ li r3, 0
@@ -378,7 +378,7 @@ lbl_80377A5C: /* 80377A64 003736C4 7C 83 02 14 */ add r4, r3, r0
/* 80377A68 003736C8 88 64 00 04 */ lbz r3, 4(r4)
/* 80377A6C 003736CC 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377A70 003736D0 48 00 B9 79 */ bl func_803833E8
+/* 80377A70 003736D0 48 00 B9 79 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
lbl_80377A74:
/* 80377A74 003736D4 2C 03 00 00 */ cmpwi r3, 0
/* 80377A78 003736D8 40 82 00 0C */ bne lbl_80377A84
@@ -412,7 +412,7 @@ ReadPlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12Soun /* 80377AD4 00373734 7C 7D 1B 78 */ mr r29, r3
/* 80377AD8 00373738 88 66 00 10 */ lbz r3, 0x10(r6)
/* 80377ADC 0037373C 80 86 00 14 */ lwz r4, 0x14(r6)
-/* 80377AE0 00373740 48 00 B9 09 */ bl func_803833E8
+/* 80377AE0 00373740 48 00 B9 09 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377AE4 00373744 2C 03 00 00 */ cmpwi r3, 0
/* 80377AE8 00373748 40 82 00 0C */ bne lbl_80377AF4
/* 80377AEC 0037374C 38 80 00 00 */ li r4, 0
@@ -429,7 +429,7 @@ lbl_80377B08: /* 80377B10 00373770 7C 83 02 14 */ add r4, r3, r0
/* 80377B14 00373774 88 64 00 04 */ lbz r3, 4(r4)
/* 80377B18 00373778 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377B1C 0037377C 48 00 B8 CD */ bl func_803833E8
+/* 80377B1C 0037377C 48 00 B8 CD */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377B20 00373780 7C 64 1B 78 */ mr r4, r3
lbl_80377B24:
/* 80377B24 00373784 2C 04 00 00 */ cmpwi r4, 0
@@ -467,7 +467,7 @@ ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12Sound /* 80377B90 003737F0 7C 7C 1B 78 */ mr r28, r3
/* 80377B94 003737F4 88 66 00 20 */ lbz r3, 0x20(r6)
/* 80377B98 003737F8 80 86 00 24 */ lwz r4, 0x24(r6)
-/* 80377B9C 003737FC 48 00 B8 4D */ bl func_803833E8
+/* 80377B9C 003737FC 48 00 B8 4D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377BA0 00373800 2C 03 00 00 */ cmpwi r3, 0
/* 80377BA4 00373804 40 82 00 0C */ bne lbl_80377BB0
/* 80377BA8 00373808 3B C0 00 00 */ li r30, 0
@@ -484,7 +484,7 @@ lbl_80377BC4: /* 80377BCC 0037382C 7C 83 02 14 */ add r4, r3, r0
/* 80377BD0 00373830 88 64 00 04 */ lbz r3, 4(r4)
/* 80377BD4 00373834 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377BD8 00373838 48 00 B8 11 */ bl func_803833E8
+/* 80377BD8 00373838 48 00 B8 11 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377BDC 0037383C 7C 7E 1B 78 */ mr r30, r3
lbl_80377BE0:
/* 80377BE0 00373840 2C 1E 00 00 */ cmpwi r30, 0
@@ -495,7 +495,7 @@ lbl_80377BF0: /* 80377BF0 00373850 88 7E 00 20 */ lbz r3, 0x20(r30)
/* 80377BF4 00373854 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 80377BF8 00373858 80 BC 00 28 */ lwz r5, 0x28(r28)
-/* 80377BFC 0037385C 48 00 B7 ED */ bl func_803833E8
+/* 80377BFC 0037385C 48 00 B7 ED */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377C00 00373860 2C 03 00 00 */ cmpwi r3, 0
/* 80377C04 00373864 7C 7F 1B 78 */ mr r31, r3
/* 80377C08 00373868 40 82 00 0C */ bne lbl_80377C14
@@ -505,7 +505,7 @@ lbl_80377C14: /* 80377C14 00373874 88 7E 00 08 */ lbz r3, 8(r30)
/* 80377C18 00373878 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 80377C1C 0037387C 80 BC 00 28 */ lwz r5, 0x28(r28)
-/* 80377C20 00373880 48 00 B7 C9 */ bl func_803833E8
+/* 80377C20 00373880 48 00 B7 C9 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377C24 00373884 90 7D 00 04 */ stw r3, 4(r29)
/* 80377C28 00373888 38 60 00 01 */ li r3, 1
/* 80377C2C 0037388C 80 1E 00 10 */ lwz r0, 0x10(r30)
@@ -545,7 +545,7 @@ ReadGroupItemInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd1 /* 80377CA4 00373904 7C 7C 1B 78 */ mr r28, r3
/* 80377CA8 00373908 88 67 00 20 */ lbz r3, 0x20(r7)
/* 80377CAC 0037390C 80 87 00 24 */ lwz r4, 0x24(r7)
-/* 80377CB0 00373910 48 00 B7 39 */ bl func_803833E8
+/* 80377CB0 00373910 48 00 B7 39 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377CB4 00373914 2C 03 00 00 */ cmpwi r3, 0
/* 80377CB8 00373918 40 82 00 0C */ bne lbl_80377CC4
/* 80377CBC 0037391C 38 80 00 00 */ li r4, 0
@@ -562,7 +562,7 @@ lbl_80377CD8: /* 80377CE0 00373940 7C 83 02 14 */ add r4, r3, r0
/* 80377CE4 00373944 88 64 00 04 */ lbz r3, 4(r4)
/* 80377CE8 00373948 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377CEC 0037394C 48 00 B6 FD */ bl func_803833E8
+/* 80377CEC 0037394C 48 00 B6 FD */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377CF0 00373950 7C 64 1B 78 */ mr r4, r3
lbl_80377CF4:
/* 80377CF4 00373954 2C 04 00 00 */ cmpwi r4, 0
@@ -573,7 +573,7 @@ lbl_80377D04: /* 80377D04 00373964 88 64 00 20 */ lbz r3, 0x20(r4)
/* 80377D08 00373968 80 84 00 24 */ lwz r4, 0x24(r4)
/* 80377D0C 0037396C 80 BC 00 28 */ lwz r5, 0x28(r28)
-/* 80377D10 00373970 48 00 B6 D9 */ bl func_803833E8
+/* 80377D10 00373970 48 00 B6 D9 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377D14 00373974 2C 03 00 00 */ cmpwi r3, 0
/* 80377D18 00373978 40 82 00 0C */ bne lbl_80377D24
/* 80377D1C 0037397C 38 60 00 00 */ li r3, 0
@@ -590,7 +590,7 @@ lbl_80377D38: /* 80377D40 003739A0 7C 83 02 14 */ add r4, r3, r0
/* 80377D44 003739A4 88 64 00 04 */ lbz r3, 4(r4)
/* 80377D48 003739A8 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377D4C 003739AC 48 00 B6 9D */ bl func_803833E8
+/* 80377D4C 003739AC 48 00 B6 9D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377D50 003739B0 2C 03 00 00 */ cmpwi r3, 0
/* 80377D54 003739B4 40 82 00 0C */ bne lbl_80377D60
/* 80377D58 003739B8 38 60 00 00 */ li r3, 0
@@ -627,7 +627,7 @@ ReadSoundArchivePlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPQ44nw4r /* 80377DC0 00373A20 7C 9F 23 78 */ mr r31, r4
/* 80377DC4 00373A24 88 65 00 28 */ lbz r3, 0x28(r5)
/* 80377DC8 00373A28 80 85 00 2C */ lwz r4, 0x2c(r5)
-/* 80377DCC 00373A2C 48 00 B6 1D */ bl func_803833E8
+/* 80377DCC 00373A2C 48 00 B6 1D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377DD0 00373A30 2C 1F 00 00 */ cmpwi r31, 0
/* 80377DD4 00373A34 40 82 00 0C */ bne lbl_80377DE0
/* 80377DD8 00373A38 38 60 00 00 */ li r3, 0
@@ -663,7 +663,7 @@ GetSoundCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv: /* 80377E3C 00373A9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80377E40 00373AA0 88 65 00 00 */ lbz r3, 0(r5)
/* 80377E44 00373AA4 80 85 00 04 */ lwz r4, 4(r5)
-/* 80377E48 00373AA8 48 00 B5 A1 */ bl func_803833E8
+/* 80377E48 00373AA8 48 00 B5 A1 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377E4C 00373AAC 2C 03 00 00 */ cmpwi r3, 0
/* 80377E50 00373AB0 40 82 00 0C */ bne lbl_80377E5C
/* 80377E54 00373AB4 38 60 00 00 */ li r3, 0
@@ -684,7 +684,7 @@ GetPlayerCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv: /* 80377E7C 00373ADC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80377E80 00373AE0 88 65 00 10 */ lbz r3, 0x10(r5)
/* 80377E84 00373AE4 80 85 00 14 */ lwz r4, 0x14(r5)
-/* 80377E88 00373AE8 48 00 B5 61 */ bl func_803833E8
+/* 80377E88 00373AE8 48 00 B5 61 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377E8C 00373AEC 2C 03 00 00 */ cmpwi r3, 0
/* 80377E90 00373AF0 40 82 00 0C */ bne lbl_80377E9C
/* 80377E94 00373AF4 38 60 00 00 */ li r3, 0
@@ -705,7 +705,7 @@ GetGroupCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv: /* 80377EBC 00373B1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80377EC0 00373B20 88 65 00 20 */ lbz r3, 0x20(r5)
/* 80377EC4 00373B24 80 85 00 24 */ lwz r4, 0x24(r5)
-/* 80377EC8 00373B28 48 00 B5 21 */ bl func_803833E8
+/* 80377EC8 00373B28 48 00 B5 21 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377ECC 00373B2C 2C 03 00 00 */ cmpwi r3, 0
/* 80377ED0 00373B30 40 82 00 0C */ bne lbl_80377EDC
/* 80377ED4 00373B34 38 60 00 00 */ li r3, 0
@@ -735,7 +735,7 @@ ReadFileInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundA /* 80377F20 00373B80 7C 7C 1B 78 */ mr r28, r3
/* 80377F24 00373B84 88 66 00 18 */ lbz r3, 0x18(r6)
/* 80377F28 00373B88 80 86 00 1C */ lwz r4, 0x1c(r6)
-/* 80377F2C 00373B8C 48 00 B4 BD */ bl func_803833E8
+/* 80377F2C 00373B8C 48 00 B4 BD */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377F30 00373B90 2C 03 00 00 */ cmpwi r3, 0
/* 80377F34 00373B94 40 82 00 0C */ bne lbl_80377F40
/* 80377F38 00373B98 38 60 00 00 */ li r3, 0
@@ -752,7 +752,7 @@ lbl_80377F54: /* 80377F5C 00373BBC 7C 83 02 14 */ add r4, r3, r0
/* 80377F60 00373BC0 88 64 00 04 */ lbz r3, 4(r4)
/* 80377F64 00373BC4 80 84 00 08 */ lwz r4, 8(r4)
-/* 80377F68 00373BC8 48 00 B4 81 */ bl func_803833E8
+/* 80377F68 00373BC8 48 00 B4 81 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377F6C 00373BCC 2C 03 00 00 */ cmpwi r3, 0
/* 80377F70 00373BD0 7C 7E 1B 78 */ mr r30, r3
/* 80377F74 00373BD4 40 82 00 0C */ bne lbl_80377F80
@@ -762,7 +762,7 @@ lbl_80377F80: /* 80377F80 00373BE0 88 63 00 14 */ lbz r3, 0x14(r3)
/* 80377F84 00373BE4 80 9E 00 18 */ lwz r4, 0x18(r30)
/* 80377F88 00373BE8 80 BC 00 28 */ lwz r5, 0x28(r28)
-/* 80377F8C 00373BEC 48 00 B4 5D */ bl func_803833E8
+/* 80377F8C 00373BEC 48 00 B4 5D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377F90 00373BF0 2C 03 00 00 */ cmpwi r3, 0
/* 80377F94 00373BF4 7C 7F 1B 78 */ mr r31, r3
/* 80377F98 00373BF8 40 82 00 0C */ bne lbl_80377FA4
@@ -776,7 +776,7 @@ lbl_80377FA4: /* 80377FB4 00373C14 90 1D 00 04 */ stw r0, 4(r29)
/* 80377FB8 00373C18 88 7E 00 0C */ lbz r3, 0xc(r30)
/* 80377FBC 00373C1C 80 9E 00 10 */ lwz r4, 0x10(r30)
-/* 80377FC0 00373C20 48 00 B4 29 */ bl func_803833E8
+/* 80377FC0 00373C20 48 00 B4 29 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80377FC4 00373C24 90 7D 00 08 */ stw r3, 8(r29)
/* 80377FC8 00373C28 38 60 00 01 */ li r3, 1
/* 80377FCC 00373C2C 80 1F 00 00 */ lwz r0, 0(r31)
@@ -808,7 +808,7 @@ ReadFilePos__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12Sound /* 80378024 00373C84 7C 7C 1B 78 */ mr r28, r3
/* 80378028 00373C88 88 67 00 18 */ lbz r3, 0x18(r7)
/* 8037802C 00373C8C 80 87 00 1C */ lwz r4, 0x1c(r7)
-/* 80378030 00373C90 48 00 B3 B9 */ bl func_803833E8
+/* 80378030 00373C90 48 00 B3 B9 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80378034 00373C94 2C 03 00 00 */ cmpwi r3, 0
/* 80378038 00373C98 40 82 00 0C */ bne lbl_80378044
/* 8037803C 00373C9C 38 60 00 00 */ li r3, 0
@@ -825,7 +825,7 @@ lbl_80378058: /* 80378060 00373CC0 7C 83 02 14 */ add r4, r3, r0
/* 80378064 00373CC4 88 64 00 04 */ lbz r3, 4(r4)
/* 80378068 00373CC8 80 84 00 08 */ lwz r4, 8(r4)
-/* 8037806C 00373CCC 48 00 B3 7D */ bl func_803833E8
+/* 8037806C 00373CCC 48 00 B3 7D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80378070 00373CD0 2C 03 00 00 */ cmpwi r3, 0
/* 80378074 00373CD4 7C 64 1B 78 */ mr r4, r3
/* 80378078 00373CD8 40 82 00 0C */ bne lbl_80378084
@@ -835,7 +835,7 @@ lbl_80378084: /* 80378084 00373CE4 88 63 00 14 */ lbz r3, 0x14(r3)
/* 80378088 00373CE8 80 84 00 18 */ lwz r4, 0x18(r4)
/* 8037808C 00373CEC 80 BC 00 28 */ lwz r5, 0x28(r28)
-/* 80378090 00373CF0 48 00 B3 59 */ bl func_803833E8
+/* 80378090 00373CF0 48 00 B3 59 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80378094 00373CF4 2C 03 00 00 */ cmpwi r3, 0
/* 80378098 00373CF8 40 82 00 0C */ bne lbl_803780A4
/* 8037809C 00373CFC 38 60 00 00 */ li r3, 0
@@ -852,7 +852,7 @@ lbl_803780B8: /* 803780C0 00373D20 7C 83 02 14 */ add r4, r3, r0
/* 803780C4 00373D24 88 64 00 04 */ lbz r3, 4(r4)
/* 803780C8 00373D28 80 84 00 08 */ lwz r4, 8(r4)
-/* 803780CC 00373D2C 48 00 B3 1D */ bl func_803833E8
+/* 803780CC 00373D2C 48 00 B3 1D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 803780D0 00373D30 2C 03 00 00 */ cmpwi r3, 0
/* 803780D4 00373D34 40 82 00 0C */ bne lbl_803780E0
/* 803780D8 00373D38 38 60 00 00 */ li r3, 0
@@ -982,7 +982,7 @@ impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl: /* 80378278 00373ED8 7C 7E 1B 78 */ mr r30, r3
/* 8037827C 00373EDC 88 65 00 00 */ lbz r3, 0(r5)
/* 80378280 00373EE0 80 85 00 04 */ lwz r4, 4(r5)
-/* 80378284 00373EE4 48 00 B1 65 */ bl func_803833E8
+/* 80378284 00373EE4 48 00 B1 65 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 80378288 00373EE8 2C 03 00 00 */ cmpwi r3, 0
/* 8037828C 00373EEC 40 82 00 10 */ bne lbl_8037829C
/* 80378290 00373EF0 80 6D B2 68 */ lwz r3, lbl_80640528-_SDA_BASE_(r13)
@@ -1004,7 +1004,7 @@ lbl_803782B4: /* 803782C8 00373F28 7C 83 02 14 */ add r4, r3, r0
/* 803782CC 00373F2C 88 64 00 04 */ lbz r3, 4(r4)
/* 803782D0 00373F30 80 84 00 08 */ lwz r4, 8(r4)
-/* 803782D4 00373F34 48 00 B1 15 */ bl func_803833E8
+/* 803782D4 00373F34 48 00 B1 15 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 803782D8 00373F38 2C 03 00 00 */ cmpwi r3, 0
/* 803782DC 00373F3C 40 82 00 18 */ bne lbl_803782F4
/* 803782E0 00373F40 80 6D B2 68 */ lwz r3, lbl_80640528-_SDA_BASE_(r13)
diff --git a/asm/nw4r/snd/detail/snd_SoundThread.s b/asm/nw4r/snd/detail/snd_SoundThread.s index faf787f..aeae3f3 100644 --- a/asm/nw4r/snd/detail/snd_SoundThread.s +++ b/asm/nw4r/snd/detail/snd_SoundThread.s @@ -238,8 +238,8 @@ lbl_8037C788: lbl_8037C7A0:
/* 8037C7A0 00378400 7C 1F F0 40 */ cmplw r31, r30
/* 8037C7A4 00378404 40 82 FF E4 */ bne lbl_8037C788
-/* 8037C7A8 00378408 48 00 61 59 */ bl func_80382900
-/* 8037C7AC 0037840C 48 00 66 1D */ bl func_80382DC8
+/* 8037C7A8 00378408 48 00 61 59 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
+/* 8037C7AC 0037840C 48 00 66 1D */ bl NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C7B0 00378410 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037C7B4 00378414 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037C7B8 00378418 83 C1 00 08 */ lwz r30, 8(r1)
@@ -400,9 +400,9 @@ lbl_8037C9D4: /* 8037C9E0 00378640 4B FF 17 B9 */ bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C9E4 00378644 4B FF 19 61 */ bl __ct__Q44nw4r3snd6detail7ChannelFv
lbl_8037C9E8:
-/* 8037C9E8 00378648 48 00 69 DD */ bl func_803833C4
-/* 8037C9EC 0037864C 48 00 5F 15 */ bl func_80382900
-/* 8037C9F0 00378650 48 00 63 29 */ bl func_80382D18
+/* 8037C9E8 00378648 48 00 69 DD */ bl CalcRandom__Q44nw4r3snd6detail4UtilFv
+/* 8037C9EC 0037864C 48 00 5F 15 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
+/* 8037C9F0 00378650 48 00 63 29 */ bl UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C9F4 00378654 4B EF 5D DD */ bl func_802727D0
/* 8037C9F8 00378658 7C 1B 18 50 */ subf r0, r27, r3
/* 8037C9FC 0037865C 90 1F 03 90 */ stw r0, 0x390(r31)
diff --git a/asm/nw4r/snd/detail/snd_StrmFile.s b/asm/nw4r/snd/detail/snd_StrmFile.s index f48301a..20d03cc 100644 --- a/asm/nw4r/snd/detail/snd_StrmFile.s +++ b/asm/nw4r/snd/detail/snd_StrmFile.s @@ -20,7 +20,7 @@ ReadStrmInfo__Q44nw4r3snd6detail14StrmFileReaderCFPQ44nw4r3snd6detail8StrmInfo: /* 8037CD0C 0037896C 7C 9F 23 78 */ mr r31, r4
/* 8037CD10 00378970 88 63 00 08 */ lbz r3, 8(r3)
/* 8037CD14 00378974 80 85 00 04 */ lwz r4, 4(r5)
-/* 8037CD18 00378978 48 00 66 D1 */ bl func_803833E8
+/* 8037CD18 00378978 48 00 66 D1 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8037CD1C 0037897C 88 03 00 00 */ lbz r0, 0(r3)
/* 8037CD20 00378980 98 1F 00 00 */ stb r0, 0(r31)
/* 8037CD24 00378984 88 03 00 01 */ lbz r0, 1(r3)
@@ -78,7 +78,7 @@ ReadAdpcmInfo__Q44nw4r3snd6detail14StrmFileReaderCFPQ44nw4r3snd6detail9AdpcmInfo /* 8037CDE8 00378A48 7C 7D 1B 78 */ mr r29, r3
/* 8037CDEC 00378A4C 88 66 00 08 */ lbz r3, 8(r6)
/* 8037CDF0 00378A50 80 86 00 0C */ lwz r4, 0xc(r6)
-/* 8037CDF4 00378A54 48 00 65 F5 */ bl func_803833E8
+/* 8037CDF4 00378A54 48 00 65 F5 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8037CDF8 00378A58 88 03 00 00 */ lbz r0, 0(r3)
/* 8037CDFC 00378A5C 28 00 00 02 */ cmplwi r0, 2
/* 8037CE00 00378A60 41 82 00 0C */ beq lbl_8037CE0C
@@ -89,7 +89,7 @@ lbl_8037CE0C: /* 8037CE10 00378A70 88 64 00 18 */ lbz r3, 0x18(r4)
/* 8037CE14 00378A74 38 A4 00 08 */ addi r5, r4, 8
/* 8037CE18 00378A78 80 84 00 1C */ lwz r4, 0x1c(r4)
-/* 8037CE1C 00378A7C 48 00 65 CD */ bl func_803833E8
+/* 8037CE1C 00378A7C 48 00 65 CD */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8037CE20 00378A80 88 03 00 00 */ lbz r0, 0(r3)
/* 8037CE24 00378A84 7C 1E 00 00 */ cmpw r30, r0
/* 8037CE28 00378A88 41 80 00 0C */ blt lbl_8037CE34
@@ -102,13 +102,13 @@ lbl_8037CE34: /* 8037CE40 00378AA0 38 A4 00 08 */ addi r5, r4, 8
/* 8037CE44 00378AA4 88 66 00 04 */ lbz r3, 4(r6)
/* 8037CE48 00378AA8 80 86 00 08 */ lwz r4, 8(r6)
-/* 8037CE4C 00378AAC 48 00 65 9D */ bl func_803833E8
+/* 8037CE4C 00378AAC 48 00 65 9D */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8037CE50 00378AB0 7C 64 1B 78 */ mr r4, r3
/* 8037CE54 00378AB4 80 BD 00 04 */ lwz r5, 4(r29)
/* 8037CE58 00378AB8 88 63 00 00 */ lbz r3, 0(r3)
/* 8037CE5C 00378ABC 80 84 00 04 */ lwz r4, 4(r4)
/* 8037CE60 00378AC0 38 A5 00 08 */ addi r5, r5, 8
-/* 8037CE64 00378AC4 48 00 65 85 */ bl func_803833E8
+/* 8037CE64 00378AC4 48 00 65 85 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8037CE68 00378AC8 A0 83 00 00 */ lhz r4, 0(r3)
/* 8037CE6C 00378ACC A0 03 00 02 */ lhz r0, 2(r3)
/* 8037CE70 00378AD0 B0 9F 00 00 */ sth r4, 0(r31)
@@ -282,7 +282,7 @@ lbl_8037D0C0: /* 8037D0D8 00378D38 38 A3 00 08 */ addi r5, r3, 8
/* 8037D0DC 00378D3C 88 63 00 08 */ lbz r3, 8(r3)
/* 8037D0E0 00378D40 80 85 00 04 */ lwz r4, 4(r5)
-/* 8037D0E4 00378D44 48 00 63 05 */ bl func_803833E8
+/* 8037D0E4 00378D44 48 00 63 05 */ bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
lbl_8037D0E8:
/* 8037D0E8 00378D48 38 60 00 01 */ li r3, 1
lbl_8037D0EC:
diff --git a/asm/nw4r/snd/detail/snd_StrmPlayer.s b/asm/nw4r/snd/detail/snd_StrmPlayer.s index 656ba2a..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)
@@ -1275,14 +1275,14 @@ lbl_8037E464: lbl_8037E47C:
/* 8037E47C 0037A0DC 7C 1D D8 00 */ cmpw r29, r27
/* 8037E480 0037A0E0 41 80 FF 9C */ blt lbl_8037E41C
-/* 8037E484 0037A0E4 48 00 44 7D */ bl func_80382900
+/* 8037E484 0037A0E4 48 00 44 7D */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037E488 0037A0E8 3C E0 80 38 */ lis r7, VoiceCallbackFunc__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv@ha
/* 8037E48C 0037A0EC 7F 64 DB 78 */ mr r4, r27
/* 8037E490 0037A0F0 7F 85 E3 78 */ mr r5, r28
/* 8037E494 0037A0F4 7F 48 D3 78 */ mr r8, r26
/* 8037E498 0037A0F8 38 E7 F1 A4 */ addi r7, r7, VoiceCallbackFunc__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv@l
/* 8037E49C 0037A0FC 38 C0 00 FF */ li r6, 0xff
-/* 8037E4A0 0037A100 48 00 46 25 */ bl func_80382AC4
+/* 8037E4A0 0037A100 48 00 46 25 */ bl AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv
/* 8037E4A4 0037A104 2C 03 00 00 */ cmpwi r3, 0
/* 8037E4A8 0037A108 40 82 00 3C */ bne lbl_8037E4E4
/* 8037E4AC 0037A10C 7F 5E D3 78 */ mr r30, r26
diff --git a/asm/nw4r/snd/detail/snd_Util.s b/asm/nw4r/snd/detail/snd_Util.s new file mode 100644 index 0000000..cfc7569 --- /dev/null +++ b/asm/nw4r/snd/detail/snd_Util.s @@ -0,0 +1,353 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global CalcPitchRatio__Q44nw4r3snd6detail4UtilFi
+CalcPitchRatio__Q44nw4r3snd6detail4UtilFi:
+/* 80382FA8 0037EC08 20 A3 0B FF */ subfic r5, r3, 0xbff
+/* 80382FAC 0037EC0C 38 00 0C 00 */ li r0, 0xc00
+/* 80382FB0 0037EC10 7C A5 03 96 */ divwu r5, r5, r0
+/* 80382FB4 0037EC14 2C 03 00 00 */ cmpwi r3, 0
+/* 80382FB8 0037EC18 C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80382FBC 0037EC1C 38 C0 00 00 */ li r6, 0
+/* 80382FC0 0037EC20 40 80 00 34 */ bge lbl_80382FF4
+/* 80382FC4 0037EC24 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
+/* 80382FC8 0037EC28 1C 05 0C 00 */ mulli r0, r5, 0xc00
+/* 80382FCC 0037EC2C 7C 89 03 A6 */ mtctr r4
+/* 80382FD0 0037EC30 41 82 00 14 */ beq lbl_80382FE4
+lbl_80382FD4:
+/* 80382FD4 0037EC34 38 C6 FF F8 */ addi r6, r6, -8
+/* 80382FD8 0037EC38 42 00 FF FC */ bdnz lbl_80382FD4
+/* 80382FDC 0037EC3C 70 A5 00 07 */ andi. r5, r5, 7
+/* 80382FE0 0037EC40 41 82 00 10 */ beq lbl_80382FF0
+lbl_80382FE4:
+/* 80382FE4 0037EC44 7C A9 03 A6 */ mtctr r5
+lbl_80382FE8:
+/* 80382FE8 0037EC48 38 C6 FF FF */ addi r6, r6, -1
+/* 80382FEC 0037EC4C 42 00 FF FC */ bdnz lbl_80382FE8
+lbl_80382FF0:
+/* 80382FF0 0037EC50 7C 63 02 14 */ add r3, r3, r0
+lbl_80382FF4:
+/* 80382FF4 0037EC54 38 00 0C 00 */ li r0, 0xc00
+/* 80382FF8 0037EC58 2C 03 0C 00 */ cmpwi r3, 0xc00
+/* 80382FFC 0037EC5C 7C A3 03 96 */ divwu r5, r3, r0
+/* 80383000 0037EC60 41 80 00 34 */ blt lbl_80383034
+/* 80383004 0037EC64 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
+/* 80383008 0037EC68 1C 05 F4 00 */ mulli r0, r5, -3072
+/* 8038300C 0037EC6C 7C 89 03 A6 */ mtctr r4
+/* 80383010 0037EC70 41 82 00 14 */ beq lbl_80383024
+lbl_80383014:
+/* 80383014 0037EC74 38 C6 00 08 */ addi r6, r6, 8
+/* 80383018 0037EC78 42 00 FF FC */ bdnz lbl_80383014
+/* 8038301C 0037EC7C 70 A5 00 07 */ andi. r5, r5, 7
+/* 80383020 0037EC80 41 82 00 10 */ beq lbl_80383030
+lbl_80383024:
+/* 80383024 0037EC84 7C A9 03 A6 */ mtctr r5
+lbl_80383028:
+/* 80383028 0037EC88 38 C6 00 01 */ addi r6, r6, 1
+/* 8038302C 0037EC8C 42 00 FF FC */ bdnz lbl_80383028
+lbl_80383030:
+/* 80383030 0037EC90 7C 63 02 14 */ add r3, r3, r0
+lbl_80383034:
+/* 80383034 0037EC94 2C 06 00 00 */ cmpwi r6, 0
+/* 80383038 0037EC98 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 8038303C 0037EC9C 7C C5 33 78 */ mr r5, r6
+/* 80383040 0037ECA0 40 81 00 50 */ ble lbl_80383090
+/* 80383044 0037ECA4 54 C4 E8 FF */ rlwinm. r4, r6, 0x1d, 3, 0x1f
+/* 80383048 0037ECA8 7C 06 00 D0 */ neg r0, r6
+/* 8038304C 0037ECAC 7C 89 03 A6 */ mtctr r4
+/* 80383050 0037ECB0 41 82 00 30 */ beq lbl_80383080
+lbl_80383054:
+/* 80383054 0037ECB4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383058 0037ECB8 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8038305C 0037ECBC EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383060 0037ECC0 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383064 0037ECC4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383068 0037ECC8 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8038306C 0037ECCC EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383070 0037ECD0 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383074 0037ECD4 42 00 FF E0 */ bdnz lbl_80383054
+/* 80383078 0037ECD8 70 C5 00 07 */ andi. r5, r6, 7
+/* 8038307C 0037ECDC 41 82 00 10 */ beq lbl_8038308C
+lbl_80383080:
+/* 80383080 0037ECE0 7C A9 03 A6 */ mtctr r5
+lbl_80383084:
+/* 80383084 0037ECE4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383088 0037ECE8 42 00 FF FC */ bdnz lbl_80383084
+lbl_8038308C:
+/* 8038308C 0037ECEC 7C C6 02 14 */ add r6, r6, r0
+lbl_80383090:
+/* 80383090 0037ECF0 2C 06 00 00 */ cmpwi r6, 0
+/* 80383094 0037ECF4 C0 02 A7 B0 */ lfs f0, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 80383098 0037ECF8 7C 86 00 D0 */ neg r4, r6
+/* 8038309C 0037ECFC 40 80 00 48 */ bge lbl_803830E4
+/* 803830A0 0037ED00 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
+/* 803830A4 0037ED04 7C 09 03 A6 */ mtctr r0
+/* 803830A8 0037ED08 41 82 00 30 */ beq lbl_803830D8
+lbl_803830AC:
+/* 803830AC 0037ED0C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B0 0037ED10 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B4 0037ED14 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B8 0037ED18 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830BC 0037ED1C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C0 0037ED20 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C4 0037ED24 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C8 0037ED28 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830CC 0037ED2C 42 00 FF E0 */ bdnz lbl_803830AC
+/* 803830D0 0037ED30 70 84 00 07 */ andi. r4, r4, 7
+/* 803830D4 0037ED34 41 82 00 10 */ beq lbl_803830E4
+lbl_803830D8:
+/* 803830D8 0037ED38 7C 89 03 A6 */ mtctr r4
+lbl_803830DC:
+/* 803830DC 0037ED3C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830E0 0037ED40 42 00 FF FC */ bdnz lbl_803830DC
+lbl_803830E4:
+/* 803830E4 0037ED44 7C 64 46 70 */ srawi r4, r3, 8
+/* 803830E8 0037ED48 54 60 C0 0E */ slwi r0, r3, 0x18
+/* 803830EC 0037ED4C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803830F0 0037ED50 7C 03 00 50 */ subf r0, r3, r0
+/* 803830F4 0037ED54 7C A4 01 95 */ addze. r5, r4
+/* 803830F8 0037ED58 54 00 40 3E */ rotlwi r0, r0, 8
+/* 803830FC 0037ED5C 7C 60 1A 14 */ add r3, r0, r3
+/* 80383100 0037ED60 41 82 00 18 */ beq lbl_80383118
+/* 80383104 0037ED64 3C 80 80 40 */ lis r4, lbl_80402948@ha
+/* 80383108 0037ED68 54 A0 10 3A */ slwi r0, r5, 2
+/* 8038310C 0037ED6C 38 84 29 48 */ addi r4, r4, lbl_80402948@l
+/* 80383110 0037ED70 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80383114 0037ED74 EC 21 00 32 */ fmuls f1, f1, f0
+lbl_80383118:
+/* 80383118 0037ED78 2C 03 00 00 */ cmpwi r3, 0
+/* 8038311C 0037ED7C 4D 82 00 20 */ beqlr
+/* 80383120 0037ED80 3C 80 80 40 */ lis r4, lbl_80402978@ha
+/* 80383124 0037ED84 54 60 10 3A */ slwi r0, r3, 2
+/* 80383128 0037ED88 38 84 29 78 */ addi r4, r4, lbl_80402978@l
+/* 8038312C 0037ED8C 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80383130 0037ED90 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383134 0037ED94 4E 80 00 20 */ blr
+
+.global CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
+CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf:
+/* 80383138 0037ED98 C0 42 A7 B4 */ lfs f2, lbl_80642DB4-_SDA2_BASE_(r2)
+/* 8038313C 0037ED9C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383140 0037EDA0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383144 0037EDA4 40 81 00 08 */ ble lbl_8038314C
+/* 80383148 0037EDA8 48 00 00 18 */ b lbl_80383160
+lbl_8038314C:
+/* 8038314C 0037EDAC C0 42 A7 B8 */ lfs f2, lbl_80642DB8-_SDA2_BASE_(r2)
+/* 80383150 0037EDB0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383154 0037EDB4 40 80 00 08 */ bge lbl_8038315C
+/* 80383158 0037EDB8 48 00 00 08 */ b lbl_80383160
+lbl_8038315C:
+/* 8038315C 0037EDBC FC 40 08 90 */ fmr f2, f1
+lbl_80383160:
+/* 80383160 0037EDC0 C0 02 A7 BC */ lfs f0, lbl_80642DBC-_SDA2_BASE_(r2)
+/* 80383164 0037EDC4 3C 60 80 40 */ lis r3, lbl_80402D78@ha
+/* 80383168 0037EDC8 38 63 2D 78 */ addi r3, r3, lbl_80402D78@l
+/* 8038316C 0037EDCC EC 00 00 B2 */ fmuls f0, f0, f2
+/* 80383170 0037EDD0 FC 00 00 1E */ fctiwz f0, f0
+/* 80383174 0037EDD4 D8 01 00 08 */ stfd f0, 8(r1)
+/* 80383178 0037EDD8 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8038317C 0037EDDC 38 04 03 88 */ addi r0, r4, 0x388
+/* 80383180 0037EDE0 54 00 10 3A */ slwi r0, r0, 2
+/* 80383184 0037EDE4 7C 23 04 2E */ lfsx f1, r3, r0
+/* 80383188 0037EDE8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038318C 0037EDEC 4E 80 00 20 */ blr
+
+.global CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
+CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
+/* 80383190 0037EDF0 C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383194 0037EDF4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383198 0037EDF8 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8038319C 0037EDFC 40 81 00 08 */ ble lbl_803831A4
+/* 803831A0 0037EE00 48 00 00 18 */ b lbl_803831B8
+lbl_803831A4:
+/* 803831A4 0037EE04 C0 42 A7 C0 */ lfs f2, lbl_80642DC0-_SDA2_BASE_(r2)
+/* 803831A8 0037EE08 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 803831AC 0037EE0C 40 80 00 08 */ bge lbl_803831B4
+/* 803831B0 0037EE10 48 00 00 08 */ b lbl_803831B8
+lbl_803831B4:
+/* 803831B4 0037EE14 FC 40 08 90 */ fmr f2, f1
+lbl_803831B8:
+/* 803831B8 0037EE18 C0 02 A7 A8 */ lfs f0, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 803831BC 0037EE1C 3C 80 80 45 */ lis r4, lbl_8044D040@ha
+/* 803831C0 0037EE20 80 03 00 00 */ lwz r0, 0(r3)
+/* 803831C4 0037EE24 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
+/* 803831C8 0037EE28 EC 20 10 2A */ fadds f1, f0, f2
+/* 803831CC 0037EE2C C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 803831D0 0037EE30 54 05 10 3A */ slwi r5, r0, 2
+/* 803831D4 0037EE34 88 03 00 04 */ lbz r0, 4(r3)
+/* 803831D8 0037EE38 C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
+/* 803831DC 0037EE3C EC 21 00 B2 */ fmuls f1, f1, f2
+/* 803831E0 0037EE40 2C 00 00 00 */ cmpwi r0, 0
+/* 803831E4 0037EE44 7C 84 28 2E */ lwzx r4, r4, r5
+/* 803831E8 0037EE48 EC 00 00 72 */ fmuls f0, f0, f1
+/* 803831EC 0037EE4C EC 02 00 2A */ fadds f0, f2, f0
+/* 803831F0 0037EE50 FC 00 00 1E */ fctiwz f0, f0
+/* 803831F4 0037EE54 D8 01 00 08 */ stfd f0, 8(r1)
+/* 803831F8 0037EE58 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803831FC 0037EE5C 54 00 10 3A */ slwi r0, r0, 2
+/* 80383200 0037EE60 7C 44 04 2E */ lfsx f2, r4, r0
+/* 80383204 0037EE64 41 82 00 0C */ beq lbl_80383210
+/* 80383208 0037EE68 C0 04 02 00 */ lfs f0, 0x200(r4)
+/* 8038320C 0037EE6C EC 42 00 24 */ fdivs f2, f2, f0
+lbl_80383210:
+/* 80383210 0037EE70 88 03 00 05 */ lbz r0, 5(r3)
+/* 80383214 0037EE74 2C 00 00 00 */ cmpwi r0, 0
+/* 80383218 0037EE78 41 82 00 2C */ beq lbl_80383244
+/* 8038321C 0037EE7C C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383220 0037EE80 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80383224 0037EE84 40 81 00 08 */ ble lbl_8038322C
+/* 80383228 0037EE88 48 00 00 40 */ b lbl_80383268
+lbl_8038322C:
+/* 8038322C 0037EE8C C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383230 0037EE90 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80383234 0037EE94 40 80 00 08 */ bge lbl_8038323C
+/* 80383238 0037EE98 48 00 00 30 */ b lbl_80383268
+lbl_8038323C:
+/* 8038323C 0037EE9C FC 20 10 90 */ fmr f1, f2
+/* 80383240 0037EEA0 48 00 00 28 */ b lbl_80383268
+lbl_80383244:
+/* 80383244 0037EEA4 C0 22 A7 AC */ lfs f1, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 80383248 0037EEA8 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8038324C 0037EEAC 40 81 00 08 */ ble lbl_80383254
+/* 80383250 0037EEB0 48 00 00 18 */ b lbl_80383268
+lbl_80383254:
+/* 80383254 0037EEB4 C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383258 0037EEB8 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8038325C 0037EEBC 40 80 00 08 */ bge lbl_80383264
+/* 80383260 0037EEC0 48 00 00 08 */ b lbl_80383268
+lbl_80383264:
+/* 80383264 0037EEC4 FC 20 10 90 */ fmr f1, f2
+lbl_80383268:
+/* 80383268 0037EEC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038326C 0037EECC 4E 80 00 20 */ blr
+
+.global CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
+CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
+/* 80383270 0037EED0 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 80383274 0037EED4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383278 0037EED8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8038327C 0037EEDC 40 81 00 08 */ ble lbl_80383284
+/* 80383280 0037EEE0 48 00 00 18 */ b lbl_80383298
+lbl_80383284:
+/* 80383284 0037EEE4 C0 02 A7 C8 */ lfs f0, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383288 0037EEE8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8038328C 0037EEEC 40 80 00 08 */ bge lbl_80383294
+/* 80383290 0037EEF0 48 00 00 08 */ b lbl_80383298
+lbl_80383294:
+/* 80383294 0037EEF4 FC 00 08 90 */ fmr f0, f1
+lbl_80383298:
+/* 80383298 0037EEF8 C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 8038329C 0037EEFC 3C 80 80 45 */ lis r4, lbl_8044D040@ha
+/* 803832A0 0037EF00 80 03 00 00 */ lwz r0, 0(r3)
+/* 803832A4 0037EF04 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
+/* 803832A8 0037EF08 EC 20 00 B2 */ fmuls f1, f0, f2
+/* 803832AC 0037EF0C C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
+/* 803832B0 0037EF10 54 00 10 3A */ slwi r0, r0, 2
+/* 803832B4 0037EF14 C0 62 A7 AC */ lfs f3, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 803832B8 0037EF18 7C 64 00 2E */ lwzx r3, r4, r0
+/* 803832BC 0037EF1C EC 00 00 72 */ fmuls f0, f0, f1
+/* 803832C0 0037EF20 EC 02 00 2A */ fadds f0, f2, f0
+/* 803832C4 0037EF24 FC 00 00 1E */ fctiwz f0, f0
+/* 803832C8 0037EF28 D8 01 00 08 */ stfd f0, 8(r1)
+/* 803832CC 0037EF2C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803832D0 0037EF30 54 00 10 3A */ slwi r0, r0, 2
+/* 803832D4 0037EF34 7C 03 04 2E */ lfsx f0, r3, r0
+/* 803832D8 0037EF38 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 803832DC 0037EF3C 40 81 00 08 */ ble lbl_803832E4
+/* 803832E0 0037EF40 48 00 00 18 */ b lbl_803832F8
+lbl_803832E4:
+/* 803832E4 0037EF44 C0 62 A7 C8 */ lfs f3, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 803832E8 0037EF48 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 803832EC 0037EF4C 40 80 00 08 */ bge lbl_803832F4
+/* 803832F0 0037EF50 48 00 00 08 */ b lbl_803832F8
+lbl_803832F4:
+/* 803832F4 0037EF54 FC 60 00 90 */ fmr f3, f0
+lbl_803832F8:
+/* 803832F8 0037EF58 FC 20 18 90 */ fmr f1, f3
+/* 803832FC 0037EF5C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80383300 0037EF60 4E 80 00 20 */ blr
+
+.global CalcLpfFreq__Q44nw4r3snd6detail4UtilFf
+CalcLpfFreq__Q44nw4r3snd6detail4UtilFf:
+/* 80383304 0037EF64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383308 0037EF68 7C 08 02 A6 */ mflr r0
+/* 8038330C 0037EF6C C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383310 0037EF70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80383314 0037EF74 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383318 0037EF78 40 81 00 08 */ ble lbl_80383320
+/* 8038331C 0037EF7C 48 00 00 18 */ b lbl_80383334
+lbl_80383320:
+/* 80383320 0037EF80 C0 42 A7 C8 */ lfs f2, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383324 0037EF84 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383328 0037EF88 40 80 00 08 */ bge lbl_80383330
+/* 8038332C 0037EF8C 48 00 00 08 */ b lbl_80383334
+lbl_80383330:
+/* 80383330 0037EF90 FC 40 08 90 */ fmr f2, f1
+lbl_80383334:
+/* 80383334 0037EF94 C8 22 A7 E8 */ lfd f1, lbl_80642DE8-_SDA2_BASE_(r2)
+/* 80383338 0037EF98 C8 02 A7 E0 */ lfd f0, lbl_80642DE0-_SDA2_BASE_(r2)
+/* 8038333C 0037EF9C FC 42 08 28 */ fsub f2, f2, f1
+/* 80383340 0037EFA0 C8 22 A7 D8 */ lfd f1, lbl_80642DD8-_SDA2_BASE_(r2)
+/* 80383344 0037EFA4 FC 40 00 B2 */ fmul f2, f0, f2
+/* 80383348 0037EFA8 4B E5 12 9D */ bl func_801D45E4
+/* 8038334C 0037EFAC C8 02 A7 D0 */ lfd f0, lbl_80642DD0-_SDA2_BASE_(r2)
+/* 80383350 0037EFB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80383354 0037EFB4 FC 00 00 72 */ fmul f0, f0, f1
+/* 80383358 0037EFB8 FC 00 00 1E */ fctiwz f0, f0
+/* 8038335C 0037EFBC D8 01 00 08 */ stfd f0, 8(r1)
+/* 80383360 0037EFC0 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80383364 0037EFC4 7C 08 03 A6 */ mtlr r0
+/* 80383368 0037EFC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038336C 0037EFCC 4E 80 00 20 */ blr
+
+.global GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
+GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs:
+/* 80383370 0037EFD0 2C 03 00 7F */ cmpwi r3, 0x7f
+/* 80383374 0037EFD4 40 81 00 0C */ ble lbl_80383380
+/* 80383378 0037EFD8 38 00 00 7F */ li r0, 0x7f
+/* 8038337C 0037EFDC 48 00 00 0C */ b lbl_80383388
+lbl_80383380:
+/* 80383380 0037EFE0 7C 60 FE 70 */ srawi r0, r3, 0x1f
+/* 80383384 0037EFE4 7C 60 00 78 */ andc r0, r3, r0
+lbl_80383388:
+/* 80383388 0037EFE8 1D 20 00 0A */ mulli r9, r0, 0xa
+/* 8038338C 0037EFEC 3C 60 80 40 */ lis r3, lbl_80404898@ha
+/* 80383390 0037EFF0 38 63 48 98 */ addi r3, r3, lbl_80404898@l
+/* 80383394 0037EFF4 7C 03 4A 2E */ lhzx r0, r3, r9
+/* 80383398 0037EFF8 7D 23 4A 14 */ add r9, r3, r9
+/* 8038339C 0037EFFC A0 69 00 02 */ lhz r3, 2(r9)
+/* 803833A0 0037F000 B0 04 00 00 */ sth r0, 0(r4)
+/* 803833A4 0037F004 A0 09 00 04 */ lhz r0, 4(r9)
+/* 803833A8 0037F008 B0 65 00 00 */ sth r3, 0(r5)
+/* 803833AC 0037F00C A0 69 00 06 */ lhz r3, 6(r9)
+/* 803833B0 0037F010 B0 06 00 00 */ sth r0, 0(r6)
+/* 803833B4 0037F014 A0 09 00 08 */ lhz r0, 8(r9)
+/* 803833B8 0037F018 B0 67 00 00 */ sth r3, 0(r7)
+/* 803833BC 0037F01C B0 08 00 00 */ sth r0, 0(r8)
+/* 803833C0 0037F020 4E 80 00 20 */ blr
+
+.global CalcRandom__Q44nw4r3snd6detail4UtilFv
+CalcRandom__Q44nw4r3snd6detail4UtilFv:
+/* 803833C4 0037F024 3C 60 00 19 */ lis r3, 0x0019660D@ha
+/* 803833C8 0037F028 80 8D 95 38 */ lwz r4, lbl_8063E7F8-_SDA_BASE_(r13)
+/* 803833CC 0037F02C 38 03 66 0D */ addi r0, r3, 0x0019660D@l
+/* 803833D0 0037F030 7C 64 01 D6 */ mullw r3, r4, r0
+/* 803833D4 0037F034 3C 63 3C 6F */ addis r3, r3, 0x3c6f
+/* 803833D8 0037F038 38 03 F3 5F */ addi r0, r3, -3233
+/* 803833DC 0037F03C 90 0D 95 38 */ stw r0, lbl_8063E7F8-_SDA_BASE_(r13)
+/* 803833E0 0037F040 54 03 84 3E */ srwi r3, r0, 0x10
+/* 803833E4 0037F044 4E 80 00 20 */ blr
+
+.global GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv:
+/* 803833E8 0037F048 2C 03 00 01 */ cmpwi r3, 1
+/* 803833EC 0037F04C 40 82 00 0C */ bne lbl_803833F8
+/* 803833F0 0037F050 7C 64 2A 14 */ add r3, r4, r5
+/* 803833F4 0037F054 4E 80 00 20 */ blr
+lbl_803833F8:
+/* 803833F8 0037F058 2C 03 00 00 */ cmpwi r3, 0
+/* 803833FC 0037F05C 38 60 00 00 */ li r3, 0
+/* 80383400 0037F060 4C 82 00 20 */ bnelr
+/* 80383404 0037F064 7C 83 23 78 */ mr r3, r4
+/* 80383408 0037F068 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/detail/snd_Voice.s b/asm/nw4r/snd/detail/snd_Voice.s index e4b147b..256101d 100644 --- a/asm/nw4r/snd/detail/snd_Voice.s +++ b/asm/nw4r/snd/detail/snd_Voice.s @@ -263,7 +263,7 @@ lbl_80380554: /* 80380554 0037C1B4 C0 3F 00 C0 */ lfs f1, 0xc0(r31)
/* 80380558 0037C1B8 C0 1B 00 40 */ lfs f0, 0x40(r27)
/* 8038055C 0037C1BC EC 21 00 2A */ fadds f1, f1, f0
-/* 80380560 0037C1C0 48 00 2D A5 */ bl func_80383304
+/* 80380560 0037C1C0 48 00 2D A5 */ bl CalcLpfFreq__Q44nw4r3snd6detail4UtilFf
/* 80380564 0037C1C4 7C 7E 1B 78 */ mr r30, r3
/* 80380568 0037C1C8 7F 3F D2 14 */ add r25, r31, r26
/* 8038056C 0037C1CC 3B A0 00 00 */ li r29, 0
@@ -636,7 +636,7 @@ lbl_80380A28: /* 80380A3C 0037C69C 2C 03 00 00 */ cmpwi r3, 0
/* 80380A40 0037C6A0 40 82 00 A8 */ bne lbl_80380AE8
/* 80380A44 0037C6A4 7F 19 D0 50 */ subf r24, r25, r26
-/* 80380A48 0037C6A8 48 00 1E B9 */ bl func_80382900
+/* 80380A48 0037C6A8 48 00 1E B9 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 80380A4C 0037C6AC 38 A3 00 08 */ addi r5, r3, 8
/* 80380A50 0037C6B0 80 63 00 08 */ lwz r3, 8(r3)
/* 80380A54 0037C6B4 48 00 00 28 */ b lbl_80380A7C
@@ -800,9 +800,9 @@ lbl_80380C5C: /* 80380C64 0037C8C4 41 80 FF B4 */ blt lbl_80380C18
/* 80380C68 0037C8C8 3B C0 00 00 */ li r30, 0
/* 80380C6C 0037C8CC 93 D8 00 9C */ stw r30, 0x9c(r24)
-/* 80380C70 0037C8D0 48 00 1C 91 */ bl func_80382900
+/* 80380C70 0037C8D0 48 00 1C 91 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 80380C74 0037C8D4 7F 04 C3 78 */ mr r4, r24
-/* 80380C78 0037C8D8 48 00 20 09 */ bl func_80382C80
+/* 80380C78 0037C8D8 48 00 20 09 */ bl FreeVoice__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice
/* 80380C7C 0037C8DC 9B D8 00 AC */ stb r30, 0xac(r24)
/* 80380C80 0037C8E0 7F E3 FB 78 */ mr r3, r31
/* 80380C84 0037C8E4 4B EE DB 01 */ bl OSRestoreInterrupts
@@ -1436,9 +1436,9 @@ SetPriority__Q44nw4r3snd6detail5VoiceFi: /* 80381470 0037D0D0 4B E4 5C B9 */ bl _savegpr_27
/* 80381474 0037D0D4 90 83 00 B4 */ stw r4, 0xb4(r3)
/* 80381478 0037D0D8 7C 7B 1B 78 */ mr r27, r3
-/* 8038147C 0037D0DC 48 00 14 85 */ bl func_80382900
+/* 8038147C 0037D0DC 48 00 14 85 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 80381480 0037D0E0 7F 64 DB 78 */ mr r4, r27
-/* 80381484 0037D0E4 48 00 19 AD */ bl func_80382E30
+/* 80381484 0037D0E4 48 00 19 AD */ bl ChangeVoicePriority__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice
/* 80381488 0037D0E8 80 1B 00 B4 */ lwz r0, 0xb4(r27)
/* 8038148C 0037D0EC 2C 00 00 01 */ cmpwi r0, 1
/* 80381490 0037D0F0 40 82 00 58 */ bne lbl_803814E8
@@ -2339,7 +2339,7 @@ lbl_80382068: /* 803820A0 0037DD00 EE 02 00 2A */ fadds f16, f2, f0
/* 803820A4 0037DD04 40 82 00 18 */ bne lbl_803820BC
/* 803820A8 0037DD08 38 61 00 28 */ addi r3, r1, 0x28
-/* 803820AC 0037DD0C 48 00 10 E5 */ bl func_80383190
+/* 803820AC 0037DD0C 48 00 10 E5 */ bl CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803820B0 0037DD10 FF 60 08 90 */ fmr f27, f1
/* 803820B4 0037DD14 C3 42 A7 74 */ lfs f26, lbl_80642D74-_SDA2_BASE_(r2)
/* 803820B8 0037DD18 48 00 00 20 */ b lbl_803820D8
@@ -2349,17 +2349,17 @@ lbl_803820BC: /* 803820C4 0037DD24 FC 20 08 50 */ fneg f1, f1
/* 803820C8 0037DD28 C3 62 A7 74 */ lfs f27, lbl_80642D74-_SDA2_BASE_(r2)
/* 803820CC 0037DD2C 38 61 00 28 */ addi r3, r1, 0x28
-/* 803820D0 0037DD30 48 00 10 C1 */ bl func_80383190
+/* 803820D0 0037DD30 48 00 10 C1 */ bl CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803820D4 0037DD34 FF 40 08 90 */ fmr f26, f1
lbl_803820D8:
/* 803820D8 0037DD38 FC 20 80 90 */ fmr f1, f16
/* 803820DC 0037DD3C 38 61 00 28 */ addi r3, r1, 0x28
-/* 803820E0 0037DD40 48 00 11 91 */ bl func_80383270
+/* 803820E0 0037DD40 48 00 11 91 */ bl CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803820E4 0037DD44 C0 02 A7 90 */ lfs f0, lbl_80642D90-_SDA2_BASE_(r2)
/* 803820E8 0037DD48 FF 00 08 90 */ fmr f24, f1
/* 803820EC 0037DD4C 38 61 00 28 */ addi r3, r1, 0x28
/* 803820F0 0037DD50 EC 20 80 28 */ fsubs f1, f0, f16
-/* 803820F4 0037DD54 48 00 11 7D */ bl func_80383270
+/* 803820F4 0037DD54 48 00 11 7D */ bl CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803820F8 0037DD58 FE 00 08 90 */ fmr f16, f1
/* 803820FC 0037DD5C 48 00 00 F4 */ b lbl_803821F0
lbl_80382100:
@@ -2411,26 +2411,26 @@ lbl_80382178: lbl_803821A4:
/* 803821A4 0037DE04 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 803821A8 0037DE08 38 61 00 28 */ addi r3, r1, 0x28
-/* 803821AC 0037DE0C 48 00 0F E5 */ bl func_80383190
+/* 803821AC 0037DE0C 48 00 0F E5 */ bl CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803821B0 0037DE10 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 803821B4 0037DE14 FF 60 08 90 */ fmr f27, f1
/* 803821B8 0037DE18 38 61 00 28 */ addi r3, r1, 0x28
/* 803821BC 0037DE1C FC 20 00 50 */ fneg f1, f0
-/* 803821C0 0037DE20 48 00 0F D1 */ bl func_80383190
+/* 803821C0 0037DE20 48 00 0F D1 */ bl CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803821C4 0037DE24 FF 40 08 90 */ fmr f26, f1
/* 803821C8 0037DE28 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 803821CC 0037DE2C 38 61 00 28 */ addi r3, r1, 0x28
-/* 803821D0 0037DE30 48 00 10 A1 */ bl func_80383270
+/* 803821D0 0037DE30 48 00 10 A1 */ bl CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803821D4 0037DE34 C0 42 A7 90 */ lfs f2, lbl_80642D90-_SDA2_BASE_(r2)
/* 803821D8 0037DE38 FF 00 08 90 */ fmr f24, f1
/* 803821DC 0037DE3C C0 01 00 20 */ lfs f0, 0x20(r1)
/* 803821E0 0037DE40 38 61 00 28 */ addi r3, r1, 0x28
/* 803821E4 0037DE44 EC 22 00 28 */ fsubs f1, f2, f0
-/* 803821E8 0037DE48 48 00 10 89 */ bl func_80383270
+/* 803821E8 0037DE48 48 00 10 89 */ bl CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
/* 803821EC 0037DE4C FE 00 08 90 */ fmr f16, f1
lbl_803821F0:
/* 803821F0 0037DE50 C0 22 A7 9C */ lfs f1, lbl_80642D9C-_SDA2_BASE_(r2)
-/* 803821F4 0037DE54 48 00 0F 45 */ bl func_80383138
+/* 803821F4 0037DE54 48 00 0F 45 */ bl CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
/* 803821F8 0037DE58 EC 5B D0 2A */ fadds f2, f27, f26
/* 803821FC 0037DE5C C0 02 A7 80 */ lfs f0, lbl_80642D80-_SDA2_BASE_(r2)
/* 80382200 0037DE60 FE 20 08 90 */ fmr f17, f1
diff --git a/asm/nw4r/snd/detail/snd_VoiceManager.s b/asm/nw4r/snd/detail/snd_VoiceManager.s new file mode 100644 index 0000000..2055c08 --- /dev/null +++ b/asm/nw4r/snd/detail/snd_VoiceManager.s @@ -0,0 +1,497 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
+GetInstance__Q44nw4r3snd6detail12VoiceManagerFv:
+/* 80382900 0037E560 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80382904 0037E564 7C 08 02 A6 */ mflr r0
+/* 80382908 0037E568 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8038290C 0037E56C 88 0D B2 98 */ lbz r0, lbl_80640558-_SDA_BASE_(r13)
+/* 80382910 0037E570 7C 00 07 75 */ extsb. r0, r0
+/* 80382914 0037E574 40 82 00 60 */ bne lbl_80382974
+/* 80382918 0037E578 3C C0 80 64 */ lis r6, lbl_8063CDEC@ha
+/* 8038291C 0037E57C 38 00 00 00 */ li r0, 0
+/* 80382920 0037E580 38 66 CD EC */ addi r3, r6, lbl_8063CDEC@l
+/* 80382924 0037E584 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail12VoiceManagerFv@ha
+/* 80382928 0037E588 90 03 00 08 */ stw r0, 8(r3)
+/* 8038292C 0037E58C 39 03 00 08 */ addi r8, r3, 8
+/* 80382930 0037E590 38 E3 00 14 */ addi r7, r3, 0x14
+/* 80382934 0037E594 3C A0 80 64 */ lis r5, lbl_8063CDE0@ha
+/* 80382938 0037E598 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8038293C 0037E59C 38 84 29 8C */ addi r4, r4, __dt__Q44nw4r3snd6detail12VoiceManagerFv@l
+/* 80382940 0037E5A0 38 A5 CD E0 */ addi r5, r5, lbl_8063CDE0@l
+/* 80382944 0037E5A4 90 03 00 14 */ stw r0, 0x14(r3)
+/* 80382948 0037E5A8 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8038294C 0037E5AC 98 06 CD EC */ stb r0, -0x3214(r6)
+/* 80382950 0037E5B0 90 03 00 04 */ stw r0, 4(r3)
+/* 80382954 0037E5B4 91 03 00 08 */ stw r8, 8(r3)
+/* 80382958 0037E5B8 91 03 00 0C */ stw r8, 0xc(r3)
+/* 8038295C 0037E5BC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80382960 0037E5C0 90 E3 00 14 */ stw r7, 0x14(r3)
+/* 80382964 0037E5C4 90 E3 00 18 */ stw r7, 0x18(r3)
+/* 80382968 0037E5C8 4B E4 42 E1 */ bl __register_global_object_tmp
+/* 8038296C 0037E5CC 38 00 00 01 */ li r0, 1
+/* 80382970 0037E5D0 98 0D B2 98 */ stb r0, lbl_80640558-_SDA_BASE_(r13)
+lbl_80382974:
+/* 80382974 0037E5D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80382978 0037E5D8 3C 60 80 64 */ lis r3, lbl_8063CDEC@ha
+/* 8038297C 0037E5DC 38 63 CD EC */ addi r3, r3, lbl_8063CDEC@l
+/* 80382980 0037E5E0 7C 08 03 A6 */ mtlr r0
+/* 80382984 0037E5E4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80382988 0037E5E8 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail12VoiceManagerFv
+__dt__Q44nw4r3snd6detail12VoiceManagerFv:
+/* 8038298C 0037E5EC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80382990 0037E5F0 7C 08 02 A6 */ mflr r0
+/* 80382994 0037E5F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80382998 0037E5F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8038299C 0037E5FC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803829A0 0037E600 7C 9F 23 78 */ mr r31, r4
+/* 803829A4 0037E604 93 C1 00 08 */ stw r30, 8(r1)
+/* 803829A8 0037E608 7C 7E 1B 78 */ mr r30, r3
+/* 803829AC 0037E60C 41 82 00 34 */ beq lbl_803829E0
+/* 803829B0 0037E610 34 63 00 10 */ addic. r3, r3, 0x10
+/* 803829B4 0037E614 41 82 00 0C */ beq lbl_803829C0
+/* 803829B8 0037E618 38 80 00 00 */ li r4, 0
+/* 803829BC 0037E61C 4B FE 01 7D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_803829C0:
+/* 803829C0 0037E620 34 7E 00 04 */ addic. r3, r30, 4
+/* 803829C4 0037E624 41 82 00 0C */ beq lbl_803829D0
+/* 803829C8 0037E628 38 80 00 00 */ li r4, 0
+/* 803829CC 0037E62C 4B FE 01 6D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_803829D0:
+/* 803829D0 0037E630 2C 1F 00 00 */ cmpwi r31, 0
+/* 803829D4 0037E634 40 81 00 0C */ ble lbl_803829E0
+/* 803829D8 0037E638 7F C3 F3 78 */ mr r3, r30
+/* 803829DC 0037E63C 4B E5 80 DD */ bl func_801DAAB8
+lbl_803829E0:
+/* 803829E0 0037E640 7F C3 F3 78 */ mr r3, r30
+/* 803829E4 0037E644 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803829E8 0037E648 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803829EC 0037E64C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803829F0 0037E650 7C 08 03 A6 */ mtlr r0
+/* 803829F4 0037E654 38 21 00 10 */ addi r1, r1, 0x10
+/* 803829F8 0037E658 4E 80 00 20 */ blr
+
+.global GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv
+GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv:
+/* 803829FC 0037E65C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80382A00 0037E660 7C 08 02 A6 */ mflr r0
+/* 80382A04 0037E664 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80382A08 0037E668 4B F0 F9 15 */ bl func_8029231C
+/* 80382A0C 0037E66C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80382A10 0037E670 1C 63 01 2C */ mulli r3, r3, 0x12c
+/* 80382A14 0037E674 7C 08 03 A6 */ mtlr r0
+/* 80382A18 0037E678 38 21 00 10 */ addi r1, r1, 0x10
+/* 80382A1C 0037E67C 4E 80 00 20 */ blr
+
+.global Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl
+Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl:
+/* 80382A20 0037E680 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80382A24 0037E684 7C 08 02 A6 */ mflr r0
+/* 80382A28 0037E688 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80382A2C 0037E68C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80382A30 0037E690 4B E4 46 F9 */ bl _savegpr_27
+/* 80382A34 0037E694 88 03 00 00 */ lbz r0, 0(r3)
+/* 80382A38 0037E698 7C 7B 1B 78 */ mr r27, r3
+/* 80382A3C 0037E69C 2C 00 00 00 */ cmpwi r0, 0
+/* 80382A40 0037E6A0 40 82 00 6C */ bne lbl_80382AAC
+/* 80382A44 0037E6A4 3C C0 1B 4F */ lis r6, 0x1B4E81B5@ha
+/* 80382A48 0037E6A8 7C 9D 23 78 */ mr r29, r4
+/* 80382A4C 0037E6AC 38 06 81 B5 */ addi r0, r6, 0x1B4E81B5@l
+/* 80382A50 0037E6B0 3B 80 00 00 */ li r28, 0
+/* 80382A54 0037E6B4 7C 00 28 16 */ mulhwu r0, r0, r5
+/* 80382A58 0037E6B8 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f
+/* 80382A5C 0037E6BC 41 82 00 48 */ beq lbl_80382AA4
+/* 80382A60 0037E6C0 3B E3 00 14 */ addi r31, r3, 0x14
+/* 80382A64 0037E6C4 48 00 00 38 */ b lbl_80382A9C
+lbl_80382A68:
+/* 80382A68 0037E6C8 2C 1D 00 00 */ cmpwi r29, 0
+/* 80382A6C 0037E6CC 7F A5 EB 78 */ mr r5, r29
+/* 80382A70 0037E6D0 41 82 00 10 */ beq lbl_80382A80
+/* 80382A74 0037E6D4 7F A3 EB 78 */ mr r3, r29
+/* 80382A78 0037E6D8 4B FF D7 55 */ bl __ct__Q44nw4r3snd6detail5VoiceFv
+/* 80382A7C 0037E6DC 7C 65 1B 78 */ mr r5, r3
+lbl_80382A80:
+/* 80382A80 0037E6E0 93 E1 00 08 */ stw r31, 8(r1)
+/* 80382A84 0037E6E4 38 7B 00 10 */ addi r3, r27, 0x10
+/* 80382A88 0037E6E8 38 81 00 08 */ addi r4, r1, 8
+/* 80382A8C 0037E6EC 38 A5 01 24 */ addi r5, r5, 0x124
+/* 80382A90 0037E6F0 4B FE 01 B9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80382A94 0037E6F4 3B BD 01 2C */ addi r29, r29, 0x12c
+/* 80382A98 0037E6F8 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80382A9C:
+/* 80382A9C 0037E6FC 7C 1C F0 40 */ cmplw r28, r30
+/* 80382AA0 0037E700 41 80 FF C8 */ blt lbl_80382A68
+lbl_80382AA4:
+/* 80382AA4 0037E704 38 00 00 01 */ li r0, 1
+/* 80382AA8 0037E708 98 1B 00 00 */ stb r0, 0(r27)
+lbl_80382AAC:
+/* 80382AAC 0037E70C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80382AB0 0037E710 4B E4 46 C5 */ bl _restgpr_27
+/* 80382AB4 0037E714 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80382AB8 0037E718 7C 08 03 A6 */ mtlr r0
+/* 80382ABC 0037E71C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80382AC0 0037E720 4E 80 00 20 */ blr
+
+.global AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv
+AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv:
+/* 80382AC4 0037E724 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80382AC8 0037E728 7C 08 02 A6 */ mflr r0
+/* 80382ACC 0037E72C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80382AD0 0037E730 39 61 00 40 */ addi r11, r1, 0x40
+/* 80382AD4 0037E734 4B E4 46 45 */ bl _savegpr_23
+/* 80382AD8 0037E738 7C 7F 1B 78 */ mr r31, r3
+/* 80382ADC 0037E73C 7C 97 23 78 */ mr r23, r4
+/* 80382AE0 0037E740 7C B8 2B 78 */ mr r24, r5
+/* 80382AE4 0037E744 7C D9 33 78 */ mr r25, r6
+/* 80382AE8 0037E748 7C FA 3B 78 */ mr r26, r7
+/* 80382AEC 0037E74C 7D 1B 43 78 */ mr r27, r8
+/* 80382AF0 0037E750 4B EE BC 6D */ bl OSDisableInterrupts
+/* 80382AF4 0037E754 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80382AF8 0037E758 7C 7E 1B 78 */ mr r30, r3
+/* 80382AFC 0037E75C 2C 00 00 00 */ cmpwi r0, 0
+/* 80382B00 0037E760 40 82 00 7C */ bne lbl_80382B7C
+/* 80382B04 0037E764 3B A0 00 00 */ li r29, 0
+/* 80382B08 0037E768 40 82 00 5C */ bne lbl_80382B64
+/* 80382B0C 0037E76C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80382B10 0037E770 80 03 FF 90 */ lwz r0, -0x70(r3)
+/* 80382B14 0037E774 3B 83 FE DC */ addi r28, r3, -292
+/* 80382B18 0037E778 7C 00 C8 00 */ cmpw r0, r25
+/* 80382B1C 0037E77C 40 81 00 0C */ ble lbl_80382B28
+/* 80382B20 0037E780 3B A0 00 00 */ li r29, 0
+/* 80382B24 0037E784 48 00 00 40 */ b lbl_80382B64
+lbl_80382B28:
+/* 80382B28 0037E788 80 9C 00 9C */ lwz r4, 0x9c(r28)
+/* 80382B2C 0037E78C 7F 83 E3 78 */ mr r3, r28
+/* 80382B30 0037E790 80 1C 00 A0 */ lwz r0, 0xa0(r28)
+/* 80382B34 0037E794 7F A4 01 D6 */ mullw r29, r4, r0
+/* 80382B38 0037E798 4B FF E4 39 */ bl Stop__Q44nw4r3snd6detail5VoiceFv
+/* 80382B3C 0037E79C 7F 83 E3 78 */ mr r3, r28
+/* 80382B40 0037E7A0 4B FF E0 95 */ bl Free__Q44nw4r3snd6detail5VoiceFv
+/* 80382B44 0037E7A4 81 9C 00 A4 */ lwz r12, 0xa4(r28)
+/* 80382B48 0037E7A8 2C 0C 00 00 */ cmpwi r12, 0
+/* 80382B4C 0037E7AC 41 82 00 18 */ beq lbl_80382B64
+/* 80382B50 0037E7B0 7F 83 E3 78 */ mr r3, r28
+/* 80382B54 0037E7B4 80 BC 00 A8 */ lwz r5, 0xa8(r28)
+/* 80382B58 0037E7B8 38 80 00 02 */ li r4, 2
+/* 80382B5C 0037E7BC 7D 89 03 A6 */ mtctr r12
+/* 80382B60 0037E7C0 4E 80 04 21 */ bctrl
+lbl_80382B64:
+/* 80382B64 0037E7C4 2C 1D 00 00 */ cmpwi r29, 0
+/* 80382B68 0037E7C8 40 82 00 14 */ bne lbl_80382B7C
+/* 80382B6C 0037E7CC 7F C3 F3 78 */ mr r3, r30
+/* 80382B70 0037E7D0 4B EE BC 15 */ bl OSRestoreInterrupts
+/* 80382B74 0037E7D4 38 60 00 00 */ li r3, 0
+/* 80382B78 0037E7D8 48 00 00 F0 */ b lbl_80382C68
+lbl_80382B7C:
+/* 80382B7C 0037E7DC 80 7F 00 14 */ lwz r3, 0x14(r31)
+/* 80382B80 0037E7E0 7E E4 BB 78 */ mr r4, r23
+/* 80382B84 0037E7E4 7F 05 C3 78 */ mr r5, r24
+/* 80382B88 0037E7E8 7F 26 CB 78 */ mr r6, r25
+/* 80382B8C 0037E7EC 3B 83 FE DC */ addi r28, r3, -292
+/* 80382B90 0037E7F0 7F 47 D3 78 */ mr r7, r26
+/* 80382B94 0037E7F4 7F 83 E3 78 */ mr r3, r28
+/* 80382B98 0037E7F8 7F 68 DB 78 */ mr r8, r27
+/* 80382B9C 0037E7FC 4B FF DD FD */ bl Acquire__Q44nw4r3snd6detail5VoiceFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv
+/* 80382BA0 0037E800 2C 03 00 00 */ cmpwi r3, 0
+/* 80382BA4 0037E804 40 82 00 14 */ bne lbl_80382BB8
+/* 80382BA8 0037E808 7F C3 F3 78 */ mr r3, r30
+/* 80382BAC 0037E80C 4B EE BB D9 */ bl OSRestoreInterrupts
+/* 80382BB0 0037E810 38 60 00 00 */ li r3, 0
+/* 80382BB4 0037E814 48 00 00 B4 */ b lbl_80382C68
+lbl_80382BB8:
+/* 80382BB8 0037E818 57 20 06 3E */ clrlwi r0, r25, 0x18
+/* 80382BBC 0037E81C 90 1C 00 B4 */ stw r0, 0xb4(r28)
+/* 80382BC0 0037E820 4B EE BB 9D */ bl OSDisableInterrupts
+/* 80382BC4 0037E824 3B 7C 01 24 */ addi r27, r28, 0x124
+/* 80382BC8 0037E828 7C 7D 1B 78 */ mr r29, r3
+/* 80382BCC 0037E82C 7F 64 DB 78 */ mr r4, r27
+/* 80382BD0 0037E830 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80382BD4 0037E834 4B FE 00 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 80382BD8 0037E838 80 BF 00 08 */ lwz r5, 8(r31)
+/* 80382BDC 0037E83C 38 7F 00 08 */ addi r3, r31, 8
+/* 80382BE0 0037E840 48 00 00 1C */ b lbl_80382BFC
+lbl_80382BE4:
+/* 80382BE4 0037E844 80 C3 00 04 */ lwz r6, 4(r3)
+/* 80382BE8 0037E848 80 1C 00 B4 */ lwz r0, 0xb4(r28)
+/* 80382BEC 0037E84C 80 86 FF 90 */ lwz r4, -0x70(r6)
+/* 80382BF0 0037E850 7C 04 00 00 */ cmpw r4, r0
+/* 80382BF4 0037E854 40 81 00 10 */ ble lbl_80382C04
+/* 80382BF8 0037E858 7C C3 33 78 */ mr r3, r6
+lbl_80382BFC:
+/* 80382BFC 0037E85C 7C 03 28 40 */ cmplw r3, r5
+/* 80382C00 0037E860 40 82 FF E4 */ bne lbl_80382BE4
+lbl_80382C04:
+/* 80382C04 0037E864 90 61 00 08 */ stw r3, 8(r1)
+/* 80382C08 0037E868 7F 65 DB 78 */ mr r5, r27
+/* 80382C0C 0037E86C 38 7F 00 04 */ addi r3, r31, 4
+/* 80382C10 0037E870 38 81 00 08 */ addi r4, r1, 8
+/* 80382C14 0037E874 4B FE 00 35 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80382C18 0037E878 7F A3 EB 78 */ mr r3, r29
+/* 80382C1C 0037E87C 4B EE BB 69 */ bl OSRestoreInterrupts
+/* 80382C20 0037E880 3B BF 00 08 */ addi r29, r31, 8
+/* 80382C24 0037E884 48 00 00 24 */ b lbl_80382C48
+lbl_80382C28:
+/* 80382C28 0037E888 80 1B FF 90 */ lwz r0, -0x70(r27)
+/* 80382C2C 0037E88C 38 7B FE DC */ addi r3, r27, -292
+/* 80382C30 0037E890 2C 00 00 01 */ cmpwi r0, 1
+/* 80382C34 0037E894 40 81 00 1C */ ble lbl_80382C50
+/* 80382C38 0037E898 2C 00 00 FF */ cmpwi r0, 0xff
+/* 80382C3C 0037E89C 41 82 00 08 */ beq lbl_80382C44
+/* 80382C40 0037E8A0 4B FF E8 C1 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv
+lbl_80382C44:
+/* 80382C44 0037E8A4 83 7B 00 00 */ lwz r27, 0(r27)
+lbl_80382C48:
+/* 80382C48 0037E8A8 7C 1B E8 40 */ cmplw r27, r29
+/* 80382C4C 0037E8AC 40 82 FF DC */ bne lbl_80382C28
+lbl_80382C50:
+/* 80382C50 0037E8B0 4B FE C6 09 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv
+/* 80382C54 0037E8B4 7F 84 E3 78 */ mr r4, r28
+/* 80382C58 0037E8B8 4B FE C6 FD */ bl __dt__Q34nw4r2ut47LinkList$0Q44nw4r3snd6detail15DisposeCallback$40$1Fv
+/* 80382C5C 0037E8BC 7F C3 F3 78 */ mr r3, r30
+/* 80382C60 0037E8C0 4B EE BB 25 */ bl OSRestoreInterrupts
+/* 80382C64 0037E8C4 7F 83 E3 78 */ mr r3, r28
+lbl_80382C68:
+/* 80382C68 0037E8C8 39 61 00 40 */ addi r11, r1, 0x40
+/* 80382C6C 0037E8CC 4B E4 44 F9 */ bl _restgpr_23
+/* 80382C70 0037E8D0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80382C74 0037E8D4 7C 08 03 A6 */ mtlr r0
+/* 80382C78 0037E8D8 38 21 00 40 */ addi r1, r1, 0x40
+/* 80382C7C 0037E8DC 4E 80 00 20 */ blr
+
+.global FreeVoice__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice
+FreeVoice__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice:
+/* 80382C80 0037E8E0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80382C84 0037E8E4 7C 08 02 A6 */ mflr r0
+/* 80382C88 0037E8E8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80382C8C 0037E8EC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80382C90 0037E8F0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80382C94 0037E8F4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80382C98 0037E8F8 7C 9D 23 78 */ mr r29, r4
+/* 80382C9C 0037E8FC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80382CA0 0037E900 7C 7C 1B 78 */ mr r28, r3
+/* 80382CA4 0037E904 4B EE BA B9 */ bl OSDisableInterrupts
+/* 80382CA8 0037E908 7C 7F 1B 78 */ mr r31, r3
+/* 80382CAC 0037E90C 4B FE C5 AD */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv
+/* 80382CB0 0037E910 7F A4 EB 78 */ mr r4, r29
+/* 80382CB4 0037E914 4B FE C6 F9 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv
+/* 80382CB8 0037E918 4B EE BA A5 */ bl OSDisableInterrupts
+/* 80382CBC 0037E91C 3B BD 01 24 */ addi r29, r29, 0x124
+/* 80382CC0 0037E920 7C 7E 1B 78 */ mr r30, r3
+/* 80382CC4 0037E924 7F A4 EB 78 */ mr r4, r29
+/* 80382CC8 0037E928 38 7C 00 04 */ addi r3, r28, 4
+/* 80382CCC 0037E92C 4B FD FF A9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 80382CD0 0037E930 38 1C 00 14 */ addi r0, r28, 0x14
+/* 80382CD4 0037E934 7F A5 EB 78 */ mr r5, r29
+/* 80382CD8 0037E938 90 01 00 08 */ stw r0, 8(r1)
+/* 80382CDC 0037E93C 38 7C 00 10 */ addi r3, r28, 0x10
+/* 80382CE0 0037E940 38 81 00 08 */ addi r4, r1, 8
+/* 80382CE4 0037E944 4B FD FF 65 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80382CE8 0037E948 7F C3 F3 78 */ mr r3, r30
+/* 80382CEC 0037E94C 4B EE BA 99 */ bl OSRestoreInterrupts
+/* 80382CF0 0037E950 7F E3 FB 78 */ mr r3, r31
+/* 80382CF4 0037E954 4B EE BA 91 */ bl OSRestoreInterrupts
+/* 80382CF8 0037E958 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80382CFC 0037E95C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80382D00 0037E960 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80382D04 0037E964 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80382D08 0037E968 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80382D0C 0037E96C 7C 08 03 A6 */ mtlr r0
+/* 80382D10 0037E970 38 21 00 20 */ addi r1, r1, 0x20
+/* 80382D14 0037E974 4E 80 00 20 */ blr
+
+.global UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv
+UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv:
+/* 80382D18 0037E978 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80382D1C 0037E97C 7C 08 02 A6 */ mflr r0
+/* 80382D20 0037E980 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80382D24 0037E984 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80382D28 0037E988 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80382D2C 0037E98C 3B C3 00 08 */ addi r30, r3, 8
+/* 80382D30 0037E990 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80382D34 0037E994 7C 7D 1B 78 */ mr r29, r3
+/* 80382D38 0037E998 83 E3 00 08 */ lwz r31, 8(r3)
+/* 80382D3C 0037E99C 48 00 00 14 */ b lbl_80382D50
+lbl_80382D40:
+/* 80382D40 0037E9A0 7F E3 FB 78 */ mr r3, r31
+/* 80382D44 0037E9A4 83 FF 00 00 */ lwz r31, 0(r31)
+/* 80382D48 0037E9A8 38 63 FE DC */ addi r3, r3, -292
+/* 80382D4C 0037E9AC 4B FF D6 25 */ bl StopFinished__Q44nw4r3snd6detail5VoiceFv
+lbl_80382D50:
+/* 80382D50 0037E9B0 7C 1F F0 40 */ cmplw r31, r30
+/* 80382D54 0037E9B4 40 82 FF EC */ bne lbl_80382D40
+/* 80382D58 0037E9B8 83 DD 00 08 */ lwz r30, 8(r29)
+/* 80382D5C 0037E9BC 3B FD 00 08 */ addi r31, r29, 8
+/* 80382D60 0037E9C0 48 00 00 14 */ b lbl_80382D74
+lbl_80382D64:
+/* 80382D64 0037E9C4 7F C3 F3 78 */ mr r3, r30
+/* 80382D68 0037E9C8 83 DE 00 00 */ lwz r30, 0(r30)
+/* 80382D6C 0037E9CC 38 63 FE DC */ addi r3, r3, -292
+/* 80382D70 0037E9D0 4B FF D6 9D */ bl Calc__Q44nw4r3snd6detail5VoiceFv
+lbl_80382D74:
+/* 80382D74 0037E9D4 7C 1E F8 40 */ cmplw r30, r31
+/* 80382D78 0037E9D8 40 82 FF EC */ bne lbl_80382D64
+/* 80382D7C 0037E9DC 4B EE B9 E1 */ bl OSDisableInterrupts
+/* 80382D80 0037E9E0 87 FD 00 08 */ lwzu r31, 8(r29)
+/* 80382D84 0037E9E4 7C 7E 1B 78 */ mr r30, r3
+/* 80382D88 0037E9E8 48 00 00 14 */ b lbl_80382D9C
+lbl_80382D8C:
+/* 80382D8C 0037E9EC 7F E3 FB 78 */ mr r3, r31
+/* 80382D90 0037E9F0 83 FF 00 00 */ lwz r31, 0(r31)
+/* 80382D94 0037E9F4 38 63 FE DC */ addi r3, r3, -292
+/* 80382D98 0037E9F8 4B FF D8 C5 */ bl Update__Q44nw4r3snd6detail5VoiceFv
+lbl_80382D9C:
+/* 80382D9C 0037E9FC 7C 1F E8 40 */ cmplw r31, r29
+/* 80382DA0 0037EA00 40 82 FF EC */ bne lbl_80382D8C
+/* 80382DA4 0037EA04 7F C3 F3 78 */ mr r3, r30
+/* 80382DA8 0037EA08 4B EE B9 DD */ bl OSRestoreInterrupts
+/* 80382DAC 0037EA0C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80382DB0 0037EA10 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80382DB4 0037EA14 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80382DB8 0037EA18 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80382DBC 0037EA1C 7C 08 03 A6 */ mtlr r0
+/* 80382DC0 0037EA20 38 21 00 20 */ addi r1, r1, 0x20
+/* 80382DC4 0037EA24 4E 80 00 20 */ blr
+
+.global NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv
+NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv:
+/* 80382DC8 0037EA28 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80382DCC 0037EA2C 7C 08 02 A6 */ mflr r0
+/* 80382DD0 0037EA30 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80382DD4 0037EA34 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80382DD8 0037EA38 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80382DDC 0037EA3C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80382DE0 0037EA40 7C 7D 1B 78 */ mr r29, r3
+/* 80382DE4 0037EA44 4B EE B9 79 */ bl OSDisableInterrupts
+/* 80382DE8 0037EA48 87 DD 00 08 */ lwzu r30, 8(r29)
+/* 80382DEC 0037EA4C 7C 7F 1B 78 */ mr r31, r3
+/* 80382DF0 0037EA50 48 00 00 14 */ b lbl_80382E04
+lbl_80382DF4:
+/* 80382DF4 0037EA54 7F C3 F3 78 */ mr r3, r30
+/* 80382DF8 0037EA58 83 DE 00 00 */ lwz r30, 0(r30)
+/* 80382DFC 0037EA5C 38 63 FE DC */ addi r3, r3, -292
+/* 80382E00 0037EA60 4B FF EC 6D */ bl ResetDelta__Q44nw4r3snd6detail5VoiceFv
+lbl_80382E04:
+/* 80382E04 0037EA64 7C 1E E8 40 */ cmplw r30, r29
+/* 80382E08 0037EA68 40 82 FF EC */ bne lbl_80382DF4
+/* 80382E0C 0037EA6C 7F E3 FB 78 */ mr r3, r31
+/* 80382E10 0037EA70 4B EE B9 75 */ bl OSRestoreInterrupts
+/* 80382E14 0037EA74 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80382E18 0037EA78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80382E1C 0037EA7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80382E20 0037EA80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80382E24 0037EA84 7C 08 03 A6 */ mtlr r0
+/* 80382E28 0037EA88 38 21 00 20 */ addi r1, r1, 0x20
+/* 80382E2C 0037EA8C 4E 80 00 20 */ blr
+
+.global ChangeVoicePriority__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice
+ChangeVoicePriority__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice:
+/* 80382E30 0037EA90 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80382E34 0037EA94 7C 08 02 A6 */ mflr r0
+/* 80382E38 0037EA98 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80382E3C 0037EA9C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80382E40 0037EAA0 4B E4 42 E9 */ bl _savegpr_27
+/* 80382E44 0037EAA4 7C 7B 1B 78 */ mr r27, r3
+/* 80382E48 0037EAA8 7C 9C 23 78 */ mr r28, r4
+/* 80382E4C 0037EAAC 4B EE B9 11 */ bl OSDisableInterrupts
+/* 80382E50 0037EAB0 7C 7F 1B 78 */ mr r31, r3
+/* 80382E54 0037EAB4 4B EE B9 09 */ bl OSDisableInterrupts
+/* 80382E58 0037EAB8 3B BC 01 24 */ addi r29, r28, 0x124
+/* 80382E5C 0037EABC 7C 7E 1B 78 */ mr r30, r3
+/* 80382E60 0037EAC0 7F A4 EB 78 */ mr r4, r29
+/* 80382E64 0037EAC4 38 7B 00 04 */ addi r3, r27, 4
+/* 80382E68 0037EAC8 4B FD FE 0D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 80382E6C 0037EACC 38 1B 00 14 */ addi r0, r27, 0x14
+/* 80382E70 0037EAD0 7F A5 EB 78 */ mr r5, r29
+/* 80382E74 0037EAD4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80382E78 0037EAD8 38 7B 00 10 */ addi r3, r27, 0x10
+/* 80382E7C 0037EADC 38 81 00 0C */ addi r4, r1, 0xc
+/* 80382E80 0037EAE0 4B FD FD C9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80382E84 0037EAE4 7F C3 F3 78 */ mr r3, r30
+/* 80382E88 0037EAE8 4B EE B8 FD */ bl OSRestoreInterrupts
+/* 80382E8C 0037EAEC 4B EE B8 D1 */ bl OSDisableInterrupts
+/* 80382E90 0037EAF0 7C 7E 1B 78 */ mr r30, r3
+/* 80382E94 0037EAF4 7F A4 EB 78 */ mr r4, r29
+/* 80382E98 0037EAF8 38 7B 00 10 */ addi r3, r27, 0x10
+/* 80382E9C 0037EAFC 4B FD FD D9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 80382EA0 0037EB00 80 BB 00 08 */ lwz r5, 8(r27)
+/* 80382EA4 0037EB04 38 7B 00 08 */ addi r3, r27, 8
+/* 80382EA8 0037EB08 48 00 00 1C */ b lbl_80382EC4
+lbl_80382EAC:
+/* 80382EAC 0037EB0C 80 C3 00 04 */ lwz r6, 4(r3)
+/* 80382EB0 0037EB10 80 1C 00 B4 */ lwz r0, 0xb4(r28)
+/* 80382EB4 0037EB14 80 86 FF 90 */ lwz r4, -0x70(r6)
+/* 80382EB8 0037EB18 7C 04 00 00 */ cmpw r4, r0
+/* 80382EBC 0037EB1C 40 81 00 10 */ ble lbl_80382ECC
+/* 80382EC0 0037EB20 7C C3 33 78 */ mr r3, r6
+lbl_80382EC4:
+/* 80382EC4 0037EB24 7C 03 28 40 */ cmplw r3, r5
+/* 80382EC8 0037EB28 40 82 FF E4 */ bne lbl_80382EAC
+lbl_80382ECC:
+/* 80382ECC 0037EB2C 90 61 00 08 */ stw r3, 8(r1)
+/* 80382ED0 0037EB30 7F A5 EB 78 */ mr r5, r29
+/* 80382ED4 0037EB34 38 7B 00 04 */ addi r3, r27, 4
+/* 80382ED8 0037EB38 38 81 00 08 */ addi r4, r1, 8
+/* 80382EDC 0037EB3C 4B FD FD 6D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80382EE0 0037EB40 7F C3 F3 78 */ mr r3, r30
+/* 80382EE4 0037EB44 4B EE B8 A1 */ bl OSRestoreInterrupts
+/* 80382EE8 0037EB48 3B DB 00 08 */ addi r30, r27, 8
+/* 80382EEC 0037EB4C 48 00 00 24 */ b lbl_80382F10
+lbl_80382EF0:
+/* 80382EF0 0037EB50 80 1D FF 90 */ lwz r0, -0x70(r29)
+/* 80382EF4 0037EB54 38 7D FE DC */ addi r3, r29, -292
+/* 80382EF8 0037EB58 2C 00 00 01 */ cmpwi r0, 1
+/* 80382EFC 0037EB5C 40 81 00 1C */ ble lbl_80382F18
+/* 80382F00 0037EB60 2C 00 00 FF */ cmpwi r0, 0xff
+/* 80382F04 0037EB64 41 82 00 08 */ beq lbl_80382F0C
+/* 80382F08 0037EB68 4B FF E5 F9 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv
+lbl_80382F0C:
+/* 80382F0C 0037EB6C 83 BD 00 00 */ lwz r29, 0(r29)
+lbl_80382F10:
+/* 80382F10 0037EB70 7C 1D F0 40 */ cmplw r29, r30
+/* 80382F14 0037EB74 40 82 FF DC */ bne lbl_80382EF0
+lbl_80382F18:
+/* 80382F18 0037EB78 7F E3 FB 78 */ mr r3, r31
+/* 80382F1C 0037EB7C 4B EE B8 69 */ bl OSRestoreInterrupts
+/* 80382F20 0037EB80 39 61 00 30 */ addi r11, r1, 0x30
+/* 80382F24 0037EB84 4B E4 42 51 */ bl _restgpr_27
+/* 80382F28 0037EB88 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80382F2C 0037EB8C 7C 08 03 A6 */ mtlr r0
+/* 80382F30 0037EB90 38 21 00 30 */ addi r1, r1, 0x30
+/* 80382F34 0037EB94 4E 80 00 20 */ blr
+
+.global UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl
+UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl:
+/* 80382F38 0037EB98 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80382F3C 0037EB9C 7C 08 02 A6 */ mflr r0
+/* 80382F40 0037EBA0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80382F44 0037EBA4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80382F48 0037EBA8 7C 9F 23 78 */ mr r31, r4
+/* 80382F4C 0037EBAC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80382F50 0037EBB0 7C 7E 1B 78 */ mr r30, r3
+/* 80382F54 0037EBB4 4B EE B8 09 */ bl OSDisableInterrupts
+/* 80382F58 0037EBB8 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80382F5C 0037EBBC 38 1E 00 08 */ addi r0, r30, 8
+/* 80382F60 0037EBC0 48 00 00 24 */ b lbl_80382F84
+lbl_80382F64:
+/* 80382F64 0037EBC4 7C 86 23 78 */ mr r6, r4
+/* 80382F68 0037EBC8 80 84 00 00 */ lwz r4, 0(r4)
+/* 80382F6C 0037EBCC 88 A6 FF 88 */ lbz r5, -0x78(r6)
+/* 80382F70 0037EBD0 2C 05 00 00 */ cmpwi r5, 0
+/* 80382F74 0037EBD4 41 82 00 10 */ beq lbl_80382F84
+/* 80382F78 0037EBD8 88 A6 FF 8D */ lbz r5, -0x73(r6)
+/* 80382F7C 0037EBDC 7C A5 FB 78 */ or r5, r5, r31
+/* 80382F80 0037EBE0 98 A6 FF 8D */ stb r5, -0x73(r6)
+lbl_80382F84:
+/* 80382F84 0037EBE4 7C 04 00 40 */ cmplw r4, r0
+/* 80382F88 0037EBE8 40 82 FF DC */ bne lbl_80382F64
+/* 80382F8C 0037EBEC 4B EE B7 F9 */ bl OSRestoreInterrupts
+/* 80382F90 0037EBF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80382F94 0037EBF4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80382F98 0037EBF8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80382F9C 0037EBFC 7C 08 03 A6 */ mtlr r0
+/* 80382FA0 0037EC00 38 21 00 10 */ addi r1, r1, 0x10
+/* 80382FA4 0037EC04 4E 80 00 20 */ blr
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/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_SoundSystem.s b/asm/nw4r/snd/snd_SoundSystem.s index b7e76d0..14f7fe2 100644 --- a/asm/nw4r/snd/snd_SoundSystem.s +++ b/asm/nw4r/snd/snd_SoundSystem.s @@ -103,16 +103,16 @@ lbl_8037C2B8: /* 8037C2F8 00377F58 7F E5 FB 78 */ mr r5, r31
/* 8037C2FC 00377F5C 4B FE FD F9 */ bl Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl
/* 8037C300 00377F60 7F DC F3 78 */ mr r28, r30
-/* 8037C304 00377F64 48 00 65 FD */ bl func_80382900
-/* 8037C308 00377F68 48 00 66 F5 */ bl func_803829FC
+/* 8037C304 00377F64 48 00 65 FD */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
+/* 8037C308 00377F68 48 00 66 F5 */ bl GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C30C 00377F6C 7F DE 1A 14 */ add r30, r30, r3
-/* 8037C310 00377F70 48 00 65 F1 */ bl func_80382900
-/* 8037C314 00377F74 48 00 66 E9 */ bl func_803829FC
+/* 8037C310 00377F70 48 00 65 F1 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
+/* 8037C314 00377F74 48 00 66 E9 */ bl GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C318 00377F78 7C 7F 1B 78 */ mr r31, r3
-/* 8037C31C 00377F7C 48 00 65 E5 */ bl func_80382900
+/* 8037C31C 00377F7C 48 00 65 E5 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C320 00377F80 7F 84 E3 78 */ mr r4, r28
/* 8037C324 00377F84 7F E5 FB 78 */ mr r5, r31
-/* 8037C328 00377F88 48 00 66 F9 */ bl func_80382A20
+/* 8037C328 00377F88 48 00 66 F9 */ bl Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl
/* 8037C32C 00377F8C 4B FF 1E 6D */ bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C330 00377F90 4B FF 1F 59 */ bl GetRequiredMemSize__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C334 00377F94 4B FF 1E 65 */ bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
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 b116b5f..08c3334 100644 --- a/asm/text_11.s +++ b/asm/text_11.s @@ -2,1503 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80382900 -func_80382900: -/* 80382900 0037E560 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80382904 0037E564 7C 08 02 A6 */ mflr r0 -/* 80382908 0037E568 90 01 00 14 */ stw r0, 0x14(r1) -/* 8038290C 0037E56C 88 0D B2 98 */ lbz r0, lbl_80640558-_SDA_BASE_(r13) -/* 80382910 0037E570 7C 00 07 75 */ extsb. r0, r0 -/* 80382914 0037E574 40 82 00 60 */ bne lbl_80382974 -/* 80382918 0037E578 3C C0 80 64 */ lis r6, lbl_8063CDEC@ha -/* 8038291C 0037E57C 38 00 00 00 */ li r0, 0 -/* 80382920 0037E580 38 66 CD EC */ addi r3, r6, lbl_8063CDEC@l -/* 80382924 0037E584 3C 80 80 38 */ lis r4, lbl_8038298C@ha -/* 80382928 0037E588 90 03 00 08 */ stw r0, 8(r3) -/* 8038292C 0037E58C 39 03 00 08 */ addi r8, r3, 8 -/* 80382930 0037E590 38 E3 00 14 */ addi r7, r3, 0x14 -/* 80382934 0037E594 3C A0 80 64 */ lis r5, lbl_8063CDE0@ha -/* 80382938 0037E598 90 03 00 0C */ stw r0, 0xc(r3) -/* 8038293C 0037E59C 38 84 29 8C */ addi r4, r4, lbl_8038298C@l -/* 80382940 0037E5A0 38 A5 CD E0 */ addi r5, r5, lbl_8063CDE0@l -/* 80382944 0037E5A4 90 03 00 14 */ stw r0, 0x14(r3) -/* 80382948 0037E5A8 90 03 00 18 */ stw r0, 0x18(r3) -/* 8038294C 0037E5AC 98 06 CD EC */ stb r0, -0x3214(r6) -/* 80382950 0037E5B0 90 03 00 04 */ stw r0, 4(r3) -/* 80382954 0037E5B4 91 03 00 08 */ stw r8, 8(r3) -/* 80382958 0037E5B8 91 03 00 0C */ stw r8, 0xc(r3) -/* 8038295C 0037E5BC 90 03 00 10 */ stw r0, 0x10(r3) -/* 80382960 0037E5C0 90 E3 00 14 */ stw r7, 0x14(r3) -/* 80382964 0037E5C4 90 E3 00 18 */ stw r7, 0x18(r3) -/* 80382968 0037E5C8 4B E4 42 E1 */ bl __register_global_object_tmp -/* 8038296C 0037E5CC 38 00 00 01 */ li r0, 1 -/* 80382970 0037E5D0 98 0D B2 98 */ stb r0, lbl_80640558-_SDA_BASE_(r13) -lbl_80382974: -/* 80382974 0037E5D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80382978 0037E5D8 3C 60 80 64 */ lis r3, lbl_8063CDEC@ha -/* 8038297C 0037E5DC 38 63 CD EC */ addi r3, r3, lbl_8063CDEC@l -/* 80382980 0037E5E0 7C 08 03 A6 */ mtlr r0 -/* 80382984 0037E5E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80382988 0037E5E8 4E 80 00 20 */ blr -lbl_8038298C: -/* 8038298C 0037E5EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80382990 0037E5F0 7C 08 02 A6 */ mflr r0 -/* 80382994 0037E5F4 2C 03 00 00 */ cmpwi r3, 0 -/* 80382998 0037E5F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8038299C 0037E5FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803829A0 0037E600 7C 9F 23 78 */ mr r31, r4 -/* 803829A4 0037E604 93 C1 00 08 */ stw r30, 8(r1) -/* 803829A8 0037E608 7C 7E 1B 78 */ mr r30, r3 -/* 803829AC 0037E60C 41 82 00 34 */ beq lbl_803829E0 -/* 803829B0 0037E610 34 63 00 10 */ addic. r3, r3, 0x10 -/* 803829B4 0037E614 41 82 00 0C */ beq lbl_803829C0 -/* 803829B8 0037E618 38 80 00 00 */ li r4, 0 -/* 803829BC 0037E61C 4B FE 01 7D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv -lbl_803829C0: -/* 803829C0 0037E620 34 7E 00 04 */ addic. r3, r30, 4 -/* 803829C4 0037E624 41 82 00 0C */ beq lbl_803829D0 -/* 803829C8 0037E628 38 80 00 00 */ li r4, 0 -/* 803829CC 0037E62C 4B FE 01 6D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv -lbl_803829D0: -/* 803829D0 0037E630 2C 1F 00 00 */ cmpwi r31, 0 -/* 803829D4 0037E634 40 81 00 0C */ ble lbl_803829E0 -/* 803829D8 0037E638 7F C3 F3 78 */ mr r3, r30 -/* 803829DC 0037E63C 4B E5 80 DD */ bl func_801DAAB8 -lbl_803829E0: -/* 803829E0 0037E640 7F C3 F3 78 */ mr r3, r30 -/* 803829E4 0037E644 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803829E8 0037E648 83 C1 00 08 */ lwz r30, 8(r1) -/* 803829EC 0037E64C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803829F0 0037E650 7C 08 03 A6 */ mtlr r0 -/* 803829F4 0037E654 38 21 00 10 */ addi r1, r1, 0x10 -/* 803829F8 0037E658 4E 80 00 20 */ blr - -.global func_803829FC -func_803829FC: -/* 803829FC 0037E65C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80382A00 0037E660 7C 08 02 A6 */ mflr r0 -/* 80382A04 0037E664 90 01 00 14 */ stw r0, 0x14(r1) -/* 80382A08 0037E668 4B F0 F9 15 */ bl func_8029231C -/* 80382A0C 0037E66C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80382A10 0037E670 1C 63 01 2C */ mulli r3, r3, 0x12c -/* 80382A14 0037E674 7C 08 03 A6 */ mtlr r0 -/* 80382A18 0037E678 38 21 00 10 */ addi r1, r1, 0x10 -/* 80382A1C 0037E67C 4E 80 00 20 */ blr - -.global func_80382A20 -func_80382A20: -/* 80382A20 0037E680 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80382A24 0037E684 7C 08 02 A6 */ mflr r0 -/* 80382A28 0037E688 90 01 00 34 */ stw r0, 0x34(r1) -/* 80382A2C 0037E68C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80382A30 0037E690 4B E4 46 F9 */ bl _savegpr_27 -/* 80382A34 0037E694 88 03 00 00 */ lbz r0, 0(r3) -/* 80382A38 0037E698 7C 7B 1B 78 */ mr r27, r3 -/* 80382A3C 0037E69C 2C 00 00 00 */ cmpwi r0, 0 -/* 80382A40 0037E6A0 40 82 00 6C */ bne lbl_80382AAC -/* 80382A44 0037E6A4 3C C0 1B 4F */ lis r6, 0x1B4E81B5@ha -/* 80382A48 0037E6A8 7C 9D 23 78 */ mr r29, r4 -/* 80382A4C 0037E6AC 38 06 81 B5 */ addi r0, r6, 0x1B4E81B5@l -/* 80382A50 0037E6B0 3B 80 00 00 */ li r28, 0 -/* 80382A54 0037E6B4 7C 00 28 16 */ mulhwu r0, r0, r5 -/* 80382A58 0037E6B8 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f -/* 80382A5C 0037E6BC 41 82 00 48 */ beq lbl_80382AA4 -/* 80382A60 0037E6C0 3B E3 00 14 */ addi r31, r3, 0x14 -/* 80382A64 0037E6C4 48 00 00 38 */ b lbl_80382A9C -lbl_80382A68: -/* 80382A68 0037E6C8 2C 1D 00 00 */ cmpwi r29, 0 -/* 80382A6C 0037E6CC 7F A5 EB 78 */ mr r5, r29 -/* 80382A70 0037E6D0 41 82 00 10 */ beq lbl_80382A80 -/* 80382A74 0037E6D4 7F A3 EB 78 */ mr r3, r29 -/* 80382A78 0037E6D8 4B FF D7 55 */ bl __ct__Q44nw4r3snd6detail5VoiceFv -/* 80382A7C 0037E6DC 7C 65 1B 78 */ mr r5, r3 -lbl_80382A80: -/* 80382A80 0037E6E0 93 E1 00 08 */ stw r31, 8(r1) -/* 80382A84 0037E6E4 38 7B 00 10 */ addi r3, r27, 0x10 -/* 80382A88 0037E6E8 38 81 00 08 */ addi r4, r1, 8 -/* 80382A8C 0037E6EC 38 A5 01 24 */ addi r5, r5, 0x124 -/* 80382A90 0037E6F0 4B FE 01 B9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 80382A94 0037E6F4 3B BD 01 2C */ addi r29, r29, 0x12c -/* 80382A98 0037E6F8 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80382A9C: -/* 80382A9C 0037E6FC 7C 1C F0 40 */ cmplw r28, r30 -/* 80382AA0 0037E700 41 80 FF C8 */ blt lbl_80382A68 -lbl_80382AA4: -/* 80382AA4 0037E704 38 00 00 01 */ li r0, 1 -/* 80382AA8 0037E708 98 1B 00 00 */ stb r0, 0(r27) -lbl_80382AAC: -/* 80382AAC 0037E70C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80382AB0 0037E710 4B E4 46 C5 */ bl _restgpr_27 -/* 80382AB4 0037E714 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80382AB8 0037E718 7C 08 03 A6 */ mtlr r0 -/* 80382ABC 0037E71C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80382AC0 0037E720 4E 80 00 20 */ blr - -.global func_80382AC4 -func_80382AC4: -/* 80382AC4 0037E724 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80382AC8 0037E728 7C 08 02 A6 */ mflr r0 -/* 80382ACC 0037E72C 90 01 00 44 */ stw r0, 0x44(r1) -/* 80382AD0 0037E730 39 61 00 40 */ addi r11, r1, 0x40 -/* 80382AD4 0037E734 4B E4 46 45 */ bl _savegpr_23 -/* 80382AD8 0037E738 7C 7F 1B 78 */ mr r31, r3 -/* 80382ADC 0037E73C 7C 97 23 78 */ mr r23, r4 -/* 80382AE0 0037E740 7C B8 2B 78 */ mr r24, r5 -/* 80382AE4 0037E744 7C D9 33 78 */ mr r25, r6 -/* 80382AE8 0037E748 7C FA 3B 78 */ mr r26, r7 -/* 80382AEC 0037E74C 7D 1B 43 78 */ mr r27, r8 -/* 80382AF0 0037E750 4B EE BC 6D */ bl OSDisableInterrupts -/* 80382AF4 0037E754 80 1F 00 10 */ lwz r0, 0x10(r31) -/* 80382AF8 0037E758 7C 7E 1B 78 */ mr r30, r3 -/* 80382AFC 0037E75C 2C 00 00 00 */ cmpwi r0, 0 -/* 80382B00 0037E760 40 82 00 7C */ bne lbl_80382B7C -/* 80382B04 0037E764 3B A0 00 00 */ li r29, 0 -/* 80382B08 0037E768 40 82 00 5C */ bne lbl_80382B64 -/* 80382B0C 0037E76C 80 7F 00 08 */ lwz r3, 8(r31) -/* 80382B10 0037E770 80 03 FF 90 */ lwz r0, -0x70(r3) -/* 80382B14 0037E774 3B 83 FE DC */ addi r28, r3, -292 -/* 80382B18 0037E778 7C 00 C8 00 */ cmpw r0, r25 -/* 80382B1C 0037E77C 40 81 00 0C */ ble lbl_80382B28 -/* 80382B20 0037E780 3B A0 00 00 */ li r29, 0 -/* 80382B24 0037E784 48 00 00 40 */ b lbl_80382B64 -lbl_80382B28: -/* 80382B28 0037E788 80 9C 00 9C */ lwz r4, 0x9c(r28) -/* 80382B2C 0037E78C 7F 83 E3 78 */ mr r3, r28 -/* 80382B30 0037E790 80 1C 00 A0 */ lwz r0, 0xa0(r28) -/* 80382B34 0037E794 7F A4 01 D6 */ mullw r29, r4, r0 -/* 80382B38 0037E798 4B FF E4 39 */ bl Stop__Q44nw4r3snd6detail5VoiceFv -/* 80382B3C 0037E79C 7F 83 E3 78 */ mr r3, r28 -/* 80382B40 0037E7A0 4B FF E0 95 */ bl Free__Q44nw4r3snd6detail5VoiceFv -/* 80382B44 0037E7A4 81 9C 00 A4 */ lwz r12, 0xa4(r28) -/* 80382B48 0037E7A8 2C 0C 00 00 */ cmpwi r12, 0 -/* 80382B4C 0037E7AC 41 82 00 18 */ beq lbl_80382B64 -/* 80382B50 0037E7B0 7F 83 E3 78 */ mr r3, r28 -/* 80382B54 0037E7B4 80 BC 00 A8 */ lwz r5, 0xa8(r28) -/* 80382B58 0037E7B8 38 80 00 02 */ li r4, 2 -/* 80382B5C 0037E7BC 7D 89 03 A6 */ mtctr r12 -/* 80382B60 0037E7C0 4E 80 04 21 */ bctrl -lbl_80382B64: -/* 80382B64 0037E7C4 2C 1D 00 00 */ cmpwi r29, 0 -/* 80382B68 0037E7C8 40 82 00 14 */ bne lbl_80382B7C -/* 80382B6C 0037E7CC 7F C3 F3 78 */ mr r3, r30 -/* 80382B70 0037E7D0 4B EE BC 15 */ bl OSRestoreInterrupts -/* 80382B74 0037E7D4 38 60 00 00 */ li r3, 0 -/* 80382B78 0037E7D8 48 00 00 F0 */ b lbl_80382C68 -lbl_80382B7C: -/* 80382B7C 0037E7DC 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 80382B80 0037E7E0 7E E4 BB 78 */ mr r4, r23 -/* 80382B84 0037E7E4 7F 05 C3 78 */ mr r5, r24 -/* 80382B88 0037E7E8 7F 26 CB 78 */ mr r6, r25 -/* 80382B8C 0037E7EC 3B 83 FE DC */ addi r28, r3, -292 -/* 80382B90 0037E7F0 7F 47 D3 78 */ mr r7, r26 -/* 80382B94 0037E7F4 7F 83 E3 78 */ mr r3, r28 -/* 80382B98 0037E7F8 7F 68 DB 78 */ mr r8, r27 -/* 80382B9C 0037E7FC 4B FF DD FD */ bl Acquire__Q44nw4r3snd6detail5VoiceFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv -/* 80382BA0 0037E800 2C 03 00 00 */ cmpwi r3, 0 -/* 80382BA4 0037E804 40 82 00 14 */ bne lbl_80382BB8 -/* 80382BA8 0037E808 7F C3 F3 78 */ mr r3, r30 -/* 80382BAC 0037E80C 4B EE BB D9 */ bl OSRestoreInterrupts -/* 80382BB0 0037E810 38 60 00 00 */ li r3, 0 -/* 80382BB4 0037E814 48 00 00 B4 */ b lbl_80382C68 -lbl_80382BB8: -/* 80382BB8 0037E818 57 20 06 3E */ clrlwi r0, r25, 0x18 -/* 80382BBC 0037E81C 90 1C 00 B4 */ stw r0, 0xb4(r28) -/* 80382BC0 0037E820 4B EE BB 9D */ bl OSDisableInterrupts -/* 80382BC4 0037E824 3B 7C 01 24 */ addi r27, r28, 0x124 -/* 80382BC8 0037E828 7C 7D 1B 78 */ mr r29, r3 -/* 80382BCC 0037E82C 7F 64 DB 78 */ mr r4, r27 -/* 80382BD0 0037E830 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80382BD4 0037E834 4B FE 00 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 80382BD8 0037E838 80 BF 00 08 */ lwz r5, 8(r31) -/* 80382BDC 0037E83C 38 7F 00 08 */ addi r3, r31, 8 -/* 80382BE0 0037E840 48 00 00 1C */ b lbl_80382BFC -lbl_80382BE4: -/* 80382BE4 0037E844 80 C3 00 04 */ lwz r6, 4(r3) -/* 80382BE8 0037E848 80 1C 00 B4 */ lwz r0, 0xb4(r28) -/* 80382BEC 0037E84C 80 86 FF 90 */ lwz r4, -0x70(r6) -/* 80382BF0 0037E850 7C 04 00 00 */ cmpw r4, r0 -/* 80382BF4 0037E854 40 81 00 10 */ ble lbl_80382C04 -/* 80382BF8 0037E858 7C C3 33 78 */ mr r3, r6 -lbl_80382BFC: -/* 80382BFC 0037E85C 7C 03 28 40 */ cmplw r3, r5 -/* 80382C00 0037E860 40 82 FF E4 */ bne lbl_80382BE4 -lbl_80382C04: -/* 80382C04 0037E864 90 61 00 08 */ stw r3, 8(r1) -/* 80382C08 0037E868 7F 65 DB 78 */ mr r5, r27 -/* 80382C0C 0037E86C 38 7F 00 04 */ addi r3, r31, 4 -/* 80382C10 0037E870 38 81 00 08 */ addi r4, r1, 8 -/* 80382C14 0037E874 4B FE 00 35 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 80382C18 0037E878 7F A3 EB 78 */ mr r3, r29 -/* 80382C1C 0037E87C 4B EE BB 69 */ bl OSRestoreInterrupts -/* 80382C20 0037E880 3B BF 00 08 */ addi r29, r31, 8 -/* 80382C24 0037E884 48 00 00 24 */ b lbl_80382C48 -lbl_80382C28: -/* 80382C28 0037E888 80 1B FF 90 */ lwz r0, -0x70(r27) -/* 80382C2C 0037E88C 38 7B FE DC */ addi r3, r27, -292 -/* 80382C30 0037E890 2C 00 00 01 */ cmpwi r0, 1 -/* 80382C34 0037E894 40 81 00 1C */ ble lbl_80382C50 -/* 80382C38 0037E898 2C 00 00 FF */ cmpwi r0, 0xff -/* 80382C3C 0037E89C 41 82 00 08 */ beq lbl_80382C44 -/* 80382C40 0037E8A0 4B FF E8 C1 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv -lbl_80382C44: -/* 80382C44 0037E8A4 83 7B 00 00 */ lwz r27, 0(r27) -lbl_80382C48: -/* 80382C48 0037E8A8 7C 1B E8 40 */ cmplw r27, r29 -/* 80382C4C 0037E8AC 40 82 FF DC */ bne lbl_80382C28 -lbl_80382C50: -/* 80382C50 0037E8B0 4B FE C6 09 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv -/* 80382C54 0037E8B4 7F 84 E3 78 */ mr r4, r28 -/* 80382C58 0037E8B8 4B FE C6 FD */ bl __dt__Q34nw4r2ut47LinkList$0Q44nw4r3snd6detail15DisposeCallback$40$1Fv -/* 80382C5C 0037E8BC 7F C3 F3 78 */ mr r3, r30 -/* 80382C60 0037E8C0 4B EE BB 25 */ bl OSRestoreInterrupts -/* 80382C64 0037E8C4 7F 83 E3 78 */ mr r3, r28 -lbl_80382C68: -/* 80382C68 0037E8C8 39 61 00 40 */ addi r11, r1, 0x40 -/* 80382C6C 0037E8CC 4B E4 44 F9 */ bl _restgpr_23 -/* 80382C70 0037E8D0 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80382C74 0037E8D4 7C 08 03 A6 */ mtlr r0 -/* 80382C78 0037E8D8 38 21 00 40 */ addi r1, r1, 0x40 -/* 80382C7C 0037E8DC 4E 80 00 20 */ blr - -.global func_80382C80 -func_80382C80: -/* 80382C80 0037E8E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80382C84 0037E8E4 7C 08 02 A6 */ mflr r0 -/* 80382C88 0037E8E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80382C8C 0037E8EC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80382C90 0037E8F0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80382C94 0037E8F4 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80382C98 0037E8F8 7C 9D 23 78 */ mr r29, r4 -/* 80382C9C 0037E8FC 93 81 00 10 */ stw r28, 0x10(r1) -/* 80382CA0 0037E900 7C 7C 1B 78 */ mr r28, r3 -/* 80382CA4 0037E904 4B EE BA B9 */ bl OSDisableInterrupts -/* 80382CA8 0037E908 7C 7F 1B 78 */ mr r31, r3 -/* 80382CAC 0037E90C 4B FE C5 AD */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv -/* 80382CB0 0037E910 7F A4 EB 78 */ mr r4, r29 -/* 80382CB4 0037E914 4B FE C6 F9 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv -/* 80382CB8 0037E918 4B EE BA A5 */ bl OSDisableInterrupts -/* 80382CBC 0037E91C 3B BD 01 24 */ addi r29, r29, 0x124 -/* 80382CC0 0037E920 7C 7E 1B 78 */ mr r30, r3 -/* 80382CC4 0037E924 7F A4 EB 78 */ mr r4, r29 -/* 80382CC8 0037E928 38 7C 00 04 */ addi r3, r28, 4 -/* 80382CCC 0037E92C 4B FD FF A9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 80382CD0 0037E930 38 1C 00 14 */ addi r0, r28, 0x14 -/* 80382CD4 0037E934 7F A5 EB 78 */ mr r5, r29 -/* 80382CD8 0037E938 90 01 00 08 */ stw r0, 8(r1) -/* 80382CDC 0037E93C 38 7C 00 10 */ addi r3, r28, 0x10 -/* 80382CE0 0037E940 38 81 00 08 */ addi r4, r1, 8 -/* 80382CE4 0037E944 4B FD FF 65 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 80382CE8 0037E948 7F C3 F3 78 */ mr r3, r30 -/* 80382CEC 0037E94C 4B EE BA 99 */ bl OSRestoreInterrupts -/* 80382CF0 0037E950 7F E3 FB 78 */ mr r3, r31 -/* 80382CF4 0037E954 4B EE BA 91 */ bl OSRestoreInterrupts -/* 80382CF8 0037E958 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80382CFC 0037E95C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80382D00 0037E960 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80382D04 0037E964 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80382D08 0037E968 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80382D0C 0037E96C 7C 08 03 A6 */ mtlr r0 -/* 80382D10 0037E970 38 21 00 20 */ addi r1, r1, 0x20 -/* 80382D14 0037E974 4E 80 00 20 */ blr - -.global func_80382D18 -func_80382D18: -/* 80382D18 0037E978 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80382D1C 0037E97C 7C 08 02 A6 */ mflr r0 -/* 80382D20 0037E980 90 01 00 24 */ stw r0, 0x24(r1) -/* 80382D24 0037E984 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80382D28 0037E988 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80382D2C 0037E98C 3B C3 00 08 */ addi r30, r3, 8 -/* 80382D30 0037E990 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80382D34 0037E994 7C 7D 1B 78 */ mr r29, r3 -/* 80382D38 0037E998 83 E3 00 08 */ lwz r31, 8(r3) -/* 80382D3C 0037E99C 48 00 00 14 */ b lbl_80382D50 -lbl_80382D40: -/* 80382D40 0037E9A0 7F E3 FB 78 */ mr r3, r31 -/* 80382D44 0037E9A4 83 FF 00 00 */ lwz r31, 0(r31) -/* 80382D48 0037E9A8 38 63 FE DC */ addi r3, r3, -292 -/* 80382D4C 0037E9AC 4B FF D6 25 */ bl StopFinished__Q44nw4r3snd6detail5VoiceFv -lbl_80382D50: -/* 80382D50 0037E9B0 7C 1F F0 40 */ cmplw r31, r30 -/* 80382D54 0037E9B4 40 82 FF EC */ bne lbl_80382D40 -/* 80382D58 0037E9B8 83 DD 00 08 */ lwz r30, 8(r29) -/* 80382D5C 0037E9BC 3B FD 00 08 */ addi r31, r29, 8 -/* 80382D60 0037E9C0 48 00 00 14 */ b lbl_80382D74 -lbl_80382D64: -/* 80382D64 0037E9C4 7F C3 F3 78 */ mr r3, r30 -/* 80382D68 0037E9C8 83 DE 00 00 */ lwz r30, 0(r30) -/* 80382D6C 0037E9CC 38 63 FE DC */ addi r3, r3, -292 -/* 80382D70 0037E9D0 4B FF D6 9D */ bl Calc__Q44nw4r3snd6detail5VoiceFv -lbl_80382D74: -/* 80382D74 0037E9D4 7C 1E F8 40 */ cmplw r30, r31 -/* 80382D78 0037E9D8 40 82 FF EC */ bne lbl_80382D64 -/* 80382D7C 0037E9DC 4B EE B9 E1 */ bl OSDisableInterrupts -/* 80382D80 0037E9E0 87 FD 00 08 */ lwzu r31, 8(r29) -/* 80382D84 0037E9E4 7C 7E 1B 78 */ mr r30, r3 -/* 80382D88 0037E9E8 48 00 00 14 */ b lbl_80382D9C -lbl_80382D8C: -/* 80382D8C 0037E9EC 7F E3 FB 78 */ mr r3, r31 -/* 80382D90 0037E9F0 83 FF 00 00 */ lwz r31, 0(r31) -/* 80382D94 0037E9F4 38 63 FE DC */ addi r3, r3, -292 -/* 80382D98 0037E9F8 4B FF D8 C5 */ bl Update__Q44nw4r3snd6detail5VoiceFv -lbl_80382D9C: -/* 80382D9C 0037E9FC 7C 1F E8 40 */ cmplw r31, r29 -/* 80382DA0 0037EA00 40 82 FF EC */ bne lbl_80382D8C -/* 80382DA4 0037EA04 7F C3 F3 78 */ mr r3, r30 -/* 80382DA8 0037EA08 4B EE B9 DD */ bl OSRestoreInterrupts -/* 80382DAC 0037EA0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80382DB0 0037EA10 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80382DB4 0037EA14 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80382DB8 0037EA18 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80382DBC 0037EA1C 7C 08 03 A6 */ mtlr r0 -/* 80382DC0 0037EA20 38 21 00 20 */ addi r1, r1, 0x20 -/* 80382DC4 0037EA24 4E 80 00 20 */ blr - -.global func_80382DC8 -func_80382DC8: -/* 80382DC8 0037EA28 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80382DCC 0037EA2C 7C 08 02 A6 */ mflr r0 -/* 80382DD0 0037EA30 90 01 00 24 */ stw r0, 0x24(r1) -/* 80382DD4 0037EA34 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80382DD8 0037EA38 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80382DDC 0037EA3C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80382DE0 0037EA40 7C 7D 1B 78 */ mr r29, r3 -/* 80382DE4 0037EA44 4B EE B9 79 */ bl OSDisableInterrupts -/* 80382DE8 0037EA48 87 DD 00 08 */ lwzu r30, 8(r29) -/* 80382DEC 0037EA4C 7C 7F 1B 78 */ mr r31, r3 -/* 80382DF0 0037EA50 48 00 00 14 */ b lbl_80382E04 -lbl_80382DF4: -/* 80382DF4 0037EA54 7F C3 F3 78 */ mr r3, r30 -/* 80382DF8 0037EA58 83 DE 00 00 */ lwz r30, 0(r30) -/* 80382DFC 0037EA5C 38 63 FE DC */ addi r3, r3, -292 -/* 80382E00 0037EA60 4B FF EC 6D */ bl ResetDelta__Q44nw4r3snd6detail5VoiceFv -lbl_80382E04: -/* 80382E04 0037EA64 7C 1E E8 40 */ cmplw r30, r29 -/* 80382E08 0037EA68 40 82 FF EC */ bne lbl_80382DF4 -/* 80382E0C 0037EA6C 7F E3 FB 78 */ mr r3, r31 -/* 80382E10 0037EA70 4B EE B9 75 */ bl OSRestoreInterrupts -/* 80382E14 0037EA74 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80382E18 0037EA78 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80382E1C 0037EA7C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80382E20 0037EA80 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80382E24 0037EA84 7C 08 03 A6 */ mtlr r0 -/* 80382E28 0037EA88 38 21 00 20 */ addi r1, r1, 0x20 -/* 80382E2C 0037EA8C 4E 80 00 20 */ blr - -.global func_80382E30 -func_80382E30: -/* 80382E30 0037EA90 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80382E34 0037EA94 7C 08 02 A6 */ mflr r0 -/* 80382E38 0037EA98 90 01 00 34 */ stw r0, 0x34(r1) -/* 80382E3C 0037EA9C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80382E40 0037EAA0 4B E4 42 E9 */ bl _savegpr_27 -/* 80382E44 0037EAA4 7C 7B 1B 78 */ mr r27, r3 -/* 80382E48 0037EAA8 7C 9C 23 78 */ mr r28, r4 -/* 80382E4C 0037EAAC 4B EE B9 11 */ bl OSDisableInterrupts -/* 80382E50 0037EAB0 7C 7F 1B 78 */ mr r31, r3 -/* 80382E54 0037EAB4 4B EE B9 09 */ bl OSDisableInterrupts -/* 80382E58 0037EAB8 3B BC 01 24 */ addi r29, r28, 0x124 -/* 80382E5C 0037EABC 7C 7E 1B 78 */ mr r30, r3 -/* 80382E60 0037EAC0 7F A4 EB 78 */ mr r4, r29 -/* 80382E64 0037EAC4 38 7B 00 04 */ addi r3, r27, 4 -/* 80382E68 0037EAC8 4B FD FE 0D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 80382E6C 0037EACC 38 1B 00 14 */ addi r0, r27, 0x14 -/* 80382E70 0037EAD0 7F A5 EB 78 */ mr r5, r29 -/* 80382E74 0037EAD4 90 01 00 0C */ stw r0, 0xc(r1) -/* 80382E78 0037EAD8 38 7B 00 10 */ addi r3, r27, 0x10 -/* 80382E7C 0037EADC 38 81 00 0C */ addi r4, r1, 0xc -/* 80382E80 0037EAE0 4B FD FD C9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 80382E84 0037EAE4 7F C3 F3 78 */ mr r3, r30 -/* 80382E88 0037EAE8 4B EE B8 FD */ bl OSRestoreInterrupts -/* 80382E8C 0037EAEC 4B EE B8 D1 */ bl OSDisableInterrupts -/* 80382E90 0037EAF0 7C 7E 1B 78 */ mr r30, r3 -/* 80382E94 0037EAF4 7F A4 EB 78 */ mr r4, r29 -/* 80382E98 0037EAF8 38 7B 00 10 */ addi r3, r27, 0x10 -/* 80382E9C 0037EAFC 4B FD FD D9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 80382EA0 0037EB00 80 BB 00 08 */ lwz r5, 8(r27) -/* 80382EA4 0037EB04 38 7B 00 08 */ addi r3, r27, 8 -/* 80382EA8 0037EB08 48 00 00 1C */ b lbl_80382EC4 -lbl_80382EAC: -/* 80382EAC 0037EB0C 80 C3 00 04 */ lwz r6, 4(r3) -/* 80382EB0 0037EB10 80 1C 00 B4 */ lwz r0, 0xb4(r28) -/* 80382EB4 0037EB14 80 86 FF 90 */ lwz r4, -0x70(r6) -/* 80382EB8 0037EB18 7C 04 00 00 */ cmpw r4, r0 -/* 80382EBC 0037EB1C 40 81 00 10 */ ble lbl_80382ECC -/* 80382EC0 0037EB20 7C C3 33 78 */ mr r3, r6 -lbl_80382EC4: -/* 80382EC4 0037EB24 7C 03 28 40 */ cmplw r3, r5 -/* 80382EC8 0037EB28 40 82 FF E4 */ bne lbl_80382EAC -lbl_80382ECC: -/* 80382ECC 0037EB2C 90 61 00 08 */ stw r3, 8(r1) -/* 80382ED0 0037EB30 7F A5 EB 78 */ mr r5, r29 -/* 80382ED4 0037EB34 38 7B 00 04 */ addi r3, r27, 4 -/* 80382ED8 0037EB38 38 81 00 08 */ addi r4, r1, 8 -/* 80382EDC 0037EB3C 4B FD FD 6D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 80382EE0 0037EB40 7F C3 F3 78 */ mr r3, r30 -/* 80382EE4 0037EB44 4B EE B8 A1 */ bl OSRestoreInterrupts -/* 80382EE8 0037EB48 3B DB 00 08 */ addi r30, r27, 8 -/* 80382EEC 0037EB4C 48 00 00 24 */ b lbl_80382F10 -lbl_80382EF0: -/* 80382EF0 0037EB50 80 1D FF 90 */ lwz r0, -0x70(r29) -/* 80382EF4 0037EB54 38 7D FE DC */ addi r3, r29, -292 -/* 80382EF8 0037EB58 2C 00 00 01 */ cmpwi r0, 1 -/* 80382EFC 0037EB5C 40 81 00 1C */ ble lbl_80382F18 -/* 80382F00 0037EB60 2C 00 00 FF */ cmpwi r0, 0xff -/* 80382F04 0037EB64 41 82 00 08 */ beq lbl_80382F0C -/* 80382F08 0037EB68 4B FF E5 F9 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv -lbl_80382F0C: -/* 80382F0C 0037EB6C 83 BD 00 00 */ lwz r29, 0(r29) -lbl_80382F10: -/* 80382F10 0037EB70 7C 1D F0 40 */ cmplw r29, r30 -/* 80382F14 0037EB74 40 82 FF DC */ bne lbl_80382EF0 -lbl_80382F18: -/* 80382F18 0037EB78 7F E3 FB 78 */ mr r3, r31 -/* 80382F1C 0037EB7C 4B EE B8 69 */ bl OSRestoreInterrupts -/* 80382F20 0037EB80 39 61 00 30 */ addi r11, r1, 0x30 -/* 80382F24 0037EB84 4B E4 42 51 */ bl _restgpr_27 -/* 80382F28 0037EB88 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80382F2C 0037EB8C 7C 08 03 A6 */ mtlr r0 -/* 80382F30 0037EB90 38 21 00 30 */ addi r1, r1, 0x30 -/* 80382F34 0037EB94 4E 80 00 20 */ blr - -.global func_80382F38 -func_80382F38: -/* 80382F38 0037EB98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80382F3C 0037EB9C 7C 08 02 A6 */ mflr r0 -/* 80382F40 0037EBA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80382F44 0037EBA4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80382F48 0037EBA8 7C 9F 23 78 */ mr r31, r4 -/* 80382F4C 0037EBAC 93 C1 00 08 */ stw r30, 8(r1) -/* 80382F50 0037EBB0 7C 7E 1B 78 */ mr r30, r3 -/* 80382F54 0037EBB4 4B EE B8 09 */ bl OSDisableInterrupts -/* 80382F58 0037EBB8 80 9E 00 08 */ lwz r4, 8(r30) -/* 80382F5C 0037EBBC 38 1E 00 08 */ addi r0, r30, 8 -/* 80382F60 0037EBC0 48 00 00 24 */ b lbl_80382F84 -lbl_80382F64: -/* 80382F64 0037EBC4 7C 86 23 78 */ mr r6, r4 -/* 80382F68 0037EBC8 80 84 00 00 */ lwz r4, 0(r4) -/* 80382F6C 0037EBCC 88 A6 FF 88 */ lbz r5, -0x78(r6) -/* 80382F70 0037EBD0 2C 05 00 00 */ cmpwi r5, 0 -/* 80382F74 0037EBD4 41 82 00 10 */ beq lbl_80382F84 -/* 80382F78 0037EBD8 88 A6 FF 8D */ lbz r5, -0x73(r6) -/* 80382F7C 0037EBDC 7C A5 FB 78 */ or r5, r5, r31 -/* 80382F80 0037EBE0 98 A6 FF 8D */ stb r5, -0x73(r6) -lbl_80382F84: -/* 80382F84 0037EBE4 7C 04 00 40 */ cmplw r4, r0 -/* 80382F88 0037EBE8 40 82 FF DC */ bne lbl_80382F64 -/* 80382F8C 0037EBEC 4B EE B7 F9 */ bl OSRestoreInterrupts -/* 80382F90 0037EBF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80382F94 0037EBF4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80382F98 0037EBF8 83 C1 00 08 */ lwz r30, 8(r1) -/* 80382F9C 0037EBFC 7C 08 03 A6 */ mtlr r0 -/* 80382FA0 0037EC00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80382FA4 0037EC04 4E 80 00 20 */ blr - -.global func_80382FA8 -func_80382FA8: -/* 80382FA8 0037EC08 20 A3 0B FF */ subfic r5, r3, 0xbff -/* 80382FAC 0037EC0C 38 00 0C 00 */ li r0, 0xc00 -/* 80382FB0 0037EC10 7C A5 03 96 */ divwu r5, r5, r0 -/* 80382FB4 0037EC14 2C 03 00 00 */ cmpwi r3, 0 -/* 80382FB8 0037EC18 C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2) -/* 80382FBC 0037EC1C 38 C0 00 00 */ li r6, 0 -/* 80382FC0 0037EC20 40 80 00 34 */ bge lbl_80382FF4 -/* 80382FC4 0037EC24 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f -/* 80382FC8 0037EC28 1C 05 0C 00 */ mulli r0, r5, 0xc00 -/* 80382FCC 0037EC2C 7C 89 03 A6 */ mtctr r4 -/* 80382FD0 0037EC30 41 82 00 14 */ beq lbl_80382FE4 -lbl_80382FD4: -/* 80382FD4 0037EC34 38 C6 FF F8 */ addi r6, r6, -8 -/* 80382FD8 0037EC38 42 00 FF FC */ bdnz lbl_80382FD4 -/* 80382FDC 0037EC3C 70 A5 00 07 */ andi. r5, r5, 7 -/* 80382FE0 0037EC40 41 82 00 10 */ beq lbl_80382FF0 -lbl_80382FE4: -/* 80382FE4 0037EC44 7C A9 03 A6 */ mtctr r5 -lbl_80382FE8: -/* 80382FE8 0037EC48 38 C6 FF FF */ addi r6, r6, -1 -/* 80382FEC 0037EC4C 42 00 FF FC */ bdnz lbl_80382FE8 -lbl_80382FF0: -/* 80382FF0 0037EC50 7C 63 02 14 */ add r3, r3, r0 -lbl_80382FF4: -/* 80382FF4 0037EC54 38 00 0C 00 */ li r0, 0xc00 -/* 80382FF8 0037EC58 2C 03 0C 00 */ cmpwi r3, 0xc00 -/* 80382FFC 0037EC5C 7C A3 03 96 */ divwu r5, r3, r0 -/* 80383000 0037EC60 41 80 00 34 */ blt lbl_80383034 -/* 80383004 0037EC64 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f -/* 80383008 0037EC68 1C 05 F4 00 */ mulli r0, r5, -3072 -/* 8038300C 0037EC6C 7C 89 03 A6 */ mtctr r4 -/* 80383010 0037EC70 41 82 00 14 */ beq lbl_80383024 -lbl_80383014: -/* 80383014 0037EC74 38 C6 00 08 */ addi r6, r6, 8 -/* 80383018 0037EC78 42 00 FF FC */ bdnz lbl_80383014 -/* 8038301C 0037EC7C 70 A5 00 07 */ andi. r5, r5, 7 -/* 80383020 0037EC80 41 82 00 10 */ beq lbl_80383030 -lbl_80383024: -/* 80383024 0037EC84 7C A9 03 A6 */ mtctr r5 -lbl_80383028: -/* 80383028 0037EC88 38 C6 00 01 */ addi r6, r6, 1 -/* 8038302C 0037EC8C 42 00 FF FC */ bdnz lbl_80383028 -lbl_80383030: -/* 80383030 0037EC90 7C 63 02 14 */ add r3, r3, r0 -lbl_80383034: -/* 80383034 0037EC94 2C 06 00 00 */ cmpwi r6, 0 -/* 80383038 0037EC98 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2) -/* 8038303C 0037EC9C 7C C5 33 78 */ mr r5, r6 -/* 80383040 0037ECA0 40 81 00 50 */ ble lbl_80383090 -/* 80383044 0037ECA4 54 C4 E8 FF */ rlwinm. r4, r6, 0x1d, 3, 0x1f -/* 80383048 0037ECA8 7C 06 00 D0 */ neg r0, r6 -/* 8038304C 0037ECAC 7C 89 03 A6 */ mtctr r4 -/* 80383050 0037ECB0 41 82 00 30 */ beq lbl_80383080 -lbl_80383054: -/* 80383054 0037ECB4 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383058 0037ECB8 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8038305C 0037ECBC EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383060 0037ECC0 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383064 0037ECC4 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383068 0037ECC8 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8038306C 0037ECCC EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383070 0037ECD0 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383074 0037ECD4 42 00 FF E0 */ bdnz lbl_80383054 -/* 80383078 0037ECD8 70 C5 00 07 */ andi. r5, r6, 7 -/* 8038307C 0037ECDC 41 82 00 10 */ beq lbl_8038308C -lbl_80383080: -/* 80383080 0037ECE0 7C A9 03 A6 */ mtctr r5 -lbl_80383084: -/* 80383084 0037ECE4 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383088 0037ECE8 42 00 FF FC */ bdnz lbl_80383084 -lbl_8038308C: -/* 8038308C 0037ECEC 7C C6 02 14 */ add r6, r6, r0 -lbl_80383090: -/* 80383090 0037ECF0 2C 06 00 00 */ cmpwi r6, 0 -/* 80383094 0037ECF4 C0 02 A7 B0 */ lfs f0, lbl_80642DB0-_SDA2_BASE_(r2) -/* 80383098 0037ECF8 7C 86 00 D0 */ neg r4, r6 -/* 8038309C 0037ECFC 40 80 00 48 */ bge lbl_803830E4 -/* 803830A0 0037ED00 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f -/* 803830A4 0037ED04 7C 09 03 A6 */ mtctr r0 -/* 803830A8 0037ED08 41 82 00 30 */ beq lbl_803830D8 -lbl_803830AC: -/* 803830AC 0037ED0C EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830B0 0037ED10 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830B4 0037ED14 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830B8 0037ED18 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830BC 0037ED1C EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830C0 0037ED20 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830C4 0037ED24 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830C8 0037ED28 EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830CC 0037ED2C 42 00 FF E0 */ bdnz lbl_803830AC -/* 803830D0 0037ED30 70 84 00 07 */ andi. r4, r4, 7 -/* 803830D4 0037ED34 41 82 00 10 */ beq lbl_803830E4 -lbl_803830D8: -/* 803830D8 0037ED38 7C 89 03 A6 */ mtctr r4 -lbl_803830DC: -/* 803830DC 0037ED3C EC 21 00 32 */ fmuls f1, f1, f0 -/* 803830E0 0037ED40 42 00 FF FC */ bdnz lbl_803830DC -lbl_803830E4: -/* 803830E4 0037ED44 7C 64 46 70 */ srawi r4, r3, 8 -/* 803830E8 0037ED48 54 60 C0 0E */ slwi r0, r3, 0x18 -/* 803830EC 0037ED4C 54 63 0F FE */ srwi r3, r3, 0x1f -/* 803830F0 0037ED50 7C 03 00 50 */ subf r0, r3, r0 -/* 803830F4 0037ED54 7C A4 01 95 */ addze. r5, r4 -/* 803830F8 0037ED58 54 00 40 3E */ rotlwi r0, r0, 8 -/* 803830FC 0037ED5C 7C 60 1A 14 */ add r3, r0, r3 -/* 80383100 0037ED60 41 82 00 18 */ beq lbl_80383118 -/* 80383104 0037ED64 3C 80 80 40 */ lis r4, lbl_80402948@ha -/* 80383108 0037ED68 54 A0 10 3A */ slwi r0, r5, 2 -/* 8038310C 0037ED6C 38 84 29 48 */ addi r4, r4, lbl_80402948@l -/* 80383110 0037ED70 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80383114 0037ED74 EC 21 00 32 */ fmuls f1, f1, f0 -lbl_80383118: -/* 80383118 0037ED78 2C 03 00 00 */ cmpwi r3, 0 -/* 8038311C 0037ED7C 4D 82 00 20 */ beqlr -/* 80383120 0037ED80 3C 80 80 40 */ lis r4, lbl_80402978@ha -/* 80383124 0037ED84 54 60 10 3A */ slwi r0, r3, 2 -/* 80383128 0037ED88 38 84 29 78 */ addi r4, r4, lbl_80402978@l -/* 8038312C 0037ED8C 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80383130 0037ED90 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80383134 0037ED94 4E 80 00 20 */ blr - -.global func_80383138 -func_80383138: -/* 80383138 0037ED98 C0 42 A7 B4 */ lfs f2, lbl_80642DB4-_SDA2_BASE_(r2) -/* 8038313C 0037ED9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80383140 0037EDA0 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80383144 0037EDA4 40 81 00 08 */ ble lbl_8038314C -/* 80383148 0037EDA8 48 00 00 18 */ b lbl_80383160 -lbl_8038314C: -/* 8038314C 0037EDAC C0 42 A7 B8 */ lfs f2, lbl_80642DB8-_SDA2_BASE_(r2) -/* 80383150 0037EDB0 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80383154 0037EDB4 40 80 00 08 */ bge lbl_8038315C -/* 80383158 0037EDB8 48 00 00 08 */ b lbl_80383160 -lbl_8038315C: -/* 8038315C 0037EDBC FC 40 08 90 */ fmr f2, f1 -lbl_80383160: -/* 80383160 0037EDC0 C0 02 A7 BC */ lfs f0, lbl_80642DBC-_SDA2_BASE_(r2) -/* 80383164 0037EDC4 3C 60 80 40 */ lis r3, lbl_80402D78@ha -/* 80383168 0037EDC8 38 63 2D 78 */ addi r3, r3, lbl_80402D78@l -/* 8038316C 0037EDCC EC 00 00 B2 */ fmuls f0, f0, f2 -/* 80383170 0037EDD0 FC 00 00 1E */ fctiwz f0, f0 -/* 80383174 0037EDD4 D8 01 00 08 */ stfd f0, 8(r1) -/* 80383178 0037EDD8 80 81 00 0C */ lwz r4, 0xc(r1) -/* 8038317C 0037EDDC 38 04 03 88 */ addi r0, r4, 0x388 -/* 80383180 0037EDE0 54 00 10 3A */ slwi r0, r0, 2 -/* 80383184 0037EDE4 7C 23 04 2E */ lfsx f1, r3, r0 -/* 80383188 0037EDE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8038318C 0037EDEC 4E 80 00 20 */ blr - -.global func_80383190 -func_80383190: -/* 80383190 0037EDF0 C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2) -/* 80383194 0037EDF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80383198 0037EDF8 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 8038319C 0037EDFC 40 81 00 08 */ ble lbl_803831A4 -/* 803831A0 0037EE00 48 00 00 18 */ b lbl_803831B8 -lbl_803831A4: -/* 803831A4 0037EE04 C0 42 A7 C0 */ lfs f2, lbl_80642DC0-_SDA2_BASE_(r2) -/* 803831A8 0037EE08 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 803831AC 0037EE0C 40 80 00 08 */ bge lbl_803831B4 -/* 803831B0 0037EE10 48 00 00 08 */ b lbl_803831B8 -lbl_803831B4: -/* 803831B4 0037EE14 FC 40 08 90 */ fmr f2, f1 -lbl_803831B8: -/* 803831B8 0037EE18 C0 02 A7 A8 */ lfs f0, lbl_80642DA8-_SDA2_BASE_(r2) -/* 803831BC 0037EE1C 3C 80 80 45 */ lis r4, lbl_8044D040@ha -/* 803831C0 0037EE20 80 03 00 00 */ lwz r0, 0(r3) -/* 803831C4 0037EE24 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l -/* 803831C8 0037EE28 EC 20 10 2A */ fadds f1, f0, f2 -/* 803831CC 0037EE2C C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2) -/* 803831D0 0037EE30 54 05 10 3A */ slwi r5, r0, 2 -/* 803831D4 0037EE34 88 03 00 04 */ lbz r0, 4(r3) -/* 803831D8 0037EE38 C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2) -/* 803831DC 0037EE3C EC 21 00 B2 */ fmuls f1, f1, f2 -/* 803831E0 0037EE40 2C 00 00 00 */ cmpwi r0, 0 -/* 803831E4 0037EE44 7C 84 28 2E */ lwzx r4, r4, r5 -/* 803831E8 0037EE48 EC 00 00 72 */ fmuls f0, f0, f1 -/* 803831EC 0037EE4C EC 02 00 2A */ fadds f0, f2, f0 -/* 803831F0 0037EE50 FC 00 00 1E */ fctiwz f0, f0 -/* 803831F4 0037EE54 D8 01 00 08 */ stfd f0, 8(r1) -/* 803831F8 0037EE58 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803831FC 0037EE5C 54 00 10 3A */ slwi r0, r0, 2 -/* 80383200 0037EE60 7C 44 04 2E */ lfsx f2, r4, r0 -/* 80383204 0037EE64 41 82 00 0C */ beq lbl_80383210 -/* 80383208 0037EE68 C0 04 02 00 */ lfs f0, 0x200(r4) -/* 8038320C 0037EE6C EC 42 00 24 */ fdivs f2, f2, f0 -lbl_80383210: -/* 80383210 0037EE70 88 03 00 05 */ lbz r0, 5(r3) -/* 80383214 0037EE74 2C 00 00 00 */ cmpwi r0, 0 -/* 80383218 0037EE78 41 82 00 2C */ beq lbl_80383244 -/* 8038321C 0037EE7C C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2) -/* 80383220 0037EE80 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80383224 0037EE84 40 81 00 08 */ ble lbl_8038322C -/* 80383228 0037EE88 48 00 00 40 */ b lbl_80383268 -lbl_8038322C: -/* 8038322C 0037EE8C C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2) -/* 80383230 0037EE90 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80383234 0037EE94 40 80 00 08 */ bge lbl_8038323C -/* 80383238 0037EE98 48 00 00 30 */ b lbl_80383268 -lbl_8038323C: -/* 8038323C 0037EE9C FC 20 10 90 */ fmr f1, f2 -/* 80383240 0037EEA0 48 00 00 28 */ b lbl_80383268 -lbl_80383244: -/* 80383244 0037EEA4 C0 22 A7 AC */ lfs f1, lbl_80642DAC-_SDA2_BASE_(r2) -/* 80383248 0037EEA8 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 8038324C 0037EEAC 40 81 00 08 */ ble lbl_80383254 -/* 80383250 0037EEB0 48 00 00 18 */ b lbl_80383268 -lbl_80383254: -/* 80383254 0037EEB4 C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2) -/* 80383258 0037EEB8 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 8038325C 0037EEBC 40 80 00 08 */ bge lbl_80383264 -/* 80383260 0037EEC0 48 00 00 08 */ b lbl_80383268 -lbl_80383264: -/* 80383264 0037EEC4 FC 20 10 90 */ fmr f1, f2 -lbl_80383268: -/* 80383268 0037EEC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8038326C 0037EECC 4E 80 00 20 */ blr - -.global func_80383270 -func_80383270: -/* 80383270 0037EED0 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2) -/* 80383274 0037EED4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80383278 0037EED8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8038327C 0037EEDC 40 81 00 08 */ ble lbl_80383284 -/* 80383280 0037EEE0 48 00 00 18 */ b lbl_80383298 -lbl_80383284: -/* 80383284 0037EEE4 C0 02 A7 C8 */ lfs f0, lbl_80642DC8-_SDA2_BASE_(r2) -/* 80383288 0037EEE8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8038328C 0037EEEC 40 80 00 08 */ bge lbl_80383294 -/* 80383290 0037EEF0 48 00 00 08 */ b lbl_80383298 -lbl_80383294: -/* 80383294 0037EEF4 FC 00 08 90 */ fmr f0, f1 -lbl_80383298: -/* 80383298 0037EEF8 C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2) -/* 8038329C 0037EEFC 3C 80 80 45 */ lis r4, lbl_8044D040@ha -/* 803832A0 0037EF00 80 03 00 00 */ lwz r0, 0(r3) -/* 803832A4 0037EF04 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l -/* 803832A8 0037EF08 EC 20 00 B2 */ fmuls f1, f0, f2 -/* 803832AC 0037EF0C C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2) -/* 803832B0 0037EF10 54 00 10 3A */ slwi r0, r0, 2 -/* 803832B4 0037EF14 C0 62 A7 AC */ lfs f3, lbl_80642DAC-_SDA2_BASE_(r2) -/* 803832B8 0037EF18 7C 64 00 2E */ lwzx r3, r4, r0 -/* 803832BC 0037EF1C EC 00 00 72 */ fmuls f0, f0, f1 -/* 803832C0 0037EF20 EC 02 00 2A */ fadds f0, f2, f0 -/* 803832C4 0037EF24 FC 00 00 1E */ fctiwz f0, f0 -/* 803832C8 0037EF28 D8 01 00 08 */ stfd f0, 8(r1) -/* 803832CC 0037EF2C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803832D0 0037EF30 54 00 10 3A */ slwi r0, r0, 2 -/* 803832D4 0037EF34 7C 03 04 2E */ lfsx f0, r3, r0 -/* 803832D8 0037EF38 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 803832DC 0037EF3C 40 81 00 08 */ ble lbl_803832E4 -/* 803832E0 0037EF40 48 00 00 18 */ b lbl_803832F8 -lbl_803832E4: -/* 803832E4 0037EF44 C0 62 A7 C8 */ lfs f3, lbl_80642DC8-_SDA2_BASE_(r2) -/* 803832E8 0037EF48 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 803832EC 0037EF4C 40 80 00 08 */ bge lbl_803832F4 -/* 803832F0 0037EF50 48 00 00 08 */ b lbl_803832F8 -lbl_803832F4: -/* 803832F4 0037EF54 FC 60 00 90 */ fmr f3, f0 -lbl_803832F8: -/* 803832F8 0037EF58 FC 20 18 90 */ fmr f1, f3 -/* 803832FC 0037EF5C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80383300 0037EF60 4E 80 00 20 */ blr - -.global func_80383304 -func_80383304: -/* 80383304 0037EF64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80383308 0037EF68 7C 08 02 A6 */ mflr r0 -/* 8038330C 0037EF6C C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2) -/* 80383310 0037EF70 90 01 00 14 */ stw r0, 0x14(r1) -/* 80383314 0037EF74 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80383318 0037EF78 40 81 00 08 */ ble lbl_80383320 -/* 8038331C 0037EF7C 48 00 00 18 */ b lbl_80383334 -lbl_80383320: -/* 80383320 0037EF80 C0 42 A7 C8 */ lfs f2, lbl_80642DC8-_SDA2_BASE_(r2) -/* 80383324 0037EF84 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80383328 0037EF88 40 80 00 08 */ bge lbl_80383330 -/* 8038332C 0037EF8C 48 00 00 08 */ b lbl_80383334 -lbl_80383330: -/* 80383330 0037EF90 FC 40 08 90 */ fmr f2, f1 -lbl_80383334: -/* 80383334 0037EF94 C8 22 A7 E8 */ lfd f1, lbl_80642DE8-_SDA2_BASE_(r2) -/* 80383338 0037EF98 C8 02 A7 E0 */ lfd f0, lbl_80642DE0-_SDA2_BASE_(r2) -/* 8038333C 0037EF9C FC 42 08 28 */ fsub f2, f2, f1 -/* 80383340 0037EFA0 C8 22 A7 D8 */ lfd f1, lbl_80642DD8-_SDA2_BASE_(r2) -/* 80383344 0037EFA4 FC 40 00 B2 */ fmul f2, f0, f2 -/* 80383348 0037EFA8 4B E5 12 9D */ bl func_801D45E4 -/* 8038334C 0037EFAC C8 02 A7 D0 */ lfd f0, lbl_80642DD0-_SDA2_BASE_(r2) -/* 80383350 0037EFB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80383354 0037EFB4 FC 00 00 72 */ fmul f0, f0, f1 -/* 80383358 0037EFB8 FC 00 00 1E */ fctiwz f0, f0 -/* 8038335C 0037EFBC D8 01 00 08 */ stfd f0, 8(r1) -/* 80383360 0037EFC0 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80383364 0037EFC4 7C 08 03 A6 */ mtlr r0 -/* 80383368 0037EFC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8038336C 0037EFCC 4E 80 00 20 */ blr - -.global func_80383370 -func_80383370: -/* 80383370 0037EFD0 2C 03 00 7F */ cmpwi r3, 0x7f -/* 80383374 0037EFD4 40 81 00 0C */ ble lbl_80383380 -/* 80383378 0037EFD8 38 00 00 7F */ li r0, 0x7f -/* 8038337C 0037EFDC 48 00 00 0C */ b lbl_80383388 -lbl_80383380: -/* 80383380 0037EFE0 7C 60 FE 70 */ srawi r0, r3, 0x1f -/* 80383384 0037EFE4 7C 60 00 78 */ andc r0, r3, r0 -lbl_80383388: -/* 80383388 0037EFE8 1D 20 00 0A */ mulli r9, r0, 0xa -/* 8038338C 0037EFEC 3C 60 80 40 */ lis r3, lbl_80404898@ha -/* 80383390 0037EFF0 38 63 48 98 */ addi r3, r3, lbl_80404898@l -/* 80383394 0037EFF4 7C 03 4A 2E */ lhzx r0, r3, r9 -/* 80383398 0037EFF8 7D 23 4A 14 */ add r9, r3, r9 -/* 8038339C 0037EFFC A0 69 00 02 */ lhz r3, 2(r9) -/* 803833A0 0037F000 B0 04 00 00 */ sth r0, 0(r4) -/* 803833A4 0037F004 A0 09 00 04 */ lhz r0, 4(r9) -/* 803833A8 0037F008 B0 65 00 00 */ sth r3, 0(r5) -/* 803833AC 0037F00C A0 69 00 06 */ lhz r3, 6(r9) -/* 803833B0 0037F010 B0 06 00 00 */ sth r0, 0(r6) -/* 803833B4 0037F014 A0 09 00 08 */ lhz r0, 8(r9) -/* 803833B8 0037F018 B0 67 00 00 */ sth r3, 0(r7) -/* 803833BC 0037F01C B0 08 00 00 */ sth r0, 0(r8) -/* 803833C0 0037F020 4E 80 00 20 */ blr - -.global func_803833C4 -func_803833C4: -/* 803833C4 0037F024 3C 60 00 19 */ lis r3, 0x0019660D@ha -/* 803833C8 0037F028 80 8D 95 38 */ lwz r4, lbl_8063E7F8-_SDA_BASE_(r13) -/* 803833CC 0037F02C 38 03 66 0D */ addi r0, r3, 0x0019660D@l -/* 803833D0 0037F030 7C 64 01 D6 */ mullw r3, r4, r0 -/* 803833D4 0037F034 3C 63 3C 6F */ addis r3, r3, 0x3c6f -/* 803833D8 0037F038 38 03 F3 5F */ addi r0, r3, -3233 -/* 803833DC 0037F03C 90 0D 95 38 */ stw r0, lbl_8063E7F8-_SDA_BASE_(r13) -/* 803833E0 0037F040 54 03 84 3E */ srwi r3, r0, 0x10 -/* 803833E4 0037F044 4E 80 00 20 */ blr - -.global func_803833E8 -func_803833E8: -/* 803833E8 0037F048 2C 03 00 01 */ cmpwi r3, 1 -/* 803833EC 0037F04C 40 82 00 0C */ bne lbl_803833F8 -/* 803833F0 0037F050 7C 64 2A 14 */ add r3, r4, r5 -/* 803833F4 0037F054 4E 80 00 20 */ blr -lbl_803833F8: -/* 803833F8 0037F058 2C 03 00 00 */ cmpwi r3, 0 -/* 803833FC 0037F05C 38 60 00 00 */ li r3, 0 -/* 80383400 0037F060 4C 82 00 20 */ bnelr -/* 80383404 0037F064 7C 83 23 78 */ mr r3, r4 -/* 80383408 0037F068 4E 80 00 20 */ blr - -.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) -/* 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 func_803833E8 -/* 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 func_803833E8 -/* 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 func_803833E8 -/* 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 func_803833E8 -/* 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 func_803833E8 -/* 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 func_8038340C -/* 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 -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) @@ -1830,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 @@ -1852,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 @@ -2545,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 143d645..43dca46 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -157,6 +157,12 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskManager.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskThread.o \ $(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/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 := \ |