From 59a4eb0ea59e29d23b75c920c13d6a335aa51bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 24 Feb 2025 12:07:21 -0600 Subject: [PATCH] Add Atrac error codes to the big enum --- Core/HLE/AtracCtx.h | 26 -------------------------- Core/HLE/ErrorCodes.h | 26 ++++++++++++++++++++++++++ Core/HLE/sceAtrac.cpp | 6 +++--- Core/HLE/sceKernel.cpp | 26 ++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 29 deletions(-) diff --git a/Core/HLE/AtracCtx.h b/Core/HLE/AtracCtx.h index 0212aa0884..c5b90fdf17 100644 --- a/Core/HLE/AtracCtx.h +++ b/Core/HLE/AtracCtx.h @@ -42,32 +42,6 @@ struct AtracResetBufferInfo { #define PSP_MODE_AT_3_PLUS 0x00001000 #define PSP_MODE_AT_3 0x00001001 -#define ATRAC_ERROR_API_FAIL 0x80630002 -#define ATRAC_ERROR_NO_ATRACID 0x80630003 -#define ATRAC_ERROR_INVALID_CODECTYPE 0x80630004 -#define ATRAC_ERROR_BAD_ATRACID 0x80630005 -#define ATRAC_ERROR_UNKNOWN_FORMAT 0x80630006 -#define ATRAC_ERROR_WRONG_CODECTYPE 0x80630007 -#define ATRAC_ERROR_BAD_CODEC_PARAMS 0x80630008 -#define ATRAC_ERROR_ALL_DATA_LOADED 0x80630009 -#define ATRAC_ERROR_NO_DATA 0x80630010 -#define ATRAC_ERROR_SIZE_TOO_SMALL 0x80630011 -#define ATRAC_ERROR_SECOND_BUFFER_NEEDED 0x80630012 -#define ATRAC_ERROR_INCORRECT_READ_SIZE 0x80630013 -#define ATRAC_ERROR_BAD_SAMPLE 0x80630015 -#define ATRAC_ERROR_BAD_FIRST_RESET_SIZE 0x80630016 -#define ATRAC_ERROR_BAD_SECOND_RESET_SIZE 0x80630017 -#define ATRAC_ERROR_ADD_DATA_IS_TOO_BIG 0x80630018 -#define ATRAC_ERROR_NOT_MONO 0x80630019 -#define ATRAC_ERROR_NO_LOOP_INFORMATION 0x80630021 -#define ATRAC_ERROR_SECOND_BUFFER_NOT_NEEDED 0x80630022 -#define ATRAC_ERROR_BUFFER_IS_EMPTY 0x80630023 -#define ATRAC_ERROR_ALL_DATA_DECODED 0x80630024 -#define ATRAC_ERROR_IS_LOW_LEVEL 0x80630031 -#define ATRAC_ERROR_IS_FOR_SCESAS 0x80630040 -#define ATRAC_ERROR_AA3_INVALID_DATA 0x80631003 -#define ATRAC_ERROR_AA3_SIZE_TOO_SMALL 0x80631004 - const u32 ATRAC3_MAX_SAMPLES = 0x400; const u32 ATRAC3PLUS_MAX_SAMPLES = 0x800; diff --git a/Core/HLE/ErrorCodes.h b/Core/HLE/ErrorCodes.h index f39bcc4eee..4caae77392 100644 --- a/Core/HLE/ErrorCodes.h +++ b/Core/HLE/ErrorCodes.h @@ -380,4 +380,30 @@ enum : u32 { SCE_ERROR_MEMSTICK_DEVCTL_TOO_MANY_CALLBACKS = 0x80220082, SCE_ERROR_PGD_INVALID_HEADER = 0x80510204, + + ATRAC_ERROR_API_FAIL = 0x80630002, + ATRAC_ERROR_NO_ATRACID = 0x80630003, + ATRAC_ERROR_INVALID_CODECTYPE = 0x80630004, + ATRAC_ERROR_BAD_ATRACID = 0x80630005, + ATRAC_ERROR_UNKNOWN_FORMAT = 0x80630006, + ATRAC_ERROR_WRONG_CODECTYPE = 0x80630007, + ATRAC_ERROR_BAD_CODEC_PARAMS = 0x80630008, + ATRAC_ERROR_ALL_DATA_LOADED = 0x80630009, + ATRAC_ERROR_NO_DATA = 0x80630010, + ATRAC_ERROR_SIZE_TOO_SMALL = 0x80630011, + ATRAC_ERROR_SECOND_BUFFER_NEEDED = 0x80630012, + ATRAC_ERROR_INCORRECT_READ_SIZE = 0x80630013, + ATRAC_ERROR_BAD_SAMPLE = 0x80630015, + ATRAC_ERROR_BAD_FIRST_RESET_SIZE = 0x80630016, + ATRAC_ERROR_BAD_SECOND_RESET_SIZE = 0x80630017, + ATRAC_ERROR_ADD_DATA_IS_TOO_BIG = 0x80630018, + ATRAC_ERROR_NOT_MONO = 0x80630019, + ATRAC_ERROR_NO_LOOP_INFORMATION = 0x80630021, + ATRAC_ERROR_SECOND_BUFFER_NOT_NEEDED = 0x80630022, + ATRAC_ERROR_BUFFER_IS_EMPTY = 0x80630023, + ATRAC_ERROR_ALL_DATA_DECODED = 0x80630024, + ATRAC_ERROR_IS_LOW_LEVEL = 0x80630031, + ATRAC_ERROR_IS_FOR_SCESAS = 0x80630040, + ATRAC_ERROR_AA3_INVALID_DATA = 0x80631003, + ATRAC_ERROR_AA3_SIZE_TOO_SMALL = 0x80631004, }; diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp index 894ccbce86..8d49c501a4 100644 --- a/Core/HLE/sceAtrac.cpp +++ b/Core/HLE/sceAtrac.cpp @@ -203,7 +203,7 @@ static u32 sceAtracGetAtracID(int codecType) { return hleLogInfo(Log::ME, atracID); } -static u32 AtracValidateData(const AtracBase *atrac) { +static int AtracValidateData(const AtracBase *atrac) { if (!atrac) { return hleLogError(Log::ME, ATRAC_ERROR_BAD_ATRACID, "bad atrac ID"); } else if (atrac->BufferState() == ATRAC_STATUS_NO_DATA) { @@ -213,7 +213,7 @@ static u32 AtracValidateData(const AtracBase *atrac) { } } -static u32 AtracValidateManaged(const AtracBase *atrac) { +static int AtracValidateManaged(const AtracBase *atrac) { if (!atrac) { return hleLogError(Log::ME, ATRAC_ERROR_BAD_ATRACID, "bad atrac ID"); } else if (atrac->BufferState() == ATRAC_STATUS_NO_DATA) { @@ -233,7 +233,7 @@ static u32 AtracValidateManaged(const AtracBase *atrac) { // The total size of the buffer is atrac->bufferMaxSize_. static u32 sceAtracAddStreamData(int atracID, u32 bytesToAdd) { AtracBase *atrac = getAtrac(atracID); - u32 err = AtracValidateManaged(atrac); + int err = AtracValidateManaged(atrac); if (err != 0) { // Already logged. return err; diff --git a/Core/HLE/sceKernel.cpp b/Core/HLE/sceKernel.cpp index 6185f39d03..bdc60800c0 100644 --- a/Core/HLE/sceKernel.cpp +++ b/Core/HLE/sceKernel.cpp @@ -1398,6 +1398,32 @@ const char *KernelErrorToString(u32 err) { case SCE_ERROR_PGD_INVALID_HEADER: return "PGD_INVALID_HEADER"; + case ATRAC_ERROR_API_FAIL: return "SCE_ERROR_ATRAC_API_FAIL"; + case ATRAC_ERROR_NO_ATRACID: return "SCE_ERROR_ATRAC_NO_ATRACID"; + case ATRAC_ERROR_INVALID_CODECTYPE: return "SCE_ERROR_ATRAC_INVALID_CODECTYPE"; + case ATRAC_ERROR_BAD_ATRACID: return "SCE_ERROR_ATRAC_BAD_ATRACID"; + case ATRAC_ERROR_UNKNOWN_FORMAT: return "SCE_ERROR_ATRAC_UNKNOWN_FORMAT"; + case ATRAC_ERROR_WRONG_CODECTYPE: return "SCE_ERROR_ATRAC_WRONG_CODECTYPE"; + case ATRAC_ERROR_BAD_CODEC_PARAMS: return "SCE_ERROR_ATRAC_BAD_CODEC_PARAMS"; + case ATRAC_ERROR_ALL_DATA_LOADED: return "SCE_ERROR_ATRAC_ALL_DATA_LOADED"; + case ATRAC_ERROR_NO_DATA: return "SCE_ERROR_ATRAC_NO_DATA"; + case ATRAC_ERROR_SIZE_TOO_SMALL: return "SCE_ERROR_ATRAC_SIZE_TOO_SMALL"; + case ATRAC_ERROR_SECOND_BUFFER_NEEDED: return "SCE_ERROR_ATRAC_SECOND_BUFFER_NEEDED"; + case ATRAC_ERROR_INCORRECT_READ_SIZE: return "SCE_ERROR_ATRAC_INCORRECT_READ_SIZE"; + case ATRAC_ERROR_BAD_SAMPLE: return "SCE_ERROR_ATRAC_BAD_SAMPLE"; + case ATRAC_ERROR_BAD_FIRST_RESET_SIZE: return "SCE_ERROR_ATRAC_BAD_FIRST_RESET_SIZE"; + case ATRAC_ERROR_BAD_SECOND_RESET_SIZE: return "SCE_ERROR_ATRAC_BAD_SECOND_RESET_SIZE"; + case ATRAC_ERROR_ADD_DATA_IS_TOO_BIG: return "SCE_ERROR_ATRAC_ADD_DATA_IS_TOO_BIG"; + case ATRAC_ERROR_NOT_MONO: return "SCE_ERROR_ATRAC_NOT_MONO"; + case ATRAC_ERROR_NO_LOOP_INFORMATION: return "SCE_ERROR_ATRAC_NO_LOOP_INFORMATION"; + case ATRAC_ERROR_SECOND_BUFFER_NOT_NEEDED: return "SCE_ERROR_ATRAC_SECOND_BUFFER_NOT_NEEDED"; + case ATRAC_ERROR_BUFFER_IS_EMPTY: return "SCE_ERROR_ATRAC_BUFFER_IS_EMPTY"; + case ATRAC_ERROR_ALL_DATA_DECODED: return "SCE_ERROR_ATRAC_ALL_DATA_DECODED"; + case ATRAC_ERROR_IS_LOW_LEVEL: return "SCE_ERROR_ATRAC_IS_LOW_LEVEL"; + case ATRAC_ERROR_IS_FOR_SCESAS: return "SCE_ERROR_ATRAC_IS_FOR_SCESAS"; + case ATRAC_ERROR_AA3_INVALID_DATA: return "SCE_ERROR_ATRAC_AA3_INVALID_DATA"; + case ATRAC_ERROR_AA3_SIZE_TOO_SMALL: return "SCE_ERROR_ATRAC_AA3_SIZE_TOO_SMALL"; + default: return nullptr; }