From 492e7c958c183e75bbfbea79839e15bd4c609d3d Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Fri, 20 Feb 2026 17:25:58 +0900 Subject: [PATCH] [XMA] fix loop trigger to guard against degenerate loop regions --- src/xenia/apu/xma_context_new.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xenia/apu/xma_context_new.cc b/src/xenia/apu/xma_context_new.cc index adcd853a7..e82a41653 100644 --- a/src/xenia/apu/xma_context_new.cc +++ b/src/xenia/apu/xma_context_new.cc @@ -515,11 +515,15 @@ void XmaContextNew::UpdateLoopStatus(XMA_CONTEXT_DATA* data) { const uint32_t loop_start = std::max(kBitsPerPacketHeader, data->loop_start); const uint32_t loop_end = std::max(kBitsPerPacketHeader, data->loop_end); + if (loop_end <= loop_start) { + return; + } + XELOGAPU("XmaContext {}: Looped Data: {} < {} (Start: {}) Remaining: {}", id(), data->input_buffer_read_offset, data->loop_end, data->loop_start, data->loop_count); - if (data->input_buffer_read_offset != loop_end) { + if (data->input_buffer_read_offset < loop_end) { return; }