mirror of
https://gitlab.com/Theopse/fbi-i18n-zh.git
synced 2025-04-25 10:56:36 +08:00
Add some module-specific description codes.
This commit is contained in:
parent
eac13bccca
commit
00655c7b97
@ -14,8 +14,8 @@ typedef struct {
|
|||||||
void (*drawTop)(ui_view* view, void* data, float x1, float y1, float x2, float y2);
|
void (*drawTop)(ui_view* view, void* data, float x1, float y1, float x2, float y2);
|
||||||
} error_data;
|
} error_data;
|
||||||
|
|
||||||
static const char* level_to_string(int level) {
|
static const char* level_to_string(Result res) {
|
||||||
switch(level) {
|
switch(R_LEVEL(res)) {
|
||||||
case RL_SUCCESS:
|
case RL_SUCCESS:
|
||||||
return "Success";
|
return "Success";
|
||||||
case RL_INFO:
|
case RL_INFO:
|
||||||
@ -39,8 +39,8 @@ static const char* level_to_string(int level) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* summary_to_string(int summary) {
|
static const char* summary_to_string(Result res) {
|
||||||
switch(summary) {
|
switch(R_SUMMARY(res)) {
|
||||||
case RS_SUCCESS:
|
case RS_SUCCESS:
|
||||||
return "Success";
|
return "Success";
|
||||||
case RS_NOP:
|
case RS_NOP:
|
||||||
@ -70,8 +70,8 @@ static const char* summary_to_string(int summary) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* module_to_string(int module) {
|
static const char* module_to_string(Result res) {
|
||||||
switch(module) {
|
switch(R_MODULE(res)) {
|
||||||
case RM_COMMON:
|
case RM_COMMON:
|
||||||
return "Common";
|
return "Common";
|
||||||
case RM_KERNEL:
|
case RM_KERNEL:
|
||||||
@ -271,8 +271,223 @@ static const char* module_to_string(int module) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* description_to_string(int description) {
|
static const char* description_to_string(Result res) {
|
||||||
// TODO: Per-module descriptions.
|
int module = R_MODULE(res);
|
||||||
|
int description = R_DESCRIPTION(res);
|
||||||
|
|
||||||
|
switch(module) {
|
||||||
|
case RM_KERNEL:
|
||||||
|
switch(description) {
|
||||||
|
case 2:
|
||||||
|
return "Invalid DMA buffer memory permissions";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_OS:
|
||||||
|
switch(description) {
|
||||||
|
case 1:
|
||||||
|
return "Out of synchronization object";
|
||||||
|
case 2:
|
||||||
|
return "Out of shared memory objects";
|
||||||
|
case 9:
|
||||||
|
return "Out of session objects";
|
||||||
|
case 10:
|
||||||
|
return "Not enough memory for allocation";
|
||||||
|
case 20:
|
||||||
|
return "Wrong permissions for unprivilaged load or store";
|
||||||
|
case 26:
|
||||||
|
return "Session closed by remote process";
|
||||||
|
case 47:
|
||||||
|
return "Invalid command header";
|
||||||
|
case 52:
|
||||||
|
return "Max port connections exceeded";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_FS:
|
||||||
|
switch(description) {
|
||||||
|
case 101:
|
||||||
|
return "Archive not mounted";
|
||||||
|
case 120:
|
||||||
|
return "Doesn't exist / Failed to open";
|
||||||
|
case 141:
|
||||||
|
return "Game card not inserted";
|
||||||
|
case 171:
|
||||||
|
return "Bus: Busy / Underrun";
|
||||||
|
case 172:
|
||||||
|
return "Bus: Illegal function";
|
||||||
|
case 190:
|
||||||
|
return "Already exists / Failed to create";
|
||||||
|
case 210:
|
||||||
|
return "Partition full";
|
||||||
|
case 230:
|
||||||
|
return "Illegal operation / File in use";
|
||||||
|
case 231:
|
||||||
|
return "Resource locked";
|
||||||
|
case 265:
|
||||||
|
return "Bus: Timeout";
|
||||||
|
case 331:
|
||||||
|
return "Bus error / TWL partition invalid";
|
||||||
|
case 332:
|
||||||
|
return "Bus: Stop bit error";
|
||||||
|
case 391:
|
||||||
|
return "Hash verification failure";
|
||||||
|
case 392:
|
||||||
|
return "RSA/Hash verification failure";
|
||||||
|
case 395:
|
||||||
|
return "Invalid RomFS or save data block hash";
|
||||||
|
case 630:
|
||||||
|
return "Archive permission denied";
|
||||||
|
case 702:
|
||||||
|
return "Invalid archive path / Inaccessible archive";
|
||||||
|
case 705:
|
||||||
|
return "Offset out of bounds";
|
||||||
|
case 721:
|
||||||
|
return "Reached file size limit";
|
||||||
|
case 761:
|
||||||
|
return "ExeFS read size mismatch";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_SRV:
|
||||||
|
switch(description) {
|
||||||
|
case 5:
|
||||||
|
return "Invalid service name length";
|
||||||
|
case 6:
|
||||||
|
return "Service access denied";
|
||||||
|
case 7:
|
||||||
|
return "String size mismatch";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_AM:
|
||||||
|
switch(description) {
|
||||||
|
case 4:
|
||||||
|
return "Wrong installation state";
|
||||||
|
case 37:
|
||||||
|
return "Invalid NCCH";
|
||||||
|
case 39:
|
||||||
|
return "Invalid or outdated title version";
|
||||||
|
case 41:
|
||||||
|
return "Error type 1";
|
||||||
|
case 43:
|
||||||
|
return "Database does not exist";
|
||||||
|
case 44:
|
||||||
|
return "Attempted to delete system title";
|
||||||
|
case 101:
|
||||||
|
return "Error type -1";
|
||||||
|
case 102:
|
||||||
|
return "Error type -2";
|
||||||
|
case 103:
|
||||||
|
return "Error type -3";
|
||||||
|
case 104:
|
||||||
|
return "Error type -4";
|
||||||
|
case 105:
|
||||||
|
return "Error type -5";
|
||||||
|
case 106:
|
||||||
|
return "Cert signature or hash check failed";
|
||||||
|
case 107:
|
||||||
|
return "Error type -7";
|
||||||
|
case 108:
|
||||||
|
return "Error type -8";
|
||||||
|
case 109:
|
||||||
|
return "Error type -9";
|
||||||
|
case 110:
|
||||||
|
return "Error type -10";
|
||||||
|
case 111:
|
||||||
|
return "Error type -11";
|
||||||
|
case 112:
|
||||||
|
return "Error type -12";
|
||||||
|
case 113:
|
||||||
|
return "Error type -13";
|
||||||
|
case 114:
|
||||||
|
return "Error type -14";
|
||||||
|
case 393:
|
||||||
|
return "Invalid database";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_HTTP:
|
||||||
|
switch(description) {
|
||||||
|
case 60:
|
||||||
|
return "Failed to verify TLS certificate";
|
||||||
|
case 70:
|
||||||
|
return "Network unavailable";
|
||||||
|
case 102:
|
||||||
|
return "Wrong context handle";
|
||||||
|
case 105:
|
||||||
|
return "Request timed out";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_SSL:
|
||||||
|
switch(description) {
|
||||||
|
case 20:
|
||||||
|
return "Untrusted RootCA";
|
||||||
|
case 54:
|
||||||
|
return "RootCertChain handle not found";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_SDMC:
|
||||||
|
switch(description) {
|
||||||
|
case 1:
|
||||||
|
return "Bus: Bit23 error";
|
||||||
|
case 2:
|
||||||
|
return "Bus: RX ready error";
|
||||||
|
case 3:
|
||||||
|
return "Bus: Bit28 error";
|
||||||
|
case 4:
|
||||||
|
return "Bus: Bit27 error";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_MVD:
|
||||||
|
switch(description) {
|
||||||
|
case 271:
|
||||||
|
return "Invalid configuration";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_NFC:
|
||||||
|
switch(description) {
|
||||||
|
case 512:
|
||||||
|
return "Invalid NFC state";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RM_QTM:
|
||||||
|
switch(description) {
|
||||||
|
case 8:
|
||||||
|
return "Camera busy";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
switch(description) {
|
switch(description) {
|
||||||
case RD_SUCCESS:
|
case RD_SUCCESS:
|
||||||
@ -369,7 +584,7 @@ void error_display_res(void* data, void (*drawTop)(ui_view* view, void* data, fl
|
|||||||
int summary = R_SUMMARY(result);
|
int summary = R_SUMMARY(result);
|
||||||
int module = R_MODULE(result);
|
int module = R_MODULE(result);
|
||||||
int description = R_DESCRIPTION(result);
|
int description = R_DESCRIPTION(result);
|
||||||
snprintf(errorData->fullText, 4096, "%s\nResult code: 0x%08lX\nLevel: %s (%d)\nSummary: %s (%d)\nModule: %s (%d)\nDecription: %s (%d)", textBuf, result, level_to_string(level), level, summary_to_string(summary), summary, module_to_string(module), module, description_to_string(description), description);
|
snprintf(errorData->fullText, 4096, "%s\nResult code: 0x%08lX\nLevel: %s (%d)\nSummary: %s (%d)\nModule: %s (%d)\nDecription: %s (%d)", textBuf, result, level_to_string(result), level, summary_to_string(result), summary, module_to_string(result), module, description_to_string(result), description);
|
||||||
|
|
||||||
ui_push(prompt_create("Error", errorData->fullText, 0xFF000000, false, errorData, NULL, error_draw_top, error_onresponse));
|
ui_push(prompt_create("Error", errorData->fullText, 0xFF000000, false, errorData, NULL, error_draw_top, error_onresponse));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user