diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2023-09-15 05:20:09 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-15 15:20:09 +0300 |
| commit | 287ae62349ac3e1821b420d8dcad7989148d2a9d (patch) | |
| tree | 02b15ad7e0700252f39b09d02a250551d0ccd568 /libs/Z2AudioLib/Z2AudioMgr.cpp | |
| parent | f834379a8b60e0d3308e5aa064a910cead92b899 (diff) | |
JAUSectionHeap, Z2SoundInfo, others (#1925)
* Z2SoundInfo
* JAUSectionHeap
* Z2EnvSeMgr
* Z2AudioMgr
* m_Do_audio
* d_a_alink
Diffstat (limited to 'libs/Z2AudioLib/Z2AudioMgr.cpp')
| -rw-r--r-- | libs/Z2AudioLib/Z2AudioMgr.cpp | 190 |
1 files changed, 118 insertions, 72 deletions
diff --git a/libs/Z2AudioLib/Z2AudioMgr.cpp b/libs/Z2AudioLib/Z2AudioMgr.cpp index 8e14b25f64..85aaa87133 100644 --- a/libs/Z2AudioLib/Z2AudioMgr.cpp +++ b/libs/Z2AudioLib/Z2AudioMgr.cpp @@ -6,6 +6,14 @@ #include "Z2AudioLib/Z2AudioMgr.h" #include "JSystem/JAudio2/JASAiCtrl.h" #include "JSystem/JAudio2/JASDriverIF.h" +#include "JSystem/JAudio2/JASResArcLoader.h" +#include "JSystem/JAudio2/JASSeqParser.h" +#include "JSystem/JAudio2/JAUInitializer.h" +#include "JSystem/JAudio2/JAUSectionHeap.h" +#include "JSystem/JAudio2/JAUStreamAramMgr.h" +#include "JSystem/JKernel/JKRSolidHeap.h" +#include "Z2AudioLib/Z2AudioArcLoader.h" +#include "Z2AudioLib/Z2SoundHandles.h" #include "MSL_C/stdio.h" #include "MSL_C/stdlib.h" #include "dol2asm.h" @@ -27,73 +35,6 @@ struct Z2Param { static f32 VOL_SE_ATMOSPHERE_DEFAULT; }; -struct JAUSection { - /* 802A50F8 */ void finishBuild(); -}; - -struct Z2AudioArcLoader { - /* 802A9A34 */ Z2AudioArcLoader(JAUSection*); -}; - -struct JAU_JASInitializer { - /* 802A4AD0 */ JAU_JASInitializer(); - /* 802A4B28 */ void initJASystem(JKRSolidHeap*); -}; - -struct JAU_JAIInitializer { - /* 802A4D3C */ JAU_JAIInitializer(); - /* 802A4D60 */ void initJAInterface(); -}; - -template <typename A0> -struct JAUStreamStaticAramMgr_ {}; -/* JAUStreamStaticAramMgr_<1> */ -struct JAUStreamStaticAramMgr___template0 { - /* 802CDB68 */ void func_802CDB68(void* _this); - /* 802CDC08 */ void func_802CDC08(void* _this, u32); - /* 802CDCEC */ void func_802CDCEC(void* _this, u32*); -}; - -template <typename A0> -struct JAUStreamAramMgrBase_ {}; -/* JAUStreamAramMgrBase_<1> */ -struct JAUStreamAramMgrBase___template0 { - /* 802CD7F8 */ void func_802CD7F8(void* _this); -}; - -struct JAUSectionHeap { - /* 802A5E60 */ void setSeqDataArchive(JKRArchive*); - /* 802A60AC */ void newDynamicSeqBlock(u32); -}; - -struct JAUAudioArcLoader { - /* 802A478C */ void load(void const*); -}; - -struct JAUAudioArcInterpreter { - /* 802A4260 */ ~JAUAudioArcInterpreter(); -}; - -struct JASSeqParser { - static u8 sCallBackFunc[4]; -}; - -struct JASResArcLoader { - /* 80290C04 */ void getResMaxSize(JKRArchive const*); -}; - -struct JASAramStream { - static u8 sBlockSize[4]; -}; - -struct JAIStreamAramMgr { - /* 802A3B20 */ ~JAIStreamAramMgr(); -}; - -struct JAISoundInfo { - /* 802A2D34 */ JAISoundInfo(bool); -}; - // // Forward References: // @@ -228,6 +169,14 @@ SECTION_DATA extern void* __vt__10Z2AudioMgr[3] = { Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr; /* 802CD248-802CD34C 2C7B88 0104+00 0/0 1/1 0/0 .text __ct__10Z2AudioMgrFv */ +// wild destructors appeared! +#ifdef NONMATCHING +Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) { + mAudioMgrPtr = this; + mResettingFlag = false; + field_0x519 = false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -236,6 +185,7 @@ asm Z2AudioMgr::Z2AudioMgr() { #include "asm/Z2AudioLib/Z2AudioMgr/__ct__10Z2AudioMgrFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -277,6 +227,90 @@ SECTION_SDATA2 static f32 lit_3932 = 1.0f; /* 802CD34C-802CD7F8 2C7C8C 04AC+00 0/0 1/1 0/0 .text * init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive */ +// JAUSectionHeap inheritance +#ifdef NONMATCHING +void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) { + JAU_JASInitializer stack_60; + stack_60.field_0x1c = 0x8c; + stack_60.field_0x2c = 1.3f; + stack_60.field_0x30 = "Audiores/Waves/"; + stack_60.field_0x04 = param_1; + stack_60.initJASystem(param_0); + JAU_JAIInitializer stack_90; + stack_90.field_0x0 = 0x4e; + stack_90.field_0x4 = 4; + stack_90.field_0xc = 0x30; + stack_90.initJAInterface(); + JAISeMgr *seMgr = mSoundMgr.getSeMgr(); + JAISeCategoryArrangement stack_80; + stack_80.mItems[0].mMaxActiveSe = 4; + stack_80.mItems[0].mMaxInactiveSe = 2; + stack_80.mItems[1].mMaxActiveSe = 2; + stack_80.mItems[1].mMaxInactiveSe = 1; + stack_80.mItems[2].mMaxActiveSe = 6; + stack_80.mItems[2].mMaxInactiveSe = 3; + stack_80.mItems[3].mMaxActiveSe = 16; + stack_80.mItems[3].mMaxInactiveSe = 8; + stack_80.mItems[4].mMaxActiveSe = 8; + stack_80.mItems[4].mMaxInactiveSe = 4; + stack_80.mItems[5].mMaxActiveSe = 6; + stack_80.mItems[5].mMaxInactiveSe = 3; + stack_80.mItems[6].mMaxActiveSe = 6; + stack_80.mItems[6].mMaxInactiveSe = 3; + stack_80.mItems[7].mMaxActiveSe = 12; + stack_80.mItems[7].mMaxInactiveSe = 8; + stack_80.mItems[8].mMaxActiveSe = 10; + stack_80.mItems[8].mMaxInactiveSe = 5; + stack_80.mItems[9].mMaxActiveSe = 8; + stack_80.mItems[9].mMaxInactiveSe = 4; + stack_80.mItems[10].mMaxActiveSe = 4; + stack_80.mItems[10].mMaxInactiveSe = 2; + seMgr->setCategoryArrangement(stack_80); + seMgr->getCategory(0)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(1)->getParams()->moveVolume(1.0f, 0); + seMgr->getCategory(2)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(3)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(4)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(5)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(6)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(7)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(8)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(9)->getParams()->moveVolume(0.9448819f, 0); + seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0); + seMgr->getParams()->moveVolume(1.0f, 0); + JAISeqMgr* seqMgr = mSoundMgr.getSeqMgr(); + seqMgr->getParams()->moveVolume(1.0f, 0); + JAIStreamMgr* streamMgr = mSoundMgr.getStreamMgr(); + JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(param_0, 0) JAUStreamStaticAramMgr_<1>(); + streamStaticAramMgr->reserveAram(NULL, 0, 0x14); + streamMgr->setStreamAramMgr(streamStaticAramMgr); + streamMgr->getParams()->moveVolume(1.0f, 0); + JASPoolAllocObject<Z2Audible>::newMemPool(0x4e); + mSoundMgr.getSeMgr()->setAudience(&mAudience); + mSoundMgr.getSeqMgr()->setAudience(&mAudience); + JASPoolAllocObject<Z2SoundHandlePool>::newMemPool(0x4e); + OSReport("[Z2AudioMgr::init]before Create Section: %d\n", param_0->getFreeSize()); + JAUSectionHeap* sectionHeap = JAUNewSectionHeap(true); + sectionHeap->setSeqDataArchive(param_3); + size_t resMaxSize = JASResArcLoader::getResMaxSize(param_3); + sectionHeap->newDynamicSeqBlock(0xe00); + sectionHeap->newDynamicSeqBlock(0x17e0); + sectionHeap->newDynamicSeqBlock(0x5380); + sectionHeap->newDynamicSeqBlock(resMaxSize); + Z2AudioArcLoader stack_a0(sectionHeap); + bool baaLoadResult = stack_a0.load(param_2); + JUT_ASSERT("Z2AudioMgr.cpp", 0xfc, baaLoadResult); + seqMgr->setSeqDataMgr(sectionHeap->getSeqDataMgr()); + if (sectionHeap->getStreamDataMgr()) { + streamMgr->setStreamDataMgr(sectionHeap->getStreamDataMgr()); + } else { + streamMgr->setStreamDataMgr(&mSoundInfo); + } + sectionHeap->finishBuild(); + initSe(); + JASSeqParser::registerSeqCallback(seqCallback); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -285,6 +319,7 @@ asm void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKR #include "asm/Z2AudioLib/Z2AudioMgr/init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive.s" } #pragma pop +#endif /* 802CD7F8-802CD888 2C8138 0090+00 1/0 0/0 0/0 .text __dt__24JAUStreamAramMgrBase_<1>Fv */ @@ -306,11 +341,11 @@ void Z2AudioMgr::setOutputMode(u32 mode) { /* 802CD8B4-802CD904 2C81F4 0050+00 1/1 0/0 0/0 .text zeldaGFrameWork__10Z2AudioMgrFv */ void Z2AudioMgr::zeldaGFrameWork() { - mStatusMgr.processTime(); + processTime(); mSpeechMgr.framework(); - mSeMgr.processSeFramework(); - mSeqMgr.processBgmFramework(); - mStatusMgr.processHeartGaugeSound(); + processSeFramework(); + processBgmFramework(); + processHeartGaugeSound(); } /* 802CD904-802CD974 2C8244 0070+00 0/0 1/1 0/0 .text gframeProcess__10Z2AudioMgrFv */ @@ -322,7 +357,7 @@ void Z2AudioMgr::gframeProcess() { } } else { mSoundMgr.framework(); - mSceneMgr.framework(); + framework(); } } @@ -378,6 +413,16 @@ asm bool Z2AudioMgr::hasReset() const { /* 802CDB1C-802CDB68 2C845C 004C+00 1/0 1/0 0/0 .text * startSound__10Z2AudioMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */ +// vtable order +#ifdef NONMATCHING +int Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, + JGeometry::TVec3<f32> const* param_2) { + if (mResettingFlag) { + return 0; + } + return mSoundMgr.startSound(param_0, param_1, param_2); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -388,6 +433,7 @@ extern "C" asm void func_802CDB1C() { #include "asm/Z2AudioLib/Z2AudioMgr/func_802CDB1C.s" } #pragma pop +#endif /* 802CDB68-802CDC08 2C84A8 00A0+00 1/0 0/0 0/0 .text __dt__26JAUStreamStaticAramMgr_<1>Fv */ #pragma push |
