From e877b81c779eff509f456b9ce48f9d6778bd4bc2 Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 21 Feb 2025 22:11:46 +0800 Subject: [PATCH 1/2] Add logging of Additional chunk data Easy to compare JPCSP emulator log. Debugging in #19994 --- Core/HLE/AtracCtx.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Core/HLE/AtracCtx.cpp b/Core/HLE/AtracCtx.cpp index c9fe5afb91bc..7e9f96952440 100644 --- a/Core/HLE/AtracCtx.cpp +++ b/Core/HLE/AtracCtx.cpp @@ -27,6 +27,8 @@ #include "Core/HLE/AtracCtx.h" #include "Core/HW/Atrac3Standalone.h" #include "Core/HLE/sceKernelMemory.h" +#include +#include const size_t overAllocBytes = 16384; @@ -357,6 +359,21 @@ int AnalyzeAtracTrack(u32 addr, u32 size, Track *track) { // This is the offset to the jointStereo_ field. track->jointStereo = Memory::Read_U32(addr + offset + 24); } + if (chunkSize > 16) { + std::stringstream restChunkStream; + + // Read and format extra bytes as hexadecimal + for (int i = 16; i < chunkSize; ++i) { + unsigned char byte = Memory::Read_U8(addr + offset + i); + restChunkStream << " " << std::hex << std::uppercase << std::setw(2) << std::setfill('0') << (int)byte; + } + + std::string restChunk = restChunkStream.str(); + if (!restChunk.empty()) { + DEBUG_LOG(Log::ME, "Additional chunk data:%s", restChunk.c_str()); + } + + } } break; case FACT_CHUNK_MAGIC: From e62e5151eb4f432100425e20603af072d3a3afdd Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 21 Feb 2025 22:15:36 +0800 Subject: [PATCH 2/2] Move break inside the {} of the case --- Core/HLE/AtracCtx.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Core/HLE/AtracCtx.cpp b/Core/HLE/AtracCtx.cpp index 7e9f96952440..c867ab94c020 100644 --- a/Core/HLE/AtracCtx.cpp +++ b/Core/HLE/AtracCtx.cpp @@ -374,8 +374,8 @@ int AnalyzeAtracTrack(u32 addr, u32 size, Track *track) { } } + break; } - break; case FACT_CHUNK_MAGIC: { track->endSample = Memory::Read_U32(addr + offset); @@ -386,8 +386,8 @@ int AnalyzeAtracTrack(u32 addr, u32 size, Track *track) { u32 largerOffset = Memory::Read_U32(addr + offset + 8); sampleOffsetAdjust = track->firstSampleOffset - largerOffset; } + break; } - break; case SMPL_CHUNK_MAGIC: { if (chunkSize < 32) { @@ -417,8 +417,8 @@ int AnalyzeAtracTrack(u32 addr, u32 size, Track *track) { return hleReportError(Log::ME, ATRAC_ERROR_BAD_CODEC_PARAMS, "loop starts after it ends"); } } + break; } - break; case DATA_CHUNK_MAGIC: { bfoundData = true;