summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2024-10-23 19:25:13 -0400
committerGitHub <noreply@github.com>2024-10-24 02:25:13 +0300
commit5650c7fe0861609b4b2c6db09312622a1fcd7fc1 (patch)
tree16c6c124bc0c92edfc8a1f30d54276656087b0f8 /src
parentc44ea2139d298e515f2a5208bf8847a88c15ecf1 (diff)
JAudio2 and Z2AudioLib work (#2223)
* JAudio2 and Z2AudioLib work * check1stDynamicWave matched
Diffstat (limited to 'src')
-rw-r--r--src/JSystem/JAudio2/JAISe.cpp20
-rw-r--r--src/JSystem/JAudio2/JAISeMgr.cpp183
-rw-r--r--src/JSystem/JAudio2/JAISeq.cpp162
-rw-r--r--src/JSystem/JAudio2/JAISeqMgr.cpp116
-rw-r--r--src/JSystem/JAudio2/JAISound.cpp14
-rw-r--r--src/JSystem/JAudio2/JAIStream.cpp109
-rw-r--r--src/JSystem/JAudio2/JAIStreamMgr.cpp95
-rw-r--r--src/JSystem/JAudio2/JASAiCtrl.cpp177
-rw-r--r--src/JSystem/JAudio2/JASAramStream.cpp211
-rw-r--r--src/JSystem/JAudio2/JASAudioThread.cpp111
-rw-r--r--src/JSystem/JAudio2/JASBNKParser.cpp374
-rw-r--r--src/JSystem/JAudio2/JASBank.cpp100
-rw-r--r--src/JSystem/JAudio2/JASBasicBank.cpp127
-rw-r--r--src/JSystem/JAudio2/JASBasicInst.cpp4
-rw-r--r--src/JSystem/JAudio2/JASBasicWaveBank.cpp144
-rw-r--r--src/JSystem/JAudio2/JASDSPInterface.cpp42
-rw-r--r--src/JSystem/JAudio2/JASHeapCtrl.cpp190
-rw-r--r--src/JSystem/JAudio2/JASSeqParser.cpp362
-rw-r--r--src/JSystem/JAudio2/JASSeqReader.cpp8
-rw-r--r--src/JSystem/JAudio2/JASSimpleWaveBank.cpp174
-rw-r--r--src/JSystem/JAudio2/JASTaskThread.cpp46
-rw-r--r--src/JSystem/JAudio2/JASTrack.cpp189
-rw-r--r--src/JSystem/JAudio2/JASWSParser.cpp189
-rw-r--r--src/JSystem/JAudio2/JASWaveArcLoader.cpp109
-rw-r--r--src/JSystem/JAudio2/JAUBankTable.cpp8
-rw-r--r--src/JSystem/JAudio2/JAUInitializer.cpp128
-rw-r--r--src/JSystem/JAudio2/JAUSectionHeap.cpp395
-rw-r--r--src/JSystem/JAudio2/dspproc.cpp17
-rw-r--r--src/JSystem/JAudio2/dsptask.cpp3
-rw-r--r--src/JSystem/JAudio2/osdsp_task.cpp23
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/algorithm.h4
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h14
-rw-r--r--src/Z2AudioLib/Z2Audience.cpp403
-rw-r--r--src/Z2AudioLib/Z2AudioArcLoader.cpp69
-rw-r--r--src/Z2AudioLib/Z2AudioMgr.cpp311
-rw-r--r--src/Z2AudioLib/Z2Creature.cpp289
-rw-r--r--src/Z2AudioLib/Z2EnvSeMgr.cpp20
-rw-r--r--src/Z2AudioLib/Z2FxLineMgr.cpp348
-rw-r--r--src/Z2AudioLib/Z2SceneMgr.cpp2780
-rw-r--r--src/Z2AudioLib/Z2SeMgr.cpp3
-rw-r--r--src/Z2AudioLib/Z2SeqMgr.cpp86
-rw-r--r--src/Z2AudioLib/Z2SoundHandles.cpp58
-rw-r--r--src/Z2AudioLib/Z2SoundInfo.cpp163
-rw-r--r--src/Z2AudioLib/Z2SoundMgr.cpp201
-rw-r--r--src/Z2AudioLib/Z2SoundObjMgr.cpp203
-rw-r--r--src/Z2AudioLib/Z2SpeechMgr2.cpp1468
-rw-r--r--src/Z2AudioLib/Z2StatusMgr.cpp13
-rw-r--r--src/Z2AudioLib/Z2WolfHowlMgr.cpp82
-rw-r--r--src/d/actor/d_a_e_vt.cpp4
-rw-r--r--src/d/actor/d_a_npc_zrz.cpp4
-rw-r--r--src/f_ap/f_ap_game.cpp2
51 files changed, 3333 insertions, 7022 deletions
diff --git a/src/JSystem/JAudio2/JAISe.cpp b/src/JSystem/JAudio2/JAISe.cpp
index cb8da0bc68..e1de20372d 100644
--- a/src/JSystem/JAudio2/JAISe.cpp
+++ b/src/JSystem/JAudio2/JAISe.cpp
@@ -6,23 +6,6 @@
#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JAIAudience.h"
#include "JSystem/JAudio2/JAISeMgr.h"
-#include "dolphin/types.h"
-
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
/* 8029F03C-8029F0F8 29997C 00BC+00 0/0 1/1 0/0 .text
* __ct__5JAISeFP8JAISeMgrP27JAISoundStrategyMgr<5JAISe>Ul */
@@ -32,7 +15,6 @@ JAISe::JAISe(JAISeMgr* param_0, JAISoundStrategyMgr<JAISe>* param_1, u32 param_2
inner_.mProperPriority = param_2;
}
-
/* 8029F0F8-8029F214 299A38 011C+00 1/1 0/0 0/0 .text mixOut___5JAISeFRC14JASSoundParams
*/
void JAISe::mixOut_(JASSoundParams const& param_0) {
@@ -239,4 +221,4 @@ JAISe* JAISe::asSe() {
/* 8029F868-8029F870 29A1A8 0008+00 2/1 0/0 0/0 .text getTempoMgr__5JAISeFv */
JAITempoMgr* JAISe::getTempoMgr() {
return &inner_.mTempoMgr;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JAISeMgr.cpp b/src/JSystem/JAudio2/JAISeMgr.cpp
index 9fcc1e4ede..12a170baed 100644
--- a/src/JSystem/JAudio2/JAISeMgr.cpp
+++ b/src/JSystem/JAudio2/JAISeMgr.cpp
@@ -7,88 +7,6 @@
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
#include "JSystem/JAudio2/JASReport.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion();
-extern "C" void releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion();
-extern "C" void JAISeMgr_calc___16JAISeCategoryMgrFv();
-extern "C" void JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv();
-extern "C" void func_8029FC34(void* _this);
-extern "C" void JAISeMgr_acceptsNewSe___16JAISeCategoryMgrCFUl();
-extern "C" void sortByPriority___16JAISeCategoryMgrFv();
-extern "C" void stop__16JAISeCategoryMgrFUl();
-extern "C" void stop__16JAISeCategoryMgrFv();
-extern "C" void stopSoundID__16JAISeCategoryMgrF10JAISoundID();
-extern "C" void pause__16JAISeCategoryMgrFb();
-extern "C" void JAISeMgr_mixOut___16JAISeCategoryMgrFRC18JAISoundParamsMove16JAISoundActivity();
-extern "C" void __ct__8JAISeMgrFb();
-extern "C" void isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion();
-extern "C" void releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion();
-extern "C" void setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement();
-extern "C" void stop__8JAISeMgrFv();
-extern "C" void stopSoundID__8JAISeMgrF10JAISoundID();
-extern "C" void initParams__8JAISeMgrFv();
-extern "C" void setAudience__8JAISeMgrFP11JAIAudience();
-extern "C" void setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr();
-extern "C" void resetSeqDataMgr__8JAISeMgrFv();
-extern "C" void newSe___8JAISeMgrFiUl();
-extern "C" void calc__8JAISeMgrFv();
-extern "C" void mixOut__8JAISeMgrFv();
-extern "C" void func_802A0768();
-extern "C" void getNumActiveSe__8JAISeMgrCFv();
-extern "C" void __dt__8JAISeMgrFv();
-extern "C" void __ct__16JAISeCategoryMgrFv();
-extern "C" extern char const* const JAISeMgr__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void __dt__16JAISeCategoryMgrFv();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void JASReport__FPCce();
-extern "C" void __dt__8JASTrackFv();
-extern "C" void combine__14JASSoundParamsFRC14JASSoundParamsRC14JASSoundParams();
-extern "C" void func_8029F03C();
-extern "C" void JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity();
-extern "C" void JAISeCategoryMgr_calc___5JAISeFv();
-extern "C" void func_8029F650();
-extern "C" void __dt__14JAISeqDataUserFv();
-extern "C" void attachHandle__8JAISoundFP14JAISoundHandle();
-extern "C" void stop__8JAISoundFUl();
-extern "C" void stop__8JAISoundFv();
-extern "C" void __dl__FPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __register_global_object();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__5JAISe[22];
-extern "C" extern void* __vt__14JAISeqDataUser[5 + 1 /* padding */];
-extern "C" extern u8 data_80450B5C[4];
-extern "C" extern u8 data_80451310[8];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
/* 8029F8B0-8029F91C 29A1F0 006C+00 2/1 0/0 0/0 .text
* isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion */
@@ -135,19 +53,9 @@ void JAISeCategoryMgr::JAISeMgr_calc_() {
sortByPriority_();
}
-/* ############################################################################################## */
-/* 80434078-80434084 060D98 000C+00 2/2 0/0 0/0 .bss @744 */
-static u8 lit_744[12];
-
-/* 80434084-80434098 060DA4 0010+04 2/2 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___26JASPoolAllocObject<5JAISe>Fv */
-extern u8 data_80434084[16 + 4 /* padding */];
-u8 data_80434084[16 + 4 /* padding */];
-
/* 8029FB30-8029FC34 29A470 0104+00 1/1 0/0 0/0 .text JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv
*/
-// Need to setup JAISe dtor
-#ifdef NONMATCHING
+// JASPoolAllocObject<_> locations
void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() {
JSULink<JAISe>* link = mSeList.getFirst();
while (link != NULL) {
@@ -159,22 +67,10 @@ void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() {
link = link_next;
}
}
-#else
-void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() {
- // NONMATCHING
-}
-#endif
-
-/* 8029FC34-8029FC88 29A574 0054+00 2/2 1/1 0/0 .text __dt__18JASMemPool<5JAISe>Fv */
-extern "C" void func_8029FC34(void* _this) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
/* 8029FC88-8029FD40 29A5C8 00B8+00 1/1 0/0 0/0 .text
* JAISeMgr_acceptsNewSe___16JAISeCategoryMgrCFUl */
-u32 JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const {
+bool JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const {
s32 maxSe = getMaxSe();
if (maxSe <= 0) {
return 1;
@@ -244,25 +140,10 @@ void JAISeCategoryMgr::pause(bool param_0) {
}
}
-/* ############################################################################################## */
-/* 8045578C-80455790 003D8C 0004+00 4/4 0/0 0/0 .sdata2 @1040 */
-SECTION_SDATA2 static f32 lit_1040 = 1.0f;
-
-/* 80455790-80455794 003D90 0004+00 4/4 0/0 0/0 .sdata2 @1041 */
-SECTION_SDATA2 static u8 lit_1041[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455794-80455798 003D94 0004+00 4/4 0/0 0/0 .sdata2 @1042 */
-SECTION_SDATA2 static f32 lit_1042 = 0.5f;
-
/* 8029FF18-802A0074 29A858 015C+00 1/1 0/0 0/0 .text
* JAISeMgr_mixOut___16JAISeCategoryMgrFRC18JAISoundParamsMove16JAISoundActivity */
void JAISeCategoryMgr::JAISeMgr_mixOut_(JAISoundParamsMove const& param_0,
- JAISoundActivity param_1) {
+ JAISoundActivity param_1) {
JASSoundParams aJStack_30;
aJStack_30.combine(param_0.mParams, mParams.mParams);
JSULink<JAISe>* this_00 = mSeList.getFirst();
@@ -288,27 +169,15 @@ void JAISeCategoryMgr::JAISeMgr_mixOut_(JAISoundParamsMove const& param_0,
}
}
-
-/* ############################################################################################## */
-/* 803C98B0-803C98C4 0269D0 0014+00 2/2 1/1 0/0 .data __vt__8JAISeMgr */
-SECTION_DATA extern void* __vt__8JAISeMgr[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8JAISeMgrFv,
- (void*)isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion,
- (void*)releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion,
-};
-
/* 802A0074-802A0168 29A9B4 00F4+00 0/0 1/1 0/0 .text __ct__8JAISeMgrFb */
JAISeMgr::JAISeMgr(bool param_0) : JASGlobalInstance<JAISeMgr>(param_0) {
mAudience = NULL;
mSeqDataMgr = NULL;
- field_0x10 = 0;
+ mStrategyMgr = NULL;
mParams.init();
JAISoundActivity::init();
}
-
/* 802A0168-802A01D8 29AAA8 0070+00 1/0 0/0 0/0 .text
* isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion */
bool JAISeMgr::isUsingSeqData(JAISeqDataRegion const& param_0) {
@@ -389,8 +258,23 @@ void JAISeMgr::resetSeqDataMgr() {
}
/* 802A0484-802A0574 29ADC4 00F0+00 1/1 0/0 0/0 .text newSe___8JAISeMgrFiUl */
-JAISe* JAISeMgr::newSe_(int param_0, u32 param_1) {
- // NONMATCHING
+// NONMATCHING JASPollAllocObject<_> locations
+JAISe* JAISeMgr::newSe_(int i_category, u32 param_1) {
+ if (i_category < 0) {
+ i_category = 0;
+ }
+
+ if (!mCategoryMgrs[i_category].JAISeMgr_acceptsNewSe_(param_1)) {
+ return NULL;
+ }
+
+ JAISe* se = new JAISe(this, mStrategyMgr, param_1);
+ if (se == NULL) {
+ return NULL;
+ }
+
+ mCategoryMgrs[i_category].JAISeMgr_appendSe_(se);
+ return se;
}
/* 802A0574-802A0704 29AEB4 0190+00 0/0 1/1 0/0 .text calc__8JAISeMgrFv */
@@ -411,8 +295,6 @@ void JAISeMgr::mixOut() {
}
}
-/* ############################################################################################## */
-
/* 802A0768-802A08D0 29B0A8 0168+00 0/0 1/1 0/0 .text
* startSound__8JAISeMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
bool JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
@@ -456,25 +338,10 @@ int JAISeMgr::getNumActiveSe() const {
return sum;
}
-/* 802A08FC-802A0994 29B23C 0098+00 1/0 0/0 0/0 .text __dt__8JAISeMgrFv */
-extern "C" void __dt__8JAISeMgrFv() {
- // asm JAISeMgr::~JAISeMgr() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 803C98C4-803C98D8 0269E4 0014+00 1/1 1/1 0/0 .data __vt__16JAISeCategoryMgr */
-SECTION_DATA extern void* __vt__16JAISeCategoryMgr[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16JAISeCategoryMgrFv,
- (void*)isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion,
- (void*)releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion,
-};
-
/* 802A0994-802A0A6C 29B2D4 00D8+00 1/1 0/0 0/0 .text __ct__16JAISeCategoryMgrFv */
JAISeCategoryMgr::JAISeCategoryMgr() {
- // NONMATCHING
+ mParams.init();
+ mMaxActiveSe = 0;
+ mMaxInactiveSe = 0;
+ field_0x4.field_0x0 = 0;
}
-
-/* 8039B8F8-8039B8F8 027F58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JAISeq.cpp b/src/JSystem/JAudio2/JAISeq.cpp
index dc55066358..430c92df1b 100644
--- a/src/JSystem/JAudio2/JAISeq.cpp
+++ b/src/JSystem/JAudio2/JAISeq.cpp
@@ -9,127 +9,17 @@
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JAudio2/JAIAudience.h"
-#include "dol2asm.h"
-//
-// Forward References:
-//
-
-extern "C" static bool func_802A0A6C(JASTrack*);
-extern "C" void func_802A0A8C();
-extern "C" void func_802A0B64();
-extern "C" void playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity();
-extern "C" void reserveChildTracks___6JAISeqFi();
-extern "C" void releaseChildTracks___6JAISeqFv();
-extern "C" void prepare_getSeqData___6JAISeqFv();
-extern "C" void prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity();
-extern "C" void JAISeqMgr_calc___6JAISeqFv();
-extern "C" void die___6JAISeqFv();
-extern "C" void func_802A1268(void* _this);
-extern "C" void JAISound_tryDie___6JAISeqFv();
-extern "C" void mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity();
-extern "C" void JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity();
-extern "C" s32 getNumChild__6JAISeqCFv();
-extern "C" void getChild__6JAISeqFi();
-extern "C" void releaseChild__6JAISeqFi();
-extern "C" void getTrack__6JAISeqFv();
-extern "C" void getChildTrack__6JAISeqFi();
-extern "C" void asSeq__6JAISeqFv();
-extern "C" void getTempoMgr__6JAISeqFv();
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void __ct__8JASTrackFv();
-extern "C" void __dt__8JASTrackFv();
-extern "C" void setChannelMgrCount__8JASTrackFUl();
-extern "C" void assignExtBuffer__8JASTrackFUlP14JASSoundParams();
-extern "C" void setSeqData__8JASTrackFPvUl();
-extern "C" void startSeq__8JASTrackFv();
-extern "C" void stopSeq__8JASTrackFv();
-extern "C" void connectChild__8JASTrackFUlP8JASTrack();
-extern "C" void mute__8JASTrackFb();
-extern "C" void pause__8JASTrackFb();
-extern "C" void setTempoRate__8JASTrackFf();
-extern "C" void func_802932E0(void* _this);
-extern "C" void mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf();
-extern "C" void __ct__8JAISoundFv();
-extern "C" void func_802A2328();
-extern "C" bool asSe__8JAISoundFv();
-extern "C" bool asStream__8JAISoundFv();
-extern "C" void die_JAISound___8JAISoundFv();
-extern "C" void increasePrepareCount_JAISound___8JAISoundFv();
-extern "C" void calc_JAISound___8JAISoundFv();
-extern "C" void initTrack_JAISound___8JAISoundFP8JASTrack();
-extern "C" void init__13JAISoundChildFv();
-extern "C" void mixOut__13JAISoundChildFP8JASTrack();
-extern "C" void calc__13JAISoundChildFv();
-extern "C" void __dl__FPv();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern u8 data_80431B04[16 + 4 /* padding */];
-extern "C" extern u8 struct_80451230[8];
-extern "C" extern u8 data_80451318[8];
-
-//
-// Declarations:
-//
+namespace {
/* 802A0A6C-802A0A8C 29B3AC 0020+00 1/1 0/0 0/0 .text
* JASTrack_isFreeOrStopped__20@unnamed@JAISeq_cpp@FP8JASTrack */
-static bool func_802A0A6C(JASTrack* track) {
+static bool JASTrack_isFreeOrStopped(JASTrack* track) {
u8 status = track->getStatus();
return status == 0 || status == 2;
}
-/* 803C98F4-803C9928 026A14 0030+04 1/1 2/2 0/0 .data __vt__6JAISeq */
-SECTION_DATA extern void* __vt__6JAISeq[12 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)getNumChild__6JAISeqCFv,
- (void*)getChild__6JAISeqFi,
- (void*)releaseChild__6JAISeqFi,
- (void*)asSe__8JAISoundFv,
- (void*)asSeq__6JAISeqFv,
- (void*)asStream__8JAISoundFv,
- (void*)getTrack__6JAISeqFv,
- (void*)getChildTrack__6JAISeqFi,
- (void*)getTempoMgr__6JAISeqFv,
- (void*)JAISound_tryDie___6JAISeqFv,
-};
-
-/* 80455798-8045579C 003D98 0004+00 3/3 0/0 0/0 .sdata2 @642 */
-SECTION_SDATA2 static f32 lit_642 = 1.0f;
-
-/* 8045579C-804557A0 003D9C 0004+00 4/4 0/0 0/0 .sdata2 @643 */
-SECTION_SDATA2 static u8 lit_643[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 804557A0-804557A8 003DA0 0004+04 3/3 0/0 0/0 .sdata2 @644 */
-SECTION_SDATA2 static f32 lit_644[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
+} // namespace
/* 802A0A8C-802A0B64 29B3CC 00D8+00 0/0 2/1 0/0 .text
* __ct__6JAISeqFP9JAISeqMgrP28JAISoundStrategyMgr<6JAISeq> */
@@ -144,7 +34,8 @@ JAISeq::JAISeq(JAISeqMgr* param_0, JAISoundStrategyMgr<JAISeq>* param_1) : JSULi
/* 802A0B64-802A0C04 29B4A4 00A0+00 0/0 1/1 0/0 .text
* JAISeqMgr_startID___6JAISeqF10JAISoundIDPCQ29JGeometry8TVec3<f>P11JAIAudienceii */
-void JAISeq::JAISeqMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1, JAIAudience* param_2, int param_3, int param_4) {
+void JAISeq::JAISeqMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1,
+ JAIAudience* param_2, int param_3, int param_4) {
inner_.field_0x39c = param_3;
reserveChildTracks_(param_4);
start_JAISound_(param_0, param_1, param_2);
@@ -169,15 +60,10 @@ void JAISeq::playSeqData_(JASSoundParams const& param_0, JAISoundActivity param_
inner_.outputTrack.startSeq();
}
-/* ############################################################################################## */
-/* 80434098-804340A4 060DB8 000C+00 1/1 0/0 0/0 .bss @716 */
-static u8 lit_716[12];
-
/* 802A0CA4-802A0E48 29B5E4 01A4+00 1/1 0/0 0/0 .text reserveChildTracks___6JAISeqFi */
void JAISeq::reserveChildTracks_(int param_0) {
for (int i = 0; i < 2; i++) {
- JASPoolAllocObject_MultiThreaded<JASTrack>* allocobj = new JASPoolAllocObject_MultiThreaded<JASTrack>();
- JASTrack* track = new (allocobj) JASTrack();
+ JASTrack* track = new JASTrack();
if (track) {
track->setAutoDelete(true);
inner_.outputTrack.connectChild(i, track);
@@ -185,8 +71,7 @@ void JAISeq::reserveChildTracks_(int param_0) {
if (i * 16 + j >= param_0) {
continue;
}
- JASPoolAllocObject_MultiThreaded<JASTrack>* allocobj2 = new JASPoolAllocObject_MultiThreaded<JASTrack>();
- JASTrack* track2 = new (allocobj2) JASTrack();
+ JASTrack* track2 = new JASTrack();
if (track2) {
track2->setAutoDelete(true);
track->connectChild(j, track2);
@@ -196,8 +81,8 @@ void JAISeq::reserveChildTracks_(int param_0) {
}
}
-
/* 802A0E48-802A0EDC 29B788 0094+00 1/1 0/0 0/0 .text releaseChildTracks___6JAISeqFv */
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
void JAISeq::releaseChildTracks_() {
for (u32 i = 0; i < 2; i++) {
JASTrack* track = inner_.outputTrack.getChild(i);
@@ -283,20 +168,12 @@ void JAISeq::JAISeqMgr_calc_() {
}
}
-/* ############################################################################################## */
-/* 804340A4-804340B0 060DC4 000C+00 3/3 0/0 0/0 .bss @896 */
-static u8 lit_896[12];
-
-/* 804340B0-804340C0 060DD0 0010+00 3/3 4/4 0/0 .bss
- * memPool_$localstatic3$getMemPool___35JASPoolAllocObject<13JAISoundChild>Fv */
-extern u8 data_804340B0[16];
-u8 data_804340B0[16];
-
/* 802A1180-802A1268 29BAC0 00E8+00 2/2 0/0 0/0 .text die___6JAISeqFv */
+// NONMATCHING JASPoolAllocObject<_> locations
void JAISeq::die_() {
for (int i = 0; i < 32; i++) {
if (inner_.mSoundChild[i]) {
- delete (JASPoolAllocObject<JAISoundChild>*)inner_.mSoundChild[i];
+ delete inner_.mSoundChild[i];
inner_.mSoundChild[i] = NULL;
}
}
@@ -308,15 +185,9 @@ void JAISeq::die_() {
die_JAISound_();
}
-
-/* 802A1268-802A12BC 29BBA8 0054+00 3/3 4/4 0/0 .text __dt__27JASMemPool<13JAISoundChild>Fv */
-extern "C" void func_802A1268(void* _this) {
- // NONMATCHING
-}
-
/* 802A12BC-802A1348 29BBFC 008C+00 1/0 0/0 0/0 .text JAISound_tryDie___6JAISeqFv */
bool JAISeq::JAISound_tryDie_() {
- if (func_802A0A6C(&inner_.outputTrack)) {
+ if (JASTrack_isFreeOrStopped(&inner_.outputTrack)) {
die_();
return true;
}
@@ -327,7 +198,6 @@ bool JAISeq::JAISound_tryDie_() {
return false;
}
-
/* 802A1348-802A14FC 29BC88 01B4+00 2/2 0/0 0/0 .text
* mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity */
void JAISeq::mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
@@ -357,7 +227,6 @@ void JAISeq::mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
}
}
-
/* 802A14FC-802A1570 29BE3C 0074+00 0/0 1/1 0/0 .text
* JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity */
void JAISeq::JAISeqMgr_mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
@@ -372,12 +241,12 @@ s32 JAISeq::getNumChild() const {
}
/* 802A1578-802A165C 29BEB8 00E4+00 1/0 0/0 0/0 .text getChild__6JAISeqFi */
+// NONMATCHING JASPoolAllocObject<_> locations
JAISoundChild* JAISeq::getChild(int index) {
if (inner_.mSoundChild[index]) {
return inner_.mSoundChild[index];
}
- JASPoolAllocObject<JAISoundChild>* allocobj = new JASPoolAllocObject<JAISoundChild>();
- inner_.mSoundChild[index] = new (allocobj) JAISoundChild();
+ inner_.mSoundChild[index] = new JAISoundChild();
if (!inner_.mSoundChild[index]) {
return NULL;
}
@@ -386,13 +255,14 @@ JAISoundChild* JAISeq::getChild(int index) {
/* 802A165C-802A1728 29BF9C 00CC+00 1/0 0/0 0/0 .text releaseChild__6JAISeqFi */
+// NONMATCHING JASPoolAllocObject<_> locations
void JAISeq::releaseChild(int param_0) {
if (inner_.outputTrack.getStatus() == 1 && inner_.mSoundChild[param_0]) {
JASTrack* track = getChildTrack(param_0);
if (track) {
track->assignExtBuffer(0, NULL);
}
- delete (JASPoolAllocObject<JAISoundChild>*)inner_.mSoundChild[param_0];
+ delete inner_.mSoundChild[param_0];
inner_.mSoundChild[param_0] = NULL;
}
}
@@ -422,4 +292,4 @@ JAISeq* JAISeq::asSeq() {
/* 802A176C-802A1774 29C0AC 0008+00 1/0 0/0 0/0 .text getTempoMgr__6JAISeqFv */
JAITempoMgr* JAISeq::getTempoMgr() {
return &inner_.mTempoMgr;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JAISeqMgr.cpp b/src/JSystem/JAudio2/JAISeqMgr.cpp
index 49910d81da..d90035ee73 100644
--- a/src/JSystem/JAudio2/JAISeqMgr.cpp
+++ b/src/JSystem/JAudio2/JAISeqMgr.cpp
@@ -7,64 +7,6 @@
#include "JSystem/JAudio2/JAISeq.h"
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion();
-extern "C" void releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion();
-extern "C" void __ct__9JAISeqMgrFb();
-extern "C" void freeDeadSeq___9JAISeqMgrFv();
-extern "C" void func_802A1AF4(void* _this);
-extern "C" void func_802A1B48();
-extern "C" void calc__9JAISeqMgrFv();
-extern "C" void stop__9JAISeqMgrFv();
-extern "C" void stop__9JAISeqMgrFUl();
-extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID();
-extern "C" void mixOut__9JAISeqMgrFv();
-extern "C" void beginStartSeq___9JAISeqMgrFv();
-extern "C" void endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle();
-extern "C" void __dt__9JAISeqMgrFv();
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void __dt__8JASTrackFv();
-extern "C" void func_802A0A8C();
-extern "C" void func_802A0B64();
-extern "C" void JAISeqMgr_calc___6JAISeqFv();
-extern "C" void JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity();
-extern "C" void __dt__14JAISeqDataUserFv();
-extern "C" void attachHandle__8JAISoundFP14JAISoundHandle();
-extern "C" void stop__8JAISoundFUl();
-extern "C" void stop__8JAISoundFv();
-extern "C" void __dl__FPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void __dt__10JSUPtrListFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__6JAISeq[12 + 1 /* padding */];
-extern "C" extern void* __vt__14JAISeqDataUser[5 + 1 /* padding */];
-extern "C" extern u8 data_80450B5C[4];
-extern "C" extern u8 data_80451320[8];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
/* 802A1804-802A1870 29C144 006C+00 1/0 0/0 0/0 .text
* isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion */
@@ -77,8 +19,6 @@ bool JAISeqMgr::isUsingSeqData(JAISeqDataRegion const& param_1) {
return false;
}
-
-
/* 802A1870-802A1914 29C1B0 00A4+00 1/0 0/0 0/0 .text
* releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion */
int JAISeqMgr::releaseSeqData(JAISeqDataRegion const& param_1) {
@@ -98,36 +38,6 @@ int JAISeqMgr::releaseSeqData(JAISeqDataRegion const& param_1) {
return uVar4;
}
-/* ############################################################################################## */
-/* 803C9958-803C9970 026A78 0014+04 2/2 1/1 0/0 .data __vt__9JAISeqMgr */
-SECTION_DATA extern void* __vt__9JAISeqMgr[5 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__9JAISeqMgrFv,
- (void*)isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion,
- (void*)releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion,
- /* padding */
- NULL,
-};
-
-/* 804557A8-804557AC 003DA8 0004+00 1/1 0/0 0/0 .sdata2 @691 */
-SECTION_SDATA2 static f32 lit_691 = 1.0f;
-
-/* 804557AC-804557B0 003DAC 0004+00 1/1 0/0 0/0 .sdata2 @692 */
-SECTION_SDATA2 static u8 lit_692[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 804557B0-804557B8 003DB0 0004+04 1/1 0/0 0/0 .sdata2 @693 */
-SECTION_SDATA2 static f32 lit_693[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
-
/* 802A1914-802A1A08 29C254 00F4+00 0/0 1/1 0/0 .text __ct__9JAISeqMgrFb */
JAISeqMgr::JAISeqMgr(bool param_1) : JASGlobalInstance<JAISeqMgr>(param_1), mAudience(NULL) {
seqDataMgr_ = NULL;
@@ -137,16 +47,8 @@ JAISeqMgr::JAISeqMgr(bool param_1) : JASGlobalInstance<JAISeqMgr>(param_1), mAud
mActivity.init();
}
-/* ############################################################################################## */
-/* 804340C0-804340CC 060DE0 000C+00 3/3 0/0 0/0 .bss @715 */
-static u8 lit_715[12];
-
-/* 804340CC-804340E0 060DEC 0010+04 3/3 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___27JASPoolAllocObject<6JAISeq>Fv */
-extern u8 data_804340CC[16 + 4 /* padding */];
-u8 data_804340CC[16 + 4 /* padding */];
-
/* 802A1A08-802A1AF4 29C348 00EC+00 1/1 0/0 0/0 .text freeDeadSeq___9JAISeqMgrFv */
+// NONMATCHING JASPoolAllocObject<_> locations
void JAISeqMgr::freeDeadSeq_() {
JSULink<JAISeq>* link = mSeqList.getFirst();
while (link != NULL) {
@@ -160,12 +62,6 @@ void JAISeqMgr::freeDeadSeq_() {
}
}
-
-/* 802A1AF4-802A1B48 29C434 0054+00 3/3 1/1 0/0 .text __dt__19JASMemPool<6JAISeq>Fv */
-extern "C" void func_802A1AF4(void* _this) {
- // NONMATCHING
-}
-
/* 802A1B48-802A1C90 29C488 0148+00 0/0 1/1 0/0 .text
* startSound__9JAISeqMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
bool JAISeqMgr::startSound(JAISoundID param_1, JAISoundHandle* param_2,
@@ -236,6 +132,7 @@ void JAISeqMgr::mixOut() {
}
/* 802A1F58-802A1FE8 29C898 0090+00 1/1 0/0 0/0 .text beginStartSeq___9JAISeqMgrFv */
+// NONMATCHING JASPoolAllocObject<_> locations
JAISeq* JAISeqMgr::beginStartSeq_() {
JAISeq* seq = new JAISeq(this, field_0x10);
if (seq == NULL) {
@@ -244,9 +141,9 @@ JAISeq* JAISeqMgr::beginStartSeq_() {
return seq;
}
-
/* 802A1FE8-802A20F0 29C928 0108+00 1/1 0/0 0/0 .text
* endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle */
+// NONMATCHING JASPoolAllocObject<_> locations
bool JAISeqMgr::endStartSeq_(JAISeq* param_1, JAISoundHandle* param_2) {
JAISeq* sound = param_1->getObject();
if (sound != NULL) {
@@ -261,10 +158,3 @@ bool JAISeqMgr::endStartSeq_(JAISeq* param_1, JAISoundHandle* param_2) {
}
return false;
}
-
-
-/* 802A20F0-802A2184 29CA30 0094+00 1/0 0/0 0/0 .text __dt__9JAISeqMgrFv */
-extern "C" void __dt__9JAISeqMgrFv() {
- // asm JAISeqMgr::~JAISeqMgr() {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JAISound.cpp b/src/JSystem/JAudio2/JAISound.cpp
index 11bf4cf01a..af3d0e84a0 100644
--- a/src/JSystem/JAudio2/JAISound.cpp
+++ b/src/JSystem/JAudio2/JAISound.cpp
@@ -9,18 +9,6 @@
#include "JSystem/JAudio2/JASReport.h"
#include "JSystem/JAudio2/JASTrack.h"
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
/* 802A2184-802A21A0 29CAC4 001C+00 0/0 14/14 0/0 .text releaseSound__14JAISoundHandleFv
*/
void JAISoundHandle::releaseSound() {
@@ -247,4 +235,4 @@ void JAISound::initTrack_JAISound_(JASTrack* track) {
for (size_t i = 0; i < track->getChannelMgrCount(); i++) {
track->assignExtBuffer(i, soundParams[i]);
}
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JAIStream.cpp b/src/JSystem/JAudio2/JAIStream.cpp
index 11669538e3..0353e9f2e5 100644
--- a/src/JSystem/JAudio2/JAIStream.cpp
+++ b/src/JSystem/JAudio2/JAIStream.cpp
@@ -9,63 +9,6 @@
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JAudio2/JAIAudience.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" static void JAIStream_JASAramStreamCallback___FUlP13JASAramStreamPv();
-extern "C" void func_802A3104();
-extern "C" void func_802A319C();
-extern "C" void prepare_prepareStream___9JAIStreamFv();
-extern "C" void prepare___9JAIStreamFv();
-extern "C" void prepare_startStream___9JAIStreamFv();
-extern "C" void JAIStreamMgr_mixOut___9JAIStreamFRC14JASSoundParams16JAISoundActivity();
-extern "C" void die_JAIStream___9JAIStreamFv();
-extern "C" void JAISound_tryDie___9JAIStreamFv();
-extern "C" void JAIStreamMgr_calc___9JAIStreamFv();
-extern "C" s32 getNumChild__9JAIStreamCFv();
-extern "C" void getChild__9JAIStreamFi();
-extern "C" void releaseChild__9JAIStreamFi();
-extern "C" bool getTrack__9JAIStreamFv();
-extern "C" bool getChildTrack__9JAIStreamFi();
-extern "C" void asStream__9JAIStreamFv();
-extern "C" bool getTempoMgr__9JAIStreamFv();
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void __ct__13JASAramStreamFv();
-extern "C" void init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv();
-extern "C" void prepare__13JASAramStreamFli();
-extern "C" void start__13JASAramStreamFv();
-extern "C" void stop__13JASAramStreamFUs();
-extern "C" void pause__13JASAramStreamFb();
-extern "C" void cancel__13JASAramStreamFv();
-extern "C" void func_802A1268(void* _this);
-extern "C" void mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf();
-extern "C" void __ct__8JAISoundFv();
-extern "C" void func_802A2328();
-extern "C" bool asSe__8JAISoundFv();
-extern "C" bool asSeq__8JAISoundFv();
-extern "C" void die_JAISound___8JAISoundFv();
-extern "C" void increasePrepareCount_JAISound___8JAISoundFv();
-extern "C" void calc_JAISound___8JAISoundFv();
-extern "C" void init__13JAISoundChildFv();
-extern "C" void calc__13JAISoundChildFv();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_29();
-extern "C" extern u8 data_804340B0[16];
-extern "C" extern u8 data_80451318[8];
/* 802A30D4-802A3104 29DA14 0030+00 1/1 0/0 0/0 .text
* JAIStream_JASAramStreamCallback___FUlP13JASAramStreamPv */
@@ -113,9 +56,10 @@ void JAIStream::JAIStreamMgr_startID_(JAISoundID param_1, s32 param_2,
/* 802A3230-802A33F4 29DB70 01C4+00 1/1 0/0 0/0 .text prepare_prepareStream___9JAIStreamFv */
bool JAIStream::prepare_prepareStream_() {
u32 local_28;
+ JAIStreamAramMgr* streamAramMgr;
switch (field_0x290) {
case 0:
- JAIStreamAramMgr* streamAramMgr = field_0x2b8->getStreamAramMgr();
+ streamAramMgr = field_0x2b8->getStreamAramMgr();
JUT_ASSERT(100, streamAramMgr);
field_0x29c = streamAramMgr->newStreamAram(&local_28);
if (field_0x29c != NULL) {
@@ -194,25 +138,6 @@ void JAIStream::prepare_startStream_() {
}
}
-/* ############################################################################################## */
-/* 804557F0-804557F4 003DF0 0004+00 2/2 0/0 0/0 .sdata2 @864 */
-SECTION_SDATA2 static f32 lit_864 = 1.0f;
-
-/* 804557F4-804557F8 003DF4 0004+00 2/2 0/0 0/0 .sdata2 @865 */
-SECTION_SDATA2 static u8 lit_865[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 804557F8-80455800 003DF8 0004+04 2/2 0/0 0/0 .sdata2 @866 */
-SECTION_SDATA2 static f32 lit_866[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
-
/* 802A34E4-802A3720 29DE24 023C+00 0/0 1/1 0/0 .text
* JAIStreamMgr_mixOut___9JAIStreamFRC14JASSoundParams16JAISoundActivity */
void JAIStream::JAIStreamMgr_mixOut_(JASSoundParams const& param_1, JAISoundActivity param_2) {
@@ -264,17 +189,13 @@ void JAIStream::JAIStreamMgr_mixOut_(JASSoundParams const& param_1, JAISoundActi
}
}
-
-/* ############################################################################################## */
-/* 804340E0-804340F0 060E00 000C+04 3/3 0/0 0/0 .bss @881 */
-static u8 lit_881[12 + 4 /* padding */];
-
/* 802A3720-802A37FC 29E060 00DC+00 1/1 0/0 0/0 .text die_JAIStream___9JAIStreamFv */
+// NONMATCHING JASPolAllocObject<_> locations
void JAIStream::die_JAIStream_() {
die_JAISound_();
for (int i = 0; i < CHANNEL_MAX; i++) {
if (field_0x2a0[i] != NULL) {
- delete (JASPoolAllocObject<JAISoundChild>*)field_0x2a0[i];
+ delete field_0x2a0[i];
field_0x2a0[i] = NULL;
}
}
@@ -284,7 +205,6 @@ void JAIStream::die_JAIStream_() {
}
}
-
/* 802A37FC-802A388C 29E13C 0090+00 1/0 0/0 0/0 .text JAISound_tryDie___9JAIStreamFv */
bool JAIStream::JAISound_tryDie_() {
if (field_0x2c6) {
@@ -334,36 +254,25 @@ s32 JAIStream::getNumChild() const {
}
/* 802A3950-802A3A24 29E290 00D4+00 1/0 0/0 0/0 .text getChild__9JAIStreamFi */
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
JAISoundChild* JAIStream::getChild(int i_idx) {
if (field_0x2a0[i_idx] == NULL) {
- JASPoolAllocObject<JAISoundChild>* ptr = new JASPoolAllocObject<JAISoundChild>();
- field_0x2a0[i_idx] = new (ptr) JAISoundChild();
+ field_0x2a0[i_idx] = new JAISoundChild();
if (field_0x2a0[i_idx] == NULL) {
JUT_WARN(370, "JASPoolAllocObject::<JAISoundChild>::operator new failed .")
}
}
return field_0x2a0[i_idx];
}
-#else
-JAISoundChild* JAIStream::getChild(int param_0) {
- // NONMATCHING
-}
-#endif
/* 802A3A24-802A3ABC 29E364 0098+00 1/0 0/0 0/0 .text releaseChild__9JAIStreamFi */
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
void JAIStream::releaseChild(int i_idx) {
if (field_0x2a0[i_idx] != NULL) {
- delete (JASPoolAllocObject<JAISoundChild>*)field_0x2a0[i_idx];
+ delete field_0x2a0[i_idx];
field_0x2a0[i_idx] = NULL;
}
}
-#else
-void JAIStream::releaseChild(int param_0) {
- // NONMATCHING
-}
-#endif
/* 802A3ABC-802A3AC4 29E3FC 0008+00 1/0 0/0 0/0 .text getTrack__9JAIStreamFv */
JASTrack* JAIStream::getTrack() {
@@ -383,4 +292,4 @@ JAIStream* JAIStream::asStream() {
/* 802A3AD0-802A3AD8 29E410 0008+00 1/0 0/0 0/0 .text getTempoMgr__9JAIStreamFv */
JAITempoMgr* JAIStream::getTempoMgr() {
return NULL;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JAIStreamMgr.cpp b/src/JSystem/JAudio2/JAIStreamMgr.cpp
index e1a565b5b2..f8157b22e0 100644
--- a/src/JSystem/JAudio2/JAIStreamMgr.cpp
+++ b/src/JSystem/JAudio2/JAIStreamMgr.cpp
@@ -7,75 +7,6 @@
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__12JAIStreamMgrFb();
-extern "C" void func_802A3C3C();
-extern "C" void freeDeadStream___12JAIStreamMgrFv();
-extern "C" void func_802A3E68(void* _this);
-extern "C" void calc__12JAIStreamMgrFv();
-extern "C" void stop__12JAIStreamMgrFv();
-extern "C" void stop__12JAIStreamMgrFUl();
-extern "C" void stopSoundID__12JAIStreamMgrF10JAISoundID();
-extern "C" void mixOut__12JAIStreamMgrFv();
-extern "C" void newStream___12JAIStreamMgrFv();
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void attachHandle__8JAISoundFP14JAISoundHandle();
-extern "C" void stop__8JAISoundFUl();
-extern "C" void stop__8JAISoundFv();
-extern "C" void func_802A3104();
-extern "C" void func_802A319C();
-extern "C" void JAIStreamMgr_mixOut___9JAIStreamFRC14JASSoundParams16JAISoundActivity();
-extern "C" void JAIStreamMgr_calc___9JAIStreamFv();
-extern "C" void __dl__FPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__9JAIStream[12];
-extern "C" extern u8 data_80450B5C[4];
-extern "C" extern u8 data_80451328[8];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80455800-80455804 003E00 0004+00 1/1 0/0 0/0 .sdata2 @653 */
-SECTION_SDATA2 static f32 lit_653 = 1.0f;
-
-/* 80455804-80455808 003E04 0004+00 1/1 0/0 0/0 .sdata2 @654 */
-SECTION_SDATA2 static u8 lit_654[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455808-80455810 003E08 0004+04 1/1 0/0 0/0 .sdata2 @655 */
-SECTION_SDATA2 static f32 lit_655[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
/* 802A3B68-802A3C3C 29E4A8 00D4+00 0/0 1/1 0/0 .text __ct__12JAIStreamMgrFb */
JAIStreamMgr::JAIStreamMgr(bool param_0) : JASGlobalInstance<JAIStreamMgr>(param_0) {
@@ -87,7 +18,6 @@ JAIStreamMgr::JAIStreamMgr(bool param_0) : JASGlobalInstance<JAIStreamMgr>(param
mActivity.init();
}
-
/* 802A3C3C-802A3D70 29E57C 0134+00 0/0 1/1 0/0 .text
* startSound__12JAIStreamMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
bool JAIStreamMgr::startSound(JAISoundID param_1, JAISoundHandle* param_2,
@@ -120,19 +50,9 @@ bool JAIStreamMgr::startSound(JAISoundID param_1, JAISoundHandle* param_2,
return false;
}
-/* ############################################################################################## */
-/* 804340F0-804340FC 060E10 000C+00 2/2 0/0 0/0 .bss @745 */
-static u8 lit_745[12];
-
-/* 804340FC-80434110 060E1C 0010+04 2/2 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___30JASPoolAllocObject<9JAIStream>Fv */
-extern u8 data_804340FC[16 + 4 /* padding */];
-u8 data_804340FC[16 + 4 /* padding */];
-
/* 802A3D70-802A3E68 29E6B0 00F8+00 1/1 0/0 0/0 .text freeDeadStream___12JAIStreamMgrFv
*/
-// I think this will match when all references to data_80451328 (init$localstatic4$getMemPool__30JASPoolAllocObject<9JAIStream>Fv) are not in asm
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
void JAIStreamMgr::freeDeadStream_() {
JSULink<JAIStream>* link = mStreamList.getFirst();
while (link != NULL) {
@@ -150,16 +70,6 @@ void JAIStreamMgr::freeDeadStream_() {
link = next;
}
}
-#else
-void JAIStreamMgr::freeDeadStream_() {
- // NONMATCHING
-}
-#endif
-
-/* 802A3E68-802A3EBC 29E7A8 0054+00 2/2 1/1 0/0 .text __dt__22JASMemPool<9JAIStream>Fv */
-extern "C" void func_802A3E68(void* _this) {
- // NONMATCHING
-}
/* 802A3EBC-802A4028 29E7FC 016C+00 0/0 1/1 0/0 .text calc__12JAIStreamMgrFv */
void JAIStreamMgr::calc() {
@@ -201,6 +111,7 @@ void JAIStreamMgr::mixOut() {
}
/* 802A4174-802A4244 29EAB4 00D0+00 1/1 0/0 0/0 .text newStream___12JAIStreamMgrFv */
+// NONMATCHING JASPoolAllocObject<_> locations
JAIStream* JAIStreamMgr::newStream_() {
if (mStreamAramMgr == NULL) {
JUT_WARN(229, "JAIStreamAramMgr must be set.\n");
@@ -214,4 +125,4 @@ JAIStream* JAIStreamMgr::newStream_() {
mStreamList.append(stream);
return stream;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JASAiCtrl.cpp b/src/JSystem/JAudio2/JASAiCtrl.cpp
index fd34951305..61374f62f6 100644
--- a/src/JSystem/JAudio2/JASAiCtrl.cpp
+++ b/src/JSystem/JAudio2/JASAiCtrl.cpp
@@ -6,116 +6,26 @@
#include "JSystem/JAudio2/JASAiCtrl.h"
#include "JSystem/JAudio2/JASAudioThread.h"
#include "JSystem/JAudio2/JASCalc.h"
+#include "JSystem/JAudio2/JASChannel.h"
+#include "JSystem/JAudio2/JASCmdStack.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
+#include "JSystem/JAudio2/JASDSPChannel.h"
#include "JSystem/JAudio2/JASDSPInterface.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASProbe.h"
#include "JSystem/JAudio2/JASReport.h"
#include "JSystem/JAudio2/JASLfo.h"
+#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dol2asm.h"
#include "dolphin/ai.h"
#include "dolphin/os/OSCache.h"
#include "dolphin/os/OSTime.h"
-//
-// Types:
-//
-
-struct JASPortCmd {
- /* 80291060 */ static void execAllCommand();
-};
-
-struct JASDSPChannel {
- /* 8029D89C */ static void updateAll();
- /* 8029D910 */ static void killActiveChannel();
-};
-
-struct JASChannel {
- /* 8029BC0C */ static void initBankDisposeMsgQueue();
- /* 8029BC48 */ static void receiveBankDisposeMsg();
-};
-
-//
-// Forward References:
-//
-
-extern "C" void initAI__9JASDriverFPFv_v();
-extern "C" void startDMA__9JASDriverFv();
-extern "C" void stopDMA__9JASDriverFv();
-extern "C" void setOutputRate__9JASDriverF13JASOutputRate();
-extern "C" void updateDac__9JASDriverFv();
-extern "C" void updateDSP__9JASDriverFv();
-extern "C" void readDspBuffer__9JASDriverFPsUl();
-extern "C" void finishDSPFrame__9JASDriverFv();
-extern "C" void registerMixCallback__9JASDriverFPFl_Ps10JASMixMode();
-extern "C" void getDacRate__9JASDriverFv();
-extern "C" u32 getSubFrames__9JASDriverFv();
-extern "C" void getDacSize__9JASDriverFv();
-extern "C" void getFrameSamples__9JASDriverFv();
-extern "C" void mixMonoTrack(s16*, u32, s16* (*)(s32));
-extern "C" void mixMonoTrackWide(s16*, u32, s16* (*)(s32));
-extern "C" void mixExtraTrack(s16*, u32, s16* (*)(s32));
-extern "C" void mixInterleaveTrack(s16*, u32, s16* (*)(s32));
-extern "C" u32 getSubFrameCounter__9JASDriverFv();
-extern "C" void* const sMixFuncs__9JASDriver[4];
-extern "C" extern char const* const JASAiCtrl__stringBase0;
-extern "C" u8 sDmaDacBuffer__9JASDriver[12 + 4 /* padding */];
-extern "C" u32 sMixMode__9JASDriver;
-extern "C" f32 sDacRate__9JASDriver;
-extern "C" u32 sSubFrames__9JASDriver;
-extern "C" u8 sDspDacBuffer__9JASDriver[4];
-extern "C" u8 sDspDacWriteBuffer__9JASDriver[4];
-extern "C" u8 sDspDacReadBuffer__9JASDriver[4];
-extern "C" u8 sDspStatus__9JASDriver[4];
-extern "C" u8 sDspDacCallback__9JASDriver[4];
-extern "C" u8 lastRspMadep__9JASDriver[4];
-extern "C" u8 dacCallbackFunc__9JASDriver[4];
-extern "C" u8 extMixCallback__9JASDriver[4];
-extern "C" u8 sOutputRate__9JASDriver[4];
-extern "C" u8 sSubFrameCounter__9JASDriver[4];
-
-//
-// External References:
-//
-
-extern "C" void imixcopy__7JASCalcFPCsPCsPsUl();
-extern "C" void bzero__7JASCalcFPvUl();
-extern "C" void func_8028F69C(void* _this, s32);
-extern "C" void start__8JASProbeFlPCc();
-extern "C" void stop__8JASProbeFl();
-extern "C" void JASReport__FPCce();
-extern "C" void execAllCommand__10JASPortCmdFv();
-extern "C" void initBankDisposeMsgQueue__10JASChannelFv();
-extern "C" void receiveBankDisposeMsg__10JASChannelFv();
-extern "C" void incCounter__6JASLfoFf();
-extern "C" void updateAll__13JASDSPChannelFv();
-extern "C" void killActiveChannel__13JASDSPChannelFv();
-extern "C" void syncFrame__6JASDspFUlUlUl();
-extern "C" void invalChannelAll__6JASDspFv();
-extern "C" void subframeCallback__9JASDriverFv();
-extern "C" void DSPSyncCallback__9JASDriverFv();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 sFreeRunLfo__6JASLfo[24];
-extern "C" u8 snIntCount__14JASAudioThread[4 + 4 /* padding */];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80431C58-80431C68 05E978 000C+04 2/2 0/0 0/0 .bss sDmaDacBuffer__9JASDriver */
s16* JASDriver::sDmaDacBuffer[3];
/* 804507A8-804507AC 000228 0004+00 3/3 0/0 0/0 .sdata None */
-SECTION_SDATA static u8 data_804507A8 = 3;
+static u8 data_804507A8 = 3;
/* 804512A0-804512A4 0007A0 0004+00 3/3 0/0 0/0 .sbss sDspDacBuffer__9JASDriver */
s16** JASDriver::sDspDacBuffer;
@@ -145,8 +55,7 @@ JASDriver::MixCallback JASDriver::extMixCallback;
u32 JASDriver::sOutputRate;
/* 8029C388-8029C4E4 296CC8 015C+00 0/0 1/1 0/0 .text initAI__9JASDriverFPFv_v */
-// missing instructions
-#ifdef NONMATCHING
+// NONMATCHING missing instructions
void JASDriver::initAI(void (*param_0)(void)) {
setOutputRate(OUTPUT_RATE_0);
u32 size = getDacSize() * 2;
@@ -170,11 +79,6 @@ void JASDriver::initAI(void (*param_0)(void)) {
AISetDSPSampleRate(sOutputRate != 0);
AIRegisterDMACallback(param_0);
}
-#else
-void JASDriver::initAI(void (*param_0)(void)) {
- // NONMATCHING
-}
-#endif
/* 8029C4E4-8029C504 296E24 0020+00 0/0 1/1 0/0 .text startDMA__9JASDriverFv */
void JASDriver::startDMA() {
@@ -187,24 +91,14 @@ void JASDriver::stopDMA() {
AIStopDMA();
}
-/* ############################################################################################## */
/* 804507AC-804507B0 00022C 0004+00 2/2 0/0 0/0 .sdata sMixMode__9JASDriver */
-SECTION_SDATA JASMixMode JASDriver::sMixMode = MIX_MODE_EXTRA;
+JASMixMode JASDriver::sMixMode = MIX_MODE_EXTRA;
/* 804507B0-804507B4 000230 0004+00 2/2 0/0 0/0 .sdata sDacRate__9JASDriver */
-SECTION_SDATA f32 JASDriver::sDacRate = 32028.5f;
+f32 JASDriver::sDacRate = 32028.5f;
/* 804507B4-804507B8 000234 0004+00 4/3 0/0 0/0 .sdata sSubFrames__9JASDriver */
-SECTION_SDATA u32 JASDriver::sSubFrames = 0x00000007;
-
-/* 80455720-80455724 003D20 0004+00 1/1 0/0 0/0 .sdata2 @233 */
-SECTION_SDATA2 static f32 lit_233 = 32000.0f;
-
-/* 80455724-80455728 003D24 0004+00 1/1 0/0 0/0 .sdata2 @234 */
-SECTION_SDATA2 static f32 lit_234 = 48000.0f;
-
-/* 80455728-8045572C 003D28 0004+00 1/1 0/0 0/0 .sdata2 @235 */
-SECTION_SDATA2 static f32 lit_235 = 1.0008896589279175f;
+u32 JASDriver::sSubFrames = 0x00000007;
/* 8029C524-8029C568 296E64 0044+00 1/1 0/0 0/0 .text setOutputRate__9JASDriverF13JASOutputRate */
void JASDriver::setOutputRate(JASOutputRate param_0) {
@@ -216,19 +110,16 @@ void JASDriver::setOutputRate(JASOutputRate param_0) {
sSubFrames = 10;
sDacRate = 48000.0f;
}
- sDacRate *= 1.00089f;
+ sDacRate *= 1.0008897f;
}
-
-/* ############################################################################################## */
/* 8039B2E0-8039B2F0 -00001 0010+00 1/1 0/0 0/0 .rodata sMixFuncs__9JASDriver */
-SECTION_RODATA const JASDriver::MixFunc JASDriver::sMixFuncs[4] = {
+const JASDriver::MixFunc JASDriver::sMixFuncs[4] = {
mixMonoTrack,
mixMonoTrackWide,
mixExtraTrack,
mixInterleaveTrack,
};
-COMPILER_STRIP_GATE(0x8039B2E0, &JASDriver::sMixFuncs);
/* 804512C4-804512C8 0007C4 0004+00 2/1 0/0 0/0 .sbss sSubFrameCounter__9JASDriver */
u32 JASDriver::sSubFrameCounter;
@@ -263,40 +154,9 @@ void JASDriver::updateDac() {
}
}
-/* ############################################################################################## */
-/* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039B2F0 = "SFR-UPDATE";
-SECTION_DEAD static char const* const stringBase_8039B2FB = "kill DSP channel";
-#pragma pop
-
-/* 803C78B8-803C78E0 0249D8 0028+00 1/1 0/0 0/0 .data history$267 */
-SECTION_DATA static u32 history[10] = {
- 0x000F4240,
-};
-
-/* 804512D0-804512D4 0007D0 0004+00 1/1 0/0 0/0 .sbss old_time$264 */
-static u32 old_time;
-
-/* 804512D4-804512D8 0007D4 0004+00 1/1 0/0 0/0 .sbss None */
-static u8 data_804512D4[4];
-
-/* 8045572C-80455730 003D2C 0004+00 1/1 0/0 0/0 .sdata2 @275 */
-SECTION_SDATA2 static f32 lit_275 = 11.0f / 10.0f;
-
-/* 80455730-80455738 003D30 0004+04 1/1 0/0 0/0 .sdata2 @276 */
-SECTION_SDATA2 static f32 lit_276[1 + 1 /* padding */] = {
- 32028.5f,
- /* padding */
- 0.0f,
-};
-
-/* 80455738-80455740 003D38 0008+00 1/1 0/0 0/0 .sdata2 @278 */
-SECTION_SDATA2 static f64 lit_278 = 4503599627370496.0 /* cast u32 to float */;
-
/* 8029C6C4-8029C7E0 297004 011C+00 1/1 1/1 0/0 .text updateDSP__9JASDriverFv */
void JASDriver::updateDSP() {
+ static u32 history[10] = {0x000F4240};
JASProbe::start(3, "SFR-UPDATE");
JASDsp::invalChannelAll();
JASPortCmd::execAllCommand();
@@ -320,10 +180,8 @@ void JASDriver::updateDSP() {
sSubFrameCounter++;
}
-
/* 8029C7E0-8029C900 297120 0120+00 1/1 0/0 0/0 .text readDspBuffer__9JASDriverFPsUl */
-// missing instruction
-#ifdef NONMATCHING
+// NONMATCHING one wrong instruction
void JASDriver::readDspBuffer(s16* param_0, u32 param_1) {
s32 r29 = sDspDacReadBuffer + 1;
if (r29 == data_804507A8) {
@@ -336,7 +194,7 @@ void JASDriver::readDspBuffer(s16* param_0, u32 param_1) {
sDspDacBuffer[sDspDacReadBuffer][i] = r25;
}
for (int i = param_1; i < param_1 * 2; i++) {
- sDspDacBuffer[sDspDacReadBuffer][i] = r24;
+ sDspDacBuffer[sDspDacReadBuffer][i] = (s16)r24;
}
} else {
sDspDacReadBuffer = r29;
@@ -344,11 +202,6 @@ void JASDriver::readDspBuffer(s16* param_0, u32 param_1) {
}
JASCalc::imixcopy(sDspDacBuffer[sDspDacReadBuffer] + param_1, sDspDacBuffer[sDspDacReadBuffer], param_0, param_1);
}
-#else
-void JASDriver::readDspBuffer(s16* param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 8029C900-8029C9DC 297240 00DC+00 1/1 1/1 0/0 .text finishDSPFrame__9JASDriverFv */
void JASDriver::finishDSPFrame() {
@@ -476,4 +329,4 @@ u32 JASDriver::getSubFrameCounter() {
return sSubFrameCounter;
}
-/* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp
index 5bea22099b..4a56d47436 100644
--- a/src/JSystem/JAudio2/JASAramStream.cpp
+++ b/src/JSystem/JAudio2/JASAramStream.cpp
@@ -4,94 +4,15 @@
//
#include "JSystem/JAudio2/JASAramStream.h"
+#include "JSystem/JAudio2/JASAiCtrl.h"
#include "JSystem/JAudio2/JASChannel.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JAudio2/JASDriverIF.h"
+#include "JSystem/JAudio2/JASDSPInterface.h"
#include "JSystem/JAudio2/JASDvdThread.h"
+#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
-#include "JSystem/JAudio2/JASAiCtrl.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-/* JASMemPool_MultiThreaded<JASChannel> */
-struct JASMemPool_MultiThreaded__template2 {
- /* 802978DC */ void func_802978DC(void* _this);
-};
-
-//
-// Forward References:
-//
-
-extern "C" void initSystem__13JASAramStreamFUlUl();
-extern "C" void __ct__13JASAramStreamFv();
-extern "C" void init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv();
-extern "C" void prepare__13JASAramStreamFli();
-extern "C" void start__13JASAramStreamFv();
-extern "C" void stop__13JASAramStreamFUs();
-extern "C" void pause__13JASAramStreamFb();
-extern "C" void cancel__13JASAramStreamFv();
-extern "C" void getBlockSamples__13JASAramStreamCFv();
-extern "C" void headerLoadTask__13JASAramStreamFPv();
-extern "C" void firstLoadTask__13JASAramStreamFPv();
-extern "C" void loadToAramTask__13JASAramStreamFPv();
-extern "C" void finishTask__13JASAramStreamFPv();
-extern "C" void prepareFinishTask__13JASAramStreamFPv();
-extern "C" void headerLoad__13JASAramStreamFUli();
-extern "C" void load__13JASAramStreamFv();
-extern "C" void channelProcCallback__13JASAramStreamFPv();
-extern "C" void dvdErrorCheck__13JASAramStreamFPv();
-extern "C" void channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv();
-extern "C" void updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel();
-extern "C" void channelProc__13JASAramStreamFv();
-extern "C" void channelStart__13JASAramStreamFv();
-extern "C" void channelStop__13JASAramStreamFUs();
-extern "C" void func_802978DC(void* _this);
-extern "C" u8 sLoadThread__13JASAramStream[4];
-extern "C" u8 sReadBuffer__13JASAramStream[4];
-extern "C" u8 sBlockSize__13JASAramStream[4];
-extern "C" u8 sChannelMax__13JASAramStream[4];
-//
-// External References:
-//
-
-extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl();
-extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPv();
-extern "C" void getThreadPointer__6JASDvdFv();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv();
-extern "C" void playForce__10JASChannelFv();
-extern "C" void release__10JASChannelFUs();
-extern "C" void setOscInit__10JASChannelFUlPCQ213JASOscillator4Data();
-extern "C" void setMixConfig__10JASChannelFUlUs();
-extern "C" void getDacRate__9JASDriverFv();
-extern "C" void rejectCallback__9JASDriverFPFPv_lPv();
-extern "C" void registerSubFrameCallback__9JASDriverFPFPv_lPv();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_19();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_19();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80451250-80451254 000750 0004+00 6/6 0/0 0/0 .sbss sLoadThread__13JASAramStream */
JASTaskThread* JASAramStream::sLoadThread;
@@ -110,10 +31,8 @@ u32 JASAramStream::sChannelMax;
/* 80451262 0006+00 data_80451262 None */
extern bool struct_80451260;
extern bool struct_80451261;
-extern u32 struct_80451264;
bool struct_80451260;
bool struct_80451261;
-u32 struct_80451264;
/* 8029631C-802963A8 290C5C 008C+00 0/0 1/1 0/0 .text initSystem__13JASAramStreamFUlUl */
void JASAramStream::initSystem(u32 i_blockSize, u32 i_channelMax) {
@@ -129,23 +48,8 @@ void JASAramStream::initSystem(u32 i_blockSize, u32 i_channelMax) {
}
}
-/* ############################################################################################## */
-/* 80455610-80455614 003C10 0004+00 3/3 0/0 0/0 .sdata2 @390 */
-SECTION_SDATA2 static u8 lit_390[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455614-80455618 003C14 0004+00 2/2 0/0 0/0 .sdata2 @391 */
-SECTION_SDATA2 static f32 lit_391 = 1.0f;
-
-/* 80455618-8045561C 003C18 0004+00 2/2 0/0 0/0 .sdata2 @392 */
-SECTION_SDATA2 static f32 lit_392 = 0.5f;
-
/* 802963A8-8029649C 290CE8 00F4+00 0/0 1/1 0/0 .text __ct__13JASAramStreamFv */
-#ifdef NONMATCHING
+// NONMATCHING missing load
JASAramStream::JASAramStream() {
field_0x0a8 = NULL;
field_0x0ac = false;
@@ -191,15 +95,10 @@ JASAramStream::JASAramStream() {
field_0x1dc[i] = 0;
}
}
-#else
-JASAramStream::JASAramStream() {
- // NONMATCHING
-}
-#endif
/* 8029649C-8029655C 290DDC 00C0+00 0/0 1/1 0/0 .text
* init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv */
-#ifdef NONMATCHING
+// NONMATCHING missing load
void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* i_callbackData) {
field_0x148 = param_0;
field_0x14c = param_1;
@@ -223,11 +122,6 @@ void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, vo
OSInitMessageQueue(&field_0x000, field_0x040, 0x10);
OSInitMessageQueue(&field_0x020, field_0x080, 4);
}
-#else
-void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* param_3) {
- // NONMATCHING
-}
-#endif
/* 8029655C-80296618 290E9C 00BC+00 0/0 1/1 0/0 .text prepare__13JASAramStreamFli */
bool JASAramStream::prepare(s32 param_0, int param_1) {
@@ -345,13 +239,6 @@ void JASAramStream::prepareFinishTask(void* i_this) {
}
}
-/* ############################################################################################## */
-/* 8045561C-80455620 003C1C 0004+00 1/1 0/0 0/0 .sdata2 @531 */
-SECTION_SDATA2 static f32 lit_531 = 127.0f;
-
-/* 80455620-80455628 003C20 0008+00 3/3 0/0 0/0 .sdata2 @533 */
-SECTION_SDATA2 static f64 lit_533 = 4503599627370496.0 /* cast u32 to float */;
-
/* 80296920-80296AE8 291260 01C8+00 1/1 0/0 0/0 .text headerLoad__13JASAramStreamFUli */
bool JASAramStream::headerLoad(u32 param_0, int param_1) {
if (struct_80451261) {
@@ -401,7 +288,7 @@ bool JASAramStream::headerLoad(u32 param_0, int param_1) {
/* 80296AE8-80296D74 291428 028C+00 2/2 0/0 0/0 .text load__13JASAramStreamFv */
-#ifdef NONMATCHING
+// NONMATCHING regalloc and one instruction swap
bool JASAramStream::load() {
{
JASCriticalSection cs;
@@ -421,7 +308,11 @@ bool JASAramStream::load() {
}
u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader);
u32 offset = block * size + sizeof(Header);
- if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size, offset, 1) < 0) {
+ u32 size2 = size;
+ if (block == loop_end_block) {
+ size2 = mDvdFileInfo.length - offset;
+ }
+ if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size2, offset, 1) < 0) {
struct_80451261 = true;
return false;
}
@@ -431,8 +322,8 @@ bool JASAramStream::load() {
}
u32 uvar2 = field_0x148 + field_0x10c * sBlockSize;
for (int i = 0; i < mChannelNum; i++) {
- if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + 0x20,
- uvar2 + i * field_0x160 * sBlockSize,
+ if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader),
+ uvar2 + sBlockSize * field_0x160 * i,
bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) {
struct_80451261 = 1;
return false;
@@ -442,7 +333,10 @@ bool JASAramStream::load() {
if (field_0x10c >= field_0x108) {
u32 uvar8 = mBlock - 1 + field_0x108;
if (mLoop) {
- for (; uvar8 > loop_end_block; uvar8 = uvar8 - loop_end_block + loop_start_block) {}
+ while (uvar8 > loop_end_block) {
+ uvar8 -= loop_end_block;
+ uvar8 += loop_start_block;
+ }
}
if (uvar8 == loop_end_block || uvar8 + 2 == loop_end_block) {
field_0x108 = field_0x160;
@@ -462,45 +356,22 @@ bool JASAramStream::load() {
}
return true;
}
-#else
-bool JASAramStream::load() {
- // NONMATCHING
-}
-#endif
/* 80296D74-80296D94 2916B4 0020+00 2/2 0/0 0/0 .text channelProcCallback__13JASAramStreamFPv */
s32 JASAramStream::channelProcCallback(void* i_this) {
return ((JASAramStream*)i_this)->channelProc();
}
-/* ############################################################################################## */
-/* 803C7670-803C76A8 -00001 0034+04 1/1 0/0 0/0 .data @613 */
-SECTION_DATA static void* lit_613[13 + 1 /* padding */] = {
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x34),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x48),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40),
- /* padding */
- NULL,
-};
-
/* 80296D94-80296DF0 2916D4 005C+00 2/1 0/0 0/0 .text dvdErrorCheck__13JASAramStreamFPv
*/
-#ifdef NONMATCHING
+// NONMATCHING supposed to use a switch table
s32 JASAramStream::dvdErrorCheck(void* param_0) {
switch (DVDGetDriveStatus()) {
case DVD_STATE_END:
struct_80451260 = false;
break;
+ case DVD_STATE_BUSY:
+ break;
case DVD_STATE_WAITING:
case DVD_STATE_COVER_CLOSED:
case DVD_STATE_NO_DISK:
@@ -508,20 +379,15 @@ s32 JASAramStream::dvdErrorCheck(void* param_0) {
case DVD_STATE_WRONG_DISK:
case DVD_STATE_MOTOR_STOPPED:
case DVD_STATE_IGNORED:
- case 9:
case DVD_STATE_CANCELED:
case DVD_STATE_RETRY:
case DVD_STATE_FATAL_ERROR:
+ default:
struct_80451260 = true;
break;
}
return 0;
}
-#else
-s32 JASAramStream::dvdErrorCheck(void* param_0) {
- // NONMATCHING
-}
-#endif
/* 80296DF0-80296E2C 291730 003C+00 1/1 0/0 0/0 .text
* channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv */
@@ -532,8 +398,7 @@ void JASAramStream::channelCallback(u32 i_callbackType, JASChannel* i_channel,
/* 80296E2C-802974AC 29176C 0680+00 1/1 0/0 0/0 .text
* updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel */
-#ifdef NONMATCHING
-// missing extra loads of field_0x0c4
+// NONMATCHING missing extra loads of field_0x0c4
void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
JASDsp::TChannel* i_dspChannel) {
u32 block_samples = getBlockSamples();
@@ -712,15 +577,9 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
}
i_channel->mPauseFlag = field_0x0ae != 0;
}
-#else
-void JASAramStream::updateChannel(u32 param_0, JASChannel* param_1, JASDsp::TChannel* param_2) {
- // NONMATCHING
-}
-#endif
/* 802974AC-80297658 291DEC 01AC+00 1/1 0/0 0/0 .text channelProc__13JASAramStreamFv */
-#ifdef NONMATCHING
-// regalloc and instruction ordering
+// NONMATCHING instruction ordering
s32 JASAramStream::channelProc() {
OSMessage msg;
while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) {
@@ -778,13 +637,7 @@ s32 JASAramStream::channelProc() {
return 0;
}
-#else
-s32 JASAramStream::channelProc() {
- // NONMATCHING
-}
-#endif
-/* ############################################################################################## */
/* 8039B168-8039B174 0277C8 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE */
static JASOscillator::Point const OSC_RELEASE_TABLE[2] = {
{0x0000, 0x0002, 0x0000},
@@ -794,17 +647,6 @@ static JASOscillator::Point const OSC_RELEASE_TABLE[2] = {
/* 8039B174-8039B190 -00001 0018+04 1/1 0/0 0/0 .rodata OSC_ENV */
static JASOscillator::Data const OSC_ENV = {0, 1.0f, NULL, OSC_RELEASE_TABLE, 1.0f, 0.0f};
-/* 80431B28-80431B34 05E848 000C+00 1/1 0/0 0/0 .bss @792 */
-static u8 lit_792[12];
-
-/* 80431B34-80431B48 05E854 0010+04 1/1 4/4 0/0 .bss
- * memPool_$localstatic3$getMemPool___46JASPoolAllocObject_MultiThreaded<10JASChannel>Fv */
-extern u8 data_80431B34[16 + 4 /* padding */];
-u8 data_80431B34[16 + 4 /* padding */];
-
-/* 80455628-80455630 003C28 0004+04 1/1 0/0 0/0 .sdata2 one$776 */
-SECTION_SDATA2 static u32 one = 1;
-
/* 80297658-80297870 291F98 0218+00 1/1 0/0 0/0 .text channelStart__13JASAramStreamFv */
void JASAramStream::channelStart() {
u8 r31;
@@ -826,6 +668,7 @@ void JASAramStream::channelStart() {
wave_info.field_0x1c = 0;
wave_info.field_0x1e = 0;
// probably a fake match, this should be set in the JASWaveInfo constructor
+ static u32 const one = 1;
wave_info.field_0x20 = &one;
JASChannel* channel = new JASChannel(channelCallback, this);
channel->setPriority(0x7f7f);
@@ -852,9 +695,3 @@ void JASAramStream::channelStop(u16 i_directRelease) {
}
}
}
-
-/* 802978DC-80297930 29221C 0054+00 1/1 5/5 0/0 .text
- * __dt__38JASMemPool_MultiThreaded<10JASChannel>Fv */
-extern "C" void func_802978DC(void* _this) {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASAudioThread.cpp b/src/JSystem/JAudio2/JASAudioThread.cpp
index a9ad8237f4..1731fe7d93 100644
--- a/src/JSystem/JAudio2/JASAudioThread.cpp
+++ b/src/JSystem/JAudio2/JASAudioThread.cpp
@@ -4,88 +4,15 @@
//
#include "JSystem/JAudio2/JASAudioThread.h"
+#include "JSystem/JAudio2/JASAiCtrl.h"
+#include "JSystem/JAudio2/JASDriverIF.h"
+#include "JSystem/JAudio2/JASDSPChannel.h"
+#include "JSystem/JAudio2/JASDSPInterface.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
+#include "JSystem/JAudio2/JASProbe.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
-#include "dol2asm.h"
#include "dolphin/dsp.h"
-//
-// Types:
-//
-
-struct JASProbe {
- /* 80290EE4 */ static void start(s32, char const*);
- /* 80290F24 */ static void stop(s32);
-};
-
-/* JASMemPool_MultiThreaded<JASChannel> */
-struct JASMemPool_MultiThreaded__template2 {
- /* 802978DC */ void func_802978DC(void* _this);
-};
-
-
-
-struct JASDsp {
- /* 8029D958 */ static void boot(void (*)(void*));
- /* 8029D9C4 */ static void finishWork(u16);
- /* 8029DAC8 */ static void initBuffer();
-};
-
-struct JASDSPChannel {
- /* 8029D3C8 */ static void initAll();
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__14JASAudioThreadFiiUl();
-extern "C" void create__14JASAudioThreadFl();
-extern "C" void stop__14JASAudioThreadFv();
-extern "C" void run__14JASAudioThreadFv();
-extern "C" void DMACallback__14JASAudioThreadFv();
-extern "C" void DSPCallback__14JASAudioThreadFPv();
-extern "C" void __dt__14JASAudioThreadFv();
-extern "C" extern char const* const JASAudioThread__stringBase0;
-extern "C" u8 snIntCount__14JASAudioThread[4 + 4 /* padding */];
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void newMemPool__17JASGenericMemPoolFUli();
-extern "C" void start__8JASProbeFlPCc();
-extern "C" void stop__8JASProbeFl();
-extern "C" void func_802978DC(void* _this);
-extern "C" void initAI__9JASDriverFPFv_v();
-extern "C" void startDMA__9JASDriverFv();
-extern "C" void stopDMA__9JASDriverFv();
-extern "C" void updateDac__9JASDriverFv();
-extern "C" void updateDSP__9JASDriverFv();
-extern "C" void finishDSPFrame__9JASDriverFv();
-extern "C" void initAll__13JASDSPChannelFv();
-extern "C" void boot__6JASDspFPFPv_v();
-extern "C" void finishWork__6JASDspFUs();
-extern "C" void initBuffer__6JASDspFv();
-extern "C" void updateDacCallback__9JASDriverFv();
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __ct__9JKRThreadFP7JKRHeapUlii();
-extern "C" void __dt__9JKRThreadFv();
-extern "C" void __register_global_object();
-extern "C" extern u8 data_80431B34[16 + 4 /* padding */];
-extern "C" extern u8 struct_80451260[8];
-extern "C" u8 sSystemHeap__7JKRHeap[4];
-extern "C" u8 sCurrentHeap__7JKRHeap[4];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-
/* 8029CCDC-8029CD4C 29761C 0070+00 1/1 0/0 0/0 .text __ct__14JASAudioThreadFiiUl */
JASAudioThread::JASAudioThread(int stackSize, int msgCount, u32 threadPriority)
:
@@ -108,16 +35,6 @@ void JASAudioThread::stop() {
jamMessageBlock((void*)2);
}
-/* ############################################################################################## */
-/* 8039B338-8039B338 027998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039B338 = "SFR_DSP";
-#pragma pop
-
-/* 80431C68-80431C78 05E988 000C+04 1/1 0/0 0/0 .bss @205 */
-static u8 lit_205[12 + 4 /* padding */];
-
/* 804512D8-804512E0 0007D8 0004+04 1/1 2/2 0/0 .sbss snIntCount__14JASAudioThread */
volatile int JASAudioThread::snIntCount;
@@ -138,8 +55,7 @@ class JASChannel {
};
/* 8029CDEC-8029CF68 29772C 017C+00 1/0 0/0 0/0 .text run__14JASAudioThreadFv */
-// Maybe location of JASPoolAllocObject_MultiThreaded<JASChannel>
-#ifdef NONMATCHING
+// NONMATCHING location of JASPoolAllocObject_MultiThreaded<JASChannel>
void* JASAudioThread::run() {
OSInitFastCast();
JASDriver::initAI(DMACallback);
@@ -181,19 +97,6 @@ void* JASAudioThread::run() {
}
}
}
-#else
-void* JASAudioThread::run() {
- // NONMATCHING
-}
-#endif
-/* ############################################################################################## */
-/* 8039B338-8039B338 027998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039B340 = "UPDATE-DAC";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039B34B = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-#pragma pop
/* 8029CF68-8029CFBC 2978A8 0054+00 1/1 0/0 0/0 .text DMACallback__14JASAudioThreadFv */
void JASAudioThread::DMACallback() {
@@ -218,4 +121,4 @@ void JASAudioThread::DSPCallback(void*) {
}
}
-/* 8039B338-8039B338 027998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039B338-8039B338 027998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/JSystem/JAudio2/JASBNKParser.cpp b/src/JSystem/JAudio2/JASBNKParser.cpp
index 366cb0fc09..273112059f 100644
--- a/src/JSystem/JAudio2/JASBNKParser.cpp
+++ b/src/JSystem/JAudio2/JASBNKParser.cpp
@@ -4,189 +4,184 @@
//
#include "JSystem/JAudio2/JASBNKParser.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JKRHeap {
- /* 802CE72C */ void getFreeSize();
-};
-
-template <typename A0>
-struct JASMemPool_MultiThreaded {};
-/* JASMemPool_MultiThreaded<JASChannel> */
-struct JASMemPool_MultiThreaded__template2 {
- /* 802978DC */ void func_802978DC(void* _this);
-};
-
-struct JASInst {};
-
-struct JASGenericMemPool {
- /* 80290848 */ JASGenericMemPool();
-};
-
-struct JASDrumSet {
- struct TPerc {
- /* 802984C4 */ TPerc();
- };
-
- /* 802982EC */ JASDrumSet();
- /* 80298370 */ void newPercArray(u8, JKRHeap*);
- /* 802984B4 */ void setPerc(int, JASDrumSet::TPerc*);
-};
-
-struct JASCalc {
- /* 8028F354 */ void bcopy(void const*, void*, u32);
-};
-
-struct JASBasicInst {
- /* 80298014 */ JASBasicInst();
- /* 8029819C */ void setKeyRegionCount(u32, JKRHeap*);
- /* 8029821C */ void setOsc(int, JASOscillator::Data const*);
- /* 8029822C */ void getKeyRegion(int);
-};
-
-struct JASBasicBank {
- /* 80297D78 */ JASBasicBank();
- /* 80297DA4 */ void newInstTable(u8, JKRHeap*);
- /* 80297E68 */ void setInst(int, JASInst*);
- /* 80297E80 */ void getInst(int) const;
-};
-
-//
-// Forward References:
-//
-
-extern "C" void createBank__12JASBNKParserFPCvP7JKRHeap();
-extern "C" void createBasicBank__12JASBNKParserFPCvP7JKRHeap();
-extern "C" void findChunk__Q212JASBNKParser4Ver1FPCvUl();
-extern "C" void createBasicBank__Q212JASBNKParser4Ver1FPCvP7JKRHeap();
-extern "C" void createBasicBank__Q212JASBNKParser4Ver0FPCvP7JKRHeap();
-extern "C" void
-findOscPtr__Q212JASBNKParser4Ver0FP12JASBasicBankPCQ312JASBNKParser4Ver07THeaderPCQ312JASBNKParser4Ver04TOsc();
-extern "C" void getOscTableEndPtr__Q212JASBNKParser4Ver0FPCQ213JASOscillator5Point();
-extern "C" void func_80299FA0(void* _this, void const*, u32);
-extern "C" void func_80299FB8(void* _this, void const*, u32);
-extern "C" void func_80299FD0(void* _this, void const*, u32);
-extern "C" void func_80299FE8(void* _this, void const*, u32);
-extern "C" void func_8029A000(void* _this, void const*, u32);
-extern "C" void func_8029A018(void* _this, void const*, u32);
-extern "C" void func_8029A030(void* _this, void const*, u32);
-extern "C" void __sinit_JASBNKParser_cpp();
-extern "C" u8 sUsedHeapSize__12JASBNKParser[4];
-
-//
-// External References:
-//
-
-extern "C" void bcopy__7JASCalcFPCvPvUl();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void func_802978DC(void* _this);
-extern "C" void __ct__12JASBasicBankFv();
-extern "C" void newInstTable__12JASBasicBankFUcP7JKRHeap();
-extern "C" void setInst__12JASBasicBankFiP7JASInst();
-extern "C" void getInst__12JASBasicBankCFi();
-extern "C" void __ct__12JASBasicInstFv();
-extern "C" void setKeyRegionCount__12JASBasicInstFUlP7JKRHeap();
-extern "C" void setOsc__12JASBasicInstFiPCQ213JASOscillator4Data();
-extern "C" void getKeyRegion__12JASBasicInstFi();
-extern "C" void __ct__10JASDrumSetFv();
-extern "C" void newPercArray__10JASDrumSetFUcP7JKRHeap();
-extern "C" void setPerc__10JASDrumSetFiPQ210JASDrumSet5TPerc();
-extern "C" void __ct__Q210JASDrumSet5TPercFv();
-extern "C" void setRelease__Q210JASDrumSet5TPercFUl();
-extern "C" void getFreeSize__7JKRHeapFv();
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_17();
-extern "C" void _savegpr_19();
-extern "C" void _savegpr_23();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_17();
-extern "C" void _restgpr_19();
-extern "C" void _restgpr_23();
-extern "C" void _restgpr_28();
-extern "C" extern u8 JASDram[4];
-
-//
-// Declarations:
-//
+#include "JSystem/JAudio2/JASBasicBank.h"
+#include "JSystem/JAudio2/JASCalc.h"
+#include "JSystem/JAudio2/JASDrumSet.h"
+#include "JSystem/JAudio2/JASHeapCtrl.h"
+#include "JSystem/JKernel/JKRSolidHeap.h"
+#include "JSystem/JSupport/JSupport.h"
/* 80299538-80299558 293E78 0020+00 0/0 1/1 0/0 .text createBank__12JASBNKParserFPCvP7JKRHeap */
-JASBank* JASBNKParser::createBank(void const* param_0, JKRHeap* param_1) {
- // NONMATCHING
+JASBank* JASBNKParser::createBank(void const* stream, JKRHeap* heap) {
+ return createBasicBank(stream, heap);
}
-/* ############################################################################################## */
/* 80451288-8045128C 000788 0004+00 1/1 0/0 0/0 .sbss sUsedHeapSize__12JASBNKParser */
-u8 JASBNKParser::sUsedHeapSize[4];
+u32 JASBNKParser::sUsedHeapSize;
/* 80299558-80299600 293E98 00A8+00 1/1 0/0 0/0 .text createBasicBank__12JASBNKParserFPCvP7JKRHeap
*/
-JASBasicBank* JASBNKParser::createBasicBank(void const* param_0, JKRHeap* param_1) {
- // NONMATCHING
+JASBasicBank* JASBNKParser::createBasicBank(void const* stream, JKRHeap* heap) {
+ if (heap == NULL) {
+ heap = JASDram;
+ }
+
+ u32 free_size = heap->getFreeSize();
+ JASBasicBank* bank = NULL;
+
+ TFileHeader* header = (TFileHeader*)stream;
+ switch (header->mVersion) {
+ case 0:
+ bank = Ver0::createBasicBank(stream, heap);
+ break;
+ case 1:
+ bank = Ver1::createBasicBank(stream, heap);
+ break;
+ }
+
+ sUsedHeapSize += free_size - heap->getFreeSize();
+ return bank;
}
/* 80299600-8029963C 293F40 003C+00 1/1 0/0 0/0 .text findChunk__Q212JASBNKParser4Ver1FPCvUl */
-void JASBNKParser::Ver1::findChunk(void const* param_0, u32 param_1) {
- // NONMATCHING
+JASBNKParser::Ver1::TChunk* JASBNKParser::Ver1::findChunk(void const* stream, u32 id) {
+ TFileHeader* header = (TFileHeader*)stream;
+ void* end = (void*)((int)stream + header->mSize);
+ TChunk* chunk = (TChunk*)((int)stream + 0x20);
+ while (chunk < end) {
+ if (chunk->mID == id) {
+ return chunk;
+ }
+ chunk = (TChunk*)(((int)chunk + 0xb + chunk->mSize) & ~3);
+ }
+ return NULL;
}
-/* ############################################################################################## */
-/* 80455658-80455660 003C58 0004+04 2/2 0/0 0/0 .sdata2 @835 */
-SECTION_SDATA2 static f32 lit_835[1 + 1 /* padding */] = {
- 127.0f,
- /* padding */
- 0.0f,
-};
-
-/* 80455660-80455668 003C60 0008+00 1/1 0/0 0/0 .sdata2 @838 */
-SECTION_SDATA2 static f64 lit_838 = 4503599627370496.0 /* cast u32 to float */;
-
/* 8029963C-80299A3C 293F7C 0400+00 1/1 0/0 0/0 .text
* createBasicBank__Q212JASBNKParser4Ver1FPCvP7JKRHeap */
-void JASBNKParser::Ver1::createBasicBank(void const* param_0, JKRHeap* param_1) {
- // NONMATCHING
+// NONMATCHING instruction ordering, regalloc
+JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* heap) {
+ if (heap == NULL) {
+ heap = JASDram;
+ }
+
+ JASBasicBank* bank = new (heap, 0) JASBasicBank();
+ if (bank == NULL) {
+ return NULL;
+ }
+
+ TEnvtChunk* envt_chunk = (TEnvtChunk*)findChunk(stream, 'ENVT');
+ TOscChunk* osc_chunk = (TOscChunk*)findChunk(stream, 'OSCT');
+ TListChunk* list_chunk = (TListChunk*)findChunk(stream, 'LIST');
+
+ void* envt = new (heap, 2) u8[envt_chunk->mSize];
+ JASCalc::bcopy(envt_chunk->mData, envt, envt_chunk->mSize);
+
+ u32 count = osc_chunk->mCount;
+ TOsc* osc = osc_chunk->mOsc;
+ JASOscillator::Data* osc_data = new (heap, 0) JASOscillator::Data[count];
+ for (int i = 0; i < count; i++, osc++) {
+ JASOscillator::Data* data = &osc_data[i];
+ data->mTarget = osc->mTarget;
+ data->_04 = osc->_08;
+ data->mScale = osc->mScale;
+ data->_14 = osc->_18;
+ data->mTable = (JASOscillator::Point*)((int)envt + osc->mTableOffset);
+ data->_0C = (JASOscillator::Point*)((int)envt + osc->_10);
+ }
+
+ bank->newInstTable(list_chunk->mCount, heap);
+ for (int i = 0; i < list_chunk->mCount; i++) {
+ if (list_chunk->mOffsets[i] != 0) {
+ u32* ptr = (u32*)((int)stream + list_chunk->mOffsets[i]);
+ u32* data = ptr + 1;
+ switch (*ptr) {
+ case 'Inst': {
+ JASBasicInst* inst = new (heap, 0) JASBasicInst();
+ u32 count = *data;
+ data++;
+ for (int j = 0; j < count; j++) {
+ u32 index = *data;
+ data++;
+ inst->setOsc(j, &osc_data[index]);
+ }
+ count = *data;
+ data++;
+ for (int j = 0; j < count; j++) {
+ data++;
+ }
+ count = *data;
+ data++;
+ inst->setKeyRegionCount(count, heap);
+ for (int j = 0; j < count; j++) {
+ JASBasicInst::TKeymap* keymap = inst->getKeyRegion(j);
+ keymap->setHighKey(*data >> 0x18);
+ u32 fVar4 = data[1];
+ keymap->field_0x4 = JSULoHalf(data[3]);
+ keymap->field_0x8 = *(f32*)&data[4];
+ keymap->field_0xc = *(f32*)&data[5];
+ data += 2;
+ for (int k = 0; k < fVar4; k++) {
+ data += 4;
+ }
+ }
+ inst->setVolume(*(f32*)&data[0]);
+ inst->setPitch(*(f32*)&data[1]);
+ bank->setInst(i, inst);
+ break;
+ }
+
+ case 'Perc': {
+ JASDrumSet* drum = new (heap, 0) JASDrumSet();
+ u32 count = *data;
+ data++;
+ drum->newPercArray(count, heap);
+ for (int j = 0; j < count; j++) {
+ u32 offset = *data;
+ data++;
+ if (offset != 0) {
+ JASDrumSet::TPerc* perc = new (heap, 0) JASDrumSet::TPerc();
+ u32* ptr = (u32*)((int)stream + offset);
+ TPercData* perc_data = (TPercData*)(ptr + 1);
+ perc->setVolume(perc_data->mVolume);
+ perc->setPitch(perc_data->mPitch);
+ perc->setPan((f32)perc_data->mPan / 127.0f);
+ perc->setRelease(perc_data->mRelease);
+ ptr = (u32*)&perc_data->field_0xc;
+ u32 count2 = *ptr;
+ ptr++;
+ for (int k = 0; k < count2; k++) {
+ ptr++;
+ }
+ u32 pVar6 = ptr[0];
+ perc->field_0xe = JSULoHalf(ptr[2]);
+ perc->field_0x10 = *(f32*)&ptr[3];
+ perc->field_0x14 = *(f32*)&ptr[4];
+ for (int k = 0; k < pVar6; k++) {}
+ drum->setPerc(j, perc);
+ }
+ }
+ bank->setInst(i, drum);
+ break;
+ }
+ }
+ }
+ }
+
+ return bank;
}
-/* ############################################################################################## */
-/* 80455668-80455670 003C68 0008+00 1/1 0/0 0/0 .sdata2 @990 */
-SECTION_SDATA2 static f64 lit_990 = 4503601774854144.0 /* cast s32 to float */;
-
/* 80299A3C-80299E68 29437C 042C+00 1/1 0/0 0/0 .text
* createBasicBank__Q212JASBNKParser4Ver0FPCvP7JKRHeap */
-void JASBNKParser::Ver0::createBasicBank(void const* param_0, JKRHeap* param_1) {
+JASBasicBank* JASBNKParser::Ver0::createBasicBank(void const* stream, JKRHeap* heap) {
// NONMATCHING
}
-/* ############################################################################################## */
-/* 80455670-80455674 003C70 0004+00 1/1 0/0 0/0 .sdata2 @1045 */
-SECTION_SDATA2 static f32 lit_1045 = 1.0f;
-
-/* 80455674-80455678 003C74 0004+00 1/1 0/0 0/0 .sdata2 @1046 */
-SECTION_SDATA2 static u8 lit_1046[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455678-80455680 003C78 0004+04 1/1 0/0 0/0 .sdata2 @1047 */
-SECTION_SDATA2 static f32 lit_1047[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
-
/* 80299E68-80299F8C 2947A8 0124+00 1/1 0/0 0/0 .text
* findOscPtr__Q212JASBNKParser4Ver0FP12JASBasicBankPCQ312JASBNKParser4Ver07THeaderPCQ312JASBNKParser4Ver04TOsc
*/
-void JASBNKParser::Ver0::findOscPtr(JASBasicBank* param_0,
- JASBNKParser::Ver0::THeader const* param_1,
- JASBNKParser::Ver0::TOsc const* param_2) {
+void JASBNKParser::Ver0::findOscPtr(JASBasicBank* param_0, THeader const* param_1,
+ TOsc const* param_2) {
// NONMATCHING
}
@@ -195,66 +190,3 @@ void JASBNKParser::Ver0::findOscPtr(JASBasicBank* param_0,
void JASBNKParser::Ver0::getOscTableEndPtr(JASOscillator::Point const* param_0) {
// NONMATCHING
}
-
-/* 80299FA0-80299FB8 2948E0 0018+00 1/1 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver05TPmap>__FPCvUl */
-extern "C" void func_80299FA0(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 80299FB8-80299FD0 2948F8 0018+00 1/1 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver05TPerc>__FPCvUl */
-extern "C" void func_80299FB8(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 80299FD0-80299FE8 294910 0018+00 1/1 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver05TVmap>__FPCvUl */
-extern "C" void func_80299FD0(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 80299FE8-8029A000 294928 0018+00 1/1 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver07TKeymap>__FPCvUl */
-extern "C" void func_80299FE8(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 8029A000-8029A018 294940 0018+00 1/1 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q213JASOscillator5Point>__FPCvUl */
-extern "C" void func_8029A000(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 8029A018-8029A030 294958 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver04TOsc>__FPCvUl */
-extern "C" void func_8029A018(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* 8029A030-8029A048 294970 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q312JASBNKParser4Ver05TInst>__FPCvUl */
-extern "C" void func_8029A030(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80431B70-80431B7C 05E890 000C+00 1/1 0/0 0/0 .bss @1065 */
-static u8 lit_1065[12];
-
-/* 80431B7C-80431B90 05E89C 0010+04 1/1 0/0 0/0 .bss
- * memPool___46JASPoolAllocObject_MultiThreaded<10JASChannel> */
-static u8 data_80431B7C[16 + 4 /* padding */];
-
-/* 8045128C-80451290 00078C 0004+00 1/1 0/0 0/0 .sbss None */
-static u8 data_8045128C[4];
-
-/* 8029A048-8029A0A0 294988 0058+00 0/0 1/0 0/0 .text __sinit_JASBNKParser_cpp */
-void __sinit_JASBNKParser_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x8029A048, __sinit_JASBNKParser_cpp);
-#pragma pop \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASBank.cpp b/src/JSystem/JAudio2/JASBank.cpp
index fec278830f..c988a1c390 100644
--- a/src/JSystem/JAudio2/JASBank.cpp
+++ b/src/JSystem/JAudio2/JASBank.cpp
@@ -4,65 +4,14 @@
//
#include "JSystem/JAudio2/JASBank.h"
+#include "JSystem/JAudio2/JASAiCtrl.h"
+#include "JSystem/JAudio2/JASBasicInst.h"
+#include "JSystem/JAudio2/JASBasicWaveBank.h"
#include "JSystem/JAudio2/JASChannel.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-extern "C" void noteOn__7JASBankFPC7JASBankiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv();
-extern "C" void noteOnOsc__7JASBankFiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv();
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void func_802978DC(void* _this);
-extern "C" void __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv();
-extern "C" void play__10JASChannelFv();
-extern "C" void setOscInit__10JASChannelFUlPCQ213JASOscillator4Data();
-extern "C" void getDacRate__9JASDriverFv();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_23();
-extern "C" void _savegpr_25();
-extern "C" void _restgpr_23();
-extern "C" void _restgpr_25();
-extern "C" extern u8 data_80431B34[16 + 4 /* padding */];
-extern "C" extern u8 struct_80451260[8];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80431B48-80431B58 05E868 000C+04 2/2 0/0 0/0 .bss @156 */
-static u8 lit_156[12 + 4 /* padding */];
-
-/* 80455630-80455634 003C30 0004+00 1/1 0/0 0/0 .sdata2 @248 */
-SECTION_SDATA2 static f32 lit_248 = 1.0f;
-
-/* 80455634-80455638 003C34 0004+00 1/1 0/0 0/0 .sdata2 @249 */
-SECTION_SDATA2 static u8 lit_249[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455638-8045563C 003C38 0004+00 1/1 0/0 0/0 .sdata2 @250 */
-SECTION_SDATA2 static f32 lit_250 = 0.5f;
/* 80297930-80297C40 292270 0310+00 0/0 1/1 0/0 .text
* noteOn__7JASBankFPC7JASBankiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */
-// vtables for JASWaveBank, JASWaveHandle
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8 param_3, u16 param_4,
void (*param_5)(u32, JASChannel*, JASDsp::TChannel*, void*),
void* param_6) {
@@ -120,38 +69,18 @@ JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8
}
return channel;
}
-#else
-JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8 param_3, u16 param_4,
- void (*param_5)(u32, JASChannel*, JASDsp::TChannel*, void*),
- void* param_6) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 8039B190-8039B19C 0277F0 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE$260 */
-SECTION_RODATA static JASOscillator::Point const OSC_RELEASE_TABLE[2] = {
- {0x0001, 0x000A, 0x0000},
- {0x000F, 0x0000, 0x0000},
-};
-COMPILER_STRIP_GATE(0x8039B190, &OSC_RELEASE_TABLE);
-
-/* 8039B19C-8039B1B8 -00001 0018+04 1/1 0/0 0/0 .rodata OSC_ENV$261 */
-SECTION_RODATA static const JASOscillator::Data OSC_ENV = {
- 0, 1.0f, NULL, OSC_RELEASE_TABLE, 1.0f, 0.0f,
-};
-COMPILER_STRIP_GATE(0x8039B19C, &OSC_ENV);
-
-/* 8045563C-80455640 003C3C 0004+00 1/1 0/0 0/0 .sdata2 @290 */
-SECTION_SDATA2 static f32 lit_290 = 16736.015625f;
/* 80297C40-80297D78 292580 0138+00 1/1 0/0 0/0 .text
* noteOnOsc__7JASBankFiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */
-// wild ~JASMemPool_MultiThreaded<JASChannel> destructor appeared!
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
void (*param_4)(u32, JASChannel*, JASDsp::TChannel*, void*),
void* param_5) {
+ static JASOscillator::Point const OSC_RELEASE_TABLE[2] = {
+ {0x0001, 0x000A, 0x0000},
+ {0x000F, 0x0000, 0x0000},
+ };
+ static const JASOscillator::Data OSC_ENV = {0, 1.0f, NULL, OSC_RELEASE_TABLE, 1.0f, 0.0f};
JASChannel* channel = new JASChannel(param_4, param_5);
if (!channel) {
return NULL;
@@ -159,7 +88,7 @@ JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
channel->setPriority(param_3);
channel->field_0x104 = param_0;
channel->field_0xdc.field_0x0 = 2;
- channel->setInitPitch(16736.02f / JASDriver::getDacRate());
+ channel->setInitPitch(16736.016f / JASDriver::getDacRate());
channel->setKey(param_1 - channel->field_0xdc.field_0x4.field_0x01);
channel->setVelocity(param_2);
channel->setOscInit(0, &OSC_ENV);
@@ -168,10 +97,3 @@ JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
}
return channel;
}
-#else
-JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
- void (*param_4)(u32, JASChannel*, JASDsp::TChannel*, void*),
- void* param_5) {
- // NONMATCHING
-}
-#endif \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASBasicBank.cpp b/src/JSystem/JAudio2/JASBasicBank.cpp
index 5b970837b5..537bbc52c1 100644
--- a/src/JSystem/JAudio2/JASBasicBank.cpp
+++ b/src/JSystem/JAudio2/JASBasicBank.cpp
@@ -4,117 +4,52 @@
//
#include "JSystem/JAudio2/JASBasicBank.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JKRHeap {};
-
-struct JASInstParam {};
-
-struct JASInst {};
-
-struct JASCalc {
- /* 8028F480 */ void bzero(void*, u32);
-};
-
-struct JASBasicBank {
- /* 80297D78 */ JASBasicBank();
- /* 80297DA4 */ void newInstTable(u8, JKRHeap*);
- /* 80297E00 */ void getInstParam(int, int, int, JASInstParam*) const;
- /* 80297E68 */ void setInst(int, JASInst*);
- /* 80297E80 */ void getInst(int) const;
- /* 80297F0C */ ~JASBasicBank();
- /* 80297F68 */ void getType() const;
-};
-
-struct JASBank {
- /* 80297EC4 */ ~JASBank();
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__12JASBasicBankFv();
-extern "C" void newInstTable__12JASBasicBankFUcP7JKRHeap();
-extern "C" void getInstParam__12JASBasicBankCFiiiP12JASInstParam();
-extern "C" void setInst__12JASBasicBankFiP7JASInst();
-extern "C" void getInst__12JASBasicBankCFi();
-extern "C" void __dt__7JASBankFv();
-extern "C" void __dt__12JASBasicBankFv();
-extern "C" void getType__12JASBasicBankCFv();
-
-//
-// External References:
-//
-
-extern "C" void bzero__7JASCalcFPvUl();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C76A8-803C76BC 0247C8 0014+00 2/2 0/0 0/0 .data __vt__12JASBasicBank */
-SECTION_DATA extern void* __vt__12JASBasicBank[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12JASBasicBankFv,
- (void*)getInstParam__12JASBasicBankCFiiiP12JASInstParam,
- (void*)getType__12JASBasicBankCFv,
-};
-
-/* 803C76BC-803C76D0 0247DC 0014+00 3/3 2/2 0/0 .data __vt__7JASBank */
-SECTION_DATA extern void* __vt__7JASBank[5] = {
- (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__7JASBankFv, (void*)NULL, (void*)NULL,
-};
+#include "JSystem/JAudio2/JASCalc.h"
/* 80297D78-80297DA4 2926B8 002C+00 0/0 2/2 0/0 .text __ct__12JASBasicBankFv */
JASBasicBank::JASBasicBank() {
- // NONMATCHING
+ mInstTable = NULL;
+ mInstNumMax = 0;
}
/* 80297DA4-80297E00 2926E4 005C+00 0/0 2/2 0/0 .text newInstTable__12JASBasicBankFUcP7JKRHeap */
-void JASBasicBank::newInstTable(u8 param_0, JKRHeap* param_1) {
- // NONMATCHING
+void JASBasicBank::newInstTable(u8 num, JKRHeap* heap) {
+ if (num != 0) {
+ mInstNumMax = num;
+ mInstTable = new (heap, 0) JASInst*[mInstNumMax];
+ JASCalc::bzero(mInstTable, mInstNumMax * 4);
+ }
}
/* 80297E00-80297E68 292740 0068+00 1/0 0/0 0/0 .text
* getInstParam__12JASBasicBankCFiiiP12JASInstParam */
-void JASBasicBank::getInstParam(int param_0, int param_1, int param_2,
- JASInstParam* param_3) const {
- // NONMATCHING
+bool JASBasicBank::getInstParam(int prg_no, int param_1, int param_2,
+ JASInstParam* o_param) const {
+ JASInst* inst = getInst(prg_no);
+ if (inst == NULL) {
+ return NULL;
+ }
+ return inst->getParam(param_1, param_2, o_param);
}
/* 80297E68-80297E80 2927A8 0018+00 0/0 2/2 0/0 .text setInst__12JASBasicBankFiP7JASInst
*/
-void JASBasicBank::setInst(int param_0, JASInst* param_1) {
- // NONMATCHING
+void JASBasicBank::setInst(int prg_no, JASInst* inst) {
+ if (mInstTable != NULL) {
+ mInstTable[prg_no] = inst;
+ }
}
/* 80297E80-80297EC4 2927C0 0044+00 1/1 1/1 0/0 .text getInst__12JASBasicBankCFi */
-void JASBasicBank::getInst(int param_0) const {
- // NONMATCHING
-}
-
-/* 80297EC4-80297F0C 292804 0048+00 1/0 0/0 0/0 .text __dt__7JASBankFv */
-JASBank::~JASBank() {
- // NONMATCHING
+JASInst* JASBasicBank::getInst(int prg_no) const {
+ if (prg_no < 0) {
+ return NULL;
+ }
+ if (prg_no >= mInstNumMax) {
+ return NULL;
+ }
+ if (mInstTable == NULL) {
+ return NULL;
+ }
+ return mInstTable[prg_no];
}
-
-/* 80297F0C-80297F68 29284C 005C+00 1/0 0/0 0/0 .text __dt__12JASBasicBankFv */
-JASBasicBank::~JASBasicBank() {
- // NONMATCHING
-}
-
-/* 80297F68-80297F74 2928A8 000C+00 1/0 0/0 0/0 .text getType__12JASBasicBankCFv */
-void JASBasicBank::getType() const {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASBasicInst.cpp b/src/JSystem/JAudio2/JASBasicInst.cpp
index 30599d2ef1..a35c5deb77 100644
--- a/src/JSystem/JAudio2/JASBasicInst.cpp
+++ b/src/JSystem/JAudio2/JASBasicInst.cpp
@@ -32,7 +32,7 @@ bool JASBasicInst::getParam(int param_0, int param_1, JASInstParam* param_2) con
TKeymap* keyMap = NULL;
for (int i = 0; i < mKeymapCount; i++) {
- if (param_0 <= mKeymap[i].field_0x0) {
+ if (param_0 <= mKeymap[i].mHighKey) {
keyMap = &mKeymap[i];
break;
}
@@ -73,4 +73,4 @@ JASBasicInst::TKeymap* JASBasicInst::getKeyRegion(int param_0) {
/* 80298250-8029828C 292B90 003C+00 2/2 0/0 0/0 .text __dt__Q212JASBasicInst7TKeymapFv */
JASBasicInst::TKeymap::~TKeymap() {
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JASBasicWaveBank.cpp b/src/JSystem/JAudio2/JASBasicWaveBank.cpp
index a87a24c626..e1ca8d4f4d 100644
--- a/src/JSystem/JAudio2/JASBasicWaveBank.cpp
+++ b/src/JSystem/JAudio2/JASBasicWaveBank.cpp
@@ -67,54 +67,7 @@ extern "C" u32 one__11JASWaveInfo[1 + 1 /* padding */];
// Declarations:
//
-/* ############################################################################################## */
-/* 803C7728-803C773C 024848 0014+00 2/2 0/0 0/0 .data __vt__Q216JASBasicWaveBank11TWaveHandle */
-SECTION_DATA extern void* __vt__Q216JASBasicWaveBank11TWaveHandle[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__Q216JASBasicWaveBank11TWaveHandleFv,
- (void*)getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv,
- (void*)getWavePtr__Q216JASBasicWaveBank11TWaveHandleCFv,
-};
-
-/* 803C773C-803C7754 02485C 0018+00 2/2 0/0 0/0 .data __vt__Q216JASBasicWaveBank10TWaveGroup */
-SECTION_DATA extern void* __vt__Q216JASBasicWaveBank10TWaveGroup[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__Q216JASBasicWaveBank10TWaveGroupFv,
- (void*)onDispose__10JASWaveArcFv,
- (void*)onLoadDone__Q216JASBasicWaveBank10TWaveGroupFv,
- (void*)onEraseDone__Q216JASBasicWaveBank10TWaveGroupFv,
-};
-
-/* 803C7754-803C7768 024874 0014+00 3/3 2/2 0/0 .data __vt__13JASWaveHandle */
-SECTION_DATA extern void* __vt__13JASWaveHandle[5] = {
- (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__13JASWaveHandleFv, (void*)NULL, (void*)NULL,
-};
-
-/* 803C7768-803C7780 024888 0018+00 2/2 0/0 0/0 .data __vt__16JASBasicWaveBank */
-SECTION_DATA extern void* __vt__16JASBasicWaveBank[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16JASBasicWaveBankFv,
- (void*)getWaveHandle__16JASBasicWaveBankCFUl,
- (void*)getWaveArc__16JASBasicWaveBankFUl,
- (void*)getArcCount__16JASBasicWaveBankCFv,
-};
-
-/* 803C7780-803C7798 0248A0 0018+00 3/3 2/2 0/0 .data __vt__11JASWaveBank */
-SECTION_DATA extern void* __vt__11JASWaveBank[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__11JASWaveBankFv,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
-};
-
/* 802984F8-80298558 292E38 0060+00 0/0 1/1 0/0 .text __ct__16JASBasicWaveBankFv */
-// vtable order
-#ifdef NONMATCHING
JASBasicWaveBank::JASBasicWaveBank() {
mWaveTable = NULL;
mWaveGroupArray = NULL;
@@ -122,34 +75,12 @@ JASBasicWaveBank::JASBasicWaveBank() {
mGroupCount = 0;
OSInitMutex(&field_0x4);
}
-#else
-JASBasicWaveBank::JASBasicWaveBank() {
- // NONMATCHING
-}
-#endif
/* 80298558-802985E4 292E98 008C+00 1/0 0/0 0/0 .text __dt__16JASBasicWaveBankFv */
-// vtable order
-#ifdef NONMATCHING
JASBasicWaveBank::~JASBasicWaveBank() {
delete[] mWaveTable;
delete[] mWaveGroupArray;
}
-#else
-JASBasicWaveBank::~JASBasicWaveBank() {
- // NONMATCHING
-}
-#endif
-
-/* 802985E4-80298640 292F24 005C+00 3/2 0/0 0/0 .text __dt__Q216JASBasicWaveBank11TWaveHandleFv */
-// vtable order
-#ifdef NONMATCHING
-JASBasicWaveBank::TWaveHandle::~TWaveHandle() {}
-#else
-JASBasicWaveBank::TWaveHandle::~TWaveHandle() {
- // NONMATCHING
-}
-#endif
/* 80298640-80298664 292F80 0024+00 1/1 1/1 0/0 .text getWaveGroup__16JASBasicWaveBankFUl
*/
@@ -183,26 +114,19 @@ void JASBasicWaveBank::setWaveTableSize(u32 param_0, JKRHeap* param_1) {
/* 80298790-8029883C 2930D0 00AC+00 1/1 0/0 0/0 .text
* incWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup */
-// instruction order
-#ifdef NONMATCHING
+// NONMATCHING instruction order
void JASBasicWaveBank::incWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) {
JASMutexLock lock(&field_0x4);
for (u32 i = 0; i < param_0->getWaveCount(); i++) {
TWaveHandle* handle = mWaveTable + param_0->getWaveID(i);
if (!handle->mHeap) {
- handle->mHeap = &param_0->base.mHeap;
- handle->field_0x4.field_0x20 = &param_0->base._48;
+ handle->mHeap = const_cast<JASHeap*>(&param_0->mHeap);
+ handle->field_0x4.field_0x20 = &param_0->_48;
handle->field_0x4.field_0x08 = param_0->mCtrlWaveArray[i].field_0x4;
}
}
}
-#else
-void JASBasicWaveBank::incWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) {
- // NONMATCHING
-}
-#endif
-/* ############################################################################################## */
/* 80451278-80451280 000778 0004+04 2/2 0/0 0/0 .sbss mNoLoad__16JASBasicWaveBank */
u32 JASBasicWaveBank::mNoLoad;
@@ -212,7 +136,7 @@ void JASBasicWaveBank::decWaveTable(JASBasicWaveBank::TWaveGroup const* param_0)
JASMutexLock lock(&field_0x4);
for (u32 i = 0; i < param_0->getWaveCount(); i++) {
TWaveHandle* handle = mWaveTable + param_0->getWaveID(i);
- if (handle->mHeap == &param_0->base.mHeap) {
+ if (handle->mHeap == &param_0->mHeap) {
handle->mHeap = NULL;
handle->field_0x4.field_0x20 = &mNoLoad;
handle->field_0x4.field_0x08 = -1;
@@ -246,30 +170,16 @@ void JASBasicWaveBank::setWaveInfo(JASBasicWaveBank::TWaveGroup* wgrp, int index
}
/* 802989C0-80298A0C 293300 004C+00 1/1 0/0 0/0 .text __ct__Q216JASBasicWaveBank10TWaveGroupFv */
-// vtable order
-#ifdef NONMATCHING
JASBasicWaveBank::TWaveGroup::TWaveGroup() {
mBank = NULL;
mCtrlWaveArray = NULL;
mWaveCount = 0;
}
-#else
-JASBasicWaveBank::TWaveGroup::TWaveGroup() {
- // NONMATCHING
-}
-#endif
/* 80298A0C-80298A84 29334C 0078+00 3/2 0/0 0/0 .text __dt__Q216JASBasicWaveBank10TWaveGroupFv */
-// vtable order
-#ifdef NONMATCHING
JASBasicWaveBank::TWaveGroup::~TWaveGroup() {
delete[] mCtrlWaveArray;
}
-#else
-JASBasicWaveBank::TWaveGroup::~TWaveGroup() {
- // NONMATCHING
-}
-#endif
/* 80298A84-80298B04 2933C4 0080+00 0/0 1/1 0/0 .text
* setWaveCount__Q216JASBasicWaveBank10TWaveGroupFUlP7JKRHeap */
@@ -313,49 +223,3 @@ int JASBasicWaveBank::TWaveHandle::getWavePtr() const {
}
return (int)base + field_0x4.field_0x08;
}
-
-/* 80298B88-80298BD0 2934C8 0048+00 1/0 0/0 0/0 .text __dt__11JASWaveBankFv */
-// JASWaveBank::~JASWaveBank() {
-void __dt__11JASWaveBankFv() {
- // NONMATCHING
-}
-
-/* 80298BD0-80298C18 293510 0048+00 1/0 0/0 0/0 .text __dt__13JASWaveHandleFv */
-// JASWaveHandle::~JASWaveHandle() {
-void __dt__13JASWaveHandleFv() {
- // NONMATCHING
-}
-
-/* 80298C18-80298C4C 293558 0034+00 1/1 0/0 0/0 .text __ct__Q216JASBasicWaveBank11TWaveHandleFv */
-// JASBasicWaveBank::TWaveHandle::TWaveHandle() {
-void __ct__Q216JASBasicWaveBank11TWaveHandleFv() {
- // NONMATCHING
-}
-
-/* 80298C4C-80298C64 29358C 0018+00 1/1 0/0 0/0 .text __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv
- */
-// JASBasicWaveBank::TGroupWaveInfo::TGroupWaveInfo() {
-void __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv() {
- // NONMATCHING
-}
-
-/* 80298C64-80298C6C 2935A4 0008+00 1/0 0/0 0/0 .text
- * getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv */
-// JASWaveInfo* JASBasicWaveBank::TWaveHandle::getWaveInfo() const {
-void getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv() {
- // NONMATCHING
-}
-
-/* 80298C6C-80298C8C 2935AC 0020+00 1/0 0/0 0/0 .text getWaveArc__16JASBasicWaveBankFUl
- */
-// JASWaveArc* JASBasicWaveBank::getWaveArc(u32 param_0) {
-void getWaveArc__16JASBasicWaveBankFUl() {
- // NONMATCHING
-}
-
-/* 80298C8C-80298C94 2935CC 0008+00 1/0 0/0 0/0 .text getArcCount__16JASBasicWaveBankCFv
- */
-// u32 JASBasicWaveBank::getArcCount() const {
-void getArcCount__16JASBasicWaveBankCFv() {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASDSPInterface.cpp b/src/JSystem/JAudio2/JASDSPInterface.cpp
index 3b38e4d73d..2580802278 100644
--- a/src/JSystem/JAudio2/JASDSPInterface.cpp
+++ b/src/JSystem/JAudio2/JASDSPInterface.cpp
@@ -7,25 +7,13 @@
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASWaveInfo.h"
+#include "JSystem/JAudio2/dspproc.h"
#include "JSystem/JAudio2/dsptask.h"
#include "JSystem/JAudio2/osdsp_task.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dolphin/os/OSCache.h"
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 804512E8-804512EC 0007E8 0004+00 5/5 0/0 0/0 .sbss CH_BUF__6JASDsp */
JASDsp::TChannel* JASDsp::CH_BUF;
@@ -94,7 +82,6 @@ void JASDsp::invalChannelAll() {
DCInvalidateRange(CH_BUF, sizeof(TChannel) * 64);
}
-/* ############################################################################################## */
/* 8039B360-8039B3A0 0279C0 0040+00 1/1 0/0 0/0 .rodata DSPADPCM_FILTER__6JASDsp */
u8 const JASDsp::DSPADPCM_FILTER[64] = {
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00,
@@ -440,7 +427,6 @@ void JASDsp::initBuffer() {
flushBuffer();
}
-/* ############################################################################################## */
/* 803C78F0-803C7920 024A10 0018+18 1/1 0/0 0/0 .data SEND_TABLE__6JASDsp */
u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
0x0D00,
@@ -556,22 +542,13 @@ bool JASDsp::TChannel::isFinish() const {
return mIsFinished != 0;
}
-/* ############################################################################################## */
-/* 8045574C-80455754 003D4C 0008+00 1/1 0/0 0/0 .sdata2 COMP_BLOCKSAMPLES$331 */
-static const u8 COMP_BLOCKSAMPLES[8] = {
- 0x10, 0x10, 0x01, 0x01, 0x01, 0x10, 0x10, 0x01,
-};
-
-/* 80455754-8045575C 003D54 0008+00 1/1 0/0 0/0 .sdata2 COMP_BLOCKBYTES$332 */
-static const u8 COMP_BLOCKBYTES[8] = {
- 0x09, 0x05, 0x08, 0x10, 0x01, 0x01, 0x01, 0x01,
-};
-
/* 8029DD8C-8029DEAC 2986CC 0120+00 0/0 1/1 0/0 .text
* setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl */
void JASDsp::TChannel::setWaveInfo(JASWaveInfo const& param_0, u32 param_1, u32 param_2) {
field_0x118 = param_1;
+ static const u8 COMP_BLOCKSAMPLES[8] = {0x10, 0x10, 0x01, 0x01, 0x01, 0x10, 0x10, 0x01};
field_0x064 = COMP_BLOCKSAMPLES[param_0.field_0x00];
+ static const u8 COMP_BLOCKBYTES[8] = {0x09, 0x05, 0x08, 0x10, 0x01, 0x01, 0x01, 0x01};
field_0x100 = COMP_BLOCKBYTES[param_0.field_0x00];
field_0x068 = 0;
if (field_0x100 >= 4) {
@@ -721,16 +698,13 @@ void JASDsp::TChannel::setDistFilter(s16 param_0) {
iir_filter_params[4] = param_0;
}
-/* ############################################################################################## */
-/* 8039B8A0-8039B8B8 027F00 0018+00 1/1 0/0 0/0 .rodata connect_table$463 */
-static u16 const connect_table[12] = {
- 0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80,
- 0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0,
-};
-
/* 8029E09C-8029E0BC 2989DC 0020+00 0/0 1/1 0/0 .text setBusConnect__Q26JASDsp8TChannelFUcUc */
void JASDsp::TChannel::setBusConnect(u8 param_0, u8 param_1) {
u16* tmp = field_0x010[param_0];
+ static u16 const connect_table[12] = {
+ 0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80,
+ 0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0,
+ };
tmp[0] = connect_table[param_1];
}
@@ -749,4 +723,4 @@ u16 DSP_CreateMap2(u32 param_0) {
}
/* 804507B8-804507C0 000238 0004+04 0/0 5/5 0/0 .sdata one__11JASWaveInfo */
-u32 JASWaveInfo::one = 1; \ No newline at end of file
+u32 JASWaveInfo::one = 1;
diff --git a/src/JSystem/JAudio2/JASHeapCtrl.cpp b/src/JSystem/JAudio2/JASHeapCtrl.cpp
index fef210c4e7..2bf73cd581 100644
--- a/src/JSystem/JAudio2/JASHeapCtrl.cpp
+++ b/src/JSystem/JAudio2/JASHeapCtrl.cpp
@@ -5,78 +5,10 @@
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASMutex.h"
+#include "JSystem/JAudio2/JASWaveArcLoader.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JASDisposer {
- virtual ~JASDisposer();
- /* 80290BCC */ virtual void onDispose();
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__7JASHeapFP11JASDisposer();
-extern "C" void initRootHeap__7JASHeapFPvUl();
-extern "C" void alloc__7JASHeapFP7JASHeapUl();
-extern "C" void allocTail__7JASHeapFP7JASHeapUl();
-extern "C" void free__7JASHeapFv();
-extern "C" void insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb();
-extern "C" void getTailHeap__7JASHeapFv();
-extern "C" void getTailOffset__7JASHeapFv();
-extern "C" void getCurOffset__7JASHeapFv();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void newMemPool__17JASGenericMemPoolFUli();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void setupRootHeap__9JASKernelFP12JKRSolidHeapUl();
-extern "C" u32 getSystemHeap__9JASKernelFv();
-extern "C" u32 getCommandHeap__9JASKernelFv();
-extern "C" void setupAramHeap__9JASKernelFUlUl();
-extern "C" void getAramHeap__9JASKernelFv();
-extern "C" void __sinit_JASHeapCtrl_cpp();
-extern "C" void __dt__7JASHeapFv();
-extern "C" void onDispose__11JASDisposerFv();
-extern "C" u8 audioAramHeap__9JASKernel[68];
-extern "C" u8 sAramBase__9JASKernel[4];
-extern "C" u8 sSystemHeap__9JASKernel[4];
-extern "C" u8 sCommandHeap__9JASKernel[4];
-
-//
-// External References:
-//
-
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __dla__FPv();
-extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void __dt__10JSUPtrListFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 sSystemHeap__7JKRHeap[4];
-
-//
-// Declarations:
-//
/* 80290140-802901AC 28AA80 006C+00 1/1 2/2 0/0 .text __ct__7JASHeapFP11JASDisposer */
JASHeap::JASHeap(JASDisposer* disposer) : mTree(this) {
@@ -155,13 +87,27 @@ bool JASHeap::alloc(JASHeap* mother, u32 param_1) {
}
/* 802903F4-802904E4 28AD34 00F0+00 0/0 1/1 0/0 .text allocTail__7JASHeapFP7JASHeapUl */
-bool JASHeap::allocTail(JASHeap* param_0, u32 param_1) {
- // NONMATCHING
+bool JASHeap::allocTail(JASHeap* mother, u32 size) {
+ JASMutexLock lock(&mMutex);
+ if (isAllocated()) {
+ return false;
+ }
+ if (!mother->isAllocated()) {
+ return false;
+ }
+ u32 aligned_size = (size + 0x1f) & ~0x1f;
+ u32 cur_offset = mother->getCurOffset();
+ u32 tail_offset = mother->getTailOffset();
+ if (cur_offset + aligned_size > tail_offset) {
+ return false;
+ }
+ mother->insertChild(this, mother->getTailHeap(), mother->mBase + tail_offset - aligned_size,
+ aligned_size, true);
+ return true;
}
/* 802904E4-80290608 28AE24 0124+00 0/0 4/4 0/0 .text free__7JASHeapFv */
-// regswap
-#ifdef NONMATCHING
+// NONMATCHING regswap
bool JASHeap::free() {
JASMutexLock lock(&mMutex);
if (!isAllocated()) {
@@ -194,16 +140,10 @@ bool JASHeap::free() {
}
return true;
}
-#else
-bool JASHeap::free() {
- // NONMATCHING
-}
-#endif
/* 80290608-802906F0 28AF48 00E8+00 2/2 0/0 0/0 .text
* insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb */
-// regalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
void JASHeap::insertChild(JASHeap* heap, JASHeap* next, void* param_2, u32 param_3, bool param_4) {
JUT_ASSERT(537, heap != 0);
JUT_ASSERT(538, next == 0 || &mTree == next->mTree.getParent());
@@ -225,12 +165,6 @@ void JASHeap::insertChild(JASHeap* heap, JASHeap* next, void* param_2, u32 param
heap->field_0x40 = NULL;
mTree.insertChild(&next->mTree, &heap->mTree);
}
-#else
-void JASHeap::insertChild(JASHeap* param_0, JASHeap* param_1, void* param_2, u32 param_3,
- bool param_4) {
- // NONMATCHING
-}
-#endif
/* 802906F0-8029077C 28B030 008C+00 3/3 0/0 0/0 .text getTailHeap__7JASHeapFv */
JASHeap* JASHeap::getTailHeap() {
@@ -267,35 +201,57 @@ JASGenericMemPool::JASGenericMemPool() {
field_0x0 = NULL;
freeMemCount = 0;
totalMemCount = 0;
- field_0xc = 0;
+ usedMemCount = 0;
}
/* 80290860-802908C8 28B1A0 0068+00 0/0 9/9 0/0 .text __dt__17JASGenericMemPoolFv */
JASGenericMemPool::~JASGenericMemPool() {
- // NONMATCHING
+ void* chunk = field_0x0;
+ while (chunk != NULL) {
+ void* next_chunk = *(void**)chunk;
+ delete[] chunk;
+ chunk = next_chunk;
+ }
}
-/* ############################################################################################## */
/* 80451210-80451214 000710 0004+00 2/2 15/15 0/0 .sbss JASDram */
JKRSolidHeap* JASDram;
/* 802908C8-80290948 28B208 0080+00 0/0 4/4 0/0 .text newMemPool__17JASGenericMemPoolFUli
*/
-void JASGenericMemPool::newMemPool(u32 param_0, int param_1) {
- // NONMATCHING
+void JASGenericMemPool::newMemPool(u32 size, int param_1) {
+ for (int i = 0; i < param_1; i++) {
+ void* chunk = new (JASDram, 0) u8[size];
+ *(void**)chunk = field_0x0;
+ field_0x0 = chunk;
+ }
+ freeMemCount += param_1;
+ totalMemCount += param_1;
}
/* 80290948-80290994 28B288 004C+00 0/0 13/13 0/0 .text alloc__17JASGenericMemPoolFUl */
void* JASGenericMemPool::alloc(u32 param_0) {
- // NONMATCHING
+ void* chunk = field_0x0;
+ if (chunk == NULL) {
+ return NULL;
+ }
+ field_0x0 = *(void**)chunk;
+ freeMemCount--;
+ if (usedMemCount < totalMemCount - freeMemCount) {
+ usedMemCount = totalMemCount - freeMemCount;
+ }
+ return chunk;
}
/* 80290994-802909B8 28B2D4 0024+00 0/0 15/15 0/0 .text free__17JASGenericMemPoolFPvUl */
-void JASGenericMemPool::free(void* param_0, u32 param_1) {
- // NONMATCHING
+void JASGenericMemPool::free(void* ptr, u32 param_1) {
+ if (ptr != NULL) {
+ *(void**)ptr = field_0x0;
+ field_0x0 = ptr;
+ freeMemCount++;
+ }
}
-/* ############################################################################################## */
/* 80451214-80451218 000714 0004+00 1/1 0/0 0/0 .sbss sAramBase__9JASKernel */
u32 JASKernel::sAramBase;
@@ -307,21 +263,14 @@ JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* JASKernel::sComma
/* 802909B8-80290AC0 28B2F8 0108+00 0/0 1/1 0/0 .text setupRootHeap__9JASKernelFP12JKRSolidHeapUl
*/
-// implement JASMemChunkPool
-#ifdef NONMATCHING
void JASKernel::setupRootHeap(JKRSolidHeap* heap, u32 size) {
JUT_ASSERT(784, heap);
sSystemHeap = JKRExpHeap::create(size, heap, false);
JUT_ASSERT(787, sSystemHeap);
- sCommandHeap = new JASMemChunkPool();
+ sCommandHeap = new (heap, 0) JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>();
JUT_ASSERT(790, sCommandHeap);
JASDram = heap;
}
-#else
-void JASKernel::setupRootHeap(JKRSolidHeap* param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 80290AC0-80290AC8 -00001 0008+00 0/0 0/0 0/0 .text getSystemHeap__9JASKernelFv */
JKRHeap* JASKernel::getSystemHeap() {
@@ -333,41 +282,16 @@ JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* JASKernel::getCom
return JASKernel::sCommandHeap;
}
-/* ############################################################################################## */
-/* 804315D0-804315DC 05E2F0 000C+00 1/1 0/0 0/0 .bss @313 */
-static u8 lit_313[12];
-
/* 804315DC-80431620 05E2FC 0044+00 3/3 0/0 0/0 .bss audioAramHeap__9JASKernel */
-u8 JASKernel::audioAramHeap[68];
+JASHeap JASKernel::audioAramHeap;
/* 80290AD0-80290B08 28B410 0038+00 0/0 1/1 0/0 .text setupAramHeap__9JASKernelFUlUl */
void JASKernel::setupAramHeap(u32 param_0, u32 param_1) {
sAramBase = param_0;
- (*(JASHeap*)audioAramHeap).initRootHeap((void*)sAramBase, param_1);
+ audioAramHeap.initRootHeap((void*)sAramBase, param_1);
}
/* 80290B08-80290B14 28B448 000C+00 0/0 3/2 0/0 .text getAramHeap__9JASKernelFv */
JASHeap* JASKernel::getAramHeap() {
- return (JASHeap*)audioAramHeap;
+ return &audioAramHeap;
}
-
-/* 80290B14-80290B54 28B454 0040+00 0/0 1/0 0/0 .text __sinit_JASHeapCtrl_cpp */
-void __sinit_JASHeapCtrl_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80290B14, __sinit_JASHeapCtrl_cpp);
-#pragma pop
-
-/* 80290B54-80290BCC 28B494 0078+00 1/1 3/3 0/0 .text __dt__7JASHeapFv */
-//JASHeap::~JASHeap() {
-void __dt__7JASHeapFv() {
- // NONMATCHING
-}
-
-/* 80290BCC-80290BD0 28B50C 0004+00 0/0 1/0 0/0 .text onDispose__11JASDisposerFv */
-void JASDisposer::onDispose() {
- /* empty function */
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASSeqParser.cpp b/src/JSystem/JAudio2/JASSeqParser.cpp
index 75146fe738..b0dfa1088e 100644
--- a/src/JSystem/JAudio2/JASSeqParser.cpp
+++ b/src/JSystem/JAudio2/JASSeqParser.cpp
@@ -9,145 +9,6 @@
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JMath/random.h"
#include "JSystem/JSupport/JSupport.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void conditionCheck__12JASSeqParserFP8JASTrackQ212JASSeqParser15BranchCondition();
-extern "C" void writeReg__12JASSeqParserFP8JASTrackUlUl();
-extern "C" void readReg__12JASSeqParserCFP8JASTrackUl();
-extern "C" void cmdOpenTrack__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCloseTrack__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCall__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCallF__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRet__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRetF__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdJmp__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdJmpF__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdJmpTable__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCallTable__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdLoopS__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdLoopE__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdNote__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdNoteOn__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdNoteOff__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdReadPort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdWritePort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParentWritePort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdChildWritePort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParentReadPort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdChildReadPort__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCheckPortImport__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdCheckPortExport__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdWait__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdWaitByte__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdSetLastNote__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdEnvScaleSet__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdEnvSet__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdSimpleADSR__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdBusConnect__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdSetIntTable__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdSetInterrupt__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdDisInterrupt__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdClrI__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRetI__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdIntTimer__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdSyncCPU__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdTempo__12JASSeqParserFP8JASTrackPUl();
-extern "C" s32 cmdFinish__12JASSeqParserFP8JASTrackPUl();
-extern "C" bool cmdNop__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdFIRSet__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdIIRSet__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdIIRCutOff__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdBankPrg__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdBank__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdPrg__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParamI__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParamII__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParamE__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdParamEI__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdReg__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRegLoad__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRegUni__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdDump__12JASSeqParserFP8JASTrackPUl();
-extern "C" void cmdPrintf__12JASSeqParserFP8JASTrackPUl();
-extern "C" void execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl();
-extern "C" void execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl();
-extern "C" void execNoteOff__12JASSeqParserFP8JASTrackUl();
-extern "C" void execCommand__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl();
-extern "C" void parseNoteOff__12JASSeqParserFP8JASTrackUc();
-extern "C" void parseNoteOn__12JASSeqParserFP8JASTrackUc();
-extern "C" void parseCommand__12JASSeqParserFP8JASTrackUcUs();
-extern "C" void parseRegCommand__12JASSeqParserFP8JASTracki();
-extern "C" void parse__12JASSeqParserFP8JASTrack();
-extern "C" void __sinit_JASSeqParser_cpp();
-extern "C" extern char const* const JASSeqParser__stringBase0;
-extern "C" u8 sCmdInfo__12JASSeqParser[1536];
-extern "C" u8 sExtCmdInfo__12JASSeqParser[4080];
-extern "C" extern void* __vt__12JASSeqParser[8];
-extern "C" u8 sCallBackFunc__12JASSeqParser[4];
-
-//
-// External References:
-//
-
-extern "C" void JASReport__FPCce();
-extern "C" void setSeqData__8JASTrackFPvUl();
-extern "C" void start__8JASTrackFv();
-extern "C" void closeChild__8JASTrackFUl();
-extern "C" void openChild__8JASTrackFUl();
-extern "C" void connectBus__8JASTrackFii();
-extern "C" void setLatestKey__8JASTrackFUc();
-extern "C" void noteOn__8JASTrackFUlUlUl();
-extern "C" void gateOn__8JASTrackFUlUlfUl();
-extern "C" void noteOff__8JASTrackFUlUs();
-extern "C" void setParam__8JASTrackFUlfUl();
-extern "C" void setOscScale__8JASTrackFUlf();
-extern "C" void setOscTable__8JASTrackFUlPCQ213JASOscillator5Point();
-extern "C" void setOscAdsr__8JASTrackFssssUs();
-extern "C" void setFIR__8JASTrackFPCs();
-extern "C" void setIIR__8JASTrackFPCs();
-extern "C" void readPortSelf__8JASTrackFUl();
-extern "C" void writePortSelf__8JASTrackFUlUs();
-extern "C" void writePort__8JASTrackFUlUs();
-extern "C" void readPort__8JASTrackFUl();
-extern "C" void setTempo__8JASTrackFUs();
-extern "C" void setTimebase__8JASTrackFUs();
-extern "C" void checkImport__12JASTrackPortCFUl();
-extern "C" void checkExport__12JASTrackPortCFUl();
-extern "C" void write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl();
-extern "C" void read__16JASRegisterParamFQ216JASRegisterParam5RegID();
-extern "C" void setIntrMask__10JASSeqCtrlFUl();
-extern "C" void clrIntrMask__10JASSeqCtrlFUl();
-extern "C" void retIntr__10JASSeqCtrlFv();
-extern "C" void checkIntr__10JASSeqCtrlFv();
-extern "C" void __dt__12JASSeqParserFv();
-extern "C" void call__12JASSeqReaderFUl();
-extern "C" void loopStart__12JASSeqReaderFUl();
-extern "C" void loopEnd__12JASSeqReaderFv();
-extern "C" void ret__12JASSeqReaderFv();
-extern "C" void readMidiValue__12JASSeqReaderFv();
-extern "C" void __ct__Q25JMath13TRandom_fast_FUl();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024];
-extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
-
-//
-// Declarations:
-//
/* 80293CF4-80293DC4 28E634 00D0+00 3/3 0/0 0/0 .text
* conditionCheck__12JASSeqParserFP8JASTrackQ212JASSeqParser15BranchCondition */
@@ -172,7 +33,7 @@ bool JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchConditi
}
/* 803C5E80-803C6480 022FA0 0600+00 1/2 0/0 0/0 .data sCmdInfo__12JASSeqParser */
-SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sCmdInfo[96] = {
+JASSeqParser::CmdInfo JASSeqParser::sCmdInfo[96] = {
NULL, 0x0000, 0x0000,
NULL, 0x0000, 0x0000,
NULL, 0x0000, 0x0000,
@@ -272,7 +133,7 @@ SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sCmdInfo[96] = {
};
/* 803C648C-803C747C 0235AC 0FF0+00 1/2 0/0 0/0 .data sExtCmdInfo__12JASSeqParser */
-SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sExtCmdInfo[255] = {
+JASSeqParser::CmdInfo JASSeqParser::sExtCmdInfo[255] = {
NULL, 0x0000, 0x0000,
&JASSeqParser::cmdDump, 0x0000, 0x0000,
NULL, 0x0000, 0x0000,
@@ -282,85 +143,6 @@ SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sExtCmdInfo[255] = {
NULL, 0x0000, 0x0000,
};
-/* 803C747C-803C7550 -00001 00D4+00 1/1 0/0 0/0 .data @632 */
-SECTION_DATA static void* lit_632[53] = {
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x70),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1EC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x80),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x90),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x98),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xA0),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xA8),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xB0),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xBC),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xC8),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0xF0),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x100),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x108),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x110),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x118),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x140),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x168),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x190),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1B8),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1E0),
- (void*)(((char*)writeReg__12JASSeqParserFP8JASTrackUlUl) + 0x1E8),
-};
-
-/* 804555D8-804555DC 003BD8 0004+00 6/6 0/0 0/0 .sdata2 @627 */
-SECTION_SDATA2 static f32 lit_627 = 32767.0f;
-
-/* 804555DC-804555E0 003BDC 0004+00 2/2 0/0 0/0 .sdata2 @628 */
-SECTION_SDATA2 static f32 lit_628 = 1524.0f;
-
-/* 804555E0-804555E4 003BE0 0004+00 2/2 0/0 0/0 .sdata2 @629 */
-SECTION_SDATA2 static f32 lit_629 = 12192.0f;
-
-/* 804555E4-804555E8 003BE4 0004+00 1/1 0/0 0/0 .sdata2 @630 */
-SECTION_SDATA2 static f32 lit_630 = 0.00390625f;
-
-/* 804555E8-804555F0 003BE8 0004+04 1/1 0/0 0/0 .sdata2 @631 */
-SECTION_SDATA2 static f32 lit_631[1 + 1 /* padding */] = {
- 0.015625f,
- /* padding */
- 0.0f,
-};
-
-/* 804555F0-804555F8 003BF0 0008+00 3/3 0/0 0/0 .sdata2 @634 */
-SECTION_SDATA2 static f64 lit_634 = 4503599627370496.0 /* cast u32 to float */;
-
/* 80293DC4-80293FC8 28E704 0204+00 8/7 0/0 0/0 .text writeReg__12JASSeqParserFP8JASTrackUlUl */
void JASSeqParser::writeReg(JASTrack* param_0, u32 param_1, u32 param_2) {
param_0->writeReg(JASRegisterParam::REG3, param_2);
@@ -453,77 +235,13 @@ void JASSeqParser::writeReg(JASTrack* param_0, u32 param_1, u32 param_2) {
}
}
-
-/* ############################################################################################## */
-/* 803C7550-803C7624 -00001 00D4+00 1/1 0/0 0/0 .data @720 */
-SECTION_DATA static void* lit_720[53] = {
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x4C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1B0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x5C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xA0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xC8),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xD0),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xDC),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xE4),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xEC),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xF4),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0xFC),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x104),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x118),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x128),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x130),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x138),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x140),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x154),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x168),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x17C),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x190),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1A4),
- (void*)(((char*)readReg__12JASSeqParserCFP8JASTrackUl) + 0x1AC),
-};
-
-/* 804555F8-804555FC 003BF8 0004+00 1/1 0/0 0/0 .sdata2 @718 */
-SECTION_SDATA2 static f32 lit_718 = 256.0f;
-
-/* 804555FC-80455600 003BFC 0004+00 1/1 0/0 0/0 .sdata2 @719 */
-SECTION_SDATA2 static f32 lit_719 = 64.0f;
-
/* 80293FC8-80294188 28E908 01C0+00 7/6 0/0 0/0 .text readReg__12JASSeqParserCFP8JASTrackUl */
u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
if (param_1 < 0x40) {
return param_0->readReg(JASRegisterParam::RegID(param_1));
}
u32 result = 0;
+ u16 r27;
switch (param_1) {
case 0x40:
case 0x41:
@@ -543,7 +261,7 @@ u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
case 0x4f:
return param_0->getPort(param_1 - 0x40);
case 0x60:
- u16 r27 = 1;
+ r27 = 1;
for (int i = 0; i < 16; i++) {
JASTrack* child = param_0->getChild(i);
if (child && child->getStatus() == 1) {
@@ -598,7 +316,6 @@ u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
return result;
}
-
/* 80294188-802941F0 28EAC8 0068+00 1/0 0/0 0/0 .text cmdOpenTrack__12JASSeqParserFP8JASTrackPUl
*/
s32 JASSeqParser::cmdOpenTrack(JASTrack* param_0, u32* param_1) {
@@ -820,14 +537,6 @@ s32 JASSeqParser::cmdSetLastNote(JASTrack* param_0, u32* param_1) {
return 0;
}
-/* ############################################################################################## */
-/* 80455600-80455608 003C00 0004+04 1/1 0/0 0/0 .sdata2 @931 */
-SECTION_SDATA2 static f32 lit_931[1 + 1 /* padding */] = {
- 16383.0f,
- /* padding */
- 0.0f,
-};
-
/* 8029483C-8029488C 28F17C 0050+00 1/0 0/0 0/0 .text cmdEnvScaleSet__12JASSeqParserFP8JASTrackPUl
*/
s32 JASSeqParser::cmdEnvScaleSet(JASTrack* param_0, u32* param_1) {
@@ -899,7 +608,6 @@ s32 JASSeqParser::cmdIntTimer(JASTrack* param_0, u32* param_1) {
return 0;
}
-/* ############################################################################################## */
/* 80451240-80451244 000740 0004+00 1/1 1/1 0/0 .sbss sCallBackFunc__12JASSeqParser */
u16 (*JASSeqParser::sCallBackFunc)(JASTrack*, u16);
@@ -977,10 +685,6 @@ s32 JASSeqParser::cmdPrg(JASTrack* param_0, u32* param_1) {
return 0;
}
-/* ############################################################################################## */
-/* 80455608-80455610 003C08 0008+00 4/4 0/0 0/0 .sdata2 @1064 */
-SECTION_SDATA2 static f64 lit_1064 = 4503601774854144.0 /* cast s32 to float */;
-
/* 80294BF8-80294C54 28F538 005C+00 1/0 0/0 0/0 .text cmdParamI__12JASSeqParserFP8JASTrackPUl */
s32 JASSeqParser::cmdParamI(JASTrack* param_0, u32* param_1) {
param_0->setParam(param_1[0], s16(param_1[1]) / 32767.0f, 0);
@@ -1018,11 +722,11 @@ s32 JASSeqParser::cmdParamEI(JASTrack* param_0, u32* param_1) {
return 0;
}
-
/* 80294DA8-80294F10 28F6E8 0168+00 3/0 0/0 0/0 .text cmdReg__12JASSeqParserFP8JASTrackPUl */
s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
u32 r29 = param_1[1];
u32 r30 = param_1[2];
+ u32 tmp;
switch (param_1[0]) {
case 0:
break;
@@ -1051,7 +755,7 @@ s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
break;
case 8:
static JMath::TRandom_fast_ oRandom(0);
- u32 tmp = oRandom.get_bit32() >> 9;
+ tmp = oRandom.get_bit32() >> 9;
r30 = tmp % r30;
break;
case 9:
@@ -1090,8 +794,7 @@ s32 JASSeqParser::cmdRegUni(JASTrack* param_0, u32* param_1) {
/* 80294FB4-80295088 28F8F4 00D4+00 1/0 0/0 0/0 .text cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl
*/
-// case 12
-#ifdef NONMATCHING
+// NONMATCHING case 12
s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
u32 p1 = param_1[1];
@@ -1106,7 +809,7 @@ s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
r27 = seqCtrl->get16(p2 + p3 * 2);
break;
case 14:
- p3 += p3 *2;
+ p3 += p3 * 2;
r27 = seqCtrl->get24(p2 + p3);
break;
case 15:
@@ -1121,11 +824,6 @@ s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
writeReg(param_0, p1, r27);
return 0;
}
-#else
-s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
- // NONMATCHING
-}
-#endif
/* 80295088-8029526C 28F9C8 01E4+00 1/0 0/0 0/0 .text cmdDump__12JASSeqParserFP8JASTrackPUl */
s32 JASSeqParser::cmdDump(JASTrack* param_0, u32* param_1) {
@@ -1145,10 +843,9 @@ s32 JASSeqParser::cmdDump(JASTrack* param_0, u32* param_1) {
}
/* 8029526C-80295498 28FBAC 022C+00 1/0 0/0 0/0 .text cmdPrintf__12JASSeqParserFP8JASTrackPUl */
-// many things
-#ifdef NONMATCHING
+// NONMATCHING many things
s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
- char stack_c[4];
+ u8 stack_c[4];
u32 stack_10[4];
char buffer[128];
@@ -1213,25 +910,26 @@ s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
JASReport(buffer, stack_10[0], stack_10[1], stack_10[2], stack_10[3]);
return 0;
}
-#else
-s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
- // NONMATCHING
-}
-#endif
/* 80295498-80295540 28FDD8 00A8+00 1/0 0/0 0/0 .text
* execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl */
-// stack shenanigans
-#ifdef NONMATCHING
s32 JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3,
- u32 param_4) {
+ u32 param_4) {
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
- u8 tmp = param_4;
+ // likely fake match, this may use some actual union defined somewhere else
+ union {
+ u8 val;
+ struct {
+ u8 bit0 : 1;
+ u8 bit1 : 1;
+ } bits;
+ } tmp;
+ tmp.val = param_4;
int r31 = 0;
- if (tmp >> 6 & 1) {
+ if (tmp.bits.bit1) {
r31 |= 2;
}
- if (tmp >> 7 & 1) {
+ if (tmp.bits.bit0) {
r31 |= 1;
}
if (param_3 == 0) {
@@ -1245,12 +943,6 @@ s32 JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u3
}
return result;
}
-#else
-s32 JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3,
- u32 param_4) {
- // NONMATCHING
-}
-#endif
/* 80295540-80295570 28FE80 0030+00 1/0 0/0 0/0 .text
* execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl */
@@ -1295,8 +987,7 @@ s32 JASSeqParser::parseNoteOn(JASTrack* param_0, u8 param_1) {
/* 802956B0-80295864 28FFF0 01B4+00 2/2 0/0 0/0 .text parseCommand__12JASSeqParserFP8JASTrackUcUs
*/
-// u16 bit or
-#ifdef NONMATCHING
+// NONMATCHING u16 bit or
s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
CmdInfo* cmdInfo = NULL;
@@ -1332,11 +1023,6 @@ s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
}
return execCommand(param_0, ptr, cmdInfo->field_0xc, stack_28);
}
-#else
-s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 param_1, u16 param_2) {
- // NONMATCHING
-}
-#endif
/* 80295864-802958D4 2901A4 0070+00 1/1 0/0 0/0 .text parseRegCommand__12JASSeqParserFP8JASTracki
*/
@@ -1375,4 +1061,4 @@ s32 JASSeqParser::parse(JASTrack* param_0) {
}
}
return r30;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JASSeqReader.cpp b/src/JSystem/JAudio2/JASSeqReader.cpp
index 717ae1f0c0..3a6117418e 100644
--- a/src/JSystem/JAudio2/JASSeqReader.cpp
+++ b/src/JSystem/JAudio2/JASSeqReader.cpp
@@ -19,8 +19,8 @@ void JASSeqReader::init() {
/* 80296148-8029618C 290A88 0044+00 0/0 1/1 0/0 .text init__12JASSeqReaderFPv */
void JASSeqReader::init(void* param_0) {
- field_0x00 = (u32*)param_0;
- field_0x04 = (u8*)field_0x00;
+ field_0x00 = (u8*)param_0;
+ field_0x04 = field_0x00;
field_0x08 = 0;
for (int i = 0; i < 8; i++) {
@@ -37,7 +37,7 @@ bool JASSeqReader::call(u32 param_0) {
}
field_0x0c[field_0x08++] = (u16*)field_0x04;
- field_0x04 = (u8*)((int)field_0x00 + param_0);
+ field_0x04 = field_0x00 + param_0;
return true;
}
@@ -118,4 +118,4 @@ int JASSeqReader::readMidiValue() {
}
return byte;
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JASSimpleWaveBank.cpp b/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
index 194d9d9f01..95ad98d7e8 100644
--- a/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
+++ b/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
@@ -4,185 +4,75 @@
//
#include "JSystem/JAudio2/JASSimpleWaveBank.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JKRHeap {};
-
-struct JASWaveInfo {
- static u32 one[1 + 1 /* padding */];
-};
-
-struct JASWaveArc {
- /* 80298FA0 */ void onLoadDone();
- /* 80298FA4 */ void onEraseDone();
- /* 8029A13C */ JASWaveArc();
- /* 8029A1B4 */ ~JASWaveArc();
- /* 8029A664 */ void onDispose();
-};
-
-struct JASSimpleWaveBank {
- struct TWaveHandle {
- /* 80298D84 */ ~TWaveHandle();
- /* 80298F38 */ void getWavePtr() const;
- /* 80298F5C */ TWaveHandle();
- /* 80298F90 */ void getWaveInfo() const;
- };
-
- /* 80298C94 */ JASSimpleWaveBank();
- /* 80298CF4 */ ~JASSimpleWaveBank();
- /* 80298DE0 */ void setWaveTableSize(u32, JKRHeap*);
- /* 80298E60 */ void getWaveHandle(u32) const;
- /* 80298E84 */ void setWaveInfo(u32, JASWaveInfo const&);
- /* 80298F18 */ void getWaveArc(u32);
- /* 80298F98 */ bool getArcCount() const;
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__17JASSimpleWaveBankFv();
-extern "C" void __dt__17JASSimpleWaveBankFv();
-extern "C" void __dt__Q217JASSimpleWaveBank11TWaveHandleFv();
-extern "C" void setWaveTableSize__17JASSimpleWaveBankFUlP7JKRHeap();
-extern "C" void getWaveHandle__17JASSimpleWaveBankCFUl();
-extern "C" void setWaveInfo__17JASSimpleWaveBankFUlRC11JASWaveInfo();
-extern "C" void getWaveArc__17JASSimpleWaveBankFUl();
-extern "C" void getWavePtr__Q217JASSimpleWaveBank11TWaveHandleCFv();
-extern "C" void __ct__Q217JASSimpleWaveBank11TWaveHandleFv();
-extern "C" void getWaveInfo__Q217JASSimpleWaveBank11TWaveHandleCFv();
-extern "C" bool getArcCount__17JASSimpleWaveBankCFv();
-extern "C" void onLoadDone__10JASWaveArcFv();
-extern "C" void onEraseDone__10JASWaveArcFv();
-extern "C" static void func_80298FA8();
-
-//
-// External References:
-//
-
-extern "C" void __ct__10JASWaveArcFv();
-extern "C" void __dt__10JASWaveArcFv();
-extern "C" void onDispose__10JASWaveArcFv();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __destroy_new_array();
-extern "C" void __construct_new_array();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__13JASWaveHandle[5];
-extern "C" extern void* __vt__11JASWaveBank[6];
-extern "C" u32 one__11JASWaveInfo[1 + 1 /* padding */];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C7798-803C77AC 0248B8 0014+00 2/2 0/0 0/0 .data __vt__Q217JASSimpleWaveBank11TWaveHandle */
-SECTION_DATA extern void* __vt__Q217JASSimpleWaveBank11TWaveHandle[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__Q217JASSimpleWaveBank11TWaveHandleFv,
- (void*)getWaveInfo__Q217JASSimpleWaveBank11TWaveHandleCFv,
- (void*)getWavePtr__Q217JASSimpleWaveBank11TWaveHandleCFv,
-};
-
-/* 803C77AC-803C77E0 0248CC 0030+04 2/2 0/0 0/0 .data __vt__17JASSimpleWaveBank */
-SECTION_DATA extern void* __vt__17JASSimpleWaveBank[12 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__17JASSimpleWaveBankFv,
- (void*)getWaveHandle__17JASSimpleWaveBankCFUl,
- (void*)getWaveArc__17JASSimpleWaveBankFUl,
- (void*)getArcCount__17JASSimpleWaveBankCFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80298FA8,
- (void*)onDispose__10JASWaveArcFv,
- (void*)onLoadDone__10JASWaveArcFv,
- (void*)onEraseDone__10JASWaveArcFv,
- /* padding */
- NULL,
-};
/* 80298C94-80298CF4 2935D4 0060+00 0/0 1/1 0/0 .text __ct__17JASSimpleWaveBankFv */
JASSimpleWaveBank::JASSimpleWaveBank() {
- // NONMATCHING
+ mWaveTable = NULL;
+ mWaveTableSize = 0;
}
/* 80298CF4-80298D84 293634 0090+00 2/1 0/0 0/0 .text __dt__17JASSimpleWaveBankFv */
JASSimpleWaveBank::~JASSimpleWaveBank() {
- // NONMATCHING
-}
-
-/* 80298D84-80298DE0 2936C4 005C+00 3/2 0/0 0/0 .text __dt__Q217JASSimpleWaveBank11TWaveHandleFv
- */
-JASSimpleWaveBank::TWaveHandle::~TWaveHandle() {
- // NONMATCHING
+ delete[] mWaveTable;
}
/* 80298DE0-80298E60 293720 0080+00 0/0 1/1 0/0 .text
* setWaveTableSize__17JASSimpleWaveBankFUlP7JKRHeap */
-void JASSimpleWaveBank::setWaveTableSize(u32 param_0, JKRHeap* param_1) {
- // NONMATCHING
+void JASSimpleWaveBank::setWaveTableSize(u32 size, JKRHeap* heap) {
+ delete[] mWaveTable;
+ mWaveTable = new (heap, 0) TWaveHandle[size];
+ mWaveTableSize = size;
}
/* 80298E60-80298E84 2937A0 0024+00 1/0 0/0 0/0 .text getWaveHandle__17JASSimpleWaveBankCFUl */
-void JASSimpleWaveBank::getWaveHandle(u32 param_0) const {
- // NONMATCHING
+JASWaveHandle* JASSimpleWaveBank::getWaveHandle(u32 no) const {
+ if (no >= mWaveTableSize) {
+ return NULL;
+ }
+ return &mWaveTable[no];
}
/* 80298E84-80298F18 2937C4 0094+00 0/0 1/1 0/0 .text
* setWaveInfo__17JASSimpleWaveBankFUlRC11JASWaveInfo */
-void JASSimpleWaveBank::setWaveInfo(u32 param_0, JASWaveInfo const& param_1) {
- // NONMATCHING
+void JASSimpleWaveBank::setWaveInfo(u32 no, JASWaveInfo const& waveInfo) {
+ mWaveTable[no].mWaveInfo = waveInfo;
+ mWaveTable[no].mWaveInfo.field_0x20 = &_48;
+ mWaveTable[no].mHeap = &mHeap;
}
/* 80298F18-80298F38 293858 0020+00 1/0 0/0 0/0 .text getWaveArc__17JASSimpleWaveBankFUl
*/
-void JASSimpleWaveBank::getWaveArc(u32 param_0) {
- // NONMATCHING
+JASWaveArc* JASSimpleWaveBank::getWaveArc(u32 no) {
+ if (no != 0) {
+ return NULL;
+ }
+ return this;
}
/* 80298F38-80298F5C 293878 0024+00 1/0 0/0 0/0 .text
* getWavePtr__Q217JASSimpleWaveBank11TWaveHandleCFv */
-void JASSimpleWaveBank::TWaveHandle::getWavePtr() const {
- // NONMATCHING
+int JASSimpleWaveBank::TWaveHandle::getWavePtr() const {
+ void* base = mHeap->getBase();
+ if (base == NULL) {
+ return NULL;
+ }
+ return (int)base + mWaveInfo.field_0x08;
}
/* 80298F5C-80298F90 29389C 0034+00 1/1 0/0 0/0 .text __ct__Q217JASSimpleWaveBank11TWaveHandleFv
*/
JASSimpleWaveBank::TWaveHandle::TWaveHandle() {
- // NONMATCHING
+ mHeap = NULL;
}
/* 80298F90-80298F98 2938D0 0008+00 1/0 0/0 0/0 .text
* getWaveInfo__Q217JASSimpleWaveBank11TWaveHandleCFv */
-void JASSimpleWaveBank::TWaveHandle::getWaveInfo() const {
- // NONMATCHING
+const JASWaveInfo* JASSimpleWaveBank::TWaveHandle::getWaveInfo() const {
+ return &mWaveInfo;
}
/* 80298F98-80298FA0 2938D8 0008+00 1/0 0/0 0/0 .text getArcCount__17JASSimpleWaveBankCFv
*/
-bool JASSimpleWaveBank::getArcCount() const {
- return true;
-}
-
-/* 80298FA0-80298FA4 2938E0 0004+00 1/0 1/0 0/0 .text onLoadDone__10JASWaveArcFv */
-void JASWaveArc::onLoadDone() {
- /* empty function */
+u32 JASSimpleWaveBank::getArcCount() const {
+ return 1;
}
-
-/* 80298FA4-80298FA8 2938E4 0004+00 1/0 1/0 0/0 .text onEraseDone__10JASWaveArcFv */
-void JASWaveArc::onEraseDone() {
- /* empty function */
-}
-
-/* 80298FA8-80298FB0 2938E8 0008+00 1/0 0/0 0/0 .text @4@__dt__17JASSimpleWaveBankFv */
-static void func_80298FA8() {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASTaskThread.cpp b/src/JSystem/JAudio2/JASTaskThread.cpp
index 1f19fe2ba9..80ef30fab4 100644
--- a/src/JSystem/JAudio2/JASTaskThread.cpp
+++ b/src/JSystem/JAudio2/JASTaskThread.cpp
@@ -9,42 +9,6 @@
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dolphin/os.h"
-//
-// Forward References:
-//
-
-extern "C" void __ct__13JASTaskThreadFiiUl();
-extern "C" void __dt__13JASTaskThreadFv();
-extern "C" void allocCallStack__13JASTaskThreadFPFPv_vPCvUl();
-extern "C" void allocCallStack__13JASTaskThreadFPFPv_vPv();
-extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl();
-extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPv();
-extern "C" void run__13JASTaskThreadFv();
-extern "C" void pause__13JASTaskThreadFb();
-
-//
-// External References:
-//
-
-extern "C" void bcopy__7JASCalcFPCvPvUl();
-extern "C" void getSystemHeap__9JASKernelFv();
-extern "C" void getCommandHeap__9JASKernelFv();
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __ct__9JKRThreadFP7JKRHeapUlii();
-extern "C" void __dt__9JKRThreadFv();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" u8 sSystemHeap__7JKRHeap[4];
-
-//
-// Declarations:
-//
-
/* 8028F6C4-8028F724 28A004 0060+00 0/0 1/1 0/0 .text __ct__13JASTaskThreadFiiUl */
JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread(JASDram, param_2, param_1, param_0) {
field_0x84 = false;
@@ -129,8 +93,7 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) {
}
/* 8028FD4C-8028FE88 28A68C 013C+00 1/0 0/0 0/0 .text run__13JASTaskThreadFv */
-// Regalloc
-#ifdef NONMATCHING
+// NONMATCHING Regalloc
void* JASTaskThread::run() {
OSInitFastCast();
do {
@@ -147,11 +110,6 @@ void* JASTaskThread::run() {
heap->free(ppcVar1);
} while (true);
}
-#else
-void* JASTaskThread::run() {
- // NONMATCHING
-}
-#endif
/* 8028FE88-8028FEFC 28A7C8 0074+00 0/0 1/1 0/0 .text pause__13JASTaskThreadFb */
void JASTaskThread::pause(bool param_0) {
@@ -164,4 +122,4 @@ void JASTaskThread::pause(bool param_0) {
}
field_0x84 = 0;
}
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/JASTrack.cpp b/src/JSystem/JAudio2/JASTrack.cpp
index 6bc245dd47..8bbef78ac8 100644
--- a/src/JSystem/JAudio2/JASTrack.cpp
+++ b/src/JSystem/JAudio2/JASTrack.cpp
@@ -167,73 +167,32 @@ extern "C" extern u8 __OSReport_disable;
// Declarations:
//
-/* ############################################################################################## */
-/* 804555A0-804555A4 003BA0 0004+00 6/6 0/0 0/0 .sdata2 @457 */
-SECTION_SDATA2 static u8 lit_457[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
/* 80291228-8029131C 28BB68 00F4+00 1/1 3/3 0/0 .text __ct__8JASTrackFv */
// NONMATCHING
-/* JASTrack::JASTrack() : mDefaultChannelMgr(this), mChannelMgrCount(1), mStatus(0) {
+JASTrack::JASTrack() : mDefaultChannelMgr(this), mChannelMgrCount(1), mStatus(0) {
mChannelMgrs[0] = &mDefaultChannelMgr;
for (int i = 1; i < 4; i++) {
mChannelMgrs[i] = NULL;
}
init();
-} */
-
-#ifndef NONMATCHING
-/* ############################################################################################## */
-/* 804316A8-804316B4 05E3C8 000C+00 1/1 0/0 0/0 .bss @431 */
-static u8 lit_431[12];
-#endif
+}
/* 804316B4-80431AC0 05E3D4 040C+00 1/2 0/0 0/0 .bss sDefaultBankTable__8JASTrack */
JASDefaultBankTable JASTrack::sDefaultBankTable;
-#ifndef NONMATCHING
-/* 80431AC0-80431ACC 05E7E0 000C+00 0/1 0/0 0/0 .bss @433 */
-#pragma push
-#pragma force_active on
-static u8 lit_433[12];
-#pragma pop
-#endif
-
/* 80431ACC-80431ADC 05E7EC 0010+00 1/2 0/0 0/0 .bss sTrackList__8JASTrack */
JASTrack::TList JASTrack::sTrackList;
-#ifndef NONMATCHING
-/* 80431ADC-80431AE8 05E7FC 000C+00 3/3 0/0 0/0 .bss @470 */
-static u8 lit_470[12];
-
-/* 80431AE8-80431AF4 05E808 000C+00 2/2 0/0 0/0 .bss @476 */
-static u8 lit_476[12];
-
-/* 80431AF4-80431B04 05E814 0010+00 3/3 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___58JASPoolAllocObject_MultiThreaded<Q28JASTrack11TChannelMgr>Fv
- */
-extern u8 data_80431AF4[16];
-u8 data_80431AF4[16];
-
-/* 80431B04-80431B18 05E824 0010+04 2/2 2/2 0/0 .bss
- * memPool_$localstatic3$getMemPool___43JASPoolAllocObject_MultiThreaded<8JASTrack>Fv */
-extern u8 data_80431B04[16 + 4 /* padding */];
-u8 data_80431B04[16 + 4 /* padding */];
-#endif
-
/* 8029131C-80291444 28BC5C 0128+00 4/4 4/4 0/0 .text __dt__8JASTrackFv */
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
JASTrack::~JASTrack() {
for (int i = 1; i < 4; i++) {
delete mChannelMgrs[i];
}
}
-
/* 80291444-802915D4 28BD84 0190+00 1/1 3/3 0/0 .text setChannelMgrCount__8JASTrackFUl */
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
void JASTrack::setChannelMgrCount(u32 i_count) {
mChannelMgrCount = 1;
for (int i = 1; i < i_count; i++) {
@@ -253,8 +212,6 @@ void JASTrack::setChannelMgrCount(u32 i_count) {
}
}
-
-/* ############################################################################################## */
/* 8039AFD0-8039AFE8 027630 0018+00 1/1 0/0 0/0 .rodata sAdsTable__8JASTrack */
JASOscillator::Point const JASTrack::sAdsTable[4] = {
{0, 0, 0x7fff},
@@ -269,10 +226,8 @@ JASOscillator::Data const JASTrack::sEnvOsc = {0, 1.0f, NULL, NULL, 1.0f, 0.0f};
/* 8039B000-8039B018 027660 0018+00 0/1 0/0 0/0 .rodata sPitchEnvOsc__8JASTrack */
JASOscillator::Data const JASTrack::sPitchEnvOsc = {1, 1.0f, NULL, NULL, 1.0f, 0.0f};
-/* 804555A4-804555A8 003BA4 0004+00 9/9 0/0 0/0 .sdata2 @679 */
-SECTION_SDATA2 static f32 lit_679 = 1.0f;
-
/* 802915D4-802918FC 28BF14 0328+00 2/2 1/1 0/0 .text init__8JASTrackFv */
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
void JASTrack::init() {
mSeqCtrl.init();
mTrackPort.init();
@@ -344,11 +299,6 @@ void JASTrack::init() {
mStatus = 0;
}
-
-/* ############################################################################################## */
-/* 804555A8-804555AC 003BA8 0004+00 4/4 0/0 0/0 .sdata2 @690 */
-SECTION_SDATA2 static f32 lit_690 = 0.5f;
-
/* 802918FC-8029194C 28C23C 0050+00 1/1 0/0 0/0 .text initTimed__8JASTrackFv */
void JASTrack::initTimed() {
mMoveParam[0].mValue = 1.0f;
@@ -363,7 +313,6 @@ void JASTrack::initTimed() {
}
}
-
/* 8029194C-802919F4 28C28C 00A8+00 1/1 0/0 0/0 .text inherit__8JASTrackFRC8JASTrack */
void JASTrack::inherit(JASTrack const& i_parent) {
mFlags.flag2 = i_parent.mFlags.flag2;
@@ -396,18 +345,11 @@ void JASTrack::setSeqData(void* param_0, u32 param_1) {
}
/* 80291A28-80291A78 28C368 0050+00 0/0 2/2 0/0 .text startSeq__8JASTrackFv */
-#ifdef NONMATCHING
-// matches once static data declared correctly
void JASTrack::startSeq() {
JASCriticalSection critical_section;
sTrackList.append(this);
mStatus = 1;
}
-#else
-void JASTrack::startSeq() {
- // NONMATCHING
-}
-#endif
/* 80291A78-80291ABC 28C3B8 0044+00 0/0 2/2 0/0 .text stopSeq__8JASTrackFv */
void JASTrack::stopSeq() {
@@ -464,8 +406,8 @@ void JASTrack::closeChild(u32 i_index) {
}
}
-
/* 80291C30-80291DAC 28C570 017C+00 0/0 2/2 0/0 .text openChild__8JASTrackFUl */
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
JASTrack* JASTrack::openChild(u32 i_index) {
JASTrack* child = mChildren[i_index];
if (child != NULL) {
@@ -497,7 +439,6 @@ JASTrack* JASTrack::openChild(u32 i_index) {
return child;
}
-
/* 80291DAC-80291DBC 28C6EC 0010+00 0/0 1/1 0/0 .text connectBus__8JASTrackFii */
void JASTrack::connectBus(int param_0, int param_1) {
mMixConfig[param_0] = param_1;
@@ -538,7 +479,6 @@ JASChannel* JASTrack::channelStart(JASTrack::TChannelMgr* i_channelMgr, u32 para
return channel;
}
-
/* 80291F38-80292008 28C878 00D0+00 0/0 1/1 0/0 .text noteOn__8JASTrackFUlUlUl */
int JASTrack::noteOn(u32 i_noteID, u32 param_1, u32 param_2) {
if (isMute()) {
@@ -559,13 +499,6 @@ int JASTrack::noteOn(u32 i_noteID, u32 param_1, u32 param_2) {
return ret;
}
-/* ############################################################################################## */
-/* 804555AC-804555B0 003BAC 0004+00 1/1 0/0 0/0 .sdata2 @952 */
-SECTION_SDATA2 static f32 lit_952 = 100.0f;
-
-/* 804555B0-804555B8 003BB0 0008+00 4/4 0/0 0/0 .sdata2 @954 */
-SECTION_SDATA2 static f64 lit_954 = 4503599627370496.0 /* cast u32 to float */;
-
/* 80292008-80292198 28C948 0190+00 0/0 1/1 0/0 .text gateOn__8JASTrackFUlUlfUl */
int JASTrack::gateOn(u32 param_0, u32 i_velocity, f32 i_time, u32 i_flags) {
param_0 += getTransposeTotal();
@@ -607,7 +540,6 @@ int JASTrack::gateOn(u32 param_0, u32 i_velocity, f32 i_time, u32 i_flags) {
return 1;
}
-
/* 80292198-80292220 28CAD8 0088+00 1/1 1/1 0/0 .text noteOff__8JASTrackFUlUs */
int JASTrack::noteOff(u32 i_noteID, u16 param_1) {
int ret = 1;
@@ -651,11 +583,6 @@ void JASTrack::updateTimedParam() {
}
}
-
-/* ############################################################################################## */
-/* 804555B8-804555BC 003BB8 0004+00 1/1 0/0 0/0 .sdata2 @1032 */
-SECTION_SDATA2 static f32 lit_1032 = 1.0f / 3.0f;
-
/* 80292348-802924E4 28CC88 019C+00 1/1 0/0 0/0 .text updateTrack__8JASTrackFf */
void JASTrack::updateTrack(f32 param_0) {
updateTempo();
@@ -702,14 +629,6 @@ void JASTrack::updateTrack(f32 param_0) {
}
}
-
-/* ############################################################################################## */
-/* 804555BC-804555C0 003BBC 0004+00 1/1 0/0 0/0 .sdata2 @1042 */
-SECTION_SDATA2 static f32 lit_1042 = 4.0f / 3.0f;
-
-/* 804555C0-804555C8 003BC0 0008+00 1/1 0/0 0/0 .sdata2 @1044 */
-SECTION_SDATA2 static f64 lit_1044 = 4503601774854144.0 /* cast s32 to float */;
-
/* 802924E4-80292580 28CE24 009C+00 5/5 0/0 0/0 .text updateTempo__8JASTrackFv */
void JASTrack::updateTempo() {
if (mParent == NULL) {
@@ -721,7 +640,6 @@ void JASTrack::updateTempo() {
}
}
-
/* 80292580-80292644 28CEC0 00C4+00 4/4 0/0 0/0 .text updateSeq__8JASTrackFbf */
void JASTrack::updateSeq(bool param_0, f32 param_1) {
if (!param_0) {
@@ -739,13 +657,6 @@ void JASTrack::updateSeq(bool param_0, f32 param_1) {
}
}
-/* ############################################################################################## */
-/* 804555C8-804555CC 003BC8 0004+00 1/1 0/0 0/0 .sdata2 @1069 */
-SECTION_SDATA2 static f32 lit_1069 = 120.0f;
-
-/* 804555CC-804555D0 003BCC 0004+00 1/1 0/0 0/0 .sdata2 @1070 */
-SECTION_SDATA2 static f32 lit_1070 = 10.0f;
-
/* 80292644-802926E0 28CF84 009C+00 1/1 0/0 0/0 .text seqTimeToDspTime__8JASTrackFf */
u32 JASTrack::seqTimeToDspTime(f32 i_seqTime) {
f32 dsp_time;
@@ -758,7 +669,6 @@ u32 JASTrack::seqTimeToDspTime(f32 i_seqTime) {
return dsp_time;
}
-
/* 802926E0-80292708 28D020 0028+00 0/0 4/4 0/0 .text setParam__8JASTrackFUlfUl */
void JASTrack::setParam(u32 i_index, f32 i_target, u32 i_count) {
MoveParam_* param = &mMoveParam[i_index];
@@ -814,9 +724,8 @@ void JASTrack::setOscAdsr(s16 param_0, s16 param_1, s16 param_2, s16 param_3, u1
mDirectRelease = i_directRelease;
}
-/* ############################################################################################## */
/* 804555D0-804555D4 003BD0 0004+00 2/2 0/0 0/0 .sdata2 FILTER_MODE_IIR__6JASDsp */
-SECTION_SDATA2 u32 JASDsp::FILTER_MODE_IIR = 0x00000020;
+const u32 JASDsp::FILTER_MODE_IIR = 0x00000020;
/* 8029285C-8029289C 28D19C 0040+00 0/0 2/2 0/0 .text setFIR__8JASTrackFPCs */
void JASTrack::setFIR(s16 const* i_FIR) {
@@ -926,10 +835,6 @@ void JASTrack::setTimebase(u16 i_timebase) {
updateTempo();
}
-/* ############################################################################################## */
-/* 804555D4-804555D8 003BD4 0004+00 1/1 0/0 0/0 .sdata2 @1246 */
-SECTION_SDATA2 static f32 lit_1246 = 32767.0f;
-
/* 80292BF4-80292CA4 28D534 00B0+00 1/1 0/0 0/0 .text
* updateChannel__8JASTrackFP10JASChannelPQ26JASDsp8TChannel */
void JASTrack::updateChannel(JASChannel* param_0, JASDsp::TChannel* param_1) {
@@ -1011,7 +916,6 @@ int JASTrack::tickProc() {
return 0;
}
-
/* 80292E9C-80292F6C 28D7DC 00D0+00 1/1 0/0 0/0 .text seqMain__8JASTrackFv */
int JASTrack::seqMain() {
if (mFlags.flag6) {
@@ -1033,7 +937,6 @@ int JASTrack::seqMain() {
}
}
-
/* 80292F6C-80292F90 28D8AC 0024+00 1/1 0/0 0/0 .text cbSeqMain__Q28JASTrack5TListFPv */
s32 JASTrack::TList::cbSeqMain(void* i_this) {
static_cast<JASTrack::TList*>(i_this)->seqMain();
@@ -1052,7 +955,7 @@ void JASTrack::TList::append(JASTrack* i_track) {
}
/* 8029301C-802930DC 28D95C 00C0+00 1/1 0/0 0/0 .text seqMain__Q28JASTrack5TListFv */
-#ifdef NONMATCHING
+// NONMATCHING problems with the iterator
void JASTrack::TList::seqMain() {
for (iterator it = begin(); it != end(); it++) {
if (it->seqMain() < 0) {
@@ -1063,11 +966,6 @@ void JASTrack::TList::seqMain() {
}
}
}
-#else
-void JASTrack::TList::seqMain() {
- // NONMATCHING
-}
-#endif
/* 802930DC-80293148 28DA1C 006C+00 2/2 0/0 0/0 .text __ct__Q28JASTrack11TChannelMgrFP8JASTrack */
JASTrack::TChannelMgr::TChannelMgr(JASTrack* i_track) : mSoundParams(NULL), mTrack(i_track) {
@@ -1129,74 +1027,3 @@ void JASTrack::TChannelMgr::setPauseFlag(bool i_pause) {
}
}
}
-
-/* 802932C8-802932E0 28DC08 0018+00 1/1 0/0 0/0 .text __ct__Q28JASTrack10MoveParam_Fv */
-// JASTrack::MoveParam_::MoveParam_() {
-extern "C" void __ct__Q28JASTrack10MoveParam_Fv() {
- // NONMATCHING
-}
-
-/* 802932E0-80293334 28DC20 0054+00 2/2 2/2 0/0 .text
- * __dt__35JASMemPool_MultiThreaded<8JASTrack>Fv */
-extern "C" void func_802932E0(void* _this) {
- // NONMATCHING
-}
-
-/* 80293334-80293388 28DC74 0054+00 3/3 1/1 0/0 .text
- * __dt__50JASMemPool_MultiThreaded<Q28JASTrack11TChannelMgr>Fv */
-extern "C" void func_80293334(void* _this) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 803C5B68-803C5B74 022C88 000C+00 2/2 0/0 0/0 .data __vt__19JASDefaultBankTable */
-SECTION_DATA extern void* __vt__19JASDefaultBankTable[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)func_80293528,
-};
-
-/* 803C5B74-803C5B80 022C94 000C+00 1/1 0/0 0/0 .data __vt__17JASBankTable<256> */
-SECTION_DATA extern void* data_803C5B74[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)func_80293528,
-};
-
-/* 803C5B80-803C5B90 022CA0 000C+04 1/1 1/1 0/0 .data __vt__11JASBankList */
-SECTION_DATA extern void* __vt__11JASBankList[3 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)NULL,
- /* padding */
- NULL,
-};
-
-#ifndef NONMATCHING
-/* 80293388-8029345C 28DCC8 00D4+00 0/0 1/0 0/0 .text __sinit_JASTrack_cpp */
-void __sinit_JASTrack_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80293388, __sinit_JASTrack_cpp);
-#pragma pop
-
-/* 8029345C-802934B4 28DD9C 0058+00 1/1 0/0 0/0 .text __dt__Q28JASTrack5TListFv */
-// JASTrack::TList::~TList() {
-extern "C" void __dt__Q28JASTrack5TListFv() {
- // NONMATCHING
-}
-
-/* 802934B4-80293528 28DDF4 0074+00 1/1 0/0 0/0 .text __dt__19JASDefaultBankTableFv */
-// JASDefaultBankTable::~JASDefaultBankTable() {
-extern "C" void __dt__19JASDefaultBankTableFv() {
- // NONMATCHING
-}
-
-/* 80293528-8029354C 28DE68 0024+00 2/0 0/0 0/0 .text getBank__17JASBankTable<256>CFUl */
-extern "C" void func_80293528(void* _this, u32 param_0) /* const */ {
- // NONMATCHING
-}
-#endif \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASWSParser.cpp b/src/JSystem/JAudio2/JASWSParser.cpp
index b9205922a4..dda617d6e1 100644
--- a/src/JSystem/JAudio2/JASWSParser.cpp
+++ b/src/JSystem/JAudio2/JASWSParser.cpp
@@ -5,124 +5,125 @@
#include "JSystem/JAudio2/JASWSParser.h"
#include "JSystem/JAudio2/JASBasicWaveBank.h"
+#include "JSystem/JAudio2/JASSimpleWaveBank.h"
#include "JSystem/JKernel/JKRHeap.h"
-#include "dolphin/types.h"
-
-//
-// Forward References:
-//
-
-extern "C" void getGroupCount__11JASWSParserFPCv();
-extern "C" void createWaveBank__11JASWSParserFPCvP7JKRHeap();
-extern "C" void createBasicWaveBank__11JASWSParserFPCvP7JKRHeap();
-extern "C" void createSimpleWaveBank__11JASWSParserFPCvP7JKRHeap();
-extern "C" void func_80299490(void* _this, void const*, u32);
-extern "C" void func_802994A8(void* _this, void const*, u32);
-extern "C" void func_802994C0(void* _this, void const*, u32);
-extern "C" void func_802994D8(void* _this, void const*, u32);
-extern "C" void func_802994F0(void* _this, void const*, u32);
-extern "C" void func_80299508(void* _this, void const*, u32);
-extern "C" void func_80299520(void* _this, void const*, u32);
-extern "C" u8 sUsedHeapSize__11JASWSParser[4 + 4 /* padding */];
-
-//
-// External References:
-//
-
-extern "C" void __ct__16JASBasicWaveBankFv();
-extern "C" void getWaveGroup__16JASBasicWaveBankFUl();
-extern "C" void setGroupCount__16JASBasicWaveBankFUlP7JKRHeap();
-extern "C" void setWaveTableSize__16JASBasicWaveBankFUlP7JKRHeap();
-extern "C" void
-setWaveInfo__16JASBasicWaveBankFPQ216JASBasicWaveBank10TWaveGroupiUsRC11JASWaveInfo();
-extern "C" void setWaveCount__Q216JASBasicWaveBank10TWaveGroupFUlP7JKRHeap();
-extern "C" void __ct__17JASSimpleWaveBankFv();
-extern "C" void setWaveTableSize__17JASSimpleWaveBankFUlP7JKRHeap();
-extern "C" void setWaveInfo__17JASSimpleWaveBankFUlRC11JASWaveInfo();
-extern "C" void setFileName__10JASWaveArcFPCc();
-extern "C" void getFreeSize__7JKRHeapFv();
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void _savegpr_20();
-extern "C" void _savegpr_23();
-extern "C" void _restgpr_20();
-extern "C" void _restgpr_23();
-extern "C" u32 one__11JASWaveInfo[1 + 1 /* padding */];
-
-//
-// Declarations:
-//
+#include "JSystem/JKernel/JKRSolidHeap.h"
/* 80298FB0-80298FD8 2938F0 0028+00 1/1 0/0 0/0 .text getGroupCount__11JASWSParserFPCv */
u32 JASWSParser::getGroupCount(void const* stream) {
THeader* header = (THeader*)stream;
- return ((TOffset<TCtrlGroup>*)&header->mCtrlGroupOffset)->ptr(header)->mCtrlGroupCount;
+ return header->mCtrlGroupOffset.ptr(header)->mGroupCount;
}
/* 80298FD8-80299034 293918 005C+00 0/0 1/1 0/0 .text createWaveBank__11JASWSParserFPCvP7JKRHeap
*/
-JASWaveBank* JASWSParser::createWaveBank(void const* param_0, JKRHeap* param_1) {
- if (getGroupCount(param_0) == 1) {
- return (JASWaveBank*)createSimpleWaveBank(param_0, param_1);
+JASWaveBank* JASWSParser::createWaveBank(void const* stream, JKRHeap* heap) {
+ if (getGroupCount(stream) == 1) {
+ return createSimpleWaveBank(stream, heap);
} else {
- return (JASWaveBank*) createBasicWaveBank(param_0, param_1);
+ return createBasicWaveBank(stream, heap);
}
}
-/* ############################################################################################## */
/* 80451280-80451288 000780 0004+04 2/2 0/0 0/0 .sbss sUsedHeapSize__11JASWSParser */
-u8 JASWSParser::sUsedHeapSize[4 + 4 /* padding */];
+u32 JASWSParser::sUsedHeapSize;
/* 80299034-80299264 293974 0230+00 1/1 0/0 0/0 .text
* createBasicWaveBank__11JASWSParserFPCvP7JKRHeap */
-JASBasicWaveBank* JASWSParser::createBasicWaveBank(void const* param_0, JKRHeap* param_1) {
- // NONMATCHING
-}
+JASBasicWaveBank* JASWSParser::createBasicWaveBank(void const* stream, JKRHeap* heap) {
+ if (heap == NULL) {
+ heap = JASDram;
+ }
+ u32 free_size = heap->getFreeSize();
-/* 80299264-80299490 293BA4 022C+00 1/1 0/0 0/0 .text
- * createSimpleWaveBank__11JASWSParserFPCvP7JKRHeap */
-JASSimpleWaveBank* JASWSParser::createSimpleWaveBank(void const* param_0, JKRHeap* param_1) {
- // NONMATCHING
-}
+ THeader* header = (THeader*)stream;
+ JASBasicWaveBank* wave_bank = new (heap, 0) JASBasicWaveBank();
+ if (wave_bank == NULL) {
+ return NULL;
+ }
-/* 80299490-802994A8 293DD0 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser9TCtrlWave>__FPCvUl */
-extern "C" void func_80299490(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
+ TCtrlGroup* ctrl_group = header->mCtrlGroupOffset.ptr(header);
+ wave_bank->setGroupCount(ctrl_group->mGroupCount, heap);
+ wave_bank->setWaveTableSize(header->mWaveTableSize, heap);
+ for (u32 i = 0; i < ctrl_group->mGroupCount; i++) {
+ TCtrl* ctrl = ctrl_group->mCtrlSceneOffsets[i].ptr(header)->mCtrlOffset.ptr(header);
+ JASBasicWaveBank::TWaveGroup* wave_group = wave_bank->getWaveGroup(i);
+ TWaveArchive* archive = header->mArchiveBankOffset.ptr(header)->mArchiveOffsets[i].ptr(header);
+ wave_group->setWaveCount(ctrl->mWaveCount, heap);
+ for (int j = 0; j < ctrl->mWaveCount; j++) {
+ TWave* wave = archive->mWaveOffsets[j].ptr(header);
+ JASWaveInfo wave_info;
+ wave_info.field_0x00 = wave->_01;
+ wave_info.field_0x01 = wave->_02;
+ wave_info.field_0x04 = wave->_04;
+ wave_info.field_0x08 = wave->mOffset;
+ wave_info.field_0x0c = wave->_0C;
+ wave_info.field_0x02 = wave->_10 == 0 ? 0 : 0xff;
+ wave_info.field_0x10 = wave->_14;
+ wave_info.field_0x14 = wave->_18;
+ wave_info.field_0x18 = wave->_1C;
+ wave_info.field_0x1c = wave->_20;
+ wave_info.field_0x1e = wave->_22;
+ TCtrlWave* ctrl_wave = ctrl->mCtrlWaveOffsets[j].ptr(header);
+ wave_bank->setWaveInfo(wave_group, j, JSULoHalf(ctrl_wave->_00), wave_info);
+ }
+ wave_group->setFileName(archive->mFileName);
+ }
-/* 802994A8-802994C0 293DE8 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser5TWave>__FPCvUl */
-extern "C" void func_802994A8(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
+ sUsedHeapSize += (free_size - heap->getFreeSize());
+ return wave_bank;
}
-/* 802994C0-802994D8 293E00 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser12TWaveArchive>__FPCvUl */
-extern "C" void func_802994C0(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
+/* 80299264-80299490 293BA4 022C+00 1/1 0/0 0/0 .text
+ * createSimpleWaveBank__11JASWSParserFPCvP7JKRHeap */
+JASSimpleWaveBank* JASWSParser::createSimpleWaveBank(void const* stream, JKRHeap* heap) {
+ if (heap == NULL) {
+ heap = JASDram;
+ }
+ u32 free_size = heap->getFreeSize();
+
+ THeader* header = (THeader*)stream;
+ TCtrlGroup* ctrl_group = header->mCtrlGroupOffset.ptr(header);
+ if (ctrl_group->mGroupCount != 1) {
+ return NULL;
+ }
-/* 802994D8-802994F0 293E18 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser16TWaveArchiveBank>__FPCvUl */
-extern "C" void func_802994D8(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
+ JASSimpleWaveBank* wave_bank = new (heap, 0) JASSimpleWaveBank();
+ if (wave_bank == NULL) {
+ return NULL;
+ }
-/* 802994F0-80299508 293E30 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser5TCtrl>__FPCvUl */
-extern "C" void func_802994F0(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-}
+ u32 max = 0;
+ TCtrl* ctrl = ctrl_group->mCtrlSceneOffsets[0].ptr(header)->mCtrlOffset.ptr(header);
+ TWaveArchive* archive = header->mArchiveBankOffset.ptr(header)->mArchiveOffsets[0].ptr(header);
+ for (int i = 0; i < ctrl->mWaveCount; i++) {
+ u32 tmp = JSULoHalf(ctrl->mCtrlWaveOffsets[i].ptr(header)->_00);
+ if (max < tmp) {
+ max = tmp;
+ }
+ }
+ wave_bank->setWaveTableSize(max + 1, heap);
+
+ for (int i = 0; i < ctrl->mWaveCount; i++) {
+ TWave* wave = archive->mWaveOffsets[i].ptr(header);
+ JASWaveInfo wave_info;
+ wave_info.field_0x00 = wave->_01;
+ wave_info.field_0x01 = wave->_02;
+ wave_info.field_0x04 = wave->_04;
+ wave_info.field_0x08 = wave->mOffset;
+ wave_info.field_0x0c = wave->_0C;
+ wave_info.field_0x02 = wave->_10 == 0 ? 0 : 0xff;
+ wave_info.field_0x10 = wave->_14;
+ wave_info.field_0x14 = wave->_18;
+ wave_info.field_0x18 = wave->_1C;
+ wave_info.field_0x1c = wave->_20;
+ wave_info.field_0x1e = wave->_22;
+ TCtrlWave* ctrl_wave = ctrl->mCtrlWaveOffsets[i].ptr(header);
+ wave_bank->setWaveInfo(JSULoHalf(ctrl_wave->_00), wave_info);
+ }
+ wave_bank->setFileName(archive->mFileName);
-/* 80299508-80299520 293E48 0018+00 2/2 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser10TCtrlScene>__FPCvUl */
-extern "C" void func_80299508(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
+ sUsedHeapSize += (free_size - heap->getFreeSize());
+ return wave_bank;
}
-
-/* 80299520-80299538 293E60 0018+00 3/3 0/0 0/0 .text
- * JSUConvertOffsetToPtr<Q211JASWSParser10TCtrlGroup>__FPCvUl */
-extern "C" void func_80299520(void* _this, void const* param_0, u32 param_1) {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JASWaveArcLoader.cpp b/src/JSystem/JAudio2/JASWaveArcLoader.cpp
index 17e0c19f11..6b049bbfba 100644
--- a/src/JSystem/JAudio2/JASWaveArcLoader.cpp
+++ b/src/JSystem/JAudio2/JASWaveArcLoader.cpp
@@ -11,58 +11,6 @@
#include "string.h"
#include "dolphin/os.h"
-//
-// Forward References:
-//
-
-extern "C" void getRootHeap__16JASWaveArcLoaderFv();
-extern "C" void setCurrentDir__16JASWaveArcLoaderFPCc();
-extern "C" void getCurrentDir__16JASWaveArcLoaderFv();
-extern "C" void __ct__10JASWaveArcFv();
-extern "C" void __dt__10JASWaveArcFv();
-extern "C" void loadSetup__10JASWaveArcFUl();
-extern "C" void eraseSetup__10JASWaveArcFv();
-extern "C" void loadToAramCallback__10JASWaveArcFPv();
-extern "C" void sendLoadCmd__10JASWaveArcFv();
-extern "C" void load__10JASWaveArcFP7JASHeap();
-extern "C" void loadTail__10JASWaveArcFP7JASHeap();
-extern "C" void erase__10JASWaveArcFv();
-extern "C" void onDispose__10JASWaveArcFv();
-extern "C" void setEntryNum__10JASWaveArcFl();
-extern "C" void setFileName__10JASWaveArcFPCc();
-extern "C" void __dt__11JASDisposerFv();
-extern "C" u8 sCurrentDir__16JASWaveArcLoader[64];
-extern "C" u8 sAramHeap__16JASWaveArcLoader[4 + 4 /* padding */];
-
-//
-// External References:
-//
-
-extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl();
-extern "C" void getThreadPointer__6JASDvdFv();
-extern "C" void __ct__7JASHeapFP11JASDisposer();
-extern "C" void alloc__7JASHeapFP7JASHeapUl();
-extern "C" void allocTail__7JASHeapFP7JASHeapUl();
-extern "C" void free__7JASHeapFv();
-extern "C" void getSystemHeap__9JASKernelFv();
-extern "C" void getAramHeap__9JASKernelFv();
-extern "C" void onDispose__11JASDisposerFv();
-extern "C" void onLoadDone__10JASWaveArcFv();
-extern "C" void onEraseDone__10JASWaveArcFv();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __dla__FPv();
-extern "C" void loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void __dt__10JSUPtrListFv();
-extern "C" void _savegpr_27();
-extern "C" void _restgpr_27();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80451290-80451298 000790 0004+04 1/1 0/0 0/0 .sbss sAramHeap__16JASWaveArcLoader */
JASHeap* JASWaveArcLoader::sAramHeap;
@@ -75,7 +23,6 @@ JASHeap* JASWaveArcLoader::getRootHeap() {
return JASKernel::getAramHeap();
}
-/* ############################################################################################## */
/* 803C77E0-803C7820 024900 0040+00 2/2 0/0 0/0 .data sCurrentDir__16JASWaveArcLoader */
char JASWaveArcLoader::sCurrentDir[DIR_MAX] = "/AudioRes/Waves/";
@@ -93,35 +40,14 @@ void JASWaveArcLoader::setCurrentDir(char const* dir) {
/* 8029A130-8029A13C 294A70 000C+00 1/1 0/0 0/0 .text getCurrentDir__16JASWaveArcLoaderFv
*/
-
char* JASWaveArcLoader::getCurrentDir() {
return sCurrentDir;
}
-/* ############################################################################################## */
-/* 803C7820-803C7838 024940 0018+00 2/2 0/0 0/0 .data __vt__10JASWaveArc */
-SECTION_DATA extern void* __vt__10JASWaveArc[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10JASWaveArcFv,
- (void*)onDispose__10JASWaveArcFv,
- (void*)onLoadDone__10JASWaveArcFv,
- (void*)onEraseDone__10JASWaveArcFv,
-};
-
-/* 803C7838-803C7848 024958 0010+00 3/3 0/0 0/0 .data __vt__11JASDisposer */
-SECTION_DATA extern void* __vt__11JASDisposer[4] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__11JASDisposerFv,
- (void*)onDispose__11JASDisposerFv,
-};
-
/* 8029A13C-8029A1B4 294A7C 0078+00 0/0 2/2 0/0 .text __ct__10JASWaveArcFv */
-
JASWaveArc::JASWaveArc() : mHeap(this) {
_48 = 0;
- _4c = 0;
+ mStatus = 0;
mEntryNum = -1;
mFileLength = 0;
_58 = 0;
@@ -130,13 +56,7 @@ JASWaveArc::JASWaveArc() : mHeap(this) {
}
/* 8029A1B4-8029A258 294AF4 00A4+00 1/0 2/2 0/0 .text __dt__10JASWaveArcFv */
-#ifdef NONMATCHING
JASWaveArc::~JASWaveArc() {}
-#else
-void __dt__10JASWaveArcFv() {
- // NONMATCHING
-}
-#endif
/* 8029A258-8029A2EC 294B98 0094+00 1/1 0/0 0/0 .text loadSetup__10JASWaveArcFUl */
bool JASWaveArc::loadSetup(u32 param_0) {
@@ -144,26 +64,26 @@ bool JASWaveArc::loadSetup(u32 param_0) {
if (_58 != param_0) {
return false;
}
- if (_4c != 1) {
+ if (mStatus != 1) {
return false;
}
_48 = 1;
- _4c = 2;
+ mStatus = 2;
return true;
}
/* 8029A2EC-8029A378 294C2C 008C+00 1/1 0/0 0/0 .text eraseSetup__10JASWaveArcFv */
bool JASWaveArc::eraseSetup() {
JASMutexLock mutexLock(&mMutex);
- if (_4c == 0) {
+ if (mStatus == 0) {
return false;
}
- if (_4c == 1) {
- _4c = 0;
+ if (mStatus == 1) {
+ mStatus = 0;
return false;
}
_48 = 0;
- _4c = 0;
+ mStatus = 0;
return true;
}
@@ -188,7 +108,7 @@ void JASWaveArc::loadToAramCallback(void* this_) {
bool JASWaveArc::sendLoadCmd() {
JASMutexLock mutexLock(&mMutex);
_48 = 0;
- _4c = 1;
+ mStatus = 1;
void* base = mHeap.getBase();
loadToAramCallbackParams commandInfo;
commandInfo.mWavArc = this;
@@ -214,7 +134,7 @@ bool JASWaveArc::load(JASHeap* heap) {
return false;
}
JASMutexLock mutexLock(&mMutex);
- if (_4c != 0) {
+ if (mStatus != 0) {
return false;
}
if (heap == NULL) {
@@ -233,7 +153,7 @@ bool JASWaveArc::loadTail(JASHeap* heap) {
return false;
}
JASMutexLock mutexLock(&mMutex);
- if (_4c != 0) {
+ if (mStatus != 0) {
return false;
}
if (heap == NULL) {
@@ -247,8 +167,8 @@ bool JASWaveArc::loadTail(JASHeap* heap) {
}
/* 8029A640-8029A664 294F80 0024+00 0/0 2/2 0/0 .text erase__10JASWaveArcFv */
-void JASWaveArc::erase() {
- mHeap.free();
+bool JASWaveArc::erase() {
+ return mHeap.free();
}
/* 8029A664-8029A6AC 294FA4 0048+00 1/0 2/0 0/0 .text onDispose__10JASWaveArcFv */
@@ -290,8 +210,3 @@ void JASWaveArc::setFileName(char const* fileName) {
}
setEntryNum(entryNum);
}
-
-/* 8029A7B8-8029A800 2950F8 0048+00 1/0 0/0 0/0 .text __dt__11JASDisposerFv */
-void __dt__11JASDisposerFv() {
- // NONMATCHING
-} \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JAUBankTable.cpp b/src/JSystem/JAudio2/JAUBankTable.cpp
index 70c37db011..71e1c9c20b 100644
--- a/src/JSystem/JAudio2/JAUBankTable.cpp
+++ b/src/JSystem/JAudio2/JAUBankTable.cpp
@@ -11,7 +11,7 @@ void JAUBankTableDictionary::appendBankTable(JSULink<JAUBankTable>* bankTableLis
append(bankTableList);
}
-/* 802A4AA0-802A4AC4 29F3E0 0024+00 0/0 2/0 0/0 .text getBank__12JAUBankTableCFUl */
-JASBank* JAUBankTable::getBank(u32 bank) const {
- return mBankPtrTable.get(bank);
-} \ No newline at end of file
+// Needed to make the inline function JAUBankTable::getBank appear in this TU
+static JASBank* dummy(JAUBankTable* table) {
+ return table->getBank(0);
+}
diff --git a/src/JSystem/JAudio2/JAUInitializer.cpp b/src/JSystem/JAudio2/JAUInitializer.cpp
index 7158a7844a..ff5dbc95d4 100644
--- a/src/JSystem/JAudio2/JAUInitializer.cpp
+++ b/src/JSystem/JAudio2/JAUInitializer.cpp
@@ -4,74 +4,22 @@
//
#include "JSystem/JAudio2/JAUInitializer.h"
+#include "JSystem/JAudio2/JAISe.h"
+#include "JSystem/JAudio2/JAISeq.h"
+#include "JSystem/JAudio2/JAISoundChild.h"
+#include "JSystem/JAudio2/JAIStream.h"
+#include "JSystem/JAudio2/JASAramStream.h"
+#include "JSystem/JAudio2/JASAudioThread.h"
+#include "JSystem/JAudio2/JASDriverIF.h"
+#include "JSystem/JAudio2/JASDvdThread.h"
#include "JSystem/JAudio2/JASTaskThread.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JAudio2/JASWaveArcLoader.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JKernel/JKRThread.h"
-#include "dol2asm.h"
#include "dolphin/os/OSRtc.h"
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__18JAU_JASInitializerFv();
-extern "C" void initJASystem__18JAU_JASInitializerFP12JKRSolidHeap();
-extern "C" void __ct__18JAU_JAIInitializerFv();
-extern "C" void initJAInterface__18JAU_JAIInitializerFv();
-
-//
-// External References:
-//
-
-extern "C" void getThreadPointer__6JASDvdFv();
-extern "C" void createThread__6JASDvdFliUl();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void newMemPool__17JASGenericMemPoolFUli();
-extern "C" void setupRootHeap__9JASKernelFP12JKRSolidHeapUl();
-extern "C" void setupAramHeap__9JASKernelFUlUl();
-extern "C" void func_802932E0(void* _this);
-extern "C" void func_80293334(void* _this);
-extern "C" void initSystem__13JASAramStreamFUlUl();
-extern "C" void setCurrentDir__16JASWaveArcLoaderFPCc();
-extern "C" void create__14JASAudioThreadFl();
-extern "C" void setDSPLevel__9JASDriverFf();
-extern "C" void setOutputMode__9JASDriverFUl();
-extern "C" void func_8029FC34(void* _this);
-extern "C" void func_802A1268(void* _this);
-extern "C" void func_802A1AF4(void* _this);
-extern "C" void func_802A3E68(void* _this);
-extern "C" void getFreeSize__7JKRHeapFv();
-extern "C" void enter__15JKRThreadSwitchFP9JKRThreadi();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-extern "C" extern u8 data_80431AF4[16];
-extern "C" extern u8 data_80431B04[16 + 4 /* padding */];
-extern "C" extern u8 data_80434084[16 + 4 /* padding */];
-extern "C" extern u8 data_804340B0[16];
-extern "C" extern u8 data_804340CC[16 + 4 /* padding */];
-extern "C" extern u8 data_804340FC[16 + 4 /* padding */];
-extern "C" extern u8 data_80450B8C[4];
-extern "C" extern u8 struct_80451230[8];
-extern "C" extern u8 data_80451310[8];
-extern "C" extern u8 data_80451318[8];
-extern "C" extern u8 data_80451320[8];
-extern "C" extern u8 data_80451328[8];
-extern "C" u8 sManager__15JKRThreadSwitch[4];
-extern "C" u8 sAramObject__7JKRAram[4];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
/* 802A4AD0-802A4B28 29F410 0058+00 0/0 1/1 0/0 .text __ct__18JAU_JASInitializerFv */
JAU_JASInitializer::JAU_JASInitializer() {
field_0x00 = 0;
@@ -89,17 +37,9 @@ JAU_JASInitializer::JAU_JASInitializer() {
field_0x30 = NULL;
}
-/* ############################################################################################## */
-/* 80434110-8043411C 060E30 000C+00 2/2 0/0 0/0 .bss @757 */
-static u8 lit_757[12];
-
-/* 8043411C-80434128 060E3C 000C+00 1/1 0/0 0/0 .bss @763 */
-static u8 lit_763[12];
-
/* 802A4B28-802A4D3C 29F468 0214+00 0/0 1/1 0/0 .text
* initJASystem__18JAU_JASInitializerFP12JKRSolidHeap */
-// extra destructors
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject_MultiThreaded<_> locations
void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
if (JASAudioThread::getThreadPointer()) {
@@ -114,9 +54,9 @@ void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
field_0x04 = JKRAram::getManager()->getAudioMemSize();
}
JASKernel::setupAramHeap(field_0x00, field_0x04);
- JASPoolAllocObject_MultiThreaded<JASTrack>::newMemPool(field_0x1c);
+ JASTrack::newMemPool(field_0x1c);
if (field_0x20 > 0) {
- JASPoolAllocObject_MultiThreaded<JASTrack::TChannelMgr>::newMemPool(field_0x20);
+ JASTrack::TChannelMgr::newMemPool(field_0x20);
}
JASDvd::createThread(field_0x0c,0x80,0x1000);
JASAudioThread::create(field_0x10);
@@ -144,11 +84,6 @@ void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
break;
}
}
-#else
-void JAU_JASInitializer::initJASystem(JKRSolidHeap* param_0) {
- // NONMATCHING
-}
-#endif
/* 802A4D3C-802A4D60 29F67C 0024+00 0/0 1/1 0/0 .text __ct__18JAU_JAIInitializerFv */
JAU_JAIInitializer::JAU_JAIInitializer() {
@@ -158,45 +93,14 @@ JAU_JAIInitializer::JAU_JAIInitializer() {
field_0xc = 16;
}
-/* ############################################################################################## */
-/* 80434128-80434134 060E48 000C+00 0/1 0/0 0/0 .bss @855 */
-#pragma push
-#pragma force_active on
-static u8 lit_855[12];
-#pragma pop
-
-/* 80434134-80434140 060E54 000C+00 0/1 0/0 0/0 .bss @859 */
-#pragma push
-#pragma force_active on
-static u8 lit_859[12];
-#pragma pop
-
-/* 80434140-8043414C 060E60 000C+00 0/1 0/0 0/0 .bss @863 */
-#pragma push
-#pragma force_active on
-static u8 lit_863[12];
-#pragma pop
-
-/* 8043414C-804341B8 060E6C 000C+60 0/1 0/0 0/0 .bss @867 */
-#pragma push
-#pragma force_active on
-static u8 lit_867[12 + 96 /* padding */];
-#pragma pop
-
/* 802A4D60-802A4EE8 29F6A0 0188+00 0/0 1/1 0/0 .text initJAInterface__18JAU_JAIInitializerFv */
-// extra destructors
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
void JAU_JAIInitializer::initJAInterface() {
s32 r30 = JASDram->getFreeSize();
- JASPoolAllocObject<JAIStream>::newMemPool(field_0x8);
- JASPoolAllocObject<JAISeq>::newMemPool(field_0x4);
- JASPoolAllocObject<JAISe>::newMemPool(field_0x0);
- JASPoolAllocObject<JAISoundChild>::newMemPool(field_0xc);
+ JAIStream::newMemPool(field_0x8);
+ JAISeq::newMemPool(field_0x4);
+ JAISe::newMemPool(field_0x0);
+ JAISoundChild::newMemPool(field_0xc);
s32 r29 = JASDram->getFreeSize();
//OSReport("JAU_JAIInitializer uses %d bytes\n", r30 - r29);
}
-#else
-void JAU_JAIInitializer::initJAInterface() {
- // NONMATCHING
-}
-#endif \ No newline at end of file
diff --git a/src/JSystem/JAudio2/JAUSectionHeap.cpp b/src/JSystem/JAudio2/JAUSectionHeap.cpp
index 0b46d4c236..ced71b66ca 100644
--- a/src/JSystem/JAudio2/JAUSectionHeap.cpp
+++ b/src/JSystem/JAudio2/JAUSectionHeap.cpp
@@ -4,9 +4,14 @@
//
#include "JSystem/JAudio2/JAUSectionHeap.h"
+#include "JSystem/JAudio2/JASBNKParser.h"
+#include "JSystem/JAudio2/JASBankTable.h"
+#include "JSystem/JAudio2/JASBasicWaveBank.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASResArcLoader.h"
+#include "JSystem/JAudio2/JASVoiceBank.h"
+#include "JSystem/JAudio2/JASWSParser.h"
#include "JSystem/JAudio2/JAUSeqCollection.h"
#include "JSystem/JAudio2/JAUSoundInfo.h"
#include "JSystem/JAudio2/JAUSoundTable.h"
@@ -16,14 +21,6 @@
#include "dol2asm.h"
#include "dolphin/dvd.h"
-//
-// Types:
-//
-
-struct JASWSParser {
- /* 80298FD8 */ static JASWaveBank* createWaveBank(void const*, JKRHeap*);
-};
-
namespace {
class TPushCurrentHeap {
public:
@@ -54,153 +51,33 @@ namespace {
field_0x8[i] = DVDConvertPathToEntrynum(stack_14.getFilePath(i));
}
}
- virtual s32 getStreamFileEntry(JAISoundID);
- virtual ~TStreamDataMgr();
+ virtual s32 getStreamFileEntry(JAISoundID id) {
+ u32 short_id = id.mId.mAdvancedId.mShortId;
+ if (short_id >= field_0x4) {
+ return -1;
+ }
+ return field_0x8[short_id];
+ }
+ virtual ~TStreamDataMgr() {}
bool isValid() { return field_0x4; }
- s32 field_0x4;
+ u32 field_0x4;
s32* field_0x8;
};
}
-//
-// Forward References:
-//
-
-extern "C" void __ct__Q210JAUSection12TSectionDataFv();
-extern "C" void resetRegisteredBankTables__Q210JAUSection12TSectionDataFv();
-extern "C" void resetRegisteredWaveBankTables__Q210JAUSection12TSectionDataFv();
-extern "C" void __ct__10JAUSectionFP14JAUSectionHeapUll();
-extern "C" void finishBuild__10JAUSectionFv();
-extern "C" void dispose__10JAUSectionFv();
-extern "C" void newSoundTable__10JAUSectionFPCvUlb();
-extern "C" void newSoundNameTable__10JAUSectionFPCvUlb();
-extern "C" void newStreamFileTable__10JAUSectionFPCvb();
-extern "C" void newSeSeqCollection__10JAUSectionFPCvUl();
-extern "C" void newStaticSeqDataBlock___10JAUSectionF10JAISoundIDUl();
-extern "C" void newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl();
-extern "C" void newStaticSeqData__10JAUSectionF10JAISoundID();
-extern "C" void newCopy__10JAUSectionFPCvUll();
-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 __ct__Q214JAUSectionHeap16TSectionHeapDataFv();
-extern "C" void setSeqDataArchive__14JAUSectionHeapFP10JKRArchive();
-extern "C" void loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb();
-extern "C" void releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv();
-extern "C" static void JAUNewSectionHeap__FP12JKRSolidHeapb();
-extern "C" void JAUNewSectionHeap__Fb();
-extern "C" void __ct__14JAUSectionHeapFP12JKRSolidHeapbl();
-extern "C" void getOpenSection__14JAUSectionHeapFv();
-extern "C" void setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser();
-extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl();
-extern "C" void getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData();
-extern "C" int releaseSeqData__14JAUSectionHeapFv();
-extern "C" void __dt__14JAUSectionHeapFv();
-extern "C" static void func_802A6440();
-extern "C" void __dt__10JAUSectionFv();
-extern "C" void func_802A6574();
-extern "C" void func_802A65D4(void* _this, u32, bool);
-extern "C" void func_802A6614(void* _this, u32);
-extern "C" void func_802A6634(void* _this, u32);
-extern "C" void func_802A665C(void* _this);
-extern "C" static void func_802A6680();
-extern "C" static void func_802A6688();
-extern "C" static void func_802A6690();
-extern "C" static void func_802A6698();
-extern "C" extern char const* const JAUSectionHeap__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void getResSize__15JASResArcLoaderFPC10JKRArchiveUs();
-extern "C" void createWaveBank__11JASWSParserFPCvP7JKRHeap();
-extern "C" void createBank__12JASBNKParserFPCvP7JKRHeap();
-extern "C" void load__10JASWaveArcFP7JASHeap();
-extern "C" void __dt__13JAISeqDataMgrFv();
-extern "C" void __dt__16JAIStreamDataMgrFv();
-extern "C" void func_802A4A80();
-extern "C" void getBank__12JAUBankTableCFUl();
-extern "C" void init__16JAUSeqCollectionFPCv();
-extern "C" void __ct__27JAUSeqDataMgr_SeqCollectionFv();
-extern "C" void __ct__15JAUSeqDataBlockFv();
-extern "C" void __ct__23JAUDynamicSeqDataBlocksFv();
-extern "C" void setSeqDataArchive__23JAUDynamicSeqDataBlocksFP10JKRArchive();
-extern "C" void getSeqData__23JAUDynamicSeqDataBlocksF10JAISoundIDP14JAISeqDataUserP10JAISeqDatab();
-extern "C" void appendDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP15JAUSeqDataBlock();
-extern "C" void loadDynamicSeq__23JAUDynamicSeqDataBlocksF10JAISoundIDbP14JAISeqDataUser();
-extern "C" void releaseIdleDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP14JAISeqDataUser();
-extern "C" void init__13JAUSoundTableFPCv();
-extern "C" void init__17JAUSoundNameTableFPCv();
-extern "C" void __ct__18JAUStreamFileTableFv();
-extern "C" void init__18JAUStreamFileTableFPCv();
-extern "C" void getNumFiles__18JAUStreamFileTableCFv();
-extern "C" void getFilePath__18JAUStreamFileTableCFi();
-extern "C" void becomeCurrentHeap__7JKRHeapFv();
-extern "C" void freeTail__7JKRHeapFv();
-extern "C" void getFreeSize__7JKRHeapFv();
-extern "C" void* __nw__FUl();
-extern "C" void* __nwa__FUl();
-extern "C" void* __nwa__FUli();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void create__12JKRSolidHeapFUlP7JKRHeapb();
-extern "C" void __ct__11JKRDisposerFv();
-extern "C" void __dt__11JKRDisposerFv();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void __dt__10JSUPtrListFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__11JASBankList[3 + 1 /* padding */];
-extern "C" extern void* __vt__7JASBank[5];
-extern "C" extern void* __vt__12JASVoiceBank[5 + 1 /* padding */];
-extern "C" extern void* __vt__13JAISeqDataMgr[6];
-extern "C" extern void* __vt__16JAIStreamDataMgr[4 + 1 /* padding */];
-extern "C" extern void* __vt__32JAUStreamDataMgr_StreamFileTable[4];
-extern "C" extern u8 data_80450B50[4];
-extern "C" extern u8 data_80450B54[4];
-extern "C" extern u8 data_80450B58[4];
-extern "C" extern u8 data_80450B90[4 + 4 /* padding */];
-extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
/* 802A4EE8-802A4F68 29F828 0080+00 1/1 0/0 0/0 .text __ct__Q210JAUSection12TSectionDataFv */
-// wild destructors appeared!
-#ifdef NONMATCHING
JAUSection::TSectionData::TSectionData() {
resetRegisteredWaveBankTables();
resetRegisteredBankTables();
- field_0x84 = 0;
- field_0x88 = 0;
- field_0x80 = 0;
+ mBstDst = NULL;
+ mBstnDst = NULL;
+ field_0x80 = NULL;
field_0xa0 = 0;
field_0x9c = 0;
}
-#else
-JAUSection::TSectionData::TSectionData() {
- // NONMATCHING
-}
-#endif
-/* ############################################################################################## */
/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
@@ -209,97 +86,30 @@ SECTION_DEAD static char const* const stringBase_8039B950 = "index out of range
/* 802A4F68-802A4FE4 29F8A8 007C+00 1/1 0/0 0/0 .text
* resetRegisteredBankTables__Q210JAUSection12TSectionDataFv */
-// position of std::__bitset_base<8>::reset
-#ifdef NONMATCHING
void JAUSection::TSectionData::resetRegisteredBankTables() {
for (u32 i = 0; i < 255; i++) {
registeredBankTables.reset(i);
}
}
-#else
-void JAUSection::TSectionData::resetRegisteredBankTables() {
- // NONMATCHING
-}
-#endif
/* 802A4FE4-802A5060 29F924 007C+00 1/1 0/0 0/0 .text
* resetRegisteredWaveBankTables__Q210JAUSection12TSectionDataFv */
-// position of std::__bitset_base<8>::reset
-#ifdef NONMATCHING
void JAUSection::TSectionData::resetRegisteredWaveBankTables() {
for (u32 i = 0; i < 255; i++) {
registeredWaveBankTables.reset(i);
}
}
-#else
-void JAUSection::TSectionData::resetRegisteredWaveBankTables() {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 803C9AC0-803C9AF4 026BE0 0034+00 2/2 0/0 0/0 .data __vt__14JAUSectionHeap */
-SECTION_DATA extern void* __vt__14JAUSectionHeap[13] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14JAUSectionHeapFv,
- (void*)dispose__10JAUSectionFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_802A6698,
- (void*)func_802A6690,
- (void*)func_802A6688,
- (void*)func_802A6680,
- (void*)setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser,
- (void*)getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData,
- (void*)releaseSeqData__14JAUSectionHeapFv,
-};
-
-/* 803C9AF4-803C9B08 026C14 0014+00 1/1 0/0 0/0 .data __vt__16JAUBankTableLink */
-SECTION_DATA extern void* __vt__16JAUBankTableLink[5] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
- (void*)getBank__12JAUBankTableCFUl,
-};
-
-/* 803C9B08-803C9B14 026C28 000C+00 1/1 0/0 0/0 .data __vt__12JAUBankTable */
-SECTION_DATA extern void* __vt__12JAUBankTable[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)getBank__12JAUBankTableCFUl,
-};
-
-/* 803C9B14-803C9B24 026C34 0010+00 2/2 0/0 0/0 .data
- * __vt__Q228@unnamed@JAUSectionHeap_cpp@14TStreamDataMgr */
-SECTION_DATA extern void* data_803C9B14[4] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)func_802A6440,
- (void*)func_802A6574,
-};
-
-/* 803C9B24-803C9B38 026C44 0010+04 3/3 0/0 0/0 .data __vt__10JAUSection */
-SECTION_DATA extern void* __vt__10JAUSection[4 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10JAUSectionFv,
- (void*)dispose__10JAUSectionFv,
- /* padding */
- NULL,
-};
/* 802A5060-802A50F8 29F9A0 0098+00 1/1 0/0 0/0 .text __ct__10JAUSectionFP14JAUSectionHeapUll */
-// NONMATCHING - JAUSection inheritance
-/* JAUSection::JAUSection(JAUSectionHeap* param_0, u32 param_1, s32 param_2) : JSULink<JAUSection>(this), field_0x28(param_1), sectionHeap_(param_0) {
+JAUSection::JAUSection(JAUSectionHeap* param_0, u32 param_1, s32 param_2)
+ : JSULink<JAUSection>(this), field_0x28(param_1), sectionHeap_(param_0) {
buildingBankTable_ = NULL;
field_0x2c = 1;
data_.field_0x98 = param_2;
if (this != sectionHeap_) {
data_.field_0x00.setSeqDataArchive(sectionHeap_->sectionHeapData_.seqDataBlocks.getSeqDataArchive());
}
-} */
+}
/* 802A50F8-802A5160 29FA38 0068+00 0/0 1/1 0/0 .text finishBuild__10JAUSectionFv */
void JAUSection::finishBuild() {
@@ -329,8 +139,7 @@ void JAUSection::dispose() {
/* 802A51E4-802A52A0 29FB24 00BC+00 0/0 1/1 0/0 .text newSoundTable__10JAUSectionFPCvUlb
*/
-// regalloc, stackalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool param_2) {
JUT_ASSERT(285, isOpen());
JUT_ASSERT(286, isBuilding());
@@ -346,21 +155,15 @@ JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool para
}
JAUSoundTable* soundTable = new JAUSoundTable(param_2);
JUT_ASSERT(299, soundTable);
- soundTable->init(bst);
+ soundTable->init(bstDst);
sectionHeap_->sectionHeapData_.soundTable = soundTable;
data_.mBstDst = bstDst;
}
return sectionHeap_->sectionHeapData_.soundTable;
}
-#else
-JAUSoundTable* JAUSection::newSoundTable(void const* param_0, u32 param_1, bool param_2) {
- // NONMATCHING
-}
-#endif
/* 802A52A0-802A535C 29FBE0 00BC+00 0/0 1/1 0/0 .text newSoundNameTable__10JAUSectionFPCvUlb */
-// regalloc, stackalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
JAUSoundNameTable* JAUSection::newSoundNameTable(void const* bstn, u32 param_1, bool param_2) {
JUT_ASSERT(315, isOpen());
JUT_ASSERT(316, isBuilding());
@@ -382,15 +185,8 @@ JAUSoundNameTable* JAUSection::newSoundNameTable(void const* bstn, u32 param_1,
}
return sectionHeap_->sectionHeapData_.soundNameTable;
}
-#else
-JAUSoundNameTable* JAUSection::newSoundNameTable(void const* param_0, u32 param_1, bool param_2) {
- // NONMATCHING
-}
-#endif
/* 802A535C-802A5500 29FC9C 01A4+00 0/0 1/1 0/0 .text newStreamFileTable__10JAUSectionFPCvb */
-// JAUStreamFileTable::isValid() signed
-#ifdef NONMATCHING
JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* param_0, bool param_1) {
JUT_ASSERT(345, asSectionHeap() == this);
JUT_ASSERT(346, isOpen());
@@ -415,11 +211,6 @@ JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* param_0, bool param
}
return sectionHeap_->sectionHeapData_.streamDataMgr_;
}
-#else
-JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* param_0, bool param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5500-802A5598 29FE40 0098+00 0/0 1/1 0/0 .text newSeSeqCollection__10JAUSectionFPCvUl */
JAISeqDataMgr* JAUSection::newSeSeqCollection(void const* bsc, u32 param_1) {
@@ -524,8 +315,6 @@ SECTION_DEAD static char const* const pad_8039B9B9 = "\0\0\0\0\0\0";
#pragma pop
/* 802A5854-802A5948 2A0194 00F4+00 0/0 1/1 0/0 .text newWaveBank__10JAUSectionFUlPCv */
-// position of std::__bitset_base<8>::set
-#ifdef NONMATCHING
JASWaveBank* JAUSection::newWaveBank(u32 bank_no, void const* param_1) {
JUT_ASSERT(528, isOpen());
JUT_ASSERT(529, isBuilding());
@@ -542,15 +331,8 @@ JASWaveBank* JAUSection::newWaveBank(u32 bank_no, void const* param_1) {
return NULL;
}
-#else
-JASWaveBank* JAUSection::newWaveBank(u32 param_0, void const* param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5948-802A5A50 2A0288 0108+00 0/0 1/1 0/0 .text loadWaveArc__10JAUSectionFUlUl */
-// position of std::__bitset_base<8>::test
-#ifdef NONMATCHING
bool JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
if (data_.registeredWaveBankTables.test(param_0)) {
JASWaveBank* waveBank = sectionHeap_->getWaveBankTable().getWaveBank(param_0);
@@ -565,15 +347,8 @@ bool JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
}
return false;
}
-#else
-bool JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5A50-802A5B84 2A0390 0134+00 0/0 1/1 0/0 .text newBank__10JAUSectionFPCvUl */
-// vtable order JAUBankTableLink
-#ifdef NONMATCHING
JASBank* JAUSection::newBank(void const* param_0, u32 param_1) {
JUT_ASSERT(647, isOpen());
JUT_ASSERT(648, isBuilding());
@@ -598,15 +373,9 @@ JASBank* JAUSection::newBank(void const* param_0, u32 param_1) {
}
return 0;
}
-#else
-JASBank* JAUSection::newBank(void const* param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5B84-802A5CAC 2A04C4 0128+00 0/0 1/1 0/0 .text newVoiceBank__10JAUSectionFUlUl */
-// regalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) {
JUT_ASSERT(685, isOpen());
JUT_ASSERT(686, isBuilding());
@@ -628,15 +397,8 @@ JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) {
}
return NULL;
}
-#else
-JASVoiceBank* JAUSection::newVoiceBank(u32 param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5CAC-802A5D9C 2A05EC 00F0+00 0/0 1/1 0/0 .text beginNewBankTable__10JAUSectionFUlUl */
-// JAUBankTable inheritance
-#ifdef NONMATCHING
bool JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
JUT_ASSERT(714, isOpen());
JUT_ASSERT(715, isBuilding());
@@ -658,11 +420,6 @@ bool JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
}
return bankTableLink;
}
-#else
-bool JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
- // NONMATCHING
-}
-#endif
/* 802A5D9C-802A5DF4 2A06DC 0058+00 0/0 1/1 0/0 .text endNewBankTable__10JAUSectionFv */
JAUBankTable* JAUSection::endNewBankTable() {
@@ -728,11 +485,11 @@ JAUSectionHeap* JAUNewSectionHeap(bool param_0) {
}
/* 802A5FE0-802A6094 2A0920 00B4+00 1/1 0/0 0/0 .text __ct__14JAUSectionHeapFP12JKRSolidHeapbl */
-// NONMATCHING - JAUSectionHeap inheritance
-/* JAUSectionHeap::JAUSectionHeap(JKRSolidHeap* param_0, bool param_1, s32 param_2) : JAUSection(this, 0, param_2), JASGlobalInstance<JAUSectionHeap>(param_1), mHeap(param_0) {
+JAUSectionHeap::JAUSectionHeap(JKRSolidHeap* param_0, bool param_1, s32 param_2)
+ : JAUSection(this, 0, param_2), JASGlobalInstance<JAUSectionHeap>(param_1), mHeap(param_0) {
field_0xe4 = 0;
mSectionList.append(this);
-} */
+}
/* 802A6094-802A60A0 2A09D4 000C+00 0/0 1/1 0/0 .text getOpenSection__14JAUSectionHeapFv
*/
@@ -752,7 +509,7 @@ bool JAUSectionHeap::newDynamicSeqBlock(u32 size) {
/* JUT_ASSERT(937, isOpen());
JUT_ASSERT(938, isBuilding());
JUT_ASSERT(939, sectionHeap_ == this); */
- TPushCurrentHeap push(base1.getHeap_());
+ TPushCurrentHeap push(getHeap_());
JAUSeqDataBlock * seqDataBlock = new JAUSeqDataBlock();
if (!seqDataBlock) {
return false;
@@ -769,7 +526,7 @@ bool JAUSectionHeap::newDynamicSeqBlock(u32 size) {
seqDataBlock->field_0x14.size = size;
seqDataBlock->field_0x10.setAnonymous();
JASCriticalSection cs;
- if (base1.sectionHeap_->sectionHeapData_.seqDataBlocks.appendDynamicSeqDataBlock(seqDataBlock)) {
+ if (sectionHeap_->sectionHeapData_.seqDataBlocks.appendDynamicSeqDataBlock(seqDataBlock)) {
return true;
}
return false;
@@ -777,15 +534,15 @@ bool JAUSectionHeap::newDynamicSeqBlock(u32 size) {
/* 802A61D0-802A6270 2A0B10 00A0+00 2/1 0/0 0/0 .text
* getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData */
-s32 JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
+JAISeqDataMgr::SeqDataReturnValue JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
for (JSULink<JAUSection> * link = mSectionList.getFirst(); link; link = link->getNext()) {
s32 result = link->getObject()->data_.field_0x00.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, false);
// JUT_ASSERT(994, result != JAI_ASYNC_RESULT_RETRY);
if (result == 2) {
- return 2;
+ return JAISeqDataMgr::SeqDataReturnValue_2;
}
}
- return sectionHeapData_.seqDataBlocks.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, true);
+ return (SeqDataReturnValue)sectionHeapData_.seqDataBlocks.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, true);
}
/* 802A6270-802A6278 2A0BB0 0008+00 2/1 0/0 0/0 .text releaseSeqData__14JAUSectionHeapFv
@@ -793,91 +550,3 @@ s32 JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
int JAUSectionHeap::releaseSeqData() {
return 0;
}
-
-/* 802A6278-802A6440 2A0BB8 01C8+00 2/1 0/0 0/0 .text __dt__14JAUSectionHeapFv */
-// JAUSectionHeap inheritance
-#ifdef NONMATCHING
-JAUSectionHeap::~JAUSectionHeap() {}
-#else
-JAUSectionHeap::~JAUSectionHeap() {
- // NONMATCHING
-}
-#endif
-
-/* 802A6440-802A6468 2A0D80 0028+00 1/0 0/0 0/0 .text
- * getStreamFileEntry__Q228@unnamed@JAUSectionHeap_cpp@14TStreamDataMgrF10JAISoundID */
-static void func_802A6440() {
- // NONMATCHING
-}
-
-/* 802A6468-802A6574 2A0DA8 010C+00 1/0 0/0 0/0 .text __dt__10JAUSectionFv */
-JAUSection::~JAUSection() {
- // NONMATCHING
-}
-
-/* 802A6574-802A65D4 2A0EB4 0060+00 1/0 0/0 0/0 .text
- * __dt__Q228@unnamed@JAUSectionHeap_cpp@14TStreamDataMgrFv */
-void func_802A6574() {
- // NONMATCHING
-}
-
-/* 802A65D4-802A6614 2A0F14 0040+00 3/3 0/0 0/0 .text set__Q23std16__bitset_base<8>FUlb
- */
-extern "C" void func_802A65D4(void* _this, u32 param_0, bool param_1) {
- // NONMATCHING
-}
-
-/* 802A6614-802A6634 2A0F54 0020+00 2/2 0/0 0/0 .text reset__Q23std16__bitset_base<8>FUl
- */
-extern "C" void func_802A6614(void* _this, u32 param_0) {
- // NONMATCHING
-}
-
-/* 802A6634-802A665C 2A0F74 0028+00 1/1 0/0 0/0 .text test__Q23std16__bitset_base<8>CFUl
- */
-extern "C" void func_802A6634(void* _this, u32 param_0) /* const */ {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 804507D0-804507D8 000250 0004+04 1/1 0/0 0/0 .sdata @2588 */
-SECTION_SDATA static u8 lit_2588[4 + 4 /* padding */] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 802A665C-802A6680 2A0F9C 0024+00 1/1 0/0 0/0 .text __ct__Q23std16__bitset_base<8>Fv */
-extern "C" void func_802A665C(void* _this) {
- // NONMATCHING
-}
-
-/* 802A6680-802A6688 2A0FC0 0008+00 1/0 0/0 0/0 .text
- * @220@setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser */
-static void func_802A6680() {
- // NONMATCHING
-}
-
-/* 802A6688-802A6690 2A0FC8 0008+00 1/0 0/0 0/0 .text @220@releaseSeqData__14JAUSectionHeapFv */
-static void func_802A6688() {
- // NONMATCHING
-}
-
-/* 802A6690-802A6698 2A0FD0 0008+00 1/0 0/0 0/0 .text
- * @220@getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData */
-static void func_802A6690() {
- // NONMATCHING
-}
-
-/* 802A6698-802A66A0 2A0FD8 0008+00 1/0 0/0 0/0 .text @220@__dt__14JAUSectionHeapFv */
-static void func_802A6698() {
- // NONMATCHING
-}
-
-/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
diff --git a/src/JSystem/JAudio2/dspproc.cpp b/src/JSystem/JAudio2/dspproc.cpp
index c60fc66183..408251ba3a 100644
--- a/src/JSystem/JAudio2/dspproc.cpp
+++ b/src/JSystem/JAudio2/dspproc.cpp
@@ -4,18 +4,8 @@
//
#include "JSystem/JAudio2/dspproc.h"
-
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
+#include "JSystem/JAudio2/dsptask.h"
+#include "JSystem/JAudio2/JASDSPInterface.h"
/* 8029E4E0-8029E528 298E20 0048+00 0/0 1/1 0/0 .text DSPReleaseHalt2__FUl */
void DSPReleaseHalt2(u32 msg) {
@@ -26,7 +16,6 @@ void DSPReleaseHalt2(u32 msg) {
DSPSendCommands2(msgs,0,NULL);
}
-/* ############################################################################################## */
/* 804512F8-80451300 0007F8 0004+04 2/2 0/0 0/0 .sbss flag */
static volatile BOOL flag;
@@ -81,4 +70,4 @@ void DsyncFrame4ch(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param
msgs[3] = param_3;
msgs[4] = param_4;
DSPSendCommands2(msgs, 5, 0);
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/dsptask.cpp b/src/JSystem/JAudio2/dsptask.cpp
index 70a93cab98..3ba233405a 100644
--- a/src/JSystem/JAudio2/dsptask.cpp
+++ b/src/JSystem/JAudio2/dsptask.cpp
@@ -5,7 +5,6 @@
#include "JSystem/JAudio2/dsptask.h"
#include "JSystem/JAudio2/osdsp.h"
-#include "dolphin/os.h"
//
// Forward References:
@@ -641,4 +640,4 @@ void DspFinishWork(u16 param_0) {
taskreadp = (taskreadp + 1) & 0xf;
}
-} \ No newline at end of file
+}
diff --git a/src/JSystem/JAudio2/osdsp_task.cpp b/src/JSystem/JAudio2/osdsp_task.cpp
index fe4535e1fb..7d4cb65c6a 100644
--- a/src/JSystem/JAudio2/osdsp_task.cpp
+++ b/src/JSystem/JAudio2/osdsp_task.cpp
@@ -8,29 +8,13 @@
#include "dolphin/dsp/dsp_task.h"
#include "dolphin/os/OSContext.h"
-//
-// Forward References:
-//
-
static void Dsp_Update_Request();
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80451308-8045130C -00001 0004+00 6/6 0/0 0/0 .sbss None */
/* 80451308 0001+00 data_80451308 None */
/* 80451309 0003+00 data_80451309 None */
-
static vu8 struct_80451308;
static u8 struct_80451309;
-static u8 struct_8045130a;
-static u8 struct_8045130b;
/* 8045130C-80451310 00080C 0004+00 1/1 2/2 0/0 .sbss DSP_prior_task */
DSPTaskInfo* DSP_prior_task;
@@ -129,7 +113,6 @@ void __DSPHandler(__OSInterrupt interrupt, OSContext* context) {
OSSetCurrentContext(context);
}
-/* ############################################################################################## */
/* 80434060-80434078 060D80 0014+04 3/3 0/0 0/0 .bss sync_stack */
static u32 sync_stack[5];
@@ -137,9 +120,9 @@ static u32 sync_stack[5];
void DsyncFrame2(u32 param_0, u32 param_1, u32 param_2) {
if (struct_80451308 != 1) {
sync_stack[0] = param_0;
+ struct_80451309 = 1;
sync_stack[1] = param_1;
sync_stack[2] = param_2;
- struct_80451309 = 1;
return;
}
DsyncFrame2ch(param_0, param_1, param_2);
@@ -150,11 +133,11 @@ void DsyncFrame2(u32 param_0, u32 param_1, u32 param_2) {
static void DsyncFrame3(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
if (struct_80451308 != 1) {
sync_stack[0] = param_0;
+ struct_80451309 = 2;
sync_stack[1] = param_1;
sync_stack[2] = param_2;
sync_stack[3] = param_3;
sync_stack[4] = param_4;
- struct_80451309 = 2;
return;
}
DsyncFrame4ch(param_0, param_1, param_2, param_3, param_4);
@@ -197,4 +180,4 @@ u8 data_80451320[8];
/* 80451328-80451330 000828 0008+00 0/0 3/3 0/0 .sbss None */
// init$localstatic4$getMemPool__30JASPoolAllocObject<9JAIStream>Fv
-u8 data_80451328[8]; \ No newline at end of file
+u8 data_80451328[8];
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/algorithm.h b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/algorithm.h
index 64646ad14f..5062fdd6df 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/algorithm.h
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/algorithm.h
@@ -38,7 +38,7 @@ void __fill(ForwardIt first, ForwardIt last, const T& value, std::random_access_
*/
template<class ForwardIt, class T>
-void fill(ForwardIt first, ForwardIt last, const T& value) {
+inline void fill(ForwardIt first, ForwardIt last, const T& value) {
for (; first != last; ++first){
*first = value;
}
@@ -63,4 +63,4 @@ inline BidirIt2 copy_backward(BidirIt1 first, BidirIt1 last, BidirIt2 d_last) {
} // namespace std
-#endif \ No newline at end of file
+#endif
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h
index 2bb7c3219c..4417a93b6c 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h
@@ -24,6 +24,18 @@ private:
size_t data[N];
};
+template<> class __bitset_base<1> {
+public:
+ __bitset_base() { data = 0; }
+
+ bool test(size_t pos) const { return data & (1 << pos); }
+ bool any() const;
+ void set(size_t pos, bool val) { data |= (1 << pos); }
+ void reset(size_t pos) { data &= ~(1 << pos); }
+private:
+ size_t data;
+};
+
template<size_t N> __bitset_base<N>::__bitset_base() {
std::fill(data, data + N, 0);
}
@@ -78,4 +90,4 @@ public:
};
} // namespace std
-#endif \ No newline at end of file
+#endif
diff --git a/src/Z2AudioLib/Z2Audience.cpp b/src/Z2AudioLib/Z2Audience.cpp
index 3a2e65e21b..a6306be42e 100644
--- a/src/Z2AudioLib/Z2Audience.cpp
+++ b/src/Z2AudioLib/Z2Audience.cpp
@@ -6,131 +6,12 @@
#include "Z2AudioLib/Z2Audience.h"
#include "Z2AudioLib/Z2SoundInfo.h"
#include "Z2AudioLib/Z2Calc.h"
+#include "Z2AudioLib/Z2Param.h"
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JMath/JMATrigonometric.h"
#include "JSystem/JGeometry.h"
#include "JSystem/J3DU/J3DUD.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct Z2Param {
- static f32 DISTANCE_MAX;
- static f32 MAX_VOLUME_DISTANCE;
- static f32 DOLBY_CENTER_VALUE;
- static f32 DOLBY_FLONT_DISTANCE_MAX;
- static f32 DOLBY_BEHIND_DISTANCE_MAX;
- static f32 DISTANCE_FX_PARAM;
- static f32 SONIC_SPEED;
- static f32 MIN_DISTANCE_VOLUME;
-};
-
-//
-// Forward References:
-//
-
-extern "C" void func_802BBCDC();
-extern "C" void func_802BBD18();
-extern "C" void func_802BBD94();
-extern "C" void __ct__16Z2AudibleChannelFv();
-extern "C" void calc__9Z2AudibleFv();
-extern "C" void getOuterParams__9Z2AudibleFi();
-extern "C" void setOuterParams__9Z2AudibleFRC14JASSoundParamsRC14JASSoundParamsi();
-extern "C" void getChannel__9Z2AudibleFi();
-extern "C" void getDistVolBit__9Z2AudibleFv();
-extern "C" void __ct__19Z2Audience3DSettingFv();
-extern "C" void init__19Z2Audience3DSettingFv();
-extern "C" void initVolumeDist__19Z2Audience3DSettingFv();
-extern "C" void updateVolumeDist__19Z2Audience3DSettingFf();
-extern "C" void initDolbyDist__19Z2Audience3DSettingFv();
-extern "C" void updateDolbyDist__19Z2Audience3DSettingFff();
-extern "C" void __ct__13Z2AudioCameraFv();
-extern "C" void init__13Z2AudioCameraFv();
-extern "C" void setCameraState__13Z2AudioCameraFPA4_CfR3Vecb();
-extern "C" void setCameraState__13Z2AudioCameraFPA4_fR3VecR3Vecffbb();
-extern "C" void convertAbsToRel__13Z2AudioCameraFP9Z2Audiblei();
-extern "C" void convertAbsToRel__13Z2AudioCameraCFR3VecP3Vec();
-extern "C" void isInSight__13Z2AudioCameraCFR3Vec();
-extern "C" void __ct__9Z2SpotMicFv();
-extern "C" void clearMicState__9Z2SpotMicFi();
-extern "C" void calcVolumeFactor__9Z2SpotMicFi();
-extern "C" void setMicState__9Z2SpotMicFP13Z2AudioCamerai();
-extern "C" void calcMicDist__9Z2SpotMicFP9Z2Audible();
-extern "C" void calcMicPriority__9Z2SpotMicFf();
-extern "C" void calcMicVolume__9Z2SpotMicFfif();
-extern "C" void __ct__10Z2AudienceFv();
-extern "C" void __dt__10Z2AudienceFv();
-extern "C" void func_802BD288(void* _this);
-extern "C" void setAudioCamera__10Z2AudienceFPA4_fR3VecR3Vecffbib();
-extern "C" void func_802BD338();
-extern "C" void deleteAudible__10Z2AudienceFP10JAIAudible();
-extern "C" void __dt__9Z2AudibleFv();
-extern "C" void calcPriority__10Z2AudienceFP10JAIAudible();
-extern "C" void calcOffMicSound__10Z2AudienceFf();
-extern "C" void mixChannelOut__10Z2AudienceFRC14JASSoundParamsP10JAIAudiblei();
-extern "C" void setTargetVolume__10Z2AudienceFfi();
-extern "C" void convertAbsToRel__10Z2AudienceFR3VecP3Veci();
-extern "C" void calcRelPosVolume__10Z2AudienceFRC3Vecfi();
-extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci();
-extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci();
-extern "C" void calcVolume___10Z2AudienceCFfi();
-extern "C" void calcDeltaPriority___10Z2AudienceCFfib();
-extern "C" void func_802BDCB0();
-extern "C" void calcFxMix___10Z2AudienceCFfi();
-extern "C" void calcPitch___10Z2AudienceCFP16Z2AudibleChannelPC9Z2AudiblePC13Z2AudioCamera();
-extern "C" void getMaxChannels__10Z2AudienceFv();
-extern "C" void __sinit_Z2Audience_cpp();
-extern "C" extern u8 struct_80451358[8];
-
-//
-// External References:
-//
-
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void clamp__14JASSoundParamsFv();
-extern "C" void combine__14JASSoundParamsFRC14JASSoundParamsRC14JASSoundParams();
-extern "C" void __dt__10JAIAudibleFv();
-extern "C" void __dt__11JAIAudienceFv();
-extern "C" void linearTransform__6Z2CalcFfffffb();
-extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign();
-extern "C" void getAudibleSwFull__11Z2SoundInfoF10JAISoundID();
-extern "C" void __dl__FPv();
-extern "C" void __register_global_object();
-extern "C" void __construct_array();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__10JAIAudible[5 + 1 /* padding */];
-extern "C" extern void* __vt__11JAIAudience[8];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" f32 DISTANCE_MAX__7Z2Param;
-extern "C" f32 MAX_VOLUME_DISTANCE__7Z2Param;
-extern "C" f32 DOLBY_CENTER_VALUE__7Z2Param;
-extern "C" f32 DOLBY_FLONT_DISTANCE_MAX__7Z2Param;
-extern "C" f32 DOLBY_BEHIND_DISTANCE_MAX__7Z2Param;
-extern "C" f32 DISTANCE_FX_PARAM__7Z2Param;
-extern "C" f32 SONIC_SPEED__7Z2Param;
-extern "C" extern u8 data_80450B4C[4];
-extern "C" f32 MIN_DISTANCE_VOLUME__7Z2Param;
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
/* 802BBCDC-802BBD18 2B661C 003C+00 1/1 0/0 0/0 .text
* calc__15Z2AudibleAbsPosFRCQ29JGeometry8TVec3<f> */
@@ -139,15 +20,6 @@ void Z2AudibleAbsPos::calc(JGeometry::TVec3<f32> const& param_0) {
field_0x0.set(param_0);
}
-/* ############################################################################################## */
-/* 80455AA0-80455AA4 0040A0 0004+00 19/19 0/0 0/0 .sdata2 @848 */
-SECTION_SDATA2 static u8 lit_848[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
/* 802BBD18-802BBD94 2B6658 007C+00 1/1 0/0 0/0 .text
* init__15Z2AudibleAbsPosFPQ29JGeometry8TVec3<f>RCQ29JGeometry8TVec3<f>PCQ29JGeometry8TVec3<f> */
void Z2AudibleAbsPos::init(JGeometry::TVec3<f32>* param_0, JGeometry::TVec3<f32> const& param_1,
@@ -162,40 +34,6 @@ void Z2AudibleAbsPos::init(JGeometry::TVec3<f32>* param_0, JGeometry::TVec3<f32>
field_0xc.zero();
}
-
-/* ############################################################################################## */
-/* 803CAC98-803CACB8 027DB8 0020+00 2/2 0/0 0/0 .data __vt__10Z2Audience */
-SECTION_DATA extern void* __vt__10Z2Audience[8] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10Z2AudienceFv,
- (void*)func_802BD338,
- (void*)getMaxChannels__10Z2AudienceFv,
- (void*)deleteAudible__10Z2AudienceFP10JAIAudible,
- (void*)calcPriority__10Z2AudienceFP10JAIAudible,
- (void*)mixChannelOut__10Z2AudienceFRC14JASSoundParamsP10JAIAudiblei,
-};
-
-/* 803CACB8-803CACD0 027DD8 0014+04 2/2 0/0 0/0 .data __vt__9Z2Audible */
-SECTION_DATA extern void* __vt__9Z2Audible[5 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__9Z2AudibleFv,
- (void*)getOuterParams__9Z2AudibleFi,
- (void*)calc__9Z2AudibleFv,
- /* padding */
- NULL,
-};
-
-/* 80455AA4-80455AA8 0040A4 0004+00 16/16 0/0 0/0 .sdata2 @894 */
-SECTION_SDATA2 static f32 lit_894 = 1.0f;
-
-/* 80455AA8-80455AAC 0040A8 0004+00 10/10 0/0 0/0 .sdata2 @895 */
-SECTION_SDATA2 static f32 lit_895 = 0.5f;
-
-/* 80455AAC-80455AB0 0040AC 0004+00 5/5 0/0 0/0 .sdata2 @896 */
-SECTION_SDATA2 static f32 lit_896 = -1.0f;
-
/* 802BBD94-802BBE74 2B66D4 00E0+00 1/1 0/0 0/0 .text
* __ct__9Z2AudibleFRCQ29JGeometry8TVec3<f>PCQ29JGeometry8TVec3<f>Ulb */
Z2Audible::Z2Audible(JGeometry::TVec3<f32> const& param_0, JGeometry::TVec3<f32> const* param_1,
@@ -230,39 +68,9 @@ JASSoundParams* Z2Audible::getOuterParams(int param_0) {
return &field_0x2c[param_0].field_0x0;
}
-/* ############################################################################################## */
-/* 80455AB0-80455AB4 0040B0 0004+00 4/4 0/0 0/0 .sdata2 @998 */
-SECTION_SDATA2 static f32 lit_998 = 3.0f;
-
-/* 80455AB4-80455AB8 0040B4 0004+00 1/1 0/0 0/0 .sdata2 @999 */
-SECTION_SDATA2 static f32 lit_999 = 15.0f;
-
-/* 80455AB8-80455ABC 0040B8 0004+00 4/4 0/0 0/0 .sdata2 @1000 */
-SECTION_SDATA2 static f32 lit_1000 = 3.0f / 10.0f;
-
-/* 80455ABC-80455AC0 0040BC 0004+00 1/1 0/0 0/0 .sdata2 @1001 */
-SECTION_SDATA2 static f32 lit_1001 = 0.0010000000474974513f;
-
-/* 80455AC0-80455AC4 0040C0 0004+00 2/2 0/0 0/0 .sdata2 @1002 */
-SECTION_SDATA2 static f32 lit_1002 = 1.0f / 10.0f;
-
-/* 80455AC4-80455AC8 0040C4 0004+00 1/1 0/0 0/0 .sdata2 @1003 */
-SECTION_SDATA2 static f32 lit_1003 = 1.0f / 30.0f;
-
-/* 80455AC8-80455AD0 0040C8 0004+04 1/1 0/0 0/0 .sdata2 @1004 */
-SECTION_SDATA2 static f32 lit_1004[1 + 1 /* padding */] = {
- 1.0f / 3.0f,
- /* padding */
- 0.0f,
-};
-
-/* 80455AD0-80455AD8 0040D0 0008+00 4/4 0/0 0/0 .sdata2 @1008 */
-SECTION_SDATA2 static f64 lit_1008 = 4503599627370496.0 /* cast u32 to float */;
-
/* 802BBEE4-802BC204 2B6824 0320+00 1/1 0/0 0/0 .text
* setOuterParams__9Z2AudibleFRC14JASSoundParamsRC14JASSoundParamsi */
-// regalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams const& param_1,
int param_2) {
Z2AudibleChannel* this_01 = &field_0x2c[param_2];
@@ -290,8 +98,8 @@ void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams con
f32 dVar9 = param_1.mVolume * local_b8.length();
f32 dVar10 = 1.0f;
f32 dVar12 = Z2Calc::linearTransform(iStack_94, 0.0f, 15.0f, 1.0f, 0.3f, true);
- if (param_1.mVolume > dVar12 && dVar9 > 0.0010000000474974513f) {
- dVar10 = Z2Calc::getParamByExp(dVar9, 0.3f, 0.0010000000474974513f, 0.1f, dVar12, 1.0f,
+ if (param_1.mVolume > dVar12 && dVar9 > 0.001f) {
+ dVar10 = Z2Calc::getParamByExp(dVar9, 0.3f, 0.001f, 0.1f, dVar12, 1.0f,
Z2Calc::CURVE_SIGN_1);
if (dVar10 < 0.0f) {
dVar10 = 0.0f;
@@ -334,12 +142,6 @@ void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams con
this_01->mPan = local_b0.mPan;
this_01->mDolby = local_b0.mDolby;
}
-#else
-void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams const& param_1,
- int param_2) {
- // NONMATCHING
-}
-#endif
/* 802BC204-802BC218 2B6B44 0014+00 4/4 0/0 0/0 .text getChannel__9Z2AudibleFi */
Z2AudibleChannel* Z2Audible::getChannel(int param_0) {
@@ -367,10 +169,6 @@ Z2Audience3DSetting::Z2Audience3DSetting() {
init();
}
-/* ############################################################################################## */
-/* 80455AD8-80455ADC 0040D8 0004+00 4/4 0/0 0/0 .sdata2 @1036 */
-SECTION_SDATA2 static f32 lit_1036 = 1.5f;
-
/* 802BC284-802BC308 2B6BC4 0084+00 1/1 0/0 0/0 .text init__19Z2Audience3DSettingFv */
void Z2Audience3DSetting::init() {
field_0x40 = Z2Param::MIN_DISTANCE_VOLUME;
@@ -387,38 +185,6 @@ void Z2Audience3DSetting::init() {
initDolbyDist();
}
-
-/* ############################################################################################## */
-/* 80455ADC-80455AE0 0040DC 0004+00 2/2 0/0 0/0 .sdata2 @1058 */
-SECTION_SDATA2 static f32 lit_1058 = 1.25f;
-
-/* 80455AE0-80455AE4 0040E0 0004+00 3/3 0/0 0/0 .sdata2 @1059 */
-SECTION_SDATA2 static f32 lit_1059 = 2.0f;
-
-/* 80455AE4-80455AE8 0040E4 0004+00 2/2 0/0 0/0 .sdata2 @1060 */
-SECTION_SDATA2 static f32 lit_1060 = 4.0f;
-
-/* 80455AE8-80455AEC 0040E8 0004+00 2/2 0/0 0/0 .sdata2 @1061 */
-SECTION_SDATA2 static f32 lit_1061 = 6.0f;
-
-/* 80455AEC-80455AF0 0040EC 0004+00 2/2 0/0 0/0 .sdata2 @1062 */
-SECTION_SDATA2 static f32 lit_1062 = 8.0f;
-
-/* 80455AF0-80455AF4 0040F0 0004+00 2/2 0/0 0/0 .sdata2 @1063 */
-SECTION_SDATA2 static f32 lit_1063 = 9.0f / 10.0f;
-
-/* 80455AF4-80455AF8 0040F4 0004+00 2/2 0/0 0/0 .sdata2 @1064 */
-SECTION_SDATA2 static f32 lit_1064 = 4.0f / 5.0f;
-
-/* 80455AF8-80455AFC 0040F8 0004+00 2/2 0/0 0/0 .sdata2 @1065 */
-SECTION_SDATA2 static f32 lit_1065 = 7.0f / 10.0f;
-
-/* 80455AFC-80455B00 0040FC 0004+00 2/2 0/0 0/0 .sdata2 @1066 */
-SECTION_SDATA2 static f32 lit_1066 = 3.0f / 5.0f;
-
-/* 80455B00-80455B04 004100 0004+00 2/2 0/0 0/0 .sdata2 @1067 */
-SECTION_SDATA2 static f32 lit_1067 = 2.0f / 5.0f;
-
/* 802BC308-802BC4D0 2B6C48 01C8+00 2/2 0/0 0/0 .text initVolumeDist__19Z2Audience3DSettingFv */
void Z2Audience3DSetting::initVolumeDist() {
if (mVolumeDistInit) return;
@@ -431,10 +197,8 @@ void Z2Audience3DSetting::initVolumeDist() {
mVolumeDistInit = true;
}
-
-/* ############################################################################################## */
/* 80451350-80451354 000850 0004+00 2/2 0/0 0/0 .sbss cNearFarRatio */
-static f32 cNearFarRatio;
+static f32 cNearFarRatio = Z2Param::MAX_VOLUME_DISTANCE / Z2Param::DISTANCE_MAX;
/* 802BC4D0-802BC6A4 2B6E10 01D4+00 1/1 0/0 0/0 .text updateVolumeDist__19Z2Audience3DSettingFf */
void Z2Audience3DSetting::updateVolumeDist(f32 param_0) {
@@ -450,7 +214,6 @@ void Z2Audience3DSetting::updateVolumeDist(f32 param_0) {
mVolumeDistInit = false;
}
-
/* 802BC6A4-802BC6F8 2B6FE4 0054+00 1/1 0/0 0/0 .text initDolbyDist__19Z2Audience3DSettingFv */
void Z2Audience3DSetting::initDolbyDist() {
if (!mDolbyDistInit) {
@@ -462,7 +225,6 @@ void Z2Audience3DSetting::initDolbyDist() {
}
}
-
/* 802BC6F8-802BC758 2B7038 0060+00 1/1 0/0 0/0 .text updateDolbyDist__19Z2Audience3DSettingFff */
void Z2Audience3DSetting::updateDolbyDist(f32 param_0, f32 param_1) {
if (param_0 > -1.0f * Z2Param::DOLBY_FLONT_DISTANCE_MAX) {
@@ -481,7 +243,6 @@ void Z2Audience3DSetting::updateDolbyDist(f32 param_0, f32 param_1) {
mDolbyDistInit = false;
}
-
/* 802BC758-802BC788 2B7098 0030+00 1/1 0/0 0/0 .text __ct__13Z2AudioCameraFv */
Z2AudioCamera::Z2AudioCamera() {
mFovySin = 1.0f;
@@ -494,7 +255,6 @@ Z2AudioCamera::Z2AudioCamera() {
mSetMainCamera = 0;
}
-
/* 802BC788-802BC7DC 2B70C8 0054+00 1/1 0/0 0/0 .text init__13Z2AudioCameraFv */
void Z2AudioCamera::init() {
JGeometry::TPosition3f32 aTStack_38;
@@ -509,61 +269,16 @@ void Z2AudioCamera::init() {
void Z2AudioCamera::setCameraState(f32 const (*param_0)[4], Vec& param_1, bool param_2) {
field_0x0.set(param_0);
if (param_2) {
- mPos.set(*(JGeometry::TVec3<f32>*)&param_1);
+ mPos.set(param_1);
field_0x48.set(mPos);
mVel.zero();
} else {
field_0x48.set(mPos);
- mPos.set(*(JGeometry::TVec3<f32>*)&param_1);
+ mPos.set(param_1);
mVel.sub(mPos, field_0x48);
}
}
-
-/* ############################################################################################## */
-/* 8039C220-8039C230 028880 000C+04 1/1 0/0 0/0 .rodata @1193 */
-SECTION_RODATA static u8 const lit_1193[12 + 4 /* padding */] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x8039C220, &lit_1193);
-
-/* 80455B08-80455B0C 004108 0004+00 1/1 0/0 0/0 .sdata2 @1267 */
-SECTION_SDATA2 static f32 lit_1267 = -22.755556106567383f;
-
-/* 80455B0C-80455B10 00410C 0004+00 1/1 0/0 0/0 .sdata2 @1268 */
-SECTION_SDATA2 static f32 lit_1268 = 22.755556106567383f;
-
-/* 80455B10-80455B14 004110 0004+00 1/1 0/0 0/0 .sdata2 @1269 */
-SECTION_SDATA2 static f32 lit_1269 = 50.0f;
-
-/* 80455B14-80455B18 004114 0004+00 1/1 0/0 0/0 .sdata2 @1270 */
-SECTION_SDATA2 static f32 lit_1270 = 2.1445069313049316f;
-
-/* 80455B18-80455B1C 004118 0004+00 2/2 0/0 0/0 .sdata2 @1271 */
-SECTION_SDATA2 static f32 lit_1271 = 32.0f;
-
-/* 80455B1C-80455B20 00411C 0004+00 1/1 0/0 0/0 .sdata2 @1272 */
-SECTION_SDATA2 static f32 lit_1272 = -100.0f;
-
-/* 80455B20-80455B24 004120 0004+00 1/1 0/0 0/0 .sdata2 @1273 */
-SECTION_SDATA2 static f32 lit_1273 = 0.01745329238474369f;
-
/* 802BC8AC-802BCBEC 2B71EC 0340+00 1/1 0/0 0/0 .text
* setCameraState__13Z2AudioCameraFPA4_fR3VecR3Vecffbb */
void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f32 param_3,
@@ -582,15 +297,15 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2
mVolCenterZ = 0.0f;
dVar11 = mCamDist;
} else {
- dVar11 = 2.1445069313049316f * (mCamDist * field_0x6c);
+ dVar11 = 2.144507f * (mCamDist * field_0x6c);
mVolCenterZ = mCamDist - dVar11;
- if (mVolCenterZ < 32.0f * FLT_EPSILON) {
+ if (mVolCenterZ < JGeometry::TUtil<f32>::epsilon()) {
mVolCenterZ = 0.0f;
}
}
if (mSetMainCamera && mTargetVolume > 0.0f) {
- if (dVar11 > (double)(Z2Param::DISTANCE_MAX * (1.0f - mTargetVolume)))
+ if (dVar11 > (Z2Param::DISTANCE_MAX * (1.0f - mTargetVolume)))
{
Z2GetAudience()->getSetting()->updateVolumeDist(dVar11 / (1.0f - mTargetVolume));
} else {
@@ -604,12 +319,9 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2
Z2GetAudience()->getSetting()->updateDolbyDist(mCamDist, mCamDist);
}
} else {
- JGeometry::TVec3<f32> aTStack_cc(0.0f, 0.0f, 0.0f);
- aTStack_cc.x = param_0[0][0];
- aTStack_cc.y = param_0[0][1];
- aTStack_cc.z = param_0[0][2];
+ Vec aTStack_cc = {param_0[0][0], param_0[0][1], param_0[0][2]};
Mtx rotMtx;
- MTXRotAxisRad(rotMtx, aTStack_cc, 0.01745329238474369f * (-1.0f * dVar10));
+ MTXRotAxisRad(rotMtx, &aTStack_cc, 0.017453292f * (-1.0f * dVar10));
JGeometry::TVec3<f32> aTStack_d8;
MTXMultVec(rotMtx, aTStack_c0, aTStack_d8);
aTStack_d8.scale(aTStack_c0.y / aTStack_d8.y);
@@ -621,7 +333,6 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2
setCameraState(param_0, param_1, param_6);
}
-
/* 802BCBEC-802BCC7C 2B752C 0090+00 2/2 0/0 0/0 .text
* convertAbsToRel__13Z2AudioCameraFP9Z2Audiblei */
void Z2AudioCamera::convertAbsToRel(Z2Audible* param_0, int param_1) {
@@ -667,19 +378,6 @@ bool Z2AudioCamera::isInSight(Vec& param_0) const {
return true;
}
-/* ############################################################################################## */
-/* 80455B24-80455B28 004124 0004+00 1/1 0/0 0/0 .sdata2 @1334 */
-SECTION_SDATA2 static f32 lit_1334 = 200.0f;
-
-/* 80455B28-80455B2C 004128 0004+00 1/1 0/0 0/0 .sdata2 @1335 */
-SECTION_SDATA2 static f32 lit_1335 = 400.0f;
-
-/* 80455B2C-80455B30 00412C 0004+00 2/2 0/0 0/0 .sdata2 @1336 */
-SECTION_SDATA2 static f32 lit_1336 = 1.0f / 5.0f;
-
-/* 80455B30-80455B34 004130 0004+00 1/1 0/0 0/0 .sdata2 @1337 */
-SECTION_SDATA2 static f32 lit_1337 = 255.0f;
-
/* 802BCD28-802BCDA8 2B7668 0080+00 1/1 0/0 0/0 .text __ct__9Z2SpotMicFv */
Z2SpotMic::Z2SpotMic() {
field_0x0 = 200.0f;
@@ -693,7 +391,6 @@ Z2SpotMic::Z2SpotMic() {
clearMicState(0);
}
-
/* 802BCDA8-802BCDE8 2B76E8 0040+00 2/2 0/0 0/0 .text clearMicState__9Z2SpotMicFi */
void Z2SpotMic::clearMicState(int param_0) {
field_0x10[param_0] = NULL;
@@ -735,7 +432,6 @@ void Z2SpotMic::setMicState(Z2AudioCamera* param_0, int param_1) {
}
}
-
/* 802BCF5C-802BCFE4 2B789C 0088+00 2/2 0/0 0/0 .text calcMicDist__9Z2SpotMicFP9Z2Audible
*/
f32 Z2SpotMic::calcMicDist(Z2Audible* param_0) {
@@ -756,7 +452,6 @@ f32 Z2SpotMic::calcMicDist(Z2Audible* param_0) {
return aTStack_1c.length();
}
-
/* 802BCFE4-802BD03C 2B7924 0058+00 1/1 0/0 0/0 .text calcMicPriority__9Z2SpotMicFf */
u32 Z2SpotMic::calcMicPriority(f32 param_0) {
if (param_0 > field_0x4) {
@@ -809,25 +504,18 @@ f32 Z2SpotMic::calcMicVolume(f32 param_0, int param_1, f32 param_2) {
return param_2;
}
-
/* 802BD130-802BD1FC 2B7A70 00CC+00 0/0 1/1 0/0 .text __ct__10Z2AudienceFv */
Z2Audience::Z2Audience() : JASGlobalInstance<Z2Audience>(true), field_0x4(1.0f), field_0x8(0x7f) {
- mNumPlayers = 1;
+ mMaxChannels = 1;
mUsingOffMicVol = false;
mAudioCamera[0].init();
mAudioCamera[0].setMainCamera();
mLinkMic = mSpotMic;
}
-
/* 802BD1FC-802BD288 2B7B3C 008C+00 1/0 1/1 0/0 .text __dt__10Z2AudienceFv */
Z2Audience::~Z2Audience() {}
-/* 802BD288-802BD2DC 2B7BC8 0054+00 2/2 1/1 0/0 .text __dt__22JASMemPool<9Z2Audible>Fv */
-extern "C" void func_802BD288(void* _this) {
- // NONMATCHING
-}
-
/* 802BD2DC-802BD338 2B7C1C 005C+00 0/0 1/1 0/0 .text
* setAudioCamera__10Z2AudienceFPA4_fR3VecR3Vecffbib */
void Z2Audience::setAudioCamera(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f32 param_3,
@@ -836,38 +524,23 @@ void Z2Audience::setAudioCamera(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f
mLinkMic->setMicState(&mAudioCamera[param_6], param_6);
}
-/* ############################################################################################## */
-/* 804341D8-804341E4 060EF8 000C+00 2/2 0/0 0/0 .bss @1539 */
-static u8 lit_1539[12];
-
-/* 804341E4-804341F8 060F04 0010+04 2/2 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___30JASPoolAllocObject<9Z2Audible>Fv */
-extern u8 data_804341E4[16 + 4 /* padding */];
-u8 data_804341E4[16 + 4 /* padding */];
-
-/* 80451354-80451358 000854 0004+00 2/2 1/1 0/0 .sbss None */
-extern u8 data_80451354[4];
-u8 data_80451354[4];
-
/* 802BD338-802BD4D4 2B7C78 019C+00 1/0 0/0 0/0 .text
* newAudible__10Z2AudienceFRCQ29JGeometry8TVec3<f>10JAISoundIDPCQ29JGeometry8TVec3<f>Ul */
JAIAudible* Z2Audience::newAudible(JGeometry::TVec3<f32> const& param_0, JAISoundID param_1,
JGeometry::TVec3<f32> const* param_2, u32 param_3) {
- JAUAudibleParam local_34;
- u32 uVar4 = param_3 | ~((1 << mNumPlayers) + -1);
+ u32 uVar4 = param_3 | ~((1 << mMaxChannels) + -1);
if (uVar4 == 0xffffffff) {
return NULL;
}
- local_34 = Z2GetSoundInfo()->getAudibleSwFull(param_1);
- bool x = ((local_34.field_0x0.bytes.b0_0 >> 4) & 0xf) != 0;
- Z2Audible* this_01 = (Z2Audible*)new JASPoolAllocObject<Z2Audible>();
- this_01 = new (this_01) Z2Audible(param_0, param_2, uVar4, x);
+ JAUAudibleParam local_34 = Z2GetSoundInfo()->getAudibleSwFull(param_1);
+ bool x = local_34.field_0x0.bytes.b0_0 != 0;
+ Z2Audible* this_01 = new Z2Audible(param_0, param_2, uVar4, x);
if (this_01 == NULL) {
return NULL;
}
this_01->setAudibleParam(local_34);
- for (int iVar5 = 0; iVar5 < mNumPlayers; iVar5++) {
+ for (int iVar5 = 0; iVar5 < mMaxChannels; iVar5++) {
Z2AudibleChannel* iVar2 = this_01->getChannel(iVar5);
if (iVar2 != NULL) {
u32 local_38 = this_01->getDistVolBit();
@@ -884,7 +557,6 @@ JAIAudible* Z2Audience::newAudible(JGeometry::TVec3<f32> const& param_0, JAISoun
return this_01;
}
-
/* 802BD4D4-802BD510 2B7E14 003C+00 1/0 0/0 0/0 .text deleteAudible__10Z2AudienceFP10JAIAudible */
void Z2Audience::deleteAudible(JAIAudible* param_0) {
delete param_0;
@@ -894,12 +566,11 @@ void Z2Audience::deleteAudible(JAIAudible* param_0) {
Z2Audible::~Z2Audible() {
}
-
/* 802BD5B8-802BD704 2B7EF8 014C+00 1/0 0/0 0/0 .text calcPriority__10Z2AudienceFP10JAIAudible */
u32 Z2Audience::calcPriority(JAIAudible* param_0) {
Z2Audible* z2Audible = (Z2Audible*)param_0;
if (!z2Audible->getAudibleParam()->field_0x0.bytes.b0_4) {
- for (int i = 0; i < mNumPlayers; i++) {
+ for (int i = 0; i < mMaxChannels; i++) {
mAudioCamera[i].convertAbsToRel(z2Audible, i);
}
return 0;
@@ -907,7 +578,7 @@ u32 Z2Audience::calcPriority(JAIAudible* param_0) {
u32 deltaPriority[1];
u32 rv = 0xffffffff;
- for (int i = 0; i < mNumPlayers; i++) {
+ for (int i = 0; i < mMaxChannels; i++) {
Z2AudibleChannel* iVar4 = (z2Audible)->getChannel(i);
if (iVar4 != NULL) {
mAudioCamera[i].convertAbsToRel(z2Audible, i);
@@ -968,14 +639,14 @@ void Z2Audience::mixChannelOut(JASSoundParams const& param_0, JAIAudible* param_
local_60.mVolume = 1.0f;
}
- if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_1 && mNumPlayers == 1) {
+ if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_1 && mMaxChannels == 1) {
local_60.mDolby = calcRelPosDolby(*(Vec*)&pZVar5->field_0x14.field_0x00, param_2);
} else {
local_60.mDolby = 0.5f;
}
if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_0) {
- if (mNumPlayers > 2) {
+ if (mMaxChannels > 2) {
f32 fVar1;
if (param_2 & 1) {
fVar1 = 1.0f;
@@ -1015,8 +686,6 @@ bool Z2Audience::convertAbsToRel(Vec& param_0, Vec* param_1, int param_2) {
}
/* 802BD95C-802BDA44 2B829C 00E8+00 0/0 3/3 0/0 .text calcRelPosVolume__10Z2AudienceFRC3Vecfi */
-// Mathces with literals
-#ifdef NONMATCHING
f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) {
JGeometry::TVec3<f32> aTStack_3c;
JGeometry::setTVec3f(param_0, *(Vec*)&aTStack_3c);
@@ -1036,11 +705,6 @@ f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) {
(this_00 - mSetting.field_0x3c),
0.0f, 1.0f);
}
-#else
-f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) {
- // NONMATCHING
-}
-#endif
/* 802BDA44-802BDB44 2B8384 0100+00 1/1 3/3 0/0 .text calcRelPosPan__10Z2AudienceFRC3Veci
*/
@@ -1075,7 +739,6 @@ f32 Z2Audience::calcRelPosPan(Vec const& param_0, int param_1) {
return dVar6;
}
-
/* 802BDB44-802BDBDC 2B8484 0098+00 1/1 3/3 0/0 .text calcRelPosDolby__10Z2AudienceFRC3Veci */
f32 Z2Audience::calcRelPosDolby(Vec const& param_0, int param_1) {
f32 fVar1 = param_0.z + mAudioCamera[param_1].getDolbyCenterZ();
@@ -1097,7 +760,6 @@ f32 Z2Audience::calcRelPosDolby(Vec const& param_0, int param_1) {
1.0f, Z2Calc::CURVE_SIGN_0);
}
-
/* 802BDBDC-802BDC44 2B851C 0068+00 1/1 0/0 0/0 .text calcVolume___10Z2AudienceCFfi */
f32 Z2Audience::calcVolume_(f32 param_0, int param_1) const {
if (param_0 > mSetting.field_0x0[param_1]) {
@@ -1119,7 +781,6 @@ f32 Z2Audience::calcVolume_(f32 param_0, int param_1) const {
return volume;
}
-
/* 802BDC44-802BDCB0 2B8584 006C+00 2/2 0/0 0/0 .text calcDeltaPriority___10Z2AudienceCFfib */
u32 Z2Audience::calcDeltaPriority_(f32 param_0, int param_1, bool param_2) const {
if (param_0 > mSetting.field_0x0[param_1]) {
@@ -1158,10 +819,6 @@ f32 Z2Audience::calcFxMix_(f32 param_0, int param_1) const {
return mSetting.field_0x50 + mSetting.field_0xe8[param_1] * (param_0 - mSetting.field_0x3c);
}
-/* ############################################################################################## */
-/* 80455B34-80455B38 004134 0004+00 1/1 0/0 0/0 .sdata2 @1988 */
-SECTION_SDATA2 static f32 lit_1988 = 1.0f / 15.0f;
-
/* 802BDD48-802BDED4 2B8688 018C+00 1/1 0/0 0/0 .text
* calcPitch___10Z2AudienceCFP16Z2AudibleChannelPC9Z2AudiblePC13Z2AudioCamera */
f32 Z2Audience::calcPitch_(Z2AudibleChannel* param_0, Z2Audible const* param_1,
@@ -1195,18 +852,13 @@ f32 Z2Audience::calcPitch_(Z2AudibleChannel* param_0, Z2Audible const* param_1,
/* 802BDED4-802BDEDC 2B8814 0008+00 1/0 0/0 0/0 .text getMaxChannels__10Z2AudienceFv */
int Z2Audience::getMaxChannels() {
- return mNumPlayers;
-}
-
-/* 802BDEDC-802BDEF0 2B881C 0014+00 0/0 1/0 0/0 .text __sinit_Z2Audience_cpp */
-void __sinit_Z2Audience_cpp() {
- // NONMATCHING
+ return mMaxChannels;
}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x802BDEDC, __sinit_Z2Audience_cpp);
-#pragma pop
+// padding (???)
+s8 data_80451355;
+s8 data_80451356;
+s8 data_80451357;
/* ############################################################################################## */
/* 80451358-80451360 -00001 0008+00 0/0 1/1 0/0 .sbss None */
@@ -1216,4 +868,3 @@ REGISTER_CTORS(0x802BDEDC, __sinit_Z2Audience_cpp);
// u8 struct_80451358[8];
s8 data_80451358;
s8 data_80451359;
-u8 data_8045135a[6]; // padding? \ No newline at end of file
diff --git a/src/Z2AudioLib/Z2AudioArcLoader.cpp b/src/Z2AudioLib/Z2AudioArcLoader.cpp
index 99075c1014..b7d6789d98 100644
--- a/src/Z2AudioLib/Z2AudioArcLoader.cpp
+++ b/src/Z2AudioLib/Z2AudioArcLoader.cpp
@@ -5,54 +5,13 @@
#include "Z2AudioLib/Z2AudioArcLoader.h"
#include "JSystem/JAudio2/JAUSectionHeap.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection();
-extern "C" void readCommandMore__16Z2AudioArcLoaderFUl();
-extern "C" void readBFCA__16Z2AudioArcLoaderFPCv();
-extern "C" void readBSTN__16Z2AudioArcLoaderFPCvUl();
-extern "C" void __dt__16Z2AudioArcLoaderFv();
-
-//
-// External References:
-//
-
-extern "C" void __dt__22JAUAudioArcInterpreterFv();
-extern "C" void __ct__17JAUAudioArcLoaderFP10JAUSection();
-extern "C" void readWS__17JAUAudioArcLoaderFUlPCvUl();
-extern "C" void readBNK__17JAUAudioArcLoaderFUlPCv();
-extern "C" void readBSC__17JAUAudioArcLoaderFPCvUl();
-extern "C" void readBST__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 getOpenSection__14JAUSectionHeapFv();
-extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap();
-extern "C" void __dl__FPv();
-extern "C" void mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */];
-extern "C" extern u8 data_80450B40[4];
-extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
-extern "C" u8 sCurrentHeap__7JKRHeap[4];
-extern "C" extern u8 __OSReport_disable;
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/JKernel/JKRHeap.h"
+#include "Z2AudioLib/Z2FxLineMgr.h"
/* 802A9A34-802A9A70 2A4374 003C+00 0/0 1/1 0/0 .text __ct__16Z2AudioArcLoaderFP10JAUSection */
Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) : JAUAudioArcLoader(param_0) {
+ /* empty function */
}
/* 802A9A70-802A9AC8 2A43B0 0058+00 1/0 0/0 0/0 .text readCommandMore__16Z2AudioArcLoaderFUl */
@@ -68,22 +27,16 @@ bool Z2AudioArcLoader::readCommandMore(u32 param_0) {
}
/* 802A9AC8-802A9B54 2A4408 008C+00 1/1 0/0 0/0 .text readBFCA__16Z2AudioArcLoaderFPCv */
-// regalloc and extra stack
-#ifdef NONMATCHING
+// NONMATCHING regalloc
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);
+ JKRHeap* heap = JAUSectionHeap::getInstance()->getHeap();
+ JKRArchive* archive = JKRArchive::mount((void*)param_0, JKRGetCurrentHeap(), JKRArchive::MOUNT_DIRECTION_TAIL);
+ Z2GetFxLineMgr()->initDataArc(archive, heap);
+ JKRUnmountArchive(archive);
}
-#else
-void Z2AudioArcLoader::readBFCA(void const* param_0) {
- // NONMATCHING
-}
-#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 */
-} \ No newline at end of file
+}
diff --git a/src/Z2AudioLib/Z2AudioMgr.cpp b/src/Z2AudioLib/Z2AudioMgr.cpp
index 394591664f..dbe6813902 100644
--- a/src/Z2AudioLib/Z2AudioMgr.cpp
+++ b/src/Z2AudioLib/Z2AudioMgr.cpp
@@ -6,231 +6,49 @@
#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/Z2Param.h"
#include "Z2AudioLib/Z2SoundHandles.h"
#include "stdio.h"
#include "stdlib.h"
-#include "dol2asm.h"
#include "dolphin/os.h"
-//
-// Types:
-//
-
-struct Z2Param {
- static f32 VOL_BGM_DEFAULT;
- static f32 VOL_SE_SYSTEM_DEFAULT;
- static f32 VOL_SE_LINK_VOICE_DEFAULT;
- static f32 VOL_SE_LINK_MOTION_DEFAULT;
- static f32 VOL_SE_LINK_FOOTNOTE_DEFAULT;
- static f32 VOL_SE_CHAR_VOICE_DEFAULT;
- static f32 VOL_SE_CHAR_MOVE_DEFAULT;
- static f32 VOL_SE_OBJECT_DEFAULT;
- static f32 VOL_SE_ATMOSPHERE_DEFAULT;
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__10Z2AudioMgrFv();
-extern "C" void init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive();
-extern "C" void func_802CD7F8(void* _this);
-extern "C" void setOutputMode__10Z2AudioMgrFUl();
-extern "C" void zeldaGFrameWork__10Z2AudioMgrFv();
-extern "C" void gframeProcess__10Z2AudioMgrFv();
-extern "C" void resetProcess__10Z2AudioMgrFUlb();
-extern "C" void resetRecover__10Z2AudioMgrFv();
-extern "C" void hasReset__10Z2AudioMgrCFv();
-extern "C" void func_802CDB1C();
-extern "C" void func_802CDB68(void* _this);
-extern "C" void func_802CDC08(void* _this, u32);
-extern "C" void func_802CDCEC(void* _this, u32*);
-extern "C" extern char const* const Z2AudioMgr__stringBase0;
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-
-//
-// External References:
-//
-
-extern "C" void alloc__7JASHeapFP7JASHeapUl();
-extern "C" void free__7JASHeapFv();
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void newMemPool__17JASGenericMemPoolFUli();
-extern "C" void getAramHeap__9JASKernelFv();
-extern "C" void __dt__7JASHeapFv();
-extern "C" void getResMaxSize__15JASResArcLoaderFPC10JKRArchive();
-extern "C" void getSubFrames__9JASDriverFv();
-extern "C" void __ct__15JASAudioReseterFv();
-extern "C" void start__15JASAudioReseterFUlb();
-extern "C" void resume__15JASAudioReseterFv();
-extern "C" void checkDone__15JASAudioReseterCFv();
-extern "C" void setOutputMode__9JASDriverFUl();
-extern "C" void setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement();
-extern "C" void setAudience__8JAISeMgrFP11JAIAudience();
-extern "C" void setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr();
-extern "C" void getNumActiveSe__8JAISeMgrCFv();
-extern "C" void __ct__12JAISoundInfoFb();
-extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
-extern "C" void __dt__16JAIStreamAramMgrFv();
-extern "C" void __dt__22JAUAudioArcInterpreterFv();
-extern "C" void load__17JAUAudioArcLoaderFPCv();
-extern "C" void __defctor__7JASHeapFv();
-extern "C" void __ct__18JAU_JASInitializerFv();
-extern "C" void initJASystem__18JAU_JASInitializerFP12JKRSolidHeap();
-extern "C" void __ct__18JAU_JAIInitializerFv();
-extern "C" void initJAInterface__18JAU_JAIInitializerFv();
-extern "C" void finishBuild__10JAUSectionFv();
-extern "C" void setSeqDataArchive__14JAUSectionHeapFP10JKRArchive();
-extern "C" void JAUNewSectionHeap__Fb();
-extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl();
-extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection();
-extern "C" void seqCallback__FP8JASTrackUs();
-extern "C" void __ct__10Z2SoundMgrFv();
-extern "C" void framework__10Z2SoundMgrFv();
-extern "C" void stopSync__10Z2SoundMgrFv();
-extern "C" void initParams__10Z2SoundMgrFv();
-extern "C" void __ct__14Z2SoundStarterFb();
-extern "C" void func_802AB200(void* _this);
-extern "C" void __ct__7Z2SeMgrFv();
-extern "C" void initSe__7Z2SeMgrFv();
-extern "C" void processSeFramework__7Z2SeMgrFv();
-extern "C" void __ct__8Z2SeqMgrFv();
-extern "C" void processBgmFramework__8Z2SeqMgrFv();
-extern "C" void __ct__11Z2StatusMgrFv();
-extern "C" void processHeartGaugeSound__11Z2StatusMgrFv();
-extern "C" void menuOut__11Z2StatusMgrFv();
-extern "C" void processTime__11Z2StatusMgrFv();
-extern "C" void __ct__10Z2SceneMgrFv();
-extern "C" void framework__10Z2SceneMgrFv();
-extern "C" void __ct__11Z2FxLineMgrFv();
-extern "C" void __ct__10Z2AudienceFv();
-extern "C" void func_802BD288(void* _this);
-extern "C" void __ct__13Z2SoundObjMgrFv();
-extern "C" void __ct__12Z2SpeechMgr2Fv();
-extern "C" void framework__12Z2SpeechMgr2Fv();
-extern "C" void* __nw__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __register_global_object();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */];
-extern "C" extern void* __vt__16JAIStreamAramMgr[5];
-extern "C" extern void* __vt__16JAIStreamDataMgr[4 + 1 /* padding */];
-extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */];
-extern "C" extern void* __vt__16Z2AudioArcLoader[17 + 1 /* padding */];
-extern "C" extern void* __vt__11Z2SoundInfo[20];
-extern "C" extern u8 data_804341C4[16 + 4 /* padding */];
-extern "C" extern u8 data_804341E4[16 + 4 /* padding */];
-extern "C" f32 VOL_BGM_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_SYSTEM_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_LINK_VOICE_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_LINK_MOTION_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_LINK_FOOTNOTE_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_CHAR_VOICE_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_CHAR_MOVE_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_OBJECT_DEFAULT__7Z2Param;
-extern "C" f32 VOL_SE_ATMOSPHERE_DEFAULT__7Z2Param;
-extern "C" extern u8 data_80450B4C[4];
-extern "C" extern u8 data_80450B50[4];
-extern "C" u8 sCallBackFunc__12JASSeqParser[4];
-extern "C" u8 sBlockSize__13JASAramStream[4];
-extern "C" extern u8 data_80451348[8];
-extern "C" extern u8 data_80451354[4];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803CBF38-803CBF44 029058 000C+00 1/1 1/1 0/0 .data __vt__10Z2AudioMgr */
-SECTION_DATA extern void* __vt__10Z2AudioMgr[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)func_802CDB1C,
-};
-
/* 80451368-80451370 000868 0004+04 1/1 251/251 900/900 .sbss mAudioMgrPtr__10Z2AudioMgr
*/
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
-Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039CA58 = "Audiores/Waves/";
-SECTION_DEAD static char const* const stringBase_8039CA68 = "index out of range of bitset::reset";
-#pragma pop
-
-/* 803CBF44-803CBF58 029064 0014+00 2/2 0/0 0/0 .data __vt__26JAUStreamStaticAramMgr_<1>
- */
-SECTION_DATA extern void* data_803CBF44[5] = {
- (void*)NULL /* RTTI */, (void*)NULL, (void*)func_802CDCEC,
- (void*)func_802CDC08, (void*)func_802CDB68,
-};
-
-/* 803CBF58-803CBF70 029078 0014+04 3/3 0/0 0/0 .data __vt__24JAUStreamAramMgrBase_<1> */
-SECTION_DATA extern void* data_803CBF58[5 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
- (void*)func_802CD7F8,
- /* padding */
- NULL,
-};
-
-/* 80434268-80434274 060F88 000C+00 1/1 0/0 0/0 .bss @3779 */
-static u8 lit_3779[12];
-
-/* 80434274-80434280 060F94 000C+00 1/1 0/0 0/0 .bss @3783 */
-static u8 lit_3783[12];
-
-/* 80455F58-80455F5C 004558 0004+00 1/1 0/0 0/0 .sdata2 @3931 */
-SECTION_SDATA2 static f32 lit_3931 = 13.0f / 10.0f;
-
-/* 80455F5C-80455F60 00455C 0004+00 2/2 0/0 0/0 .sdata2 @3932 */
-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
+// NONMATCHING JASPoolAllocObject<_> locations
void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) {
JAU_JASInitializer stack_60;
+ stack_60.field_0x04 = param_1;
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;
@@ -252,33 +70,33 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch
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->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 0);
+ seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT, 0);
+ seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT, 0);
+ seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT, 0);
+ seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0);
+ seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0);
+ seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT, 0);
+ seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0);
+ seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0);
+ seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 0);
seMgr->getParams()->moveVolume(1.0f, 0);
+
JAISeqMgr* seqMgr = mSoundMgr.getSeqMgr();
- seqMgr->getParams()->moveVolume(1.0f, 0);
+ seqMgr->getParams()->moveVolume(Z2Param::VOL_BGM_DEFAULT, 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);
+ streamMgr->getParams()->moveVolume(Z2Param::VOL_BGM_DEFAULT, 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());
+ // 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);
@@ -289,7 +107,8 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch
Z2AudioArcLoader stack_a0(sectionHeap);
bool baaLoadResult = stack_a0.load(param_2);
JUT_ASSERT(252, baaLoadResult);
- seqMgr->setSeqDataMgr(sectionHeap->getSeqDataMgr());
+ seMgr->setSeqDataMgr(sectionHeap->getSeSeqDataMgr());
+ seqMgr->setSeqDataMgr(sectionHeap->getSeqSeqDataMgr());
if (sectionHeap->getStreamDataMgr()) {
streamMgr->setStreamDataMgr(sectionHeap->getStreamDataMgr());
} else {
@@ -299,17 +118,6 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch
initSe();
JASSeqParser::registerSeqCallback(seqCallback);
}
-#else
-void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) {
- // NONMATCHING
-}
-#endif
-
-/* 802CD7F8-802CD888 2C8138 0090+00 1/0 0/0 0/0 .text __dt__24JAUStreamAramMgrBase_<1>Fv
- */
-extern "C" void func_802CD7F8(void* _this) {
- // NONMATCHING
-}
/* 802CD888-802CD8B4 2C81C8 002C+00 0/0 5/5 0/0 .text setOutputMode__10Z2AudioMgrFUl */
void Z2AudioMgr::setOutputMode(u32 mode) {
@@ -347,14 +155,6 @@ void Z2AudioMgr::resetProcess(u32 param_0, bool param_1) {
mResettingFlag = true;
}
-/* ############################################################################################## */
-/* 80455F60-80455F68 004560 0004+04 1/1 0/0 0/0 .sdata2 @4035 */
-SECTION_SDATA2 static f32 lit_4035[1 + 1 /* padding */] = {
- 0.0f,
- /* padding */
- 0.0f,
-};
-
/* 802CD9CC-802CDA6C 2C830C 00A0+00 0/0 1/1 0/0 .text resetRecover__10Z2AudioMgrFv */
void Z2AudioMgr::resetRecover() {
mAudioReseter.resume();
@@ -364,20 +164,21 @@ void Z2AudioMgr::resetRecover() {
setTwilightGateVol(1.0f);
setWindStoneVol(1.0f, 0);
menuOut();
- i_bgmAllUnMute(0);
+ bgmAllUnMute(0);
unMuteSceneBgm(0);
}
/* 802CDA6C-802CDB1C 2C83AC 00B0+00 0/0 2/2 0/0 .text hasReset__10Z2AudioMgrCFv */
bool Z2AudioMgr::hasReset() const {
- // NONMATCHING
+ return mResettingFlag && mAudioReseter.checkDone()
+ && (field_0x519
+ || (mSoundMgr.getSeMgr()->getNumActiveSe() == 0
+ && mSoundMgr.getSeqMgr()->getNumActiveSeqs() == 0));
}
/* 802CDB1C-802CDB68 2C845C 004C+00 1/0 1/0 0/0 .text
* startSound__10Z2AudioMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
-// vtable order
-#ifdef NONMATCHING
bool Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2) {
if (mResettingFlag) {
@@ -385,45 +186,3 @@ bool Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
}
return mSoundMgr.startSound(param_0, param_1, param_2);
}
-#else
-// void Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
-// JGeometry::TVec3<f32> const* param_2) {
-extern "C" void func_802CDB1C() {
- // NONMATCHING
-}
-#endif
-
-/* 802CDB68-802CDC08 2C84A8 00A0+00 1/0 0/0 0/0 .text __dt__26JAUStreamStaticAramMgr_<1>Fv */
-extern "C" void func_802CDB68(void* _this) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039CA8C = "index out of range of bitset::test";
-#pragma pop
-
-/* 802CDC08-802CDCEC 2C8548 00E4+00 1/0 0/0 0/0 .text
- * deleteStreamAram__26JAUStreamStaticAramMgr_<1>FUl */
-extern "C" void func_802CDC08(void* _this, u32 param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039CAAF = "index out of range of bitset::set";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039CAD1 = "\0\0\0\0\0\0";
-#pragma pop
-
-/* 802CDCEC-802CDDC8 2C862C 00DC+00 1/0 0/0 0/0 .text
- * newStreamAram__26JAUStreamStaticAramMgr_<1>FPUl */
-extern "C" void func_802CDCEC(void* _this, u32* param_0) {
- // NONMATCHING
-}
-
-/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
diff --git a/src/Z2AudioLib/Z2Creature.cpp b/src/Z2AudioLib/Z2Creature.cpp
index e46e8df96a..a49079b28d 100644
--- a/src/Z2AudioLib/Z2Creature.cpp
+++ b/src/Z2AudioLib/Z2Creature.cpp
@@ -7,153 +7,101 @@
#include "Z2AudioLib/Z2Param.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2AudioMgr.h"
-#include "dol2asm.h"
static void Z2_E_sw_modPitch(Z2SoundHandlePool*, u32);
static void Z2_E_ms_modVol(Z2SoundHandlePool*, u32);
static void Z2_E_mm_modPitch(Z2SoundHandlePool*, u32);
static void Z2_B_zan_modPitch(Z2SoundHandlePool*, u32);
-//
-// External References:
-//
-
-extern "C" void __dt__16Z2SoundObjSimpleFv();
-extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
-extern "C" void movePitch__18JAISoundParamsMoveFfUl();
-extern "C" void linearTransform__6Z2CalcFfffffb();
-extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign();
-extern "C" void getRandom__6Z2CalcFfff();
-extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID();
-extern "C" void incrCrowdSize__7Z2SeMgrFv();
-extern "C" void decrCrowdSize__7Z2SeMgrFv();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void subBgmStart__8Z2SeqMgrFUl();
-extern "C" void subBgmStop__8Z2SeqMgrFv();
-extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff();
-extern "C" void setBattleSeqState__8Z2SeqMgrFUc();
-extern "C" void setBattleLastHit__8Z2SeqMgrFUc();
-extern "C" void convertAbsToRel__10Z2AudienceFR3VecP3Veci();
-extern "C" void calcRelPosVolume__10Z2AudienceFRC3Vecfi();
-extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci();
-extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci();
-extern "C" void __ct__14Z2SoundObjBaseFv();
-extern "C" void __dt__14Z2SoundObjBaseFv();
-extern "C" void init__14Z2SoundObjBaseFP3VecUc();
-extern "C" void deleteObject__14Z2SoundObjBaseFv();
-extern "C" void framework__14Z2SoundObjBaseFUlSc();
-extern "C" void dispose__14Z2SoundObjBaseFv();
-extern "C" void stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool();
-extern "C" void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
-extern "C" void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
-extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
-extern "C" void __ct__16Z2SoundObjSimpleFv();
-extern "C" void __ct__15Z2SoundObjAnimeFv();
-extern "C" void initAnime__15Z2SoundObjAnimeFPvbff();
-extern "C" void updateAnime__15Z2SoundObjAnimeFff();
-extern "C" void func_802C0074();
-extern "C" void func_802C0190();
-extern "C" void isMidnaSpeak__12Z2SpeechMgr2Fv();
-extern "C" void __dl__FPv();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __construct_array();
-extern "C" void _savegpr_20();
-extern "C" void _savegpr_23();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_20();
-extern "C" void _restgpr_23();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__15Z2SoundObjAnime[8];
-extern "C" extern void* __vt__16Z2SoundObjSimple[8];
-extern "C" extern u8 data_80450B44[4];
-extern "C" extern u8 data_80450B48[4];
-extern "C" extern u8 data_80450B70[4];
-extern "C" extern u8 data_80450B7C[4];
-extern "C" extern u8 data_80450B80[4];
-extern "C" extern u8 data_80450B84[4];
-extern "C" extern u8 data_80450B88[4];
-extern "C" extern u8 struct_80451358[8];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
+/* 80455BD8-80455BDC 0041D8 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */
+static Z2EnemyArea const sAreaDefault = {true, 700, 1100, 1500};
+
+/* 80455BE0-80455BE4 0041E0 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */
+static Z2EnemyArea const sAreaFloating = {false, 700, 1100, 1500};
+
+/* 80455BE8-80455BEC 0041E8 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */
+static Z2EnemyArea const sAreaWide = {true, 700, 1500, 3300};
+
+/* 80455BF0-80455BF4 0041F0 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */
+static Z2EnemyArea const sAreaWideFloating = {false, 700, 1500, 3300};
+
+/* 80455BF8-80455BFC 0041F8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */
+static Z2EnemyArea const sAreaSmall = {true, 300, 700, 1000};
+
+/* 80455C00-80455C04 004200 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */
+static Z2EnemyArea const sAreaSmallFloating = {false, 500, 800, 1200};
+
+struct EnemyInfo {
+ char mName[8];
+ Z2EnemyArea mEnemyArea;
+};
+
/* 803CB230-803CB630 028350 0400+00 1/1 0/0 0/0 .data mEnemyInfo */
-SECTION_DATA static u8 mEnemyInfo[1024] = {
- 0x44, 0x75, 0x6D, 0x6D, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x04, 0xB0, 0x07, 0xD0,
- 0x45, 0x5F, 0x79, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x79, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x79, 0x67, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x2C, 0x01, 0xF4, 0x02, 0xBC,
- 0x45, 0x5F, 0x79, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x05, 0xDC,
- 0x45, 0x5F, 0x72, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x79, 0x6D, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x1E,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x64, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x6B, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x74, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x05, 0xDC, 0x09, 0xC4,
- 0x45, 0x5F, 0x74, 0x6B, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x05, 0xDC, 0x09, 0xC4,
- 0x45, 0x5F, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x64, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x64, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x07, 0x08,
- 0x45, 0x5F, 0x6B, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x90, 0x02, 0x58,
- 0x45, 0x5F, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x62, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x48, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x68, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF4, 0x03, 0x20, 0x05, 0x14,
- 0x45, 0x5F, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x6F, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x66, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x66, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x62, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x6D, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x20, 0x05, 0xDC,
- 0x45, 0x5F, 0x6E, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x04, 0x4C,
- 0x45, 0x5F, 0x70, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x72, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x67, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x03, 0x84,
- 0x45, 0x5F, 0x68, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x05, 0xDC,
- 0x45, 0x5F, 0x67, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x40, 0x0B, 0xB8, 0x0F, 0xA0,
- 0x45, 0x5F, 0x6D, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x04, 0x4C,
- 0x45, 0x5F, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x03, 0x84,
- 0x45, 0x5F, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x64, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x6D, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x73, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x90, 0x02, 0x58, 0x05, 0xDC,
- 0x45, 0x5F, 0x72, 0x64, 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0xE8, 0x05, 0xDC,
- 0x45, 0x5F, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x7A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x67, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x5F, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x07, 0xD0, 0x0F, 0xA0,
- 0x45, 0x5F, 0x6D, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x5F, 0x7A, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x5F, 0x74, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+static EnemyInfo mEnemyInfo[64] = {
+ {"Dummy", sAreaDefault},
+ {"E_s1", {true, 700, 1200, 2000}},
+ {"E_yk", sAreaSmallFloating},
+ {"E_yr", sAreaWideFloating},
+ {"E_yg", {true, 300, 500, 700}},
+ {"E_yc", sAreaWideFloating},
+ {"E_yd", {true, 500, 900, 1500}},
+ {"E_rdy", sAreaDefault},
+ {"E_ymb", {false, 10, 20, 30}},
+ {"", sAreaDefault},
+ {"E_wb", sAreaDefault},
+ {"E_rd", sAreaDefault},
+ {"E_dn", sAreaDefault},
+ {"E_kr", sAreaWideFloating},
+ {"E_st", sAreaDefault},
+ {"E_tk", {true, 700, 1500, 2500}},
+ {"E_tk2", {true, 700, 1500, 2500}},
+ {"E_cr", sAreaSmall},
+ {"E_df", sAreaDefault},
+ {"E_fs", sAreaDefault},
+ {"E_SB", sAreaDefault},
+ {"E_PM", sAreaDefault},
+ {"E_db", {true, 500, 900, 1800}},
+ {"E_kg", sAreaSmall},
+ {"E_sh", sAreaDefault},
+ {"E_sf", sAreaDefault},
+ {"E_bs", {true, 200, 400, 600}},
+ {"E_SM", sAreaDefault},
+ {"E_ba", sAreaSmallFloating},
+ {"E_bu", sAreaFloating},
+ {"E_HM", sAreaDefault},
+ {"E_ge", sAreaFloating},
+ {"E_hz", {false, 500, 800, 1300}},
+ {"E_ws", sAreaSmallFloating},
+ {"E_oc", sAreaDefault},
+ {"E_fz", sAreaDefault},
+ {"E_fb", sAreaDefault},
+ {"E_bg", sAreaSmall},
+ {"E_mm", {true, 500, 800, 1500}},
+ {"E_nz", {true, 500, 700, 1100}},
+ {"E_po", sAreaWide},
+ {"E_rb", sAreaDefault},
+ {"E_sg", {true, 500, 700, 900}},
+ {"E_hb", {true, 500, 900, 1500}},
+ {"E_gb", {true, 1600, 3000, 4000}},
+ {"E_ms", {true, 500, 700, 1100}},
+ {"E_dd", sAreaDefault},
+ {"E_bi", {true, 500, 700, 900}},
+ {"E_tt", sAreaSmallFloating},
+ {"E_ai", sAreaDefault},
+ {"E_dk", sAreaSmall},
+ {"E_ww", sAreaWide},
+ {"E_gi", sAreaDefault},
+ {"E_sm2", sAreaDefault},
+ {"E_sw", {true, 400, 600, 1500}},
+ {"E_rdb", {true, 500, 1000, 1500}},
+ {"E_kk", sAreaDefault},
+ {"E_hp", sAreaDefault},
+ {"E_zh", sAreaDefault},
+ {"E_gm", sAreaSmall},
+ {"B_GG", {false, 1000, 2000, 4000}},
+ {"E_mf", sAreaDefault},
+ {"E_zm", sAreaDefault},
+ {"B_tn", sAreaDefault},
};
/* 802C03C8-802C0420 2BAD08 0058+00 3/3 3/3 129/129 .text __ct__10Z2CreatureFv */
@@ -224,43 +172,6 @@ void Z2Creature::stopAnime() {
deleteObject();
}
-/* ############################################################################################## */
-/* 80455BD8-80455BDC 0041D8 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */
-SECTION_SDATA2 static u32 sAreaDefault = 0x010002BC;
-
-/* 80455BDC-80455BE0 0041DC 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BDC = 0x044C05DC;
-
-/* 80455BE0-80455BE4 0041E0 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */
-SECTION_SDATA2 static u32 sAreaFloating = 0x000002BC;
-
-/* 80455BE4-80455BE8 0041E4 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BE4 = 0x044C05DC;
-
-/* 80455BE8-80455BEC 0041E8 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */
-SECTION_SDATA2 static u32 sAreaWide = 0x010002BC;
-
-/* 80455BEC-80455BF0 0041EC 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BEC = 0x05DC0CE4;
-
-/* 80455BF0-80455BF4 0041F0 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */
-SECTION_SDATA2 static u32 sAreaWideFloating = 0x000002BC;
-
-/* 80455BF4-80455BF8 0041F4 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BF4 = 0x05DC0CE4;
-
-/* 80455BF8-80455BFC 0041F8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */
-SECTION_SDATA2 static u32 sAreaSmall = 0x0100012C;
-
-/* 80455BFC-80455C00 0041FC 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BFC = 0x02BC03E8;
-
-/* 80455C00-80455C04 004200 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */
-SECTION_SDATA2 static u32 sAreaSmallFloating = 0x000001F4;
-
-/* 80455C04-80455C08 004204 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455C04 = 0x032004B0;
-
/* 802C0720-802C087C 2BB060 015C+00 4/0 2/0 0/0 .text
* startCreatureSound__10Z2CreatureF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2Creature::startCreatureSound(JAISoundID i_soundID, u32 param_1, s8 param_2) {
@@ -423,10 +334,9 @@ void Z2CreatureCitizen::setMdlType(s8 param_0, bool param_1, bool param_2) {
/* 802C0E18-802C0ED8 2BB758 00C0+00 0/0 0/0 21/21 .text playVoice__17Z2CreatureCitizenFi
*/
-#ifdef NONMATCHING
-// regalloc
void Z2CreatureCitizen::playVoice(int i_sound) {
- u32 sound_id = Z2SE_MAN_A1_V_AWAY + 6 * mCitizenID + i_sound;
+ u32 tmp = mCitizenID;
+ u32 sound_id = Z2SE_MAN_A1_V_AWAY + 6 * tmp + i_sound;
switch (mCitizenID) {
case 0:
case 1:
@@ -441,11 +351,6 @@ void Z2CreatureCitizen::playVoice(int i_sound) {
mLinkSearch = true;
}
}
-#else
-void Z2CreatureCitizen::playVoice(int param_0) {
- // NONMATCHING
-}
-#endif
/* 802C0ED8-802C0F64 2BB818 008C+00 1/0 0/0 0/0 .text
* startCreatureVoice__17Z2CreatureCitizenF10JAISoundIDSc */
@@ -478,7 +383,7 @@ Z2CreatureEnemy::Z2CreatureEnemy() :
*/
void Z2CreatureEnemy::deleteObject() {
if (mEnemyID == 0x2c) {
- Z2GetSeqMgr()->i_unMuteSceneBgm(0x21);
+ Z2GetSeqMgr()->unMuteSceneBgm(0x21);
}
if (getSupervisor() != NULL) {
Z2GetSoundObjMgr()->removeEnemy(this);
@@ -739,6 +644,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureExtraSoundLevel(JAISoundID i_so
/* 802C1A14-802C1B7C 2BC354 0168+00 4/0 0/0 0/0 .text startCollisionSE__15Z2CreatureEnemyFUlUl */
Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) {
+ u8 var1;
switch (mEnemyID) {
case 0x21:
field_0xa3 = 1;
@@ -766,7 +672,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) {
case 0x20:
case 0x24:
field_0xa3 = 1;
- u8 var1 = struct_80450869;
+ var1 = struct_80450869;
if (param_0 - 0x40000 <= 1 || param_0 - 0x40000 == 3) {
var1 = 0x14;
}
@@ -1208,12 +1114,3 @@ static void Z2_B_zan_modPitch(Z2SoundHandlePool* i_handle, u32 param_1) {
(*i_handle)->getAuxiliary().moveVolume(volume, 0);
}
}
-
-/* 802C3040-802C321C 2BD980 01DC+00 0/0 1/0 0/0 .text __sinit_Z2Creature_cpp */
-void __sinit_Z2Creature_cpp(){// NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x802C3040, __sinit_Z2Creature_cpp);
-#pragma pop \ No newline at end of file
diff --git a/src/Z2AudioLib/Z2EnvSeMgr.cpp b/src/Z2AudioLib/Z2EnvSeMgr.cpp
index 50d620c865..9189867d2d 100644
--- a/src/Z2AudioLib/Z2EnvSeMgr.cpp
+++ b/src/Z2AudioLib/Z2EnvSeMgr.cpp
@@ -1181,22 +1181,23 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
f32 dVar15 = mEtcSeMgr.getDolbyPower();
bool rv = false;
f32 dVar18 = field_0x21c;
- f32 local_90;
+ f32 local_90, local_98, local_9c, local_a0;
+ bool iVar5, iVar6, iVar7, iVar8;
switch (field_0x214) {
case 0x11:
local_90 = Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.01f, 1.0f,
true);
dVar18 *= Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.2f,
true);
- bool iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17,
+ iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17,
(dVar19 * local_90), dVar14, dVar15, dVar18, 0);
local_90 = Z2Calc::linearTransform(local_90, 0.0f, 1.0f, 0.3f, 1.0f, true);
field_0x0.calcPan();
field_0x1c.calcPan();
- bool iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18);
- bool iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90,
+ iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18);
+ iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90,
(0.8f * dVar18));
- bool iVar5 = false;
+ iVar5 = false;
if (iVar8 && iVar6 && iVar7) {
iVar5 = true;
}
@@ -1265,11 +1266,11 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
case 0x0:
break;
case 0x10:
- f32 local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f,
+ local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f,
Z2Calc::CURVE_SIGN_0);
- f32 local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f,
+ local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f,
Z2Calc::CURVE_SIGN_0);
- f32 local_a0 = field_0x2e8.calcNoise1f();
+ local_a0 = field_0x2e8.calcNoise1f();
rv = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 0.3f,
(dVar19 * ((0.332f + 0.668f * local_a0) * local_98)),
dVar14, dVar15, 0.8f + 0.2f * local_a0, 0);
@@ -1299,6 +1300,7 @@ bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) {
(JGeometry::TVec3<f32>*)param_0, fogDensity2, 0.3f,
1.0f, fogDensity, -1.0f, -1.0f, 0);
}
+ //! @bug does not always return a value
}
/* 802C93A0-802C93E4 2C3CE0 0044+00 0/0 0/0 1/1 .text setFogWipeWidth__10Z2EnvSeMgrFf */
@@ -1331,7 +1333,7 @@ bool Z2EnvSeMgr::startFogSe() {
dVar13, 0);
bool uVar8 = false;
if (iVar5 && iVar6) {
- uVar8 = 1;
+ uVar8 = true;
}
return uVar8;
}
diff --git a/src/Z2AudioLib/Z2FxLineMgr.cpp b/src/Z2AudioLib/Z2FxLineMgr.cpp
index 8a92d1f9d0..c1a7d1645c 100644
--- a/src/Z2AudioLib/Z2FxLineMgr.cpp
+++ b/src/Z2AudioLib/Z2FxLineMgr.cpp
@@ -4,180 +4,224 @@
//
#include "Z2AudioLib/Z2FxLineMgr.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JSUMemoryInputStream {
- /* 802DC520 */ void setBuffer(void const*, s32);
-};
-
-struct JSUInputStream {
- /* 802DC23C */ ~JSUInputStream();
- /* 802DC298 */ void read(void*, s32);
-};
-
-struct JASDsp {
- struct FxlineConfig_ {};
-
- /* 8029DB78 */ void setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__11Z2FxLineMgrFv();
-extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap();
-extern "C" void setLineID__11Z2FxLineMgrFScbb();
-extern "C" void setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb();
-extern "C" void setFxForceOff__11Z2FxLineMgrFb();
-extern "C" void setUnderWaterFx__11Z2FxLineMgrFb();
-extern "C" void setSceneFx__11Z2FxLineMgrFl();
-
-//
-// External References:
-//
-
-extern "C" void setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_();
-extern "C" void free__7JKRHeapFPvP7JKRHeap();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void getResource__10JKRArchiveFUs();
-extern "C" void countResource__10JKRArchiveCFv();
-extern "C" void __dt__14JSUInputStreamFv();
-extern "C" void read__14JSUInputStreamFPvl();
-extern "C" void setBuffer__20JSUMemoryInputStreamFPCvl();
-extern "C" void _savegpr_22();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_22();
-extern "C" void _restgpr_28();
-extern "C" extern void* __vt__10JSUIosBase[3];
-extern "C" extern void* __vt__20JSURandomInputStream[9];
-extern "C" extern void* __vt__14JSUInputStream[6 + 1 /* padding */];
-extern "C" extern void* __vt__20JSUMemoryInputStream[9 + 1 /* padding */];
-extern "C" extern u8 data_80450B80[4];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
+#include "Z2AudioLib/Z2SceneMgr.h"
+#include "JSystem/JAudio2/JASDSPInterface.h"
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/JKernel/JKRHeap.h"
+#include "JSystem/JSupport/JSUMemoryStream.h"
/* 802BA7DC-802BA7FC 2B511C 0020+00 0/0 1/1 0/0 .text __ct__11Z2FxLineMgrFv */
Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(this) {
- // NONMATCHING
+ mConfig = NULL;
+ mLineID = -1;
+ mFxDataNum = 0;
+ mSetUnderWaterFx = false;
}
/* 802BA7FC-802BAC28 2B513C 042C+00 0/0 1/1 0/0 .text
* initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap */
-void Z2FxLineMgr::initDataArc(JKRArchive* param_0, JKRHeap* param_1) {
- // NONMATCHING
+void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) {
+ mFxLineBuffer[0] = new (heap, 0x20) u8[0x2800];
+ mFxLineBuffer[1] = new (heap, 0x20) u8[0x2800];
+ mFxLineBuffer[2] = new (heap, 0x20) u8[0x4B00];
+ mFxLineBuffer[3] = new (heap, 0x20) u8[0x4B00];
+ mFxDataNum = arc->countResource();
+ mConfig = new (heap, 0) Z2FxLineConfig[mFxDataNum];
+ for (u8 i = 0; i < mFxDataNum; i++) {
+ void* res = arc->getResource(i);
+ u32 size = (arc->getResSize(res) + 0x1f) & ~0x1f;
+ JSUMemoryInputStream stream(res, size);
+ stream >> mConfig[i].field_0x0;
+ stream >> mConfig[i].field_0x1;
+ stream >> mConfig[i].field_0x2;
+ stream >> mConfig[i].field_0x3;
+ stream >> mConfig[i].field_0x4;
+ stream >> mConfig[i].field_0x6;
+ stream >> mConfig[i].field_0x8[0];
+ stream >> mConfig[i].field_0x8[1];
+ stream >> mConfig[i].field_0x8[2];
+ stream >> mConfig[i].field_0x8[3];
+ stream >> mConfig[i].field_0x8[4];
+ stream >> mConfig[i].field_0x8[5];
+ stream >> mConfig[i].field_0x8[6];
+ stream >> mConfig[i].field_0x8[7];
+ stream >> mConfig[i].field_0x18;
+ stream >> mConfig[i].field_0x19;
+ stream >> mConfig[i].field_0x1a;
+ stream >> mConfig[i].field_0x1b;
+ stream >> mConfig[i].field_0x1c;
+ stream >> mConfig[i].field_0x1e;
+ stream >> mConfig[i].field_0x20[0];
+ stream >> mConfig[i].field_0x20[1];
+ stream >> mConfig[i].field_0x20[2];
+ stream >> mConfig[i].field_0x20[3];
+ stream >> mConfig[i].field_0x20[4];
+ stream >> mConfig[i].field_0x20[5];
+ stream >> mConfig[i].field_0x20[6];
+ stream >> mConfig[i].field_0x20[7];
+ JKRFree(res);
+ }
+ setLineID(-1, false, false);
+ setLineID(-1, true, false);
}
/* 802BAC28-802BAC74 2B5568 004C+00 4/4 0/0 0/0 .text setLineID__11Z2FxLineMgrFScbb */
-void Z2FxLineMgr::setLineID(s8 param_0, bool param_1, bool param_2) {
- // NONMATCHING
+void Z2FxLineMgr::setLineID(s8 fxID, bool param_1, bool param_2) {
+ if (fxID < 0) {
+ mLineID = 0;
+ } else {
+ mLineID = fxID;
+ }
+ setLine(&mConfig[mLineID], param_1, param_2);
}
/* 802BAC74-802BAE1C 2B55B4 01A8+00 1/1 0/0 0/0 .text setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb
*/
-void Z2FxLineMgr::setLine(Z2FxLineConfig* param_0, bool param_1, bool param_2) {
- // NONMATCHING
+void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
+ u8 buf1 = 0;
+ u8 buf2 = 1;
+ if (param_1) {
+ buf1 = 2;
+ buf2 = 3;
+ }
+
+ if (mFxLineBuffer[buf1] == NULL || mFxLineBuffer[buf2] == NULL) {
+ return;
+ }
+
+ JASDsp::FxlineConfig_ dsp_config;
+ dsp_config.field_0x0 = config->field_0x0;
+ dsp_config.field_0x2 = config->field_0x1;
+ dsp_config.field_0x6 = config->field_0x2;
+ if (param_2) {
+ dsp_config.field_0x4 = 0;
+ dsp_config.field_0x8 = 0;
+ } else {
+ dsp_config.field_0x4 = config->field_0x4;
+ dsp_config.field_0x8 = config->field_0x6;
+ }
+ dsp_config.field_0xc = config->field_0x3;
+ dsp_config.field_0x10[0] = config->field_0x8[0];
+ dsp_config.field_0x10[1] = config->field_0x8[1];
+ dsp_config.field_0x10[2] = config->field_0x8[2];
+ dsp_config.field_0x10[3] = config->field_0x8[3];
+ dsp_config.field_0x10[4] = config->field_0x8[4];
+ dsp_config.field_0x10[5] = config->field_0x8[5];
+ dsp_config.field_0x10[6] = config->field_0x8[6];
+ dsp_config.field_0x10[7] = config->field_0x8[7];
+ JASDsp::setFXLine(buf1, (s16*)mFxLineBuffer[buf1], &dsp_config);
+
+ dsp_config.field_0x0 = config->field_0x18;
+ dsp_config.field_0x2 = config->field_0x19;
+ dsp_config.field_0x6 = config->field_0x1a;
+ if (param_2) {
+ dsp_config.field_0x4 = 0;
+ dsp_config.field_0x8 = 0;
+ } else {
+ dsp_config.field_0x4 = config->field_0x1c;
+ dsp_config.field_0x8 = config->field_0x1e;
+ }
+ dsp_config.field_0xc = config->field_0x1b;
+ dsp_config.field_0x10[0] = config->field_0x20[0];
+ dsp_config.field_0x10[1] = config->field_0x20[1];
+ dsp_config.field_0x10[2] = config->field_0x20[2];
+ dsp_config.field_0x10[3] = config->field_0x20[3];
+ dsp_config.field_0x10[4] = config->field_0x20[4];
+ dsp_config.field_0x10[5] = config->field_0x20[5];
+ dsp_config.field_0x10[6] = config->field_0x20[6];
+ dsp_config.field_0x10[7] = config->field_0x20[7];
+ JASDsp::setFXLine(buf2, (s16*)mFxLineBuffer[buf2], &dsp_config);
}
/* 802BAE1C-802BAE48 2B575C 002C+00 0/0 1/1 0/0 .text setFxForceOff__11Z2FxLineMgrFb */
void Z2FxLineMgr::setFxForceOff(bool param_0) {
- // NONMATCHING
+ setLineID(mLineID, true, param_0);
}
/* 802BAE48-802BAEB8 2B5788 0070+00 0/0 1/1 0/0 .text setUnderWaterFx__11Z2FxLineMgrFb */
void Z2FxLineMgr::setUnderWaterFx(bool param_0) {
- // NONMATCHING
+ if (mSetUnderWaterFx != param_0) {
+ if (param_0) {
+ setLineID(12, true, false);
+ } else {
+ setSceneFx(Z2GetSceneMgr()->getCurrentSceneNum());
+ }
+ mSetUnderWaterFx = param_0;
+ }
}
-/* ############################################################################################## */
-/* 803CAB18-803CAC48 -00001 0130+00 1/1 0/0 0/0 .data @3566 */
-SECTION_DATA static void* lit_3566[76] = {
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x88),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x54),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
- (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
-};
-
/* 802BAEB8-802BB00C 2B57F8 0154+00 2/1 1/1 0/0 .text setSceneFx__11Z2FxLineMgrFl */
-void Z2FxLineMgr::setSceneFx(s32 param_0) {
- // NONMATCHING
-} \ No newline at end of file
+void Z2FxLineMgr::setSceneFx(s32 sceneNum) {
+ if (Z2GetSceneMgr()->isInDarkness()) {
+ setLineID(11, true, false);
+ } else {
+ switch (sceneNum) {
+ case SPOT_SHADES_REALM:
+ setLineID(9, true, false);
+ break;
+ case SPOT_KAKARIKO_VILLAGE:
+ case SPOT_DEATH_MOUNTAIN:
+ case SPOT_HIDDEN_VILLAGE:
+ case SPOT_ZORAS_RIVER:
+ case SPOT_HYRULE_FIELD:
+ setLineID(10, true, false);
+ break;
+ case SPOT_SACRED_GROVE:
+ case SPOT_FOREST_TEMPLE:
+ case SPOT_FOREST_TEMPLE_MINIBOSS:
+ case SPOT_FOREST_TEMPLE_BOSS:
+ case SPOT_GORGE_LANTERN_CAVE:
+ case SPOT_LAKE_LANTERN_CAVE:
+ case SPOT_FARON_WOODS_CAVE:
+ if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) {
+ return;
+ }
+ // fallthrough
+ case SPOT_FARON_WOODS:
+ setLineID(1, true, false);
+ break;
+ case SPOT_GORON_MINES:
+ case SPOT_GORON_MINES_MINIBOSS:
+ case SPOT_GORON_MINES_BOSS:
+ case SPOT_ELDIN_MAGNET_CAVE:
+ setLineID(2, true, false);
+ break;
+ case SPOT_LAKE_HYLIA:
+ case SPOT_LAKEBED_TEMPLE:
+ case SPOT_LAKEBED_TEMPLE_MINIBOSS:
+ case SPOT_LAKEBED_TEMPLE_BOSS:
+ if (Z2GetSceneMgr()->getCurrentRoomNum() == 1) {
+ setLineID(3, true, false);
+ }
+ break;
+ case SPOT_ARBITERS_GROUNDS:
+ case SPOT_ARBITERS_GROUNDS_MINIBOSS:
+ case SPOT_ARBITERS_GROUNDS_BOSS:
+ setLineID(4, true, false);
+ break;
+ case SPOT_SNOWPEAK_RUINS:
+ case SPOT_SNOWPEAK_RUINS_MINIBOSS:
+ case SPOT_SNOWPEAK_RUINS_BOSS:
+ case SPOT_ICE_BLOCK_PUZZLE:
+ setLineID(5, true, false);
+ break;
+ case SPOT_TEMPLE_OF_TIME:
+ case SPOT_TEMPLE_OF_TIME_MINIBOSS:
+ case SPOT_TEMPLE_OF_TIME_BOSS:
+ setLineID(6, true, false);
+ break;
+ case SPOT_CITY_IN_THE_SKY:
+ case SPOT_CITY_IN_THE_SKY_MINIBOSS:
+ case SPOT_CITY_IN_THE_SKY_BOSS:
+ setLineID(7, true, false);
+ break;
+ case SPOT_HYRULE_CASTLE:
+ case SPOT_FINAL_BATTLE_THRONE_ROOM:
+ setLineID(8, true, false);
+ break;
+ default:
+ setLineID(-1, true, false);
+ break;
+ }
+ }
+}
diff --git a/src/Z2AudioLib/Z2SceneMgr.cpp b/src/Z2AudioLib/Z2SceneMgr.cpp
index 632b680532..46909a28cc 100644
--- a/src/Z2AudioLib/Z2SceneMgr.cpp
+++ b/src/Z2AudioLib/Z2SceneMgr.cpp
@@ -3,908 +3,2053 @@
// Translation Unit: Z2SceneMgr
//
+#include "JSystem/JAudio2/JASBasicWaveBank.h"
+#include "JSystem/JAudio2/JAUSectionHeap.h"
+#include "JSystem/JAudio2/JAUSoundTable.h"
#include "Z2AudioLib/Z2SceneMgr.h"
-#include "Z2AudioLib/Z2SoundMgr.h"
-#include "Z2AudioLib/Z2SeqMgr.h"
-#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2Param.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct dSv_memBit_c {
- /* 80034860 */ void isSwitch(int) const;
-};
-
-struct dSv_info_c {
- /* 80035360 */ void isSwitch(int, int) const;
-};
-
-struct dSv_event_flag_c {
- static u8 saveBitLabels[1644 + 4 /* padding */];
-};
-
-struct dSv_event_c {
- /* 800349BC */ void isEventBit(u16) const;
-};
-
-struct Z2SoundObjMgr {
- /* 802BF980 */ void setForceBattleArea(bool, u16, u16, u16);
- /* 802BFFEC */ void setGhostEnemyState(u8);
- /* 802C013C */ void deleteEnemyAll();
-};
-
-struct Z2FxLineMgr {
- /* 802BAEB8 */ void setSceneFx(s32);
-};
-
-struct Z2EnvSeMgr {
- /* 802C699C */ void resetSceneInner();
- /* 802C6AC0 */ void initSceneEnvSe(s32, s8, f32);
-};
-
-struct JAUSoundTable {
- /* 802A7160 */ void getTypeID(JAISoundID) const;
-};
-
-struct JASWaveArc {
- /* 8029A4C0 */ void load(JASHeap*);
- /* 8029A580 */ void loadTail(JASHeap*);
- /* 8029A640 */ void erase();
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__10Z2SceneMgrFv();
-extern "C" void setInDarkness__10Z2SceneMgrFb();
-extern "C" void setSceneExist__10Z2SceneMgrFb();
-extern "C" void setFadeOutStart__10Z2SceneMgrFUc();
-extern "C" void setFadeInStart__10Z2SceneMgrFUc();
-extern "C" void setSceneName__10Z2SceneMgrFPcll();
-extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet);
-extern "C" void setFieldBgmPlay__8Z2SeqMgrFb();
-extern "C" void isActive__12JAIStreamMgrCFv();
-extern "C" void getID__8JAISoundCFv();
-extern "C" void func_802B9994(void* _this);
-extern "C" static void dComIfGs_getStartPoint__Fv();
-extern "C" void unMuteSceneBgm__8Z2SeqMgrFUl();
-extern "C" void muteSceneBgm__8Z2SeqMgrFUlf();
-extern "C" static void dComIfGs_isSaveSwitch__Fi();
-extern "C" void resetCrowdSize__7Z2SeMgrFv();
-extern "C" void setTwilightGateVol__8Z2SeqMgrFf();
-extern "C" void setWindStoneVol__8Z2SeqMgrFfUl();
-extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0);
-extern "C" void sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb();
-extern "C" void framework__10Z2SceneMgrFv();
-extern "C" void load1stDynamicWave__10Z2SceneMgrFv();
-extern "C" void _load1stWaveInner_1__10Z2SceneMgrFv();
-extern "C" void _load1stWaveInner_2__10Z2SceneMgrFv();
-extern "C" void check1stDynamicWave__10Z2SceneMgrFv();
-extern "C" void load2ndDynamicWave__10Z2SceneMgrFv();
-extern "C" void sceneBgmStart__10Z2SceneMgrFv();
-extern "C" void loadStaticWaves__10Z2SceneMgrFv();
-extern "C" bool checkFirstWaves__10Z2SceneMgrFv();
-extern "C" void eraseSeWave__10Z2SceneMgrFUl();
-extern "C" void eraseBgmWave__10Z2SceneMgrFUl();
-extern "C" void getWaveLoadStatus__10Z2SceneMgrFUlUl();
-extern "C" void loadSeWave__10Z2SceneMgrFUl();
-extern "C" void loadBgmWave__10Z2SceneMgrFUl();
-extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1);
-extern "C" extern char const* const Z2SceneMgr__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void dComIfGs_isStageSwitch__Fii();
-extern "C" void isSwitch__12dSv_memBit_cCFi();
-extern "C" void isEventBit__11dSv_event_cCFUs();
-extern "C" void isSwitch__10dSv_info_cCFii();
-extern "C" void dComIfGs_isEventBit__FUs();
-extern "C" void load__10JASWaveArcFP7JASHeap();
-extern "C" void loadTail__10JASWaveArcFP7JASHeap();
-extern "C" void erase__10JASWaveArcFv();
-extern "C" void stop__8JAISoundFUl();
-extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
-extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID();
-extern "C" void resetFilterAll__10Z2SoundMgrFv();
-extern "C" void resetModY__7Z2SeMgrFv();
-extern "C" void seStopAll__7Z2SeMgrFUl();
-extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl();
-extern "C" void bgmStart__8Z2SeqMgrFUlUll();
-extern "C" void bgmStop__8Z2SeqMgrFUll();
-extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
-extern "C" void bgmStreamCheckReady__8Z2SeqMgrFv();
-extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
-extern "C" void changeBgmStatus__8Z2SeqMgrFl();
-extern "C" void setHeightVolMod__8Z2SeqMgrFbUl();
-extern "C" void setTimeProcVolMod__8Z2SeqMgrFbUl();
-extern "C" void checkBgmIDPlaying__8Z2SeqMgrFUl();
-extern "C" void resetBattleBgmParams__8Z2SeqMgrFv();
-extern "C" void setBattleBgmOff__8Z2SeqMgrFb();
-extern "C" void menuOut__11Z2StatusMgrFv();
-extern "C" void setDemoName__11Z2StatusMgrFPc();
-extern "C" void checkDayTime__11Z2StatusMgrFv();
-extern "C" void setSceneFx__11Z2FxLineMgrFl();
-extern "C" void setForceBattleArea__13Z2SoundObjMgrFbUsUsUs();
-extern "C" void setGhostEnemyState__13Z2SoundObjMgrFUc();
-extern "C" void deleteEnemyAll__13Z2SoundObjMgrFv();
-extern "C" void resetSceneInner__10Z2EnvSeMgrFv();
-extern "C" void initSceneEnvSe__10Z2EnvSeMgrFlScf();
-extern "C" void _savegpr_16();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_16();
-extern "C" void _restgpr_29();
-extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 data_80450B3C[4];
-extern "C" extern u8 data_80450B40[4];
-extern "C" extern u8 data_80450B48[4];
-extern "C" extern u8 data_80450B58[4];
-extern "C" extern Z2SoundMgr* data_80450B60;
-extern "C" extern u8 data_80450B7C[4];
-extern "C" extern Z2SeMgr* data_80450B88;
-extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
+#include "Z2AudioLib/Z2SeMgr.h"
+#include "Z2AudioLib/Z2SeqMgr.h"
+#include "Z2AudioLib/Z2SoundMgr.h"
+#include "Z2AudioLib/Z2SoundObjMgr.h"
+#include "Z2AudioLib/Z2StatusMgr.h"
+#include "d/d_com_inf_game.h"
/* 802B6840-802B68B0 2B1180 0070+00 0/0 1/1 0/0 .text __ct__10Z2SceneMgrFv */
Z2SceneMgr::Z2SceneMgr(void) : JASGlobalInstance<Z2SceneMgr>(this) {
- volatile int timerx;
sceneNum = -1;
- timerx = -1;
BGM_ID = -1;
roomNum = -1;
- SeWave_1 = 0;
- SeWaveToErase_1 = 0;
- SeWave_2 = 0;
- SeWaveToErase_2 = 0;
- BgmWave_1 = 0;
- BgmWaveToErase_1 = 0;
- BgmWave_2 = 0;
- BgmWaveToErase_2 = 0;
- SeWave_3 = 0;
- SeWaveToErase_3 = 0;
+ requestSeWave_1 = 0;
+ loadedSeWave_1 = 0;
+ requestSeWave_2 = 0;
+ loadedSeWave_2 = 0;
+ requestBgmWave_1 = 0;
+ loadedBgmWave_1 = 0;
+ requestBgmWave_2 = 0;
+ loadedBgmWave_2 = 0;
+ requestDemoWave = 0;
+ loadedDemoWave = 0;
field_0x18 = 0;
field_0x19 = 0;
- field_0x1a = 0;
- field_0x1b = 0;
+ field_0x1a = false;
+ field_0x1b = false;
sceneExist = 0;
inGame = 0;
inDarkness = false;
- field_0x17 = 0;
+ load1stWait = 0;
}
/* 802B68B0-802B68E0 2B11F0 0030+00 0/0 1/1 0/0 .text setInDarkness__10Z2SceneMgrFb */
void Z2SceneMgr::setInDarkness(bool param_0) {
inDarkness = param_0;
if (!param_0) {
- Z2SoundMgr::getInstance()->resetFilterAll();
+ Z2GetSoundMgr()->resetFilterAll();
}
}
-/* ############################################################################################## */
-/* 80455A38-80455A3C 004038 0004+00 8/8 0/0 0/0 .sdata2 @3511 */
-SECTION_SDATA2 static u8 lit_3511[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
+static char* sSpotName[81] = {
+ "F_SP00",
+ "F_SP103",
+ "R_SP01",
+ "F_SP104",
+ "R_SP107",
+ "F_SP108",
+ "R_SP108",
+ "F_SP117",
+ "F_SP109",
+ "R_SP109",
+ "R_SP209",
+ "F_SP110",
+ "R_SP110",
+ "F_SP111",
+ "F_SP128",
+ "R_SP128",
+ "F_SP115",
+ "F_SP112",
+ "F_SP126",
+ "F_SP127",
+ "R_SP127",
+ "F_SP113",
+ "F_SP116",
+ "R_SP116",
+ "R_SP160",
+ "R_SP161",
+ "F_SP114",
+ "F_SP118",
+ "F_SP124",
+ "F_SP125",
+ "F_SP121",
+ "F_SP122",
+ "F_SP123",
+ "F_SP200",
+ "F_SP102",
+ "",
+ "R_SP300",
+ "R_SP301",
+ "T_ENEMY",
+ "D_MN54",
+ "D_MN05",
+ "D_MN05B",
+ "D_MN05A",
+ "D_MN04",
+ "D_MN04B",
+ "D_MN04A",
+ "D_MN01",
+ "D_MN01B",
+ "D_MN01A",
+ "D_MN10",
+ "D_MN10B",
+ "D_MN10A",
+ "D_MN11",
+ "D_MN11B",
+ "D_MN11A",
+ "D_MN06",
+ "D_MN06B",
+ "D_MN06A",
+ "D_MN07",
+ "D_MN07B",
+ "D_MN07A",
+ "D_MN08",
+ "D_MN08B",
+ "D_MN08C",
+ "D_MN08A",
+ "D_MN08D",
+ "D_MN09",
+ "D_MN09A",
+ "D_MN09B",
+ "D_MN09C",
+ "D_SB00",
+ "D_SB01",
+ "D_SB02",
+ "D_SB03",
+ "D_SB04",
+ "D_SB05",
+ "D_SB06",
+ "D_SB07",
+ "D_SB08",
+ "D_SB09",
+ "D_SB10",
};
-/* 80455A3C-80455A40 00403C 0004+00 6/6 0/0 0/0 .sdata2 @3512 */
-SECTION_SDATA2 static f32 lit_3512 = 1.0f;
-
/* 802B68E0-802B697C 2B1220 009C+00 3/3 2/2 2/2 .text setSceneExist__10Z2SceneMgrFb */
-#ifdef NONMATCHING
void Z2SceneMgr::setSceneExist(bool param_1) {
sceneExist = param_1;
timer = 0;
- JAISeMgr* seMgr = data_80450B60->getSeMgr();
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
if (param_1) {
inGame = 1;
- if (SeWave_3 == 0x85) {
- seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0);
- } else if (SeWave_3 == 0x7F) {
- data_80450B88->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0);
+ if (requestDemoWave == 0x85) {
+ seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 0);
+ } else if (requestDemoWave == 0x7F) {
+ Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0);
} else {
- seMgr->getCategory(9)->getParams()->moveVolume(lit_3512, 33);
+ seMgr->getCategory(9)->getParams()->moveVolume(1.0f, 33);
}
} else {
- seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 180);
+ seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 180);
}
}
-#else
-void Z2SceneMgr::setSceneExist(bool param_0) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 80455A40-80455A48 004040 0004+04 1/1 0/0 0/0 .sdata2 @3529 */
-SECTION_SDATA2 static f32 lit_3529[1 + 1 /* padding */] = {
- 3.0f / 10.0f,
- /* padding */
- 0.0f,
-};
-
-/* 80455A48-80455A50 004048 0008+00 5/5 0/0 0/0 .sdata2 @3531 */
-SECTION_SDATA2 static f64 lit_3531 = 4503599627370496.0 /* cast u32 to float */;
/* 802B697C-802B6A18 2B12BC 009C+00 0/0 1/1 0/0 .text setFadeOutStart__10Z2SceneMgrFUc */
-#ifdef NONMATCHING
void Z2SceneMgr::setFadeOutStart(u8 param_0) {
setSceneExist(false);
- Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
- Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 33);
- Z2SeqMgr::getInstance()->setBattleBgmOff(true);
- field_0x17 = 40;
+ Z2GetSeqMgr()->bgmAllMute(33, 3.0f / 10.0f);
+ Z2GetSeMgr()->seMoveVolumeAll(0.0f, 33);
+ Z2GetSeqMgr()->setBattleBgmOff(true);
+ load1stWait = 40;
timer = -1;
}
-#else
-void Z2SceneMgr::setFadeOutStart(u8 param_0) {
- // NONMATCHING
-}
-#endif
/* 802B6A18-802B6AF8 2B1358 00E0+00 0/0 1/1 0/0 .text setFadeInStart__10Z2SceneMgrFUc */
-#ifdef NONMATCHING
void Z2SceneMgr::setFadeInStart(u8 param_0) {
- if (SeWave_3 == 0x7f) {
- Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0);
+ if (requestDemoWave == 0x7f) {
+ Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0);
} else {
- Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3512), 33);
+ Z2GetSeMgr()->seMoveVolumeAll(1.0f, 33);
- if (SeWave_3 == 0x85) {
- JAISeMgr* seMgr = Z2SoundMgr::getInstance()->getSeMgr();
- seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0);
+ if (requestDemoWave == 0x85) {
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 0);
}
}
- Z2SeqMgr::getInstance()->i_setTwilightGateVol(FLOAT_LABEL(lit_3512));
- Z2StatusMgr::getInstance()->menuOut();
+ Z2GetSeqMgr()->setTwilightGateVol(1.0f);
+ Z2GetStatusMgr()->menuOut();
- if (field_0x1a == 0) {
- Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
+ if (!field_0x1a) {
+ Z2GetSeqMgr()->bgmAllMute(33, 1.0f);
}
inGame = true;
}
-#else
-void Z2SceneMgr::setFadeInStart(u8 param_0) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039BFA8 = "F_SP00";
-SECTION_DEAD static char const* const stringBase_8039BFAF = "F_SP103";
-SECTION_DEAD static char const* const stringBase_8039BFB7 = "R_SP01";
-SECTION_DEAD static char const* const stringBase_8039BFBE = "F_SP104";
-SECTION_DEAD static char const* const stringBase_8039BFC6 = "R_SP107";
-SECTION_DEAD static char const* const stringBase_8039BFCE = "F_SP108";
-SECTION_DEAD static char const* const stringBase_8039BFD6 = "R_SP108";
-SECTION_DEAD static char const* const stringBase_8039BFDE = "F_SP117";
-SECTION_DEAD static char const* const stringBase_8039BFE6 = "F_SP109";
-SECTION_DEAD static char const* const stringBase_8039BFEE = "R_SP109";
-SECTION_DEAD static char const* const stringBase_8039BFF6 = "R_SP209";
-SECTION_DEAD static char const* const stringBase_8039BFFE = "F_SP110";
-SECTION_DEAD static char const* const stringBase_8039C006 = "R_SP110";
-SECTION_DEAD static char const* const stringBase_8039C00E = "F_SP111";
-SECTION_DEAD static char const* const stringBase_8039C016 = "F_SP128";
-SECTION_DEAD static char const* const stringBase_8039C01E = "R_SP128";
-SECTION_DEAD static char const* const stringBase_8039C026 = "F_SP115";
-SECTION_DEAD static char const* const stringBase_8039C02E = "F_SP112";
-SECTION_DEAD static char const* const stringBase_8039C036 = "F_SP126";
-SECTION_DEAD static char const* const stringBase_8039C03E = "F_SP127";
-SECTION_DEAD static char const* const stringBase_8039C046 = "R_SP127";
-SECTION_DEAD static char const* const stringBase_8039C04E = "F_SP113";
-SECTION_DEAD static char const* const stringBase_8039C056 = "F_SP116";
-SECTION_DEAD static char const* const stringBase_8039C05E = "R_SP116";
-SECTION_DEAD static char const* const stringBase_8039C066 = "R_SP160";
-SECTION_DEAD static char const* const stringBase_8039C06E = "R_SP161";
-SECTION_DEAD static char const* const stringBase_8039C076 = "F_SP114";
-SECTION_DEAD static char const* const stringBase_8039C07E = "F_SP118";
-SECTION_DEAD static char const* const stringBase_8039C086 = "F_SP124";
-SECTION_DEAD static char const* const stringBase_8039C08E = "F_SP125";
-SECTION_DEAD static char const* const stringBase_8039C096 = "F_SP121";
-SECTION_DEAD static char const* const stringBase_8039C09E = "F_SP122";
-SECTION_DEAD static char const* const stringBase_8039C0A6 = "F_SP123";
-SECTION_DEAD static char const* const stringBase_8039C0AE = "F_SP200";
-SECTION_DEAD static char const* const stringBase_8039C0B6 = "F_SP102";
-SECTION_DEAD static char const* const stringBase_8039C0BE = "";
-SECTION_DEAD static char const* const stringBase_8039C0BF = "R_SP300";
-SECTION_DEAD static char const* const stringBase_8039C0C7 = "R_SP301";
-SECTION_DEAD static char const* const stringBase_8039C0CF = "T_ENEMY";
-SECTION_DEAD static char const* const stringBase_8039C0D7 = "D_MN54";
-SECTION_DEAD static char const* const stringBase_8039C0DE = "D_MN05";
-SECTION_DEAD static char const* const stringBase_8039C0E5 = "D_MN05B";
-SECTION_DEAD static char const* const stringBase_8039C0ED = "D_MN05A";
-SECTION_DEAD static char const* const stringBase_8039C0F5 = "D_MN04";
-SECTION_DEAD static char const* const stringBase_8039C0FC = "D_MN04B";
-SECTION_DEAD static char const* const stringBase_8039C104 = "D_MN04A";
-SECTION_DEAD static char const* const stringBase_8039C10C = "D_MN01";
-SECTION_DEAD static char const* const stringBase_8039C113 = "D_MN01B";
-SECTION_DEAD static char const* const stringBase_8039C11B = "D_MN01A";
-SECTION_DEAD static char const* const stringBase_8039C123 = "D_MN10";
-SECTION_DEAD static char const* const stringBase_8039C12A = "D_MN10B";
-SECTION_DEAD static char const* const stringBase_8039C132 = "D_MN10A";
-SECTION_DEAD static char const* const stringBase_8039C13A = "D_MN11";
-SECTION_DEAD static char const* const stringBase_8039C141 = "D_MN11B";
-SECTION_DEAD static char const* const stringBase_8039C149 = "D_MN11A";
-SECTION_DEAD static char const* const stringBase_8039C151 = "D_MN06";
-SECTION_DEAD static char const* const stringBase_8039C158 = "D_MN06B";
-SECTION_DEAD static char const* const stringBase_8039C160 = "D_MN06A";
-SECTION_DEAD static char const* const stringBase_8039C168 = "D_MN07";
-SECTION_DEAD static char const* const stringBase_8039C16F = "D_MN07B";
-SECTION_DEAD static char const* const stringBase_8039C177 = "D_MN07A";
-SECTION_DEAD static char const* const stringBase_8039C17F = "D_MN08";
-SECTION_DEAD static char const* const stringBase_8039C186 = "D_MN08B";
-SECTION_DEAD static char const* const stringBase_8039C18E = "D_MN08C";
-SECTION_DEAD static char const* const stringBase_8039C196 = "D_MN08A";
-SECTION_DEAD static char const* const stringBase_8039C19E = "D_MN08D";
-SECTION_DEAD static char const* const stringBase_8039C1A6 = "D_MN09";
-SECTION_DEAD static char const* const stringBase_8039C1AD = "D_MN09A";
-SECTION_DEAD static char const* const stringBase_8039C1B5 = "D_MN09B";
-SECTION_DEAD static char const* const stringBase_8039C1BD = "D_MN09C";
-SECTION_DEAD static char const* const stringBase_8039C1C5 = "D_SB00";
-SECTION_DEAD static char const* const stringBase_8039C1CC = "D_SB01";
-SECTION_DEAD static char const* const stringBase_8039C1D3 = "D_SB02";
-SECTION_DEAD static char const* const stringBase_8039C1DA = "D_SB03";
-SECTION_DEAD static char const* const stringBase_8039C1E1 = "D_SB04";
-SECTION_DEAD static char const* const stringBase_8039C1E8 = "D_SB05";
-SECTION_DEAD static char const* const stringBase_8039C1EF = "D_SB06";
-SECTION_DEAD static char const* const stringBase_8039C1F6 = "D_SB07";
-SECTION_DEAD static char const* const stringBase_8039C1FD = "D_SB08";
-SECTION_DEAD static char const* const stringBase_8039C204 = "D_SB09";
-SECTION_DEAD static char const* const stringBase_8039C20B = "D_SB10";
-SECTION_DEAD static char const* const stringBase_8039C212 = "force_end";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039C21C = "\0\0\0";
-#pragma pop
-
-/* 803CA5C0-803CA704 -00001 0144+00 1/1 0/0 0/0 .data sSpotName */
-SECTION_DATA static void* sSpotName[81] = {
- (void*)&Z2SceneMgr__stringBase0,
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x26),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x2E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x36),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x3E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x46),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x4E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x56),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x5E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x66),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x6E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x76),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x86),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x8E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x96),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x9E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xA6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xAE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xB6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xBE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xC6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xCE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xD6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xDE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xE6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xEE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xFE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x106),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x10E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x116),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x117),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x11F),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x127),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x12F),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x136),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x13D),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x145),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x14D),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x154),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x15C),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x164),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16B),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x173),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x17B),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x182),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x18A),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x192),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x199),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A1),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A9),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B0),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B8),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C0),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C7),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1CF),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1D7),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1DE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1EE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1F6),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1FE),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x205),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x20D),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x215),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x21D),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x224),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x22B),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x232),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x239),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x240),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x247),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x24E),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x255),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x25C),
- (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x263),
-};
-
-/* 803CA704-803CA744 -00001 0040+00 1/1 0/0 0/0 .data @5354 */
-SECTION_DATA static void* lit_5354[16] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
-};
-
-/* 803CA744-803CA784 -00001 0040+00 1/1 0/0 0/0 .data @5353 */
-SECTION_DATA static void* lit_5353[16] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BBC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
-};
-
-/* 803CA784-803CA7BC -00001 0038+00 1/1 0/0 0/0 .data @5352 */
-SECTION_DATA static void* lit_5352[14] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC78),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCA0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC18),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC20),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC28),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC34),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC3C),
-};
-
-/* 803CA7BC-803CA7F4 -00001 0038+00 1/1 0/0 0/0 .data @5351 */
-SECTION_DATA static void* lit_5351[14] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAF4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAEC),
-};
-
-/* 803CA7F4-803CA824 -00001 0030+00 1/1 0/0 0/0 .data @5350 */
-SECTION_DATA static void* lit_5350[12] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7B0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x72C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x778),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x788),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x790),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8),
-};
-
-/* 803CA824-803CA844 -00001 0020+00 1/1 0/0 0/0 .data @5349 */
-SECTION_DATA static void* lit_5349[8] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x430),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x45C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x52C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x628),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x6F4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
-};
-
-/* 803CA844-803CA878 -00001 0034+00 1/1 0/0 0/0 .data @5348 */
-SECTION_DATA static void* lit_5348[13] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2E0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x364),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x378),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x35C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x328),
-};
-
-/* 803CA878-803CA9BC -00001 0144+00 1/1 0/0 0/0 .data @5347 */
-SECTION_DATA static void* lit_5347[81] = {
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x40C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x700),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x80C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xA08),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x968),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1824),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB94),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCF4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF00),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1010),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1174),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF70),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1098),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1140),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x11BC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x13B4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x12D8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1338),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1384),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1468),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x15E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1688),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x17E0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x18E8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1994),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1934),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x19C8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1A30),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BF4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1CF8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1DA8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1D2C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A7C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x948),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x134),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E68),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1EA4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1F00),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FAC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FE8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2038),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x20D8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2108),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2158),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x21F8),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2248),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2298),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2338),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2374),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x23D0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x247C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24AC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24FC),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x259C),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x25F4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2644),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x26E4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x27B0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2894),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x28D4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2980),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A04),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A34),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AC4),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A84),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B18),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
- (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B6C),
-};
-
-/* 80455A50-80455A54 004050 0004+00 1/1 0/0 0/0 .sdata2 @5341 */
-SECTION_SDATA2 static f32 lit_5341 = -1.0f;
-
-/* 80455A54-80455A58 004054 0004+00 2/2 0/0 0/0 .sdata2 @5342 */
-SECTION_SDATA2 static f32 lit_5342 = 0.5f;
-
-/* 80455A58-80455A5C 004058 0004+00 1/1 0/0 0/0 .sdata2 @5343 */
-SECTION_SDATA2 static f32 lit_5343 = 7.0f / 10.0f;
-
-/* 80455A5C-80455A60 00405C 0004+00 1/1 0/0 0/0 .sdata2 @5344 */
-SECTION_SDATA2 static f32 lit_5344 = 4.0f / 5.0f;
-
-/* 80455A60-80455A64 004060 0004+00 1/1 0/0 0/0 .sdata2 @5345 */
-SECTION_SDATA2 static f32 lit_5345 = 1.0f / 10.0f;
-
-/* 80455A64-80455A68 004064 0004+00 1/1 0/0 0/0 .sdata2 @5346 */
-SECTION_SDATA2 static f32 lit_5346 = 2.0f / 25.0f;
/* 802B6AF8-802B995C 2B1438 2E64+00 8/0 1/1 0/0 .text setSceneName__10Z2SceneMgrFPcll */
-void Z2SceneMgr::setSceneName(char* param_0, s32 param_1, s32 param_2) {
- // NONMATCHING
-}
+// NONMATCHING JSULink<JAIStream>::getNext() inlining
+void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
+ JAISoundID bgm_id = -1;
+ JAISound* sound;
+ int spot = 0;
+ u8 se_wave1 = 0;
+ u8 se_wave2 = 0;
+ u8 bgm_wave1 = 0;
+ u8 bgm_wave2 = 0;
+ u8 demo_wave = 0;
+ bool bVar6 = false;
+ bool height_vol_mod = false;
+ bool field_bgm_play = false;
+ bool time_proc_vol_mod = false;
+ bool bVar2 = false;
+ field_0x1b = false;
+ f32 fVar1 = -1.0f;
+
+ Z2GetSeqMgr()->resetBattleBgmParams();
+ Z2GetSeqMgr()->setWindStoneVol(1.0f, 0);
+ Z2GetSeqMgr()->setTwilightGateVol(1.0f);
+ Z2GetSeMgr()->resetCrowdSize();
+ Z2GetSoundObjMgr()->setGhostEnemyState(0);
+ Z2GetSeMgr()->resetModY();
+ if (Z2GetStatusMgr()->getDemoStatus() == 8) {
+ Z2GetStatusMgr()->setDemoName("force_end");
+ }
-//! @meme this looks to be non-inlined here because @ref setSceneName is too large*
-extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet) {
- this_->mId = soundIdToSet.mId;
-}
+ if (spotName != NULL) {
+ for (spot = 0; spot < (int)ARRAY_SIZE(sSpotName); spot++) {
+ if (!strcmp(spotName, sSpotName[spot])) {
+ break;
+ }
+ }
+ if (spot == (int)ARRAY_SIZE(sSpotName)) {
+ spot = SPOT_NONE;
+ }
+ }
-/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */
-void Z2SeqMgr::setFieldBgmPlay(bool param_1) {
- mFlags.flag5 = param_1;
-}
+ switch (spot) {
+ case SPOT_ENEMY_TEST:
+ bgm_wave2 = 2;
+ if (room < 30) {
+ se_wave1 = 0x8a;
+ } else {
+ se_wave1 = 0x8b;
+ }
+ break;
+
+ case SPOT_ORDON_RANCH:
+ if (layer == 1) {
+ if (dComIfGs_isSaveSwitch(0x67)) {
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ } else {
+ if (layer == 8) {
+ demo_wave = 0x5c;
+ }
+ bgm_id = Z2BGM_RANCH;
+ bgm_wave1 = 1;
+ bgm_wave2 = 2;
+ time_proc_vol_mod = true;
+ }
+ se_wave1 = 0x26;
+ se_wave2 = 0x25;
+ field_0x1b = true;
+ break;
+
+ case SPOT_ORDON_VILLAGE:
+ field_0x1b = true;
+ se_wave1 = 0x26;
+ if (room == 0) {
+ se_wave2 = 0x27;
+ switch (layer) {
+ case 1:
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ break;
+ case 8:
+ bgm_id = 0x2000011;
+ demo_wave = 0x64;
+ break;
+ case 10:
+ case 11:
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ break;
+ default:
+ bgm_id = Z2BGM_TOAL_VILLEGE;
+ bgm_wave1 = 3;
+ bgm_wave2 = 4;
+ time_proc_vol_mod = true;
+ break;
+ }
+ } else if (room == 1) {
+ se_wave2 = 0x28;
+ switch (layer) {
+ case 1:
+ field_0x1b = false;
+ if (dComIfGs_isSaveSwitch(0x67)) {
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ break;
+ case 12:
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ break;
+ case 5:
+ case 8:
+ bgm_id = Z2BGM_EVENT01;
+ bgm_wave1 = 5;
+ break;
+ case 9:
+ demo_wave = 0x5c;
+ break;
+ case 3:
+ bVar2 = true;
+ if (!dComIfGs_isSaveSwitch(0xa)) {
+ break;
+ }
+ // fallthrough
+ case 4:
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
+ && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
+ {
+ bgm_wave1 = 0x55;
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[194])) {
+ bgm_id = Z2BGM_EVENT05;
+ }
+ break;
+ }
+ // fallthrough
+ default:
+ bgm_id = Z2BGM_TOAL_VILLEGE;
+ bgm_wave1 = 3;
+ time_proc_vol_mod = true;
+ break;
+ }
+ }
+ break;
+
+ case SPOT_ORDON_INTERIOR:
+ se_wave1 = 0x26;
+ switch (room) {
+ case 0:
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ bgm_wave2 = 9;
+ se_wave2 = 0x2a;
+ break;
+ case 1:
+ if (layer == 0) {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[136])) {
+ bgm_id = Z2BGM_SHOP01;
+ } else {
+ bgm_id = Z2BGM_SHOP02;
+ }
+ bgm_wave1 = 7;
+ } else if (layer == 2) {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
+ bgm_id = Z2BGM_SHOP01;
+ bgm_wave1 = 7;
+ } else {
+ bgm_id = Z2BGM_ROOM_2;
+ bgm_wave1 = 0x35;
+ }
+ }
+ se_wave2 = 0x29;
+ break;
+ case 2:
+ if (layer == 0 || layer == 3) {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ } else if (layer == 1) {
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(1);
+ } else if (layer == 2) {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ } else {
+ bgm_id = Z2BGM_ROOM_2;
+ bgm_wave1 = 0x35;
+ }
+ }
+ se_wave2 = 0x2c;
+ break;
+ case 3:
+ case 4:
+ case 7:
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ break;
+ case 5:
+ if (layer == 0) {
+ if (dComIfGs_isSaveSwitch(0x67)) {
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(1);
+ } else {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ }
+ } else {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ } else {
+ bgm_id = Z2BGM_ROOM_2;
+ bgm_wave1 = 0x35;
+ }
+ }
+ se_wave2 = 0x2b;
+ }
+ field_0x1b = true;
+ break;
+
+ case SPOT_ORDON_SPRING:
+ se_wave1 = 0x26;
+ se_wave2 = 0x2d;
+ switch (layer) {
+ case 4:
+ field_0x1b = false;
+ bVar2 = true;
+ if (dComIfGs_isSaveSwitch(0x67)) {
+ bgm_id = Z2BGM_TOAL_NIGHT;
+ bgm_wave1 = 6;
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ break;
+ case 7:
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ break;
+ case 8:
+ demo_wave = 0x65;
+ break;
+ case 10:
+ demo_wave = 0x69;
+ break;
+ case 9:
+ case 11:
+ demo_wave = 0x6a;
+ break;
+ case 12:
+ demo_wave = 0x85;
+ break;
+ case 13:
+ case 14:
+ demo_wave = 0x5c;
+ break;
+ case 3:
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
+ && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
+ {
+ bgm_id = Z2BGM_EVENT05;
+ bgm_wave1 = 0x55;
+ break;
+ }
+ // fallthrough
+ default:
+ bVar2 = true;
+ break;
+ }
+ break;
+
+ case SPOT_TWILIGHT_HYRULE_CASTLE:
+ se_wave1 = 0x2e;
+ if (inDarkness) {
+ se_wave2 = 0x30;
+ if (room == 0) {
+ if (layer == 11) {
+ demo_wave = 0x66;
+ } else if (layer == 7 || layer == 10) {
+ demo_wave = 0x67;
+ } else {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[42])) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ }
+ }
+ } else if (room == 3 && (layer == 8 || layer == 12)) {
+ demo_wave = 0x68;
+ } else if ((room == 3 && layer == 10) || (room == 2 && layer == 8)) {
+ bgm_id = Z2BGM_DEMO08;
+ bgm_wave1 = 0x21;
+ demo_wave = 0x69;
+ } else {
+ if (room == 3 && layer == 14) {
+ bVar2 = true;
+ }
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ }
+ } else {
+ if (room == 3 && layer == 9) {
+ demo_wave = 0x75;
+ }
+ se_wave2 = 0x2f;
+ }
+ break;
-/* 802B9978-802B9988 2B42B8 0010+00 1/1 0/0 0/0 .text isActive__12JAIStreamMgrCFv */
-bool JAIStreamMgr::isActive() const {
- // NONMATCHING
-}
+ case SPOT_CASTLE_THRONE_ROOM:
+ if (layer == 8) {
+ demo_wave = 0x68;
+ } else if (layer == 9) {
+ demo_wave = 0x7f;
+ }
+ break;
+
+ case SPOT_CORO_SHOP:
+ se_wave1 = 0x31;
+ if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x33;
+ } else {
+ if (layer == 1) {
+ bgm_id = Z2BGM_EVENT05;
+ bgm_wave1 = 0x55;
+ se_wave2 = 0x32;
+ } else {
+ bgm_id = Z2BGM_FILONE_FOREST;
+ bgm_wave1 = 0xf;
+ time_proc_vol_mod = true;
+ Z2GetSeqMgr()->changeBgmStatus(1);
+ se_wave2 = 0x32;
+ }
+ }
+ break;
+
+ case SPOT_FARON_WOODS:
+ se_wave1 = 0x31;
+ if (layer == 11) {
+ demo_wave = 0x6c;
+ inDarkness = false;
+ } else if (layer == 9) {
+ demo_wave = 0x6a;
+ } else if (inDarkness) {
+ if (layer == 7) {
+ demo_wave = 0x78;
+ } else if (layer == 8) {
+ demo_wave = 0x66;
+ } else if (layer == 10) {
+ bgm_id = Z2BGM_DEMO10;
+ bgm_wave1 = 0x21;
+ demo_wave = 0x6b;
+ } else {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ }
+ se_wave2 = 0x33;
+ } else {
+ se_wave2 = 0x32;
+ switch (layer) {
+ case 4:
+ case 6:
+ case 12:
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ break;
+ case 13:
+ demo_wave = 0x5c;
+ break;
+ case 1:
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
+ && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
+ {
+ bgm_id = Z2BGM_EVENT05;
+ bgm_wave1 = 0x55;
+ }
+ break;
+ default:
+ bgm_id = Z2BGM_FILONE_FOREST;
+ bgm_wave1 = 0xf;
+ time_proc_vol_mod = true;
+ if (room == 0xe) {
+ Z2GetSeqMgr()->changeBgmStatus(1);
+ } else {
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ break;
+ }
+ }
+ break;
+
+ case SPOT_KAKARIKO_VILLAGE:
+ se_wave1 = 0x34;
+ if (layer == 8) {
+ demo_wave = 0x6e;
+ inDarkness = false;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x36;
+ } else {
+ se_wave2 = 0x35;
+ switch (layer) {
+ case 6:
+ case 7:
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ break;
+ case 9:
+ demo_wave = 0x6e;
+ break;
+ case 10:
+ demo_wave = 0x6f;
+ break;
+ case 11:
+ bVar2 = true;
+ demo_wave = 0x70;
+ break;
+ case 12:
+ demo_wave = 0x71;
+ break;
+ case 13:
+ demo_wave = 0x83;
+ bgm_wave1 = 0x2c;
+ break;
+ case 0:
+ bgm_id = Z2BGM_KAKARIKO;
+ bgm_wave1 = 0x10;
+ bgm_wave2 = 0x18;
+ demo_wave = 0x84;
+ time_proc_vol_mod = true;
+ break;
+ case 1:
+ bgm_id = Z2BGM_EVENT02;
+ bgm_wave1 = 0x1c;
+ bgm_wave2 = 0x18;
+ break;
+ case 4:
+ bVar2 = true;
+ bgm_id = Z2BGM_LUTERA2;
+ bgm_wave1 = 0x2c;
+ break;
+ default:
+ bgm_id = Z2BGM_KAKARIKO;
+ bgm_wave1 = 0x10;
+ bgm_wave2 = 0x23;
+ time_proc_vol_mod = true;
+ break;
+ }
+ }
+ break;
+
+ case SPOT_KAKARIKO_INTERIOR:
+ se_wave1 = 0x34;
+ if (inDarkness) {
+ se_wave2 = 0x36;
+ if (room == 0 && layer == 8) {
+ demo_wave = 0x6d;
+ bgm_wave1 = 0xe;
+ } else {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ if (room == 5) {
+ bgm_wave2 = 0x1c;
+ }
+ }
+ } else {
+ switch (room) {
+ case 1:
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
+ bgm_id = Z2BGM_SHOP01;
+ } else {
+ bgm_id = Z2BGM_SHOP02;
+ }
+ bgm_wave1 = 7;
+ break;
+ case 2:
+ if (layer == 13) {
+ demo_wave = 0x83;
+ } else {
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ }
+ }
+ break;
+ case 3:
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[109])) {
+ bgm_id = Z2BGM_SHOP_MARO;
+ bgm_wave1 = 0x33;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[85])) {
+ bgm_id = Z2BGM_SHOP01;
+ bgm_wave1 = 7;
+ } else {
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ }
+ break;
+ case 0:
+ if (layer == 9) {
+ demo_wave = 0x85;
+ } else {
+ bgm_id = Z2BGM_CHURCH1;
+ bgm_wave1 = 0x2f;
+ }
+ break;
+ case 4:
+ case 5:
+ case 6:
+ break;
+ }
+ se_wave2 = 0x86;
+ }
+ break;
+
+ case SPOT_SANCTUARY_BASEMENT:
+ se_wave1 = 0x34;
+ if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x36;
+ } else {
+ bgm_id = Z2BGM_CHURCH2;
+ bgm_wave1 = 0x30;
+ se_wave2 = 0x86;
+ Z2GetSeqMgr()->muteSceneBgm(30, 0.5f);
+ }
+ break;
+
+ case SPOT_KAKARIKO_GRAVEYARD:
+ se_wave1 = 0x34;
+ if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x36;
+ } else {
+ if (layer == 4) {
+ bgm_id = Z2BGM_LUTERA2;
+ bgm_wave1 = 0x2c;
+ } else {
+ bgm_id = Z2BGM_CHURCH2;
+ bgm_wave1 = 0x30;
+ Z2GetSeqMgr()->unMuteSceneBgm(30);
+ time_proc_vol_mod = true;
+ bgm_wave2 = 0x2c;
+ }
+ se_wave2 = 0x37;
+ }
+ break;
+
+ case SPOT_DEATH_MOUNTAIN:
+ se_wave1 = 0x34;
+ if (layer == 8) {
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x39;
+ } else {
+ bgm_id = Z2BGM_DEATH_MOUNTAIN01;
+ bgm_wave1 = 0x11;
+ se_wave2 = 0x38;
+ time_proc_vol_mod = true;
+ if (room == 3) {
+ height_vol_mod = true;
+ }
+ }
+ break;
+
+ case SPOT_HIDDEN_VILLAGE:
+ if (layer == 0) {
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ if (dComIfGs_isSwitch(0x2e, 0) && !dComIfGs_isSwitch(0x11, 0)) {
+ bgm_id = Z2BGM_HIDDEN_VILLAGE;
+ }
+ field_0x1b = true;
+ } else if (layer == 1) {
+ Z2GetSeqMgr()->bgmStop(33, 0);
+ }
+ bgm_wave1 = 0x31;
+ se_wave1 = 0x34;
+ se_wave2 = 0x4f;
+ break;
+
+ case SPOT_IMPAZ_HOUSE:
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ se_wave1 = 0x34;
+ se_wave2 = 0x4f;
+ field_0x1b = true;
+ break;
+
+ case SPOT_SUMO_HALL:
+ if (layer == 8) {
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ } else {
+ bgm_id = Z2BGM_DEATH_MOUNTAIN02;
+ bgm_wave1 = 0x11;
+ se_wave1 = 0x34;
+ bgm_wave2 = 0x12;
+ se_wave2 = 0x3a;
+ }
+ break;
+
+ case SPOT_LAKE_HYLIA:
+ se_wave1 = 0x3b;
+ if (layer == 8) {
+ demo_wave = 0x72;
+ inDarkness = false;
+ } else if (room == 1 && layer == 9) {
+ demo_wave = 0x74;
+ } else if (layer == 10 || layer == 11) {
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x3d;
+ if (layer == 14) {
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 10000, 40000, 50000);
+ } else {
+ if (dComIfGs_isSaveSwitch(0xf) && !dComIfGs_isSaveSwitch(0x10)) {
+ field_0x1b = true;
+ }
+ bgm_wave2 = 0x4d;
+ }
+ } else {
+ if (room == 0) {
+ bgm_id = Z2BGM_LAKE;
+ bgm_wave1 = 0x34;
+ height_vol_mod = true;
+ time_proc_vol_mod = true;
+ }
+ se_wave2 = 0x3c;
+ }
+ break;
+
+ case SPOT_UPPER_ZORAS_RIVER:
+ se_wave1 = 0x55;
+ if (layer == 8) {
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x3f;
+ } else {
+ bgm_wave1 = 0x34;
+ se_wave2 = 0x3e;
+ height_vol_mod = true;
+ }
+ break;
-/* 802B9988-802B9994 2B42C8 000C+00 1/1 0/0 0/0 .text getID__8JAISoundCFv */
-// JAISoundID JAISound::getID() const {
-extern "C" void getID__8JAISoundCFv() {
- // NONMATCHING
-}
+ case SPOT_FISHING_POND:
+ if (layer == 8) {
+ demo_wave = 0x7f;
+ se_wave1 = 0;
+ se_wave2 = 0;
+ } else {
+ se_wave1 = 0x3b;
+ bgm_id = Z2BGM_FISHING;
+ bgm_wave1 = 0x2b;
+ se_wave2 = 0x3e;
+ height_vol_mod = true;
+ time_proc_vol_mod = true;
+ }
+ break;
+
+ case SPOT_HENA_CABIN:
+ se_wave1 = 0x3b;
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ bgm_wave2 = 0x47;
+ se_wave2 = 0x3e;
+ break;
+
+ case SPOT_ZORAS_RIVER:
+ se_wave1 = 0x55;
+ if (inDarkness) {
+ bgm_id = Z2BGM_CARGO_GAME_TW;
+ bgm_wave1 = 0x24;
+ se_wave2 = 0x41;
+ field_0x1b = true;
+ } else {
+ if (layer == 4) {
+ bgm_id = 0x200000b;
+ } else if (layer == 1) {
+ bgm_id = Z2BGM_MINIGAME_ROOM;
+ bgm_wave1 = 0x47;
+ bgm_wave2 = 0x42;
+ } else if (layer == 0 || layer == 2) {
+ bgm_wave2 = 0x57;
+ }
+ se_wave2 = 0x40;
+ }
+ break;
+
+ case SPOT_ZORAS_DOMAIN:
+ se_wave1 = 0x3b;
+ if (layer == 8 || layer == 9) {
+ demo_wave = 0x82;
+ } else if (layer == 10 || layer == 11) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0x0e;
+ bgm_wave2 = 0x2c;
+ se_wave2 = 0x3f;
+ } else {
+ bgm_id = Z2BGM_ZORA_VILLAGE;
+ bgm_wave1 = 0x20;
+ se_wave2 = 0x3e;
+ height_vol_mod = true;
+ time_proc_vol_mod = true;
+ }
+ break;
+
+ case SPOT_CASTLE_TOWN:
+ se_wave1 = 0x42;
+ if (layer == 8) {
+ demo_wave = 0x68;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x44;
+ } else {
+ se_wave2 = 0x43;
+ time_proc_vol_mod = true;
+ if (room == 1 && layer == 9) {
+ demo_wave = 0x7a;
+ } else if (layer == 10) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else if (!(layer == 1 && room == 1
+ && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[542])))
+ {
+ bgm_id = Z2BGM_CASTLE_TOWN;
+ bgm_wave1 = 0x25;
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ }
+ }
+ break;
-/* 802B9994-802B999C 2B42D4 0008+00 1/1 0/0 0/0 .text getFirst__19JSUList<9JAIStream>CFv
- */
-extern "C" void func_802B9994(void* _this) /* const */ {
- // NONMATCHING
-}
+ case SPOT_CASTLE_TOWN_INTERIOR:
+ if (room == 6) {
+ se_wave1 = 0x2e;
+ se_wave2 = 0x2f;
+ } else {
+ se_wave1 = 0x42;
+ if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x44;
+ } else {
+ se_wave2 = 0x5b;
+ if (room == 5) {
+ if (layer == 8) {
+ demo_wave = 0x73;
+ } else if (layer == 9) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else {
+ bgm_id = Z2BGM_INDOOR_03;
+ bgm_wave1 = 8;
+ }
+ }
+ }
+ }
+ break;
+
+ case SPOT_CASTLE_TOWN_SHOPS:
+ se_wave1 = 0x42;
+ se_wave2 = 0x5b;
+ switch (room) {
+ case 0:
+ if (layer == 1) {
+ bgm_id = Z2BGM_SHOP_MARO;
+ bgm_wave1 = 0x33;
+ } else {
+ bgm_id = Z2BGM_SHOP_CELEB;
+ bgm_wave1 = 0x32;
+ }
+ break;
+ case 1:
+ bgm_id = Z2BGM_FORTUNE;
+ bgm_wave1 = 0x37;
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ break;
+ case 2:
+ bgm_id = Z2BGM_INDOOR;
+ bgm_wave1 = 8;
+ break;
+ case 3:
+ bgm_id = Z2BGM_INDOOR_04;
+ bgm_wave1 = 0x56;
+ break;
+ case 4:
+ bgm_id = Z2BGM_CASTLE_TOWN;
+ bgm_wave1 = 0x25;
+ Z2GetSeqMgr()->changeBgmStatus(5);
+ break;
+ case 5:
+ bgm_id = Z2BGM_SHOP02;
+ bgm_wave1 = 7;
+ break;
+ }
+ break;
-/* 802B999C-802B99AC 2B42DC 0010+00 1/1 0/0 0/0 .text dComIfGs_getStartPoint__Fv */
-static void dComIfGs_getStartPoint() {
- // NONMATCHING
-}
+ case SPOT_STAR_TENT:
+ se_wave1 = 0x42;
+ se_wave2 = 0x87;
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[289])) {
+ bgm_id = Z2BGM_MINIGAME_ROOM;
+ }
+ bgm_wave1 = 0x46;
+ break;
+
+ case SPOT_SACRED_GROVE:
+ se_wave1 = 0x31;
+ bgm_wave2 = 0x1b;
+ se_wave2 = 0x45;
+ if (room == 3) {
+ bgm_id = Z2BGM_HOLY_FOREST;
+ bgm_wave1 = 0x2a;
+ } else if (room == 2) {
+ if (layer == 10) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else {
+ bgm_id = Z2BGM_TEMPLE_OF_TIME;
+ bgm_wave1 = 0x3e;
+ }
+ } else if (room == 1) {
+ if (layer == 0 || layer == 9) {
+ demo_wave = 0x76;
+ } else if (layer == 8 || layer == 11) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else {
+ bgm_wave2 = 0x40;
+ }
+ }
+ break;
-/* 802B99AC-802B9A24 2B42EC 0078+00 1/1 0/0 0/0 .text unMuteSceneBgm__8Z2SeqMgrFUl */
-void Z2SeqMgr::unMuteSceneBgm(u32 param_0) {
- // NONMATCHING
-}
+ case SPOT_SNOWPEAK:
+ if (layer == 8) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else {
+ bgm_id = Z2BGM_SNOW_MOUNTAIN;
+ bgm_wave1 = 0x2d;
+ bgm_wave2 = 0x3a;
+ se_wave1 = 0x46;
+ se_wave2 = 0x47;
+ }
+ height_vol_mod = true;
+ break;
+
+ case SPOT_GERUDO_DESERT:
+ se_wave1 = 0x48;
+ se_wave2 = 0x49;
+ if (layer == 8 || layer == 9 || layer == 10) {
+ demo_wave = 0x77;
+ } else if (layer == 11) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else {
+ bgm_id = Z2BGM_DESERT;
+ bgm_wave1 = 0x1f;
+ }
+ break;
-/* 802B9A24-802B9A88 2B4364 0064+00 1/1 0/0 0/0 .text muteSceneBgm__8Z2SeqMgrFUlf */
-void Z2SeqMgr::muteSceneBgm(u32 param_0, f32 param_1) {
- // NONMATCHING
-}
+ case SPOT_ARBITERS_GROUNDS_EXTERIOR:
+ if (room == 1) {
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 1000, 2000, 9000);
+ bgm_wave1 = 0x3d;
+ bgm_wave2 = 0x1c;
+ }
+ se_wave1 = 0x48;
+ se_wave2 = 0x49;
+ break;
+
+ case SPOT_MIRROR_CHAMBER:
+ switch (layer) {
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ demo_wave = 0x80;
+ break;
+ case 11:
+ case 12:
+ demo_wave = 0x78;
+ break;
+ case 13:
+ demo_wave = 0x7e;
+ break;
+ default:
+ bVar2 = true;
+ bgm_id = Z2BGM_DESERT;
+ bgm_wave1 = 0x1f;
+ break;
+ }
+ se_wave1 = 0x48;
+ se_wave2 = 0x49;
+ break;
+
+ case SPOT_HYRULE_FIELD:
+ se_wave1 = 0x4a;
+ if (room == 10 && layer == 11) {
+ demo_wave = 0x74;
+ fVar1 = 0.7f;
+ } else if (layer == 9 || layer == 10) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else if (layer == 2 || layer == 3) {
+ bgm_id = Z2BGM_HORSE_BATTLE;
+ bgm_wave1 = 0xd;
+ se_wave1 = 0x54;
+ se_wave2 = 0x4e;
+ field_0x1b = true;
+ fVar1 = 1.0f;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ } else if (inDarkness) {
+ if (layer == 12) {
+ demo_wave = 0x6a;
+ } else {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ }
+ se_wave2 = 0x4c;
+ if (room == 13 && layer == 14) {
+ bgm_wave2 = 0x1c;
+ }
+ } else {
+ field_bgm_play = true;
+ if (Z2GetStatusMgr()->checkDayTime()) {
+ bgm_id = Z2BGM_FIELD_LINK_DAY;
+ } else {
+ bgm_id = Z2BGM_FIELD_LINK_NIGHT;
+ }
+ bgm_wave1 = 0x19;
+ switch (room) {
+ case 2:
+ case 3:
+ case 4:
+ se_wave2 = 0x5e;
+ break;
+ case 0:
+ case 5:
+ case 7:
+ se_wave2 = 0x5f;
+ break;
+ case 9:
+ case 10:
+ case 11:
+ se_wave2 = 0x60;
+ break;
+ case 12:
+ case 13:
+ case 14:
+ se_wave2 = 0x61;
+ break;
+ case 1:
+ case 6:
+ case 15:
+ se_wave2 = 0x4b;
+ break;
+ }
+ switch (room) {
+ case 0:
+ case 3:
+ case 6:
+ case 10:
+ case 13:
+ fVar1 = 1.0f;
+ break;
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ case 14:
+ case 15:
+ fVar1 = 0.7f;
+ break;
+ case 7:
+ case 9:
+ case 11:
+ case 12:
+ fVar1 = 0.8f;
+ break;
+ }
+ }
+ break;
+
+ case SPOT_CASTLE_TOWN_GATES:
+ se_wave1 = 0x4a;
+ if (layer == 8) {
+ demo_wave = 0x73;
+ fVar1 = 1.0f;
+ } else if (layer == 9) {
+ demo_wave = 0x75;
+ fVar1 = 0.5f;
+ } else if (layer == 10) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ se_wave2 = 0x4c;
+ } else {
+ if (room == 8) {
+ se_wave2 = 0x62;
+ fVar1 = 0.8f;
+ } else if (room == 16) {
+ se_wave2 = 0x88;
+ fVar1 = 0.8f;
+ } else if (room == 17) {
+ se_wave2 = 0x89;
+ fVar1 = 1.0f;
+ }
+ field_bgm_play = true;
+ if (Z2GetStatusMgr()->checkDayTime()) {
+ bgm_id = Z2BGM_FIELD_LINK_DAY;
+ } else {
+ bgm_id = Z2BGM_FIELD_LINK_NIGHT;
+ }
+ bgm_wave1 = 0x19;
+ }
+ break;
+
+ case SPOT_HYLIA_BRIDGE_BATTLE:
+ se_wave1 = 0x54;
+ bgm_wave1 = 0x3d;
+ se_wave2 = 0x4e;
+ fVar1 = 1.0f;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_ELDIN_BRIDGE_BATTLE:
+ se_wave1 = 0x4a;
+ if (layer == 11) {
+ se_wave1 = 0;
+ se_wave2 = 0;
+ demo_wave = 0x7f;
+ } else if (layer == 10) {
+ bgm_wave1 = 0x59;
+ } else if (layer != 8 && layer != 9) {
+ if (layer == 0) {
+ bgm_wave1 = 13;
+ } else if (layer == 4) {
+ bgm_wave1 = 0x3d;
+ }
+ fVar1 = 1.0f;
+ se_wave2 = 0x4d;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_SHADES_REALM:
+ se_wave1 = 0x4a;
+ if (dComIfGs_getStartPoint() == 2) {
+ bgm_wave2 = 0x50;
+ } else if (dComIfGs_getStartPoint() == 3) {
+ bgm_wave2 = 0x4f;
+ } else if (dComIfGs_getStartPoint() == 4) {
+ bgm_wave2 = 0x3b;
+ } else if (dComIfGs_getStartPoint() == 5) {
+ bgm_wave2 = 0x51;
+ } else if (dComIfGs_getStartPoint() == 6) {
+ bgm_wave2 = 0x52;
+ } else if (dComIfGs_getStartPoint() == 7) {
+ bgm_wave2 = 0x53;
+ } else {
+ bgm_wave1 = 0x44;
+ }
+ se_wave2 = 0x5d;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_FOREST_TEMPLE:
+ bgm_id = Z2BGM_DUNGEON_FOREST;
+ bgm_wave1 = 0xa;
+ bgm_wave2 = 0x40;
+ se_wave1 = 1;
+ se_wave2 = 2;
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ break;
+
+ case SPOT_FOREST_TEMPLE_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_FOREST;
+ bgm_wave1 = 0xa;
+ bgm_wave2 = 0xb;
+ se_wave1 = 1;
+ se_wave2 = 3;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ Z2GetSeqMgr()->unMuteSceneBgm(struct_80450860);
+ break;
+
+ case SPOT_FOREST_TEMPLE_BOSS:
+ se_wave1 = 1;
+ if (dComIfGs_isStageSwitch(2, 1)) {
+ bgm_id = Z2BGM_DUNGEON_FOREST;
+ bgm_wave1 = 0xa;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[55])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0xc;
+ se_wave2 = 4;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ Z2GetSeqMgr()->unMuteSceneBgm(struct_80450860);
+ break;
+
+ case SPOT_GORON_MINES:
+ bgm_id = Z2BGM_DUNGEON_LV2;
+ bgm_wave1 = 0x13;
+ bgm_wave2 = 0x3c;
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ se_wave1 = 5;
+ se_wave2 = 6;
+ break;
+
+ case SPOT_GORON_MINES_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV2;
+ bgm_wave1 = 0x13;
+ se_wave1 = 5;
+ se_wave2 = 7;
+ bgm_wave2 = 0x14;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_GORON_MINES_BOSS:
+ se_wave1 = 5;
+ if (dComIfGs_isStageSwitch(3, 0x7c)) {
+ bgm_id = Z2BGM_DUNGEON_LV2;
+ bgm_wave1 = 0x13;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x16;
+ se_wave2 = 8;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_LAKEBED_TEMPLE:
+ bgm_id = Z2BGM_DUNGEON_LV3;
+ bgm_wave1 = 0x15;
+ bgm_wave2 = 0x40;
+ se_wave1 = 9;
+ se_wave2 = 0xa;
+ break;
+
+ case SPOT_LAKEBED_TEMPLE_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV3;
+ bgm_wave1 = 0x15;
+ bgm_wave2 = 0x17;
+ se_wave1 = 9;
+ se_wave2 = 0xb;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_LAKEBED_TEMPLE_BOSS:
+ se_wave1 = 9;
+ if (dComIfGs_isStageSwitch(4, 0xe)) {
+ bgm_id = Z2BGM_DUNGEON_LV3;
+ bgm_wave1 = 0x15;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[78])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x1e;
+ se_wave2 = 0xc;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_ARBITERS_GROUNDS:
+ bgm_id = Z2BGM_DUNGEON_LV4;
+ bgm_wave1 = 0x1a;
+ bgm_wave2 = 0x41;
+ se_wave1 = 0xd;
+ se_wave2 = 0xe;
+ if (room == 1) {
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_ARBITERS_GROUNDS_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV4;
+ bgm_wave1 = 0x1a;
+ bgm_wave2 = 0x22;
+ se_wave1 = 0xd;
+ se_wave2 = 0xf;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_ARBITERS_GROUNDS_BOSS:
+ se_wave1 = 0xd;
+ if (dComIfGs_isStageSwitch(0xa, 0xa)) {
+ bgm_id = Z2BGM_DUNGEON_LV4;
+ bgm_wave1 = 0x1a;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[265])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x4c;
+ se_wave2 = 0x10;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_SNOWPEAK_RUINS:
+ bgm_id = Z2BGM_DUNGEON_LV5;
+ bgm_wave1 = 0x1d;
+ bgm_wave2 = 0x40;
+ se_wave1 = 0x11;
+ se_wave2 = 0x12;
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ break;
+
+ case SPOT_SNOWPEAK_RUINS_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV5;
+ bgm_wave1 = 0x1d;
+ bgm_wave2 = 0x38;
+ se_wave1 = 0x11;
+ se_wave2 = 0x13;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ break;
+
+ case SPOT_SNOWPEAK_RUINS_BOSS:
+ Z2GetSeqMgr()->unMuteSceneBgm(60);
+ se_wave1 = 0x11;
+ if (dComIfGs_isStageSwitch(8, 0x19)) {
+ bgm_id = Z2BGM_DUNGEON_LV5;
+ bgm_wave1 = 0x1d;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x2e;
+ se_wave2 = 0x14;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_TEMPLE_OF_TIME:
+ bgm_id = Z2BGM_DUNGEON_LV6;
+ bgm_wave1 = 0x26;
+ bgm_wave2 = 0x40;
+ se_wave1 = 0x15;
+ se_wave2 = 0x16;
+ break;
+
+ case SPOT_TEMPLE_OF_TIME_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV6;
+ bgm_wave1 = 0x26;
+ bgm_wave2 = 0x3f;
+ se_wave1 = 0x15;
+ se_wave2 = 0x17;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_TEMPLE_OF_TIME_BOSS:
+ se_wave1 = 0x15;
+ if (dComIfGs_isStageSwitch(7, 0x18)) {
+ bgm_id = Z2BGM_DUNGEON_LV6;
+ bgm_wave1 = 0x26;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x4e;
+ se_wave2 = 0x18;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
-/* 802B9A88-802B9A94 2B43C8 000C+00 1/1 0/0 0/0 .text __as__10JAISoundIDFRC10JAISoundID
- */
-extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0) {
- // NONMATCHING
-}
+ case SPOT_CITY_IN_THE_SKY:
+ if (room == 16) {
+ bgm_id = Z2BGM_OBACHAN;
+ bgm_wave1 = 0x40;
+ } else {
+ bgm_id = Z2BGM_DUNGEON_LV7;
+ bgm_wave1 = 0x27;
+ }
+ se_wave1 = 0x19;
+ se_wave2 = 0x1a;
+ break;
+
+ case SPOT_CITY_IN_THE_SKY_MINIBOSS:
+ bgm_id = Z2BGM_DUNGEON_LV7;
+ bgm_wave1 = 0x27;
+ bgm_wave2 = 0x43;
+ se_wave1 = 0x19;
+ se_wave2 = 0x1b;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_CITY_IN_THE_SKY_BOSS:
+ se_wave1 = 0x19;
+ if (dComIfGs_isStageSwitch(0x16, 0x25)) {
+ bgm_id = Z2BGM_DUNGEON_LV7;
+ bgm_wave1 = 0x27;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268])) {
+ bgm_id = 0x200005b;
+ } else {
+ bgm_wave1 = 0x1e;
+ se_wave2 = 0x1c;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ }
+ break;
+
+ case SPOT_PALACE_OF_TWILIGHT:
+ if (layer == 8) {
+ if (room == 0 || room == 9) {
+ demo_wave = 0x77;
+ } else if (room == 11) {
+ demo_wave = 0x81;
+ }
+ } else if (layer == 9) {
+ demo_wave = 0x78;
+ } else {
+ bVar2 = true;
+ bgm_id = Z2BGM_DUNGEON_LV8;
+ bgm_wave1 = 0x28;
+ Z2GetSeqMgr()->changeBgmStatus(room);
+ }
+ se_wave1 = 0x1d;
+ se_wave2 = 0x1e;
+ break;
+
+ case SPOT_PALACE_OF_TWILIGHT_MINIBOSS_A:
+ case SPOT_PALACE_OF_TWILIGHT_MINIBOSS_B:
+ bgm_id = Z2BGM_DUNGEON_LV8;
+ bgm_wave1 = 0x28;
+ bgm_wave2 = 0x48;
+ se_wave1 = 0x1d;
+ se_wave2 = 0x1f;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_PALACE_OF_TWILIGHT_THRONE_ROOM:
+ if (layer == 8) {
+ demo_wave = 0x81;
+ } else if (layer == 9) {
+ demo_wave = 0x79;
+ } else if (dComIfGs_isStageSwitch(0x17, 0x16)) {
+ bgm_id = Z2BGM_DUNGEON_LV8;
+ bgm_wave1 = 0x28;
+ } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[570])) {
+ bgm_id = 0x200005b;
+ JSUList<JAIStream>* stream_list = Z2GetSoundMgr()->getStreamMgr()->getStreamList();
+ JSULink<JAIStream>* stream;
+ for (stream = stream_list->getFirst(); stream != NULL; stream = stream->getNext()) {
+ if (stream->getObject()->getID() == 0x2000046) {
+ bgm_id = -1;
+ }
+ }
+ }
+ break;
+
+ case SPOT_PALACE_OF_TWILIGHT_BOSS:
+ se_wave1 = 0x1d;
+ bgm_wave1 = 0x39;
+ se_wave2 = 0x20;
+ if (room == 50) {
+ inDarkness = true;
+ }
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_HYRULE_CASTLE:
+ if (room >= 1 && room <= 6) {
+ bgm_id = 0x2000040;
+ bgm_wave2 = 0x58;
+ } else if (room == 8 || room == 12) {
+ bgm_id = Z2BGM_DUNGEON_LV9_02;
+ bgm_wave1 = 0x29;
+ height_vol_mod = true;
+ } else {
+ Z2GetSeqMgr()->bgmStop(45, 0);
+ bgm_wave2 = 0x3d;
+ }
+ se_wave1 = 0x21;
+ se_wave2 = 0x22;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_FINAL_BATTLE_THRONE_ROOM:
+ if (room == 50) {
+ if (layer == 8) {
+ demo_wave = 0x7b;
+ } else if (layer == 0) {
+ bgm_wave1 = 0x49;
+ se_wave2 = 0x23;
+ } else if (layer == 10) {
+ demo_wave = 0x7b;
+ } else if (layer == 1) {
+ bgm_wave1 = 0x4a;
+ se_wave2 = 0x24;
+ } else if (layer == 9) {
+ demo_wave = 0x7c;
+ }
+ }
+ se_wave1 = 0x56;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_FINAL_BATTLE_FIELD:
+ bgm_wave1 = 0x4b;
+ se_wave2 = 0x63;
+ se_wave1 = 0x8c;
+ field_0x1b = true;
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500);
+ break;
+
+ case SPOT_FINAL_BATTLE_CUTSCENE:
+ if (layer == 8) {
+ demo_wave = 0x7c;
+ fVar1 = 0.1f;
+ } else if (layer == 10) {
+ demo_wave = 0x7d;
+ } else if (layer == 9) {
+ demo_wave = 0x7e;
+ fVar1 = 0.08f;
+ } else if (layer == 11) {
+ demo_wave = 0x7f;
+ }
+ break;
-/* 802B9A94-802B9AC4 2B43D4 0030+00 1/1 0/0 0/0 .text dComIfGs_isSaveSwitch__Fi */
-static void dComIfGs_isSaveSwitch(int param_0) {
- // NONMATCHING
-}
+ case SPOT_LIGHT_SPIRIT_CHAMBER:
+ demo_wave = 0x7c;
+ break;
-/* 802B9AC4-802B9AD0 2B4404 000C+00 1/1 0/0 0/0 .text resetCrowdSize__7Z2SeMgrFv */
-void Z2SeMgr::resetCrowdSize() {
- // NONMATCHING
-}
+ case SPOT_CAVE_OF_ORDEALS:
+ se_wave2 = 0x51;
+ if (room != 49 || layer < 5 || layer > 8) {
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ }
+ break;
+
+ case SPOT_ICE_BLOCK_PUZZLE:
+ se_wave1 = 0x11;
+ se_wave2 = 0x12;
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ break;
+
+ case SPOT_GORGE_LANTERN_CAVE:
+ case SPOT_LAKE_LANTERN_CAVE:
+ se_wave2 = 0x52;
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ break;
+
+ case SPOT_ELDIN_MAGNET_CAVE:
+ se_wave1 = 5;
+ se_wave2 = 6;
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ break;
+
+ case SPOT_GROTTO_GRASS_1:
+ case SPOT_GROTTO_GRASS_2:
+ case SPOT_GROTTO_ROCK_1:
+ case SPOT_GROTTO_ROCK_2:
+ case SPOT_GROTTO_POND:
+ se_wave2 = 0x50;
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ break;
+
+ case SPOT_FARON_WOODS_CAVE:
+ se_wave2 = 0x53;
+ if (inDarkness) {
+ bgm_id = Z2BGM_TWILIGHT;
+ bgm_wave1 = 0xe;
+ } else {
+ bgm_id = Z2BGM_SUB_DUNGEON;
+ bgm_wave1 = 0x45;
+ }
+ break;
+ }
-/* 802B9AD0-802B9AFC 2B4410 002C+00 1/1 0/0 0/0 .text setTwilightGateVol__8Z2SeqMgrFf */
-void Z2SeqMgr::setTwilightGateVol(f32 param_0) {
- // NONMATCHING
-}
+ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104])
+ && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250])
+ && demo_wave == 0 && spot != SPOT_ELDIN_BRIDGE_BATTLE)
+ {
+ bgm_wave1 = 0x36;
+ if (spot == SPOT_CASTLE_TOWN_SHOPS && room == 5) {
+ bgm_id = -1;
+ } else {
+ bgm_id = Z2BGM_MIDNA_SOS;
+ if ((spot == SPOT_CASTLE_TOWN_INTERIOR && room == 5)
+ || spot == SPOT_CASTLE_TOWN_SHOPS || spot == SPOT_STAR_TENT)
+ {
+ Z2GetSeqMgr()->muteSceneBgm(33, 0.5f);
+ } else {
+ Z2GetSeqMgr()->unMuteSceneBgm(33);
+ }
+ }
+ time_proc_vol_mod = false;
+ } else if (sceneNum == SPOT_CASTLE_TOWN_SHOPS && roomNum == 1
+ && !(spot == SPOT_CASTLE_TOWN && room == 3))
+ {
+ bgm_id = Z2BGM_FORTUNE;
+ bgm_wave1 = 0x37;
+ Z2GetSeqMgr()->changeBgmStatus(1);
+ time_proc_vol_mod = false;
+ }
-/* 802B9AFC-802B9B60 2B443C 0064+00 1/1 0/0 0/0 .text setWindStoneVol__8Z2SeqMgrFfUl */
-void Z2SeqMgr::setWindStoneVol(f32 param_0, u32 param_1) {
- // NONMATCHING
-}
+ if (Z2GetSoundMgr()->getStreamMgr()->isActive()) {
+ JAUSoundTable* sound_table = JAUSoundTable::getInstance();
+ JSUList<JAIStream>* stream_list = Z2GetSoundMgr()->getStreamMgr()->getStreamList();
+ JSULink<JAIStream>* stream;
+ for (stream = stream_list->getFirst(); stream != NULL; stream = stream->getNext()) {
+ if (bVar2 || sound_table->getTypeID(stream->getObject()->getID()) != 0x71) {
+ stream->getObject()->stop(struct_80450860);
+ }
+ }
+ }
-/* 802B9B60-802B9B68 -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */
-// JAISoundID::JAISoundID(u32 id) {
-extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1) {
- *(u32*)param_0 = (u32)(param_1);
+ Z2GetSeqMgr()->setHeightVolMod(height_vol_mod, 30);
+ Z2GetSeqMgr()->setTimeProcVolMod(time_proc_vol_mod, 0);
+ Z2GetSeqMgr()->setFieldBgmPlay(field_bgm_play);
+ Z2GetEnvSeMgr()->initSceneEnvSe(spot, room, fVar1);
+
+ if (sceneNum != spot || bgm_id != BGM_ID || se_wave1 != loadedSeWave_1
+ || se_wave2 != loadedSeWave_2 || bgm_wave1 != loadedBgmWave_1
+ || bgm_wave2 != loadedBgmWave_2 || demo_wave != loadedDemoWave)
+ {
+ sceneNum = spot;
+ sceneChange(bgm_id, se_wave1, se_wave2, bgm_wave1, bgm_wave2, demo_wave, false);
+ }
+ roomNum = room;
}
/* 802B9B68-802B9C50 2B44A8 00E8+00 1/1 0/0 0/0 .text
* sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb */
-void Z2SceneMgr::sceneChange(JAISoundID param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4,
- u8 param_5, bool param_6) {
- // NONMATCHING
+void Z2SceneMgr::sceneChange(JAISoundID bgm, u8 seWave1, u8 seWave2, u8 bgmWave1, u8 bgmWave2,
+ u8 demoWave, bool param_6) {
+ if (bgm != BGM_ID) {
+ if (Z2GetSeqMgr()->getMainBgmID() == bgm) {
+ field_0x1a = false;
+ } else {
+ field_0x1a = true;
+ }
+ } else {
+ if (Z2GetSeqMgr()->getMainBgmID() == bgm) {
+ if (param_6) {
+ field_0x1a = true;
+ } else {
+ field_0x1a = false;
+ }
+ } else {
+ field_0x1a = true;
+ }
+ }
+
+ requestSeWave_1 = seWave1;
+ requestSeWave_2 = seWave2;
+ requestBgmWave_1 = bgmWave1;
+ requestBgmWave_2 = bgmWave2;
+ requestDemoWave = demoWave;
+ BGM_ID = bgm;
+ Z2GetFxLineMgr()->setSceneFx(sceneNum);
}
/* 802B9C50-802B9D40 2B4590 00F0+00 0/0 1/1 0/0 .text framework__10Z2SceneMgrFv */
void Z2SceneMgr::framework() {
- // NONMATCHING
+ if (load1stWait > 0) {
+ load1stWait--;
+ if (load1stWait == 0 && timer == 0) {
+ _load1stWaveInner_1();
+ }
+ } else if (load1stWait < 0) {
+ load1stWait++;
+ if (load1stWait == 0 && field_0x1a) {
+ _load1stWaveInner_2();
+ }
+ }
+
+ if (isSceneExist()) {
+ if (timer < 10000) {
+ timer++;
+ }
+ if (!field_0x1b && Z2GetStatusMgr()->getDemoStatus() != 3 && timer == struct_80450863) {
+ Z2GetSeqMgr()->setBattleBgmOff(false);
+ }
+ } else {
+ Z2GetSeqMgr()->setBattleBgmOff(true);
+ }
}
/* 802B9D40-802B9D98 2B4680 0058+00 0/0 1/1 0/0 .text load1stDynamicWave__10Z2SceneMgrFv
*/
void Z2SceneMgr::load1stDynamicWave() {
- // NONMATCHING
+ timer = 0;
+ Z2GetSoundObjMgr()->deleteEnemyAll();
+ setSceneExist(false);
+ if (load1stWait == 0) {
+ _load1stWaveInner_1();
+ }
}
/* 802B9D98-802B9FC8 2B46D8 0230+00 2/2 0/0 0/0 .text _load1stWaveInner_1__10Z2SceneMgrFv
*/
void Z2SceneMgr::_load1stWaveInner_1() {
- // NONMATCHING
+ Z2GetSeMgr()->seStopAll(0);
+ Z2GetEnvSeMgr()->resetSceneInner();
+ field_0x18 = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) ? 0x59 : 0x58;
+
+ if (loadedSeWave_2 != 0 && requestSeWave_2 != loadedSeWave_2) {
+ eraseSeWave(loadedSeWave_2);
+ loadedSeWave_2 = 0;
+ }
+
+ if (loadedDemoWave != 0 && requestDemoWave != loadedDemoWave) {
+ if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) {
+ loadedSeWave_2 = 0;
+ }
+ eraseSeWave(loadedDemoWave);
+ loadedDemoWave = 0;
+ }
+
+ if (field_0x18 != field_0x19 || requestSeWave_1 != loadedSeWave_1) {
+ if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) {
+ loadedSeWave_2 = 0;
+ }
+ if (loadedDemoWave != 0 && eraseSeWave(loadedDemoWave)) {
+ loadedDemoWave = 0;
+ }
+ if (loadedSeWave_1 != 0 && eraseSeWave(loadedSeWave_1)) {
+ loadedSeWave_1 = 0;
+ }
+ if (field_0x18 != field_0x19 && eraseSeWave(field_0x19) && loadSeWave(field_0x18)) {
+ field_0x19 = field_0x18;
+ }
+ if (requestSeWave_1 != 0 && loadSeWave(requestSeWave_1)) {
+ loadedSeWave_1 = requestSeWave_1;
+ } else {
+ loadedSeWave_1 = 0;
+ }
+ }
+
+ if (field_0x1a && Z2GetSeqMgr()->checkBgmPlaying()) {
+ Z2GetSeqMgr()->bgmStop(0xf, 0);
+ load1stWait = -15;
+ } else {
+ _load1stWaveInner_2();
+ }
}
/* 802B9FC8-802BA09C 2B4908 00D4+00 2/2 0/0 0/0 .text _load1stWaveInner_2__10Z2SceneMgrFv
*/
void Z2SceneMgr::_load1stWaveInner_2() {
- // NONMATCHING
+ if (loadedBgmWave_2 != 0 && requestBgmWave_2 != loadedBgmWave_2) {
+ eraseBgmWave(loadedBgmWave_2);
+ loadedBgmWave_2 = 0;
+ }
+
+ if (requestBgmWave_1 != loadedBgmWave_1) {
+ if (loadedBgmWave_2 != 0 && eraseBgmWave(loadedBgmWave_2)) {
+ loadedBgmWave_2 = 0;
+ }
+ if (loadedBgmWave_1 != 0 && eraseBgmWave(loadedBgmWave_1)) {
+ loadedBgmWave_1 = 0;
+ }
+ if (requestBgmWave_1 != 0 && loadBgmWave(requestBgmWave_1)) {
+ loadedBgmWave_1 = requestBgmWave_1;
+ } else {
+ loadedBgmWave_1 = 0;
+ }
+ }
}
/* 802BA09C-802BA120 2B49DC 0084+00 0/0 1/1 0/0 .text check1stDynamicWave__10Z2SceneMgrFv
*/
bool Z2SceneMgr::check1stDynamicWave() {
- // NONMATCHING
+ return load1stWait != 0 || getSeLoadStatus(requestSeWave_1) == 1
+ || getBgmLoadStatus(requestBgmWave_1) == 1;
}
/* 802BA120-802BA294 2B4A60 0174+00 0/0 2/2 0/0 .text load2ndDynamicWave__10Z2SceneMgrFv
*/
void Z2SceneMgr::load2ndDynamicWave() {
- // NONMATCHING
-}
+ if (requestDemoWave != loadedDemoWave) {
+ if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) {
+ loadedSeWave_2 = 0;
+ }
+ if (loadedDemoWave != 0 && eraseSeWave(loadedDemoWave)) {
+ loadedDemoWave = 0;
+ }
+ if (requestDemoWave != 0 && requestDemoWave != 0x7f && loadSeWave(requestDemoWave)) {
+ loadedDemoWave = requestDemoWave;
+ } else {
+ loadedDemoWave = 0;
+ }
+ }
-/* ############################################################################################## */
-/* 803CA9BC-803CAB18 -00001 015C+00 1/1 0/0 0/0 .data @5852 */
-SECTION_DATA static void* lit_5852[87] = {
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x204),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x23C),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x190),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
- (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x1B8),
-};
+ if (requestSeWave_2 != loadedSeWave_2) {
+ if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) {
+ loadedSeWave_2 = 0;
+ }
+ if (requestSeWave_2 != 0 && loadSeWave(requestSeWave_2)) {
+ loadedSeWave_2 = requestSeWave_2;
+ } else {
+ loadedSeWave_2 = 0;
+ }
+ }
+
+ if (requestBgmWave_2 != loadedBgmWave_2) {
+ if (loadedBgmWave_2 != 0 && eraseBgmWave(loadedBgmWave_2)) {
+ loadedBgmWave_2 = 0;
+ }
+ if (requestBgmWave_2 != 0 && loadBgmWave(requestBgmWave_2)) {
+ loadedBgmWave_2 = requestBgmWave_2;
+ } else {
+ loadedBgmWave_2 = 0;
+ }
+ }
+}
/* 802BA294-802BA56C 2B4BD4 02D8+00 1/0 2/2 0/0 .text sceneBgmStart__10Z2SceneMgrFv */
+// NONMATCHING regalloc
void Z2SceneMgr::sceneBgmStart() {
- // NONMATCHING
+ inGame = true;
+ setSceneExist(true);
+ Z2GetStatusMgr()->setPauseFlag(0);
+
+ if (!field_0x1a && Z2GetSeqMgr()->checkBgmIDPlaying(BGM_ID)) {
+ return;
+ }
+
+ if (!BGM_ID.isAnonymous() && Z2GetStatusMgr()->getDemoStatus() != 11) {
+ bool var;
+ switch (BGM_ID.mId.mBytes.b0) {
+ case 1:
+ var = false;
+ switch (Z2GetSeqMgr()->getSubBgmID()) {
+ case Z2BGM_BATTLE_NORMAL:
+ case Z2BGM_BOOMERAMG_MONKEY:
+ case Z2BGM_SUMOMO:
+ var = true;
+ break;
+ }
+ Z2GetSeqMgr()->bgmStart(BGM_ID, 0, var);
+ Z2GetSeqMgr()->unMuteSceneBgm(0);
+
+ switch (BGM_ID) {
+ case Z2BGM_DUNGEON_FOREST:
+ case Z2BGM_DUNGEON_LV2:
+ case Z2BGM_DUNGEON_LV5:
+ case Z2BGM_CASTLE_TOWN:
+ case Z2BGM_DUNGEON_LV8:
+ case Z2BGM_DUNGEON_LV9_02:
+ case Z2BGM_SNOW_MOUNTAIN:
+ if (sceneNum == SPOT_CASTLE_TOWN_SHOPS) {
+ Z2GetSeqMgr()->changeBgmStatus(5);
+ } else {
+ Z2GetSeqMgr()->changeBgmStatus(roomNum);
+ }
+ break;
+ case Z2BGM_HOLY_FOREST:
+ case Z2BGM_LUTERA2:
+ case Z2BGM_DEMO08:
+ case Z2BGM_DEMO10:
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ break;
+ case Z2BGM_CHURCH2:
+ if (sceneNum == SPOT_SANCTUARY_BASEMENT) {
+ Z2GetSeqMgr()->muteSceneBgm(0, 0.5f);
+ }
+ break;
+ case Z2BGM_MIDNA_SOS:
+ if ((sceneNum == SPOT_CASTLE_TOWN_INTERIOR && roomNum == 5)
+ || sceneNum == SPOT_CASTLE_TOWN_SHOPS || sceneNum == SPOT_STAR_TENT)
+ {
+ Z2GetSeqMgr()->muteSceneBgm(0, 0.5f);
+ }
+ break;
+ case Z2BGM_TOAL_NIGHT:
+ if (sceneNum == SPOT_ORDON_INTERIOR && roomNum == 2) {
+ Z2GetSeqMgr()->changeBgmStatus(2);
+ } else {
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ break;
+ case Z2BGM_FILONE_FOREST:
+ if (sceneNum == SPOT_CORO_SHOP
+ || (sceneNum == SPOT_FARON_WOODS && roomNum == 14))
+ {
+ Z2GetSeqMgr()->changeBgmStatus(2);
+ } else {
+ Z2GetSeqMgr()->changeBgmStatus(0);
+ }
+ break;
+ }
+ break;
+
+ case 2:
+ if (!Z2GetSeqMgr()->bgmStreamCheckReady()) {
+ Z2GetSeqMgr()->bgmStreamPrepare(BGM_ID);
+ }
+ Z2GetSeqMgr()->bgmStreamPlay();
+ break;
+ }
+ }
+
+ Z2GetSeqMgr()->bgmAllUnMute(0);
+ field_0x1a = false;
}
/* 802BA56C-802BA5C0 2B4EAC 0054+00 0/0 1/1 0/0 .text loadStaticWaves__10Z2SceneMgrFv */
void Z2SceneMgr::loadStaticWaves() {
- // NONMATCHING
+ loadSeWave(0);
+ loadBgmWave(0);
+ loadSeWave(0x58);
+ field_0x18 = 0x58;
+ field_0x19 = 0x58;
}
/* 802BA5C0-802BA5C8 2B4F00 0008+00 0/0 1/1 0/0 .text checkFirstWaves__10Z2SceneMgrFv */
@@ -913,28 +2058,63 @@ BOOL Z2SceneMgr::checkFirstWaves() {
}
/* 802BA5C8-802BA630 2B4F08 0068+00 2/2 0/0 0/0 .text eraseSeWave__10Z2SceneMgrFUl */
-void Z2SceneMgr::eraseSeWave(u32 param_0) {
- // NONMATCHING
+bool Z2SceneMgr::eraseSeWave(u32 wave) {
+ JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(0);
+ if (wave_bank != NULL) {
+ JASWaveArc* wave_arc = wave_bank->getWaveArc(wave);
+ if (wave_arc != NULL) {
+ return wave_arc->erase();
+ }
+ }
+ return false;
}
/* 802BA630-802BA698 2B4F70 0068+00 2/2 0/0 0/0 .text eraseBgmWave__10Z2SceneMgrFUl */
-void Z2SceneMgr::eraseBgmWave(u32 param_0) {
- // NONMATCHING
+bool Z2SceneMgr::eraseBgmWave(u32 wave) {
+ JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(1);
+ if (wave_bank != NULL) {
+ JASWaveArc* wave_arc = wave_bank->getWaveArc(wave);
+ if (wave_arc != NULL) {
+ return wave_arc->erase();
+ }
+ }
+ return false;
}
/* 802BA698-802BA704 2B4FD8 006C+00 1/1 0/0 0/0 .text getWaveLoadStatus__10Z2SceneMgrFUlUl */
-void Z2SceneMgr::getWaveLoadStatus(u32 param_0, u32 param_1) {
- // NONMATCHING
+s32 Z2SceneMgr::getWaveLoadStatus(u32 wave, u32 bank) {
+ JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(bank);
+ if (wave_bank != NULL) {
+ JASWaveArc* wave_arc = wave_bank->getWaveArc(wave);
+ if (wave_arc != NULL) {
+ return wave_arc->getStatus();
+ }
+ }
+ return 0;
}
/* 802BA704-802BA770 2B5044 006C+00 3/3 0/0 0/0 .text loadSeWave__10Z2SceneMgrFUl */
-void Z2SceneMgr::loadSeWave(u32 param_0) {
- // NONMATCHING
+bool Z2SceneMgr::loadSeWave(u32 wave) {
+ JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(0);
+ if (wave_bank != NULL) {
+ JASWaveArc* wave_arc = wave_bank->getWaveArc(wave);
+ if (wave_arc != NULL) {
+ return wave_arc->load(NULL);
+ }
+ }
+ return false;
}
/* 802BA770-802BA7DC 2B50B0 006C+00 3/3 0/0 0/0 .text loadBgmWave__10Z2SceneMgrFUl */
-void Z2SceneMgr::loadBgmWave(u32 param_0) {
- // NONMATCHING
+bool Z2SceneMgr::loadBgmWave(u32 wave) {
+ JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(1);
+ if (wave_bank != NULL) {
+ JASWaveArc* wave_arc = wave_bank->getWaveArc(wave);
+ if (wave_arc != NULL) {
+ return wave_arc->loadTail(NULL);
+ }
+ }
+ return false;
}
-/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/Z2AudioLib/Z2SeMgr.cpp b/src/Z2AudioLib/Z2SeMgr.cpp
index 15fc003cdd..920ee7c900 100644
--- a/src/Z2AudioLib/Z2SeMgr.cpp
+++ b/src/Z2AudioLib/Z2SeMgr.cpp
@@ -13,7 +13,6 @@
#include "Z2AudioLib/Z2Param.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "dol2asm.h"
-#include "global.h"
//
// Forward References:
@@ -294,7 +293,7 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
}
break;
case Z2SE_OBJ_CHANDLV5_SWING:
- i_volume = Z2Calc::getParamByExp(param_2, 353.0f, 261.0f, 0.4f, 0.05f, 1.0f,
+ i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
Z2Calc::CURVE_SIGN_2);
break;
case Z2SE_OBJ_IRONBALL_HIT:
diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp
index 9839405ee4..0be99b8f33 100644
--- a/src/Z2AudioLib/Z2SeqMgr.cpp
+++ b/src/Z2AudioLib/Z2SeqMgr.cpp
@@ -40,10 +40,10 @@ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(this) {
field_0xc8 = 1.0f;
field_0xcc = 1.0f;
mRideCount = 0;
- mFlags.flag5 = false;
+ mFlags.mFieldBgmPlay = false;
mFlags.mBattleBgmOff = true;
- mFlags.flag6 = false;
- mFlags.flag7 = false;
+ mFlags.mHeightVolMod = false;
+ mFlags.mTimeProcVolMod = false;
}
/* 802AF010-802AF408 2A9950 03F8+00 3/3 5/5 38/38 .text bgmStart__8Z2SeqMgrFUlUll */
@@ -121,7 +121,7 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) {
changeBgmStatus(0);
}
- if (mFlags.flag7 && !Z2GetStatusMgr()->checkDayTime()) {
+ if (mFlags.mTimeProcVolMod && !Z2GetStatusMgr()->checkDayTime()) {
field_0xa4.forceOut();
} else {
field_0xa4.forceIn();
@@ -144,7 +144,6 @@ void Z2SeqMgr::bgmStop(u32 i_count, s32 param_1) {
}
}
-
/* ############################################################################################## */
/* 8039BA08-8039BA08 028068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
@@ -640,6 +639,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
}
u32 count = 0;
+ bool mute;
f32 volume1, volume2, volume3, volume4;
switch (getMainBgmID()) {
case Z2BGM_TOAL_VILLEGE:
@@ -677,11 +677,11 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
setChildTrackVolume(&mMainBgmHandle, 13, 0.0f, 0, -1.0f, -1.0f);
break;
case Z2BGM_DUNGEON_FOREST:
- bool mute = false;
+ mute = false;
switch (param_0) {
case 4:
case 0xc:
- i_muteSceneBgm(struct_80450860, 0.0f);
+ muteSceneBgm(struct_80450860, 0.0f);
// fallthrough
case 7:
mute = true;
@@ -691,7 +691,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
break;
}
if (!mute) {
- i_unMuteSceneBgm(struct_80450860);
+ unMuteSceneBgm(struct_80450860);
}
break;
case Z2BGM_DUNGEON_LV2:
@@ -731,9 +731,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
setChildTrackVolume(&mMainBgmHandle, 12, volume2, count, -1.0f, -1.0f);
setChildTrackVolume(&mMainBgmHandle, 13, volume2, count, -1.0f, -1.0f);
if (param_0 == 4) {
- i_muteSceneBgm(60, 0.29f);
+ muteSceneBgm(60, 0.29f);
} else {
- i_unMuteSceneBgm(60);
+ unMuteSceneBgm(60);
}
break;
case Z2BGM_CASTLE_TOWN:
@@ -805,14 +805,14 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
break;
}
if (param_0 == 5) {
- i_muteSceneBgm(count, 0.35f);
- mFlags.flag6 = false;
+ muteSceneBgm(count, 0.35f);
+ mFlags.mHeightVolMod = false;
} else {
- i_unMuteSceneBgm(count);
+ unMuteSceneBgm(count);
if (param_0 < 2) {
- mFlags.flag6 = false;
+ mFlags.mHeightVolMod = false;
} else {
- mFlags.flag6 = true;
+ mFlags.mHeightVolMod = true;
}
}
break;
@@ -840,9 +840,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
break;
case Z2BGM_LUTERA2:
if (param_0 == 0) {
- i_muteSceneBgm(0, 0.5f);
+ muteSceneBgm(0, 0.5f);
} else if (param_0 == 1) {
- i_unMuteSceneBgm(80);
+ unMuteSceneBgm(80);
}
break;
case Z2BGM_DEMO08:
@@ -953,9 +953,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
break;
case Z2BGM_FORTUNE:
if (param_0 == 1) {
- i_muteSceneBgm(45, 0.5f);
+ muteSceneBgm(45, 0.5f);
} else {
- i_unMuteSceneBgm(45);
+ unMuteSceneBgm(45);
}
break;
case Z2BGM_DUNGEON_LV9_02:
@@ -1019,11 +1019,11 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) {
case Z2BGM_TOAL_NIGHT:
case Z2BGM_FILONE_FOREST:
if (param_0 == 1) {
- i_muteSceneBgm(45, 0.5f);
+ muteSceneBgm(45, 0.5f);
} else if (param_0 == 2) {
- i_muteSceneBgm(0, 0.5f);
+ muteSceneBgm(0, 0.5f);
} else {
- i_unMuteSceneBgm(45);
+ unMuteSceneBgm(45);
}
break;
case Z2BGM_VS_GANON_04:
@@ -1257,23 +1257,23 @@ void Z2SeqMgr::changeFishingBgm(s32 param_0) {
if (getSubBgmID() == Z2BGM_FISHING_HIT) {
subBgmStop();
}
- i_unMuteSceneBgm(struct_80450862);
+ unMuteSceneBgm(struct_80450862);
break;
case 1:
if (getSubBgmID() == Z2BGM_FISHING_HIT) {
subBgmStop();
}
- i_muteSceneBgm(2, 0.5f);
+ muteSceneBgm(2, 0.5f);
break;
case 2:
subBgmStart(Z2BGM_FISHING_HIT);
- i_muteSceneBgm(1, 0.0f);
+ muteSceneBgm(1, 0.0f);
break;
case 4:
if (getSubBgmID() == Z2BGM_FISHING_HIT) {
subBgmStop();
}
- i_muteSceneBgm(1, 0.0f);
+ muteSceneBgm(1, 0.0f);
break;
}
}
@@ -1304,7 +1304,6 @@ void Z2SeqMgr::menuOutBgm() {
}
/* 802B2E3C-802B327C 2AD77C 0440+00 1/1 0/0 0/0 .text fanfareFramework__8Z2SeqMgrFv */
-// NONMATCHING extra load
void Z2SeqMgr::fanfareFramework() {
switch (mFanfareID) {
case Z2BGM_OPEN_BOX:
@@ -1364,7 +1363,7 @@ void Z2SeqMgr::fanfareFramework() {
mFanfareCount = 50;
mFanfareMute.fadeOut(30);
} else if (mFanfareCount == 1) {
- Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0);
+ Z2GetSoundMgr()->startSound((u32)mFanfareID, &mFanfareHandle, 0);
mFanfareID.setAnonymous();
}
break;
@@ -1424,26 +1423,26 @@ void Z2SeqMgr::stopWolfHowlSong() {
}
/* 802B3318-802B3398 2ADC58 0080+00 0/0 1/1 0/0 .text setHeightVolMod__8Z2SeqMgrFbUl */
-void Z2SeqMgr::setHeightVolMod(bool param_0, u32 i_count) {
- mFlags.flag6 = param_0;
- if (!param_0) {
+void Z2SeqMgr::setHeightVolMod(bool i_value, u32 i_count) {
+ mFlags.mHeightVolMod = i_value;
+ if (!i_value) {
field_0x84.fadeIn(i_count);
}
}
/* 802B3398-802B33A8 2ADCD8 0010+00 0/0 1/1 0/0 .text setTimeProcVolMod__8Z2SeqMgrFbUl */
-void Z2SeqMgr::setTimeProcVolMod(bool param_0, u32 i_count) {
- mFlags.flag7 = param_0;
+void Z2SeqMgr::setTimeProcVolMod(bool i_value, u32 i_count) {
+ mFlags.mTimeProcVolMod = i_value;
}
/* 80450870-80450874 0002F0 0004+00 1/1 0/0 0/0 .sdata sDeathMtBottom */
-SECTION_SDATA static f32 sDeathMtBottom = -1000.0f;
+static f32 sDeathMtBottom = -1000.0f;
/* 80450874-80450878 0002F4 0004+00 1/1 0/0 0/0 .sdata sDeathMtTop */
-SECTION_SDATA static f32 sDeathMtTop = 3650.0f;
+static f32 sDeathMtTop = 3650.0f;
/* 80450878-80450880 0002F8 0004+04 1/1 0/0 0/0 .sdata sUnderWaterDepthMax */
-SECTION_SDATA static f32 sUnderWaterDepthMax = 3500.0f;
+static f32 sUnderWaterDepthMax = 3500.0f;
/* 802B33A8-802B3EAC 2ADCE8 0B04+00 0/0 1/1 0/0 .text processBgmFramework__8Z2SeqMgrFv */
void Z2SeqMgr::processBgmFramework() {
@@ -1467,7 +1466,7 @@ void Z2SeqMgr::processBgmFramework() {
mMainBgmMaster.fadeIn(struct_80450861);
}
- if (mFlags.flag7) {
+ if (mFlags.mTimeProcVolMod) {
if (Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 1.0f) {
field_0xa4.fadeIn(600);
} else if (!Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 0.0f) {
@@ -1475,11 +1474,11 @@ void Z2SeqMgr::processBgmFramework() {
}
}
- if (mFlags.flag6 && Z2GetSceneMgr()->isSceneExist()
+ if (mFlags.mHeightVolMod && Z2GetSceneMgr()->isSceneExist()
&& Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL)
{
f32 link_y = Z2GetLink()->getCurrentPos()->y;
- f32 volume;
+ f32 volume, depth;
switch (getMainBgmID()) {
case Z2BGM_DEATH_MOUNTAIN01:
volume = Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f,
@@ -1501,7 +1500,7 @@ void Z2SeqMgr::processBgmFramework() {
case Z2BGM_ZORA_VILLAGE:
case Z2BGM_FISHING:
case Z2BGM_LAKE:
- f32 depth = Z2GetStatusMgr()->getCameraInWaterDepth();
+ depth = Z2GetStatusMgr()->getCameraInWaterDepth();
if (depth > sUnderWaterDepthMax) {
field_0x84.forceOut();
} else if (depth > 0.0f) {
@@ -1592,7 +1591,7 @@ void Z2SeqMgr::processBgmFramework() {
f32 volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get();
mStreamBgmHandle->getAuxiliary().moveVolume(volume, 0);
}
- i_setWindStoneVol(1.0f, 30);
+ setWindStoneVol(1.0f, 30);
}
/* 802B3EAC-802B3F40 2AE7EC 0094+00 0/0 2/2 0/0 .text checkBgmIDPlaying__8Z2SeqMgrFUl */
@@ -1969,7 +1968,7 @@ void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) {
/* 802B545C-802B556C 2AFD9C 0110+00 1/1 0/0 0/0 .text fieldBgmStart__8Z2SeqMgrFv */
void Z2SeqMgr::fieldBgmStart() {
- if (Z2GetSceneMgr()->isSceneExist() && mFlags.flag5) {
+ if (Z2GetSceneMgr()->isSceneExist() && mFlags.mFieldBgmPlay) {
if (Z2GetStatusMgr()->checkDayTime()) {
Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL);
changeBgmStatus(0);
@@ -2046,7 +2045,7 @@ void Z2SeqMgr::fieldBgmFramework() {
if (Z2GetSceneMgr()->isSceneExist() && !Z2GetSceneMgr()->isInDarkness()
&& (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e
|| Z2GetSceneMgr()->getCurrentSceneNum() == 0x1f)
- && mFlags.flag5)
+ && mFlags.mFieldBgmPlay)
{
if (mRideCount != 0) {
mRideCount--;
@@ -2229,7 +2228,6 @@ void Z2SeqMgr::taktModeMute() {
mBgmPause.move(0.3f, 10);
}
-
/* 802B5ED4-802B5F1C 2B0814 0048+00 0/0 1/1 0/0 .text taktModeMuteOff__8Z2SeqMgrFv */
void Z2SeqMgr::taktModeMuteOff() {
mBgmPause.fadeIn(10);
diff --git a/src/Z2AudioLib/Z2SoundHandles.cpp b/src/Z2AudioLib/Z2SoundHandles.cpp
index 744773686a..b351939a2b 100644
--- a/src/Z2AudioLib/Z2SoundHandles.cpp
+++ b/src/Z2AudioLib/Z2SoundHandles.cpp
@@ -5,38 +5,6 @@
#include "Z2AudioLib/Z2SoundHandles.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
-#include "dol2asm.h"
-
-extern "C" void func_802AB200(void* _this);
-extern "C" void __ct__17JASGenericMemPoolFv();
-extern "C" void __dt__17JASGenericMemPoolFv();
-extern "C" void alloc__17JASGenericMemPoolFUl();
-extern "C" void free__17JASGenericMemPoolFPvUl();
-extern "C" void releaseSound__14JAISoundHandleFv();
-extern "C" void stop__8JAISoundFUl();
-extern "C" void __dl__FPv();
-extern "C" void __ct__10JSUPtrLinkFPv();
-extern "C" void __dt__10JSUPtrLinkFv();
-extern "C" void __dt__10JSUPtrListFv();
-extern "C" void initiate__10JSUPtrListFv();
-extern "C" void append__10JSUPtrListFP10JSUPtrLink();
-extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
-extern "C" void __register_global_object();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_28();
-extern "C" extern u8 data_80451348[8];
-
-/* 804341B8-804341C4 060ED8 000C+00 3/3 0/0 0/0 .bss @632 */
-static u8 lit_632[12];
-
-/* 804341C4-804341D8 060EE4 0010+04 3/3 1/1 0/0 .bss
- * memPool_$localstatic3$getMemPool___39JASPoolAllocObject<17Z2SoundHandlePool>Fv */
-extern u8 data_804341C4[16 + 4 /* padding */];
-u8 data_804341C4[16 + 4 /* padding */];
-
-// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {}
Z2SoundHandles::Z2SoundHandles() {
mNumHandles = 0;
@@ -51,7 +19,7 @@ void Z2SoundHandles::initHandlesPool(u8 pNumHandles) {
}
/* 802AB120-802AB200 2A5A60 00E0+00 1/1 1/1 0/0 .text deleteHandlesPool__14Z2SoundHandlesFv */
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
void Z2SoundHandles::deleteHandlesPool() {
JSULink<Z2SoundHandlePool>* link;
while (link = getFirst(), link != NULL) {
@@ -61,16 +29,6 @@ void Z2SoundHandles::deleteHandlesPool() {
}
mNumHandles = 0;
}
-#else
-void Z2SoundHandles::deleteHandlesPool() {
- // NONMATCHING
-}
-#endif
-
-/* 802AB200-802AB254 2A5B40 0054+00 3/3 1/1 0/0 .text __dt__31JASMemPool<17Z2SoundHandlePool>Fv */
-extern "C" void func_802AB200(void* _this) {
- // NONMATCHING
-}
Z2SoundHandlePool* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
JSULink<Z2SoundHandlePool>* link;
@@ -102,7 +60,7 @@ Z2SoundHandlePool* Z2SoundHandles::getHandleUserData(u32 pUserData) {
/* 802AB2D8-802AB3D0 2A5C18 00F8+00 0/0 3/3 0/0 .text getFreeHandle__14Z2SoundHandlesFv
*/
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
@@ -123,11 +81,6 @@ Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
return NULL;
}
-#else
-Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
- // NONMATCHING
-}
-#endif
/* 802AB3D0-802AB4A0 2A5D10 00D0+00 0/0 2/2 0/0 .text
* getLowPrioSound__14Z2SoundHandlesF10JAISoundID */
@@ -180,7 +133,7 @@ bool Z2SoundHandles::isActive() const {
/* 802AB538-802AB64C 2A5E78 0114+00 0/0 1/1 0/0 .text
* setPos__14Z2SoundHandlesFRCQ29JGeometry8TVec3<f> */
-#ifdef NONMATCHING
+// NONMATCHING JASPoolAllocObject<_> locations
void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
@@ -194,8 +147,3 @@ void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
}
}
}
-#else
-void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
- // NONMATCHING
-}
-#endif \ No newline at end of file
diff --git a/src/Z2AudioLib/Z2SoundInfo.cpp b/src/Z2AudioLib/Z2SoundInfo.cpp
index 67b957282b..ad9f0519dd 100644
--- a/src/Z2AudioLib/Z2SoundInfo.cpp
+++ b/src/Z2AudioLib/Z2SoundInfo.cpp
@@ -6,18 +6,15 @@
#include "Z2AudioLib/Z2SoundInfo.h"
#include "JSystem/JAudio2/JAISeq.h"
#include "JSystem/JAudio2/JAISe.h"
+#include "JSystem/JAudio2/JAISoundChild.h"
+#include "JSystem/JAudio2/JAIStream.h"
#include "JSystem/JAudio2/JAUSoundTable.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "Z2AudioLib/Z2Calc.h"
-#include "dol2asm.h"
#include "dolphin/dvd.h"
-//
-// Types:
-//
-
struct JAUStdSoundTableType {
- static u32 STRM_CH_SHIFT;
+ static const u32 STRM_CH_SHIFT;
struct StringOffset {
static inline const char* getString(const void* addr, u32 offset) {
return (const char*)addr + offset;
@@ -25,53 +22,6 @@ struct JAUStdSoundTableType {
};
};
-//
-// Forward References:
-//
-
-extern "C" void getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getSoundType__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getCategory__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getPriority__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getAudibleSwFull__11Z2SoundInfoF10JAISoundID();
-extern "C" void getAudibleSw__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe();
-extern "C" void getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq();
-extern "C" void getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream();
-extern "C" void getStreamFilePath__11Z2SoundInfoF10JAISoundID();
-extern "C" void getStreamFileEntry__11Z2SoundInfoF10JAISoundID();
-extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID();
-extern "C" void getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound();
-extern "C" void __dt__11Z2SoundInfoFv();
-extern "C" static void func_802BBCBC();
-extern "C" static void func_802BBCC4();
-extern "C" static void func_802BBCCC();
-extern "C" static void func_802BBCD4();
-extern "C" u32 STRM_CH_SHIFT__20JAUStdSoundTableType;
-
-//
-// External References:
-//
-
-extern "C" void __dt__12JAISoundInfoFv();
-extern "C" void __dt__16JAIStreamDataMgrFv();
-extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID();
-extern "C" void getData__13JAUSoundTableCF10JAISoundID();
-extern "C" void linearTransform__6Z2CalcFfffffb();
-extern "C" void getRandom_0_1__6Z2CalcFv();
-extern "C" void __dl__FPv();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */];
-extern "C" extern u8 data_80450B58[4];
-extern "C" extern u8 __OSReport_disable;
-
/* 802BB00C-802BB090 2B594C 0084+00 2/1 0/0 0/0 .text
* getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */
u16 Z2SoundInfo::getBgmSeqResourceID(JAISoundID param_0) const {
@@ -123,6 +73,7 @@ u32 Z2SoundInfo::getPriority(JAISoundID param_0) const {
JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) {
JAUAudibleParam local_28;
JUT_ASSERT(82, isValid());
+ int iVar1, uVar7;
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) {
case 81:
local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8;
@@ -157,8 +108,7 @@ JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) {
local_28.field_0x0.bytes.b1_1 = 1;
}
- int iVar1;
- int uVar7 = 0;
+ uVar7 = 0;
if ((getSwBit(param_0) & 0x80000) != 0) {
uVar7 = 8;
}
@@ -188,6 +138,7 @@ JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) {
u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const {
JAUAudibleParam local_28;
JUT_ASSERT(184, isValid());
+ int iVar1, uVar7;
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) {
case 81:
local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8;
@@ -222,8 +173,7 @@ u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const {
local_28.field_0x0.bytes.b1_1 = 1;
}
- int iVar1;
- int uVar7 = 0;
+ uVar7 = 0;
if ((getSwBit(param_0) & 0x80000) != 0) {
uVar7 = 8;
}
@@ -242,40 +192,6 @@ u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const {
return local_28.field_0x0.half.f0;
}
-/* ############################################################################################## */
-/* 80455A68-80455A6C 004068 0004+00 1/1 0/0 0/0 .sdata2 @963 */
-SECTION_SDATA2 static f32 lit_963 = 8.0f;
-
-/* 80455A6C-80455A70 00406C 0004+00 1/1 0/0 0/0 .sdata2 @964 */
-SECTION_SDATA2 static f32 lit_964 = 15.0f;
-
-/* 80455A70-80455A74 004070 0004+00 1/1 0/0 0/0 .sdata2 @965 */
-SECTION_SDATA2 static f32 lit_965 = 16.0f;
-
-/* 80455A74-80455A78 004074 0004+00 1/1 0/0 0/0 .sdata2 @966 */
-SECTION_SDATA2 static f32 lit_966 = 24.0f;
-
-/* 80455A78-80455A7C 004078 0004+00 1/1 0/0 0/0 .sdata2 @967 */
-SECTION_SDATA2 static f32 lit_967 = 48.0f;
-
-/* 80455A7C-80455A80 00407C 0004+00 2/2 0/0 0/0 .sdata2 @968 */
-SECTION_SDATA2 static u8 lit_968[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455A80-80455A88 004080 0004+04 2/2 0/0 0/0 .sdata2 @969 */
-SECTION_SDATA2 static f32 lit_969[1 + 1 /* padding */] = {
- 1.0f,
- /* padding */
- 0.0f,
-};
-
-/* 80455A88-80455A90 004088 0008+00 2/2 0/0 0/0 .sdata2 @973 */
-SECTION_SDATA2 static f64 lit_973 = 4503599627370496.0 /* cast u32 to float */;
-
/* 802BB6DC-802BB8B4 2B601C 01D8+00 1/0 0/0 0/0 .text
* getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe */
void Z2SoundInfo::getSeInfo(JAISoundID param_1, JAISe* param_2) const {
@@ -309,24 +225,18 @@ void Z2SoundInfo::getSeInfo(JAISoundID param_1, JAISe* param_2) const {
}
}
-
/* 802BB8B4-802BB8E0 2B61F4 002C+00 1/0 0/0 0/0 .text
* getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq */
void Z2SoundInfo::getSeqInfo(JAISoundID param_0, JAISeq* param_1) const {
getSoundInfo_(param_0, param_1);
}
-/* ############################################################################################## */
/* 80455A90-80455A94 004090 0004+00 1/1 0/0 0/0 .sdata2 STRM_CH_SHIFT__20JAUStdSoundTableType */
-SECTION_SDATA2 u32 JAUStdSoundTableType::STRM_CH_SHIFT = 0x00000002;
-
-/* 80455A94-80455A98 004094 0004+00 1/1 0/0 0/0 .sdata2 @1010 */
-SECTION_SDATA2 static f32 lit_1010 = 0.5f;
+u32 const JAUStdSoundTableType::STRM_CH_SHIFT = 2;
/* 802BB8E0-802BBA10 2B6220 0130+00 1/0 0/0 0/0 .text
* getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream */
-// regalloc
-#ifdef NONMATCHING
+// NONMATCHING regalloc
void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
int numChild;
JAUSoundTableItem* data;
@@ -334,18 +244,15 @@ void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
JUT_ASSERT(349, isValid());
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) {
case 0x70:
- int chShift;
- u32 uVar1;
+ u16 uVar1;
s32 iVar4;
- u16 uVar3;
data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
JUT_ASSERT(356, data);
uVar1 = data->mResourceId;
numChild = param_2->getNumChild();
iVar4 = 0;
- chShift = JAUStdSoundTableType::STRM_CH_SHIFT;
- for (uVar3 = uVar1; iVar4 < numChild && uVar3 != 0; uVar3 >>= chShift, iVar4++) {
- u32 uVar2 = uVar3 & 3;
+ for (; iVar4 < numChild && uVar1 != 0; uVar1 >>= JAUStdSoundTableType::STRM_CH_SHIFT, iVar4++) {
+ u32 uVar2 = uVar1 & 3;
if (uVar2 != 0) {
JAISoundChild* child = param_2->getChild(iVar4);
if (child != NULL) {
@@ -365,21 +272,18 @@ void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
}
}
}
-#else
-void Z2SoundInfo::getStreamInfo(JAISoundID param_0, JAIStream* param_1) const {
- // NONMATCHING
-}
-#endif
/* 802BBA10-802BBA88 2B6350 0078+00 1/1 0/0 0/0 .text
* getStreamFilePath__11Z2SoundInfoF10JAISoundID */
const char* Z2SoundInfo::getStreamFilePath(JAISoundID param_1) {
JUT_ASSERT(387, isValid());
+ JAUSoundTableItem* data;
+ const void* resource;
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) {
case 0x70:
- JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
+ data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
JUT_ASSERT(394, data);
- const void* resource = JASGlobalInstance<JAUSoundTable>::getInstance()->getResource();
+ resource = JASGlobalInstance<JAUSoundTable>::getInstance()->getResource();
JUT_ASSERT(398, resource);
return JAUStdSoundTableType::StringOffset::getString(resource, data->field_0x4);
default:
@@ -409,14 +313,6 @@ int Z2SoundInfo::getSwBit(JAISoundID param_1) const {
return 0xffffffff;
}
-/* ############################################################################################## */
-/* 80455A98-80455AA0 004098 0004+04 1/1 0/0 0/0 .sdata2 @1070 */
-SECTION_SDATA2 static f32 lit_1070[1 + 1 /* padding */] = {
- 1.0f / 127.0f,
- /* padding */
- 0.0f,
-};
-
/* 802BBB48-802BBBE0 2B6488 0098+00 3/3 0/0 0/0 .text
* getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound */
void Z2SoundInfo::getSoundInfo_(JAISoundID param_1, JAISound* param_2) const {
@@ -427,30 +323,3 @@ void Z2SoundInfo::getSoundInfo_(JAISoundID param_1, JAISound* param_2) const {
param_2->getProperty().field_0x0 = (1.0f / 127.0f) * data->field_0x1;
}
}
-
-
-/* 802BBBE0-802BBCBC 2B6520 00DC+00 2/1 0/0 0/0 .text __dt__11Z2SoundInfoFv */
-// Z2SoundInfo::~Z2SoundInfo() {}
-
-/* 802BBCBC-802BBCC4 2B65FC 0008+00 1/0 0/0 0/0 .text
- * @4@getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */
-static void func_802BBCBC() {
- // NONMATCHING
-}
-
-/* 802BBCC4-802BBCCC 2B6604 0008+00 1/0 0/0 0/0 .text @4@getAudibleSw__11Z2SoundInfoCF10JAISoundID
- */
-static void func_802BBCC4() {
- // NONMATCHING
-}
-
-/* 802BBCCC-802BBCD4 2B660C 0008+00 1/0 0/0 0/0 .text @8@__dt__11Z2SoundInfoFv */
-static void func_802BBCCC() {
- // NONMATCHING
-}
-
-/* 802BBCD4-802BBCDC 2B6614 0008+00 1/0 0/0 0/0 .text
- * @8@getStreamFileEntry__11Z2SoundInfoF10JAISoundID */
-static void func_802BBCD4() {
- // NONMATCHING
-}
diff --git a/src/Z2AudioLib/Z2SoundMgr.cpp b/src/Z2AudioLib/Z2SoundMgr.cpp
index 6c8668cf9f..5d1f8952df 100644
--- a/src/Z2AudioLib/Z2SoundMgr.cpp
+++ b/src/Z2AudioLib/Z2SoundMgr.cpp
@@ -13,131 +13,9 @@
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JAudio2/JASDriverIF.h"
#include "JSystem/JAudio2/JAUSectionHeap.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void seqCallback__FP8JASTrackUs();
-extern "C" void __ct__10Z2SoundMgrFv();
-extern "C" void func_802A9EE8();
-extern "C" void calc__10Z2SoundMgrFv();
-extern "C" void setIIR__10Z2SoundMgrFP8JAISoundPCs();
-extern "C" void setFilterOff__10Z2SoundMgrFP8JAISound();
-extern "C" void resetFilterAll__10Z2SoundMgrFv();
-extern "C" void mixOut__10Z2SoundMgrFv();
-extern "C" void framework__10Z2SoundMgrFv();
-extern "C" void pauseAllGameSound__10Z2SoundMgrFb();
-extern "C" void stopSoundID__10Z2SoundMgrF10JAISoundID();
-extern "C" void stopSync__10Z2SoundMgrFv();
-extern "C" void stop__10Z2SoundMgrFv();
-extern "C" void initParams__10Z2SoundMgrFv();
-extern "C" void multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf();
-extern "C" void isPlayingSoundID__10Z2SoundMgrF10JAISoundID();
-extern "C" extern char const* const Z2SoundMgr__stringBase0;
void dComIfGs_staffroll_next_go();
-//
-// External References:
-//
-
-extern "C" void dComIfGs_staffroll_next_go__Fv();
-extern "C" void setFIR__8JASTrackFPCs();
-extern "C" void setIIR__8JASTrackFPCs();
-extern "C" void writePort__8JASTrackFUlUs();
-extern "C" void waitSubFrame__9JASDriverFv();
-extern "C" void pause__16JAISeCategoryMgrFb();
-extern "C" void __ct__8JAISeMgrFb();
-extern "C" void stop__8JAISeMgrFv();
-extern "C" void stopSoundID__8JAISeMgrF10JAISoundID();
-extern "C" void initParams__8JAISeMgrFv();
-extern "C" void calc__8JAISeMgrFv();
-extern "C" void mixOut__8JAISeMgrFv();
-extern "C" void func_802A0768();
-extern "C" void getNumActiveSe__8JAISeMgrCFv();
-extern "C" void __ct__9JAISeqMgrFb();
-extern "C" void func_802A1B48();
-extern "C" void calc__9JAISeqMgrFv();
-extern "C" void stop__9JAISeqMgrFv();
-extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID();
-extern "C" void mixOut__9JAISeqMgrFv();
-extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
-extern "C" void __ct__12JAIStreamMgrFb();
-extern "C" void func_802A3C3C();
-extern "C" void calc__12JAIStreamMgrFv();
-extern "C" void stop__12JAIStreamMgrFv();
-extern "C" void stop__12JAIStreamMgrFUl();
-extern "C" void stopSoundID__12JAIStreamMgrF10JAISoundID();
-extern "C" void mixOut__12JAIStreamMgrFv();
-extern "C" void loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb();
-extern "C" void releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv();
-extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl();
-extern "C" void bgmStart__8Z2SeqMgrFUlUll();
-extern "C" void changeBgmStatus__8Z2SeqMgrFl();
-extern "C" void onVariantBgmJumpEnd__8Z2SeqMgrFb();
-extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff();
-extern "C" void onFieldBgmJumpStart__8Z2SeqMgrFv();
-extern "C" void onFieldBgmJumpEnd__8Z2SeqMgrFv();
-extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID();
-extern "C" void speakOneWord__12Z2SpeechMgr2Fb();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024];
-extern "C" extern u8 data_80450B4C[4];
-extern "C" extern u8 data_80450B70[4];
-extern "C" extern u8 data_80450B80[4];
-extern "C" extern u8 data_80450B84[4];
-extern "C" extern u8 data_80450B88[4];
-extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C9D18-803C9D70 -00001 0058+00 1/1 0/0 0/0 .data @3690 */
-SECTION_DATA static void* lit_3690[22] = {
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x40),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x7C),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x88),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x94),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xA4),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xB4),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xC4),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1AC),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1BC),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1CC),
- (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x148),
-};
-
-/* 80455838-8045583C 003E38 0004+00 5/5 0/0 0/0 .sdata2 @3688 */
-SECTION_SDATA2 static f32 lit_3688 = 1.0f;
-
-/* 8045583C-80455840 003E3C 0004+00 1/1 0/0 0/0 .sdata2 @3689 */
-SECTION_SDATA2 static f32 lit_3689 = -1.0f;
-
/* 802A9BC8-802A9E80 2A4508 02B8+00 1/0 1/1 0/0 .text seqCallback__FP8JASTrackUs */
u16 seqCallback(JASTrack* i_track, u16 param_1) {
JSUList<JAISe>* list;
@@ -221,20 +99,7 @@ u16 seqCallback(JASTrack* i_track, u16 param_1) {
return 0;
}
-
-/* ############################################################################################## */
-/* 803C9D70-803C9D80 026E90 000C+04 1/1 1/1 0/0 .data __vt__10Z2SoundMgr */
-SECTION_DATA extern void* __vt__10Z2SoundMgr[3 + 1 /* padding */] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)func_802A9EE8,
- /* padding */
- NULL,
-};
-
/* 802A9E80-802A9EE8 2A47C0 0068+00 0/0 1/1 0/0 .text __ct__10Z2SoundMgrFv */
-#ifdef NONMATCHING
-// matches but generates an extra weak function
Z2SoundMgr::Z2SoundMgr() :
JASGlobalInstance<Z2SoundMgr>(this),
mSeMgr(true),
@@ -243,37 +108,6 @@ Z2SoundMgr::Z2SoundMgr() :
{
mSoundID.setAnonymous();
}
-#else
-Z2SoundMgr::Z2SoundMgr() : JASGlobalInstance<Z2SoundMgr>(this),
- mSeMgr(true),
- mSeqMgr(true),
- mStreamMgr(true) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039B9D0 = "Unknown Sound-Type id :%08x\n";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039B9ED = "\0\0";
-#pragma pop
-
-/* 80455840-80455844 003E40 0004+00 1/1 0/0 0/0 .sdata2 @3904 */
-SECTION_SDATA2 static f32 lit_3904 = 3.0f / 10.0f;
-
-/* 80455844-80455848 003E44 0004+00 3/3 0/0 0/0 .sdata2 @3905 */
-SECTION_SDATA2 static u8 lit_3905[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455848-80455850 003E48 0008+00 2/2 0/0 0/0 .sdata2 @3909 */
-SECTION_SDATA2 static f64 lit_3909 = 4503599627370496.0 /* cast u32 to float */;
/* 802A9EE8-802AA1B0 2A4828 02C8+00 1/0 0/0 0/0 .text
* startSound__10Z2SoundMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
@@ -289,7 +123,7 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
case 1:
if (i_soundID == Z2BGM_LUTERA_DEMO) {
Z2GetSeqMgr()->bgmStart(Z2BGM_LUTERA2, 0, 0);
- Z2GetSeqMgr()->i_unMuteSceneBgm(0);
+ Z2GetSeqMgr()->unMuteSceneBgm(0);
Z2GetSeqMgr()->changeBgmStatus(0);
return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos);
} else {
@@ -335,7 +169,7 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
/* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */
-#ifdef NONMATCHING
+// NONMATCHING extra load
void Z2SoundMgr::calc() {
mSeMgr.calc();
if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) {
@@ -347,11 +181,6 @@ void Z2SoundMgr::calc() {
mSeqMgr.calc();
mStreamMgr.calc();
}
-#else
-void Z2SoundMgr::calc() {
- // NONMATCHING
-}
-#endif
/* 802AA270-802AA33C 2A4BB0 00CC+00 1/1 2/2 0/0 .text setIIR__10Z2SoundMgrFP8JAISoundPCs
*/
@@ -519,14 +348,6 @@ void Z2SoundMgr::stop() {
mStreamMgr.stop();
}
-/* ############################################################################################## */
-/* 80455850-80455858 003E50 0004+04 1/1 0/0 0/0 .sdata2 @4313 */
-SECTION_SDATA2 static f32 lit_4313[1 + 1 /* padding */] = {
- 0.5f,
- /* padding */
- 0.0f,
-};
-
/* 802AA908-802AA9E8 2A5248 00E0+00 0/0 1/1 0/0 .text initParams__10Z2SoundMgrFv */
void Z2SoundMgr::initParams() {
mSeMgr.initParams();
@@ -537,7 +358,7 @@ void Z2SoundMgr::initParams() {
/* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text
* multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */
-#ifdef NONMATCHING
+// NONMATCHING extra load
void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
@@ -549,18 +370,13 @@ void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
}
}
}
-#else
-void Z2SoundMgr::multiVolumeSoundID(JAISoundID param_0, f32 param_1) {
- // NONMATCHING
-}
-#endif
/* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID
*/
-#ifdef NONMATCHING
+// NONMATCHING extra load
bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
if (i_soundID.isAnonymous()) {
- return 0;
+ return false;
}
if (Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
@@ -573,10 +389,5 @@ bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
}
return false;
}
-#else
-bool Z2SoundMgr::isPlayingSoundID(JAISoundID param_0) {
- // NONMATCHING
-}
-#endif
-/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/Z2AudioLib/Z2SoundObjMgr.cpp b/src/Z2AudioLib/Z2SoundObjMgr.cpp
index 74723562aa..a4bfb2bc9c 100644
--- a/src/Z2AudioLib/Z2SoundObjMgr.cpp
+++ b/src/Z2AudioLib/Z2SoundObjMgr.cpp
@@ -8,10 +8,8 @@
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SceneMgr.h"
-#include "dol2asm.h"
/* 802BF920-802BF980 2BA260 0060+00 0/0 1/1 0/0 .text __ct__13Z2SoundObjMgrFv */
-// order wrong because this needs to inherit from JASGlobalInstance<T>
Z2SoundObjMgr::Z2SoundObjMgr() : JASGlobalInstance<Z2SoundObjMgr>(this) {
mGhostEnemyState = 0;
mTwilightBattle = 0;
@@ -28,122 +26,96 @@ void Z2SoundObjMgr::setForceBattleArea(bool forceBattle, u16 param_1, u16 param_
mEnemyArea.field_0x6 = param_3;
}
-struct EnemyInfo {
- u8 field_0x0;
- u8 field_0x1;
- u8 field_0x2;
- u8 field_0x3;
- u8 field_0x4;
- u8 field_0x5;
- u8 field_0x6;
- u8 field_0x7;
- u32 field_0x8;
- u32 field_0xc;
-};
-
-/* 803CAD70-803CB170 027E90 0400+00 3/3 0/0 0/0 .data mEnemyInfo */
-SECTION_DATA static EnemyInfo mEnemyInfo[64] = {
- {0x44, 0x75, 0x6D, 0x6D, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x31, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x04B007D0},
- {0x45, 0x5F, 0x79, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x79, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x79, 0x67, 0x00, 0x00, 0x00, 0x00, 0x0100012C, 0x01F402BC},
- {0x45, 0x5F, 0x79, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC},
- {0x45, 0x5F, 0x72, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x79, 0x6D, 0x62, 0x00, 0x00, 0x00, 0x0000000A, 0x0014001E},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x64, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x6B, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x74, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4},
- {0x45, 0x5F, 0x74, 0x6B, 0x32, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4},
- {0x45, 0x5F, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x64, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x64, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x03840708},
- {0x45, 0x5F, 0x6B, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010000C8, 0x01900258},
- {0x45, 0x5F, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x62, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x48, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x68, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x000001F4, 0x03200514},
- {0x45, 0x5F, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x6F, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x66, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x66, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x62, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x6D, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x032005DC},
- {0x45, 0x5F, 0x6E, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C},
- {0x45, 0x5F, 0x70, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x72, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x67, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384},
- {0x45, 0x5F, 0x68, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC},
- {0x45, 0x5F, 0x67, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01000640, 0x0BB80FA0},
- {0x45, 0x5F, 0x6D, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C},
- {0x45, 0x5F, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384},
- {0x45, 0x5F, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x64, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x6D, 0x32, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x73, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01000190, 0x025805DC},
- {0x45, 0x5F, 0x72, 0x64, 0x62, 0x00, 0x00, 0x00, 0x010001F4, 0x03E805DC},
- {0x45, 0x5F, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x7A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x67, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x42, 0x5F, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x000003E8, 0x07D00FA0},
- {0x45, 0x5F, 0x6D, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x45, 0x5F, 0x7A, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
- {0x42, 0x5F, 0x74, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
-};
-
/* 80455B80-80455B84 004180 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */
-SECTION_SDATA2 static u32 sAreaDefault = 0x010002BC;
-
-/* 80455B84-80455B88 004184 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455B84 = 0x044C05DC;
+static Z2EnemyArea const sAreaDefault = {true, 700, 1100, 1500};
/* 80455B88-80455B8C 004188 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */
-SECTION_SDATA2 static u32 sAreaFloating = 0x000002BC;
-
-/* 80455B8C-80455B90 00418C 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455B8C = 0x044C05DC;
+static Z2EnemyArea const sAreaFloating = {false, 700, 1100, 1500};
/* 80455B90-80455B94 004190 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */
-SECTION_SDATA2 static u32 sAreaWide = 0x010002BC;
-
-/* 80455B94-80455B98 004194 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455B94 = 0x05DC0CE4;
+static Z2EnemyArea const sAreaWide = {true, 700, 1500, 3300};
/* 80455B98-80455B9C 004198 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */
-SECTION_SDATA2 static u32 sAreaWideFloating = 0x000002BC;
-
-/* 80455B9C-80455BA0 00419C 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455B9C = 0x05DC0CE4;
+static Z2EnemyArea const sAreaWideFloating = {false, 700, 1500, 3300};
/* 80455BA0-80455BA4 0041A0 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */
-SECTION_SDATA2 static u32 sAreaSmall = 0x0100012C;
-
-/* 80455BA4-80455BA8 0041A4 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BA4 = 0x02BC03E8;
+static Z2EnemyArea const sAreaSmall = {true, 300, 700, 1000};
/* 80455BA8-80455BAC 0041A8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */
-SECTION_SDATA2 static u32 sAreaSmallFloating = 0x000001F4;
+static Z2EnemyArea const sAreaSmallFloating = {false, 500, 800, 1200};
-/* 80455BAC-80455BB0 0041AC 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u32 data_80455BAC = 0x032004B0;
+struct EnemyInfo {
+ char mName[8];
+ Z2EnemyArea mEnemyArea;
+};
+
+/* 803CAD70-803CB170 027E90 0400+00 3/3 0/0 0/0 .data mEnemyInfo */
+static EnemyInfo mEnemyInfo[64] = {
+ {"Dummy", sAreaDefault},
+ {"E_s1", {true, 700, 1200, 2000}},
+ {"E_yk", sAreaSmallFloating},
+ {"E_yr", sAreaWideFloating},
+ {"E_yg", {true, 300, 500, 700}},
+ {"E_yc", sAreaWideFloating},
+ {"E_yd", {true, 500, 900, 1500}},
+ {"E_rdy", sAreaDefault},
+ {"E_ymb", {false, 10, 20, 30}},
+ {"", sAreaDefault},
+ {"E_wb", sAreaDefault},
+ {"E_rd", sAreaDefault},
+ {"E_dn", sAreaDefault},
+ {"E_kr", sAreaWideFloating},
+ {"E_st", sAreaDefault},
+ {"E_tk", {true, 700, 1500, 2500}},
+ {"E_tk2", {true, 700, 1500, 2500}},
+ {"E_cr", sAreaSmall},
+ {"E_df", sAreaDefault},
+ {"E_fs", sAreaDefault},
+ {"E_SB", sAreaDefault},
+ {"E_PM", sAreaDefault},
+ {"E_db", {true, 500, 900, 1800}},
+ {"E_kg", sAreaSmall},
+ {"E_sh", sAreaDefault},
+ {"E_sf", sAreaDefault},
+ {"E_bs", {true, 200, 400, 600}},
+ {"E_SM", sAreaDefault},
+ {"E_ba", sAreaSmallFloating},
+ {"E_bu", sAreaFloating},
+ {"E_HM", sAreaDefault},
+ {"E_ge", sAreaFloating},
+ {"E_hz", {false, 500, 800, 1300}},
+ {"E_ws", sAreaSmallFloating},
+ {"E_oc", sAreaDefault},
+ {"E_fz", sAreaDefault},
+ {"E_fb", sAreaDefault},
+ {"E_bg", sAreaSmall},
+ {"E_mm", {true, 500, 800, 1500}},
+ {"E_nz", {true, 500, 700, 1100}},
+ {"E_po", sAreaWide},
+ {"E_rb", sAreaDefault},
+ {"E_sg", {true, 500, 700, 900}},
+ {"E_hb", {true, 500, 900, 1500}},
+ {"E_gb", {true, 1600, 3000, 4000}},
+ {"E_ms", {true, 500, 700, 1100}},
+ {"E_dd", sAreaDefault},
+ {"E_bi", {true, 500, 700, 900}},
+ {"E_tt", sAreaSmallFloating},
+ {"E_ai", sAreaDefault},
+ {"E_dk", sAreaSmall},
+ {"E_ww", sAreaWide},
+ {"E_gi", sAreaDefault},
+ {"E_sm2", sAreaDefault},
+ {"E_sw", {true, 400, 600, 1500}},
+ {"E_rdb", {true, 500, 1000, 1500}},
+ {"E_kk", sAreaDefault},
+ {"E_hp", sAreaDefault},
+ {"E_zh", sAreaDefault},
+ {"E_gm", sAreaSmall},
+ {"B_GG", {false, 1000, 2000, 4000}},
+ {"E_mf", sAreaDefault},
+ {"E_zm", sAreaDefault},
+ {"B_tn", sAreaDefault},
+};
/* 802BF994-802BFFEC 2BA2D4 0658+00 1/0 1/1 0/0 .text searchEnemy__13Z2SoundObjMgrFv */
void Z2SoundObjMgr::searchEnemy() {
@@ -157,7 +129,7 @@ void Z2SoundObjMgr::searchEnemy() {
bool bVar7 = false;
bool local_96 = false;
bool iVar8 = false;
- if (Z2GetSeqMgr()->getMainBgmID() == 0x1000041) {
+ if (Z2GetSeqMgr()->getMainBgmID() == Z2BGM_HOLY_FOREST) {
iVar8 = true;
}
u8 iVar16 = 0;
@@ -233,13 +205,12 @@ void Z2SoundObjMgr::searchEnemy() {
if (iVar10 != NULL) {
Vec* iVar14 = Z2GetLink()->getCurrentPos();
if (iVar14 != NULL) {
- Z2EnemyArea local_88;
- __memcpy(&local_88, &mEnemyInfo[enemyId].field_0x8, 8);
+ Z2EnemyArea local_88 = mEnemyInfo[enemyId].mEnemyArea;
if (mForceBattle) {
local_88 = mEnemyArea;
}
f32 fVar2 = 2.0f;
- if (local_88.field_0x0 == 1) {
+ if (local_88.field_0x0 == true) {
fVar2 = 4.0f;
}
Vec local_80 = {0.0f, 0.0f, 0.0f};
@@ -369,7 +340,7 @@ void Z2SoundObjMgr::setGhostEnemyState(u8 p1) {
u8 Z2SoundObjMgr::getEnemyID(char const* param_0, JSULink<Z2CreatureEnemy>* param_1) {
if (param_0 != NULL) {
for (u8 uVar2 = 0; uVar2 < 0x40; uVar2++) {
- if (strcmp(param_0, (char*)&mEnemyInfo[(u32)uVar2].field_0x0) == 0) {
+ if (strcmp(param_0, mEnemyInfo[(u32)uVar2].mName) == 0) {
append(param_1);
return uVar2;
}
@@ -431,13 +402,3 @@ bool Z2SoundObjMgr::removeEnemy(JSULink<Z2CreatureEnemy>* param_0) {
u8 Z2SoundObjMgr::isTwilightBattle() {
return mTwilightBattle;
}
-
-/* 802C01EC-802C03C8 2BAB2C 01DC+00 0/0 1/0 0/0 .text __sinit_Z2SoundObjMgr_cpp */
-void __sinit_Z2SoundObjMgr_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x802C01EC, __sinit_Z2SoundObjMgr_cpp);
-#pragma pop \ No newline at end of file
diff --git a/src/Z2AudioLib/Z2SpeechMgr2.cpp b/src/Z2AudioLib/Z2SpeechMgr2.cpp
index cf0410558f..02a77b8c1c 100644
--- a/src/Z2AudioLib/Z2SpeechMgr2.cpp
+++ b/src/Z2AudioLib/Z2SpeechMgr2.cpp
@@ -6,16 +6,15 @@
#include "Z2AudioLib/Z2SpeechMgr2.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
-#include "JSystem/J3DU/J3DUD.h"
-#include "dol2asm.h"
+#include "JSystem/JMath/JMath.h"
//
// Types:
//
typedef struct {
- u8** field_0x0;
- u8** field_0x4;
+ const u8* field_0x0;
+ const u8* field_0x4;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
@@ -25,133 +24,42 @@ typedef struct {
struct Z2MdnPrm {
static u8 const sReply[100];
- static u8 const sReplyTail[10 + 2 /* padding */];
+ static u8 const sReplyTail[10];
static u8 const sJoke[100];
- static u8 const sJokeTail[10 + 2 /* padding */];
+ static u8 const sJokeTail[10];
static u8 const sSexy[100];
- static u8 const sSexyTail[10 + 2 /* padding */];
+ static u8 const sSexyTail[10];
static u8 const sRidicule[100];
- static u8 const sRidiculeTail[10 + 2 /* padding */];
+ static u8 const sRidiculeTail[10];
static u8 const sBoring[108];
- static u8 const sIrritated[94 + 2 /* padding */];
- static u8 const sIrritatedTail[10 + 2 /* padding */];
- static u8 const sOrder[114 + 2 /* padding */];
- static u8 const sResent[106 + 2 /* padding */];
- static u8 const sCheerful[106 + 2 /* padding */];
- static u8 const sConfused[106 + 2 /* padding */];
+ static u8 const sIrritated[94];
+ static u8 const sIrritatedTail[10];
+ static u8 const sOrder[114];
+ static u8 const sResent[106];
+ static u8 const sCheerful[106];
+ static u8 const sConfused[106];
static u8 const sHostility[104];
- static u8 const sTired[106 + 2 /* padding */];
- static u8 const sSerious[106 + 2 /* padding */];
+ static u8 const sTired[106];
+ static u8 const sSerious[106];
static u8 const sReplyb[84];
static u8 const sApologize[100];
- static u8 const sApologizeTail[9 + 3 /* padding */];
+ static u8 const sApologizeTail[9];
static u8 const sDeside[100];
static u8 const sAfford[104];
static u8 const sAffordTail[12];
static sPrmStruct const sPrm[17];
- static u8 sBoringTail[6 + 2 /* padding */];
- static u8 sOrderTail[6 + 2 /* padding */];
- static u8 sResentTail[5 + 3 /* padding */];
- static u8 sCheerfulTail[8];
- static u8 sConfusedTail[5 + 3 /* padding */];
- static u8 sHostilityTail[7 + 1 /* padding */];
- static u8 sTiredTail[8];
- static u8 sSeriousTail[7 + 1 /* padding */];
- static u8 sReplybTail[7 + 1 /* padding */];
- static u8 sDesideTail[8];
+ static u8 const sBoringTail[6];
+ static u8 const sOrderTail[6];
+ static u8 const sResentTail[5];
+ static u8 const sCheerfulTail[8];
+ static u8 const sConfusedTail[5];
+ static u8 const sHostilityTail[7];
+ static u8 const sTiredTail[8];
+ static u8 const sSeriousTail[7];
+ static u8 const sReplybTail[7];
+ static u8 const sDesideTail[8];
};
-//
-// Forward References:
-//
-
-extern "C" void __ct__12Z2SpeechMgr2Fv();
-extern "C" void __dt__15Z2SpeechStarterFv();
-extern "C" void setString__12Z2SpeechMgr2FPCUssUcUs();
-extern "C" void setTextCount__12Z2SpeechMgr2Fs();
-extern "C" void speakOneWord__12Z2SpeechMgr2Fb();
-extern "C" void isNonVerbal__12Z2SpeechMgr2Fv();
-extern "C" void selectUnit__12Z2SpeechMgr2Fb();
-extern "C" void selectTail__12Z2SpeechMgr2Fv();
-extern "C" void framework__12Z2SpeechMgr2Fv();
-extern "C" void playOneShotVoice__12Z2SpeechMgr2FUcUsP3VecSc();
-extern "C" void isMidnaSpeak__12Z2SpeechMgr2Fv();
-extern "C" void __ct__15Z2SpeechStarterFv();
-extern "C" void func_802CCFF8();
-extern "C" u8 const sReply__8Z2MdnPrm[100];
-extern "C" u8 const sReplyTail__8Z2MdnPrm[10 + 2 /* padding */];
-extern "C" u8 const sJoke__8Z2MdnPrm[100];
-extern "C" u8 const sJokeTail__8Z2MdnPrm[10 + 2 /* padding */];
-extern "C" u8 const sSexy__8Z2MdnPrm[100];
-extern "C" u8 const sSexyTail__8Z2MdnPrm[10 + 2 /* padding */];
-extern "C" u8 const sRidicule__8Z2MdnPrm[100];
-extern "C" u8 const sRidiculeTail__8Z2MdnPrm[10 + 2 /* padding */];
-extern "C" u8 const sBoring__8Z2MdnPrm[108];
-extern "C" u8 const sIrritated__8Z2MdnPrm[94 + 2 /* padding */];
-extern "C" u8 const sIrritatedTail__8Z2MdnPrm[10 + 2 /* padding */];
-extern "C" u8 const sOrder__8Z2MdnPrm[114 + 2 /* padding */];
-extern "C" u8 const sResent__8Z2MdnPrm[106 + 2 /* padding */];
-extern "C" u8 const sCheerful__8Z2MdnPrm[106 + 2 /* padding */];
-extern "C" u8 const sConfused__8Z2MdnPrm[106 + 2 /* padding */];
-extern "C" u8 const sHostility__8Z2MdnPrm[104];
-extern "C" u8 const sTired__8Z2MdnPrm[106 + 2 /* padding */];
-extern "C" u8 const sSerious__8Z2MdnPrm[106 + 2 /* padding */];
-extern "C" u8 const sReplyb__8Z2MdnPrm[84];
-extern "C" u8 const sApologize__8Z2MdnPrm[100];
-extern "C" u8 const sApologizeTail__8Z2MdnPrm[9 + 3 /* padding */];
-extern "C" u8 const sDeside__8Z2MdnPrm[100];
-extern "C" u8 const sAfford__8Z2MdnPrm[104];
-extern "C" u8 const sAffordTail__8Z2MdnPrm[12];
-extern "C" void* const sPrm__8Z2MdnPrm[51];
-extern "C" u8 sBoringTail__8Z2MdnPrm[6 + 2 /* padding */];
-extern "C" u8 sOrderTail__8Z2MdnPrm[6 + 2 /* padding */];
-extern "C" u8 sResentTail__8Z2MdnPrm[5 + 3 /* padding */];
-extern "C" u8 sCheerfulTail__8Z2MdnPrm[8];
-extern "C" u8 sConfusedTail__8Z2MdnPrm[5 + 3 /* padding */];
-extern "C" u8 sHostilityTail__8Z2MdnPrm[7 + 1 /* padding */];
-extern "C" u8 sTiredTail__8Z2MdnPrm[8];
-extern "C" u8 sSeriousTail__8Z2MdnPrm[7 + 1 /* padding */];
-extern "C" u8 sReplybTail__8Z2MdnPrm[7 + 1 /* padding */];
-extern "C" u8 sDesideTail__8Z2MdnPrm[8];
-
-//
-// External References:
-//
-
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void releaseSound__14JAISoundHandleFv();
-extern "C" void stop__8JAISoundFv();
-extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
-extern "C" void movePitch__18JAISoundParamsMoveFfUl();
-extern "C" void moveFxMix__18JAISoundParamsMoveFfUl();
-extern "C" void movePan__18JAISoundParamsMoveFfUl();
-extern "C" void moveDolby__18JAISoundParamsMoveFfUl();
-extern "C" void __dt__15JAISoundStarterFv();
-extern "C" void __ct__14Z2SoundStarterFb();
-extern "C" void func_802AABF4();
-extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc();
-extern "C" void subBgmStart__8Z2SeqMgrFUl();
-extern "C" void getFogDensity__10Z2EnvSeMgrFv();
-extern "C" void __dl__FPv();
-extern "C" void __ct__Q25JMath13TRandom_fast_FUl();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */];
-extern "C" extern u8 data_80450B3C[4];
-extern "C" extern u8 data_80450B7C[4];
-extern "C" extern u8 data_80450B80[4];
-extern "C" extern u8 data_80450B84[4];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 __OSReport_disable;
-
-//
-// Declarations:
-//
-
/* 802CBC60-802CBCEC 2C65A0 008C+00 0/0 1/1 0/0 .text __ct__12Z2SpeechMgr2Fv */
Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0) {
field_0x3f8 = 0;
@@ -165,159 +73,6 @@ Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0)
}
}
-/* ############################################################################################## */
-/* 803CBD08-803CBED0 -00001 01C8+00 1/1 0/0 0/0 .data @3729 */
-SECTION_DATA static void* lit_3729[114] = {
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xA8),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x90),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x3C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x30),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x3C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x30),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x6C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78),
- (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0),
-};
-
-/* 803CBED0-803CBF24 -00001 0054+00 1/1 0/0 0/0 .data @3839 */
-SECTION_DATA static void* lit_3839[21] = {
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x13C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x14C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x15C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x16C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x17C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x18C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x19C),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1AC),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1BC),
- (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1CC),
-};
-
-/* 803CBF24-803CBF38 029044 0014+00 2/2 1/1 0/0 .data __vt__15Z2SpeechStarter */
-SECTION_DATA extern void* __vt__15Z2SpeechStarter[5] = {
- (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__15Z2SpeechStarterFv,
- (void*)func_802AABF4, (void*)func_802CCFF8,
-};
-
-/* 802CBCEC-802CBD88 2C662C 009C+00 1/0 0/0 0/0 .text __dt__15Z2SpeechStarterFv */
-//Z2SpeechStarter::~Z2SpeechStarter() {}
-
/* 802CBD88-802CBF60 2C66C8 01D8+00 1/0 1/1 0/0 .text setString__12Z2SpeechMgr2FPCUssUcUs
*/
void Z2SpeechMgr2::setString(u16 const* param_1, s16 param_2, u8 param_3, u16 param_4) {
@@ -460,128 +215,56 @@ void Z2SpeechMgr2::setString(u16 const* param_1, s16 param_2, u8 param_3, u16 pa
selectUnit(false);
}
-
-/* ############################################################################################## */
/* 80455EE0-80455EE8 0044E0 0006+02 1/0 0/0 0/0 .sdata2 sBoringTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sBoringTail[6 + 2 /* padding */] = {
- 0x92,
- 0x58,
- 0x59,
- 0x5B,
- 0x70,
- 0x71,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sBoringTail[6] = {
+ 0x92, 0x58, 0x59, 0x5B, 0x70, 0x71,
};
/* 80455EE8-80455EF0 0044E8 0006+02 1/0 0/0 0/0 .sdata2 sOrderTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sOrderTail[6 + 2 /* padding */] = {
- 0x60,
- 0xA8,
- 0x5B,
- 0x4E,
- 0x5D,
- 0x87,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sOrderTail[6] = {
+ 0x60, 0xA8, 0x5B, 0x4E, 0x5D, 0x87,
};
/* 80455EF0-80455EF8 0044F0 0005+03 1/0 0/0 0/0 .sdata2 sResentTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sResentTail[5 + 3 /* padding */] = {
- 0x4A,
- 0x98,
- 0x8A,
- 0x7E,
- 0x57,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sResentTail[5] = {
+ 0x4A, 0x98, 0x8A, 0x7E, 0x57,
};
/* 80455EF8-80455F00 0044F8 0008+00 1/0 0/0 0/0 .sdata2 sCheerfulTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sCheerfulTail[8] = {
+u8 const Z2MdnPrm::sCheerfulTail[8] = {
0x60, 0x6D, 0x4D, 0x44, 0x9C, 0x54, 0x70, 0x7B,
};
/* 80455F00-80455F08 004500 0005+03 1/0 0/0 0/0 .sdata2 sConfusedTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sConfusedTail[5 + 3 /* padding */] = {
- 0x2C,
- 0x42,
- 0x4C,
- 0x7C,
- 0x49,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sConfusedTail[5] = {
+ 0x2C, 0x42, 0x4C, 0x7C, 0x49,
};
/* 80455F08-80455F10 004508 0007+01 1/0 0/0 0/0 .sdata2 sHostilityTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sHostilityTail[7 + 1 /* padding */] = {
- 0x97,
- 0x67,
- 0x94,
- 0x6A,
- 0x66,
- 0x4F,
- 0x6A,
- /* padding */
- 0x00,
+u8 const Z2MdnPrm::sHostilityTail[7] = {
+ 0x97, 0x67, 0x94, 0x6A, 0x66, 0x4F, 0x6A,
};
/* 80455F10-80455F18 004510 0008+00 1/0 0/0 0/0 .sdata2 sTiredTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sTiredTail[8] = {
+u8 const Z2MdnPrm::sTiredTail[8] = {
0x66, 0x6F, 0x3B, 0x7A, 0x49, 0x91, 0x5C, 0x6A,
};
/* 80455F18-80455F20 004518 0007+01 1/0 0/0 0/0 .sdata2 sSeriousTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sSeriousTail[7 + 1 /* padding */] = {
- 0x7B,
- 0x69,
- 0x4B,
- 0x61,
- 0x52,
- 0x59,
- 0x87,
- /* padding */
- 0x00,
+u8 const Z2MdnPrm::sSeriousTail[7] = {
+ 0x7B, 0x69, 0x4B, 0x61, 0x52, 0x59, 0x87,
};
/* 80455F20-80455F28 004520 0007+01 1/0 0/0 0/0 .sdata2 sReplybTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sReplybTail[7 + 1 /* padding */] = {
- 0x4F,
- 0x4A,
- 0xA2,
- 0x4F,
- 0x65,
- 0x98,
- 0x5C,
- /* padding */
- 0x00,
+u8 const Z2MdnPrm::sReplybTail[7] = {
+ 0x4F, 0x4A, 0xA2, 0x4F, 0x65, 0x98, 0x5C,
};
/* 80455F28-80455F30 004528 0008+00 1/0 0/0 0/0 .sdata2 sDesideTail__8Z2MdnPrm */
-SECTION_SDATA2 u8 Z2MdnPrm::sDesideTail[8] = {
+u8 const Z2MdnPrm::sDesideTail[8] = {
0x64, 0x2E, 0x4A, 0x57, 0x80, 0x48, 0x7C, 0x5F,
};
-/* 80455F30-80455F34 004530 0004+00 2/2 0/0 0/0 .sdata2 @3836 */
-SECTION_SDATA2 static u8 lit_3836[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80455F34-80455F38 004534 0004+00 6/6 0/0 0/0 .sdata2 @3837 */
-SECTION_SDATA2 static f32 lit_3837 = 1.0f;
-
-/* 80455F38-80455F3C 004538 0004+00 4/4 0/0 0/0 .sdata2 @3838 */
-SECTION_SDATA2 static f32 lit_3838 = -1.0f;
-
/* 802CBF60-802CC190 2C68A0 0230+00 1/0 2/2 0/0 .text setTextCount__12Z2SpeechMgr2Fs */
void Z2SpeechMgr2::setTextCount(s16 param_0) {
if (field_0x3fe != 0x63) {
@@ -646,14 +329,6 @@ void Z2SpeechMgr2::setTextCount(s16 param_0) {
}
}
-
-/* ############################################################################################## */
-/* 80455F3C-80455F40 00453C 0004+00 2/2 0/0 0/0 .sdata2 @3885 */
-SECTION_SDATA2 static f32 lit_3885 = 127.0f;
-
-/* 80455F40-80455F48 004540 0008+00 2/2 0/0 0/0 .sdata2 @3887 */
-SECTION_SDATA2 static f64 lit_3887 = 4503601774854144.0 /* cast s32 to float */;
-
/* 802CC190-802CC2FC 2C6AD0 016C+00 1/1 1/1 0/0 .text speakOneWord__12Z2SpeechMgr2Fb */
void Z2SpeechMgr2::speakOneWord(bool param_0) {
if (Z2GetSceneMgr()->isSceneExist() && (field_0x3fe == 1 || field_0x3fe == 2) &&
@@ -766,7 +441,7 @@ bool Z2SpeechMgr2::isNonVerbal() {
}
/* 8039C260-8039C2C4 0288C0 0064+00 1/0 0/0 0/0 .rodata sReply__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sReply[100] = {
+u8 const Z2MdnPrm::sReply[100] = {
0x6A, 0x8A, 0x50, 0x5F, 0x53, 0x37, 0x37, 0x4F, 0x4F, 0x5E, 0xAA, 0x46, 0x52, 0x5A, 0x5A,
0x4F, 0x4F, 0x45, 0x45, 0x56, 0x64, 0x79, 0x79, 0x79, 0x87, 0x95, 0x95, 0x89, 0x89, 0x4C,
0x4C, 0x4B, 0x52, 0x41, 0x41, 0x5B, 0x5F, 0x71, 0x53, 0x47, 0x89, 0x7D, 0x77, 0x88, 0x88,
@@ -775,28 +450,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sReply[100] = {
0x5D, 0x60, 0x63, 0x63, 0x54, 0x3E, 0x38, 0x38, 0x39, 0x35, 0x41, 0x41, 0x41, 0x41, 0x56,
0x71, 0x85, 0x85, 0xA2, 0xA2, 0x52, 0x52, 0x5C, 0x5C, 0x75,
};
-COMPILER_STRIP_GATE(0x8039C260, &Z2MdnPrm::sReply);
/* 8039C2C4-8039C2D0 028924 000A+02 1/0 0/0 0/0 .rodata sReplyTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sReplyTail[10 + 2 /* padding */] = {
- 0x5E,
- 0x7F,
- 0x68,
- 0x39,
- 0x56,
- 0x75,
- 0x47,
- 0x71,
- 0x7D,
- 0x33,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sReplyTail[10] = {
+ 0x5E, 0x7F, 0x68, 0x39, 0x56, 0x75, 0x47, 0x71, 0x7D, 0x33,
};
-COMPILER_STRIP_GATE(0x8039C2C4, &Z2MdnPrm::sReplyTail);
/* 8039C2D0-8039C334 028930 0064+00 1/0 0/0 0/0 .rodata sJoke__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sJoke[100] = {
+u8 const Z2MdnPrm::sJoke[100] = {
0x68, 0x57, 0x57, 0x55, 0x55, 0x51, 0x5B, 0x64, 0x6B, 0x7B, 0x7B, 0x5C, 0x77, 0x97, 0x8D,
0x97, 0x97, 0x8D, 0x66, 0x69, 0xA2, 0x5C, 0x87, 0x4F, 0x69, 0x5F, 0x5F, 0x83, 0x83, 0x82,
0x7F, 0x96, 0x96, 0xB0, 0x70, 0xA1, 0x6D, 0x6D, 0x6D, 0x59, 0x4C, 0x4B, 0x5A, 0x40, 0x4A,
@@ -805,28 +466,13 @@ SECTION_RODATA u8 const Z2MdnPrm::sJoke[100] = {
0x64, 0x60, 0xB1, 0x6C, 0x6D, 0x6D, 0x7E, 0x7A, 0x97, 0x97, 0x99, 0xA5, 0x89, 0x90, 0xA4,
0x45, 0x45, 0x29, 0x4C, 0x4B, 0x64, 0x64, 0x60, 0x5C, 0xB1,
};
-COMPILER_STRIP_GATE(0x8039C2D0, &Z2MdnPrm::sJoke);
-
/* 8039C334-8039C340 028994 000A+02 1/0 0/0 0/0 .rodata sJokeTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sJokeTail[10 + 2 /* padding */] = {
- 0x51,
- 0x97,
- 0x60,
- 0xB0,
- 0x6F,
- 0x5E,
- 0x5A,
- 0xA6,
- 0x4F,
- 0x4F,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sJokeTail[10] = {
+ 0x51, 0x97, 0x60, 0xB0, 0x6F, 0x5E, 0x5A, 0xA6, 0x4F, 0x4F,
};
-COMPILER_STRIP_GATE(0x8039C334, &Z2MdnPrm::sJokeTail);
/* 8039C340-8039C3A4 0289A0 0064+00 1/0 0/0 0/0 .rodata sSexy__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sSexy[100] = {
+u8 const Z2MdnPrm::sSexy[100] = {
0x5E, 0x60, 0x5F, 0x63, 0x63, 0x72, 0x72, 0x78, 0x4D, 0x7A, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x59, 0x59, 0x7A, 0x7A, 0xA5, 0x90, 0x8D, 0x86, 0x62, 0x72, 0x79, 0x79, 0x86, 0x7F, 0x8B,
0x85, 0x7B, 0x7B, 0x5E, 0x5E, 0x6D, 0x6D, 0x88, 0x5F, 0xA3, 0xA3, 0x95, 0x95, 0x7F, 0x79,
@@ -835,28 +481,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sSexy[100] = {
0x76, 0x79, 0x79, 0x5C, 0x6A, 0x90, 0xAB, 0x5C, 0x7D, 0x52, 0x49, 0x54, 0x57, 0x49, 0x55,
0x79, 0x65, 0x65, 0x4A, 0x5C, 0x78, 0x78, 0x8B, 0x8D, 0x7C,
};
-COMPILER_STRIP_GATE(0x8039C340, &Z2MdnPrm::sSexy);
/* 8039C3A4-8039C3B0 028A04 000A+02 1/0 0/0 0/0 .rodata sSexyTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sSexyTail[10 + 2 /* padding */] = {
- 0x52,
- 0x79,
- 0x82,
- 0xA5,
- 0x62,
- 0x86,
- 0x3F,
- 0x7D,
- 0x57,
- 0x7C,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sSexyTail[10] = {
+ 0x52, 0x79, 0x82, 0xA5, 0x62, 0x86, 0x3F, 0x7D, 0x57, 0x7C,
};
-COMPILER_STRIP_GATE(0x8039C3A4, &Z2MdnPrm::sSexyTail);
/* 8039C3B0-8039C414 028A10 0064+00 1/0 0/0 0/0 .rodata sRidicule__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sRidicule[100] = {
+u8 const Z2MdnPrm::sRidicule[100] = {
0xA7, 0x5A, 0x5A, 0x52, 0x52, 0x85, 0x85, 0x8C, 0x63, 0x73, 0x73, 0x90, 0x50, 0x46, 0x74,
0x74, 0xA3, 0xA7, 0x41, 0x51, 0x58, 0x34, 0x34, 0x2A, 0x5A, 0x81, 0x5D, 0x42, 0x4B, 0x70,
0x70, 0xB1, 0xB1, 0xB1, 0xB1, 0x65, 0x6A, 0xB1, 0x54, 0xA8, 0xA8, 0x6B, 0x6C, 0x55, 0x55,
@@ -865,28 +497,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sRidicule[100] = {
0x79, 0x79, 0x7C, 0x7C, 0x6C, 0x6C, 0x73, 0x73, 0x6E, 0x6E, 0x36, 0x3F, 0x3C, 0x56, 0x2D,
0x2D, 0x2D, 0x2D, 0x8C, 0x8C, 0x8B, 0x8B, 0x93, 0x93, 0x6E,
};
-COMPILER_STRIP_GATE(0x8039C3B0, &Z2MdnPrm::sRidicule);
/* 8039C414-8039C420 028A74 000A+02 1/0 0/0 0/0 .rodata sRidiculeTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sRidiculeTail[10 + 2 /* padding */] = {
- 0x81,
- 0x67,
- 0x6D,
- 0x8C,
- 0x90,
- 0x85,
- 0xB1,
- 0x4D,
- 0x4F,
- 0x6E,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sRidiculeTail[10] = {
+ 0x81, 0x67, 0x6D, 0x8C, 0x90, 0x85, 0xB1, 0x4D, 0x4F, 0x6E,
};
-COMPILER_STRIP_GATE(0x8039C414, &Z2MdnPrm::sRidiculeTail);
/* 8039C420-8039C48C 028A80 006C+00 1/0 0/0 0/0 .rodata sBoring__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sBoring[108] = {
+u8 const Z2MdnPrm::sBoring[108] = {
0x8E, 0x9C, 0x9C, 0x5A, 0x5A, 0x52, 0x52, 0x5B, 0x5C, 0x56, 0x5C, 0x52, 0x52, 0x2D, 0x2D, 0x5B,
0x59, 0x56, 0x56, 0x56, 0x56, 0x6B, 0x6B, 0x58, 0x4C, 0x8E, 0x8E, 0x59, 0x61, 0x54, 0xA0, 0x4D,
0x5D, 0x59, 0x48, 0x30, 0x30, 0x5B, 0x5B, 0x5B, 0x4A, 0x64, 0x64, 0x7A, 0x7A, 0x92, 0x62, 0x62,
@@ -895,594 +513,69 @@ SECTION_RODATA u8 const Z2MdnPrm::sBoring[108] = {
0x89, 0x5A, 0x5A, 0x63, 0x66, 0x5E, 0x5E, 0x71, 0x62, 0x55, 0x55, 0x85, 0x85, 0x5B, 0x5B, 0x5B,
0x5B, 0x5E, 0x70, 0x56, 0x56, 0x4C, 0x4C, 0x59, 0x59, 0x5B, 0x5B, 0x71,
};
-COMPILER_STRIP_GATE(0x8039C420, &Z2MdnPrm::sBoring);
/* 8039C48C-8039C4EC 028AEC 005E+02 1/0 0/0 0/0 .rodata sIrritated__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sIrritated[94 + 2 /* padding */] = {
- 0x6C,
- 0x91,
- 0x67,
- 0x8B,
- 0x8B,
- 0xA2,
- 0xA2,
- 0xAB,
- 0x48,
- 0x64,
- 0x73,
- 0x61,
- 0x61,
- 0x64,
- 0x64,
- 0x6D,
- 0x60,
- 0x7E,
- 0x4A,
- 0x55,
- 0x6A,
- 0x63,
- 0x66,
- 0x78,
- 0x5C,
- 0x5A,
- 0x6E,
- 0x79,
- 0x75,
- 0x62,
- 0x62,
- 0x57,
- 0x85,
- 0x3F,
- 0x3C,
- 0x83,
- 0x83,
- 0x9B,
- 0x78,
- 0x65,
- 0x65,
- 0x67,
- 0x65,
- 0x65,
- 0x87,
- 0x88,
- 0x88,
- 0x3D,
- 0x4C,
- 0x68,
- 0x68,
- 0x4D,
- 0x5B,
- 0x6E,
- 0x6E,
- 0x74,
- 0x56,
- 0x63,
- 0x6B,
- 0x8C,
- 0x8C,
- 0x93,
- 0x93,
- 0x4E,
- 0x4E,
- 0x69,
- 0x77,
- 0x75,
- 0x75,
- 0x71,
- 0x79,
- 0x4F,
- 0x4F,
- 0x6F,
- 0x4E,
- 0x42,
- 0x71,
- 0x75,
- 0x5E,
- 0x68,
- 0xAD,
- 0x6E,
- 0x72,
- 0x82,
- 0x83,
- 0x87,
- 0x85,
- 0x85,
- 0x85,
- 0x8E,
- 0x60,
- 0x6D,
- 0x80,
- 0x80,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sIrritated[94] = {
+ 0x6C, 0x91, 0x67, 0x8B, 0x8B, 0xA2, 0xA2, 0xAB, 0x48, 0x64, 0x73, 0x61, 0x61, 0x64, 0x64, 0x6D,
+ 0x60, 0x7E, 0x4A, 0x55, 0x6A, 0x63, 0x66, 0x78, 0x5C, 0x5A, 0x6E, 0x79, 0x75, 0x62, 0x62, 0x57,
+ 0x85, 0x3F, 0x3C, 0x83, 0x83, 0x9B, 0x78, 0x65, 0x65, 0x67, 0x65, 0x65, 0x87, 0x88, 0x88, 0x3D,
+ 0x4C, 0x68, 0x68, 0x4D, 0x5B, 0x6E, 0x6E, 0x74, 0x56, 0x63, 0x6B, 0x8C, 0x8C, 0x93, 0x93, 0x4E,
+ 0x4E, 0x69, 0x77, 0x75, 0x75, 0x71, 0x79, 0x4F, 0x4F, 0x6F, 0x4E, 0x42, 0x71, 0x75, 0x5E, 0x68,
+ 0xAD, 0x6E, 0x72, 0x82, 0x83, 0x87, 0x85, 0x85, 0x85, 0x8E, 0x60, 0x6D, 0x80, 0x80,
};
-COMPILER_STRIP_GATE(0x8039C48C, &Z2MdnPrm::sIrritated);
/* 8039C4EC-8039C4F8 028B4C 000A+02 1/0 0/0 0/0 .rodata sIrritatedTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sIrritatedTail[10 + 2 /* padding */] = {
- 0x64,
- 0x61,
- 0x4E,
- 0x91,
- 0xA0,
- 0x85,
- 0x9B,
- 0x67,
- 0x6F,
- 0x64,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sIrritatedTail[10] = {
+ 0x64, 0x61, 0x4E, 0x91, 0xA0, 0x85, 0x9B, 0x67, 0x6F, 0x64,
};
-COMPILER_STRIP_GATE(0x8039C4EC, &Z2MdnPrm::sIrritatedTail);
/* 8039C4F8-8039C56C 028B58 0072+02 1/0 0/0 0/0 .rodata sOrder__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sOrder[114 + 2 /* padding */] = {
- 0x77,
- 0x5F,
- 0x5F,
- 0x73,
- 0x73,
- 0x66,
- 0x66,
- 0x6B,
- 0x6B,
- 0x7A,
- 0x7A,
- 0x60,
- 0x54,
- 0x5F,
- 0x5F,
- 0x69,
- 0x69,
- 0x5A,
- 0x86,
- 0x84,
- 0x84,
- 0x96,
- 0x96,
- 0x94,
- 0x94,
- 0x8A,
- 0x87,
- 0x84,
- 0x5A,
- 0x2C,
- 0x4E,
- 0x52,
- 0x52,
- 0x52,
- 0x52,
- 0x51,
- 0x51,
- 0x6E,
- 0x62,
- 0x5E,
- 0x6C,
- 0xA3,
- 0xA3,
- 0x5B,
- 0x62,
- 0x63,
- 0x63,
- 0x66,
- 0x66,
- 0x51,
- 0x51,
- 0x5B,
- 0x5B,
- 0x78,
- 0x78,
- 0x8F,
- 0x8F,
- 0x83,
- 0x61,
- 0x7A,
- 0x7A,
- 0x4E,
- 0x75,
- 0x81,
- 0x81,
- 0x71,
- 0x71,
- 0x83,
- 0x83,
- 0x66,
- 0x5D,
- 0x5D,
- 0x65,
- 0x47,
- 0x53,
- 0x6D,
- 0x6D,
- 0x8C,
- 0x8F,
- 0x8F,
- 0x8F,
- 0x2C,
- 0x2B,
- 0x6A,
- 0x6A,
- 0x5C,
- 0x5C,
- 0x54,
- 0x54,
- 0x60,
- 0xAC,
- 0xA1,
- 0x4E,
- 0x5B,
- 0x5B,
- 0x5F,
- 0x5F,
- 0x79,
- 0x4A,
- 0x60,
- 0x60,
- 0x5A,
- 0x5A,
- 0x35,
- 0x2E,
- 0x48,
- 0x48,
- 0x69,
- 0x69,
- 0x6D,
- 0x6D,
- 0x94,
- 0x94,
- 0x97,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sOrder[114] = {
+ 0x77, 0x5F, 0x5F, 0x73, 0x73, 0x66, 0x66, 0x6B, 0x6B, 0x7A, 0x7A, 0x60, 0x54, 0x5F, 0x5F,
+ 0x69, 0x69, 0x5A, 0x86, 0x84, 0x84, 0x96, 0x96, 0x94, 0x94, 0x8A, 0x87, 0x84, 0x5A, 0x2C,
+ 0x4E, 0x52, 0x52, 0x52, 0x52, 0x51, 0x51, 0x6E, 0x62, 0x5E, 0x6C, 0xA3, 0xA3, 0x5B, 0x62,
+ 0x63, 0x63, 0x66, 0x66, 0x51, 0x51, 0x5B, 0x5B, 0x78, 0x78, 0x8F, 0x8F, 0x83, 0x61, 0x7A,
+ 0x7A, 0x4E, 0x75, 0x81, 0x81, 0x71, 0x71, 0x83, 0x83, 0x66, 0x5D, 0x5D, 0x65, 0x47, 0x53,
+ 0x6D, 0x6D, 0x8C, 0x8F, 0x8F, 0x8F, 0x2C, 0x2B, 0x6A, 0x6A, 0x5C, 0x5C, 0x54, 0x54, 0x60,
+ 0xAC, 0xA1, 0x4E, 0x5B, 0x5B, 0x5F, 0x5F, 0x79, 0x4A, 0x60, 0x60, 0x5A, 0x5A, 0x35, 0x2E,
+ 0x48, 0x48, 0x69, 0x69, 0x6D, 0x6D, 0x94, 0x94, 0x97,
};
-COMPILER_STRIP_GATE(0x8039C4F8, &Z2MdnPrm::sOrder);
/* 8039C56C-8039C5D8 028BCC 006A+02 1/0 0/0 0/0 .rodata sResent__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sResent[106 + 2 /* padding */] = {
- 0x6F,
- 0x5F,
- 0x5F,
- 0x66,
- 0x66,
- 0x66,
- 0x66,
- 0x55,
- 0x55,
- 0x55,
- 0x55,
- 0x4B,
- 0x4B,
- 0x6B,
- 0x6B,
- 0x86,
- 0x86,
- 0x4A,
- 0x4A,
- 0x6D,
- 0x6D,
- 0x6D,
- 0x6D,
- 0x8C,
- 0x8C,
- 0x84,
- 0x84,
- 0x64,
- 0x64,
- 0x6C,
- 0x6C,
- 0x92,
- 0x92,
- 0x6A,
- 0x5F,
- 0x6F,
- 0x6F,
- 0x62,
- 0x62,
- 0x62,
- 0x75,
- 0x5A,
- 0x5A,
- 0x5A,
- 0x5A,
- 0x60,
- 0x60,
- 0x6A,
- 0x6A,
- 0x76,
- 0x76,
- 0x6A,
- 0x6A,
- 0x7F,
- 0x7F,
- 0x9A,
- 0x9A,
- 0x98,
- 0x56,
- 0x5B,
- 0x5B,
- 0x6F,
- 0x82,
- 0x98,
- 0x98,
- 0x9B,
- 0x9B,
- 0x6E,
- 0x6E,
- 0x61,
- 0x61,
- 0x5C,
- 0x5F,
- 0x67,
- 0x62,
- 0x8A,
- 0xA9,
- 0x65,
- 0x65,
- 0x31,
- 0x31,
- 0x8C,
- 0x8C,
- 0x69,
- 0x69,
- 0x7E,
- 0x67,
- 0x67,
- 0x5B,
- 0x73,
- 0x73,
- 0x65,
- 0x65,
- 0x56,
- 0x56,
- 0x5E,
- 0x5E,
- 0xAA,
- 0xAA,
- 0x9E,
- 0x9E,
- 0x5A,
- 0x5A,
- 0x57,
- 0x57,
- 0x57,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sResent[106] = {
+ 0x6F, 0x5F, 0x5F, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x4B, 0x4B, 0x6B, 0x6B, 0x86,
+ 0x86, 0x4A, 0x4A, 0x6D, 0x6D, 0x6D, 0x6D, 0x8C, 0x8C, 0x84, 0x84, 0x64, 0x64, 0x6C, 0x6C, 0x92,
+ 0x92, 0x6A, 0x5F, 0x6F, 0x6F, 0x62, 0x62, 0x62, 0x75, 0x5A, 0x5A, 0x5A, 0x5A, 0x60, 0x60, 0x6A,
+ 0x6A, 0x76, 0x76, 0x6A, 0x6A, 0x7F, 0x7F, 0x9A, 0x9A, 0x98, 0x56, 0x5B, 0x5B, 0x6F, 0x82, 0x98,
+ 0x98, 0x9B, 0x9B, 0x6E, 0x6E, 0x61, 0x61, 0x5C, 0x5F, 0x67, 0x62, 0x8A, 0xA9, 0x65, 0x65, 0x31,
+ 0x31, 0x8C, 0x8C, 0x69, 0x69, 0x7E, 0x67, 0x67, 0x5B, 0x73, 0x73, 0x65, 0x65, 0x56, 0x56, 0x5E,
+ 0x5E, 0xAA, 0xAA, 0x9E, 0x9E, 0x5A, 0x5A, 0x57, 0x57, 0x57,
};
-COMPILER_STRIP_GATE(0x8039C56C, &Z2MdnPrm::sResent);
/* 8039C5D8-8039C644 028C38 006A+02 1/0 0/0 0/0 .rodata sCheerful__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sCheerful[106 + 2 /* padding */] = {
- 0x64,
- 0x6D,
- 0x6D,
- 0x6D,
- 0x99,
- 0x6D,
- 0x40,
- 0x51,
- 0x51,
- 0x6F,
- 0x6F,
- 0x66,
- 0x66,
- 0x60,
- 0xA7,
- 0xAF,
- 0xB3,
- 0x61,
- 0x61,
- 0xA7,
- 0xA7,
- 0x5E,
- 0x8B,
- 0x75,
- 0x77,
- 0x72,
- 0x72,
- 0x93,
- 0x93,
- 0x8B,
- 0x8B,
- 0x88,
- 0x88,
- 0x77,
- 0x77,
- 0x80,
- 0x80,
- 0x80,
- 0x80,
- 0x67,
- 0x67,
- 0x4D,
- 0x4A,
- 0x69,
- 0x44,
- 0xA1,
- 0x64,
- 0xA8,
- 0xAE,
- 0x85,
- 0x85,
- 0x8D,
- 0x95,
- 0xA9,
- 0xA9,
- 0x91,
- 0x91,
- 0x67,
- 0x69,
- 0x60,
- 0x60,
- 0x5E,
- 0x5E,
- 0x54,
- 0x34,
- 0x6B,
- 0x63,
- 0x4F,
- 0x4F,
- 0x46,
- 0x46,
- 0x55,
- 0x6F,
- 0x6A,
- 0x6A,
- 0x75,
- 0x75,
- 0x75,
- 0x75,
- 0x70,
- 0x70,
- 0x9F,
- 0x9F,
- 0x55,
- 0x55,
- 0x63,
- 0x63,
- 0x63,
- 0x62,
- 0x9C,
- 0x9C,
- 0xA8,
- 0x85,
- 0x65,
- 0x65,
- 0x65,
- 0x65,
- 0x70,
- 0x6B,
- 0x6B,
- 0x6B,
- 0x6D,
- 0x6D,
- 0x57,
- 0x57,
- 0x7B,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sCheerful[106] = {
+ 0x64, 0x6D, 0x6D, 0x6D, 0x99, 0x6D, 0x40, 0x51, 0x51, 0x6F, 0x6F, 0x66, 0x66, 0x60, 0xA7, 0xAF,
+ 0xB3, 0x61, 0x61, 0xA7, 0xA7, 0x5E, 0x8B, 0x75, 0x77, 0x72, 0x72, 0x93, 0x93, 0x8B, 0x8B, 0x88,
+ 0x88, 0x77, 0x77, 0x80, 0x80, 0x80, 0x80, 0x67, 0x67, 0x4D, 0x4A, 0x69, 0x44, 0xA1, 0x64, 0xA8,
+ 0xAE, 0x85, 0x85, 0x8D, 0x95, 0xA9, 0xA9, 0x91, 0x91, 0x67, 0x69, 0x60, 0x60, 0x5E, 0x5E, 0x54,
+ 0x34, 0x6B, 0x63, 0x4F, 0x4F, 0x46, 0x46, 0x55, 0x6F, 0x6A, 0x6A, 0x75, 0x75, 0x75, 0x75, 0x70,
+ 0x70, 0x9F, 0x9F, 0x55, 0x55, 0x63, 0x63, 0x63, 0x62, 0x9C, 0x9C, 0xA8, 0x85, 0x65, 0x65, 0x65,
+ 0x65, 0x70, 0x6B, 0x6B, 0x6B, 0x6D, 0x6D, 0x57, 0x57, 0x7B,
};
-COMPILER_STRIP_GATE(0x8039C5D8, &Z2MdnPrm::sCheerful);
/* 8039C644-8039C6B0 028CA4 006A+02 1/0 0/0 0/0 .rodata sConfused__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sConfused[106 + 2 /* padding */] = {
- 0x83,
- 0x80,
- 0x80,
- 0x82,
- 0x82,
- 0x82,
- 0x82,
- 0x5B,
- 0x75,
- 0x84,
- 0x84,
- 0x84,
- 0x84,
- 0x75,
- 0x75,
- 0x62,
- 0x62,
- 0x62,
- 0x4D,
- 0x56,
- 0x56,
- 0x59,
- 0x59,
- 0x59,
- 0x59,
- 0x74,
- 0x74,
- 0x85,
- 0x7D,
- 0x8D,
- 0x8D,
- 0x70,
- 0x70,
- 0x5A,
- 0x5A,
- 0x6B,
- 0x6B,
- 0x6B,
- 0x6B,
- 0x70,
- 0x79,
- 0x73,
- 0x73,
- 0x71,
- 0x71,
- 0x75,
- 0x75,
- 0x7B,
- 0x7B,
- 0x5F,
- 0x5F,
- 0x62,
- 0x76,
- 0x64,
- 0x7B,
- 0x7B,
- 0x7B,
- 0x7C,
- 0x7F,
- 0x65,
- 0x7C,
- 0x7C,
- 0x68,
- 0x43,
- 0x40,
- 0x67,
- 0x67,
- 0x69,
- 0x69,
- 0x5F,
- 0x5F,
- 0x5D,
- 0x5D,
- 0x5D,
- 0xA2,
- 0xA2,
- 0xA2,
- 0xA6,
- 0xA6,
- 0x9A,
- 0x9A,
- 0x97,
- 0x97,
- 0x97,
- 0x97,
- 0x97,
- 0x97,
- 0x8E,
- 0x8E,
- 0x94,
- 0x8E,
- 0x95,
- 0x95,
- 0x95,
- 0x95,
- 0x42,
- 0x38,
- 0x38,
- 0x38,
- 0x83,
- 0x83,
- 0x8E,
- 0x8E,
- 0x4C,
- 0x56,
- 0x56,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sConfused[106] = {
+ 0x83, 0x80, 0x80, 0x82, 0x82, 0x82, 0x82, 0x5B, 0x75, 0x84, 0x84, 0x84, 0x84, 0x75, 0x75, 0x62,
+ 0x62, 0x62, 0x4D, 0x56, 0x56, 0x59, 0x59, 0x59, 0x59, 0x74, 0x74, 0x85, 0x7D, 0x8D, 0x8D, 0x70,
+ 0x70, 0x5A, 0x5A, 0x6B, 0x6B, 0x6B, 0x6B, 0x70, 0x79, 0x73, 0x73, 0x71, 0x71, 0x75, 0x75, 0x7B,
+ 0x7B, 0x5F, 0x5F, 0x62, 0x76, 0x64, 0x7B, 0x7B, 0x7B, 0x7C, 0x7F, 0x65, 0x7C, 0x7C, 0x68, 0x43,
+ 0x40, 0x67, 0x67, 0x69, 0x69, 0x5F, 0x5F, 0x5D, 0x5D, 0x5D, 0xA2, 0xA2, 0xA2, 0xA6, 0xA6, 0x9A,
+ 0x9A, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x8E, 0x8E, 0x94, 0x8E, 0x95, 0x95, 0x95, 0x95, 0x42,
+ 0x38, 0x38, 0x38, 0x83, 0x83, 0x8E, 0x8E, 0x4C, 0x56, 0x56,
};
-COMPILER_STRIP_GATE(0x8039C644, &Z2MdnPrm::sConfused);
/* 8039C6B0-8039C718 028D10 0068+00 1/0 0/0 0/0 .rodata sHostility__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sHostility[104] = {
+u8 const Z2MdnPrm::sHostility[104] = {
0x85, 0x71, 0x71, 0x73, 0x73, 0x3B, 0x62, 0x84, 0x94, 0x94, 0x94, 0xAF, 0x98, 0xAD, 0xAD,
0x5A, 0x5A, 0x63, 0x63, 0x97, 0x90, 0x90, 0x7B, 0x73, 0x73, 0x63, 0x63, 0x55, 0x55, 0x65,
0x66, 0x7F, 0x7F, 0x87, 0x87, 0x8A, 0x8A, 0x94, 0x5D, 0x5C, 0x5A, 0x67, 0x67, 0x68, 0x68,
@@ -1491,238 +584,31 @@ SECTION_RODATA u8 const Z2MdnPrm::sHostility[104] = {
0x65, 0x6B, 0x6E, 0x6E, 0x83, 0x83, 0x96, 0x3F, 0x56, 0x56, 0x56, 0x56, 0x4F, 0x5F, 0x57,
0x62, 0x6A, 0x5F, 0x72, 0x72, 0x62, 0x62, 0x65, 0x5E, 0x69, 0x69, 0x63, 0x63, 0x7F,
};
-COMPILER_STRIP_GATE(0x8039C6B0, &Z2MdnPrm::sHostility);
/* 8039C718-8039C784 028D78 006A+02 1/0 0/0 0/0 .rodata sTired__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sTired[106 + 2 /* padding */] = {
- 0x70,
- 0x70,
- 0x70,
- 0x5C,
- 0x5C,
- 0x5C,
- 0x6F,
- 0x6F,
- 0x6F,
- 0x93,
- 0x8C,
- 0x9A,
- 0x9D,
- 0x89,
- 0x99,
- 0x7A,
- 0x91,
- 0x8D,
- 0x8D,
- 0x8D,
- 0x8D,
- 0x69,
- 0x69,
- 0x72,
- 0x72,
- 0x65,
- 0x65,
- 0x65,
- 0x9E,
- 0x98,
- 0x98,
- 0x2A,
- 0x50,
- 0x54,
- 0x54,
- 0x49,
- 0x64,
- 0x59,
- 0x59,
- 0x62,
- 0x62,
- 0x62,
- 0x44,
- 0x5E,
- 0x9F,
- 0x91,
- 0x63,
- 0x63,
- 0x63,
- 0x57,
- 0x57,
- 0x2A,
- 0x64,
- 0x52,
- 0x5B,
- 0x5C,
- 0x5C,
- 0x5C,
- 0x5C,
- 0x59,
- 0x63,
- 0x75,
- 0x66,
- 0x69,
- 0x61,
- 0x67,
- 0x67,
- 0x67,
- 0x67,
- 0x65,
- 0x6A,
- 0x6A,
- 0x7B,
- 0x75,
- 0x75,
- 0x75,
- 0x75,
- 0x69,
- 0x69,
- 0x64,
- 0x64,
- 0x51,
- 0x67,
- 0x68,
- 0x68,
- 0x6F,
- 0x6F,
- 0x6F,
- 0x7F,
- 0x95,
- 0x9C,
- 0x87,
- 0x84,
- 0x8A,
- 0x72,
- 0x84,
- 0x84,
- 0x6D,
- 0x6D,
- 0x6A,
- 0x6A,
- 0x8D,
- 0x8D,
- 0x8D,
- 0x8D,
- 0x3B,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sTired[106] = {
+ 0x70, 0x70, 0x70, 0x5C, 0x5C, 0x5C, 0x6F, 0x6F, 0x6F, 0x93, 0x8C, 0x9A, 0x9D, 0x89, 0x99, 0x7A,
+ 0x91, 0x8D, 0x8D, 0x8D, 0x8D, 0x69, 0x69, 0x72, 0x72, 0x65, 0x65, 0x65, 0x9E, 0x98, 0x98, 0x2A,
+ 0x50, 0x54, 0x54, 0x49, 0x64, 0x59, 0x59, 0x62, 0x62, 0x62, 0x44, 0x5E, 0x9F, 0x91, 0x63, 0x63,
+ 0x63, 0x57, 0x57, 0x2A, 0x64, 0x52, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x59, 0x63, 0x75, 0x66, 0x69,
+ 0x61, 0x67, 0x67, 0x67, 0x67, 0x65, 0x6A, 0x6A, 0x7B, 0x75, 0x75, 0x75, 0x75, 0x69, 0x69, 0x64,
+ 0x64, 0x51, 0x67, 0x68, 0x68, 0x6F, 0x6F, 0x6F, 0x7F, 0x95, 0x9C, 0x87, 0x84, 0x8A, 0x72, 0x84,
+ 0x84, 0x6D, 0x6D, 0x6A, 0x6A, 0x8D, 0x8D, 0x8D, 0x8D, 0x3B,
};
-COMPILER_STRIP_GATE(0x8039C718, &Z2MdnPrm::sTired);
/* 8039C784-8039C7F0 028DE4 006A+02 1/0 0/0 0/0 .rodata sSerious__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sSerious[106 + 2 /* padding */] = {
- 0x52,
- 0x65,
- 0x65,
- 0x72,
- 0x5A,
- 0x61,
- 0x61,
- 0x7B,
- 0x80,
- 0x92,
- 0x93,
- 0x9D,
- 0x9D,
- 0x70,
- 0x79,
- 0x76,
- 0x62,
- 0x57,
- 0x5A,
- 0x53,
- 0x53,
- 0x59,
- 0x59,
- 0x65,
- 0x63,
- 0x60,
- 0x60,
- 0x6A,
- 0x83,
- 0x80,
- 0x7F,
- 0x5D,
- 0x5C,
- 0x45,
- 0x5D,
- 0x71,
- 0x72,
- 0x65,
- 0x65,
- 0x65,
- 0x66,
- 0x4B,
- 0xB2,
- 0x60,
- 0x5C,
- 0x5C,
- 0x5C,
- 0x5B,
- 0x5F,
- 0x55,
- 0x55,
- 0x5E,
- 0x5E,
- 0x5F,
- 0x5B,
- 0x4D,
- 0x58,
- 0x60,
- 0x5B,
- 0x50,
- 0x50,
- 0x56,
- 0x56,
- 0x56,
- 0x7D,
- 0x6E,
- 0x72,
- 0x73,
- 0x73,
- 0x6A,
- 0x64,
- 0x54,
- 0x58,
- 0x57,
- 0x57,
- 0x5D,
- 0x5D,
- 0x64,
- 0x5F,
- 0x53,
- 0x53,
- 0x52,
- 0x54,
- 0x4D,
- 0x4D,
- 0x4D,
- 0x4D,
- 0x59,
- 0x59,
- 0x59,
- 0x69,
- 0x6B,
- 0x6B,
- 0x5A,
- 0x72,
- 0x69,
- 0x70,
- 0x60,
- 0x3C,
- 0x81,
- 0x81,
- 0x92,
- 0x92,
- 0x8E,
- 0x98,
- 0x87,
- /* padding */
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sSerious[106] = {
+ 0x52, 0x65, 0x65, 0x72, 0x5A, 0x61, 0x61, 0x7B, 0x80, 0x92, 0x93, 0x9D, 0x9D, 0x70, 0x79, 0x76,
+ 0x62, 0x57, 0x5A, 0x53, 0x53, 0x59, 0x59, 0x65, 0x63, 0x60, 0x60, 0x6A, 0x83, 0x80, 0x7F, 0x5D,
+ 0x5C, 0x45, 0x5D, 0x71, 0x72, 0x65, 0x65, 0x65, 0x66, 0x4B, 0xB2, 0x60, 0x5C, 0x5C, 0x5C, 0x5B,
+ 0x5F, 0x55, 0x55, 0x5E, 0x5E, 0x5F, 0x5B, 0x4D, 0x58, 0x60, 0x5B, 0x50, 0x50, 0x56, 0x56, 0x56,
+ 0x7D, 0x6E, 0x72, 0x73, 0x73, 0x6A, 0x64, 0x54, 0x58, 0x57, 0x57, 0x5D, 0x5D, 0x64, 0x5F, 0x53,
+ 0x53, 0x52, 0x54, 0x4D, 0x4D, 0x4D, 0x4D, 0x59, 0x59, 0x59, 0x69, 0x6B, 0x6B, 0x5A, 0x72, 0x69,
+ 0x70, 0x60, 0x3C, 0x81, 0x81, 0x92, 0x92, 0x8E, 0x98, 0x87,
};
-COMPILER_STRIP_GATE(0x8039C784, &Z2MdnPrm::sSerious);
/* 8039C7F0-8039C844 028E50 0054+00 1/0 0/0 0/0 .rodata sReplyb__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sReplyb[84] = {
+u8 const Z2MdnPrm::sReplyb[84] = {
0x5C, 0x45, 0x45, 0x71, 0x9F, 0x57, 0xB4, 0xB4, 0x56, 0x62, 0x8E, 0x61, 0x61, 0xB0,
0xB0, 0x3C, 0x59, 0x4A, 0x64, 0xA4, 0xA4, 0x5A, 0x5A, 0x5A, 0x5A, 0x72, 0x72, 0x4B,
0x6B, 0x97, 0x97, 0x59, 0x60, 0x60, 0x60, 0x69, 0x3E, 0x3E, 0x57, 0x42, 0x5E, 0x76,
@@ -1730,10 +616,9 @@ SECTION_RODATA u8 const Z2MdnPrm::sReplyb[84] = {
0x72, 0x8A, 0x2C, 0x1F, 0x1F, 0x95, 0x95, 0x69, 0x4C, 0x59, 0x59, 0x79, 0x5B, 0x44,
0x44, 0x4F, 0x52, 0x58, 0x5A, 0x6F, 0x6E, 0x8A, 0x8E, 0x8E, 0x8E, 0x8C, 0x8C, 0x9B,
};
-COMPILER_STRIP_GATE(0x8039C7F0, &Z2MdnPrm::sReplyb);
/* 8039C844-8039C8A8 028EA4 0064+00 1/0 0/0 0/0 .rodata sApologize__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sApologize[100] = {
+u8 const Z2MdnPrm::sApologize[100] = {
0x6A, 0x6A, 0x6A, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x57, 0x57, 0x57, 0x63, 0x61,
0x54, 0x54, 0x54, 0x54, 0x58, 0x58, 0x58, 0x58, 0x45, 0x45, 0x56, 0x56, 0x5B, 0x5B, 0x37,
0x53, 0x53, 0x53, 0x59, 0x59, 0x59, 0x49, 0x58, 0x58, 0x55, 0x56, 0x56, 0x83, 0x7F, 0x7F,
@@ -1742,28 +627,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sApologize[100] = {
0x5B, 0x70, 0x72, 0x72, 0x72, 0x72, 0x6E, 0x76, 0x6B, 0x6B, 0x58, 0x69, 0x66, 0x66, 0x64,
0x64, 0x60, 0x61, 0x63, 0x6A, 0x62, 0x62, 0x64, 0x65, 0x71,
};
-COMPILER_STRIP_GATE(0x8039C844, &Z2MdnPrm::sApologize);
/* 8039C8A8-8039C8B4 028F08 0009+03 1/0 0/0 0/0 .rodata sApologizeTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sApologizeTail[9 + 3 /* padding */] = {
- 0x7C,
- 0x6E,
- 0x63,
- 0x71,
- 0x51,
- 0x37,
- 0x75,
- 0x58,
- 0x5C,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
+u8 const Z2MdnPrm::sApologizeTail[9] = {
+ 0x7C, 0x6E, 0x63, 0x71, 0x51, 0x37, 0x75, 0x58, 0x5C,
};
-COMPILER_STRIP_GATE(0x8039C8A8, &Z2MdnPrm::sApologizeTail);
/* 8039C8B4-8039C918 028F14 0064+00 1/0 0/0 0/0 .rodata sDeside__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sDeside[100] = {
+u8 const Z2MdnPrm::sDeside[100] = {
0x77, 0x77, 0x77, 0x58, 0x58, 0x6F, 0x78, 0x5F, 0x66, 0x5E, 0x6E, 0x62, 0x62, 0x2E, 0x5A,
0x58, 0x54, 0x52, 0x52, 0x5C, 0x59, 0x56, 0x56, 0x4B, 0x4B, 0x63, 0x63, 0x4D, 0x4E, 0x4A,
0x69, 0x71, 0x71, 0x76, 0x80, 0x80, 0x80, 0x73, 0x73, 0x5C, 0x7C, 0x64, 0x83, 0x89, 0x89,
@@ -1772,10 +643,9 @@ SECTION_RODATA u8 const Z2MdnPrm::sDeside[100] = {
0x62, 0x5D, 0x67, 0x5D, 0x5F, 0x62, 0x59, 0x5D, 0x55, 0x55, 0x48, 0x5F, 0x5F, 0x5F, 0x5D,
0x75, 0x6A, 0x66, 0x76, 0x69, 0x69, 0x69, 0x60, 0x60, 0x5F,
};
-COMPILER_STRIP_GATE(0x8039C8B4, &Z2MdnPrm::sDeside);
/* 8039C918-8039C980 028F78 0068+00 1/0 0/0 0/0 .rodata sAfford__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sAfford[104] = {
+u8 const Z2MdnPrm::sAfford[104] = {
0x4E, 0x45, 0x52, 0x5B, 0x56, 0x5B, 0x59, 0x52, 0x52, 0x57, 0x5C, 0x50, 0x50, 0x49, 0x80,
0x6E, 0x6E, 0x5A, 0x5C, 0x60, 0x6A, 0x62, 0x62, 0x6A, 0x71, 0x48, 0x4C, 0x5B, 0x5A, 0x40,
0x40, 0x49, 0x49, 0x50, 0x51, 0x51, 0x51, 0x3A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x57, 0x57,
@@ -1784,41 +654,32 @@ SECTION_RODATA u8 const Z2MdnPrm::sAfford[104] = {
0x7D, 0x6E, 0x56, 0x79, 0x79, 0x50, 0x4C, 0x50, 0x43, 0x52, 0x51, 0x66, 0x6C, 0x64, 0x63,
0x63, 0x5D, 0x69, 0x70, 0x56, 0x50, 0x4B, 0x92, 0x86, 0x8F, 0x4B, 0x4F, 0x57, 0x56,
};
-COMPILER_STRIP_GATE(0x8039C918, &Z2MdnPrm::sAfford);
/* 8039C980-8039C98C 028FE0 000C+00 1/0 0/0 0/0 .rodata sAffordTail__8Z2MdnPrm */
-SECTION_RODATA u8 const Z2MdnPrm::sAffordTail[12] = {
+u8 const Z2MdnPrm::sAffordTail[12] = {
0x63, 0x8E, 0x5B, 0x59, 0x4C, 0x3A, 0x69, 0x47, 0x41, 0x59, 0x50, 0x55,
};
-COMPILER_STRIP_GATE(0x8039C980, &Z2MdnPrm::sAffordTail);
/* 8039C98C-8039CA58 -00001 00CC+00 2/2 0/0 0/0 .rodata sPrm__8Z2MdnPrm */
-SECTION_RODATA sPrmStruct const Z2MdnPrm::sPrm[17] = {
- { (u8**)&Z2MdnPrm::sReply, (u8**)&Z2MdnPrm::sReplyTail, 0x32, 0x06, 0x04, 0x00},
- { (u8**)&Z2MdnPrm::sJoke, (u8**)&Z2MdnPrm::sJokeTail, 0x32, 0x03, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sSexy, (u8**)&Z2MdnPrm::sSexyTail, 0x32, 0x03, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sRidicule, (u8**)&Z2MdnPrm::sRidiculeTail, 0x32, 0x03, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sBoring, (u8**)&Z2MdnPrm::sBoringTail, 0x36, 0x01, 0x05, 0x00},
- { (u8**)&Z2MdnPrm::sIrritated, (u8**)&Z2MdnPrm::sIrritatedTail, 0x2F, 0x03, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sOrder, (u8**)&Z2MdnPrm::sOrderTail, 0x39, 0x02, 0x04, 0x00},
- { (u8**)&Z2MdnPrm::sResent, (u8**)&Z2MdnPrm::sResentTail, 0x35, 0x02, 0x03, 0x00},
- { (u8**)&Z2MdnPrm::sCheerful, (u8**)&Z2MdnPrm::sCheerfulTail, 0x35, 0x01, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sConfused, (u8**)&Z2MdnPrm::sConfusedTail, 0x35, 0x03, 0x02, 0x00},
- { (u8**)&Z2MdnPrm::sHostility, (u8**)&Z2MdnPrm::sHostilityTail, 0x34, 0x02, 0x05, 0x00},
- { (u8**)&Z2MdnPrm::sTired, (u8**)&Z2MdnPrm::sTiredTail, 0x35, 0x03, 0x05, 0x00},
- { (u8**)&Z2MdnPrm::sSerious, (u8**)&Z2MdnPrm::sSeriousTail, 0x35, 0x02, 0x05, 0x00},
- { (u8**)&Z2MdnPrm::sReplyb, (u8**)&Z2MdnPrm::sReplybTail, 0x2A, 0x04, 0x03, 0x00},
- { (u8**)&Z2MdnPrm::sApologize, (u8**)&Z2MdnPrm::sApologizeTail, 0x32, 0x04, 0x05, 0x00},
- { (u8**)&Z2MdnPrm::sDeside, (u8**)&Z2MdnPrm::sDesideTail, 0x32, 0x01, 0x07, 0x00},
- { (u8**)&Z2MdnPrm::sAfford, (u8**)&Z2MdnPrm::sAffordTail, 0x34, 0x02, 0x0A, 0x00},
+sPrmStruct const Z2MdnPrm::sPrm[17] = {
+ { Z2MdnPrm::sReply, Z2MdnPrm::sReplyTail, 0x32, 0x06, 0x04, 0x00},
+ { Z2MdnPrm::sJoke, Z2MdnPrm::sJokeTail, 0x32, 0x03, 0x07, 0x00},
+ { Z2MdnPrm::sSexy, Z2MdnPrm::sSexyTail, 0x32, 0x03, 0x07, 0x00},
+ { Z2MdnPrm::sRidicule, Z2MdnPrm::sRidiculeTail, 0x32, 0x03, 0x07, 0x00},
+ { Z2MdnPrm::sBoring, Z2MdnPrm::sBoringTail, 0x36, 0x01, 0x05, 0x00},
+ { Z2MdnPrm::sIrritated, Z2MdnPrm::sIrritatedTail, 0x2F, 0x03, 0x07, 0x00},
+ { Z2MdnPrm::sOrder, Z2MdnPrm::sOrderTail, 0x39, 0x02, 0x04, 0x00},
+ { Z2MdnPrm::sResent, Z2MdnPrm::sResentTail, 0x35, 0x02, 0x03, 0x00},
+ { Z2MdnPrm::sCheerful, Z2MdnPrm::sCheerfulTail, 0x35, 0x01, 0x07, 0x00},
+ { Z2MdnPrm::sConfused, Z2MdnPrm::sConfusedTail, 0x35, 0x03, 0x02, 0x00},
+ { Z2MdnPrm::sHostility, Z2MdnPrm::sHostilityTail, 0x34, 0x02, 0x05, 0x00},
+ { Z2MdnPrm::sTired, Z2MdnPrm::sTiredTail, 0x35, 0x03, 0x05, 0x00},
+ { Z2MdnPrm::sSerious, Z2MdnPrm::sSeriousTail, 0x35, 0x02, 0x05, 0x00},
+ { Z2MdnPrm::sReplyb, Z2MdnPrm::sReplybTail, 0x2A, 0x04, 0x03, 0x00},
+ { Z2MdnPrm::sApologize, Z2MdnPrm::sApologizeTail, 0x32, 0x04, 0x05, 0x00},
+ { Z2MdnPrm::sDeside, Z2MdnPrm::sDesideTail, 0x32, 0x01, 0x07, 0x00},
+ { Z2MdnPrm::sAfford, Z2MdnPrm::sAffordTail, 0x34, 0x02, 0x0A, 0x00},
};
-COMPILER_STRIP_GATE(0x8039C98C, &Z2MdnPrm::sPrm);
-
-/* 80455F48-80455F50 004548 0008+00 3/3 0/0 0/0 .sdata2 @4083 */
-SECTION_SDATA2 static f64 lit_4083 = 4503599627370496.0 /* cast u32 to float */;
-
-/* 80456BA8-80456BAC 000048 0002+02 1/1 0/0 0/0 .sbss2 @4003 */
-SECTION_SBSS2 static u8 lit_4003[2 + 2 /* padding */];
typedef struct {
u8 field_0x0;
@@ -1826,17 +687,18 @@ typedef struct {
} Z2ConnectCost;
/* 802CC4C0-802CC738 2C6E00 0278+00 2/2 0/0 0/0 .text selectUnit__12Z2SpeechMgr2Fb */
-// This one is a mess
-#ifdef NONMATCHING
+// NONMATCHING This one is a mess
void Z2SpeechMgr2::selectUnit(bool param_0) {
Z2ConnectCost local_3c[5];
if (field_0x401 >= 64) {
field_0x0->stop();
} else {
- s32 ZVar2 = random.get_uint8(Z2MdnPrm::sPrm[field_0x3fc].field_0x8);
+ int best = random.get_uint8(Z2MdnPrm::sPrm[field_0x3fc].field_0x8);
+
if (field_0x401 != 0 && param_0) {
- u8 cVar5 = 0;
- ZVar2 = field_0x402[field_0x401 - 1];
+ int cVar5 = 0;
+ int ZVar2 = field_0x402[field_0x401 - 1];
+
do {
bool bVar1;
int ZVar3;
@@ -1858,31 +720,26 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
}
}
} while (bVar1);
- local_3c[1].field_0x1 = J3DUD::JMAAbs((*Z2MdnPrm::sPrm[field_0x3fc].field_0x0)[ZVar3 * 2] - (*Z2MdnPrm::sPrm[field_0x3fc].field_0x0)[ZVar3 * 2 + 1]);
- local_3c[2].field_0x0 = ZVar3;
- local_3c[cVar5] = local_3c[2];
+ u8 diff = JMAAbs(Z2MdnPrm::sPrm[field_0x3fc].field_0x0[ZVar3 * 2]
+ - Z2MdnPrm::sPrm[field_0x3fc].field_0x0[ZVar2 * 2 + 1]);
+ local_3c[cVar5] = (Z2ConnectCost){ZVar3, diff};
cVar5++;
- } while (cVar5 != 5);
- for (int iVar4 = 0; /*ZVar2 = local_3c[0],*/ iVar4 < 5; iVar4++) {
- if (local_3c[iVar4].field_0x1 < local_3c[0].field_0x0) {
- local_3c[0].field_0x1 = local_3c[iVar4].field_0x1;
- local_3c[0].field_0x0 = local_3c[iVar4].field_0x0;
+ } while ((s8)cVar5 != 5);
+
+ best = local_3c[0].field_0x0;
+ u16 min = local_3c[0].field_0x1;
+ for (int iVar4 = 0; iVar4 < 5; iVar4++) {
+ if (local_3c[iVar4].field_0x1 < min) {
+ min = local_3c[iVar4].field_0x1;
+ best = local_3c[iVar4].field_0x0;
}
}
}
- field_0x402[field_0x401 - 1] = ZVar2;
+
+ field_0x402[field_0x401] = best;
field_0x401++;
}
}
-#else
-void Z2SpeechMgr2::selectUnit(bool param_0) {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 80456BAC-80456BB0 00004C 0002+02 1/1 0/0 0/0 .sbss2 @4104 */
-SECTION_SBSS2 static u8 lit_4104[2 + 2 /* padding */];
/* 802CC738-802CC9D0 2C7078 0298+00 1/1 0/0 0/0 .text selectTail__12Z2SpeechMgr2Fv */
void Z2SpeechMgr2::selectTail() {
@@ -1923,13 +780,6 @@ bool Z2SpeechMgr2::isMidnaSpeak() {
/* 802CCFB8-802CCFF8 2C78F8 0040+00 1/1 0/0 0/0 .text __ct__15Z2SpeechStarterFv */
Z2SpeechStarter::Z2SpeechStarter() : Z2SoundStarter(false) {}
-/* ############################################################################################## */
-/* 80455F50-80455F54 004550 0004+00 1/1 0/0 0/0 .sdata2 @4571 */
-SECTION_SDATA2 static f32 lit_4571 = 7.0f / 100.0f;
-
-/* 80455F54-80455F58 004554 0004+00 1/1 0/0 0/0 .sdata2 @4572 */
-SECTION_SDATA2 static f32 lit_4572 = 0.5f;
-
/* 802CCFF8-802CD248 2C7938 0250+00 1/0 0/0 0/0 .text
* startSound__15Z2SpeechStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */
bool Z2SpeechStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1,
diff --git a/src/Z2AudioLib/Z2StatusMgr.cpp b/src/Z2AudioLib/Z2StatusMgr.cpp
index c5fe617970..8adc97d924 100644
--- a/src/Z2AudioLib/Z2StatusMgr.cpp
+++ b/src/Z2AudioLib/Z2StatusMgr.cpp
@@ -7,7 +7,6 @@
#include "Z2AudioLib/Z2Param.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
-#include "dol2asm.h"
/* 802B5F1C-802B5F70 2B085C 0054+00 0/0 1/1 0/0 .text __ct__11Z2StatusMgrFv */
Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) {
@@ -17,7 +16,7 @@ Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) {
field_0x03 = 0;
mTime = 3072;
mEventBit = NULL;
- mIsMenuIn = false;
+ mPauseFlag = false;
mCameraMapInfo = 0;
mPolygonPosition.x = 10000000.0f;
@@ -84,7 +83,7 @@ void Z2StatusMgr::menuIn() {
Z2GetSeqMgr()->menuInBgm();
Z2GetSeMgr()->menuInSe();
- mIsMenuIn = true;
+ mPauseFlag = true;
}
/* 802B617C-802B61BC 2B0ABC 0040+00 0/0 3/3 0/0 .text menuOut__11Z2StatusMgrFv */
@@ -92,7 +91,7 @@ void Z2StatusMgr::menuOut() {
Z2GetSeqMgr()->menuOutBgm();
Z2GetSeMgr()->talkOutSe();
- mIsMenuIn = false;
+ mPauseFlag = false;
}
/* 802B61BC-802B61E8 2B0AFC 002C+00 2/2 1/1 0/0 .text isMovieDemo__11Z2StatusMgrFv */
@@ -196,7 +195,7 @@ void Z2StatusMgr::setDemoName(char* demoName) {
if (mDemoStatus == 3) {
Z2GetSeqMgr()->setBattleBgmOff(false);
} else if (mDemoStatus == 4) {
- Z2GetSeqMgr()->i_unMuteSceneBgm(struct_80450861);
+ Z2GetSeqMgr()->unMuteSceneBgm(struct_80450861);
} else if (mDemoStatus == 5) {
Z2GetSeqMgr()->subBgmStop();
} else if (mDemoStatus == 9) {
@@ -215,7 +214,7 @@ void Z2StatusMgr::setDemoName(char* demoName) {
mDemoStatus = 11;
} else if (strcmp(demoName, "demo36_01") == 0 || strcmp(demoName, "demo36_02") == 0) {
mDemoStatus = 4;
- Z2GetSeqMgr()->i_muteSceneBgm(0x1e, 0.0f);
+ Z2GetSeqMgr()->muteSceneBgm(0x1e, 0.0f);
} else if (strcmp(demoName, "demo37_01") == 0) {
mDemoStatus = 12;
Z2GetSoundMgr()->getSeMgr()->getCategory(9)->getParams()->moveVolume(0.0f, 0);
@@ -336,4 +335,4 @@ void Z2StatusMgr::setCameraInWaterDepth(f32 depth) {
mUnderwaterDepth = depth;
}
-/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/Z2AudioLib/Z2WolfHowlMgr.cpp b/src/Z2AudioLib/Z2WolfHowlMgr.cpp
index e34915e55d..f8030a3c77 100644
--- a/src/Z2AudioLib/Z2WolfHowlMgr.cpp
+++ b/src/Z2AudioLib/Z2WolfHowlMgr.cpp
@@ -12,9 +12,42 @@
#include "Z2AudioLib/Z2Audience.h"
#include "d/d_demo.h"
-/* ############################################################################################## */
+/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */
+static f32 cPitchDown = 0.8909000158309937f;
+
+/* 80450884-80450888 000304 0004+00 4/4 0/0 0/0 .sdata cPitchCenter */
+static f32 cPitchCenter = 1.0f;
+
+/* 80450888-8045088C 000308 0004+00 2/2 0/0 0/0 .sdata cPitchUp */
+static f32 cPitchUp = 1.1892000436782837f;
+
+static u8 struct_8045088C = 7;
+static u8 struct_8045088D = 7;
+
+/* 8045088E-80450890 00030E 0002+00 4/4 0/0 0/0 .sdata None */
+static u8 data_8045088E = 0x1E;
+static u8 data_8045088F = 0x00;
+
+/* 80450890-80450894 000310 0004+00 1/1 0/0 0/0 .sdata cR_FlatWidth */
+static f32 cR_FlatWidth = 0.9438700079917908f;
+
+/* 80450894-80450898 -00001 0004+00 3/3 0/0 0/0 .sdata None */
+static u8 struct_80450894 = 0x05;
+static u8 struct_80450895 = 0x1E;
+
+/* 80450898-8045089C 000318 0004+00 1/1 0/0 0/0 .sdata sStickHigh */
+static f32 sStickHigh = 0.5f;
+
+/* 8045089C-804508A0 00031C 0004+00 1/1 0/0 0/0 .sdata sStickCenter */
+static f32 sStickCenter = 1.0f / 5.0f;
+
/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
-extern SongNote sHowlTobikusa[4];
+static SongNote sHowlTobikusa[4] = {
+ {0x01, 0x1E},
+ {0x03, 0x1E},
+ {0x01, 0x1E},
+ {0x03, 0x1E},
+};
/* 803CBC50-803CBC5C 028D70 000C+00 1/0 0/0 0/0 .data sHowlUmakusa */
static SongNote sHowlUmakusa[6] = {
@@ -63,43 +96,6 @@ static Z2WolfHowlData sGuideData[9] = {
{7, sNewSong1}, {8, sNewSong2}, {9, sNewSong3},
};
-/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */
-static f32 cPitchDown = 0.8909000158309937f;
-
-/* 80450884-80450888 000304 0004+00 4/4 0/0 0/0 .sdata cPitchCenter */
-static f32 cPitchCenter = 1.0f;
-
-/* 80450888-8045088C 000308 0004+00 2/2 0/0 0/0 .sdata cPitchUp */
-static f32 cPitchUp = 1.1892000436782837f;
-
-static u8 struct_8045088C = 7;
-static u8 struct_8045088D = 7;
-
-/* 8045088E-80450890 00030E 0002+00 4/4 0/0 0/0 .sdata None */
-static u8 data_8045088E = 0x1E;
-static u8 data_8045088F = 0x00;
-
-/* 80450890-80450894 000310 0004+00 1/1 0/0 0/0 .sdata cR_FlatWidth */
-static f32 cR_FlatWidth = 0.9438700079917908f;
-
-/* 80450894-80450898 -00001 0004+00 3/3 0/0 0/0 .sdata None */
-static u8 struct_80450894 = 0x05;
-static u8 struct_80450895 = 0x1E;
-
-/* 80450898-8045089C 000318 0004+00 1/1 0/0 0/0 .sdata sStickHigh */
-static f32 sStickHigh = 0.5f;
-
-/* 8045089C-804508A0 00031C 0004+00 1/1 0/0 0/0 .sdata sStickCenter */
-static f32 sStickCenter = 1.0f / 5.0f;
-
-/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
-static SongNote sHowlTobikusa[4] = {
- {0x01, 0x1E},
- {0x03, 0x1E},
- {0x01, 0x1E},
- {0x03, 0x1E},
-};
-
/* 802CAAC0-802CAB8C 2C5400 00CC+00 0/0 1/1 0/0 .text __ct__13Z2WolfHowlMgrFv */
Z2WolfHowlMgr::Z2WolfHowlMgr() : JASGlobalInstance(this) {
mpCurSong = NULL;
@@ -228,7 +224,7 @@ void Z2WolfHowlMgr::calcPitchMod(f32 param_0, f32 param_1) {
/* 802CAED4-802CB100 2C5814 022C+00 0/0 1/1 0/0 .text startWolfHowlSound__13Z2WolfHowlMgrFffbf */
s8 Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f32 param_3) {
if (mCorrectCurveID > 1) {
- Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0);
+ Z2GetSeqMgr()->setWindStoneVol(0.0f, 0);
}
if (Z2GetSeqMgr()->isItemGetDemo() || (mReleaseTimer != 0)) {
@@ -486,7 +482,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
dVar13 = Z2Calc::getParamByExp(fVar14, 150.0f, 2000.0f,
0.45f, 0.05f, dVar13, Z2Calc::CURVE_SIGN_0);
}
- Z2GetSeqMgr()->i_setWindStoneVol(dVar13, 0);
+ Z2GetSeqMgr()->setWindStoneVol(dVar13, 0);
field_0x04->getAuxiliary().moveVolume(0.4f, 0);
} else {
field_0x04->getAuxiliary().moveVolume(0.04f, 0);
@@ -497,7 +493,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
/* 802CBA88-802CBB58 2C63C8 00D0+00 0/0 1/1 0/0 .text startGuideMelody__13Z2WolfHowlMgrFb
*/
int Z2WolfHowlMgr::startGuideMelody(bool param_0) {
- Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0);
+ Z2GetSeqMgr()->setWindStoneVol(0.0f, 0);
if (param_0) {
Z2GetSoundMgr()->startSound(sWindStoneSound[mCorrectCurveID], &field_0x08, NULL);
}
@@ -513,4 +509,4 @@ int Z2WolfHowlMgr::startGuideMelody(bool param_0) {
*/
void Z2WolfHowlMgr::skipCorrectDemo() {
Z2GetSeqMgr()->stopWolfHowlSong();
-} \ No newline at end of file
+}
diff --git a/src/d/actor/d_a_e_vt.cpp b/src/d/actor/d_a_e_vt.cpp
index 0e46f08419..be5a539b84 100644
--- a/src/d/actor/d_a_e_vt.cpp
+++ b/src/d/actor/d_a_e_vt.cpp
@@ -3158,7 +3158,7 @@ void daE_VA_c::executeOpaciDeath() {
}
Z2GetAudioMgr()->subBgmStop();
- Z2GetAudioMgr()->i_muteSceneBgm(0, 0.0f);
+ Z2GetAudioMgr()->muteSceneBgm(0, 0.0f);
dComIfGs_onStageMiddleBoss();
field_0x1364 = 0;
@@ -3275,7 +3275,7 @@ void daE_VA_c::executeOpaciDeath() {
dComIfGs_onSwitch(mSwNo, fopAcM_GetRoomNo(this));
}
- Z2GetAudioMgr()->i_unMuteSceneBgm(45);
+ Z2GetAudioMgr()->unMuteSceneBgm(45);
fopAcM_delete(this);
return;
}
diff --git a/src/d/actor/d_a_npc_zrz.cpp b/src/d/actor/d_a_npc_zrz.cpp
index ed9cf87eb3..6c6f42cd8f 100644
--- a/src/d/actor/d_a_npc_zrz.cpp
+++ b/src/d/actor/d_a_npc_zrz.cpp
@@ -1476,7 +1476,7 @@ BOOL daNpc_zrZ_c::ECut_helpPrince(int i_staffID) {
case 11:
initTalk(0x3e9, NULL);
setLookMode(LOOK_NONE);
- Z2GetAudioMgr()->i_muteSceneBgm(90, 0.0f);
+ Z2GetAudioMgr()->muteSceneBgm(90, 0.0f);
mIsLeading = true;
daNpcF_offTmpBit(0xb);
daNpcF_offTmpBit(0xc);
@@ -1559,7 +1559,7 @@ BOOL daNpc_zrZ_c::ECut_helpPrince(int i_staffID) {
case 103:
mEventTimer = timer;
Z2GetAudioMgr()->subBgmStop();
- Z2GetAudioMgr()->i_unMuteSceneBgm(90);
+ Z2GetAudioMgr()->unMuteSceneBgm(90);
break;
case 110:
diff --git a/src/f_ap/f_ap_game.cpp b/src/f_ap/f_ap_game.cpp
index 0466c1003f..198253afa5 100644
--- a/src/f_ap/f_ap_game.cpp
+++ b/src/f_ap/f_ap_game.cpp
@@ -61,4 +61,4 @@ void fapGm_Create() {
g_HIO.field_0x04 = -1;
}
-fapGm_HIO_c::~fapGm_HIO_c() {} \ No newline at end of file
+fapGm_HIO_c::~fapGm_HIO_c() {}