summaryrefslogtreecommitdiff
path: root/src/Z2AudioLib
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2025-04-13 21:55:52 +0300
committerGitHub <noreply@github.com>2025-04-13 11:55:52 -0700
commit3df5c7bb42c1b886024b254fec28e5f98310b630 (patch)
tree7f1ae60b520d5707addc5da2204771a59e9c49ce /src/Z2AudioLib
parent417922b5c37b01a29a6d7816e53e3f3b2dddd9f0 (diff)
Various alignments to debug + matching TUs (#2391)
Diffstat (limited to 'src/Z2AudioLib')
-rw-r--r--src/Z2AudioLib/Z2Audience.cpp53
-rw-r--r--src/Z2AudioLib/Z2EnvSeMgr.cpp68
-rw-r--r--src/Z2AudioLib/Z2SeqMgr.cpp30
-rw-r--r--src/Z2AudioLib/Z2SpeechMgr2.cpp2
4 files changed, 95 insertions, 58 deletions
diff --git a/src/Z2AudioLib/Z2Audience.cpp b/src/Z2AudioLib/Z2Audience.cpp
index a6306be42e..8a200729ba 100644
--- a/src/Z2AudioLib/Z2Audience.cpp
+++ b/src/Z2AudioLib/Z2Audience.cpp
@@ -70,11 +70,12 @@ JASSoundParams* Z2Audible::getOuterParams(int param_0) {
/* 802BBEE4-802BC204 2B6824 0320+00 1/1 0/0 0/0 .text
* setOuterParams__9Z2AudibleFRC14JASSoundParamsRC14JASSoundParamsi */
-// NONMATCHING regalloc
void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams const& param_1,
- int param_2) {
- Z2AudibleChannel* this_01 = &field_0x2c[param_2];
- u32 iStack_94 = (field_0x10.field_0x0.half.f1 & 0xf00) >> 8;
+ int index) {
+ JUT_ASSERT(89, index >= 0);
+ JUT_ASSERT(90, index < 1);
+ Z2AudibleChannel* this_01 = &field_0x2c[index];
+ u8 iStack_94 = (field_0x10.field_0x0.half.f1 & 0xf00) >> 8;
if (iStack_94 == 0) {
this_01->field_0x0.combine(param_0, param_1);
return;
@@ -105,28 +106,24 @@ void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams con
dVar10 = 0.0f;
}
}
- dVar10 -= this_01->field_0x28;
- f32 dVar11;
- if (dVar10 > 0.0f) {
- dVar11 = J3DUD::JMAAbs(dVar10);
- dVar11 = Z2Calc::getParamByExp(dVar11, 1.0f, 0.0f, 0.1f, 0.1f, 0.5f, Z2Calc::CURVE_SIGN_1);
+ f32 dVar15 = dVar10 - this_01->field_0x28;
+ f32 dVar11 = 1.0f;
+ if (dVar15 > 0.0f) {
+ dVar11 = Z2Calc::getParamByExp(J3DUD::JMAAbs(dVar15), 1.0f, 0.0f, 0.1f, 0.1f, 0.5f, Z2Calc::CURVE_SIGN_1);
} else {
- dVar11 = J3DUD::JMAAbs(dVar10);
- dVar11 = Z2Calc::getParamByExp(dVar11, -1.0f, 0.0f, 0.1f, 1.0f / 30.0f, 0.5f, Z2Calc::CURVE_SIGN_1);
+ dVar11 = Z2Calc::getParamByExp(J3DUD::JMAAbs(dVar15), -1.0f, 0.0f, 0.1f, 1.0f / 30.0f, 0.5f, Z2Calc::CURVE_SIGN_1);
}
- f32 fVar1 = this_01->field_0x28 + (dVar10 * dVar11);
- if (fVar1 < 0.0f) {
- fVar1 = 0.0f;
- } else if (fVar1 > 1.0f) {
- fVar1 = 1.0f;
- }
- local_b0.mVolume = param_1.mVolume * fVar1;
- this_01->field_0x28 = fVar1;
- f32 dVar8 = J3DUD::JMAAbs(local_b8.x);
- f32 dVar13 = Z2Calc::getParamByExp(local_b0.mVolume * dVar8, 1.0f, 0.0f, 0.1f,
+ dVar10 = this_01->field_0x28 + (dVar15 * dVar11);
+ if (dVar10 < 0.0f) {
+ dVar10 = 0.0f;
+ } else if (dVar10 > 1.0f) {
+ dVar10 = 1.0f;
+ }
+ local_b0.mVolume = param_1.mVolume * dVar10;
+ this_01->field_0x28 = dVar10;
+ f32 dVar13 = Z2Calc::getParamByExp(local_b0.mVolume * J3DUD::JMAAbs(local_b8.x), 1.0f, 0.0f, 0.1f,
1.0f / 30.0f, 1.0 / 3.0f, Z2Calc::CURVE_SIGN_1);
- f32 dVar14 = J3DUD::JMAAbs(local_b8.y);
- dVar14 = Z2Calc::getParamByExp(local_b0.mVolume * dVar14, 1.0f,
+ f32 dVar14 = Z2Calc::getParamByExp(local_b0.mVolume * J3DUD::JMAAbs(local_b8.y), 1.0f,
0.0f, 0.1f,
1.0f / 30.0f, 1.0f / 3.0f, Z2Calc::CURVE_SIGN_1);
if (dVar13 > 1.0f / 3.0f) {
@@ -514,7 +511,9 @@ Z2Audience::Z2Audience() : JASGlobalInstance<Z2Audience>(true), field_0x4(1.0f),
}
/* 802BD1FC-802BD288 2B7B3C 008C+00 1/0 1/1 0/0 .text __dt__10Z2AudienceFv */
-Z2Audience::~Z2Audience() {}
+Z2Audience::~Z2Audience() {
+ //JUT_ASSERT(751, !isActive());
+}
/* 802BD2DC-802BD338 2B7C1C 005C+00 0/0 1/1 0/0 .text
* setAudioCamera__10Z2AudienceFPA4_fR3VecR3Vecffbib */
@@ -855,6 +854,12 @@ int Z2Audience::getMaxChannels() {
return mMaxChannels;
}
+static void dummyMempool() {
+
+}
+
+
+
// padding (???)
s8 data_80451355;
s8 data_80451356;
diff --git a/src/Z2AudioLib/Z2EnvSeMgr.cpp b/src/Z2AudioLib/Z2EnvSeMgr.cpp
index b62f873c14..16bca211b3 100644
--- a/src/Z2AudioLib/Z2EnvSeMgr.cpp
+++ b/src/Z2AudioLib/Z2EnvSeMgr.cpp
@@ -10,6 +10,11 @@
#include "d/d_save.h"
#include "d/d_com_inf_game.h"
+#ifdef DEBUG
+// Should be in data section
+static char sSpotName[144] = {0};
+#endif
+
/* 802C589C-802C58AC 2C01DC 0010+00 3/3 0/0 0/0 .text __ct__11Z2EnvSeBaseFP3Vec */
Z2EnvSeBase::Z2EnvSeBase(Vec* param_0) {
mPos = param_0;
@@ -970,6 +975,10 @@ void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) {
/* 802C8300-802C8730 2C2C40 0430+00 2/1 1/1 0/0 .text startRiverSe__10Z2EnvSeMgrFSc */
// NONMATCHING JAISound stack issues
bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
+ #ifdef DEBUG
+ char* spotName = sSpotName;
+ #endif
+
if (Z2GetStatusMgr()->mCameraMapInfo == 6) {
switch (Z2GetSceneMgr()->getCurrentSceneNum()) {
case 5:
@@ -982,7 +991,13 @@ bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
}
case 8:
// fake match: should be 2000.0f according to debug, but that generates an extra entry in sdata2
- if (Z2GetStatusMgr()->mPolygonPosition.y < -14500.0f) {
+ if ((Z2GetStatusMgr()->mPolygonPosition.y >
+ #ifdef DEBUG
+ 2000.0f
+ #else
+ -14500.0f
+ #endif
+ )) {
break;
}
case 0x15:
@@ -1003,26 +1018,31 @@ bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
f32 dVar16 = param_1 / 127.0f;
f32 dVar18 = field_0x1ac * mRiverSeMgr.getMaxVolume();
f32 dVar13 = mRiverSeMgr.getPanPower();
- f32 dVar14 = mRiverSeMgr.getDolbyPower();
+ f32 dolbyPower = mRiverSeMgr.getDolbyPower();
f32 dVar17 = field_0x1b0;
+ f32 fArr0;
+ f32 fArr1;
+ f32 fArr2;
+ f32 fArr3;
switch (field_0x188) {
case 0:
return false;
case 1:
aJStack_742 = Z2SE_ENV_RIVER_SMALL;
+ fArr3 = dolbyPower;
dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f,
true);
dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f,
true);
- uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0);
+ uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dolbyPower, dVar17, 0);
break;
case 2:
aJStack_742 = Z2SE_ENV_RIVER_NORMAL;
mRiverSeMgr.getMaxPowL();
mRiverSeMgr.getMaxPowR();
- mRiverSeMgr.getDolbyPower();
- uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0);
+ fArr2 = mRiverSeMgr.getDolbyPower();
+ uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dolbyPower, dVar17, 0);
break;
case 3:
if (field_0x1b8 > 0) {
@@ -1035,15 +1055,17 @@ bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
}
}
aJStack_742 = Z2SE_ENV_SEWER;
+ fArr1 = dolbyPower;
dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, true);
dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, true);
- uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0);
+ uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dolbyPower, dVar17, 0);
break;
case 5:
aJStack_742 = Z2SE_ENV_SPIRIT_FOUNTAIN;
+ fArr0 = dolbyPower;
dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, true);
dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, true);
- uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0);
+ uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dolbyPower, dVar17, 0);
break;
}
@@ -1323,23 +1345,27 @@ f32 Z2EnvSeMgr::getFogDensity() {
/* 802C9400-802C950C 2C3D40 010C+00 0/0 0/0 1/1 .text startFogSe__10Z2EnvSeMgrFv */
// NONMATCHING fmuls reg order
bool Z2EnvSeMgr::startFogSe() {
+ bool iVar5 = false;
f32 dVar10 = field_0x2e8.calcNoise1f();
- f32 dVar14 = 0.332f + (0.668f * dVar10);
- f32 dVar13 = 0.8f + (dVar10 * 0.2f);
- f32 dVar12 = 0.5f - (dVar10 * 0.4f) / 2;
- bool iVar5 =
- field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 20.0f, dVar14, dVar12, 0.5f, dVar13, 0);
+ f32 ratio = 0.332f;
+ f32 fVar1 = 0.2f;
+ f32 fVar2 = 0.4f;
+ f32 dVar14 = ratio + ((1.0f - ratio) * dVar10);
+ f32 dVar13 = (1.0f - fVar1) + (dVar10 * fVar1);
+ f32 dVar12 = 0.5f - (dVar10 * fVar2) / 2;
+ int iVar1 = 20;
+ f32 fVar3 = 0.5f;
+ bool iVar6 =
+ field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, iVar1, dVar14, dVar12, fVar3, dVar13, 0);
dVar10 = field_0x2f8.calcNoise1f();
- dVar14 = (0.332f + (0.668f * dVar10));
- dVar13 = (0.8f + (0.2f * dVar10));
- dVar12 = (0.5f + ( 0.4f * dVar10) / 2);
- bool iVar6 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, 20.0f, dVar14, dVar12, 0.5f,
+ dVar14 = (ratio + ((1.0f - ratio) * dVar10));
+ dVar13 = ((1.0f - fVar1) + dVar10 * fVar1);
+ dVar12 = (0.5f + (dVar10 * fVar2) / 2);
+ iVar1 = 20;
+ fVar3 = 0.5f;
+ iVar5 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, iVar1, dVar14, dVar12, fVar3,
dVar13, 0);
- bool uVar8 = false;
- if (iVar5 && iVar6) {
- uVar8 = true;
- }
- return uVar8;
+ return (iVar6 && iVar5);
}
/* 802C950C-802C9F58 2C3E4C 0A4C+00 2/0 1/1 0/0 .text initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc */
diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp
index 6a57686328..c618323384 100644
--- a/src/Z2AudioLib/Z2SeqMgr.cpp
+++ b/src/Z2AudioLib/Z2SeqMgr.cpp
@@ -16,7 +16,7 @@
#include "dol2asm.h"
/* 802AEEA0-802AF010 2A97E0 0170+00 0/0 1/1 0/0 .text __ct__8Z2SeqMgrFv */
-Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(this) {
+Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(true) {
mMainBgmMaster.forceIn();
mSubBgmMaster.forceIn();
mBgmPause.forceIn();
@@ -28,6 +28,12 @@ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(this) {
mTwilightGateVol = 1.0f;
mAllBgmMaster.forceIn();
field_0xa4.forceIn();
+
+ #ifdef DEBUG
+ field_0x00_debug = 1.0f;
+ field_0x04_debug = 0;
+ #endif
+
field_0xb8 = -1;
resetBattleBgmParams();
mBgmStatus = 0xff;
@@ -1931,10 +1937,8 @@ void Z2SeqMgr::startBattleBgm(bool i_fade) {
}
/* 802B5204-802B545C 2AFB44 0258+00 3/3 1/1 0/0 .text stopBattleBgm__8Z2SeqMgrFUcUc */
-// NONMATCHING regalloc
void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) {
if (mBattleSeqCount == 0) {
- u8 count;
s16 ivar6 = 0;
if (Z2GetLink() != NULL) {
ivar6 = Z2GetLink()->getMoveSpeed() - 23;
@@ -1946,20 +1950,22 @@ void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) {
ivar6 = struct_80450861;
}
if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) {
- u8 count_out = struct_80450861 + ivar6;
- count = struct_80450862 + ivar6 / 2;
- mSubBgmHandle->fadeOut(count_out);
- mBattleSeqCount = count_out;
+ param_0 = struct_80450861 + ivar6;
+ param_1 = struct_80450862 + ivar6 / 2;
+ mSubBgmHandle->fadeOut(param_0);
+ mBattleSeqCount = param_0;
} else if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) {
if (mSubBgmStatus > 1) {
- count = struct_80450861 + ivar6 / 4;
+ param_0 = struct_80450861 + ivar6 / 4;
+ param_1 = struct_80450861 + ivar6 / 4;
} else {
- count = 25 + ivar6 / 4;
+ param_0 = 25 + ivar6 / 4;
+ param_1 = 25 + ivar6 / 4;
}
- mSubBgmHandle->fadeOut(count);
- mBattleSeqCount = count;
+ mSubBgmHandle->fadeOut(param_0);
+ mBattleSeqCount = param_0;
}
- mMainBgmMaster.fadeIn(count);
+ mMainBgmMaster.fadeIn(param_1);
mBattleDistState = 3;
setBattleDistIgnore(false);
mFlags.mBattleSearched = false;
diff --git a/src/Z2AudioLib/Z2SpeechMgr2.cpp b/src/Z2AudioLib/Z2SpeechMgr2.cpp
index 49f589fc90..9cc6913e75 100644
--- a/src/Z2AudioLib/Z2SpeechMgr2.cpp
+++ b/src/Z2AudioLib/Z2SpeechMgr2.cpp
@@ -490,7 +490,7 @@ void Z2SpeechMgr2::setString(u16 const* s, s16 i_textNum, u8 i_speaker, u16 i_mo
if (i_textNum > 500) {
mTextNum = 500;
- JUT_WARN_1(387, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
+ JUT_WARN_DEVICE(387, 1, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
} else {
mTextNum = i_textNum;
}