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
+72 -49
View File
@@ -1,8 +1,3 @@
//
// Generated By: dol2asm
// Translation Unit: Z2FxLineMgr
//
#include "Z2AudioLib/Z2FxLineMgr.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "JSystem/JAudio2/JASDSPInterface.h"
@@ -11,25 +6,40 @@
#include "JSystem/JSupport/JSUMemoryStream.h"
/* 802BA7DC-802BA7FC 2B511C 0020+00 0/0 1/1 0/0 .text __ct__11Z2FxLineMgrFv */
Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(this) {
Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(true) {
mConfig = NULL;
mLineID = -1;
mFxDataNum = 0;
mSetUnderWaterFx = false;
#if DEBUG
mHIOEdit = NULL;
#endif
}
/* 802BA7FC-802BAC28 2B513C 042C+00 0/0 1/1 0/0 .text
* initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap */
void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) {
JUT_ASSERT(44, arc);
JUT_ASSERT(45, 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];
JUT_ASSERT(53, mFxLineBuffer[0]);
JUT_ASSERT(54, mFxLineBuffer[1]);
JUT_ASSERT(55, mFxLineBuffer[2]);
JUT_ASSERT(56, mFxLineBuffer[3]);
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;
@@ -61,23 +71,29 @@ void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) {
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 fxID, bool param_1, bool param_2) {
JUT_ASSERT(109, fxID < mFxDataNum);
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* config, bool param_1, bool param_2) {
JUT_ASSERT(121, config);
u8 buf1 = 0;
u8 buf2 = 1;
if (param_1) {
@@ -86,6 +102,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
}
if (mFxLineBuffer[buf1] == NULL || mFxLineBuffer[buf2] == NULL) {
OS_REPORT("[Z2FxLineMgr::setLine] FxBuffer is NOT CREATED!!\n");
return;
}
@@ -93,6 +110,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
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;
@@ -100,6 +118,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
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];
@@ -114,6 +133,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
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;
@@ -121,6 +141,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) {
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];
@@ -139,84 +160,86 @@ void Z2FxLineMgr::setFxForceOff(bool param_0) {
}
/* 802BAE48-802BAEB8 2B5788 0070+00 0/0 1/1 0/0 .text setUnderWaterFx__11Z2FxLineMgrFb */
void Z2FxLineMgr::setUnderWaterFx(bool param_0) {
if (mSetUnderWaterFx != param_0) {
if (param_0) {
void Z2FxLineMgr::setUnderWaterFx(bool isUnderWaterFx) {
if (mSetUnderWaterFx != isUnderWaterFx) {
if (isUnderWaterFx) {
OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → underWaterFx!\n");
setLineID(12, true, false);
} else {
OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → sceneFx!\n");
setSceneFx(Z2GetSceneMgr()->getCurrentSceneNum());
}
mSetUnderWaterFx = param_0;
mSetUnderWaterFx = isUnderWaterFx;
}
}
/* 802BAEB8-802BB00C 2B57F8 0154+00 2/1 1/1 0/0 .text setSceneFx__11Z2FxLineMgrFl */
void Z2FxLineMgr::setSceneFx(s32 sceneNum) {
void Z2FxLineMgr::setSceneFx(s32 sceneNo) {
if (Z2GetSceneMgr()->isInDarkness()) {
setLineID(11, true, false);
} else {
switch (sceneNum) {
case SPOT_SHADES_REALM:
switch (sceneNo) {
case Z2SCENE_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:
case Z2SCENE_KAKARIKO_VILLAGE:
case Z2SCENE_DEATH_MOUNTAIN:
case Z2SCENE_HIDDEN_VILLAGE:
case Z2SCENE_ZORAS_RIVER:
case Z2SCENE_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:
case Z2SCENE_SACRED_GROVE:
case Z2SCENE_FOREST_TEMPLE:
case Z2SCENE_FOREST_TEMPLE_MINIBOSS:
case Z2SCENE_FOREST_TEMPLE_BOSS:
case Z2SCENE_GORGE_LANTERN_CAVE:
case Z2SCENE_LAKE_LANTERN_CAVE:
case Z2SCENE_FARON_WOODS_CAVE:
if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) {
return;
}
// fallthrough
case SPOT_FARON_WOODS:
case Z2SCENE_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:
case Z2SCENE_GORON_MINES:
case Z2SCENE_GORON_MINES_MINIBOSS:
case Z2SCENE_GORON_MINES_BOSS:
case Z2SCENE_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:
case Z2SCENE_LAKE_HYLIA:
case Z2SCENE_LAKEBED_TEMPLE:
case Z2SCENE_LAKEBED_TEMPLE_MINIBOSS:
case Z2SCENE_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:
case Z2SCENE_ARBITERS_GROUNDS:
case Z2SCENE_ARBITERS_GROUNDS_MINIBOSS:
case Z2SCENE_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:
case Z2SCENE_SNOWPEAK_RUINS:
case Z2SCENE_SNOWPEAK_RUINS_MINIBOSS:
case Z2SCENE_SNOWPEAK_RUINS_BOSS:
case Z2SCENE_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:
case Z2SCENE_TEMPLE_OF_TIME:
case Z2SCENE_TEMPLE_OF_TIME_MINIBOSS:
case Z2SCENE_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:
case Z2SCENE_CITY_IN_THE_SKY:
case Z2SCENE_CITY_IN_THE_SKY_MINIBOSS:
case Z2SCENE_CITY_IN_THE_SKY_BOSS:
setLineID(7, true, false);
break;
case SPOT_HYRULE_CASTLE:
case SPOT_FINAL_BATTLE_THRONE_ROOM:
case Z2SCENE_HYRULE_CASTLE:
case Z2SCENE_FINAL_BATTLE_THRONE_ROOM:
setLineID(8, true, false);
break;
default: