From cf022a9a55a9e422a383443c28304d63fdd8a64d Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Sat, 4 Apr 2026 11:36:15 -0400 Subject: [PATCH 1/3] Non-Stop Midna's Lament Audio Enhancement --- include/dusk/settings.h | 3 +++ src/Z2AudioLib/Z2SoundObjMgr.cpp | 7 +++++++ src/dusk/imgui/ImGuiMenuEnhancements.cpp | 9 +++++++++ src/dusk/settings.cpp | 3 +++ 4 files changed, 22 insertions(+) diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 582c5a1872..d6e7ac2791 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -45,6 +45,9 @@ struct UserSettings { bool enableBloom; bool useWaterProjectionOffset; + // Audio + bool midnasLamentNonStop; + // Cheats bool enableFastIronBoots; diff --git a/src/Z2AudioLib/Z2SoundObjMgr.cpp b/src/Z2AudioLib/Z2SoundObjMgr.cpp index 6b080134fb..9fd9c4addb 100644 --- a/src/Z2AudioLib/Z2SoundObjMgr.cpp +++ b/src/Z2AudioLib/Z2SoundObjMgr.cpp @@ -107,6 +107,13 @@ static Z2EnemyInfo mEnemyInfo[64] = { void Z2SoundObjMgr::searchEnemy() { twilightBattle_ = 0; + #if TARGET_PC + if (Z2GetSeqMgr()->checkBgmIDPlaying(Z2BGM_MIDNA_SOS)) { + Z2GetSeqMgr()->changeSubBgmStatus(0); + return; + } + #endif + if (!Z2GetLink()) { Z2GetSeqMgr()->stopBattleBgm(1, 1); return; diff --git a/src/dusk/imgui/ImGuiMenuEnhancements.cpp b/src/dusk/imgui/ImGuiMenuEnhancements.cpp index cf7fcc41d7..a0559c89b4 100644 --- a/src/dusk/imgui/ImGuiMenuEnhancements.cpp +++ b/src/dusk/imgui/ImGuiMenuEnhancements.cpp @@ -67,6 +67,15 @@ namespace dusk { ImGui::EndMenu(); } + if (ImGui::BeginMenu("Audio")) { + ImGui::Checkbox("Non-Stop Midna's Lament", &getSettings().game.midnasLamentNonStop); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Prevents enemy music while Midna's Lament is playing."); + } + + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Cheats")) { ImGui::Checkbox("Fast Iron Boots", &getSettings().game.enableFastIronBoots); diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index ea17eef374..7a11101906 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -41,6 +41,9 @@ UserSettings g_userSettings = { .enableBloom = true, .useWaterProjectionOffset = false, + // Audio + .midnasLamentNonStop = false, + // Cheats .enableFastIronBoots = false, From b4daecaab3c7909e1b8eb2637da7f3ff8947d29e Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Sat, 4 Apr 2026 11:57:42 -0400 Subject: [PATCH 2/3] oops, forgot to check the box --- src/Z2AudioLib/Z2SoundObjMgr.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Z2AudioLib/Z2SoundObjMgr.cpp b/src/Z2AudioLib/Z2SoundObjMgr.cpp index 9fd9c4addb..19099c7675 100644 --- a/src/Z2AudioLib/Z2SoundObjMgr.cpp +++ b/src/Z2AudioLib/Z2SoundObjMgr.cpp @@ -108,7 +108,9 @@ void Z2SoundObjMgr::searchEnemy() { twilightBattle_ = 0; #if TARGET_PC - if (Z2GetSeqMgr()->checkBgmIDPlaying(Z2BGM_MIDNA_SOS)) { + if (Z2GetSeqMgr()->checkBgmIDPlaying(Z2BGM_MIDNA_SOS) && + dusk::getSettings().game.midnasLamentNonStop) + { Z2GetSeqMgr()->changeSubBgmStatus(0); return; } From 845939d8b473681862ea7984287457093255ddbe Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Sat, 4 Apr 2026 14:31:16 -0400 Subject: [PATCH 3/3] removed period in description --- src/dusk/imgui/ImGuiMenuEnhancements.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dusk/imgui/ImGuiMenuEnhancements.cpp b/src/dusk/imgui/ImGuiMenuEnhancements.cpp index a0559c89b4..6a84e020c4 100644 --- a/src/dusk/imgui/ImGuiMenuEnhancements.cpp +++ b/src/dusk/imgui/ImGuiMenuEnhancements.cpp @@ -70,7 +70,7 @@ namespace dusk { if (ImGui::BeginMenu("Audio")) { ImGui::Checkbox("Non-Stop Midna's Lament", &getSettings().game.midnasLamentNonStop); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Prevents enemy music while Midna's Lament is playing."); + ImGui::SetTooltip("Prevents enemy music while Midna's Lament is playing"); } ImGui::EndMenu();