From 64faf5012c4fe9a1c58c32028e241fd4fa746180 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Fri, 8 Sep 2023 22:26:01 -0700 Subject: [PATCH] JAUAudioArcInterpreter, JAUAudioArcLoader (#1917) * JAUAudioArcInterpreter * JAUAudioArcLoader OK --- .../__ct__22JAUAudioArcInterpreterFv.s | 8 - .../__dt__22JAUAudioArcInterpreterFv.s | 20 -- .../__ct__17JAUAudioArcLoaderFP10JAUSection.s | 20 -- .../__dt__17JAUAudioArcLoaderFv.s | 26 -- .../beginBNKList__17JAUAudioArcLoaderFUlUl.s | 10 - .../endBNKList__17JAUAudioArcLoaderFv.s | 10 - .../load__17JAUAudioArcLoaderFPCv.s | 9 - ...wDynamicSeqBlock__17JAUAudioArcLoaderFUl.s | 17 -- .../newVoiceBank__17JAUAudioArcLoaderFUlUl.s | 13 - .../readBMS__17JAUAudioArcLoaderFUlPCvUl.s | 12 - ...dBMS_fromArchive__17JAUAudioArcLoaderFUl.s | 12 - .../readBNK__17JAUAudioArcLoaderFUlPCv.s | 13 - .../readBSC__17JAUAudioArcLoaderFPCvUl.s | 10 - .../readBSFT__17JAUAudioArcLoaderFPCv.s | 11 - .../readBSTN__17JAUAudioArcLoaderFPCvUl.s | 11 - .../readBST__17JAUAudioArcLoaderFPCvUl.s | 11 - ...adMaxSeCategory__17JAUAudioArcLoaderFiii.s | 10 - .../readWS__17JAUAudioArcLoaderFUlPCvUl.s | 24 -- include/JSystem/JAudio2/JASGadget.h | 42 ++- .../JSystem/JAudio2/JAUAudioArcInterpreter.h | 37 +++ include/JSystem/JAudio2/JAUAudioArcLoader.h | 24 +- include/JSystem/JAudio2/JAUBankTable.h | 21 +- include/JSystem/JAudio2/JAUSectionHeap.h | 104 ++++++- include/JSystem/JAudio2/JAUSeqDataBlockMgr.h | 38 +++ include/MSL_C/bitset.h | 16 +- .../JAudio2/JAUAudioArcInterpreter.cpp | 176 +++++++---- libs/JSystem/JAudio2/JAUAudioArcLoader.cpp | 282 +++--------------- libs/JSystem/JAudio2/JAUSectionHeap.cpp | 120 +------- libs/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp | 40 --- libs/Z2AudioLib/Z2AudioArcLoader.cpp | 20 -- 30 files changed, 430 insertions(+), 737 deletions(-) delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcInterpreter/__ct__22JAUAudioArcInterpreterFv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcInterpreter/__dt__22JAUAudioArcInterpreterFv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/__ct__17JAUAudioArcLoaderFP10JAUSection.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/__dt__17JAUAudioArcLoaderFv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/beginBNKList__17JAUAudioArcLoaderFUlUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/endBNKList__17JAUAudioArcLoaderFv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/load__17JAUAudioArcLoaderFPCv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/newDynamicSeqBlock__17JAUAudioArcLoaderFUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/newVoiceBank__17JAUAudioArcLoaderFUlUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS__17JAUAudioArcLoaderFUlPCvUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS_fromArchive__17JAUAudioArcLoaderFUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBNK__17JAUAudioArcLoaderFUlPCv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBSC__17JAUAudioArcLoaderFPCvUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBSFT__17JAUAudioArcLoaderFPCv.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBSTN__17JAUAudioArcLoaderFPCvUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readBST__17JAUAudioArcLoaderFPCvUl.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readMaxSeCategory__17JAUAudioArcLoaderFiii.s delete mode 100644 asm/JSystem/JAudio2/JAUAudioArcLoader/readWS__17JAUAudioArcLoaderFUlPCvUl.s diff --git a/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__ct__22JAUAudioArcInterpreterFv.s b/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__ct__22JAUAudioArcInterpreterFv.s deleted file mode 100644 index fb67ce6ba38..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__ct__22JAUAudioArcInterpreterFv.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_802A4244: -/* 802A4244 3C 80 80 3D */ lis r4, __vt__22JAUAudioArcInterpreter@ha /* 0x803C9A30@ha */ -/* 802A4248 38 04 9A 30 */ addi r0, r4, __vt__22JAUAudioArcInterpreter@l /* 0x803C9A30@l */ -/* 802A424C 90 03 00 00 */ stw r0, 0(r3) -/* 802A4250 38 00 00 00 */ li r0, 0 -/* 802A4254 90 03 00 08 */ stw r0, 8(r3) -/* 802A4258 90 03 00 04 */ stw r0, 4(r3) -/* 802A425C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__dt__22JAUAudioArcInterpreterFv.s b/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__dt__22JAUAudioArcInterpreterFv.s deleted file mode 100644 index fe6a1603730..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcInterpreter/__dt__22JAUAudioArcInterpreterFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802A4260: -/* 802A4260 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4264 7C 08 02 A6 */ mflr r0 -/* 802A4268 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A426C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802A4270 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802A4274 41 82 00 1C */ beq lbl_802A4290 -/* 802A4278 3C A0 80 3D */ lis r5, __vt__22JAUAudioArcInterpreter@ha /* 0x803C9A30@ha */ -/* 802A427C 38 05 9A 30 */ addi r0, r5, __vt__22JAUAudioArcInterpreter@l /* 0x803C9A30@l */ -/* 802A4280 90 1F 00 00 */ stw r0, 0(r31) -/* 802A4284 7C 80 07 35 */ extsh. r0, r4 -/* 802A4288 40 81 00 08 */ ble lbl_802A4290 -/* 802A428C 48 02 AA B1 */ bl __dl__FPv -lbl_802A4290: -/* 802A4290 7F E3 FB 78 */ mr r3, r31 -/* 802A4294 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802A4298 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A429C 7C 08 03 A6 */ mtlr r0 -/* 802A42A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A42A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/__ct__17JAUAudioArcLoaderFP10JAUSection.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/__ct__17JAUAudioArcLoaderFP10JAUSection.s deleted file mode 100644 index 2dc0686b052..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/__ct__17JAUAudioArcLoaderFP10JAUSection.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802A4740: -/* 802A4740 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4744 7C 08 02 A6 */ mflr r0 -/* 802A4748 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A474C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802A4750 93 C1 00 08 */ stw r30, 8(r1) -/* 802A4754 7C 7E 1B 78 */ mr r30, r3 -/* 802A4758 7C 9F 23 78 */ mr r31, r4 -/* 802A475C 4B FF FA E9 */ bl __ct__22JAUAudioArcInterpreterFv -/* 802A4760 3C 60 80 3D */ lis r3, __vt__17JAUAudioArcLoader@ha /* 0x803C9A78@ha */ -/* 802A4764 38 03 9A 78 */ addi r0, r3, __vt__17JAUAudioArcLoader@l /* 0x803C9A78@l */ -/* 802A4768 90 1E 00 00 */ stw r0, 0(r30) -/* 802A476C 93 FE 00 0C */ stw r31, 0xc(r30) -/* 802A4770 7F C3 F3 78 */ mr r3, r30 -/* 802A4774 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802A4778 83 C1 00 08 */ lwz r30, 8(r1) -/* 802A477C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4780 7C 08 03 A6 */ mtlr r0 -/* 802A4784 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A4788 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/__dt__17JAUAudioArcLoaderFv.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/__dt__17JAUAudioArcLoaderFv.s deleted file mode 100644 index 5d07bcd4af5..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/__dt__17JAUAudioArcLoaderFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802A49FC: -/* 802A49FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4A00 7C 08 02 A6 */ mflr r0 -/* 802A4A04 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4A08 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802A4A0C 93 C1 00 08 */ stw r30, 8(r1) -/* 802A4A10 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802A4A14 7C 9F 23 78 */ mr r31, r4 -/* 802A4A18 41 82 00 28 */ beq lbl_802A4A40 -/* 802A4A1C 3C 80 80 3D */ lis r4, __vt__17JAUAudioArcLoader@ha /* 0x803C9A78@ha */ -/* 802A4A20 38 04 9A 78 */ addi r0, r4, __vt__17JAUAudioArcLoader@l /* 0x803C9A78@l */ -/* 802A4A24 90 1E 00 00 */ stw r0, 0(r30) -/* 802A4A28 38 80 00 00 */ li r4, 0 -/* 802A4A2C 4B FF F8 35 */ bl __dt__22JAUAudioArcInterpreterFv -/* 802A4A30 7F E0 07 35 */ extsh. r0, r31 -/* 802A4A34 40 81 00 0C */ ble lbl_802A4A40 -/* 802A4A38 7F C3 F3 78 */ mr r3, r30 -/* 802A4A3C 48 02 A3 01 */ bl __dl__FPv -lbl_802A4A40: -/* 802A4A40 7F C3 F3 78 */ mr r3, r30 -/* 802A4A44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802A4A48 83 C1 00 08 */ lwz r30, 8(r1) -/* 802A4A4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4A50 7C 08 03 A6 */ mtlr r0 -/* 802A4A54 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A4A58 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/beginBNKList__17JAUAudioArcLoaderFUlUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/beginBNKList__17JAUAudioArcLoaderFUlUl.s deleted file mode 100644 index 6a78a8b5439..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/beginBNKList__17JAUAudioArcLoaderFUlUl.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802A4990: -/* 802A4990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4994 7C 08 02 A6 */ mflr r0 -/* 802A4998 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A499C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A49A0 48 00 13 0D */ bl beginNewBankTable__10JAUSectionFUlUl -/* 802A49A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A49A8 7C 08 03 A6 */ mtlr r0 -/* 802A49AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A49B0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/endBNKList__17JAUAudioArcLoaderFv.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/endBNKList__17JAUAudioArcLoaderFv.s deleted file mode 100644 index 223b35c0705..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/endBNKList__17JAUAudioArcLoaderFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802A49B4: -/* 802A49B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A49B8 7C 08 02 A6 */ mflr r0 -/* 802A49BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A49C0 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A49C4 48 00 13 D9 */ bl endNewBankTable__10JAUSectionFv -/* 802A49C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A49CC 7C 08 03 A6 */ mtlr r0 -/* 802A49D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A49D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/load__17JAUAudioArcLoaderFPCv.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/load__17JAUAudioArcLoaderFPCv.s deleted file mode 100644 index ef582c741d6..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/load__17JAUAudioArcLoaderFPCv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_802A478C: -/* 802A478C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4790 7C 08 02 A6 */ mflr r0 -/* 802A4794 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4798 4B FF FB 11 */ bl parse__22JAUAudioArcInterpreterFPCv -/* 802A479C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A47A0 7C 08 03 A6 */ mtlr r0 -/* 802A47A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A47A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/newDynamicSeqBlock__17JAUAudioArcLoaderFUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/newDynamicSeqBlock__17JAUAudioArcLoaderFUl.s deleted file mode 100644 index e9a7aba2fa9..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/newDynamicSeqBlock__17JAUAudioArcLoaderFUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802A4930: -/* 802A4930 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4934 7C 08 02 A6 */ mflr r0 -/* 802A4938 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A493C 80 A3 00 0C */ lwz r5, 0xc(r3) -/* 802A4940 80 65 00 30 */ lwz r3, 0x30(r5) -/* 802A4944 7C 03 28 40 */ cmplw r3, r5 -/* 802A4948 40 82 00 08 */ bne lbl_802A4950 -/* 802A494C 48 00 00 08 */ b lbl_802A4954 -lbl_802A4950: -/* 802A4950 38 60 00 00 */ li r3, 0 -lbl_802A4954: -/* 802A4954 48 00 17 59 */ bl newDynamicSeqBlock__14JAUSectionHeapFUl -/* 802A4958 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A495C 7C 08 03 A6 */ mtlr r0 -/* 802A4960 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A4964 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/newVoiceBank__17JAUAudioArcLoaderFUlUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/newVoiceBank__17JAUAudioArcLoaderFUlUl.s deleted file mode 100644 index fd32a3189a3..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/newVoiceBank__17JAUAudioArcLoaderFUlUl.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802A4900: -/* 802A4900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4904 7C 08 02 A6 */ mflr r0 -/* 802A4908 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A490C 7C 80 23 78 */ mr r0, r4 -/* 802A4910 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4914 7C A4 2B 78 */ mr r4, r5 -/* 802A4918 7C 05 03 78 */ mr r5, r0 -/* 802A491C 48 00 12 69 */ bl newVoiceBank__10JAUSectionFUlUl -/* 802A4920 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4924 7C 08 03 A6 */ mtlr r0 -/* 802A4928 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A492C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS__17JAUAudioArcLoaderFUlPCvUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS__17JAUAudioArcLoaderFUlPCvUl.s deleted file mode 100644 index 6313b7289cd..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS__17JAUAudioArcLoaderFUlPCvUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802A48A8: -/* 802A48A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A48AC 7C 08 02 A6 */ mflr r0 -/* 802A48B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A48B4 90 81 00 08 */ stw r4, 8(r1) -/* 802A48B8 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A48BC 38 81 00 08 */ addi r4, r1, 8 -/* 802A48C0 48 00 0E 09 */ bl newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl -/* 802A48C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A48C8 7C 08 03 A6 */ mtlr r0 -/* 802A48CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A48D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS_fromArchive__17JAUAudioArcLoaderFUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS_fromArchive__17JAUAudioArcLoaderFUl.s deleted file mode 100644 index 2b12d2ae2a8..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS_fromArchive__17JAUAudioArcLoaderFUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802A48D4: -/* 802A48D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A48D8 7C 08 02 A6 */ mflr r0 -/* 802A48DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A48E0 90 81 00 08 */ stw r4, 8(r1) -/* 802A48E4 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A48E8 38 81 00 08 */ addi r4, r1, 8 -/* 802A48EC 48 00 0E 45 */ bl newStaticSeqData__10JAUSectionF10JAISoundID -/* 802A48F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A48F4 7C 08 03 A6 */ mtlr r0 -/* 802A48F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A48FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBNK__17JAUAudioArcLoaderFUlPCv.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBNK__17JAUAudioArcLoaderFUlPCv.s deleted file mode 100644 index 738093ee1e6..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBNK__17JAUAudioArcLoaderFUlPCv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802A4804: -/* 802A4804 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4808 7C 08 02 A6 */ mflr r0 -/* 802A480C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4810 7C 80 23 78 */ mr r0, r4 -/* 802A4814 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4818 7C A4 2B 78 */ mr r4, r5 -/* 802A481C 7C 05 03 78 */ mr r5, r0 -/* 802A4820 48 00 12 31 */ bl newBank__10JAUSectionFPCvUl -/* 802A4824 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4828 7C 08 03 A6 */ mtlr r0 -/* 802A482C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A4830 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSC__17JAUAudioArcLoaderFPCvUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSC__17JAUAudioArcLoaderFPCvUl.s deleted file mode 100644 index 8d7a87e51dd..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSC__17JAUAudioArcLoaderFPCvUl.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802A4834: -/* 802A4834 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4838 7C 08 02 A6 */ mflr r0 -/* 802A483C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4840 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4844 48 00 0C BD */ bl newSeSeqCollection__10JAUSectionFPCvUl -/* 802A4848 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A484C 7C 08 03 A6 */ mtlr r0 -/* 802A4850 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A4854 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSFT__17JAUAudioArcLoaderFPCv.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSFT__17JAUAudioArcLoaderFPCv.s deleted file mode 100644 index 273f8b8eeb7..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSFT__17JAUAudioArcLoaderFPCv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802A4968: -/* 802A4968 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A496C 7C 08 02 A6 */ mflr r0 -/* 802A4970 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4974 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4978 38 A0 00 01 */ li r5, 1 -/* 802A497C 48 00 09 E1 */ bl newStreamFileTable__10JAUSectionFPCvb -/* 802A4980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4984 7C 08 03 A6 */ mtlr r0 -/* 802A4988 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A498C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSTN__17JAUAudioArcLoaderFPCvUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSTN__17JAUAudioArcLoaderFPCvUl.s deleted file mode 100644 index 914f0c5655b..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBSTN__17JAUAudioArcLoaderFPCvUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802A4880: -/* 802A4880 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A4884 7C 08 02 A6 */ mflr r0 -/* 802A4888 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A488C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4890 38 C0 00 01 */ li r6, 1 -/* 802A4894 48 00 0A 0D */ bl newSoundNameTable__10JAUSectionFPCvUlb -/* 802A4898 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A489C 7C 08 03 A6 */ mtlr r0 -/* 802A48A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A48A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBST__17JAUAudioArcLoaderFPCvUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readBST__17JAUAudioArcLoaderFPCvUl.s deleted file mode 100644 index 6b27f209d3b..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readBST__17JAUAudioArcLoaderFPCvUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802A4858: -/* 802A4858 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A485C 7C 08 02 A6 */ mflr r0 -/* 802A4860 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A4864 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A4868 38 C0 00 01 */ li r6, 1 -/* 802A486C 48 00 09 79 */ bl newSoundTable__10JAUSectionFPCvUlb -/* 802A4870 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A4874 7C 08 03 A6 */ mtlr r0 -/* 802A4878 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A487C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readMaxSeCategory__17JAUAudioArcLoaderFiii.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readMaxSeCategory__17JAUAudioArcLoaderFiii.s deleted file mode 100644 index 62ed1e35f72..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readMaxSeCategory__17JAUAudioArcLoaderFiii.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802A49D8: -/* 802A49D8 80 0D 85 EC */ lwz r0, __OSReport_disable-0x2C(r13) -/* 802A49DC 28 00 00 00 */ cmplwi r0, 0 -/* 802A49E0 4D 82 00 20 */ beqlr -/* 802A49E4 1C 64 00 6C */ mulli r3, r4, 0x6c -/* 802A49E8 38 63 00 14 */ addi r3, r3, 0x14 -/* 802A49EC 7C 60 1A 14 */ add r3, r0, r3 -/* 802A49F0 90 A3 00 68 */ stw r5, 0x68(r3) -/* 802A49F4 90 C3 00 64 */ stw r6, 0x64(r3) -/* 802A49F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAUAudioArcLoader/readWS__17JAUAudioArcLoaderFUlPCvUl.s b/asm/JSystem/JAudio2/JAUAudioArcLoader/readWS__17JAUAudioArcLoaderFUlPCvUl.s deleted file mode 100644 index 26a064175be..00000000000 --- a/asm/JSystem/JAudio2/JAUAudioArcLoader/readWS__17JAUAudioArcLoaderFUlPCvUl.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802A47AC: -/* 802A47AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A47B0 7C 08 02 A6 */ mflr r0 -/* 802A47B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A47B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A47BC 48 0B DA 21 */ bl _savegpr_29 -/* 802A47C0 7C 7D 1B 78 */ mr r29, r3 -/* 802A47C4 7C 9E 23 78 */ mr r30, r4 -/* 802A47C8 7C DF 33 78 */ mr r31, r6 -/* 802A47CC 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A47D0 48 00 10 85 */ bl newWaveBank__10JAUSectionFUlPCv -/* 802A47D4 28 1F 00 00 */ cmplwi r31, 0 -/* 802A47D8 41 82 00 14 */ beq lbl_802A47EC -/* 802A47DC 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 802A47E0 7F C4 F3 78 */ mr r4, r30 -/* 802A47E4 7F E5 FB 78 */ mr r5, r31 -/* 802A47E8 48 00 11 61 */ bl loadWaveArc__10JAUSectionFUlUl -lbl_802A47EC: -/* 802A47EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A47F0 48 0B DA 39 */ bl _restgpr_29 -/* 802A47F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A47F8 7C 08 03 A6 */ mtlr r0 -/* 802A47FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A4800 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JASGadget.h b/include/JSystem/JAudio2/JASGadget.h index a061e02b6db..363eba3ad9a 100644 --- a/include/JSystem/JAudio2/JASGadget.h +++ b/include/JSystem/JAudio2/JASGadget.h @@ -1,7 +1,7 @@ #ifndef JASGADGET_H #define JASGADGET_H -#include "dolphin/types.h" +#include "JSystem/JUtility/JUTAssert.h" template class JASGlobalInstance { @@ -12,6 +12,7 @@ public: JASGlobalInstance(bool param_1) { if (param_1) { + JUT_ASSERT("JASGadget.h", 0xba, sInstance == 0); sInstance = (T*)this; } } @@ -27,4 +28,43 @@ public: static T* sInstance; }; +template +class JASPtrTable { +public: + JASPtrTable(T** param_0, u32 size) { + mTable = param_0; + mSize = size; + memset(mTable, 0, size * 4); + } + T* get(u32 index) { + if (index >= mSize) { + return NULL; + } + return mTable[index]; + } + T* get(u32 index) const { + if (index >= mSize) { + return NULL; + } + return mTable[index]; + } + void set(u32 index, T* value) { + JUT_ASSERT("JASGadget.h", 0xe5, index < mSize); + mTable[index] = value; + } + +private: + /* 0x00 */ T** mTable; + /* 0x04 */ u32 mSize; +}; + +template +class JASPtrArray : public JASPtrTable { +public: + JASPtrArray() : JASPtrTable(mArray, N) {} + +private: + /* 0x08 */ T* mArray[N]; +}; + #endif /* JASGADGET_H */ diff --git a/include/JSystem/JAudio2/JAUAudioArcInterpreter.h b/include/JSystem/JAudio2/JAUAudioArcInterpreter.h index 3520aed3bfd..346dfd4e8a3 100644 --- a/include/JSystem/JAudio2/JAUAudioArcInterpreter.h +++ b/include/JSystem/JAudio2/JAUAudioArcInterpreter.h @@ -3,4 +3,41 @@ #include "dolphin/types.h" +class JAUAudioArcInterpreter { +public: + /* 802A4244 */ JAUAudioArcInterpreter(); + /* 802A4260 */ virtual ~JAUAudioArcInterpreter(); + virtual void readWS(u32, void const*, u32) = 0; + virtual void readBNK(u32, void const*) = 0; + virtual void readBSC(void const*, u32) = 0; + virtual void readBST(void const*, u32) = 0; + virtual void readBSTN(void const*, u32) = 0; + virtual void readBMS(u32, void const*, u32) = 0; + virtual void readBMS_fromArchive(u32) = 0; + virtual void newVoiceBank(u32, u32) = 0; + virtual void newDynamicSeqBlock(u32) = 0; + virtual void readBSFT(void const*) = 0; + virtual void readMaxSeCategory(int, int, int) = 0; + virtual void beginBNKList(u32, u32) = 0; + virtual void endBNKList() = 0; + /* 802A42A8 */ bool parse(void const*); + /* 802A4314 */ virtual bool readCommandMore(u32); + /* 802A431C */ bool readCommand_(); + + u8 readU8_() { + return *mReadPtr++; + } + + u32 readU32_() { + u32 temp = *(u32*)mReadPtr; + mReadPtr = mReadPtr + 4; + return temp; + } + const void* getContent_(u32 param_0) { return mBase + param_0; } + + + /* 0x04 */ const u8* mReadPtr; + /* 0x08 */ const u8* mBase; +}; + #endif /* JAUAUDIOARCINTERPRETER_H */ diff --git a/include/JSystem/JAudio2/JAUAudioArcLoader.h b/include/JSystem/JAudio2/JAUAudioArcLoader.h index cd8ed559b22..5cfd2554909 100644 --- a/include/JSystem/JAudio2/JAUAudioArcLoader.h +++ b/include/JSystem/JAudio2/JAUAudioArcLoader.h @@ -1,8 +1,30 @@ #ifndef JAUAUDIOARCLOADER_H #define JAUAUDIOARCLOADER_H -#include "dolphin/types.h" +#include "JSystem/JAudio2/JAUAudioArcInterpreter.h" struct JAUSection; +class JAUAudioArcLoader : public JAUAudioArcInterpreter { +public: + /* 802A4740 */ JAUAudioArcLoader(JAUSection*); + /* 802A478C */ bool load(void const*); + /* 802A47AC */ virtual void readWS(u32, void const*, u32); + /* 802A4804 */ virtual void readBNK(u32, void const*); + /* 802A4834 */ virtual void readBSC(void const*, u32); + /* 802A4858 */ virtual void readBST(void const*, u32); + /* 802A4880 */ virtual void readBSTN(void const*, u32); + /* 802A48A8 */ virtual void readBMS(u32, void const*, u32); + /* 802A48D4 */ virtual void readBMS_fromArchive(u32); + /* 802A4900 */ virtual void newVoiceBank(u32, u32); + /* 802A4930 */ virtual void newDynamicSeqBlock(u32); + /* 802A4968 */ virtual void readBSFT(void const*); + /* 802A4990 */ virtual void beginBNKList(u32, u32); + /* 802A49B4 */ virtual void endBNKList(); + /* 802A49D8 */ virtual void readMaxSeCategory(int, int, int); + /* 802A49FC */ virtual ~JAUAudioArcLoader(); + + /* 0x0C */ JAUSection* mSection; +}; + #endif /* JAUAUDIOARCLOADER_H */ diff --git a/include/JSystem/JAudio2/JAUBankTable.h b/include/JSystem/JAudio2/JAUBankTable.h index 63580458930..e67a72a46f6 100644 --- a/include/JSystem/JAudio2/JAUBankTable.h +++ b/include/JSystem/JAudio2/JAUBankTable.h @@ -1,20 +1,9 @@ #ifndef JAUBANKTABLE_H #define JAUBANKTABLE_H +#include "JSystem/JAudio2/JASGadget.h" #include "JSystem/JSupport/JSUList.h" -template -struct JASPtrTable { - T* get(u32 value) const { - if (value >= mLength) { - return NULL; - } - return mTable[value]; - } - T** mTable; - u32 mLength; -}; - struct JASBank; struct JAUBankTable { /* 802A4AA0 */ /*virtual*/ JASBank* getBank(u32) const; @@ -26,4 +15,12 @@ struct JAUBankTableDictionary : JSUList { /* 802A4A80 */ void appendBankTable(JSULink*); }; +class JASWaveBank; +class JAUWaveBankTable : private JASPtrArray { +public: + JASWaveBank* getWaveBank(u32 index) { return get(index); } + JASWaveBank* getWaveBank(u32 index) const { return get(index); } + void registWaveBank(u32 index, JASWaveBank* bank) { set(index, bank); } +}; + #endif /* JAUBANKTABLE_H */ diff --git a/include/JSystem/JAudio2/JAUSectionHeap.h b/include/JSystem/JAudio2/JAUSectionHeap.h index ba555788564..cc623d0a75c 100644 --- a/include/JSystem/JAudio2/JAUSectionHeap.h +++ b/include/JSystem/JAudio2/JAUSectionHeap.h @@ -1,6 +1,108 @@ #ifndef JAUSECTIONHEAP_H #define JAUSECTIONHEAP_H -#include "dolphin/types.h" +#include "JSystem/JAudio2/JAISeqDataMgr.h" +#include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JAudio2/JAUBankTable.h" +#include "JSystem/JAudio2/JAUSeqDataBlockMgr.h" +#include "JSystem/JKernel/JKRDisposer.h" +#include "MSL_C/bitset.h" + +class JAISeqData; +class JAISeqDataUser; +class JAIStreamDataMgr; +class JAUDisposer_; +class JAUSectionHeap; +class JAUSeqDataMgr_SeqCollection; +class JKRArchive; +class JKRSolidHeap; + +class JAUSection /* : public JKRDisposer, JSULink */ { +public: + struct TSectionData { + /* 802A4EE8 */ TSectionData(); + /* 802A4F68 */ void resetRegisteredBankTables(); + /* 802A4FE4 */ void resetRegisteredWaveBankTables(); + + /* 0x00 */ JAUDynamicSeqDataBlocks field_0x00; + /* 0x28 */ JSUList field_0x28; + /* 0x34 */ std::bitset<255> field_0x34; + /* 0x54 */ std::bitset<255> field_0x54; + /* 0x74 */ JAUBankTableDictionary field_0x74; + /* 0x80 */ int field_0x80; + /* 0x84 */ int field_0x84; + /* 0x88 */ int field_0x88; + /* 0x8C */ JSUList field_0x8c; + /* 0x98 */ s32 field_0x98; + /* 0x9C */ int field_0x9c; + /* 0xA0 */ int field_0xa0; + }; + + /* 802A5060 */ JAUSection(JAUSectionHeap*, u32, s32); + /* 802A50F8 */ void finishBuild(); + /* 802A5160 */ void dispose(); + /* 802A51E4 */ void newSoundTable(void const*, u32, bool); + /* 802A52A0 */ void newSoundNameTable(void const*, u32, bool); + /* 802A535C */ void newStreamFileTable(void const*, bool); + /* 802A5500 */ void newSeSeqCollection(void const*, u32); + /* 802A5598 */ void newStaticSeqDataBlock_(JAISoundID, u32); + /* 802A56C8 */ void newStaticSeqData(JAISoundID, void const*, u32); + /* 802A5730 */ void newStaticSeqData(JAISoundID); + /* 802A57F0 */ void newCopy(void const*, u32, s32); + /* 802A5854 */ void newWaveBank(u32, void const*); + /* 802A5948 */ void loadWaveArc(u32, u32); + /* 802A5A50 */ void newBank(void const*, u32); + /* 802A5B84 */ void newVoiceBank(u32, u32); + /* 802A5CAC */ void beginNewBankTable(u32, u32); + /* 802A5D9C */ void endNewBankTable(); + /* 802A6468 */ ~JAUSection(); + + bool isBuilding() { return field_0x2c; } + //bool isOpen() { return this == sectionHeap_->getOpenSection(); } + JAUSectionHeap* asSectionHeap() { return (JAUSection*)sectionHeap_ == this ? sectionHeap_ : NULL; } + + /* 0x00 */ JKRDisposer base1; + /* 0x18 */ JSULink base2; + /* 0x28 */ u32 field_0x28; + /* 0x2C */ bool field_0x2c; + /* 0x30 */ JAUSectionHeap* sectionHeap_; + /* 0x34 */ int field_0x34; + /* 0x38 */ TSectionData mSectionData; +}; + +class JAUSectionHeap /* : public JAUSection, JASGlobalInstance, JAISeqDataMgr */ { +public: + struct TSectionHeapData { + /* 802A5DF4 */ TSectionHeapData(); + + /* 0x000 */ JAUWaveBankTable field_0x000; + /* 0x404 */ JAISeqDataUser* seqDataUser; + /* 0x408 */ JAUDynamicSeqDataBlocks field_0x408; + /* 0x430 */ JAUSeqDataMgr_SeqCollection* field_0x430; + /* 0x434 */ JAIStreamDataMgr* field_0x434; + /* 0x438 */ int field_0x438; + /* 0x43C */ int field_0x43c; + }; + + /* 802A5E60 */ void setSeqDataArchive(JKRArchive*); + /* 802A5EC0 */ void loadDynamicSeq(JAISoundID, bool); + /* 802A5EF8 */ void releaseIdleDynamicSeqDataBlock(); + /* 802A5FE0 */ JAUSectionHeap(JKRSolidHeap*, bool, s32); + /* 802A6094 */ JAUSection* getOpenSection(); + /* 802A60A0 */ void setSeqDataUser(JAISeqDataUser*); + /* 802A60AC */ void newDynamicSeqBlock(u32); + /* 802A61D0 */ int getSeqData(JAISoundID, JAISeqData*); + /* 802A6270 */ int releaseSeqData(); + /* 802A6278 */ ~JAUSectionHeap(); + + /* 0x00 */ JAUSection base1; + /* 0xDC */ u8 base2[0xE0 - 0xDC]; // JAISeqDataMgr + /* 0xE0 */ JKRSolidHeap* mHeap; + /* 0xE4 */ int field_0xe4; + /* 0xE8 */ JSUList mSectionList; + /* 0xF4 */ TSectionHeapData field_0xf4; +}; + +JAUSectionHeap* JAUNewSectionHeap(bool); #endif /* JAUSECTIONHEAP_H */ diff --git a/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h b/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h index c81e521d60a..c3ee1388499 100644 --- a/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h +++ b/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h @@ -1,5 +1,43 @@ #ifndef JAUSEQDATABLOCKMGR_H #define JAUSEQDATABLOCKMGR_H +#include "JSystem/JAudio2/JAISound.h" +#include "JSystem/JSupport/JSUList.h" + +class JAISeqData; +class JAISeqDataUser; +class JKRArchive; + +struct JAUSeqDataBlock { + /* 802A68F4 */ JAUSeqDataBlock(); +}; + +class JAUSeqDataBlocks { +public: + /* 802A6928 */ void getSeqData(JAISoundID); + /* 802A6974 */ void seekFreeBlock(u32); + /* 802A69D8 */ void append(JSULink*); + /* 802A69F8 */ void remove(JSULink*); + /* 802A6A18 */ void hasFailedBlock(JAISoundID); + + /* 0x00 */ JSUList field_0x0; +}; + +class JAUDynamicSeqDataBlocks { +public: + /* 802A6A58 */ JAUDynamicSeqDataBlocks(); + /* 802A6AA0 */ void setSeqDataArchive(JKRArchive*); + /* 802A6AA8 */ void getSeqData(JAISoundID, JAISeqDataUser*, JAISeqData*, bool); + /* 802A6B8C */ void appendDynamicSeqDataBlock(JAUSeqDataBlock*); + /* 802A6C18 */ void loadDynamicSeq(JAISoundID, bool, JAISeqDataUser*); + /* 802A6D48 */ void releaseIdleDynamicSeqDataBlock(JAISeqDataUser*); + /* 802A6E00 */ void releaseIdleDynamicSeqDataBlock_(JAISeqDataUser*, u32); + /* 802A6EDC */ void rearrangeLoadingSeqs_(); + + /* 0x00 */ JAUSeqDataBlocks field_0x0; + /* 0x0C */ JAUSeqDataBlocks field_0xc; + /* 0x18 */ JAUSeqDataBlocks field_0x18; + /* 0x24 */ JKRArchive* seqDataArchive_; +}; #endif /* JAUSEQDATABLOCKMGR_H */ diff --git a/include/MSL_C/bitset.h b/include/MSL_C/bitset.h index d7ee8cf7b62..40fe62dca4f 100644 --- a/include/MSL_C/bitset.h +++ b/include/MSL_C/bitset.h @@ -3,12 +3,26 @@ namespace std { -template class bitset { +template class __bitset_base { +public: + __bitset_base(); + + bool test(size_t pos) const; + bool any() const; + void set(size_t pos, bool val); + void reset(size_t pos); +private: + size_t data[N]; +}; + +template class bitset : private __bitset_base<(N - 1) / sizeof(size_t) + 1> { +public: bitset(); void set(size_t pos, bool val); void reset(size_t pos); bool test(size_t pos) const; + bool any() const; }; } // namespace std diff --git a/libs/JSystem/JAudio2/JAUAudioArcInterpreter.cpp b/libs/JSystem/JAudio2/JAUAudioArcInterpreter.cpp index b5d3dc8ee7f..8d3b0a33474 100644 --- a/libs/JSystem/JAudio2/JAUAudioArcInterpreter.cpp +++ b/libs/JSystem/JAudio2/JAUAudioArcInterpreter.cpp @@ -4,94 +4,51 @@ // #include "JSystem/JAudio2/JAUAudioArcInterpreter.h" +#include "JSystem/JUtility/JUTAssert.h" #include "dol2asm.h" -// -// Types: -// - -struct JAUAudioArcInterpreter { - /* 802A4244 */ JAUAudioArcInterpreter(); - /* 802A4260 */ ~JAUAudioArcInterpreter(); - /* 802A42A8 */ void parse(void const*); - /* 802A4314 */ bool readCommandMore(u32); - /* 802A431C */ void readCommand_(); -}; - // // Forward References: // -extern "C" void __ct__22JAUAudioArcInterpreterFv(); -extern "C" void __dt__22JAUAudioArcInterpreterFv(); -extern "C" void parse__22JAUAudioArcInterpreterFPCv(); -extern "C" bool readCommandMore__22JAUAudioArcInterpreterFUl(); extern "C" void readCommand___22JAUAudioArcInterpreterFv(); -// -// External References: -// - -extern "C" void __dl__FPv(); - // // Declarations: // -/* ############################################################################################## */ -/* 803C9A30-803C9A78 026B50 0044+04 2/2 0/0 0/0 .data __vt__22JAUAudioArcInterpreter */ -SECTION_DATA extern void* __vt__22JAUAudioArcInterpreter[17 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22JAUAudioArcInterpreterFv, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)readCommandMore__22JAUAudioArcInterpreterFUl, - /* padding */ - NULL, -}; - /* 802A4244-802A4260 29EB84 001C+00 0/0 1/1 0/0 .text __ct__22JAUAudioArcInterpreterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JAUAudioArcInterpreter::JAUAudioArcInterpreter() { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcInterpreter/__ct__22JAUAudioArcInterpreterFv.s" +JAUAudioArcInterpreter::JAUAudioArcInterpreter() { + mBase = NULL; + mReadPtr = NULL; } -#pragma pop /* 802A4260-802A42A8 29EBA0 0048+00 1/0 3/3 0/0 .text __dt__22JAUAudioArcInterpreterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JAUAudioArcInterpreter::~JAUAudioArcInterpreter() { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcInterpreter/__dt__22JAUAudioArcInterpreterFv.s" -} -#pragma pop +JAUAudioArcInterpreter::~JAUAudioArcInterpreter() {} /* 802A42A8-802A4314 29EBE8 006C+00 0/0 1/1 0/0 .text parse__22JAUAudioArcInterpreterFPCv */ +// regswap +#ifdef NONMATCHING +bool JAUAudioArcInterpreter::parse(void const* param_0) { + mBase = (const u8*)param_0; + mReadPtr = mBase; + if (readU32_() != 'AA_<') { + return false; + } + while (readCommand_()) {} + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAUAudioArcInterpreter::parse(void const* param_0) { +asm bool JAUAudioArcInterpreter::parse(void const* param_0) { nofralloc #include "asm/JSystem/JAudio2/JAUAudioArcInterpreter/parse__22JAUAudioArcInterpreterFPCv.s" } #pragma pop +#endif /* 802A4314-802A431C 29EC54 0008+00 1/0 1/0 0/0 .text readCommandMore__22JAUAudioArcInterpreterFUl */ @@ -100,11 +57,104 @@ bool JAUAudioArcInterpreter::readCommandMore(u32 param_0) { } /* 802A431C-802A4740 29EC5C 0424+00 1/1 0/0 0/0 .text readCommand___22JAUAudioArcInterpreterFv */ +// regalloc +#ifdef NONMATCHING +bool JAUAudioArcInterpreter::readCommand_() { + u32 cmd = readU32_(); + switch (cmd) { + case '>_AA': + return false; + case 'ws ': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + u32 var3 = readU32_(); + readWS(var1, getContent_(var2), var3); + break; + } + case 'bnk ': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + readBNK(var1, getContent_(var2)); + break; + } + case 'bl_<': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + beginBNKList(var1, var2); + break; + } + case '>_bl': + endBNKList(); + break; + case 'bsc ': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + readBSC(getContent_(var1), var2 - var1); + break; + } + case 'bst ': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + readBST(getContent_(var1), var2 - var1); + break; + } + case 'bstn': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + readBSTN(getContent_(var1), var2 - var1); + break; + } + case 'bms ': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + u32 var3 = readU32_(); + readBMS(var1, getContent_(var2), var3 - var2); + break; + } + case 'bmsa': { + u32 var1 = readU32_(); + readBMS_fromArchive(var1); + break; + } + case 'vbnk': { + u32 var1 = readU32_(); + u32 var2 = readU32_(); + newVoiceBank(var1, var2); + break; + } + case 'dsqb': { + u32 var1 = readU32_(); + newDynamicSeqBlock(var1); + break; + } + case 'bsft': { + u32 var1 = readU32_(); + readBSFT(getContent_(var1)); + break; + } + case 'sect': { + readU8_(); + u8 var1 = readU8_(); + u8 var2 = readU8_(); + u8 var3 = readU8_(); + readMaxSeCategory(var1, var2, var3); + break; + } + default: + if (!readCommandMore(cmd)) { + JUT_ASSERT("JAUAudioArcInterpreter.cpp", 0x91, false); + } + break; + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAUAudioArcInterpreter::readCommand_() { +asm bool JAUAudioArcInterpreter::readCommand_() { nofralloc #include "asm/JSystem/JAudio2/JAUAudioArcInterpreter/readCommand___22JAUAudioArcInterpreterFv.s" } #pragma pop +#endif \ No newline at end of file diff --git a/libs/JSystem/JAudio2/JAUAudioArcLoader.cpp b/libs/JSystem/JAudio2/JAUAudioArcLoader.cpp index 385fa22de0b..4beed61997a 100644 --- a/libs/JSystem/JAudio2/JAUAudioArcLoader.cpp +++ b/libs/JSystem/JAudio2/JAUAudioArcLoader.cpp @@ -4,301 +4,109 @@ // #include "JSystem/JAudio2/JAUAudioArcLoader.h" -#include "dol2asm.h" - -// -// Types: -// - -struct JAUSectionHeap { - /* 802A60AC */ void newDynamicSeqBlock(u32); -}; - -struct JAISoundID {}; - -struct JAUSection { - /* 802A51E4 */ void newSoundTable(void const*, u32, bool); - /* 802A52A0 */ void newSoundNameTable(void const*, u32, bool); - /* 802A535C */ void newStreamFileTable(void const*, bool); - /* 802A5500 */ void newSeSeqCollection(void const*, u32); - /* 802A56C8 */ void newStaticSeqData(JAISoundID, void const*, u32); - /* 802A5730 */ void newStaticSeqData(JAISoundID); - /* 802A5854 */ void newWaveBank(u32, void const*); - /* 802A5948 */ void loadWaveArc(u32, u32); - /* 802A5A50 */ void newBank(void const*, u32); - /* 802A5B84 */ void newVoiceBank(u32, u32); - /* 802A5CAC */ void beginNewBankTable(u32, u32); - /* 802A5D9C */ void endNewBankTable(); -}; - -struct JAUAudioArcLoader { - /* 802A4740 */ JAUAudioArcLoader(JAUSection*); - /* 802A478C */ void load(void const*); - /* 802A47AC */ void readWS(u32, void const*, u32); - /* 802A4804 */ void readBNK(u32, void const*); - /* 802A4834 */ void readBSC(void const*, u32); - /* 802A4858 */ void readBST(void const*, u32); - /* 802A4880 */ void readBSTN(void const*, u32); - /* 802A48A8 */ void readBMS(u32, void const*, u32); - /* 802A48D4 */ void readBMS_fromArchive(u32); - /* 802A4900 */ void newVoiceBank(u32, u32); - /* 802A4930 */ void newDynamicSeqBlock(u32); - /* 802A4968 */ void readBSFT(void const*); - /* 802A4990 */ void beginBNKList(u32, u32); - /* 802A49B4 */ void endBNKList(); - /* 802A49D8 */ void readMaxSeCategory(int, int, int); - /* 802A49FC */ ~JAUAudioArcLoader(); -}; - -struct JAUAudioArcInterpreter { - /* 802A4244 */ JAUAudioArcInterpreter(); - /* 802A4260 */ ~JAUAudioArcInterpreter(); - /* 802A42A8 */ void parse(void const*); - /* 802A4314 */ bool readCommandMore(u32); -}; - -// -// Forward References: -// - -extern "C" void __ct__17JAUAudioArcLoaderFP10JAUSection(); -extern "C" void load__17JAUAudioArcLoaderFPCv(); -extern "C" void readWS__17JAUAudioArcLoaderFUlPCvUl(); -extern "C" void readBNK__17JAUAudioArcLoaderFUlPCv(); -extern "C" void readBSC__17JAUAudioArcLoaderFPCvUl(); -extern "C" void readBST__17JAUAudioArcLoaderFPCvUl(); -extern "C" void readBSTN__17JAUAudioArcLoaderFPCvUl(); -extern "C" void readBMS__17JAUAudioArcLoaderFUlPCvUl(); -extern "C" void readBMS_fromArchive__17JAUAudioArcLoaderFUl(); -extern "C" void newVoiceBank__17JAUAudioArcLoaderFUlUl(); -extern "C" void newDynamicSeqBlock__17JAUAudioArcLoaderFUl(); -extern "C" void readBSFT__17JAUAudioArcLoaderFPCv(); -extern "C" void beginBNKList__17JAUAudioArcLoaderFUlUl(); -extern "C" void endBNKList__17JAUAudioArcLoaderFv(); -extern "C" void readMaxSeCategory__17JAUAudioArcLoaderFiii(); -extern "C" void __dt__17JAUAudioArcLoaderFv(); - -// -// External References: -// - -extern "C" void __ct__22JAUAudioArcInterpreterFv(); -extern "C" void __dt__22JAUAudioArcInterpreterFv(); -extern "C" void parse__22JAUAudioArcInterpreterFPCv(); -extern "C" bool readCommandMore__22JAUAudioArcInterpreterFUl(); -extern "C" void newSoundTable__10JAUSectionFPCvUlb(); -extern "C" void newSoundNameTable__10JAUSectionFPCvUlb(); -extern "C" void newStreamFileTable__10JAUSectionFPCvb(); -extern "C" void newSeSeqCollection__10JAUSectionFPCvUl(); -extern "C" void newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl(); -extern "C" void newStaticSeqData__10JAUSectionF10JAISoundID(); -extern "C" void newWaveBank__10JAUSectionFUlPCv(); -extern "C" void loadWaveArc__10JAUSectionFUlUl(); -extern "C" void newBank__10JAUSectionFPCvUl(); -extern "C" void newVoiceBank__10JAUSectionFUlUl(); -extern "C" void beginNewBankTable__10JAUSectionFUlUl(); -extern "C" void endNewBankTable__10JAUSectionFv(); -extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern u8 data_80450B6C[4]; -extern "C" extern u8 __OSReport_disable; +#include "JSystem/JAudio2/JAISeMgr.h" +#include "JSystem/JAudio2/JAUSectionHeap.h" +#include "JSystem/JUtility/JUTAssert.h" // // Declarations: // -/* ############################################################################################## */ -/* 803C9A78-803C9AC0 026B98 0044+04 2/2 2/2 0/0 .data __vt__17JAUAudioArcLoader */ -SECTION_DATA extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17JAUAudioArcLoaderFv, - (void*)readWS__17JAUAudioArcLoaderFUlPCvUl, - (void*)readBNK__17JAUAudioArcLoaderFUlPCv, - (void*)readBSC__17JAUAudioArcLoaderFPCvUl, - (void*)readBST__17JAUAudioArcLoaderFPCvUl, - (void*)readBSTN__17JAUAudioArcLoaderFPCvUl, - (void*)readBMS__17JAUAudioArcLoaderFUlPCvUl, - (void*)readBMS_fromArchive__17JAUAudioArcLoaderFUl, - (void*)newVoiceBank__17JAUAudioArcLoaderFUlUl, - (void*)newDynamicSeqBlock__17JAUAudioArcLoaderFUl, - (void*)readBSFT__17JAUAudioArcLoaderFPCv, - (void*)readMaxSeCategory__17JAUAudioArcLoaderFiii, - (void*)beginBNKList__17JAUAudioArcLoaderFUlUl, - (void*)endBNKList__17JAUAudioArcLoaderFv, - (void*)readCommandMore__22JAUAudioArcInterpreterFUl, - /* padding */ - NULL, -}; - /* 802A4740-802A478C 29F080 004C+00 0/0 1/1 0/0 .text __ct__17JAUAudioArcLoaderFP10JAUSection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JAUAudioArcLoader::JAUAudioArcLoader(JAUSection* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/__ct__17JAUAudioArcLoaderFP10JAUSection.s" +JAUAudioArcLoader::JAUAudioArcLoader(JAUSection* section) { + //JUT_ASSERT("JAUAudioArcLoader.cpp",0xd, section->isOpen()); + //JUT_ASSERT("JAUAudioArcLoader.cpp",0xe, section->isBuilding()); + mSection = section; } -#pragma pop /* 802A478C-802A47AC 29F0CC 0020+00 0/0 1/1 0/0 .text load__17JAUAudioArcLoaderFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::load(void const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/load__17JAUAudioArcLoaderFPCv.s" +bool JAUAudioArcLoader::load(void const* param_0) { + return parse(param_0); } -#pragma pop /* 802A47AC-802A4804 29F0EC 0058+00 1/0 1/0 0/0 .text readWS__17JAUAudioArcLoaderFUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readWS(u32 param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readWS__17JAUAudioArcLoaderFUlPCvUl.s" +void JAUAudioArcLoader::readWS(u32 param_0, void const* param_1, u32 param_2) { + mSection->newWaveBank(param_0, param_1); + if (param_2) { + mSection->loadWaveArc(param_0, param_2); + } } -#pragma pop /* 802A4804-802A4834 29F144 0030+00 1/0 1/0 0/0 .text readBNK__17JAUAudioArcLoaderFUlPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBNK(u32 param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBNK__17JAUAudioArcLoaderFUlPCv.s" +void JAUAudioArcLoader::readBNK(u32 param_0, void const* param_1) { + mSection->newBank(param_1, param_0); } -#pragma pop /* 802A4834-802A4858 29F174 0024+00 1/0 1/0 0/0 .text readBSC__17JAUAudioArcLoaderFPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBSC(void const* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBSC__17JAUAudioArcLoaderFPCvUl.s" +void JAUAudioArcLoader::readBSC(void const* param_0, u32 param_1) { + mSection->newSeSeqCollection(param_0, param_1); } -#pragma pop /* 802A4858-802A4880 29F198 0028+00 1/0 1/0 0/0 .text readBST__17JAUAudioArcLoaderFPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBST(void const* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBST__17JAUAudioArcLoaderFPCvUl.s" +void JAUAudioArcLoader::readBST(void const* param_0, u32 param_1) { + mSection->newSoundTable(param_0, param_1, true); } -#pragma pop /* 802A4880-802A48A8 29F1C0 0028+00 1/0 0/0 0/0 .text readBSTN__17JAUAudioArcLoaderFPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBSTN(void const* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBSTN__17JAUAudioArcLoaderFPCvUl.s" +void JAUAudioArcLoader::readBSTN(void const* param_0, u32 param_1) { + mSection->newSoundNameTable(param_0, param_1, true); } -#pragma pop /* 802A48A8-802A48D4 29F1E8 002C+00 1/0 1/0 0/0 .text readBMS__17JAUAudioArcLoaderFUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBMS(u32 param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS__17JAUAudioArcLoaderFUlPCvUl.s" +void JAUAudioArcLoader::readBMS(u32 param_0, void const* param_1, u32 param_2) { + mSection->newStaticSeqData(param_0, param_1, param_2); } -#pragma pop /* 802A48D4-802A4900 29F214 002C+00 1/0 1/0 0/0 .text readBMS_fromArchive__17JAUAudioArcLoaderFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBMS_fromArchive(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBMS_fromArchive__17JAUAudioArcLoaderFUl.s" +void JAUAudioArcLoader::readBMS_fromArchive(u32 param_0) { + mSection->newStaticSeqData(param_0); } -#pragma pop /* 802A4900-802A4930 29F240 0030+00 1/0 1/0 0/0 .text newVoiceBank__17JAUAudioArcLoaderFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::newVoiceBank(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/newVoiceBank__17JAUAudioArcLoaderFUlUl.s" +void JAUAudioArcLoader::newVoiceBank(u32 param_0, u32 param_1) { + mSection->newVoiceBank(param_1, param_0); } -#pragma pop /* 802A4930-802A4968 29F270 0038+00 1/0 1/0 0/0 .text newDynamicSeqBlock__17JAUAudioArcLoaderFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::newDynamicSeqBlock(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/newDynamicSeqBlock__17JAUAudioArcLoaderFUl.s" +void JAUAudioArcLoader::newDynamicSeqBlock(u32 param_0) { + JAUSectionHeap* sectionHeap = mSection->asSectionHeap(); + JUT_ASSERT("JAUAudioArcLoader.cpp", 0x48, sectionHeap); + sectionHeap->newDynamicSeqBlock(param_0); } -#pragma pop /* 802A4968-802A4990 29F2A8 0028+00 1/0 1/0 0/0 .text readBSFT__17JAUAudioArcLoaderFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readBSFT(void const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readBSFT__17JAUAudioArcLoaderFPCv.s" +void JAUAudioArcLoader::readBSFT(void const* param_0) { + mSection->newStreamFileTable(param_0, true); } -#pragma pop /* 802A4990-802A49B4 29F2D0 0024+00 1/0 1/0 0/0 .text beginBNKList__17JAUAudioArcLoaderFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::beginBNKList(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/beginBNKList__17JAUAudioArcLoaderFUlUl.s" +void JAUAudioArcLoader::beginBNKList(u32 param_0, u32 param_1) { + mSection->beginNewBankTable(param_0, param_1); } -#pragma pop /* 802A49B4-802A49D8 29F2F4 0024+00 1/0 1/0 0/0 .text endBNKList__17JAUAudioArcLoaderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::endBNKList() { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/endBNKList__17JAUAudioArcLoaderFv.s" +void JAUAudioArcLoader::endBNKList() { + mSection->endNewBankTable(); } -#pragma pop /* 802A49D8-802A49FC 29F318 0024+00 1/0 1/0 0/0 .text readMaxSeCategory__17JAUAudioArcLoaderFiii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUAudioArcLoader::readMaxSeCategory(int param_0, int param_1, int param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/readMaxSeCategory__17JAUAudioArcLoaderFiii.s" +void JAUAudioArcLoader::readMaxSeCategory(int param_0, int param_1, int param_2) { + JAISeMgr* seMgr = JASGlobalInstance::getInstance(); + if (seMgr) { + seMgr->getCategory(param_0)->setMaxActiveSe(param_1); + seMgr->getCategory(param_0)->setMaxInactiveSe(param_2); + } } -#pragma pop /* 802A49FC-802A4A5C 29F33C 0060+00 1/0 0/0 0/0 .text __dt__17JAUAudioArcLoaderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JAUAudioArcLoader::~JAUAudioArcLoader() { - nofralloc -#include "asm/JSystem/JAudio2/JAUAudioArcLoader/__dt__17JAUAudioArcLoaderFv.s" -} -#pragma pop +JAUAudioArcLoader::~JAUAudioArcLoader() {} diff --git a/libs/JSystem/JAudio2/JAUSectionHeap.cpp b/libs/JSystem/JAudio2/JAUSectionHeap.cpp index e3cc3181be0..97b3cfcbb58 100644 --- a/libs/JSystem/JAudio2/JAUSectionHeap.cpp +++ b/libs/JSystem/JAudio2/JAUSectionHeap.cpp @@ -11,35 +11,6 @@ // Types: // -namespace std { -template -struct __bitset_base {}; -/* __bitset_base<8> */ -struct __bitset_base__template0 { - /* 802A65D4 */ void func_802A65D4(void* _this, u32, bool); - /* 802A6614 */ void func_802A6614(void* _this, u32); - /* 802A6634 */ void func_802A6634(void* _this, u32) /* const */; - /* 802A665C */ void func_802A665C(void* _this); -}; - -}; // namespace std - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); -}; - -template -struct JSULink {}; -/* JSULink */ -struct JSULink__template0 {}; - struct JKRHeap { /* 802CE438 */ void becomeCurrentHeap(); /* 802CE5F8 */ void freeTail(); @@ -50,11 +21,6 @@ struct JKRSolidHeap { /* 802D0A24 */ void create(u32, JKRHeap*, bool); }; -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - struct JKRArchive {}; struct JAUStreamFileTable { @@ -76,80 +42,10 @@ struct JAUSeqDataMgr_SeqCollection { /* 802A677C */ JAUSeqDataMgr_SeqCollection(); }; -struct JAUSeqDataBlock { - /* 802A68F4 */ JAUSeqDataBlock(); -}; - struct JAUSeqCollection { /* 802A66AC */ void init(void const*); }; -struct JAISeqDataUser {}; - -struct JAISeqData {}; - -struct JAISoundID {}; - -struct JAUSectionHeap { - struct TSectionHeapData { - /* 802A5DF4 */ TSectionHeapData(); - }; - - /* 802A5E60 */ void setSeqDataArchive(JKRArchive*); - /* 802A5EC0 */ void loadDynamicSeq(JAISoundID, bool); - /* 802A5EF8 */ void releaseIdleDynamicSeqDataBlock(); - /* 802A5FE0 */ JAUSectionHeap(JKRSolidHeap*, bool, s32); - /* 802A6094 */ void getOpenSection(); - /* 802A60A0 */ void setSeqDataUser(JAISeqDataUser*); - /* 802A60AC */ void newDynamicSeqBlock(u32); - /* 802A61D0 */ void getSeqData(JAISoundID, JAISeqData*); - /* 802A6270 */ bool releaseSeqData(); - /* 802A6278 */ ~JAUSectionHeap(); -}; - -struct JAUSection { - struct TSectionData { - /* 802A4EE8 */ TSectionData(); - /* 802A4F68 */ void resetRegisteredBankTables(); - /* 802A4FE4 */ void resetRegisteredWaveBankTables(); - }; - - /* 802A5060 */ JAUSection(JAUSectionHeap*, u32, s32); - /* 802A50F8 */ void finishBuild(); - /* 802A5160 */ void dispose(); - /* 802A51E4 */ void newSoundTable(void const*, u32, bool); - /* 802A52A0 */ void newSoundNameTable(void const*, u32, bool); - /* 802A535C */ void newStreamFileTable(void const*, bool); - /* 802A5500 */ void newSeSeqCollection(void const*, u32); - /* 802A5598 */ void newStaticSeqDataBlock_(JAISoundID, u32); - /* 802A56C8 */ void newStaticSeqData(JAISoundID, void const*, u32); - /* 802A5730 */ void newStaticSeqData(JAISoundID); - /* 802A57F0 */ void newCopy(void const*, u32, s32); - /* 802A5854 */ void newWaveBank(u32, void const*); - /* 802A5948 */ void loadWaveArc(u32, u32); - /* 802A5A50 */ void newBank(void const*, u32); - /* 802A5B84 */ void newVoiceBank(u32, u32); - /* 802A5CAC */ void beginNewBankTable(u32, u32); - /* 802A5D9C */ void endNewBankTable(); - /* 802A6468 */ ~JAUSection(); -}; - -struct JAUDynamicSeqDataBlocks { - /* 802A6A58 */ JAUDynamicSeqDataBlocks(); - /* 802A6AA8 */ void getSeqData(JAISoundID, JAISeqDataUser*, JAISeqData*, bool); - /* 802A6B8C */ void appendDynamicSeqDataBlock(JAUSeqDataBlock*); - /* 802A6C18 */ void loadDynamicSeq(JAISoundID, bool, JAISeqDataUser*); - /* 802A6D48 */ void releaseIdleDynamicSeqDataBlock(JAISeqDataUser*); -}; - -struct JAUBankTable { - /* 802A4AA0 */ void getBank(u32) const; -}; - -struct JAUBankTableDictionary { - /* 802A4A80 */ void appendBankTable(JSULink*); -}; - struct JASHeap {}; struct JASWaveArc { @@ -172,10 +68,6 @@ struct JAIStreamDataMgr { /* 802A3AD8 */ ~JAIStreamDataMgr(); }; -struct JAISeqDataMgr { - /* 802A17BC */ ~JAISeqDataMgr(); -}; - // // Forward References: // @@ -625,7 +517,7 @@ asm void JAUSectionHeap::releaseIdleDynamicSeqDataBlock() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void JAUNewSectionHeap(JKRSolidHeap* param_0, bool param_1) { +static asm JAUSectionHeap* JAUNewSectionHeap(JKRSolidHeap* param_0, bool param_1) { nofralloc #include "asm/JSystem/JAudio2/JAUSectionHeap/JAUNewSectionHeap__FP12JKRSolidHeapb.s" } @@ -635,7 +527,7 @@ static asm void JAUNewSectionHeap(JKRSolidHeap* param_0, bool param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAUNewSectionHeap(bool param_0) { +asm JAUSectionHeap* JAUNewSectionHeap(bool param_0) { nofralloc #include "asm/JSystem/JAudio2/JAUSectionHeap/JAUNewSectionHeap__Fb.s" } @@ -656,7 +548,7 @@ asm JAUSectionHeap::JAUSectionHeap(JKRSolidHeap* param_0, bool param_1, s32 para #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAUSectionHeap::getOpenSection() { +asm JAUSection* JAUSectionHeap::getOpenSection() { nofralloc #include "asm/JSystem/JAudio2/JAUSectionHeap/getOpenSection__14JAUSectionHeapFv.s" } @@ -688,7 +580,7 @@ asm void JAUSectionHeap::newDynamicSeqBlock(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) { +asm int JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) { nofralloc #include "asm/JSystem/JAudio2/JAUSectionHeap/getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData.s" } @@ -696,8 +588,8 @@ asm void JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) { /* 802A6270-802A6278 2A0BB0 0008+00 2/1 0/0 0/0 .text releaseSeqData__14JAUSectionHeapFv */ -bool JAUSectionHeap::releaseSeqData() { - return false; +int JAUSectionHeap::releaseSeqData() { + return 0; } /* 802A6278-802A6440 2A0BB8 01C8+00 2/1 0/0 0/0 .text __dt__14JAUSectionHeapFv */ diff --git a/libs/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp b/libs/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp index ac118fb3a97..453caa3f2f6 100644 --- a/libs/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp +++ b/libs/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp @@ -10,52 +10,12 @@ // Types: // -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); -}; - -struct JSUPtrList { - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSULink {}; -/* JSULink */ -struct JSULink__template1 {}; - struct JKRArchive {}; -struct JAISoundID {}; - -struct JAUSeqDataBlock { - /* 802A68F4 */ JAUSeqDataBlock(); -}; - -struct JAUSeqDataBlocks { - /* 802A6928 */ void getSeqData(JAISoundID); - /* 802A6974 */ void seekFreeBlock(u32); - /* 802A69D8 */ void append(JSULink*); - /* 802A69F8 */ void remove(JSULink*); - /* 802A6A18 */ void hasFailedBlock(JAISoundID); -}; - struct JAISeqDataUser {}; struct JAISeqData {}; -struct JAUDynamicSeqDataBlocks { - /* 802A6A58 */ JAUDynamicSeqDataBlocks(); - /* 802A6AA0 */ void setSeqDataArchive(JKRArchive*); - /* 802A6AA8 */ void getSeqData(JAISoundID, JAISeqDataUser*, JAISeqData*, bool); - /* 802A6B8C */ void appendDynamicSeqDataBlock(JAUSeqDataBlock*); - /* 802A6C18 */ void loadDynamicSeq(JAISoundID, bool, JAISeqDataUser*); - /* 802A6D48 */ void releaseIdleDynamicSeqDataBlock(JAISeqDataUser*); - /* 802A6E00 */ void releaseIdleDynamicSeqDataBlock_(JAISeqDataUser*, u32); - /* 802A6EDC */ void rearrangeLoadingSeqs_(); -}; - struct JASResArcLoader { /* 80290BD0 */ void getResSize(JKRArchive const*, u16); /* 80290D18 */ void loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32); diff --git a/libs/Z2AudioLib/Z2AudioArcLoader.cpp b/libs/Z2AudioLib/Z2AudioArcLoader.cpp index be9c1c7ac4d..8150f7bb632 100644 --- a/libs/Z2AudioLib/Z2AudioArcLoader.cpp +++ b/libs/Z2AudioLib/Z2AudioArcLoader.cpp @@ -28,26 +28,6 @@ struct JAUSectionHeap { /* 802A6094 */ void getOpenSection(); }; -struct JAUAudioArcLoader { - /* 802A4740 */ JAUAudioArcLoader(JAUSection*); - /* 802A47AC */ void readWS(u32, void const*, u32); - /* 802A4804 */ void readBNK(u32, void const*); - /* 802A4834 */ void readBSC(void const*, u32); - /* 802A4858 */ void readBST(void const*, u32); - /* 802A48A8 */ void readBMS(u32, void const*, u32); - /* 802A48D4 */ void readBMS_fromArchive(u32); - /* 802A4900 */ void newVoiceBank(u32, u32); - /* 802A4930 */ void newDynamicSeqBlock(u32); - /* 802A4968 */ void readBSFT(void const*); - /* 802A4990 */ void beginBNKList(u32, u32); - /* 802A49B4 */ void endBNKList(); - /* 802A49D8 */ void readMaxSeCategory(int, int, int); -}; - -struct JAUAudioArcInterpreter { - /* 802A4260 */ ~JAUAudioArcInterpreter(); -}; - // // Forward References: //