From 64c05a5ddfb20bd5fc0f8512d4a67d072c178ba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 26 Mar 2026 11:59:43 -0600 Subject: [PATCH] Atrac3: Allow sending 0xFFFFFFFF as data size. Death JR does this on audio loop for some reason. --- Core/Util/AtracTrack.cpp | 6 +++--- Core/Util/AtracTrack.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Core/Util/AtracTrack.cpp b/Core/Util/AtracTrack.cpp index 3c93638319..65044fd055 100644 --- a/Core/Util/AtracTrack.cpp +++ b/Core/Util/AtracTrack.cpp @@ -349,7 +349,7 @@ static inline int RoundUpToEven(int size) { return (size + 1) & ~1; } -int ParseWaveAT3(const u8 *data, int dataLength, TrackInfo *track) { +int ParseWaveAT3(const u8 *data, u32 dataLength, TrackInfo *track) { _assert_(data != nullptr); track->loopStart = 0xFFFFFFFF; track->loopEnd = 0xFFFFFFFF; @@ -571,7 +571,7 @@ static u32 Parse4BytesBE(const u8 *data, int *offset) { return value; } -static u32 ParseAA3Headers(int readSize, AA3Info *info, int fileSize, const u8 *aa3Data) { +static u32 ParseAA3Headers(u32 readSize, AA3Info *info, u32 fileSize, const u8 *aa3Data) { if ((u32)readSize < 9) { return SCE_ERROR_ATRAC_AA3_SIZE_TOO_SMALL; } @@ -666,7 +666,7 @@ static int ConvertAA3InfoToTrackInfo(const AA3Info *in, TrackInfo *out) { } } -int ParseAA3(const u8 *buffer, int readSize, int fileSize, TrackInfo *track) { +int ParseAA3(const u8 *buffer, u32 readSize, u32 fileSize, TrackInfo *track) { AA3Info info; int retval = ParseAA3Headers(readSize, &info, fileSize, buffer); if (retval < 0) { diff --git a/Core/Util/AtracTrack.h b/Core/Util/AtracTrack.h index d448e06958..f4d0442f69 100644 --- a/Core/Util/AtracTrack.h +++ b/Core/Util/AtracTrack.h @@ -121,5 +121,5 @@ struct TrackInfo { u32 loopEnd; }; -int ParseWaveAT3(const u8 *data, int length, TrackInfo *track); -int ParseAA3(const u8 *data, int readSize, int fileSize, TrackInfo *track); +int ParseWaveAT3(const u8 *data, u32 length, TrackInfo *track); +int ParseAA3(const u8 *data, u32 readSize, u32 fileSize, TrackInfo *track);