sceSas: Fix send/return levels for the reverb effects

The two fudge factors in the reverb path cancelled, which is why the
overall level felt roughly right.

- The send is accumulator * 0x20 >> 16, i.e. sample >> 2. We used >> 1,
  driving the reverb 6dB hot.
- The return is (evol * out) >> 11. We used >> 12, i.e. 6dB quiet.

Net level is therefore unchanged, but the reverb now runs at the level
the presets were designed around. That matters because the filter clamps
internally, so a 6dB hot input changes how the feedback path saturates -
worst on the presets with heavy feedback.

Also adds a slider in the imgui.
This commit is contained in:
Henrik Rydgård committed 2026-09-09 11:05:40 -06:00
1 parent 5402579a44
commit 6d945404d1
2 files changed
+16 -2

No files matched your search

+3
View File
@@ -1815,6 +1815,9 @@ void DrawSasAudio(ImConfig &cfg) {
}
ImGui::Checkbox("Mute", __SasGetGlobalMuteFlag());
if (ImGui::SliderInt("Reverb", &g_Config.iReverbVolume, 0, 200)) {
g_Config.DoNotSaveSetting(&g_Config.iReverbVolume);
}
ImGui::SameLine();
ImGui::Checkbox("Show all voices", &cfg.sasShowAllVoices);