diff --git a/include/Inagaki/GameAudioMain.h b/include/Inagaki/GameAudioMain.h index ac4a639d..00284341 100644 --- a/include/Inagaki/GameAudioMain.h +++ b/include/Inagaki/GameAudioMain.h @@ -123,7 +123,8 @@ class Main JAISoundHandle _24[4]; // JAISoundHandle _34[4]; // FxLineConfig *mConfig; // 44 - u8 _48[4]; // + u8 mState; // 48 + u8 _padding[3]; // PAUSE_STATUS mPauseStatus; // 4C int _50; // u8 _54[0x64 - 0x54]; // diff --git a/src/Inagaki/GameAudioMain.cpp b/src/Inagaki/GameAudioMain.cpp index ea46d5d2..318ac730 100644 --- a/src/Inagaki/GameAudioMain.cpp +++ b/src/Inagaki/GameAudioMain.cpp @@ -1,5 +1,8 @@ #include "Inagaki/GameAudioMain.h" -#include "Inagaki/GameMapSoundMgr.h" + +#include "JSystem/JAudio/System/JASAudioThread.h" +#include "JSystem/JAudio/System/JASWaveArcLoader.h" +#include "JSystem/JAudio/System/JASWaveBank.h" namespace GameAudio { @@ -12,9 +15,13 @@ Main::Main() { void Main::init(JKRSolidHeap *, u32, void *, void *, u32) {} -void Main::bootDSP() {} +void Main::bootDSP() { + JASAudioThread::bootDSP(); +} -bool Main::isActive() {} +bool Main::isActive() { + return mState & 0x10; +} void Main::initRaceSound() {} @@ -24,7 +31,23 @@ void Main::changeSection(u32) {} void Main::checkSection() {} -bool Main::isWaveLoaded(WS_ID) {} +bool Main::isWaveLoaded(WS_ID id) { + JAUSectionHeap* sectionHeap = JASGlobalInstance::sInstance; + if(sectionHeap != nullptr) + { + JASWaveBank* bank = sectionHeap->sectionHeapData_.waveBankTable.getWaveBank(id); + + if(bank != nullptr) + { + JASWaveArc* arc = bank->getWaveArc(0); + if (arc->_4c == 2) { + return true; + } + } + } + + return false; +} void Main::checkCourceOnRace() {}