Browse Source

[audio_core] Fix audio issue in The Legend of Zelda - Echoes of Wisdom (#2594)

This fixes the audio issue in The Legend of Zelda - Echoes of Wisdom on Windows.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2594
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
pull/2627/head
MaranBr 3 months ago
committed by crueter
parent
commit
9a098441de
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 15
      src/audio_core/renderer/behavior/info_updater.cpp

15
src/audio_core/renderer/behavior/info_updater.cpp

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
@ -162,6 +165,12 @@ Result InfoUpdater::UpdateEffectsVersion1(EffectContext& effect_context, const b
reinterpret_cast<EffectInfoBase::OutStatusVersion1*>(output), effect_count}; reinterpret_cast<EffectInfoBase::OutStatusVersion1*>(output), effect_count};
for (u32 i = 0; i < effect_count; i++) { for (u32 i = 0; i < effect_count; i++) {
#ifdef _WIN32
// There's a bug in Windows where using this effect causes extreme noise. So let's skip it.
if (in_params[i].type == EffectInfoBase::Type::Reverb) {
continue;
}
#endif
auto effect_info{&effect_context.GetInfo(i)}; auto effect_info{&effect_context.GetInfo(i)};
if (effect_info->GetType() != in_params[i].type) { if (effect_info->GetType() != in_params[i].type) {
effect_info->ForceUnmapBuffers(pool_mapper); effect_info->ForceUnmapBuffers(pool_mapper);
@ -209,6 +218,12 @@ Result InfoUpdater::UpdateEffectsVersion2(EffectContext& effect_context, const b
reinterpret_cast<EffectInfoBase::OutStatusVersion2*>(output), effect_count}; reinterpret_cast<EffectInfoBase::OutStatusVersion2*>(output), effect_count};
for (u32 i = 0; i < effect_count; i++) { for (u32 i = 0; i < effect_count; i++) {
#ifdef _WIN32
// There's a bug in Windows where using this effect causes extreme noise. So let's skip it.
if (in_params[i].type == EffectInfoBase::Type::Reverb) {
continue;
}
#endif
auto effect_info{&effect_context.GetInfo(i)}; auto effect_info{&effect_context.GetInfo(i)};
if (effect_info->GetType() != in_params[i].type) { if (effect_info->GetType() != in_params[i].type) {
effect_info->ForceUnmapBuffers(pool_mapper); effect_info->ForceUnmapBuffers(pool_mapper);

Loading…
Cancel
Save