summaryrefslogtreecommitdiff
path: root/libs/Z2AudioLib/Z2AudioArcLoader.cpp
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-09 01:19:07 +0200
committerGitHub <noreply@github.com>2024-01-08 15:19:07 -0800
commit28bef08667e3e1ef9eb85a8a96cb23af700afe02 (patch)
treeff43e05e48a69c869a144a53d1bf3c1aea5eb88e /libs/Z2AudioLib/Z2AudioArcLoader.cpp
parent40dae638a7c0b7e967eda55d3aa1089163213c5d (diff)
Work on Audio, JAUSeqDataBlockMgr OK (#2027)
Diffstat (limited to 'libs/Z2AudioLib/Z2AudioArcLoader.cpp')
-rw-r--r--libs/Z2AudioLib/Z2AudioArcLoader.cpp96
1 files changed, 25 insertions, 71 deletions
diff --git a/libs/Z2AudioLib/Z2AudioArcLoader.cpp b/libs/Z2AudioLib/Z2AudioArcLoader.cpp
index 9a2465bcd4..0762223a1c 100644
--- a/libs/Z2AudioLib/Z2AudioArcLoader.cpp
+++ b/libs/Z2AudioLib/Z2AudioArcLoader.cpp
@@ -4,30 +4,16 @@
//
#include "Z2AudioLib/Z2AudioArcLoader.h"
+#include "Z2AudioLib/Z2FxLineMgr.h"
+#include "JSystem/JKernel/JKRHeap.h"
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/JAudio2/JAUSectionHeap.h"
#include "dol2asm.h"
//
// Types:
//
-struct JKRHeap {
- static u8 sCurrentHeap[4];
-};
-
-struct JKRArchive {
- struct EMountDirection {};
-
- /* 802D5840 */ void mount(void*, JKRHeap*, JKRArchive::EMountDirection);
-};
-
-struct Z2FxLineMgr {
- /* 802BA7FC */ void initDataArc(JKRArchive*, JKRHeap*);
-};
-
-struct JAUSectionHeap {
- /* 802A6094 */ void getOpenSection();
-};
-
//
// Forward References:
//
@@ -68,55 +54,33 @@ extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
extern "C" extern u8 __OSReport_disable;
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C9CD0-803C9D18 026DF0 0044+04 2/2 1/1 0/0 .data __vt__16Z2AudioArcLoader */
-SECTION_DATA extern void* __vt__16Z2AudioArcLoader[17 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16Z2AudioArcLoaderFv,
- (void*)readWS__17JAUAudioArcLoaderFUlPCvUl,
- (void*)readBNK__17JAUAudioArcLoaderFUlPCv,
- (void*)readBSC__17JAUAudioArcLoaderFPCvUl,
- (void*)readBST__17JAUAudioArcLoaderFPCvUl,
- (void*)readBSTN__16Z2AudioArcLoaderFPCvUl,
- (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__16Z2AudioArcLoaderFUl,
- /* padding */
- NULL,
-};
-
/* 802A9A34-802A9A70 2A4374 003C+00 0/0 1/1 0/0 .text __ct__16Z2AudioArcLoaderFP10JAUSection */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) {
- nofralloc
-#include "asm/Z2AudioLib/Z2AudioArcLoader/__ct__16Z2AudioArcLoaderFP10JAUSection.s"
+Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) : JAUAudioArcLoader(param_0) {
}
-#pragma pop
/* 802A9A70-802A9AC8 2A43B0 0058+00 1/0 0/0 0/0 .text readCommandMore__16Z2AudioArcLoaderFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool Z2AudioArcLoader::readCommandMore(u32 param_0) {
- nofralloc
-#include "asm/Z2AudioLib/Z2AudioArcLoader/readCommandMore__16Z2AudioArcLoaderFUl.s"
+bool Z2AudioArcLoader::readCommandMore(u32 param_0) {
+ bool rv = false;
+ switch (param_0) {
+ case 'bfca':
+ readBFCA(getContent_(readU32_()));
+ rv = true;
+ break;
+ }
+ return rv;
}
-#pragma pop
/* 802A9AC8-802A9B54 2A4408 008C+00 1/1 0/0 0/0 .text readBFCA__16Z2AudioArcLoaderFPCv */
+// regalloc and extra stack
+#ifdef NONMATCHING
+void Z2AudioArcLoader::readBFCA(void const* param_0) {
+ JAUSectionHeap* sectionHeap = JASGlobalInstance<JAUSectionHeap>::getInstance();
+ JKRHeap* pJVar1 = sectionHeap->getHeap();
+ JKRArchive* pJVar5 = JKRArchive::mount((void*)param_0, JKRGetCurrentHeap(), JKRArchive::MOUNT_DIRECTION_TAIL);
+ Z2GetFxLineMgr()->initDataArc(pJVar5, pJVar1);
+ JKRUnmountArchive(pJVar5);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -125,19 +89,9 @@ asm void Z2AudioArcLoader::readBFCA(void const* param_0) {
#include "asm/Z2AudioLib/Z2AudioArcLoader/readBFCA__16Z2AudioArcLoaderFPCv.s"
}
#pragma pop
-
+#endif
/* 802A9B54-802A9B58 2A4494 0004+00 1/0 0/0 0/0 .text readBSTN__16Z2AudioArcLoaderFPCvUl
*/
void Z2AudioArcLoader::readBSTN(void const* param_0, u32 param_1) {
/* empty function */
}
-
-/* 802A9B58-802A9BC8 2A4498 0070+00 1/0 0/0 0/0 .text __dt__16Z2AudioArcLoaderFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Z2AudioArcLoader::~Z2AudioArcLoader() {
- nofralloc
-#include "asm/Z2AudioLib/Z2AudioArcLoader/__dt__16Z2AudioArcLoaderFv.s"
-}
-#pragma pop