From 9fdfd2ada9c9d6e9cca436642d0c691c93a7118e Mon Sep 17 00:00:00 2001 From: Gliniak Date: Sat, 26 Nov 2022 17:25:39 +0100 Subject: [PATCH] [APU] Removed old hack that invalidates input on decoder error Added returning parsing error while decoder fails --- src/xenia/apu/xma_context.cc | 5 ++--- src/xenia/apu/xma_context.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/xenia/apu/xma_context.cc b/src/xenia/apu/xma_context.cc index dd49e96aa..f907798b0 100644 --- a/src/xenia/apu/xma_context.cc +++ b/src/xenia/apu/xma_context.cc @@ -633,9 +633,8 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) { */ if (ret < 0) { XELOGE("XmaContext {}: Error during decoding", id()); - data->input_buffer_0_valid = 0; - data->input_buffer_1_valid = 0; - + data->parser_error_status = 4; // TODO(Gliniak): Find all parsing errors + // and create enumerator from them assert_always(); return; // TODO bail out } diff --git a/src/xenia/apu/xma_context.h b/src/xenia/apu/xma_context.h index 07699513b..bd09e2ced 100644 --- a/src/xenia/apu/xma_context.h +++ b/src/xenia/apu/xma_context.h @@ -81,7 +81,7 @@ struct XMA_CONTEXT_DATA { // DWORD 3 uint32_t loop_start : 26; // XMASetLoopData LoopStartOffset // frame offset in bits - uint32_t unk_dword_3 : 6; // ? ParserErrorStatus/ParserErrorSet(?) + uint32_t parser_error_status : 6; // ? ParserErrorStatus/ParserErrorSet(?) // DWORD 4 uint32_t loop_end : 26; // XMASetLoopData LoopEndOffset