various Z2Audio / JAudio debug cleanup (#2876)

* some JAudio work

* audio cleanup checkpoint

* checkpoint more audio cleanup

* fix symbols

* more z2 cleanup

* fix regression

* fix build

* some fixes
This commit is contained in:
TakaRikka
2025-11-27 21:19:33 -08:00
committed by GitHub
parent 767caeecc3
commit 6f96e66518
113 changed files with 6425 additions and 5542 deletions
+136 -120
View File
@@ -1,8 +1,3 @@
//
// Generated By: dol2asm
// Translation Unit: JAISeMgr
//
#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JAudio2/JAISeMgr.h"
@@ -12,14 +7,14 @@
/* 8029F8B0-8029F91C 29A1F0 006C+00 2/1 0/0 0/0 .text
* isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion */
bool JAISeCategoryMgr::isUsingSeqData(JAISeqDataRegion const& param_0) {
JSULink<JAISe>* link = mSeList.getFirst();
while (link != NULL) {
JAISe* obj = link->getObject();
if (param_0.intersects(*obj->getSeqData())) {
bool JAISeCategoryMgr::isUsingSeqData(const JAISeqDataRegion& seqDataRegion) {
JSULink<JAISe>* i = mSeList.getFirst();
while (i != NULL) {
JAISe* obj = i->getObject();
if (seqDataRegion.intersects(*obj->getSeqData())) {
return true;
}
link = link->getNext();
i = i->getNext();
}
return false;
@@ -27,67 +22,68 @@ bool JAISeCategoryMgr::isUsingSeqData(JAISeqDataRegion const& param_0) {
/* 8029F91C-8029F9C4 29A25C 00A8+00 2/1 0/0 0/0 .text
* releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion */
int JAISeCategoryMgr::releaseSeqData(JAISeqDataRegion const& param_0) {
int JAISeCategoryMgr::releaseSeqData(const JAISeqDataRegion& seqDataRegion) {
bool bVar1 = false;
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
if (param_0.intersects(*link->getObject()->getSeqData())) {
link->getObject()->stop();
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
if (seqDataRegion.intersects(*i->getObject()->getSeqData())) {
i->getObject()->stop();
bVar1 = true;
}
}
// Fake match. li 2 needs to come after clrlwi
u32 x = bVar1;
u32 y = x;
int rv = 2;
if (x) {
rv = 1;
}
return rv;
enum {_1 = 1, _2}; // fakematch, figure out what this enum is eventually
return bVar1 ? _1 : _2;
}
/* 8029F9C4-8029FB30 29A304 016C+00 1/1 0/0 0/0 .text JAISeMgr_calc___16JAISeCategoryMgrFv */
void JAISeCategoryMgr::JAISeMgr_calc_() {
mParams.calc();
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
link->getObject()->JAISeCategoryMgr_calc_();
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
i->getObject()->JAISeCategoryMgr_calc_();
}
sortByPriority_();
}
/* 8029FB30-8029FC34 29A470 0104+00 1/1 0/0 0/0 .text JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv
*/
// JASPoolAllocObject<_> locations
void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() {
JSULink<JAISe>* link = mSeList.getFirst();
while (link != NULL) {
JSULink<JAISe>* link_next = link->getNext();
if (link->getObject()->status_.isDead()) {
mSeList.remove(link);
delete link->getObject();
JSULink<JAISe>* i = mSeList.getFirst();
while (i != NULL) {
JSULink<JAISe>* link_next = i->getNext();
if (i->getObject()->status_.isDead()) {
JUT_ASSERT(71, ! i->getObject() ->isHandleAttached());
mSeList.remove(i);
delete i->getObject();
}
link = link_next;
i = link_next;
}
}
/* 8029FC88-8029FD40 29A5C8 00B8+00 1/1 0/0 0/0 .text
* JAISeMgr_acceptsNewSe___16JAISeCategoryMgrCFUl */
bool JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const {
bool JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 priority) const {
s32 maxSe = getMaxSe();
if (maxSe <= 0) {
return 1;
}
s32 stopCount = 0;
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
if (param_0 < link->getObject()->JAISeCategoryMgr_getProperPriority_()) {
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
if (priority < i->getObject()->JAISeCategoryMgr_getProperPriority_()) {
return 1;
}
if (!link->getObject()->isStopping()) {
if (!i->getObject()->isStopping()) {
stopCount++;
}
}
return stopCount < maxSe;
if (stopCount < maxSe) {
return true;
} else {
return false;
}
}
/* 8029FD40-8029FDE0 29A680 00A0+00 1/1 0/0 0/0 .text sortByPriority___16JAISeCategoryMgrFv */
@@ -96,6 +92,7 @@ void JAISeCategoryMgr::sortByPriority_() {
JSULink<JAISe>* link = mSeList.getFirst();
u32 lowestPriority = link->getObject()->JAISeCategoryMgr_getPriority_();
JSULink<JAISe>* current = link->getNext();
for (int j = 1; j < i; j++) {
u32 itemPriority = current->getObject()->JAISeCategoryMgr_getPriority_();
if (itemPriority < lowestPriority) {
@@ -104,32 +101,36 @@ void JAISeCategoryMgr::sortByPriority_() {
}
current = current->getNext();
}
mSeList.remove(link);
mSeList.append(link);
bool result = mSeList.remove(link);
JUT_ASSERT(131, result);
result = mSeList.append(link);
JUT_ASSERT(133, result);
}
}
/* 8029FDE0-8029FE34 29A720 0054+00 0/0 1/1 0/0 .text stop__16JAISeCategoryMgrFUl */
void JAISeCategoryMgr::stop(u32 param_0) {
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
link->getObject()->stop(param_0);
void JAISeCategoryMgr::stop(u32 fadeTime) {
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
i->getObject()->stop(fadeTime);
}
}
/* 8029FE34-8029FE78 29A774 0044+00 1/1 0/0 0/0 .text stop__16JAISeCategoryMgrFv */
void JAISeCategoryMgr::stop() {
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
link->getObject()->stop();
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
i->getObject()->stop();
}
}
/* 8029FE78-8029FEEC 29A7B8 0074+00 1/1 0/0 0/0 .text stopSoundID__16JAISeCategoryMgrF10JAISoundID
*/
void JAISeCategoryMgr::stopSoundID(JAISoundID param_0) {
if (!param_0.isAnonymous()) {
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
if ((u32)link->getObject()->getID() == (u32)param_0) {
link->getObject()->stop();
void JAISeCategoryMgr::stopSoundID(JAISoundID id) {
if (!id.isAnonymous()) {
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
if ((u32)i->getObject()->getID() == (u32)id) {
i->getObject()->stop();
}
}
}
@@ -137,42 +138,44 @@ void JAISeCategoryMgr::stopSoundID(JAISoundID param_0) {
/* 8029FEEC-8029FF18 29A82C 002C+00 0/0 2/2 0/0 .text pause__16JAISeCategoryMgrFb */
void JAISeCategoryMgr::pause(bool param_0) {
for (JSULink<JAISe>* link = mSeList.getFirst(); link != NULL; link = link->getNext()) {
link->getObject()->pause(param_0);
for (JSULink<JAISe>* i = mSeList.getFirst(); i != NULL; i = i->getNext()) {
i->getObject()->pause(param_0);
}
}
/* 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) {
JASSoundParams aJStack_30;
aJStack_30.combine(param_0.mParams, mParams.mParams);
JSULink<JAISe>* this_00 = mSeList.getFirst();
int iVar1 = getMaxActiveSe();
void JAISeCategoryMgr::JAISeMgr_mixOut_(const JAISoundParamsMove& params,
JAISoundActivity activity) {
JASSoundParams mixParams;
mixParams.combine(params.params_, mParams.params_);
JSULink<JAISe>* i = mSeList.getFirst();
int maxActiveSe = getMaxActiveSe();
int sp28;
if (iVar1 > 0) {
while (this_00 != NULL && iVar1 > 0 && !this_00->getObject()->isFarAway()) {
this_00->getObject()->JAISeCategoryMgr_mixOut_(true, aJStack_30, param_1);
this_00 = this_00->getNext();
iVar1--;
if (maxActiveSe > 0) {
while (i != NULL && maxActiveSe > 0 && !i->getObject()->isFarAway()) {
i->getObject()->JAISeCategoryMgr_mixOut_(true, mixParams, activity);
i = i->getNext();
maxActiveSe--;
sp28 = maxActiveSe;
}
for (; this_00 != NULL; this_00 = this_00->getNext()) {
this_00->getObject()->JAISeCategoryMgr_mixOut_(false, aJStack_30, param_1);
for (; i != NULL; i = i->getNext()) {
i->getObject()->JAISeCategoryMgr_mixOut_(false, mixParams, activity);
}
} else {
while (this_00 != NULL && !this_00->getObject()->isFarAway()) {
this_00->getObject()->JAISeCategoryMgr_mixOut_(true, aJStack_30, param_1);
this_00 = this_00->getNext();
while (i != NULL && !i->getObject()->isFarAway()) {
i->getObject()->JAISeCategoryMgr_mixOut_(true, mixParams, activity);
i = i->getNext();
}
for (; this_00 != NULL; this_00 = this_00->getNext()) {
this_00->getObject()->JAISeCategoryMgr_mixOut_(false, aJStack_30, param_1);
for (; i != NULL; i = i->getNext()) {
i->getObject()->JAISeCategoryMgr_mixOut_(false, mixParams, activity);
}
}
}
/* 802A0074-802A0168 29A9B4 00F4+00 0/0 1/1 0/0 .text __ct__8JAISeMgrFb */
JAISeMgr::JAISeMgr(bool param_0) : JASGlobalInstance<JAISeMgr>(param_0) {
JAISeMgr::JAISeMgr(bool setInstance) : JASGlobalInstance<JAISeMgr>(setInstance) {
mAudience = NULL;
mSeqDataMgr = NULL;
mStrategyMgr = NULL;
@@ -182,9 +185,9 @@ JAISeMgr::JAISeMgr(bool param_0) : JASGlobalInstance<JAISeMgr>(param_0) {
/* 802A0168-802A01D8 29AAA8 0070+00 1/0 0/0 0/0 .text
* isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion */
bool JAISeMgr::isUsingSeqData(JAISeqDataRegion const& param_0) {
bool JAISeMgr::isUsingSeqData(const JAISeqDataRegion& seqDataRegion) {
for (int i = 0; i < 16; i++) {
if (mCategoryMgrs[i].JAISeCategoryMgr::isUsingSeqData(param_0)) {
if (mCategoryMgrs[i].JAISeCategoryMgr::isUsingSeqData(seqDataRegion)) {
return true;
}
}
@@ -193,26 +196,27 @@ bool JAISeMgr::isUsingSeqData(JAISeqDataRegion const& param_0) {
/* 802A01D8-802A0268 29AB18 0090+00 1/0 0/0 0/0 .text
* releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion */
int JAISeMgr::releaseSeqData(JAISeqDataRegion const& param_0) {
u8 r30 = 0;
int JAISeMgr::releaseSeqData(const JAISeqDataRegion& seqDataRegion) {
bool r30 = 0;
for (int i = 0; i < 16; i++) {
switch (mCategoryMgrs[i].JAISeCategoryMgr::releaseSeqData(param_0)) {
case 0:
return 0;
case 1:
r30 = 1;
break;
switch (mCategoryMgrs[i].JAISeCategoryMgr::releaseSeqData(seqDataRegion)) {
case 0:
return 0;
case 1:
r30 = 1;
break;
}
}
return (r30 != 0) ? 1 : 0;
}
/* 802A0268-802A02A0 29ABA8 0038+00 0/0 1/1 0/0 .text
* setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement */
void JAISeMgr::setCategoryArrangement(JAISeCategoryArrangement const& param_0) {
void JAISeMgr::setCategoryArrangement(const JAISeCategoryArrangement& arrangement) {
for (int i = 0; i < 16; i++) {
mCategoryMgrs[i].setMaxActiveSe(param_0.mItems[i].mMaxActiveSe);
mCategoryMgrs[i].setMaxInactiveSe(param_0.mItems[i].mMaxInactiveSe);
mCategoryMgrs[i].setMaxActiveSe(arrangement.mItems[i].mMaxActiveSe);
mCategoryMgrs[i].setMaxInactiveSe(arrangement.mItems[i].mMaxInactiveSe);
}
}
@@ -225,9 +229,9 @@ void JAISeMgr::stop() {
/* 802A02F4-802A0358 29AC34 0064+00 0/0 1/1 0/0 .text stopSoundID__8JAISeMgrF10JAISoundID
*/
void JAISeMgr::stopSoundID(JAISoundID param_0) {
void JAISeMgr::stopSoundID(JAISoundID id) {
for (int i = 0; i < 16; i++) {
mCategoryMgrs[i].stopSoundID(param_0);
mCategoryMgrs[i].stopSoundID(id);
}
}
@@ -240,14 +244,16 @@ void JAISeMgr::initParams() {
/* 802A03D8-802A03E0 -00001 0008+00 0/0 0/0 0/0 .text setAudience__8JAISeMgrFP11JAIAudience */
void JAISeMgr::setAudience(JAIAudience* param_0) {
mAudience = param_0;
void JAISeMgr::setAudience(JAIAudience* audience) {
JUT_ASSERT(363, ! isActive());
mAudience = audience;
}
/* 802A03E0-802A0434 29AD20 0054+00 0/0 1/1 0/0 .text setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr */
void JAISeMgr::setSeqDataMgr(JAISeqDataMgr* param_0) {
void JAISeMgr::setSeqDataMgr(JAISeqDataMgr* seqDataMgr) {
JUT_ASSERT(377, ! isActive());
resetSeqDataMgr();
mSeqDataMgr = param_0;
mSeqDataMgr = seqDataMgr;
mSeqDataMgr->setSeqDataUser(this);
}
@@ -260,21 +266,25 @@ void JAISeMgr::resetSeqDataMgr() {
}
/* 802A0484-802A0574 29ADC4 00F0+00 1/1 0/0 0/0 .text newSe___8JAISeMgrFiUl */
JAISe* JAISeMgr::newSe_(int i_category, u32 param_1) {
if (i_category < 0) {
i_category = 0;
JAISe* JAISeMgr::newSe_(int category, u32 priority) {
JUT_ASSERT(396, category < NUM_CATEGORIES);
if (category < 0) {
category = 0;
}
if (!mCategoryMgrs[i_category].JAISeMgr_acceptsNewSe_(param_1)) {
JAISeCategoryMgr* categoryMgr = &mCategoryMgrs[category];
if (!categoryMgr->JAISeMgr_acceptsNewSe_(priority)) {
return NULL;
}
JAISe* se = new JAISe(this, mStrategyMgr, param_1);
JAISe* se = new JAISe(this, mStrategyMgr, priority);
if (se == NULL) {
JUT_WARN(410, "%s", "JASPoolAllocObject::<JAISe>::operator new failed .\n")
return NULL;
}
mCategoryMgrs[i_category].JAISeMgr_appendSe_(se);
categoryMgr->JAISeMgr_appendSe_(se);
return se;
}
@@ -298,43 +308,49 @@ 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,
JGeometry::TVec3<f32> const* param_2) {
if (param_1 && param_1->isSoundAttached()) {
param_1->getSound()->stop();
bool JAISeMgr::startSound(JAISoundID id, JAISoundHandle* handle, const JGeometry::TVec3<f32>* posPtr) {
if (handle && *handle) {
(*handle)->stop();
}
JAISoundInfo* pSoundInfo = JASGlobalInstance<JAISoundInfo>::getInstance();
u32 uVar4;
u32 categoryIndex;
if (pSoundInfo != NULL) {
categoryIndex = pSoundInfo->getCategory(param_0);
uVar4 = pSoundInfo->getPriority(param_0);
JAISoundInfo* soundInfoPtr = JASGlobalInstance<JAISoundInfo>::getInstance();
u32 priority;
u32 category;
if (soundInfoPtr != NULL) {
category = soundInfoPtr->getCategory(id);
priority = soundInfoPtr->getPriority(id);
} else {
categoryIndex = param_0.mId.mBytes.b1;
uVar4 = 0;
category = id.id_.info.type.parts.groupID;
priority = 0;
}
JAISe* pJAISe = newSe_(categoryIndex, uVar4);
if (pJAISe == NULL) {
JASReport("cannot new Se %08x.", param_0.mId.mFullId);
JAISe* se = newSe_(category, priority);
if (se == NULL) {
#if !PLATFORM_SHIELD
JASReport("cannot new Se %08x.", id.id_.composite_);
#endif
return false;
}
JAIAudience* pAudience = getAudience(categoryIndex);
pJAISe->JAISeMgr_startID_(param_0, param_2, pAudience);
if (pSoundInfo != NULL) {
pSoundInfo->getSeInfo(param_0, pJAISe);
JAIAudience* audiencePtr = getAudience(category);
se->JAISeMgr_startID_(id, posPtr, audiencePtr);
if (soundInfoPtr != NULL) {
soundInfoPtr->getSeInfo(id, se);
}
if (param_1 != NULL) {
pJAISe->attachHandle(param_1);
if (handle != NULL) {
se->attachHandle(handle);
}
return true;
}
/* 802A08D0-802A08FC 29B210 002C+00 0/0 2/2 0/0 .text getNumActiveSe__8JAISeMgrCFv */
int JAISeMgr::getNumActiveSe() const {
int sum = 0;
int num = 0;
for (int i = 0; i < 16; i++) {
sum += mCategoryMgrs[i].getNumSe();
num += mCategoryMgrs[i].getNumSe();
}
return sum;
return num;
}