diff --git a/include/JAZelAudio/JAIZelBasic.h b/include/JAZelAudio/JAIZelBasic.h index 6b3062fd0..125464d33 100644 --- a/include/JAZelAudio/JAIZelBasic.h +++ b/include/JAZelAudio/JAIZelBasic.h @@ -38,11 +38,11 @@ public: void onEnemyDamage(); void mbossBgmMuteProcess(); void mbossBgmNearByProcess(f32); - void checkBgmPlaying(); - void checkPlayingMainBgmFlag(); - void checkSubBgmPlaying(); - void checkPlayingSubBgmFlag(); - void checkPlayingStreamBgmFlag(); + bool checkBgmPlaying(); + int checkPlayingMainBgmFlag(); + bool checkSubBgmPlaying(); + int checkPlayingSubBgmFlag(); + int checkPlayingStreamBgmFlag(); void changeBgmStatus(s32); void changeSubBgmStatus(s32); void bgmMuteMtDragon(); @@ -102,7 +102,7 @@ public: BOOL check1stDynamicWave(); void load2ndDynamicWave(); void loadStaticWaves(); - BOOL checkFirstWaves(); + s32 checkFirstWaves(); void setLinkHp(s32, s32); void setLinkSwordType(s32, s32); void setLinkShieldType(s32, s32); @@ -145,8 +145,8 @@ public: void rainPlay(s32); virtual JAISound* makeSound(u32); - virtual bool getMapInfoFxline(u32); - virtual bool getMapInfoGround(u32); + virtual BOOL getMapInfoFxline(u32); + virtual BOOL getMapInfoGround(u32); virtual f32 getMapInfoFxParameter(u32); void setHour(s32 i_hour) { mHour = i_hour; } @@ -155,6 +155,18 @@ public: static JAIZelBasic* getInterface() { return zel_basic; } + // TODO + void bstHoriOff() {} + void bstHoriOn() {} + void calcMainBgmVol() {} + void calcSubBgmVol() {} + void checkSeMute() {} + void checkTBoxDemo() {} + void getCurCamera(u32) {} + void getLinkBootsType() {} + void getLinkSwShieldBeat() {} + void isTaktUsing() {} + static JAIZelBasic* zel_basic; // static m_bgm_mute_state; @@ -199,10 +211,13 @@ public: /* 0x0061 */ u8 field_0x0061; /* 0x0062 */ u8 field_0x0062; /* 0x0063 */ u8 field_0x0063; - /* 0x0064 */ u8 field_0x0064[0x0066 - 0x0064]; + /* 0x0064 */ u8 field_0x0064[0x0065 - 0x0064]; + /* 0x0065 */ u8 field_0x0065; /* 0x0066 */ u8 field_0x0066; - /* 0x0067 */ u8 field_0x0067[0x0070 - 0x0067]; - /* 0x0070 */ JAISound* mpSound; + /* 0x0067 */ u8 field_0x0067[0x0068 - 0x0067]; + /* 0x0068 */ JAISound* mpMainBgmSound; + /* 0x006C */ JAISound* mpSubBgmSound; + /* 0x0070 */ JAISound* mpStreamBgmSound; /* 0x0074 */ int field_0x0074; /* 0x0078 */ u32 field_0x0078; /* 0x007C */ u32 field_0x007c; diff --git a/include/JSystem/JAudio/JAIBankWave.h b/include/JSystem/JAudio/JAIBankWave.h index e79b170a0..1fe60019c 100644 --- a/include/JSystem/JAudio/JAIBankWave.h +++ b/include/JSystem/JAudio/JAIBankWave.h @@ -14,7 +14,7 @@ namespace JAInter { void finishSceneSet(u32); void loadSceneWave(s32, s32); void loadGroupWave(s32, s32); - void getWaveLoadStatus(s32); + s32 getWaveLoadStatus(s32); bool checkAllWaveLoadStatus(); extern s32* wsGroupNumber; diff --git a/include/JSystem/JAudio/JAIBasic.h b/include/JSystem/JAudio/JAIBasic.h index f7ea36301..f55a37a7f 100644 --- a/include/JSystem/JAudio/JAIBasic.h +++ b/include/JSystem/JAudio/JAIBasic.h @@ -19,8 +19,8 @@ class JAIBasic { public: JAIBasic(); virtual JAISound* makeSound(u32); - virtual bool getMapInfoFxline(u32); - virtual bool getMapInfoGround(u32); + virtual BOOL getMapInfoFxline(u32); + virtual BOOL getMapInfoGround(u32); virtual f32 getMapInfoFxParameter(u32); virtual void setSeExtParameter(JAISound*); virtual void setRegisterTrackCallback(); @@ -81,6 +81,22 @@ public: return msCurrentHeap; } + // TODO + void addInitOnCodeSeScene(u32, u32) {} + void checkAllWaveLoadStatus() {} + void checkEnablePrepare(u32) {} + void getAudioCamera() {} + void getInitDataInfo() {} + void getInitOnCodeSeScene() {} + void getSceneSetFlag() {} + void getSeSoundHandle() {} + void getWaveLoadStatus(s32) {} + void initAudio(JKRSolidHeap*, u32, u8) {} + void loadSceneWave(s32, s32) {} + void prepareSoundVec(u32, JAISound**, Vec*, u32, u32, u8) {} + void setInitDataInfo(char*) {} + void setInitOnCodeSeScene(u32*) {} + static JAIBasic* msBasic; static JKRSolidHeap* msCurrentHeap; }; diff --git a/include/JSystem/JAudio/JAISound.h b/include/JSystem/JAudio/JAISound.h index ef71c5002..7c5ff1867 100644 --- a/include/JSystem/JAudio/JAISound.h +++ b/include/JSystem/JAudio/JAISound.h @@ -72,6 +72,46 @@ public: int checkSoundHandle(u32, void*); void initParameter(JAISound**, JAInter::Actor*, u32, u32, u8, void*); + // TODO + void decWait() {} + void getAct() {} + void getAdjustPriority() {} + void getFadetime() {} + void getID() {} + void getInfoPointer() {} + void getMapInfo() {} + void getNextSound() {} + void getPlayGameFrameCounter() {} + void getPlayer() {} + void getPositionInfo() {} + void getPrevSound() {} + void getPriority() {} + void getStatus() {} + void getTrack() {} + void getTrans() {} + void getWait() {} + void incPlayGameFrameCounter() {} + void setCustomParameterPointer(void*) {} + void setDemoFxmix(f32, u32) {} + void setDemoPan(f32, u32) {} + void setDemoPitch(f32, u32) {} + void setDemoVolume(f32, u32) {} + void setFadetime(u32) {} + void setID(u32) {} + void setMainSoundPPointer(JAISound**) {} + void setNextSound(JAISound*) {} + void setPrevSound(JAISound*) {} + void setPriority(u32) {} + void setRandom(u8) {} + void setSeInterDolbyU7(u8, u8, u32, u8) {} + void setSeInterFxmixU7(u8, u8, u32, u8) {} + void setSeqInterVolumeU7(u8, u8, u32) {} + void setStatus(u8) {} + void setTrack(u8) {} + void setTrackVolumeU7(u8, u8, u32) {} + void setVolumeU7(u8, u32, u8) {} + void setWait(u8) {} + /* 0x04 */ u8 field_0x4; /* 0x05 */ u8 field_0x5; /* 0x06 */ u8 field_0x6; diff --git a/include/JSystem/JAudio/JAIStreamMgr.h b/include/JSystem/JAudio/JAIStreamMgr.h index 433aebe16..da5162161 100644 --- a/include/JSystem/JAudio/JAIStreamMgr.h +++ b/include/JSystem/JAudio/JAIStreamMgr.h @@ -28,9 +28,11 @@ namespace JAInter { extern LinkSound streamControl; extern u8 flags; - extern int streamUpdate; + extern int streamUpdate; // TODO pointer to something, not actually an int extern u8* streamList; extern u8* initOnCodeStrm; + + inline int getUpdateInfo() { return streamUpdate; } } namespace StreamLib { diff --git a/src/JAZelAudio/JAIZelBasic.cpp b/src/JAZelAudio/JAIZelBasic.cpp index b57b72691..0f51aecff 100644 --- a/src/JAZelAudio/JAIZelBasic.cpp +++ b/src/JAZelAudio/JAIZelBasic.cpp @@ -4,14 +4,18 @@ // #include "JAZelAudio/JAIZelBasic.h" -#include "dolphin/types.h" +#include "JSystem/JAudio/JAISound.h" +#include "JSystem/JAudio/JAIStreamMgr.h" +#include "JSystem/JAudio/JAIBankWave.h" + +JAIZelBasic* JAIZelBasic::zel_basic; /* 802A1C78-802A1EB4 .text __ct__11JAIZelBasicFv */ JAIZelBasic::JAIZelBasic() { zel_basic = this; field_0x0021 = 0; field_0x0024 = 0; - mpSound = 0; + mpStreamBgmSound = NULL; field_0x0020 = 0; field_0x0074 = -1; field_0x0078 = -1; @@ -180,8 +184,12 @@ void JAIZelBasic::bgmStop(u32, s32) { } /* 802A4770-802A47B8 .text mainBgmStopOnly__11JAIZelBasicFUl */ -void JAIZelBasic::mainBgmStopOnly(u32) { - /* Nonmatching */ +void JAIZelBasic::mainBgmStopOnly(u32 param_1) { + if (mpMainBgmSound) { + mpMainBgmSound->stop(param_1); + } + mpMainBgmSound = NULL; + field_0x0078 = -1; } /* 802A47B8-802A4CDC .text subBgmStart__11JAIZelBasicFUl */ @@ -225,8 +233,8 @@ void JAIZelBasic::bgmHitSound(s32) { } /* 802A579C-802A57A4 .text bgmSetSwordUsing__11JAIZelBasicFl */ -void JAIZelBasic::bgmSetSwordUsing(s32) { - /* Nonmatching */ +void JAIZelBasic::bgmSetSwordUsing(s32 param_1) { + field_0x00c9 = param_1; } /* 802A57A4-802A5818 .text onEnemyDamage__11JAIZelBasicFv */ @@ -245,33 +253,48 @@ void JAIZelBasic::mbossBgmNearByProcess(f32) { } /* 802A59B0-802A59D8 .text checkBgmPlaying__11JAIZelBasicFv */ -void JAIZelBasic::checkBgmPlaying() { - /* Nonmatching */ +bool JAIZelBasic::checkBgmPlaying() { + if (mpMainBgmSound || mpStreamBgmSound) { + return true; + } else { + return false; + } } /* 802A59D8-802A59F4 .text checkPlayingMainBgmFlag__11JAIZelBasicFv */ -void JAIZelBasic::checkPlayingMainBgmFlag() { - /* Nonmatching */ +int JAIZelBasic::checkPlayingMainBgmFlag() { + if (mpMainBgmSound) { + return mpMainBgmSound->field_0xc; + } else { + return -1; + } } /* 802A59F4-802A5A04 .text checkSubBgmPlaying__11JAIZelBasicFv */ -void JAIZelBasic::checkSubBgmPlaying() { - /* Nonmatching */ +bool JAIZelBasic::checkSubBgmPlaying() { + return mpSubBgmSound != NULL; } /* 802A5A04-802A5A20 .text checkPlayingSubBgmFlag__11JAIZelBasicFv */ -void JAIZelBasic::checkPlayingSubBgmFlag() { - /* Nonmatching */ +int JAIZelBasic::checkPlayingSubBgmFlag() { + if (mpSubBgmSound) { + return mpSubBgmSound->field_0xc; + } else { + return -1; + } } /* 802A5A20-802A5A40 .text checkPlayingStreamBgmFlag__11JAIZelBasicFv */ -void JAIZelBasic::checkPlayingStreamBgmFlag() { +int JAIZelBasic::checkPlayingStreamBgmFlag() { /* Nonmatching */ + JAInter::StreamMgr::getUpdateInfo(); } /* 802A5A40-802A5A78 .text changeBgmStatus__11JAIZelBasicFl */ -void JAIZelBasic::changeBgmStatus(s32) { - /* Nonmatching */ +void JAIZelBasic::changeBgmStatus(s32 param_0) { + if (mpMainBgmSound) { + mpMainBgmSound->setPortData(9, param_0); + } } /* 802A5A78-802A5AC0 .text changeSubBgmStatus__11JAIZelBasicFl */ @@ -281,7 +304,7 @@ void JAIZelBasic::changeSubBgmStatus(s32) { /* 802A5AC0-802A5ACC .text bgmMuteMtDragon__11JAIZelBasicFv */ void JAIZelBasic::bgmMuteMtDragon() { - /* Nonmatching */ + field_0x0065 = 1; } /* 802A5ACC-802A5BA4 .text enemyNearBy__11JAIZelBasicFv */ @@ -341,7 +364,7 @@ void JAIZelBasic::startLandingDemo() { /* 802A6608-802A6614 .text endLandingDemo__11JAIZelBasicFv */ void JAIZelBasic::endLandingDemo() { - /* Nonmatching */ + mbLandingDemoStarted = 0; } /* 802A6614-802A6720 .text initSe__11JAIZelBasicFv */ @@ -435,8 +458,8 @@ void JAIZelBasic::shipCruiseSePlay(Vec*, f32) { } /* 802A965C-802A9664 .text setShipSailState__11JAIZelBasicFl */ -void JAIZelBasic::setShipSailState(s32) { - /* Nonmatching */ +void JAIZelBasic::setShipSailState(s32 isSailing) { + mIsSailing = isSailing; } /* 802A9664-802A9874 .text init__11JAIZelBasicFP12JKRSolidHeapUl */ @@ -505,8 +528,8 @@ void JAIZelBasic::setLinkGroupInfo(u8) { } /* 802AA378-802AA380 .text getMapInfoFxline__11JAIZelBasicFUl */ -bool JAIZelBasic::getMapInfoFxline(u32) { - /* Nonmatching */ +BOOL JAIZelBasic::getMapInfoFxline(u32 param_0) { + return param_0 & 0xFFFF; } /* 802AA380-802AA388 .text getMapInfoFxParameter__11JAIZelBasicFUl */ @@ -515,8 +538,8 @@ f32 JAIZelBasic::getMapInfoFxParameter(u32) { } /* 802AA388-802AA390 .text getMapInfoGround__11JAIZelBasicFUl */ -bool JAIZelBasic::getMapInfoGround(u32) { - /* Nonmatching */ +BOOL JAIZelBasic::getMapInfoGround(u32) { + return FALSE; } /* 802AA390-802AACE8 .text setScene__11JAIZelBasicFllll */ @@ -580,8 +603,8 @@ void JAIZelBasic::loadStaticWaves() { } /* 802AB888-802AB8B0 .text checkFirstWaves__11JAIZelBasicFv */ -BOOL JAIZelBasic::checkFirstWaves() { - /* Nonmatching */ +s32 JAIZelBasic::checkFirstWaves() { + return 2 - JAInter::BankWave::getWaveLoadStatus(2); } /* 802AB8B0-802AB9F4 .text setLinkHp__11JAIZelBasicFll */ diff --git a/src/JSystem/JAudio/JAIBankWave.cpp b/src/JSystem/JAudio/JAIBankWave.cpp index fe43cb0f2..34da224a2 100644 --- a/src/JSystem/JAudio/JAIBankWave.cpp +++ b/src/JSystem/JAudio/JAIBankWave.cpp @@ -65,7 +65,7 @@ void JAInter::BankWave::loadGroupWave(s32, s32) { } /* 802916B0-802916C0 .text getWaveLoadStatus__Q27JAInter8BankWaveFl */ -void JAInter::BankWave::getWaveLoadStatus(s32) { +s32 JAInter::BankWave::getWaveLoadStatus(s32) { /* Nonmatching */ } diff --git a/src/JSystem/JAudio/JAIBasic.cpp b/src/JSystem/JAudio/JAIBasic.cpp index 28ade8cdf..ee1c53e42 100644 --- a/src/JSystem/JAudio/JAIBasic.cpp +++ b/src/JSystem/JAudio/JAIBasic.cpp @@ -224,13 +224,13 @@ void JAIBasic::deleteObject(void*) { } /* 80290D94-80290DA0 .text getMapInfoFxline__8JAIBasicFUl */ -bool JAIBasic::getMapInfoFxline(u32 param_1) { - return param_1 != 0; +BOOL JAIBasic::getMapInfoFxline(u32 param_1) { + return param_1 ? TRUE : FALSE; } /* 80290DA0-80290DAC .text getMapInfoGround__8JAIBasicFUl */ -bool JAIBasic::getMapInfoGround(u32 param_1) { - return param_1 != 0; +BOOL JAIBasic::getMapInfoGround(u32 param_1) { + return param_1 ? TRUE : FALSE; } /* 80290DAC-80290DC4 .text getMapInfoFxParameter__8JAIBasicFUl */