From 70ec9c4915a02aec94db455fdb3f6941fc511aa3 Mon Sep 17 00:00:00 2001 From: Nagtan Date: Wed, 22 Apr 2026 09:00:30 -0300 Subject: [PATCH] SPU: show friendly reverb mode names in debug window --- src/core/spu.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/core/spu.cpp b/src/core/spu.cpp index 84dc70036..a0043bdd8 100644 --- a/src/core/spu.cpp +++ b/src/core/spu.cpp @@ -2559,6 +2559,29 @@ void SPU::UpdateEventInterval() s_state.tick_event.Schedule(new_downcount); } +static constexpr const char* GetReverbModeName(const SPU::ReverbRegisters& reverb_registers) +{ + const u32 signature = + (static_cast(reverb_registers.FB_SRC_A) << 16) | (static_cast(reverb_registers.IIR_COEF)); + + switch (signature) + { + // clang-format off + case 0x0000'0000: return "Off"; + case 0x007D'BA80: return "Room"; + case 0x0033'9C00: return "Studio Small"; + case 0x00B1'B4C0: return "Studio Medium"; + case 0x00E3'A680: return "Studio Large"; + case 0x01A5'C000: return "Hall"; + case 0x033D'B000: return "Space Echo"; + case 0x0001'8100: return "Chaos Echo"; + case 0x0001'0000: return "Delay"; + case 0x0017'8500: return "Half Echo"; + default: return "Unknown"; + // clang-format on + } +} + void SPU::DrawDebugStateWindow(float scale) { static const ImVec4 active_color{1.0f, 1.0f, 1.0f, 1.0f}; @@ -2761,6 +2784,7 @@ void SPU::DrawDebugStateWindow(float scale) ImGui::Text("Current Address: 0x%08X", s_state.reverb_current_address); ImGui::Text("Current Amplitude: Input (%d, %d) Output (%d, %d)", s_state.last_reverb_input[0], s_state.last_reverb_input[1], s_state.last_reverb_output[0], s_state.last_reverb_output[1]); + ImGui::Text("Current Mode: %s", GetReverbModeName(s_state.reverb_registers)); ImGui::Text("Output Volume: Left %d%% Right %d%%", ApplyVolume(100, s_state.reverb_registers.vLOUT), ApplyVolume(100, s_state.reverb_registers.vROUT)); #ifdef SPU_ENABLE_VU_METER