From 6265698eefb3c3b6f465eb5666b481ce1c9c9cd2 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Sat, 21 Feb 2026 00:41:55 +0900 Subject: [PATCH] [XMA] Swap input buffer on unresolvable split headers --- src/xenia/apu/xma_context_new.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/xenia/apu/xma_context_new.cc b/src/xenia/apu/xma_context_new.cc index c1a8018d9..f8b1ebaa9 100644 --- a/src/xenia/apu/xma_context_new.cc +++ b/src/xenia/apu/xma_context_new.cc @@ -473,8 +473,13 @@ void XmaContextNew::Decode(XMA_CONTEXT_DATA* data) { const uint8_t* next_packet = GetNextPacket(data, next_packet_index, current_input_packet_count); if (!next_packet) { - // Matching split-body error handling below; correct error code unknown. - data->error_status = 4; + // Next buffer not available yet. We can't resolve the split header + // without it, so consume (swap) the current buffer and move on. + XELOGAPU( + "XmaContext {}: Split frame header at packet {}, next buffer " + "unavailable — swapping input buffer", + id(), packet_index); + SwapInputBuffer(data); return; } std::memcpy(input_buffer_.data(), packet + kBytesPerPacketHeader,