summaryrefslogtreecommitdiff
path: root/src/Z2AudioLib/Z2F1TestWindow.cpp
diff options
context:
space:
mode:
authorRoman Sandu <roma.sandu@gmail.com>2026-03-27 04:54:07 +0300
committerGitHub <noreply@github.com>2026-03-26 18:54:07 -0700
commit0fc019dcfa2ed1834825e9754d47e7948e1745f7 (patch)
treec3b06bbb412d48cc6586bea3312274dd70f00761 /src/Z2AudioLib/Z2F1TestWindow.cpp
parentf8cf5458482d7b380f52740289745b8241448559 (diff)
JAHostIO and friends (#3131)
Diffstat (limited to 'src/Z2AudioLib/Z2F1TestWindow.cpp')
-rw-r--r--src/Z2AudioLib/Z2F1TestWindow.cpp198
1 files changed, 198 insertions, 0 deletions
diff --git a/src/Z2AudioLib/Z2F1TestWindow.cpp b/src/Z2AudioLib/Z2F1TestWindow.cpp
new file mode 100644
index 0000000000..7cf5c5eb63
--- /dev/null
+++ b/src/Z2AudioLib/Z2F1TestWindow.cpp
@@ -0,0 +1,198 @@
+#include "Z2AudioLib/Z2F1TestWindow.h"
+#include "JSystem/JAHostIO/JAHioMessage.h"
+#include "JSystem/JAudio2/JASAudioThread.h"
+#include "JSystem/JKernel/JKRHeap.h"
+#include "Z2AudioLib/Z2Audience.h"
+
+f32 sF1_Diff = 0.01f;
+f32 sF1_i = 0.1f;
+f32 sF1_Geta = 0.2f;
+s32 sF1_Frame = 200;
+f32 sF1_Pitch_Width = 0.2f;
+f32 sF1_Pan_Width;
+
+Z2F1TestWindow::Z2F1TestWindow() : JAWWindow("Z2F1TestWindow", 500, 450) {}
+
+void Z2F1TestWindow::onDraw(JAWGraphContext*) {}
+
+void Z2F1TestWindow::frameWork() {}
+
+void Z2F1TestWindow::calcF1() {}
+
+void Z2F1TestWindow::onPadProc(const JUTGamePad&) {}
+
+f32 Z2F1TestWindow::tau(f32) {}
+
+f32 Z2F1TestWindow::calcThreshold(int) {}
+
+f32 Z2F1TestWindow::getRawX() const {
+ return field_0x3f0;
+}
+
+f32 Z2F1TestWindow::calcNoise() {
+ field_0x3f0 = field_0x3f4;
+ field_0x3f4 = tau(field_0x3f0);
+ return field_0x3f0;
+}
+
+void Z2F1TestWindow::setValue(f32 param_1, f32 param_2) {
+ field_0x3f0 = param_1;
+ field_0x3f4 = param_1;
+ field_0xbd4 = param_2;
+}
+
+void Z2F1TestWindow::onTrigY(const JUTGamePad&) {
+ for (u16 i = 0; i < 500; ++i)
+ field_0x3f8[i] = 0.0f;
+
+ field_0x3f0 = tau(sF1_i);
+ field_0x3f4 = tau(field_0x3f0);
+ field_0xbd4 = calcThreshold(sF1_Frame);
+}
+
+void Z2F1TestWindow::onTrigMenu(const JUTGamePad&) {
+ if (field_0xbd0)
+ field_0xbd0 = 0;
+ else
+ field_0xbd0 = 1;
+}
+
+Z2F1SwingTestNode::Z2F1SwingTestNode()
+ : JAHFrameNode("1/fゆらぎテスト"), field_0xc48(-1, NULL), field_0xcd0(-1, NULL) {
+ appendVirNode(&field_0xc48);
+ appendVirNode(&field_0xcd0);
+ mModulateVolume = 0;
+ mModulatePitch = 0;
+ mModulatePan = 0;
+ mModulateDolby = 0;
+ field_0xd5c = 0.0f;
+ field_0xd60 = 0.0f;
+ field_0xd64 = 0.0f;
+ field_0xd68 = 0.0f;
+}
+
+void Z2F1SwingTestNode::message(JAHControl& ctrl) {
+ ctrl.makeComment("--1/fゆらぎテスト--", 0, 5, 0);
+ ctrl.indent(1);
+ ctrl.makeSlider("Diff値", &sF1_Diff, 0.0, 0.1, 0);
+ ctrl.makeSlider("i値", &sF1_i, 0.0f, 1.0f, 0);
+ ctrl.makeSlider("Geta値", &sF1_Geta, 0.0f, 1.0f, 0);
+ ctrl.makeSlider("frame値", &sF1_Frame, 2, 200, 0);
+ ctrl.returnY(1);
+ ctrl.makeCheckBox("ボリューム変調", &mModulateVolume, 1, false, 0);
+ ctrl.makeCheckBox("ピッチ変調", &mModulatePitch, 1, false, 0);
+ ctrl.makeSlider("Pitch ゆらぎ幅", &sF1_Pitch_Width, 0.0f, 1.0f, 0);
+ ctrl.makeCheckBox("パン変調", &mModulatePan, 1, false, 0);
+ ctrl.makeSlider("パン移動幅", &sF1_Pan_Width, 0.0f, 1.0f, 0);
+ ctrl.makeCheckBox("ドルビー変調", &mModulateDolby, 1, false, 0);
+}
+
+void Z2F1SwingTestNode::onFrame() {
+ f32 fVar1 = 1.0;
+ f32 fVar2 = getValue() * (1.0f - sF1_Geta) + sF1_Geta;
+ f32 fVar3 = getValue2() * (1.0f - sF1_Geta) + sF1_Geta;
+ if (field_0xc48.unk40.isSoundAttached() && field_0xcd0.unk40.isSoundAttached()) {
+ fVar1 = 0.5f;
+ field_0xc48.unk40->getAuxiliary().moveVolume(fVar2 * fVar1, 0);
+ field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0);
+ } else if (field_0xc48.unk40.isSoundAttached()) {
+ fVar1 = 1.0f;
+ field_0xc48.unk40->getAuxiliary().moveVolume(fVar2 * fVar1, 0);
+ } else if (field_0xcd0.unk40.isSoundAttached()) {
+ fVar1 = 1.0f;
+ field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0);
+ }
+
+ if (field_0xc48.unk40.isSoundAttached()) {
+ if (mModulateVolume)
+ field_0xc48.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0);
+ else
+ field_0xc48.unk40->getAuxiliary().moveVolume(0.5f, 0);
+
+ if (mModulatePitch)
+ field_0xc48.unk40->getAuxiliary().movePitch(
+ getValue2() * sF1_Pitch_Width + (1.0f - sF1_Pitch_Width), 0);
+ else
+ field_0xc48.unk40->getAuxiliary().movePitch(1.0f, 0);
+
+ if (mModulatePan)
+ field_0xc48.unk40->getAuxiliary().movePan(0.5f - getValue2() * sF1_Pan_Width / 2, 0);
+ else
+ field_0xc48.unk40->getAuxiliary().movePan(0.5f, 0);
+
+ if (mModulateDolby)
+ field_0xc48.unk40->getAuxiliary().moveDolby(fVar3, 0);
+ else
+ field_0xc48.unk40->getAuxiliary().moveDolby(0.0f, 0);
+ } else if (field_0xcd0.unk40.isSoundAttached()) {
+ if (mModulateVolume)
+ field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0);
+ else
+ field_0xcd0.unk40->getAuxiliary().moveVolume(0.5f, 0);
+
+ if (mModulatePitch)
+ field_0xcd0.unk40->getAuxiliary().movePitch(
+ getValue2() * sF1_Pitch_Width + (1.0f - sF1_Pitch_Width), 0);
+ else
+ field_0xcd0.unk40->getAuxiliary().movePitch(1.0f, 0);
+
+ if (mModulatePan)
+ field_0xcd0.unk40->getAuxiliary().movePan(0.5f + getValue2() * sF1_Pan_Width / 2, 0);
+ else
+ field_0xcd0.unk40->getAuxiliary().movePan(0.5f, 0);
+
+ if (mModulateDolby)
+ field_0xcd0.unk40->getAuxiliary().moveDolby(fVar3, 0);
+ else
+ field_0xcd0.unk40->getAuxiliary().moveDolby(0.0f, 0);
+ }
+}
+
+f32 Z2F1TestWindow::getValue2() {
+ return field_0x3f8[field_0xbcc];
+}
+
+f32 Z2F1TestWindow::getValue() {
+ return field_0x3f8[field_0xbc8];
+}
+
+Z2AudSettingView::Z2AudSettingView() : JAWWindow("Z2AudSettingView", 400, 300) {}
+
+void Z2AudSettingView::onDraw(JAWGraphContext* param_1) {
+ const Z2AudioCamera* this_00 = Z2GetAudience()->getAudioCamera(0);
+ Z2Audience3DSetting* pfVar2 = Z2GetAudience()->getSetting();
+ int l = 0;
+ param_1->print(0, l++, "<SETTING>");
+ param_1->print(0, l++, "far dist %.3f", pfVar2->field_0x0[0]);
+ param_1->print(0, l++, "near dist %.3f", pfVar2->field_0x3c);
+ param_1->print(0, l++, "frontDolbyZ %.3f", pfVar2->field_0x44);
+ param_1->print(0, l++, "behindDolbyZ %.3f", pfVar2->field_0x48);
+ param_1->print(0, l++, "centerDolby %.3f", pfVar2->field_0x4c);
+ ++l;
+ param_1->print(0, l++, "<AUD CAMERA>");
+ param_1->print(0, l++, "CamDist %.3f", this_00->getCamDist());
+ param_1->print(0, l++, "vel.x %.3f", this_00->getVel()->x);
+ param_1->print(0, l++, "vel.y %.3f", this_00->getVel()->y);
+ param_1->print(0, l++, "vel.z %.3f", this_00->getVel()->z);
+ param_1->print(0, l++, "TargetVolume %.3f", this_00->getTargetVolume());
+ param_1->print(0, l++, "VolCenterZ %.3f", this_00->getVolCenterZ());
+ param_1->print(0, l++, "DolbyCenterZ %.3f", this_00->getDolbyCenterZ());
+ param_1->print(0, l++, "getFovySin %.3f", this_00->getFovySin());
+}
+
+void Z2DSPCheck::onDraw(JAWGraphContext* param_1) {
+ u8* puVar1 = (u8*)JKRHeap::getAltAramStartAdr();
+ DCInvalidateRange(puVar1, 0x20);
+ int l = 0;
+ param_1->print(0, l++, "<DISP INFO>");
+ param_1->print(0, l++, "VARAM_TOP %08X", puVar1);
+ param_1->print(0, l++, "DSP state %04X", *(u16*)(puVar1 + 0));
+ param_1->print(0, l++, "DSP channel %04X", *(u8*)(puVar1 + 2));
+ param_1->print(0, l++, "DSP sub-fr %04X", *(u8*)(puVar1 + 3));
+ param_1->print(0, l++, "DSP cmd wr %04X", *(u16*)(puVar1 + 4));
+ param_1->print(0, l++, "DSP sub-rd %04X", *(u16*)(puVar1 + 6));
+ param_1->print(0, l++, "DSP cmd rest %04X", *(u16*)(puVar1 + 8));
+ l++;
+ param_1->print(0, l++, "<CPU AUDIO THREAD INFO>");
+ param_1->print(0, l++, "DSPSyncCount %2d", JASAudioThread::getDSPSyncCount());
+}