Add Atrac error codes to the big enum

This commit is contained in:
Henrik Rydgård 2025-02-24 12:07:21 -06:00
parent d1ea78fbe7
commit 59a4eb0ea5
4 changed files with 55 additions and 29 deletions

View file

@ -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;

View file

@ -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,
};

View file

@ -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;

View file

@ -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;
}